summaryrefslogtreecommitdiff
path: root/StoneIsland/platforms/ios/Pods/Protobuf/objectivec
diff options
context:
space:
mode:
Diffstat (limited to 'StoneIsland/platforms/ios/Pods/Protobuf/objectivec')
-rw-r--r--StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBArray.h1967
-rw-r--r--StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBArray.m2551
-rw-r--r--StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBArray_PackagePrivate.h130
-rw-r--r--StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBBootstrap.h123
-rw-r--r--StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBCodedInputStream.h253
-rw-r--r--StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBCodedInputStream.m538
-rw-r--r--StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBCodedInputStream_PackagePrivate.h114
-rw-r--r--StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBCodedOutputStream.h739
-rw-r--r--StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBCodedOutputStream.m1202
-rw-r--r--StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBCodedOutputStream_PackagePrivate.h126
-rw-r--r--StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBDescriptor.h288
-rw-r--r--StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBDescriptor.m1104
-rw-r--r--StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBDescriptor_PackagePrivate.h329
-rw-r--r--StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBDictionary.h8570
-rw-r--r--StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBDictionary.m13627
-rw-r--r--StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBDictionary_PackagePrivate.h488
-rw-r--r--StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBExtensionInternals.h50
-rw-r--r--StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBExtensionInternals.m391
-rw-r--r--StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBExtensionRegistry.h87
-rw-r--r--StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBExtensionRegistry.m131
-rw-r--r--StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBMessage.h461
-rw-r--r--StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBMessage.m3262
-rw-r--r--StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBMessage_PackagePrivate.h134
-rw-r--r--StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBProtocolBuffers.h76
-rw-r--r--StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBProtocolBuffers_RuntimeSupport.h40
-rw-r--r--StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBRootObject.h52
-rw-r--r--StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBRootObject.m237
-rw-r--r--StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBRootObject_PackagePrivate.h46
-rw-r--r--StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBRuntimeTypes.h144
-rw-r--r--StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBUnknownField.h96
-rw-r--r--StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBUnknownField.m334
-rw-r--r--StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBUnknownFieldSet.h82
-rw-r--r--StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBUnknownFieldSet.m395
-rw-r--r--StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBUnknownFieldSet_PackagePrivate.h61
-rw-r--r--StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBUnknownField_PackagePrivate.h49
-rw-r--r--StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBUtilities.h539
-rw-r--r--StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBUtilities.m1923
-rw-r--r--StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBUtilities_PackagePrivate.h350
-rw-r--r--StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBWellKnownTypes.h245
-rw-r--r--StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBWellKnownTypes.m272
-rw-r--r--StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBWireFormat.h73
-rw-r--r--StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBWireFormat.m85
-rw-r--r--StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Any.pbobjc.h163
-rw-r--r--StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Any.pbobjc.m112
-rw-r--r--StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Api.pbobjc.h299
-rw-r--r--StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Api.pbobjc.m356
-rw-r--r--StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Duration.pbobjc.h141
-rw-r--r--StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Duration.pbobjc.m107
-rw-r--r--StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Empty.pbobjc.h70
-rw-r--r--StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Empty.pbobjc.m83
-rw-r--r--StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/FieldMask.pbobjc.h271
-rw-r--r--StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/FieldMask.pbobjc.m96
-rw-r--r--StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/SourceContext.pbobjc.h73
-rw-r--r--StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/SourceContext.pbobjc.m96
-rw-r--r--StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Struct.pbobjc.h200
-rw-r--r--StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Struct.pbobjc.m293
-rw-r--r--StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Timestamp.pbobjc.h157
-rw-r--r--StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Timestamp.pbobjc.m107
-rw-r--r--StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Type.pbobjc.h440
-rw-r--r--StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Type.pbobjc.m701
-rw-r--r--StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Wrappers.pbobjc.h215
-rw-r--r--StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Wrappers.pbobjc.m439
62 files changed, 0 insertions, 46183 deletions
diff --git a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBArray.h b/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBArray.h
deleted file mode 100644
index 638b2882..00000000
--- a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBArray.h
+++ /dev/null
@@ -1,1967 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2015 Google Inc. All rights reserved.
-// https://developers.google.com/protocol-buffers/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#import <Foundation/Foundation.h>
-
-#import "GPBRuntimeTypes.h"
-
-NS_ASSUME_NONNULL_BEGIN
-
-//%PDDM-EXPAND DECLARE_ARRAYS()
-// This block of code is generated, do not edit it directly.
-
-#pragma mark - Int32
-
-/**
- * Class used for repeated fields of int32_t values. This performs better than
- * boxing into NSNumbers in NSArrays.
- *
- * @note This class is not meant to be subclassed.
- **/
-@interface GPBInt32Array : NSObject <NSCopying>
-
-/** The number of elements contained in the array. */
-@property(nonatomic, readonly) NSUInteger count;
-
-/**
- * @return A newly instanced and empty GPBInt32Array.
- **/
-+ (instancetype)array;
-
-/**
- * Creates and initializes a GPBInt32Array with the single element given.
- *
- * @param value The value to be placed in the array.
- *
- * @return A newly instanced GPBInt32Array with value in it.
- **/
-+ (instancetype)arrayWithValue:(int32_t)value;
-
-/**
- * Creates and initializes a GPBInt32Array with the contents of the given
- * array.
- *
- * @param array Array with the contents to be put into the new array.
- *
- * @return A newly instanced GPBInt32Array with the contents of array.
- **/
-+ (instancetype)arrayWithValueArray:(GPBInt32Array *)array;
-
-/**
- * Creates and initializes a GPBInt32Array with the given capacity.
- *
- * @param count The capacity needed for the array.
- *
- * @return A newly instanced GPBInt32Array with a capacity of count.
- **/
-+ (instancetype)arrayWithCapacity:(NSUInteger)count;
-
-/**
- * @return A newly initialized and empty GPBInt32Array.
- **/
-- (instancetype)init NS_DESIGNATED_INITIALIZER;
-
-/**
- * Initializes the array, copying the given values.
- *
- * @param values An array with the values to put inside this array.
- * @param count The number of elements to copy into the array.
- *
- * @return A newly initialized GPBInt32Array with a copy of the values.
- **/
-- (instancetype)initWithValues:(const int32_t [__nullable])values
- count:(NSUInteger)count;
-
-/**
- * Initializes the array, copying the given values.
- *
- * @param array An array with the values to put inside this array.
- *
- * @return A newly initialized GPBInt32Array with a copy of the values.
- **/
-- (instancetype)initWithValueArray:(GPBInt32Array *)array;
-
-/**
- * Initializes the array with the given capacity.
- *
- * @param count The capacity needed for the array.
- *
- * @return A newly initialized GPBInt32Array with a capacity of count.
- **/
-- (instancetype)initWithCapacity:(NSUInteger)count;
-
-/**
- * Gets the value at the given index.
- *
- * @param index The index of the value to get.
- *
- * @return The value at the given index.
- **/
-- (int32_t)valueAtIndex:(NSUInteger)index;
-
-/**
- * Enumerates the values on this array with the given block.
- *
- * @param block The block to enumerate with.
- * **value**: The current value being enumerated.
- * **idx**: The index of the current value.
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateValuesWithBlock:(void (^)(int32_t value, NSUInteger idx, BOOL *stop))block;
-
-/**
- * Enumerates the values on this array with the given block.
- *
- * @param opts Options to control the enumeration.
- * @param block The block to enumerate with.
- * **value**: The current value being enumerated.
- * **idx**: The index of the current value.
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateValuesWithOptions:(NSEnumerationOptions)opts
- usingBlock:(void (^)(int32_t value, NSUInteger idx, BOOL *stop))block;
-
-/**
- * Adds a value to this array.
- *
- * @param value The value to add to this array.
- **/
-- (void)addValue:(int32_t)value;
-
-/**
- * Adds values to this array.
- *
- * @param values The values to add to this array.
- * @param count The number of elements to add.
- **/
-- (void)addValues:(const int32_t [__nullable])values count:(NSUInteger)count;
-
-/**
- * Adds the values from the given array to this array.
- *
- * @param array The array containing the elements to add to this array.
- **/
-- (void)addValuesFromArray:(GPBInt32Array *)array;
-
-/**
- * Inserts a value into the given position.
- *
- * @param value The value to add to this array.
- * @param index The index into which to insert the value.
- **/
-- (void)insertValue:(int32_t)value atIndex:(NSUInteger)index;
-
-/**
- * Replaces the value at the given index with the given value.
- *
- * @param index The index for which to replace the value.
- * @param value The value to replace with.
- **/
-- (void)replaceValueAtIndex:(NSUInteger)index withValue:(int32_t)value;
-
-/**
- * Removes the value at the given index.
- *
- * @param index The index of the value to remove.
- **/
-- (void)removeValueAtIndex:(NSUInteger)index;
-
-/**
- * Removes all the values from this array.
- **/
-- (void)removeAll;
-
-/**
- * Exchanges the values between the given indexes.
- *
- * @param idx1 The index of the first element to exchange.
- * @param idx2 The index of the second element to exchange.
- **/
-- (void)exchangeValueAtIndex:(NSUInteger)idx1
- withValueAtIndex:(NSUInteger)idx2;
-
-@end
-
-#pragma mark - UInt32
-
-/**
- * Class used for repeated fields of uint32_t values. This performs better than
- * boxing into NSNumbers in NSArrays.
- *
- * @note This class is not meant to be subclassed.
- **/
-@interface GPBUInt32Array : NSObject <NSCopying>
-
-/** The number of elements contained in the array. */
-@property(nonatomic, readonly) NSUInteger count;
-
-/**
- * @return A newly instanced and empty GPBUInt32Array.
- **/
-+ (instancetype)array;
-
-/**
- * Creates and initializes a GPBUInt32Array with the single element given.
- *
- * @param value The value to be placed in the array.
- *
- * @return A newly instanced GPBUInt32Array with value in it.
- **/
-+ (instancetype)arrayWithValue:(uint32_t)value;
-
-/**
- * Creates and initializes a GPBUInt32Array with the contents of the given
- * array.
- *
- * @param array Array with the contents to be put into the new array.
- *
- * @return A newly instanced GPBUInt32Array with the contents of array.
- **/
-+ (instancetype)arrayWithValueArray:(GPBUInt32Array *)array;
-
-/**
- * Creates and initializes a GPBUInt32Array with the given capacity.
- *
- * @param count The capacity needed for the array.
- *
- * @return A newly instanced GPBUInt32Array with a capacity of count.
- **/
-+ (instancetype)arrayWithCapacity:(NSUInteger)count;
-
-/**
- * @return A newly initialized and empty GPBUInt32Array.
- **/
-- (instancetype)init NS_DESIGNATED_INITIALIZER;
-
-/**
- * Initializes the array, copying the given values.
- *
- * @param values An array with the values to put inside this array.
- * @param count The number of elements to copy into the array.
- *
- * @return A newly initialized GPBUInt32Array with a copy of the values.
- **/
-- (instancetype)initWithValues:(const uint32_t [__nullable])values
- count:(NSUInteger)count;
-
-/**
- * Initializes the array, copying the given values.
- *
- * @param array An array with the values to put inside this array.
- *
- * @return A newly initialized GPBUInt32Array with a copy of the values.
- **/
-- (instancetype)initWithValueArray:(GPBUInt32Array *)array;
-
-/**
- * Initializes the array with the given capacity.
- *
- * @param count The capacity needed for the array.
- *
- * @return A newly initialized GPBUInt32Array with a capacity of count.
- **/
-- (instancetype)initWithCapacity:(NSUInteger)count;
-
-/**
- * Gets the value at the given index.
- *
- * @param index The index of the value to get.
- *
- * @return The value at the given index.
- **/
-- (uint32_t)valueAtIndex:(NSUInteger)index;
-
-/**
- * Enumerates the values on this array with the given block.
- *
- * @param block The block to enumerate with.
- * **value**: The current value being enumerated.
- * **idx**: The index of the current value.
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateValuesWithBlock:(void (^)(uint32_t value, NSUInteger idx, BOOL *stop))block;
-
-/**
- * Enumerates the values on this array with the given block.
- *
- * @param opts Options to control the enumeration.
- * @param block The block to enumerate with.
- * **value**: The current value being enumerated.
- * **idx**: The index of the current value.
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateValuesWithOptions:(NSEnumerationOptions)opts
- usingBlock:(void (^)(uint32_t value, NSUInteger idx, BOOL *stop))block;
-
-/**
- * Adds a value to this array.
- *
- * @param value The value to add to this array.
- **/
-- (void)addValue:(uint32_t)value;
-
-/**
- * Adds values to this array.
- *
- * @param values The values to add to this array.
- * @param count The number of elements to add.
- **/
-- (void)addValues:(const uint32_t [__nullable])values count:(NSUInteger)count;
-
-/**
- * Adds the values from the given array to this array.
- *
- * @param array The array containing the elements to add to this array.
- **/
-- (void)addValuesFromArray:(GPBUInt32Array *)array;
-
-/**
- * Inserts a value into the given position.
- *
- * @param value The value to add to this array.
- * @param index The index into which to insert the value.
- **/
-- (void)insertValue:(uint32_t)value atIndex:(NSUInteger)index;
-
-/**
- * Replaces the value at the given index with the given value.
- *
- * @param index The index for which to replace the value.
- * @param value The value to replace with.
- **/
-- (void)replaceValueAtIndex:(NSUInteger)index withValue:(uint32_t)value;
-
-/**
- * Removes the value at the given index.
- *
- * @param index The index of the value to remove.
- **/
-- (void)removeValueAtIndex:(NSUInteger)index;
-
-/**
- * Removes all the values from this array.
- **/
-- (void)removeAll;
-
-/**
- * Exchanges the values between the given indexes.
- *
- * @param idx1 The index of the first element to exchange.
- * @param idx2 The index of the second element to exchange.
- **/
-- (void)exchangeValueAtIndex:(NSUInteger)idx1
- withValueAtIndex:(NSUInteger)idx2;
-
-@end
-
-#pragma mark - Int64
-
-/**
- * Class used for repeated fields of int64_t values. This performs better than
- * boxing into NSNumbers in NSArrays.
- *
- * @note This class is not meant to be subclassed.
- **/
-@interface GPBInt64Array : NSObject <NSCopying>
-
-/** The number of elements contained in the array. */
-@property(nonatomic, readonly) NSUInteger count;
-
-/**
- * @return A newly instanced and empty GPBInt64Array.
- **/
-+ (instancetype)array;
-
-/**
- * Creates and initializes a GPBInt64Array with the single element given.
- *
- * @param value The value to be placed in the array.
- *
- * @return A newly instanced GPBInt64Array with value in it.
- **/
-+ (instancetype)arrayWithValue:(int64_t)value;
-
-/**
- * Creates and initializes a GPBInt64Array with the contents of the given
- * array.
- *
- * @param array Array with the contents to be put into the new array.
- *
- * @return A newly instanced GPBInt64Array with the contents of array.
- **/
-+ (instancetype)arrayWithValueArray:(GPBInt64Array *)array;
-
-/**
- * Creates and initializes a GPBInt64Array with the given capacity.
- *
- * @param count The capacity needed for the array.
- *
- * @return A newly instanced GPBInt64Array with a capacity of count.
- **/
-+ (instancetype)arrayWithCapacity:(NSUInteger)count;
-
-/**
- * @return A newly initialized and empty GPBInt64Array.
- **/
-- (instancetype)init NS_DESIGNATED_INITIALIZER;
-
-/**
- * Initializes the array, copying the given values.
- *
- * @param values An array with the values to put inside this array.
- * @param count The number of elements to copy into the array.
- *
- * @return A newly initialized GPBInt64Array with a copy of the values.
- **/
-- (instancetype)initWithValues:(const int64_t [__nullable])values
- count:(NSUInteger)count;
-
-/**
- * Initializes the array, copying the given values.
- *
- * @param array An array with the values to put inside this array.
- *
- * @return A newly initialized GPBInt64Array with a copy of the values.
- **/
-- (instancetype)initWithValueArray:(GPBInt64Array *)array;
-
-/**
- * Initializes the array with the given capacity.
- *
- * @param count The capacity needed for the array.
- *
- * @return A newly initialized GPBInt64Array with a capacity of count.
- **/
-- (instancetype)initWithCapacity:(NSUInteger)count;
-
-/**
- * Gets the value at the given index.
- *
- * @param index The index of the value to get.
- *
- * @return The value at the given index.
- **/
-- (int64_t)valueAtIndex:(NSUInteger)index;
-
-/**
- * Enumerates the values on this array with the given block.
- *
- * @param block The block to enumerate with.
- * **value**: The current value being enumerated.
- * **idx**: The index of the current value.
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateValuesWithBlock:(void (^)(int64_t value, NSUInteger idx, BOOL *stop))block;
-
-/**
- * Enumerates the values on this array with the given block.
- *
- * @param opts Options to control the enumeration.
- * @param block The block to enumerate with.
- * **value**: The current value being enumerated.
- * **idx**: The index of the current value.
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateValuesWithOptions:(NSEnumerationOptions)opts
- usingBlock:(void (^)(int64_t value, NSUInteger idx, BOOL *stop))block;
-
-/**
- * Adds a value to this array.
- *
- * @param value The value to add to this array.
- **/
-- (void)addValue:(int64_t)value;
-
-/**
- * Adds values to this array.
- *
- * @param values The values to add to this array.
- * @param count The number of elements to add.
- **/
-- (void)addValues:(const int64_t [__nullable])values count:(NSUInteger)count;
-
-/**
- * Adds the values from the given array to this array.
- *
- * @param array The array containing the elements to add to this array.
- **/
-- (void)addValuesFromArray:(GPBInt64Array *)array;
-
-/**
- * Inserts a value into the given position.
- *
- * @param value The value to add to this array.
- * @param index The index into which to insert the value.
- **/
-- (void)insertValue:(int64_t)value atIndex:(NSUInteger)index;
-
-/**
- * Replaces the value at the given index with the given value.
- *
- * @param index The index for which to replace the value.
- * @param value The value to replace with.
- **/
-- (void)replaceValueAtIndex:(NSUInteger)index withValue:(int64_t)value;
-
-/**
- * Removes the value at the given index.
- *
- * @param index The index of the value to remove.
- **/
-- (void)removeValueAtIndex:(NSUInteger)index;
-
-/**
- * Removes all the values from this array.
- **/
-- (void)removeAll;
-
-/**
- * Exchanges the values between the given indexes.
- *
- * @param idx1 The index of the first element to exchange.
- * @param idx2 The index of the second element to exchange.
- **/
-- (void)exchangeValueAtIndex:(NSUInteger)idx1
- withValueAtIndex:(NSUInteger)idx2;
-
-@end
-
-#pragma mark - UInt64
-
-/**
- * Class used for repeated fields of uint64_t values. This performs better than
- * boxing into NSNumbers in NSArrays.
- *
- * @note This class is not meant to be subclassed.
- **/
-@interface GPBUInt64Array : NSObject <NSCopying>
-
-/** The number of elements contained in the array. */
-@property(nonatomic, readonly) NSUInteger count;
-
-/**
- * @return A newly instanced and empty GPBUInt64Array.
- **/
-+ (instancetype)array;
-
-/**
- * Creates and initializes a GPBUInt64Array with the single element given.
- *
- * @param value The value to be placed in the array.
- *
- * @return A newly instanced GPBUInt64Array with value in it.
- **/
-+ (instancetype)arrayWithValue:(uint64_t)value;
-
-/**
- * Creates and initializes a GPBUInt64Array with the contents of the given
- * array.
- *
- * @param array Array with the contents to be put into the new array.
- *
- * @return A newly instanced GPBUInt64Array with the contents of array.
- **/
-+ (instancetype)arrayWithValueArray:(GPBUInt64Array *)array;
-
-/**
- * Creates and initializes a GPBUInt64Array with the given capacity.
- *
- * @param count The capacity needed for the array.
- *
- * @return A newly instanced GPBUInt64Array with a capacity of count.
- **/
-+ (instancetype)arrayWithCapacity:(NSUInteger)count;
-
-/**
- * @return A newly initialized and empty GPBUInt64Array.
- **/
-- (instancetype)init NS_DESIGNATED_INITIALIZER;
-
-/**
- * Initializes the array, copying the given values.
- *
- * @param values An array with the values to put inside this array.
- * @param count The number of elements to copy into the array.
- *
- * @return A newly initialized GPBUInt64Array with a copy of the values.
- **/
-- (instancetype)initWithValues:(const uint64_t [__nullable])values
- count:(NSUInteger)count;
-
-/**
- * Initializes the array, copying the given values.
- *
- * @param array An array with the values to put inside this array.
- *
- * @return A newly initialized GPBUInt64Array with a copy of the values.
- **/
-- (instancetype)initWithValueArray:(GPBUInt64Array *)array;
-
-/**
- * Initializes the array with the given capacity.
- *
- * @param count The capacity needed for the array.
- *
- * @return A newly initialized GPBUInt64Array with a capacity of count.
- **/
-- (instancetype)initWithCapacity:(NSUInteger)count;
-
-/**
- * Gets the value at the given index.
- *
- * @param index The index of the value to get.
- *
- * @return The value at the given index.
- **/
-- (uint64_t)valueAtIndex:(NSUInteger)index;
-
-/**
- * Enumerates the values on this array with the given block.
- *
- * @param block The block to enumerate with.
- * **value**: The current value being enumerated.
- * **idx**: The index of the current value.
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateValuesWithBlock:(void (^)(uint64_t value, NSUInteger idx, BOOL *stop))block;
-
-/**
- * Enumerates the values on this array with the given block.
- *
- * @param opts Options to control the enumeration.
- * @param block The block to enumerate with.
- * **value**: The current value being enumerated.
- * **idx**: The index of the current value.
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateValuesWithOptions:(NSEnumerationOptions)opts
- usingBlock:(void (^)(uint64_t value, NSUInteger idx, BOOL *stop))block;
-
-/**
- * Adds a value to this array.
- *
- * @param value The value to add to this array.
- **/
-- (void)addValue:(uint64_t)value;
-
-/**
- * Adds values to this array.
- *
- * @param values The values to add to this array.
- * @param count The number of elements to add.
- **/
-- (void)addValues:(const uint64_t [__nullable])values count:(NSUInteger)count;
-
-/**
- * Adds the values from the given array to this array.
- *
- * @param array The array containing the elements to add to this array.
- **/
-- (void)addValuesFromArray:(GPBUInt64Array *)array;
-
-/**
- * Inserts a value into the given position.
- *
- * @param value The value to add to this array.
- * @param index The index into which to insert the value.
- **/
-- (void)insertValue:(uint64_t)value atIndex:(NSUInteger)index;
-
-/**
- * Replaces the value at the given index with the given value.
- *
- * @param index The index for which to replace the value.
- * @param value The value to replace with.
- **/
-- (void)replaceValueAtIndex:(NSUInteger)index withValue:(uint64_t)value;
-
-/**
- * Removes the value at the given index.
- *
- * @param index The index of the value to remove.
- **/
-- (void)removeValueAtIndex:(NSUInteger)index;
-
-/**
- * Removes all the values from this array.
- **/
-- (void)removeAll;
-
-/**
- * Exchanges the values between the given indexes.
- *
- * @param idx1 The index of the first element to exchange.
- * @param idx2 The index of the second element to exchange.
- **/
-- (void)exchangeValueAtIndex:(NSUInteger)idx1
- withValueAtIndex:(NSUInteger)idx2;
-
-@end
-
-#pragma mark - Float
-
-/**
- * Class used for repeated fields of float values. This performs better than
- * boxing into NSNumbers in NSArrays.
- *
- * @note This class is not meant to be subclassed.
- **/
-@interface GPBFloatArray : NSObject <NSCopying>
-
-/** The number of elements contained in the array. */
-@property(nonatomic, readonly) NSUInteger count;
-
-/**
- * @return A newly instanced and empty GPBFloatArray.
- **/
-+ (instancetype)array;
-
-/**
- * Creates and initializes a GPBFloatArray with the single element given.
- *
- * @param value The value to be placed in the array.
- *
- * @return A newly instanced GPBFloatArray with value in it.
- **/
-+ (instancetype)arrayWithValue:(float)value;
-
-/**
- * Creates and initializes a GPBFloatArray with the contents of the given
- * array.
- *
- * @param array Array with the contents to be put into the new array.
- *
- * @return A newly instanced GPBFloatArray with the contents of array.
- **/
-+ (instancetype)arrayWithValueArray:(GPBFloatArray *)array;
-
-/**
- * Creates and initializes a GPBFloatArray with the given capacity.
- *
- * @param count The capacity needed for the array.
- *
- * @return A newly instanced GPBFloatArray with a capacity of count.
- **/
-+ (instancetype)arrayWithCapacity:(NSUInteger)count;
-
-/**
- * @return A newly initialized and empty GPBFloatArray.
- **/
-- (instancetype)init NS_DESIGNATED_INITIALIZER;
-
-/**
- * Initializes the array, copying the given values.
- *
- * @param values An array with the values to put inside this array.
- * @param count The number of elements to copy into the array.
- *
- * @return A newly initialized GPBFloatArray with a copy of the values.
- **/
-- (instancetype)initWithValues:(const float [__nullable])values
- count:(NSUInteger)count;
-
-/**
- * Initializes the array, copying the given values.
- *
- * @param array An array with the values to put inside this array.
- *
- * @return A newly initialized GPBFloatArray with a copy of the values.
- **/
-- (instancetype)initWithValueArray:(GPBFloatArray *)array;
-
-/**
- * Initializes the array with the given capacity.
- *
- * @param count The capacity needed for the array.
- *
- * @return A newly initialized GPBFloatArray with a capacity of count.
- **/
-- (instancetype)initWithCapacity:(NSUInteger)count;
-
-/**
- * Gets the value at the given index.
- *
- * @param index The index of the value to get.
- *
- * @return The value at the given index.
- **/
-- (float)valueAtIndex:(NSUInteger)index;
-
-/**
- * Enumerates the values on this array with the given block.
- *
- * @param block The block to enumerate with.
- * **value**: The current value being enumerated.
- * **idx**: The index of the current value.
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateValuesWithBlock:(void (^)(float value, NSUInteger idx, BOOL *stop))block;
-
-/**
- * Enumerates the values on this array with the given block.
- *
- * @param opts Options to control the enumeration.
- * @param block The block to enumerate with.
- * **value**: The current value being enumerated.
- * **idx**: The index of the current value.
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateValuesWithOptions:(NSEnumerationOptions)opts
- usingBlock:(void (^)(float value, NSUInteger idx, BOOL *stop))block;
-
-/**
- * Adds a value to this array.
- *
- * @param value The value to add to this array.
- **/
-- (void)addValue:(float)value;
-
-/**
- * Adds values to this array.
- *
- * @param values The values to add to this array.
- * @param count The number of elements to add.
- **/
-- (void)addValues:(const float [__nullable])values count:(NSUInteger)count;
-
-/**
- * Adds the values from the given array to this array.
- *
- * @param array The array containing the elements to add to this array.
- **/
-- (void)addValuesFromArray:(GPBFloatArray *)array;
-
-/**
- * Inserts a value into the given position.
- *
- * @param value The value to add to this array.
- * @param index The index into which to insert the value.
- **/
-- (void)insertValue:(float)value atIndex:(NSUInteger)index;
-
-/**
- * Replaces the value at the given index with the given value.
- *
- * @param index The index for which to replace the value.
- * @param value The value to replace with.
- **/
-- (void)replaceValueAtIndex:(NSUInteger)index withValue:(float)value;
-
-/**
- * Removes the value at the given index.
- *
- * @param index The index of the value to remove.
- **/
-- (void)removeValueAtIndex:(NSUInteger)index;
-
-/**
- * Removes all the values from this array.
- **/
-- (void)removeAll;
-
-/**
- * Exchanges the values between the given indexes.
- *
- * @param idx1 The index of the first element to exchange.
- * @param idx2 The index of the second element to exchange.
- **/
-- (void)exchangeValueAtIndex:(NSUInteger)idx1
- withValueAtIndex:(NSUInteger)idx2;
-
-@end
-
-#pragma mark - Double
-
-/**
- * Class used for repeated fields of double values. This performs better than
- * boxing into NSNumbers in NSArrays.
- *
- * @note This class is not meant to be subclassed.
- **/
-@interface GPBDoubleArray : NSObject <NSCopying>
-
-/** The number of elements contained in the array. */
-@property(nonatomic, readonly) NSUInteger count;
-
-/**
- * @return A newly instanced and empty GPBDoubleArray.
- **/
-+ (instancetype)array;
-
-/**
- * Creates and initializes a GPBDoubleArray with the single element given.
- *
- * @param value The value to be placed in the array.
- *
- * @return A newly instanced GPBDoubleArray with value in it.
- **/
-+ (instancetype)arrayWithValue:(double)value;
-
-/**
- * Creates and initializes a GPBDoubleArray with the contents of the given
- * array.
- *
- * @param array Array with the contents to be put into the new array.
- *
- * @return A newly instanced GPBDoubleArray with the contents of array.
- **/
-+ (instancetype)arrayWithValueArray:(GPBDoubleArray *)array;
-
-/**
- * Creates and initializes a GPBDoubleArray with the given capacity.
- *
- * @param count The capacity needed for the array.
- *
- * @return A newly instanced GPBDoubleArray with a capacity of count.
- **/
-+ (instancetype)arrayWithCapacity:(NSUInteger)count;
-
-/**
- * @return A newly initialized and empty GPBDoubleArray.
- **/
-- (instancetype)init NS_DESIGNATED_INITIALIZER;
-
-/**
- * Initializes the array, copying the given values.
- *
- * @param values An array with the values to put inside this array.
- * @param count The number of elements to copy into the array.
- *
- * @return A newly initialized GPBDoubleArray with a copy of the values.
- **/
-- (instancetype)initWithValues:(const double [__nullable])values
- count:(NSUInteger)count;
-
-/**
- * Initializes the array, copying the given values.
- *
- * @param array An array with the values to put inside this array.
- *
- * @return A newly initialized GPBDoubleArray with a copy of the values.
- **/
-- (instancetype)initWithValueArray:(GPBDoubleArray *)array;
-
-/**
- * Initializes the array with the given capacity.
- *
- * @param count The capacity needed for the array.
- *
- * @return A newly initialized GPBDoubleArray with a capacity of count.
- **/
-- (instancetype)initWithCapacity:(NSUInteger)count;
-
-/**
- * Gets the value at the given index.
- *
- * @param index The index of the value to get.
- *
- * @return The value at the given index.
- **/
-- (double)valueAtIndex:(NSUInteger)index;
-
-/**
- * Enumerates the values on this array with the given block.
- *
- * @param block The block to enumerate with.
- * **value**: The current value being enumerated.
- * **idx**: The index of the current value.
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateValuesWithBlock:(void (^)(double value, NSUInteger idx, BOOL *stop))block;
-
-/**
- * Enumerates the values on this array with the given block.
- *
- * @param opts Options to control the enumeration.
- * @param block The block to enumerate with.
- * **value**: The current value being enumerated.
- * **idx**: The index of the current value.
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateValuesWithOptions:(NSEnumerationOptions)opts
- usingBlock:(void (^)(double value, NSUInteger idx, BOOL *stop))block;
-
-/**
- * Adds a value to this array.
- *
- * @param value The value to add to this array.
- **/
-- (void)addValue:(double)value;
-
-/**
- * Adds values to this array.
- *
- * @param values The values to add to this array.
- * @param count The number of elements to add.
- **/
-- (void)addValues:(const double [__nullable])values count:(NSUInteger)count;
-
-/**
- * Adds the values from the given array to this array.
- *
- * @param array The array containing the elements to add to this array.
- **/
-- (void)addValuesFromArray:(GPBDoubleArray *)array;
-
-/**
- * Inserts a value into the given position.
- *
- * @param value The value to add to this array.
- * @param index The index into which to insert the value.
- **/
-- (void)insertValue:(double)value atIndex:(NSUInteger)index;
-
-/**
- * Replaces the value at the given index with the given value.
- *
- * @param index The index for which to replace the value.
- * @param value The value to replace with.
- **/
-- (void)replaceValueAtIndex:(NSUInteger)index withValue:(double)value;
-
-/**
- * Removes the value at the given index.
- *
- * @param index The index of the value to remove.
- **/
-- (void)removeValueAtIndex:(NSUInteger)index;
-
-/**
- * Removes all the values from this array.
- **/
-- (void)removeAll;
-
-/**
- * Exchanges the values between the given indexes.
- *
- * @param idx1 The index of the first element to exchange.
- * @param idx2 The index of the second element to exchange.
- **/
-- (void)exchangeValueAtIndex:(NSUInteger)idx1
- withValueAtIndex:(NSUInteger)idx2;
-
-@end
-
-#pragma mark - Bool
-
-/**
- * Class used for repeated fields of BOOL values. This performs better than
- * boxing into NSNumbers in NSArrays.
- *
- * @note This class is not meant to be subclassed.
- **/
-@interface GPBBoolArray : NSObject <NSCopying>
-
-/** The number of elements contained in the array. */
-@property(nonatomic, readonly) NSUInteger count;
-
-/**
- * @return A newly instanced and empty GPBBoolArray.
- **/
-+ (instancetype)array;
-
-/**
- * Creates and initializes a GPBBoolArray with the single element given.
- *
- * @param value The value to be placed in the array.
- *
- * @return A newly instanced GPBBoolArray with value in it.
- **/
-+ (instancetype)arrayWithValue:(BOOL)value;
-
-/**
- * Creates and initializes a GPBBoolArray with the contents of the given
- * array.
- *
- * @param array Array with the contents to be put into the new array.
- *
- * @return A newly instanced GPBBoolArray with the contents of array.
- **/
-+ (instancetype)arrayWithValueArray:(GPBBoolArray *)array;
-
-/**
- * Creates and initializes a GPBBoolArray with the given capacity.
- *
- * @param count The capacity needed for the array.
- *
- * @return A newly instanced GPBBoolArray with a capacity of count.
- **/
-+ (instancetype)arrayWithCapacity:(NSUInteger)count;
-
-/**
- * @return A newly initialized and empty GPBBoolArray.
- **/
-- (instancetype)init NS_DESIGNATED_INITIALIZER;
-
-/**
- * Initializes the array, copying the given values.
- *
- * @param values An array with the values to put inside this array.
- * @param count The number of elements to copy into the array.
- *
- * @return A newly initialized GPBBoolArray with a copy of the values.
- **/
-- (instancetype)initWithValues:(const BOOL [__nullable])values
- count:(NSUInteger)count;
-
-/**
- * Initializes the array, copying the given values.
- *
- * @param array An array with the values to put inside this array.
- *
- * @return A newly initialized GPBBoolArray with a copy of the values.
- **/
-- (instancetype)initWithValueArray:(GPBBoolArray *)array;
-
-/**
- * Initializes the array with the given capacity.
- *
- * @param count The capacity needed for the array.
- *
- * @return A newly initialized GPBBoolArray with a capacity of count.
- **/
-- (instancetype)initWithCapacity:(NSUInteger)count;
-
-/**
- * Gets the value at the given index.
- *
- * @param index The index of the value to get.
- *
- * @return The value at the given index.
- **/
-- (BOOL)valueAtIndex:(NSUInteger)index;
-
-/**
- * Enumerates the values on this array with the given block.
- *
- * @param block The block to enumerate with.
- * **value**: The current value being enumerated.
- * **idx**: The index of the current value.
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateValuesWithBlock:(void (^)(BOOL value, NSUInteger idx, BOOL *stop))block;
-
-/**
- * Enumerates the values on this array with the given block.
- *
- * @param opts Options to control the enumeration.
- * @param block The block to enumerate with.
- * **value**: The current value being enumerated.
- * **idx**: The index of the current value.
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateValuesWithOptions:(NSEnumerationOptions)opts
- usingBlock:(void (^)(BOOL value, NSUInteger idx, BOOL *stop))block;
-
-/**
- * Adds a value to this array.
- *
- * @param value The value to add to this array.
- **/
-- (void)addValue:(BOOL)value;
-
-/**
- * Adds values to this array.
- *
- * @param values The values to add to this array.
- * @param count The number of elements to add.
- **/
-- (void)addValues:(const BOOL [__nullable])values count:(NSUInteger)count;
-
-/**
- * Adds the values from the given array to this array.
- *
- * @param array The array containing the elements to add to this array.
- **/
-- (void)addValuesFromArray:(GPBBoolArray *)array;
-
-/**
- * Inserts a value into the given position.
- *
- * @param value The value to add to this array.
- * @param index The index into which to insert the value.
- **/
-- (void)insertValue:(BOOL)value atIndex:(NSUInteger)index;
-
-/**
- * Replaces the value at the given index with the given value.
- *
- * @param index The index for which to replace the value.
- * @param value The value to replace with.
- **/
-- (void)replaceValueAtIndex:(NSUInteger)index withValue:(BOOL)value;
-
-/**
- * Removes the value at the given index.
- *
- * @param index The index of the value to remove.
- **/
-- (void)removeValueAtIndex:(NSUInteger)index;
-
-/**
- * Removes all the values from this array.
- **/
-- (void)removeAll;
-
-/**
- * Exchanges the values between the given indexes.
- *
- * @param idx1 The index of the first element to exchange.
- * @param idx2 The index of the second element to exchange.
- **/
-- (void)exchangeValueAtIndex:(NSUInteger)idx1
- withValueAtIndex:(NSUInteger)idx2;
-
-@end
-
-#pragma mark - Enum
-
-/**
- * This class is used for repeated fields of int32_t values. This performs
- * better than boxing into NSNumbers in NSArrays.
- *
- * @note This class is not meant to be subclassed.
- **/
-@interface GPBEnumArray : NSObject <NSCopying>
-
-/** The number of elements contained in the array. */
-@property(nonatomic, readonly) NSUInteger count;
-/** The validation function to check if the enums are valid. */
-@property(nonatomic, readonly) GPBEnumValidationFunc validationFunc;
-
-/**
- * @return A newly instanced and empty GPBEnumArray.
- **/
-+ (instancetype)array;
-
-/**
- * Creates and initializes a GPBEnumArray with the enum validation function
- * given.
- *
- * @param func The enum validation function for the array.
- *
- * @return A newly instanced GPBEnumArray.
- **/
-+ (instancetype)arrayWithValidationFunction:(nullable GPBEnumValidationFunc)func;
-
-/**
- * Creates and initializes a GPBEnumArray with the enum validation function
- * given and the single raw value given.
- *
- * @param func The enum validation function for the array.
- * @param value The raw value to add to this array.
- *
- * @return A newly instanced GPBEnumArray.
- **/
-+ (instancetype)arrayWithValidationFunction:(nullable GPBEnumValidationFunc)func
- rawValue:(int32_t)value;
-
-/**
- * Creates and initializes a GPBEnumArray that adds the elements from the
- * given array.
- *
- * @param array Array containing the values to add to the new array.
- *
- * @return A newly instanced GPBEnumArray.
- **/
-+ (instancetype)arrayWithValueArray:(GPBEnumArray *)array;
-
-/**
- * Creates and initializes a GPBEnumArray with the given enum validation
- * function and with the givencapacity.
- *
- * @param func The enum validation function for the array.
- * @param count The capacity needed for the array.
- *
- * @return A newly instanced GPBEnumArray with a capacity of count.
- **/
-+ (instancetype)arrayWithValidationFunction:(nullable GPBEnumValidationFunc)func
- capacity:(NSUInteger)count;
-
-/**
- * Initializes the array with the given enum validation function.
- *
- * @param func The enum validation function for the array.
- *
- * @return A newly initialized GPBEnumArray with a copy of the values.
- **/
-- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func
- NS_DESIGNATED_INITIALIZER;
-
-/**
- * Initializes the array, copying the given values.
- *
- * @param func The enum validation function for the array.
- * @param values An array with the values to put inside this array.
- * @param count The number of elements to copy into the array.
- *
- * @return A newly initialized GPBEnumArray with a copy of the values.
- **/
-- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func
- rawValues:(const int32_t [__nullable])values
- count:(NSUInteger)count;
-
-/**
- * Initializes the array, copying the given values.
- *
- * @param array An array with the values to put inside this array.
- *
- * @return A newly initialized GPBEnumArray with a copy of the values.
- **/
-- (instancetype)initWithValueArray:(GPBEnumArray *)array;
-
-/**
- * Initializes the array with the given capacity.
- *
- * @param func The enum validation function for the array.
- * @param count The capacity needed for the array.
- *
- * @return A newly initialized GPBEnumArray with a capacity of count.
- **/
-- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func
- capacity:(NSUInteger)count;
-
-// These will return kGPBUnrecognizedEnumeratorValue if the value at index is not a
-// valid enumerator as defined by validationFunc. If the actual value is
-// desired, use "raw" version of the method.
-
-/**
- * Gets the value at the given index.
- *
- * @param index The index of the value to get.
- *
- * @return The value at the given index.
- **/
-- (int32_t)valueAtIndex:(NSUInteger)index;
-
-/**
- * Enumerates the values on this array with the given block.
- *
- * @param block The block to enumerate with.
- * **value**: The current value being enumerated.
- * **idx**: The index of the current value.
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateValuesWithBlock:(void (^)(int32_t value, NSUInteger idx, BOOL *stop))block;
-
-/**
- * Enumerates the values on this array with the given block.
- *
- * @param opts Options to control the enumeration.
- * @param block The block to enumerate with.
- * **value**: The current value being enumerated.
- * **idx**: The index of the current value.
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateValuesWithOptions:(NSEnumerationOptions)opts
- usingBlock:(void (^)(int32_t value, NSUInteger idx, BOOL *stop))block;
-
-// These methods bypass the validationFunc to provide access to values that were not
-// known at the time the binary was compiled.
-
-/**
- * Gets the raw enum value at the given index.
- *
- * @param index The index of the raw enum value to get.
- *
- * @return The raw enum value at the given index.
- **/
-- (int32_t)rawValueAtIndex:(NSUInteger)index;
-
-/**
- * Enumerates the values on this array with the given block.
- *
- * @param block The block to enumerate with.
- * **value**: The current value being enumerated.
- * **idx**: The index of the current value.
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateRawValuesWithBlock:(void (^)(int32_t value, NSUInteger idx, BOOL *stop))block;
-
-/**
- * Enumerates the values on this array with the given block.
- *
- * @param opts Options to control the enumeration.
- * @param block The block to enumerate with.
- * **value**: The current value being enumerated.
- * **idx**: The index of the current value.
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateRawValuesWithOptions:(NSEnumerationOptions)opts
- usingBlock:(void (^)(int32_t value, NSUInteger idx, BOOL *stop))block;
-
-// If value is not a valid enumerator as defined by validationFunc, these
-// methods will assert in debug, and will log in release and assign the value
-// to the default value. Use the rawValue methods below to assign non enumerator
-// values.
-
-/**
- * Adds a value to this array.
- *
- * @param value The value to add to this array.
- **/
-- (void)addValue:(int32_t)value;
-
-/**
- * Adds values to this array.
- *
- * @param values The values to add to this array.
- * @param count The number of elements to add.
- **/
-- (void)addValues:(const int32_t [__nullable])values count:(NSUInteger)count;
-
-
-/**
- * Inserts a value into the given position.
- *
- * @param value The value to add to this array.
- * @param index The index into which to insert the value.
- **/
-- (void)insertValue:(int32_t)value atIndex:(NSUInteger)index;
-
-/**
- * Replaces the value at the given index with the given value.
- *
- * @param index The index for which to replace the value.
- * @param value The value to replace with.
- **/
-- (void)replaceValueAtIndex:(NSUInteger)index withValue:(int32_t)value;
-
-// These methods bypass the validationFunc to provide setting of values that were not
-// known at the time the binary was compiled.
-
-/**
- * Adds a raw enum value to this array.
- *
- * @note This method bypass the validationFunc to enable the setting of values that
- * were not known at the time the binary was compiled.
- *
- * @param value The raw enum value to add to the array.
- **/
-- (void)addRawValue:(int32_t)value;
-
-/**
- * Adds raw enum values to this array.
- *
- * @note This method bypass the validationFunc to enable the setting of values that
- * were not known at the time the binary was compiled.
- *
- * @param array Array containing the raw enum values to add to this array.
- **/
-- (void)addRawValuesFromArray:(GPBEnumArray *)array;
-
-/**
- * Adds raw enum values to this array.
- *
- * @note This method bypass the validationFunc to enable the setting of values that
- * were not known at the time the binary was compiled.
- *
- * @param values Array containing the raw enum values to add to this array.
- * @param count The number of raw values to add.
- **/
-- (void)addRawValues:(const int32_t [__nullable])values count:(NSUInteger)count;
-
-/**
- * Inserts a raw enum value at the given index.
- *
- * @note This method bypass the validationFunc to enable the setting of values that
- * were not known at the time the binary was compiled.
- *
- * @param value Raw enum value to add.
- * @param index The index into which to insert the value.
- **/
-- (void)insertRawValue:(int32_t)value atIndex:(NSUInteger)index;
-
-/**
- * Replaces the raw enum value at the given index with the given value.
- *
- * @note This method bypass the validationFunc to enable the setting of values that
- * were not known at the time the binary was compiled.
- *
- * @param index The index for which to replace the value.
- * @param value The raw enum value to replace with.
- **/
-- (void)replaceValueAtIndex:(NSUInteger)index withRawValue:(int32_t)value;
-
-// No validation applies to these methods.
-
-/**
- * Removes the value at the given index.
- *
- * @param index The index of the value to remove.
- **/
-- (void)removeValueAtIndex:(NSUInteger)index;
-
-/**
- * Removes all the values from this array.
- **/
-- (void)removeAll;
-
-/**
- * Exchanges the values between the given indexes.
- *
- * @param idx1 The index of the first element to exchange.
- * @param idx2 The index of the second element to exchange.
- **/
-- (void)exchangeValueAtIndex:(NSUInteger)idx1
- withValueAtIndex:(NSUInteger)idx2;
-
-@end
-
-//%PDDM-EXPAND-END DECLARE_ARRAYS()
-
-NS_ASSUME_NONNULL_END
-
-//%PDDM-DEFINE DECLARE_ARRAYS()
-//%ARRAY_INTERFACE_SIMPLE(Int32, int32_t)
-//%ARRAY_INTERFACE_SIMPLE(UInt32, uint32_t)
-//%ARRAY_INTERFACE_SIMPLE(Int64, int64_t)
-//%ARRAY_INTERFACE_SIMPLE(UInt64, uint64_t)
-//%ARRAY_INTERFACE_SIMPLE(Float, float)
-//%ARRAY_INTERFACE_SIMPLE(Double, double)
-//%ARRAY_INTERFACE_SIMPLE(Bool, BOOL)
-//%ARRAY_INTERFACE_ENUM(Enum, int32_t)
-
-//
-// The common case (everything but Enum)
-//
-
-//%PDDM-DEFINE ARRAY_INTERFACE_SIMPLE(NAME, TYPE)
-//%#pragma mark - NAME
-//%
-//%/**
-//% * Class used for repeated fields of ##TYPE## values. This performs better than
-//% * boxing into NSNumbers in NSArrays.
-//% *
-//% * @note This class is not meant to be subclassed.
-//% **/
-//%@interface GPB##NAME##Array : NSObject <NSCopying>
-//%
-//%/** The number of elements contained in the array. */
-//%@property(nonatomic, readonly) NSUInteger count;
-//%
-//%/**
-//% * @return A newly instanced and empty GPB##NAME##Array.
-//% **/
-//%+ (instancetype)array;
-//%
-//%/**
-//% * Creates and initializes a GPB##NAME##Array with the single element given.
-//% *
-//% * @param value The value to be placed in the array.
-//% *
-//% * @return A newly instanced GPB##NAME##Array with value in it.
-//% **/
-//%+ (instancetype)arrayWithValue:(TYPE)value;
-//%
-//%/**
-//% * Creates and initializes a GPB##NAME##Array with the contents of the given
-//% * array.
-//% *
-//% * @param array Array with the contents to be put into the new array.
-//% *
-//% * @return A newly instanced GPB##NAME##Array with the contents of array.
-//% **/
-//%+ (instancetype)arrayWithValueArray:(GPB##NAME##Array *)array;
-//%
-//%/**
-//% * Creates and initializes a GPB##NAME##Array with the given capacity.
-//% *
-//% * @param count The capacity needed for the array.
-//% *
-//% * @return A newly instanced GPB##NAME##Array with a capacity of count.
-//% **/
-//%+ (instancetype)arrayWithCapacity:(NSUInteger)count;
-//%
-//%/**
-//% * @return A newly initialized and empty GPB##NAME##Array.
-//% **/
-//%- (instancetype)init NS_DESIGNATED_INITIALIZER;
-//%
-//%/**
-//% * Initializes the array, copying the given values.
-//% *
-//% * @param values An array with the values to put inside this array.
-//% * @param count The number of elements to copy into the array.
-//% *
-//% * @return A newly initialized GPB##NAME##Array with a copy of the values.
-//% **/
-//%- (instancetype)initWithValues:(const TYPE [__nullable])values
-//% count:(NSUInteger)count;
-//%
-//%/**
-//% * Initializes the array, copying the given values.
-//% *
-//% * @param array An array with the values to put inside this array.
-//% *
-//% * @return A newly initialized GPB##NAME##Array with a copy of the values.
-//% **/
-//%- (instancetype)initWithValueArray:(GPB##NAME##Array *)array;
-//%
-//%/**
-//% * Initializes the array with the given capacity.
-//% *
-//% * @param count The capacity needed for the array.
-//% *
-//% * @return A newly initialized GPB##NAME##Array with a capacity of count.
-//% **/
-//%- (instancetype)initWithCapacity:(NSUInteger)count;
-//%
-//%ARRAY_IMMUTABLE_INTERFACE(NAME, TYPE, Basic)
-//%
-//%ARRAY_MUTABLE_INTERFACE(NAME, TYPE, Basic)
-//%
-//%@end
-//%
-
-//
-// Macros specific to Enums (to tweak their interface).
-//
-
-//%PDDM-DEFINE ARRAY_INTERFACE_ENUM(NAME, TYPE)
-//%#pragma mark - NAME
-//%
-//%/**
-//% * This class is used for repeated fields of ##TYPE## values. This performs
-//% * better than boxing into NSNumbers in NSArrays.
-//% *
-//% * @note This class is not meant to be subclassed.
-//% **/
-//%@interface GPB##NAME##Array : NSObject <NSCopying>
-//%
-//%/** The number of elements contained in the array. */
-//%@property(nonatomic, readonly) NSUInteger count;
-//%/** The validation function to check if the enums are valid. */
-//%@property(nonatomic, readonly) GPBEnumValidationFunc validationFunc;
-//%
-//%/**
-//% * @return A newly instanced and empty GPB##NAME##Array.
-//% **/
-//%+ (instancetype)array;
-//%
-//%/**
-//% * Creates and initializes a GPB##NAME##Array with the enum validation function
-//% * given.
-//% *
-//% * @param func The enum validation function for the array.
-//% *
-//% * @return A newly instanced GPB##NAME##Array.
-//% **/
-//%+ (instancetype)arrayWithValidationFunction:(nullable GPBEnumValidationFunc)func;
-//%
-//%/**
-//% * Creates and initializes a GPB##NAME##Array with the enum validation function
-//% * given and the single raw value given.
-//% *
-//% * @param func The enum validation function for the array.
-//% * @param value The raw value to add to this array.
-//% *
-//% * @return A newly instanced GPB##NAME##Array.
-//% **/
-//%+ (instancetype)arrayWithValidationFunction:(nullable GPBEnumValidationFunc)func
-//% rawValue:(TYPE)value;
-//%
-//%/**
-//% * Creates and initializes a GPB##NAME##Array that adds the elements from the
-//% * given array.
-//% *
-//% * @param array Array containing the values to add to the new array.
-//% *
-//% * @return A newly instanced GPB##NAME##Array.
-//% **/
-//%+ (instancetype)arrayWithValueArray:(GPB##NAME##Array *)array;
-//%
-//%/**
-//% * Creates and initializes a GPB##NAME##Array with the given enum validation
-//% * function and with the givencapacity.
-//% *
-//% * @param func The enum validation function for the array.
-//% * @param count The capacity needed for the array.
-//% *
-//% * @return A newly instanced GPB##NAME##Array with a capacity of count.
-//% **/
-//%+ (instancetype)arrayWithValidationFunction:(nullable GPBEnumValidationFunc)func
-//% capacity:(NSUInteger)count;
-//%
-//%/**
-//% * Initializes the array with the given enum validation function.
-//% *
-//% * @param func The enum validation function for the array.
-//% *
-//% * @return A newly initialized GPB##NAME##Array with a copy of the values.
-//% **/
-//%- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func
-//% NS_DESIGNATED_INITIALIZER;
-//%
-//%/**
-//% * Initializes the array, copying the given values.
-//% *
-//% * @param func The enum validation function for the array.
-//% * @param values An array with the values to put inside this array.
-//% * @param count The number of elements to copy into the array.
-//% *
-//% * @return A newly initialized GPB##NAME##Array with a copy of the values.
-//% **/
-//%- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func
-//% rawValues:(const TYPE [__nullable])values
-//% count:(NSUInteger)count;
-//%
-//%/**
-//% * Initializes the array, copying the given values.
-//% *
-//% * @param array An array with the values to put inside this array.
-//% *
-//% * @return A newly initialized GPB##NAME##Array with a copy of the values.
-//% **/
-//%- (instancetype)initWithValueArray:(GPB##NAME##Array *)array;
-//%
-//%/**
-//% * Initializes the array with the given capacity.
-//% *
-//% * @param func The enum validation function for the array.
-//% * @param count The capacity needed for the array.
-//% *
-//% * @return A newly initialized GPB##NAME##Array with a capacity of count.
-//% **/
-//%- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func
-//% capacity:(NSUInteger)count;
-//%
-//%// These will return kGPBUnrecognizedEnumeratorValue if the value at index is not a
-//%// valid enumerator as defined by validationFunc. If the actual value is
-//%// desired, use "raw" version of the method.
-//%
-//%ARRAY_IMMUTABLE_INTERFACE(NAME, TYPE, NAME)
-//%
-//%// These methods bypass the validationFunc to provide access to values that were not
-//%// known at the time the binary was compiled.
-//%
-//%/**
-//% * Gets the raw enum value at the given index.
-//% *
-//% * @param index The index of the raw enum value to get.
-//% *
-//% * @return The raw enum value at the given index.
-//% **/
-//%- (TYPE)rawValueAtIndex:(NSUInteger)index;
-//%
-//%/**
-//% * Enumerates the values on this array with the given block.
-//% *
-//% * @param block The block to enumerate with.
-//% * **value**: The current value being enumerated.
-//% * **idx**: The index of the current value.
-//% * **stop**: A pointer to a boolean that when set stops the enumeration.
-//% **/
-//%- (void)enumerateRawValuesWithBlock:(void (^)(TYPE value, NSUInteger idx, BOOL *stop))block;
-//%
-//%/**
-//% * Enumerates the values on this array with the given block.
-//% *
-//% * @param opts Options to control the enumeration.
-//% * @param block The block to enumerate with.
-//% * **value**: The current value being enumerated.
-//% * **idx**: The index of the current value.
-//% * **stop**: A pointer to a boolean that when set stops the enumeration.
-//% **/
-//%- (void)enumerateRawValuesWithOptions:(NSEnumerationOptions)opts
-//% usingBlock:(void (^)(TYPE value, NSUInteger idx, BOOL *stop))block;
-//%
-//%// If value is not a valid enumerator as defined by validationFunc, these
-//%// methods will assert in debug, and will log in release and assign the value
-//%// to the default value. Use the rawValue methods below to assign non enumerator
-//%// values.
-//%
-//%ARRAY_MUTABLE_INTERFACE(NAME, TYPE, NAME)
-//%
-//%@end
-//%
-
-//%PDDM-DEFINE ARRAY_IMMUTABLE_INTERFACE(NAME, TYPE, HELPER_NAME)
-//%/**
-//% * Gets the value at the given index.
-//% *
-//% * @param index The index of the value to get.
-//% *
-//% * @return The value at the given index.
-//% **/
-//%- (TYPE)valueAtIndex:(NSUInteger)index;
-//%
-//%/**
-//% * Enumerates the values on this array with the given block.
-//% *
-//% * @param block The block to enumerate with.
-//% * **value**: The current value being enumerated.
-//% * **idx**: The index of the current value.
-//% * **stop**: A pointer to a boolean that when set stops the enumeration.
-//% **/
-//%- (void)enumerateValuesWithBlock:(void (^)(TYPE value, NSUInteger idx, BOOL *stop))block;
-//%
-//%/**
-//% * Enumerates the values on this array with the given block.
-//% *
-//% * @param opts Options to control the enumeration.
-//% * @param block The block to enumerate with.
-//% * **value**: The current value being enumerated.
-//% * **idx**: The index of the current value.
-//% * **stop**: A pointer to a boolean that when set stops the enumeration.
-//% **/
-//%- (void)enumerateValuesWithOptions:(NSEnumerationOptions)opts
-//% usingBlock:(void (^)(TYPE value, NSUInteger idx, BOOL *stop))block;
-
-//%PDDM-DEFINE ARRAY_MUTABLE_INTERFACE(NAME, TYPE, HELPER_NAME)
-//%/**
-//% * Adds a value to this array.
-//% *
-//% * @param value The value to add to this array.
-//% **/
-//%- (void)addValue:(TYPE)value;
-//%
-//%/**
-//% * Adds values to this array.
-//% *
-//% * @param values The values to add to this array.
-//% * @param count The number of elements to add.
-//% **/
-//%- (void)addValues:(const TYPE [__nullable])values count:(NSUInteger)count;
-//%
-//%ARRAY_EXTRA_MUTABLE_METHODS1_##HELPER_NAME(NAME, TYPE)
-//%/**
-//% * Inserts a value into the given position.
-//% *
-//% * @param value The value to add to this array.
-//% * @param index The index into which to insert the value.
-//% **/
-//%- (void)insertValue:(TYPE)value atIndex:(NSUInteger)index;
-//%
-//%/**
-//% * Replaces the value at the given index with the given value.
-//% *
-//% * @param index The index for which to replace the value.
-//% * @param value The value to replace with.
-//% **/
-//%- (void)replaceValueAtIndex:(NSUInteger)index withValue:(TYPE)value;
-//%ARRAY_EXTRA_MUTABLE_METHODS2_##HELPER_NAME(NAME, TYPE)
-//%/**
-//% * Removes the value at the given index.
-//% *
-//% * @param index The index of the value to remove.
-//% **/
-//%- (void)removeValueAtIndex:(NSUInteger)index;
-//%
-//%/**
-//% * Removes all the values from this array.
-//% **/
-//%- (void)removeAll;
-//%
-//%/**
-//% * Exchanges the values between the given indexes.
-//% *
-//% * @param idx1 The index of the first element to exchange.
-//% * @param idx2 The index of the second element to exchange.
-//% **/
-//%- (void)exchangeValueAtIndex:(NSUInteger)idx1
-//% withValueAtIndex:(NSUInteger)idx2;
-
-//
-// These are hooks invoked by the above to do insert as needed.
-//
-
-//%PDDM-DEFINE ARRAY_EXTRA_MUTABLE_METHODS1_Basic(NAME, TYPE)
-//%/**
-//% * Adds the values from the given array to this array.
-//% *
-//% * @param array The array containing the elements to add to this array.
-//% **/
-//%- (void)addValuesFromArray:(GPB##NAME##Array *)array;
-//%
-//%PDDM-DEFINE ARRAY_EXTRA_MUTABLE_METHODS2_Basic(NAME, TYPE)
-// Empty
-//%PDDM-DEFINE ARRAY_EXTRA_MUTABLE_METHODS1_Enum(NAME, TYPE)
-// Empty
-//%PDDM-DEFINE ARRAY_EXTRA_MUTABLE_METHODS2_Enum(NAME, TYPE)
-//%
-//%// These methods bypass the validationFunc to provide setting of values that were not
-//%// known at the time the binary was compiled.
-//%
-//%/**
-//% * Adds a raw enum value to this array.
-//% *
-//% * @note This method bypass the validationFunc to enable the setting of values that
-//% * were not known at the time the binary was compiled.
-//% *
-//% * @param value The raw enum value to add to the array.
-//% **/
-//%- (void)addRawValue:(TYPE)value;
-//%
-//%/**
-//% * Adds raw enum values to this array.
-//% *
-//% * @note This method bypass the validationFunc to enable the setting of values that
-//% * were not known at the time the binary was compiled.
-//% *
-//% * @param array Array containing the raw enum values to add to this array.
-//% **/
-//%- (void)addRawValuesFromArray:(GPB##NAME##Array *)array;
-//%
-//%/**
-//% * Adds raw enum values to this array.
-//% *
-//% * @note This method bypass the validationFunc to enable the setting of values that
-//% * were not known at the time the binary was compiled.
-//% *
-//% * @param values Array containing the raw enum values to add to this array.
-//% * @param count The number of raw values to add.
-//% **/
-//%- (void)addRawValues:(const TYPE [__nullable])values count:(NSUInteger)count;
-//%
-//%/**
-//% * Inserts a raw enum value at the given index.
-//% *
-//% * @note This method bypass the validationFunc to enable the setting of values that
-//% * were not known at the time the binary was compiled.
-//% *
-//% * @param value Raw enum value to add.
-//% * @param index The index into which to insert the value.
-//% **/
-//%- (void)insertRawValue:(TYPE)value atIndex:(NSUInteger)index;
-//%
-//%/**
-//% * Replaces the raw enum value at the given index with the given value.
-//% *
-//% * @note This method bypass the validationFunc to enable the setting of values that
-//% * were not known at the time the binary was compiled.
-//% *
-//% * @param index The index for which to replace the value.
-//% * @param value The raw enum value to replace with.
-//% **/
-//%- (void)replaceValueAtIndex:(NSUInteger)index withRawValue:(TYPE)value;
-//%
-//%// No validation applies to these methods.
-//%
diff --git a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBArray.m b/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBArray.m
deleted file mode 100644
index f401631d..00000000
--- a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBArray.m
+++ /dev/null
@@ -1,2551 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2015 Google Inc. All rights reserved.
-// https://developers.google.com/protocol-buffers/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#import "GPBArray_PackagePrivate.h"
-
-#import "GPBMessage_PackagePrivate.h"
-
-// Direct access is use for speed, to avoid even internally declaring things
-// read/write, etc. The warning is enabled in the project to ensure code calling
-// protos can turn on -Wdirect-ivar-access without issues.
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wdirect-ivar-access"
-
-// Mutable arrays use an internal buffer that can always hold a multiple of this elements.
-#define kChunkSize 16
-#define CapacityFromCount(x) (((x / kChunkSize) + 1) * kChunkSize)
-
-static BOOL ArrayDefault_IsValidValue(int32_t value) {
- // Anything but the bad value marker is allowed.
- return (value != kGPBUnrecognizedEnumeratorValue);
-}
-
-//%PDDM-DEFINE VALIDATE_RANGE(INDEX, COUNT)
-//% if (INDEX >= COUNT) {
-//% [NSException raise:NSRangeException
-//% format:@"Index (%lu) beyond bounds (%lu)",
-//% (unsigned long)INDEX, (unsigned long)COUNT];
-//% }
-//%PDDM-DEFINE MAYBE_GROW_TO_SET_COUNT(NEW_COUNT)
-//% if (NEW_COUNT > _capacity) {
-//% [self internalResizeToCapacity:CapacityFromCount(NEW_COUNT)];
-//% }
-//% _count = NEW_COUNT;
-//%PDDM-DEFINE SET_COUNT_AND_MAYBE_SHRINK(NEW_COUNT)
-//% _count = NEW_COUNT;
-//% if ((NEW_COUNT + (2 * kChunkSize)) < _capacity) {
-//% [self internalResizeToCapacity:CapacityFromCount(NEW_COUNT)];
-//% }
-
-//
-// Macros for the common basic cases.
-//
-
-//%PDDM-DEFINE ARRAY_INTERFACE_SIMPLE(NAME, TYPE, FORMAT)
-//%#pragma mark - NAME
-//%
-//%@implementation GPB##NAME##Array {
-//% @package
-//% TYPE *_values;
-//% NSUInteger _count;
-//% NSUInteger _capacity;
-//%}
-//%
-//%@synthesize count = _count;
-//%
-//%+ (instancetype)array {
-//% return [[[self alloc] init] autorelease];
-//%}
-//%
-//%+ (instancetype)arrayWithValue:(TYPE)value {
-//% // Cast is needed so the compiler knows what class we are invoking initWithValues: on to get
-//% // the type correct.
-//% return [[(GPB##NAME##Array*)[self alloc] initWithValues:&value count:1] autorelease];
-//%}
-//%
-//%+ (instancetype)arrayWithValueArray:(GPB##NAME##Array *)array {
-//% return [[(GPB##NAME##Array*)[self alloc] initWithValueArray:array] autorelease];
-//%}
-//%
-//%+ (instancetype)arrayWithCapacity:(NSUInteger)count {
-//% return [[[self alloc] initWithCapacity:count] autorelease];
-//%}
-//%
-//%- (instancetype)init {
-//% self = [super init];
-//% // No work needed;
-//% return self;
-//%}
-//%
-//%- (instancetype)initWithValueArray:(GPB##NAME##Array *)array {
-//% return [self initWithValues:array->_values count:array->_count];
-//%}
-//%
-//%- (instancetype)initWithValues:(const TYPE [])values count:(NSUInteger)count {
-//% self = [self init];
-//% if (self) {
-//% if (count && values) {
-//% _values = reallocf(_values, count * sizeof(TYPE));
-//% if (_values != NULL) {
-//% _capacity = count;
-//% memcpy(_values, values, count * sizeof(TYPE));
-//% _count = count;
-//% } else {
-//% [self release];
-//% [NSException raise:NSMallocException
-//% format:@"Failed to allocate %lu bytes",
-//% (unsigned long)(count * sizeof(TYPE))];
-//% }
-//% }
-//% }
-//% return self;
-//%}
-//%
-//%- (instancetype)initWithCapacity:(NSUInteger)count {
-//% self = [self initWithValues:NULL count:0];
-//% if (self && count) {
-//% [self internalResizeToCapacity:count];
-//% }
-//% return self;
-//%}
-//%
-//%- (instancetype)copyWithZone:(NSZone *)zone {
-//% return [[GPB##NAME##Array allocWithZone:zone] initWithValues:_values count:_count];
-//%}
-//%
-//%ARRAY_IMMUTABLE_CORE(NAME, TYPE, , FORMAT)
-//%
-//%- (TYPE)valueAtIndex:(NSUInteger)index {
-//%VALIDATE_RANGE(index, _count)
-//% return _values[index];
-//%}
-//%
-//%ARRAY_MUTABLE_CORE(NAME, TYPE, , FORMAT)
-//%@end
-//%
-
-//
-// Some core macros used for both the simple types and Enums.
-//
-
-//%PDDM-DEFINE ARRAY_IMMUTABLE_CORE(NAME, TYPE, ACCESSOR_NAME, FORMAT)
-//%- (void)dealloc {
-//% NSAssert(!_autocreator,
-//% @"%@: Autocreator must be cleared before release, autocreator: %@",
-//% [self class], _autocreator);
-//% free(_values);
-//% [super dealloc];
-//%}
-//%
-//%- (BOOL)isEqual:(id)other {
-//% if (self == other) {
-//% return YES;
-//% }
-//% if (![other isKindOfClass:[GPB##NAME##Array class]]) {
-//% return NO;
-//% }
-//% GPB##NAME##Array *otherArray = other;
-//% return (_count == otherArray->_count
-//% && memcmp(_values, otherArray->_values, (_count * sizeof(TYPE))) == 0);
-//%}
-//%
-//%- (NSUInteger)hash {
-//% // Follow NSArray's lead, and use the count as the hash.
-//% return _count;
-//%}
-//%
-//%- (NSString *)description {
-//% NSMutableString *result = [NSMutableString stringWithFormat:@"<%@ %p> { ", [self class], self];
-//% for (NSUInteger i = 0, count = _count; i < count; ++i) {
-//% if (i == 0) {
-//% [result appendFormat:@"##FORMAT##", _values[i]];
-//% } else {
-//% [result appendFormat:@", ##FORMAT##", _values[i]];
-//% }
-//% }
-//% [result appendFormat:@" }"];
-//% return result;
-//%}
-//%
-//%- (void)enumerate##ACCESSOR_NAME##ValuesWithBlock:(void (^)(TYPE value, NSUInteger idx, BOOL *stop))block {
-//% [self enumerate##ACCESSOR_NAME##ValuesWithOptions:(NSEnumerationOptions)0 usingBlock:block];
-//%}
-//%
-//%- (void)enumerate##ACCESSOR_NAME##ValuesWithOptions:(NSEnumerationOptions)opts
-//% ACCESSOR_NAME$S usingBlock:(void (^)(TYPE value, NSUInteger idx, BOOL *stop))block {
-//% // NSEnumerationConcurrent isn't currently supported (and Apple's docs say that is ok).
-//% BOOL stop = NO;
-//% if ((opts & NSEnumerationReverse) == 0) {
-//% for (NSUInteger i = 0, count = _count; i < count; ++i) {
-//% block(_values[i], i, &stop);
-//% if (stop) break;
-//% }
-//% } else if (_count > 0) {
-//% for (NSUInteger i = _count; i > 0; --i) {
-//% block(_values[i - 1], (i - 1), &stop);
-//% if (stop) break;
-//% }
-//% }
-//%}
-
-//%PDDM-DEFINE MUTATION_HOOK_None()
-//%PDDM-DEFINE MUTATION_METHODS(NAME, TYPE, ACCESSOR_NAME, HOOK_1, HOOK_2)
-//%- (void)add##ACCESSOR_NAME##Value:(TYPE)value {
-//% [self add##ACCESSOR_NAME##Values:&value count:1];
-//%}
-//%
-//%- (void)add##ACCESSOR_NAME##Values:(const TYPE [])values count:(NSUInteger)count {
-//% if (values == NULL || count == 0) return;
-//%MUTATION_HOOK_##HOOK_1() NSUInteger initialCount = _count;
-//% NSUInteger newCount = initialCount + count;
-//%MAYBE_GROW_TO_SET_COUNT(newCount)
-//% memcpy(&_values[initialCount], values, count * sizeof(TYPE));
-//% if (_autocreator) {
-//% GPBAutocreatedArrayModified(_autocreator, self);
-//% }
-//%}
-//%
-//%- (void)insert##ACCESSOR_NAME##Value:(TYPE)value atIndex:(NSUInteger)index {
-//%VALIDATE_RANGE(index, _count + 1)
-//%MUTATION_HOOK_##HOOK_2() NSUInteger initialCount = _count;
-//% NSUInteger newCount = initialCount + 1;
-//%MAYBE_GROW_TO_SET_COUNT(newCount)
-//% if (index != initialCount) {
-//% memmove(&_values[index + 1], &_values[index], (initialCount - index) * sizeof(TYPE));
-//% }
-//% _values[index] = value;
-//% if (_autocreator) {
-//% GPBAutocreatedArrayModified(_autocreator, self);
-//% }
-//%}
-//%
-//%- (void)replaceValueAtIndex:(NSUInteger)index with##ACCESSOR_NAME##Value:(TYPE)value {
-//%VALIDATE_RANGE(index, _count)
-//%MUTATION_HOOK_##HOOK_2() _values[index] = value;
-//%}
-
-//%PDDM-DEFINE ARRAY_MUTABLE_CORE(NAME, TYPE, ACCESSOR_NAME, FORMAT)
-//%- (void)internalResizeToCapacity:(NSUInteger)newCapacity {
-//% _values = reallocf(_values, newCapacity * sizeof(TYPE));
-//% if (_values == NULL) {
-//% _capacity = 0;
-//% _count = 0;
-//% [NSException raise:NSMallocException
-//% format:@"Failed to allocate %lu bytes",
-//% (unsigned long)(newCapacity * sizeof(TYPE))];
-//% }
-//% _capacity = newCapacity;
-//%}
-//%
-//%MUTATION_METHODS(NAME, TYPE, ACCESSOR_NAME, None, None)
-//%
-//%- (void)add##ACCESSOR_NAME##ValuesFromArray:(GPB##NAME##Array *)array {
-//% [self add##ACCESSOR_NAME##Values:array->_values count:array->_count];
-//%}
-//%
-//%- (void)removeValueAtIndex:(NSUInteger)index {
-//%VALIDATE_RANGE(index, _count)
-//% NSUInteger newCount = _count - 1;
-//% if (index != newCount) {
-//% memmove(&_values[index], &_values[index + 1], (newCount - index) * sizeof(TYPE));
-//% }
-//%SET_COUNT_AND_MAYBE_SHRINK(newCount)
-//%}
-//%
-//%- (void)removeAll {
-//%SET_COUNT_AND_MAYBE_SHRINK(0)
-//%}
-//%
-//%- (void)exchangeValueAtIndex:(NSUInteger)idx1
-//% withValueAtIndex:(NSUInteger)idx2 {
-//%VALIDATE_RANGE(idx1, _count)
-//%VALIDATE_RANGE(idx2, _count)
-//% TYPE temp = _values[idx1];
-//% _values[idx1] = _values[idx2];
-//% _values[idx2] = temp;
-//%}
-//%
-
-//%PDDM-EXPAND ARRAY_INTERFACE_SIMPLE(Int32, int32_t, %d)
-// This block of code is generated, do not edit it directly.
-
-#pragma mark - Int32
-
-@implementation GPBInt32Array {
- @package
- int32_t *_values;
- NSUInteger _count;
- NSUInteger _capacity;
-}
-
-@synthesize count = _count;
-
-+ (instancetype)array {
- return [[[self alloc] init] autorelease];
-}
-
-+ (instancetype)arrayWithValue:(int32_t)value {
- // Cast is needed so the compiler knows what class we are invoking initWithValues: on to get
- // the type correct.
- return [[(GPBInt32Array*)[self alloc] initWithValues:&value count:1] autorelease];
-}
-
-+ (instancetype)arrayWithValueArray:(GPBInt32Array *)array {
- return [[(GPBInt32Array*)[self alloc] initWithValueArray:array] autorelease];
-}
-
-+ (instancetype)arrayWithCapacity:(NSUInteger)count {
- return [[[self alloc] initWithCapacity:count] autorelease];
-}
-
-- (instancetype)init {
- self = [super init];
- // No work needed;
- return self;
-}
-
-- (instancetype)initWithValueArray:(GPBInt32Array *)array {
- return [self initWithValues:array->_values count:array->_count];
-}
-
-- (instancetype)initWithValues:(const int32_t [])values count:(NSUInteger)count {
- self = [self init];
- if (self) {
- if (count && values) {
- _values = reallocf(_values, count * sizeof(int32_t));
- if (_values != NULL) {
- _capacity = count;
- memcpy(_values, values, count * sizeof(int32_t));
- _count = count;
- } else {
- [self release];
- [NSException raise:NSMallocException
- format:@"Failed to allocate %lu bytes",
- (unsigned long)(count * sizeof(int32_t))];
- }
- }
- }
- return self;
-}
-
-- (instancetype)initWithCapacity:(NSUInteger)count {
- self = [self initWithValues:NULL count:0];
- if (self && count) {
- [self internalResizeToCapacity:count];
- }
- return self;
-}
-
-- (instancetype)copyWithZone:(NSZone *)zone {
- return [[GPBInt32Array allocWithZone:zone] initWithValues:_values count:_count];
-}
-
-- (void)dealloc {
- NSAssert(!_autocreator,
- @"%@: Autocreator must be cleared before release, autocreator: %@",
- [self class], _autocreator);
- free(_values);
- [super dealloc];
-}
-
-- (BOOL)isEqual:(id)other {
- if (self == other) {
- return YES;
- }
- if (![other isKindOfClass:[GPBInt32Array class]]) {
- return NO;
- }
- GPBInt32Array *otherArray = other;
- return (_count == otherArray->_count
- && memcmp(_values, otherArray->_values, (_count * sizeof(int32_t))) == 0);
-}
-
-- (NSUInteger)hash {
- // Follow NSArray's lead, and use the count as the hash.
- return _count;
-}
-
-- (NSString *)description {
- NSMutableString *result = [NSMutableString stringWithFormat:@"<%@ %p> { ", [self class], self];
- for (NSUInteger i = 0, count = _count; i < count; ++i) {
- if (i == 0) {
- [result appendFormat:@"%d", _values[i]];
- } else {
- [result appendFormat:@", %d", _values[i]];
- }
- }
- [result appendFormat:@" }"];
- return result;
-}
-
-- (void)enumerateValuesWithBlock:(void (^)(int32_t value, NSUInteger idx, BOOL *stop))block {
- [self enumerateValuesWithOptions:(NSEnumerationOptions)0 usingBlock:block];
-}
-
-- (void)enumerateValuesWithOptions:(NSEnumerationOptions)opts
- usingBlock:(void (^)(int32_t value, NSUInteger idx, BOOL *stop))block {
- // NSEnumerationConcurrent isn't currently supported (and Apple's docs say that is ok).
- BOOL stop = NO;
- if ((opts & NSEnumerationReverse) == 0) {
- for (NSUInteger i = 0, count = _count; i < count; ++i) {
- block(_values[i], i, &stop);
- if (stop) break;
- }
- } else if (_count > 0) {
- for (NSUInteger i = _count; i > 0; --i) {
- block(_values[i - 1], (i - 1), &stop);
- if (stop) break;
- }
- }
-}
-
-- (int32_t)valueAtIndex:(NSUInteger)index {
- if (index >= _count) {
- [NSException raise:NSRangeException
- format:@"Index (%lu) beyond bounds (%lu)",
- (unsigned long)index, (unsigned long)_count];
- }
- return _values[index];
-}
-
-- (void)internalResizeToCapacity:(NSUInteger)newCapacity {
- _values = reallocf(_values, newCapacity * sizeof(int32_t));
- if (_values == NULL) {
- _capacity = 0;
- _count = 0;
- [NSException raise:NSMallocException
- format:@"Failed to allocate %lu bytes",
- (unsigned long)(newCapacity * sizeof(int32_t))];
- }
- _capacity = newCapacity;
-}
-
-- (void)addValue:(int32_t)value {
- [self addValues:&value count:1];
-}
-
-- (void)addValues:(const int32_t [])values count:(NSUInteger)count {
- if (values == NULL || count == 0) return;
- NSUInteger initialCount = _count;
- NSUInteger newCount = initialCount + count;
- if (newCount > _capacity) {
- [self internalResizeToCapacity:CapacityFromCount(newCount)];
- }
- _count = newCount;
- memcpy(&_values[initialCount], values, count * sizeof(int32_t));
- if (_autocreator) {
- GPBAutocreatedArrayModified(_autocreator, self);
- }
-}
-
-- (void)insertValue:(int32_t)value atIndex:(NSUInteger)index {
- if (index >= _count + 1) {
- [NSException raise:NSRangeException
- format:@"Index (%lu) beyond bounds (%lu)",
- (unsigned long)index, (unsigned long)_count + 1];
- }
- NSUInteger initialCount = _count;
- NSUInteger newCount = initialCount + 1;
- if (newCount > _capacity) {
- [self internalResizeToCapacity:CapacityFromCount(newCount)];
- }
- _count = newCount;
- if (index != initialCount) {
- memmove(&_values[index + 1], &_values[index], (initialCount - index) * sizeof(int32_t));
- }
- _values[index] = value;
- if (_autocreator) {
- GPBAutocreatedArrayModified(_autocreator, self);
- }
-}
-
-- (void)replaceValueAtIndex:(NSUInteger)index withValue:(int32_t)value {
- if (index >= _count) {
- [NSException raise:NSRangeException
- format:@"Index (%lu) beyond bounds (%lu)",
- (unsigned long)index, (unsigned long)_count];
- }
- _values[index] = value;
-}
-
-- (void)addValuesFromArray:(GPBInt32Array *)array {
- [self addValues:array->_values count:array->_count];
-}
-
-- (void)removeValueAtIndex:(NSUInteger)index {
- if (index >= _count) {
- [NSException raise:NSRangeException
- format:@"Index (%lu) beyond bounds (%lu)",
- (unsigned long)index, (unsigned long)_count];
- }
- NSUInteger newCount = _count - 1;
- if (index != newCount) {
- memmove(&_values[index], &_values[index + 1], (newCount - index) * sizeof(int32_t));
- }
- _count = newCount;
- if ((newCount + (2 * kChunkSize)) < _capacity) {
- [self internalResizeToCapacity:CapacityFromCount(newCount)];
- }
-}
-
-- (void)removeAll {
- _count = 0;
- if ((0 + (2 * kChunkSize)) < _capacity) {
- [self internalResizeToCapacity:CapacityFromCount(0)];
- }
-}
-
-- (void)exchangeValueAtIndex:(NSUInteger)idx1
- withValueAtIndex:(NSUInteger)idx2 {
- if (idx1 >= _count) {
- [NSException raise:NSRangeException
- format:@"Index (%lu) beyond bounds (%lu)",
- (unsigned long)idx1, (unsigned long)_count];
- }
- if (idx2 >= _count) {
- [NSException raise:NSRangeException
- format:@"Index (%lu) beyond bounds (%lu)",
- (unsigned long)idx2, (unsigned long)_count];
- }
- int32_t temp = _values[idx1];
- _values[idx1] = _values[idx2];
- _values[idx2] = temp;
-}
-
-@end
-
-//%PDDM-EXPAND ARRAY_INTERFACE_SIMPLE(UInt32, uint32_t, %u)
-// This block of code is generated, do not edit it directly.
-
-#pragma mark - UInt32
-
-@implementation GPBUInt32Array {
- @package
- uint32_t *_values;
- NSUInteger _count;
- NSUInteger _capacity;
-}
-
-@synthesize count = _count;
-
-+ (instancetype)array {
- return [[[self alloc] init] autorelease];
-}
-
-+ (instancetype)arrayWithValue:(uint32_t)value {
- // Cast is needed so the compiler knows what class we are invoking initWithValues: on to get
- // the type correct.
- return [[(GPBUInt32Array*)[self alloc] initWithValues:&value count:1] autorelease];
-}
-
-+ (instancetype)arrayWithValueArray:(GPBUInt32Array *)array {
- return [[(GPBUInt32Array*)[self alloc] initWithValueArray:array] autorelease];
-}
-
-+ (instancetype)arrayWithCapacity:(NSUInteger)count {
- return [[[self alloc] initWithCapacity:count] autorelease];
-}
-
-- (instancetype)init {
- self = [super init];
- // No work needed;
- return self;
-}
-
-- (instancetype)initWithValueArray:(GPBUInt32Array *)array {
- return [self initWithValues:array->_values count:array->_count];
-}
-
-- (instancetype)initWithValues:(const uint32_t [])values count:(NSUInteger)count {
- self = [self init];
- if (self) {
- if (count && values) {
- _values = reallocf(_values, count * sizeof(uint32_t));
- if (_values != NULL) {
- _capacity = count;
- memcpy(_values, values, count * sizeof(uint32_t));
- _count = count;
- } else {
- [self release];
- [NSException raise:NSMallocException
- format:@"Failed to allocate %lu bytes",
- (unsigned long)(count * sizeof(uint32_t))];
- }
- }
- }
- return self;
-}
-
-- (instancetype)initWithCapacity:(NSUInteger)count {
- self = [self initWithValues:NULL count:0];
- if (self && count) {
- [self internalResizeToCapacity:count];
- }
- return self;
-}
-
-- (instancetype)copyWithZone:(NSZone *)zone {
- return [[GPBUInt32Array allocWithZone:zone] initWithValues:_values count:_count];
-}
-
-- (void)dealloc {
- NSAssert(!_autocreator,
- @"%@: Autocreator must be cleared before release, autocreator: %@",
- [self class], _autocreator);
- free(_values);
- [super dealloc];
-}
-
-- (BOOL)isEqual:(id)other {
- if (self == other) {
- return YES;
- }
- if (![other isKindOfClass:[GPBUInt32Array class]]) {
- return NO;
- }
- GPBUInt32Array *otherArray = other;
- return (_count == otherArray->_count
- && memcmp(_values, otherArray->_values, (_count * sizeof(uint32_t))) == 0);
-}
-
-- (NSUInteger)hash {
- // Follow NSArray's lead, and use the count as the hash.
- return _count;
-}
-
-- (NSString *)description {
- NSMutableString *result = [NSMutableString stringWithFormat:@"<%@ %p> { ", [self class], self];
- for (NSUInteger i = 0, count = _count; i < count; ++i) {
- if (i == 0) {
- [result appendFormat:@"%u", _values[i]];
- } else {
- [result appendFormat:@", %u", _values[i]];
- }
- }
- [result appendFormat:@" }"];
- return result;
-}
-
-- (void)enumerateValuesWithBlock:(void (^)(uint32_t value, NSUInteger idx, BOOL *stop))block {
- [self enumerateValuesWithOptions:(NSEnumerationOptions)0 usingBlock:block];
-}
-
-- (void)enumerateValuesWithOptions:(NSEnumerationOptions)opts
- usingBlock:(void (^)(uint32_t value, NSUInteger idx, BOOL *stop))block {
- // NSEnumerationConcurrent isn't currently supported (and Apple's docs say that is ok).
- BOOL stop = NO;
- if ((opts & NSEnumerationReverse) == 0) {
- for (NSUInteger i = 0, count = _count; i < count; ++i) {
- block(_values[i], i, &stop);
- if (stop) break;
- }
- } else if (_count > 0) {
- for (NSUInteger i = _count; i > 0; --i) {
- block(_values[i - 1], (i - 1), &stop);
- if (stop) break;
- }
- }
-}
-
-- (uint32_t)valueAtIndex:(NSUInteger)index {
- if (index >= _count) {
- [NSException raise:NSRangeException
- format:@"Index (%lu) beyond bounds (%lu)",
- (unsigned long)index, (unsigned long)_count];
- }
- return _values[index];
-}
-
-- (void)internalResizeToCapacity:(NSUInteger)newCapacity {
- _values = reallocf(_values, newCapacity * sizeof(uint32_t));
- if (_values == NULL) {
- _capacity = 0;
- _count = 0;
- [NSException raise:NSMallocException
- format:@"Failed to allocate %lu bytes",
- (unsigned long)(newCapacity * sizeof(uint32_t))];
- }
- _capacity = newCapacity;
-}
-
-- (void)addValue:(uint32_t)value {
- [self addValues:&value count:1];
-}
-
-- (void)addValues:(const uint32_t [])values count:(NSUInteger)count {
- if (values == NULL || count == 0) return;
- NSUInteger initialCount = _count;
- NSUInteger newCount = initialCount + count;
- if (newCount > _capacity) {
- [self internalResizeToCapacity:CapacityFromCount(newCount)];
- }
- _count = newCount;
- memcpy(&_values[initialCount], values, count * sizeof(uint32_t));
- if (_autocreator) {
- GPBAutocreatedArrayModified(_autocreator, self);
- }
-}
-
-- (void)insertValue:(uint32_t)value atIndex:(NSUInteger)index {
- if (index >= _count + 1) {
- [NSException raise:NSRangeException
- format:@"Index (%lu) beyond bounds (%lu)",
- (unsigned long)index, (unsigned long)_count + 1];
- }
- NSUInteger initialCount = _count;
- NSUInteger newCount = initialCount + 1;
- if (newCount > _capacity) {
- [self internalResizeToCapacity:CapacityFromCount(newCount)];
- }
- _count = newCount;
- if (index != initialCount) {
- memmove(&_values[index + 1], &_values[index], (initialCount - index) * sizeof(uint32_t));
- }
- _values[index] = value;
- if (_autocreator) {
- GPBAutocreatedArrayModified(_autocreator, self);
- }
-}
-
-- (void)replaceValueAtIndex:(NSUInteger)index withValue:(uint32_t)value {
- if (index >= _count) {
- [NSException raise:NSRangeException
- format:@"Index (%lu) beyond bounds (%lu)",
- (unsigned long)index, (unsigned long)_count];
- }
- _values[index] = value;
-}
-
-- (void)addValuesFromArray:(GPBUInt32Array *)array {
- [self addValues:array->_values count:array->_count];
-}
-
-- (void)removeValueAtIndex:(NSUInteger)index {
- if (index >= _count) {
- [NSException raise:NSRangeException
- format:@"Index (%lu) beyond bounds (%lu)",
- (unsigned long)index, (unsigned long)_count];
- }
- NSUInteger newCount = _count - 1;
- if (index != newCount) {
- memmove(&_values[index], &_values[index + 1], (newCount - index) * sizeof(uint32_t));
- }
- _count = newCount;
- if ((newCount + (2 * kChunkSize)) < _capacity) {
- [self internalResizeToCapacity:CapacityFromCount(newCount)];
- }
-}
-
-- (void)removeAll {
- _count = 0;
- if ((0 + (2 * kChunkSize)) < _capacity) {
- [self internalResizeToCapacity:CapacityFromCount(0)];
- }
-}
-
-- (void)exchangeValueAtIndex:(NSUInteger)idx1
- withValueAtIndex:(NSUInteger)idx2 {
- if (idx1 >= _count) {
- [NSException raise:NSRangeException
- format:@"Index (%lu) beyond bounds (%lu)",
- (unsigned long)idx1, (unsigned long)_count];
- }
- if (idx2 >= _count) {
- [NSException raise:NSRangeException
- format:@"Index (%lu) beyond bounds (%lu)",
- (unsigned long)idx2, (unsigned long)_count];
- }
- uint32_t temp = _values[idx1];
- _values[idx1] = _values[idx2];
- _values[idx2] = temp;
-}
-
-@end
-
-//%PDDM-EXPAND ARRAY_INTERFACE_SIMPLE(Int64, int64_t, %lld)
-// This block of code is generated, do not edit it directly.
-
-#pragma mark - Int64
-
-@implementation GPBInt64Array {
- @package
- int64_t *_values;
- NSUInteger _count;
- NSUInteger _capacity;
-}
-
-@synthesize count = _count;
-
-+ (instancetype)array {
- return [[[self alloc] init] autorelease];
-}
-
-+ (instancetype)arrayWithValue:(int64_t)value {
- // Cast is needed so the compiler knows what class we are invoking initWithValues: on to get
- // the type correct.
- return [[(GPBInt64Array*)[self alloc] initWithValues:&value count:1] autorelease];
-}
-
-+ (instancetype)arrayWithValueArray:(GPBInt64Array *)array {
- return [[(GPBInt64Array*)[self alloc] initWithValueArray:array] autorelease];
-}
-
-+ (instancetype)arrayWithCapacity:(NSUInteger)count {
- return [[[self alloc] initWithCapacity:count] autorelease];
-}
-
-- (instancetype)init {
- self = [super init];
- // No work needed;
- return self;
-}
-
-- (instancetype)initWithValueArray:(GPBInt64Array *)array {
- return [self initWithValues:array->_values count:array->_count];
-}
-
-- (instancetype)initWithValues:(const int64_t [])values count:(NSUInteger)count {
- self = [self init];
- if (self) {
- if (count && values) {
- _values = reallocf(_values, count * sizeof(int64_t));
- if (_values != NULL) {
- _capacity = count;
- memcpy(_values, values, count * sizeof(int64_t));
- _count = count;
- } else {
- [self release];
- [NSException raise:NSMallocException
- format:@"Failed to allocate %lu bytes",
- (unsigned long)(count * sizeof(int64_t))];
- }
- }
- }
- return self;
-}
-
-- (instancetype)initWithCapacity:(NSUInteger)count {
- self = [self initWithValues:NULL count:0];
- if (self && count) {
- [self internalResizeToCapacity:count];
- }
- return self;
-}
-
-- (instancetype)copyWithZone:(NSZone *)zone {
- return [[GPBInt64Array allocWithZone:zone] initWithValues:_values count:_count];
-}
-
-- (void)dealloc {
- NSAssert(!_autocreator,
- @"%@: Autocreator must be cleared before release, autocreator: %@",
- [self class], _autocreator);
- free(_values);
- [super dealloc];
-}
-
-- (BOOL)isEqual:(id)other {
- if (self == other) {
- return YES;
- }
- if (![other isKindOfClass:[GPBInt64Array class]]) {
- return NO;
- }
- GPBInt64Array *otherArray = other;
- return (_count == otherArray->_count
- && memcmp(_values, otherArray->_values, (_count * sizeof(int64_t))) == 0);
-}
-
-- (NSUInteger)hash {
- // Follow NSArray's lead, and use the count as the hash.
- return _count;
-}
-
-- (NSString *)description {
- NSMutableString *result = [NSMutableString stringWithFormat:@"<%@ %p> { ", [self class], self];
- for (NSUInteger i = 0, count = _count; i < count; ++i) {
- if (i == 0) {
- [result appendFormat:@"%lld", _values[i]];
- } else {
- [result appendFormat:@", %lld", _values[i]];
- }
- }
- [result appendFormat:@" }"];
- return result;
-}
-
-- (void)enumerateValuesWithBlock:(void (^)(int64_t value, NSUInteger idx, BOOL *stop))block {
- [self enumerateValuesWithOptions:(NSEnumerationOptions)0 usingBlock:block];
-}
-
-- (void)enumerateValuesWithOptions:(NSEnumerationOptions)opts
- usingBlock:(void (^)(int64_t value, NSUInteger idx, BOOL *stop))block {
- // NSEnumerationConcurrent isn't currently supported (and Apple's docs say that is ok).
- BOOL stop = NO;
- if ((opts & NSEnumerationReverse) == 0) {
- for (NSUInteger i = 0, count = _count; i < count; ++i) {
- block(_values[i], i, &stop);
- if (stop) break;
- }
- } else if (_count > 0) {
- for (NSUInteger i = _count; i > 0; --i) {
- block(_values[i - 1], (i - 1), &stop);
- if (stop) break;
- }
- }
-}
-
-- (int64_t)valueAtIndex:(NSUInteger)index {
- if (index >= _count) {
- [NSException raise:NSRangeException
- format:@"Index (%lu) beyond bounds (%lu)",
- (unsigned long)index, (unsigned long)_count];
- }
- return _values[index];
-}
-
-- (void)internalResizeToCapacity:(NSUInteger)newCapacity {
- _values = reallocf(_values, newCapacity * sizeof(int64_t));
- if (_values == NULL) {
- _capacity = 0;
- _count = 0;
- [NSException raise:NSMallocException
- format:@"Failed to allocate %lu bytes",
- (unsigned long)(newCapacity * sizeof(int64_t))];
- }
- _capacity = newCapacity;
-}
-
-- (void)addValue:(int64_t)value {
- [self addValues:&value count:1];
-}
-
-- (void)addValues:(const int64_t [])values count:(NSUInteger)count {
- if (values == NULL || count == 0) return;
- NSUInteger initialCount = _count;
- NSUInteger newCount = initialCount + count;
- if (newCount > _capacity) {
- [self internalResizeToCapacity:CapacityFromCount(newCount)];
- }
- _count = newCount;
- memcpy(&_values[initialCount], values, count * sizeof(int64_t));
- if (_autocreator) {
- GPBAutocreatedArrayModified(_autocreator, self);
- }
-}
-
-- (void)insertValue:(int64_t)value atIndex:(NSUInteger)index {
- if (index >= _count + 1) {
- [NSException raise:NSRangeException
- format:@"Index (%lu) beyond bounds (%lu)",
- (unsigned long)index, (unsigned long)_count + 1];
- }
- NSUInteger initialCount = _count;
- NSUInteger newCount = initialCount + 1;
- if (newCount > _capacity) {
- [self internalResizeToCapacity:CapacityFromCount(newCount)];
- }
- _count = newCount;
- if (index != initialCount) {
- memmove(&_values[index + 1], &_values[index], (initialCount - index) * sizeof(int64_t));
- }
- _values[index] = value;
- if (_autocreator) {
- GPBAutocreatedArrayModified(_autocreator, self);
- }
-}
-
-- (void)replaceValueAtIndex:(NSUInteger)index withValue:(int64_t)value {
- if (index >= _count) {
- [NSException raise:NSRangeException
- format:@"Index (%lu) beyond bounds (%lu)",
- (unsigned long)index, (unsigned long)_count];
- }
- _values[index] = value;
-}
-
-- (void)addValuesFromArray:(GPBInt64Array *)array {
- [self addValues:array->_values count:array->_count];
-}
-
-- (void)removeValueAtIndex:(NSUInteger)index {
- if (index >= _count) {
- [NSException raise:NSRangeException
- format:@"Index (%lu) beyond bounds (%lu)",
- (unsigned long)index, (unsigned long)_count];
- }
- NSUInteger newCount = _count - 1;
- if (index != newCount) {
- memmove(&_values[index], &_values[index + 1], (newCount - index) * sizeof(int64_t));
- }
- _count = newCount;
- if ((newCount + (2 * kChunkSize)) < _capacity) {
- [self internalResizeToCapacity:CapacityFromCount(newCount)];
- }
-}
-
-- (void)removeAll {
- _count = 0;
- if ((0 + (2 * kChunkSize)) < _capacity) {
- [self internalResizeToCapacity:CapacityFromCount(0)];
- }
-}
-
-- (void)exchangeValueAtIndex:(NSUInteger)idx1
- withValueAtIndex:(NSUInteger)idx2 {
- if (idx1 >= _count) {
- [NSException raise:NSRangeException
- format:@"Index (%lu) beyond bounds (%lu)",
- (unsigned long)idx1, (unsigned long)_count];
- }
- if (idx2 >= _count) {
- [NSException raise:NSRangeException
- format:@"Index (%lu) beyond bounds (%lu)",
- (unsigned long)idx2, (unsigned long)_count];
- }
- int64_t temp = _values[idx1];
- _values[idx1] = _values[idx2];
- _values[idx2] = temp;
-}
-
-@end
-
-//%PDDM-EXPAND ARRAY_INTERFACE_SIMPLE(UInt64, uint64_t, %llu)
-// This block of code is generated, do not edit it directly.
-
-#pragma mark - UInt64
-
-@implementation GPBUInt64Array {
- @package
- uint64_t *_values;
- NSUInteger _count;
- NSUInteger _capacity;
-}
-
-@synthesize count = _count;
-
-+ (instancetype)array {
- return [[[self alloc] init] autorelease];
-}
-
-+ (instancetype)arrayWithValue:(uint64_t)value {
- // Cast is needed so the compiler knows what class we are invoking initWithValues: on to get
- // the type correct.
- return [[(GPBUInt64Array*)[self alloc] initWithValues:&value count:1] autorelease];
-}
-
-+ (instancetype)arrayWithValueArray:(GPBUInt64Array *)array {
- return [[(GPBUInt64Array*)[self alloc] initWithValueArray:array] autorelease];
-}
-
-+ (instancetype)arrayWithCapacity:(NSUInteger)count {
- return [[[self alloc] initWithCapacity:count] autorelease];
-}
-
-- (instancetype)init {
- self = [super init];
- // No work needed;
- return self;
-}
-
-- (instancetype)initWithValueArray:(GPBUInt64Array *)array {
- return [self initWithValues:array->_values count:array->_count];
-}
-
-- (instancetype)initWithValues:(const uint64_t [])values count:(NSUInteger)count {
- self = [self init];
- if (self) {
- if (count && values) {
- _values = reallocf(_values, count * sizeof(uint64_t));
- if (_values != NULL) {
- _capacity = count;
- memcpy(_values, values, count * sizeof(uint64_t));
- _count = count;
- } else {
- [self release];
- [NSException raise:NSMallocException
- format:@"Failed to allocate %lu bytes",
- (unsigned long)(count * sizeof(uint64_t))];
- }
- }
- }
- return self;
-}
-
-- (instancetype)initWithCapacity:(NSUInteger)count {
- self = [self initWithValues:NULL count:0];
- if (self && count) {
- [self internalResizeToCapacity:count];
- }
- return self;
-}
-
-- (instancetype)copyWithZone:(NSZone *)zone {
- return [[GPBUInt64Array allocWithZone:zone] initWithValues:_values count:_count];
-}
-
-- (void)dealloc {
- NSAssert(!_autocreator,
- @"%@: Autocreator must be cleared before release, autocreator: %@",
- [self class], _autocreator);
- free(_values);
- [super dealloc];
-}
-
-- (BOOL)isEqual:(id)other {
- if (self == other) {
- return YES;
- }
- if (![other isKindOfClass:[GPBUInt64Array class]]) {
- return NO;
- }
- GPBUInt64Array *otherArray = other;
- return (_count == otherArray->_count
- && memcmp(_values, otherArray->_values, (_count * sizeof(uint64_t))) == 0);
-}
-
-- (NSUInteger)hash {
- // Follow NSArray's lead, and use the count as the hash.
- return _count;
-}
-
-- (NSString *)description {
- NSMutableString *result = [NSMutableString stringWithFormat:@"<%@ %p> { ", [self class], self];
- for (NSUInteger i = 0, count = _count; i < count; ++i) {
- if (i == 0) {
- [result appendFormat:@"%llu", _values[i]];
- } else {
- [result appendFormat:@", %llu", _values[i]];
- }
- }
- [result appendFormat:@" }"];
- return result;
-}
-
-- (void)enumerateValuesWithBlock:(void (^)(uint64_t value, NSUInteger idx, BOOL *stop))block {
- [self enumerateValuesWithOptions:(NSEnumerationOptions)0 usingBlock:block];
-}
-
-- (void)enumerateValuesWithOptions:(NSEnumerationOptions)opts
- usingBlock:(void (^)(uint64_t value, NSUInteger idx, BOOL *stop))block {
- // NSEnumerationConcurrent isn't currently supported (and Apple's docs say that is ok).
- BOOL stop = NO;
- if ((opts & NSEnumerationReverse) == 0) {
- for (NSUInteger i = 0, count = _count; i < count; ++i) {
- block(_values[i], i, &stop);
- if (stop) break;
- }
- } else if (_count > 0) {
- for (NSUInteger i = _count; i > 0; --i) {
- block(_values[i - 1], (i - 1), &stop);
- if (stop) break;
- }
- }
-}
-
-- (uint64_t)valueAtIndex:(NSUInteger)index {
- if (index >= _count) {
- [NSException raise:NSRangeException
- format:@"Index (%lu) beyond bounds (%lu)",
- (unsigned long)index, (unsigned long)_count];
- }
- return _values[index];
-}
-
-- (void)internalResizeToCapacity:(NSUInteger)newCapacity {
- _values = reallocf(_values, newCapacity * sizeof(uint64_t));
- if (_values == NULL) {
- _capacity = 0;
- _count = 0;
- [NSException raise:NSMallocException
- format:@"Failed to allocate %lu bytes",
- (unsigned long)(newCapacity * sizeof(uint64_t))];
- }
- _capacity = newCapacity;
-}
-
-- (void)addValue:(uint64_t)value {
- [self addValues:&value count:1];
-}
-
-- (void)addValues:(const uint64_t [])values count:(NSUInteger)count {
- if (values == NULL || count == 0) return;
- NSUInteger initialCount = _count;
- NSUInteger newCount = initialCount + count;
- if (newCount > _capacity) {
- [self internalResizeToCapacity:CapacityFromCount(newCount)];
- }
- _count = newCount;
- memcpy(&_values[initialCount], values, count * sizeof(uint64_t));
- if (_autocreator) {
- GPBAutocreatedArrayModified(_autocreator, self);
- }
-}
-
-- (void)insertValue:(uint64_t)value atIndex:(NSUInteger)index {
- if (index >= _count + 1) {
- [NSException raise:NSRangeException
- format:@"Index (%lu) beyond bounds (%lu)",
- (unsigned long)index, (unsigned long)_count + 1];
- }
- NSUInteger initialCount = _count;
- NSUInteger newCount = initialCount + 1;
- if (newCount > _capacity) {
- [self internalResizeToCapacity:CapacityFromCount(newCount)];
- }
- _count = newCount;
- if (index != initialCount) {
- memmove(&_values[index + 1], &_values[index], (initialCount - index) * sizeof(uint64_t));
- }
- _values[index] = value;
- if (_autocreator) {
- GPBAutocreatedArrayModified(_autocreator, self);
- }
-}
-
-- (void)replaceValueAtIndex:(NSUInteger)index withValue:(uint64_t)value {
- if (index >= _count) {
- [NSException raise:NSRangeException
- format:@"Index (%lu) beyond bounds (%lu)",
- (unsigned long)index, (unsigned long)_count];
- }
- _values[index] = value;
-}
-
-- (void)addValuesFromArray:(GPBUInt64Array *)array {
- [self addValues:array->_values count:array->_count];
-}
-
-- (void)removeValueAtIndex:(NSUInteger)index {
- if (index >= _count) {
- [NSException raise:NSRangeException
- format:@"Index (%lu) beyond bounds (%lu)",
- (unsigned long)index, (unsigned long)_count];
- }
- NSUInteger newCount = _count - 1;
- if (index != newCount) {
- memmove(&_values[index], &_values[index + 1], (newCount - index) * sizeof(uint64_t));
- }
- _count = newCount;
- if ((newCount + (2 * kChunkSize)) < _capacity) {
- [self internalResizeToCapacity:CapacityFromCount(newCount)];
- }
-}
-
-- (void)removeAll {
- _count = 0;
- if ((0 + (2 * kChunkSize)) < _capacity) {
- [self internalResizeToCapacity:CapacityFromCount(0)];
- }
-}
-
-- (void)exchangeValueAtIndex:(NSUInteger)idx1
- withValueAtIndex:(NSUInteger)idx2 {
- if (idx1 >= _count) {
- [NSException raise:NSRangeException
- format:@"Index (%lu) beyond bounds (%lu)",
- (unsigned long)idx1, (unsigned long)_count];
- }
- if (idx2 >= _count) {
- [NSException raise:NSRangeException
- format:@"Index (%lu) beyond bounds (%lu)",
- (unsigned long)idx2, (unsigned long)_count];
- }
- uint64_t temp = _values[idx1];
- _values[idx1] = _values[idx2];
- _values[idx2] = temp;
-}
-
-@end
-
-//%PDDM-EXPAND ARRAY_INTERFACE_SIMPLE(Float, float, %f)
-// This block of code is generated, do not edit it directly.
-
-#pragma mark - Float
-
-@implementation GPBFloatArray {
- @package
- float *_values;
- NSUInteger _count;
- NSUInteger _capacity;
-}
-
-@synthesize count = _count;
-
-+ (instancetype)array {
- return [[[self alloc] init] autorelease];
-}
-
-+ (instancetype)arrayWithValue:(float)value {
- // Cast is needed so the compiler knows what class we are invoking initWithValues: on to get
- // the type correct.
- return [[(GPBFloatArray*)[self alloc] initWithValues:&value count:1] autorelease];
-}
-
-+ (instancetype)arrayWithValueArray:(GPBFloatArray *)array {
- return [[(GPBFloatArray*)[self alloc] initWithValueArray:array] autorelease];
-}
-
-+ (instancetype)arrayWithCapacity:(NSUInteger)count {
- return [[[self alloc] initWithCapacity:count] autorelease];
-}
-
-- (instancetype)init {
- self = [super init];
- // No work needed;
- return self;
-}
-
-- (instancetype)initWithValueArray:(GPBFloatArray *)array {
- return [self initWithValues:array->_values count:array->_count];
-}
-
-- (instancetype)initWithValues:(const float [])values count:(NSUInteger)count {
- self = [self init];
- if (self) {
- if (count && values) {
- _values = reallocf(_values, count * sizeof(float));
- if (_values != NULL) {
- _capacity = count;
- memcpy(_values, values, count * sizeof(float));
- _count = count;
- } else {
- [self release];
- [NSException raise:NSMallocException
- format:@"Failed to allocate %lu bytes",
- (unsigned long)(count * sizeof(float))];
- }
- }
- }
- return self;
-}
-
-- (instancetype)initWithCapacity:(NSUInteger)count {
- self = [self initWithValues:NULL count:0];
- if (self && count) {
- [self internalResizeToCapacity:count];
- }
- return self;
-}
-
-- (instancetype)copyWithZone:(NSZone *)zone {
- return [[GPBFloatArray allocWithZone:zone] initWithValues:_values count:_count];
-}
-
-- (void)dealloc {
- NSAssert(!_autocreator,
- @"%@: Autocreator must be cleared before release, autocreator: %@",
- [self class], _autocreator);
- free(_values);
- [super dealloc];
-}
-
-- (BOOL)isEqual:(id)other {
- if (self == other) {
- return YES;
- }
- if (![other isKindOfClass:[GPBFloatArray class]]) {
- return NO;
- }
- GPBFloatArray *otherArray = other;
- return (_count == otherArray->_count
- && memcmp(_values, otherArray->_values, (_count * sizeof(float))) == 0);
-}
-
-- (NSUInteger)hash {
- // Follow NSArray's lead, and use the count as the hash.
- return _count;
-}
-
-- (NSString *)description {
- NSMutableString *result = [NSMutableString stringWithFormat:@"<%@ %p> { ", [self class], self];
- for (NSUInteger i = 0, count = _count; i < count; ++i) {
- if (i == 0) {
- [result appendFormat:@"%f", _values[i]];
- } else {
- [result appendFormat:@", %f", _values[i]];
- }
- }
- [result appendFormat:@" }"];
- return result;
-}
-
-- (void)enumerateValuesWithBlock:(void (^)(float value, NSUInteger idx, BOOL *stop))block {
- [self enumerateValuesWithOptions:(NSEnumerationOptions)0 usingBlock:block];
-}
-
-- (void)enumerateValuesWithOptions:(NSEnumerationOptions)opts
- usingBlock:(void (^)(float value, NSUInteger idx, BOOL *stop))block {
- // NSEnumerationConcurrent isn't currently supported (and Apple's docs say that is ok).
- BOOL stop = NO;
- if ((opts & NSEnumerationReverse) == 0) {
- for (NSUInteger i = 0, count = _count; i < count; ++i) {
- block(_values[i], i, &stop);
- if (stop) break;
- }
- } else if (_count > 0) {
- for (NSUInteger i = _count; i > 0; --i) {
- block(_values[i - 1], (i - 1), &stop);
- if (stop) break;
- }
- }
-}
-
-- (float)valueAtIndex:(NSUInteger)index {
- if (index >= _count) {
- [NSException raise:NSRangeException
- format:@"Index (%lu) beyond bounds (%lu)",
- (unsigned long)index, (unsigned long)_count];
- }
- return _values[index];
-}
-
-- (void)internalResizeToCapacity:(NSUInteger)newCapacity {
- _values = reallocf(_values, newCapacity * sizeof(float));
- if (_values == NULL) {
- _capacity = 0;
- _count = 0;
- [NSException raise:NSMallocException
- format:@"Failed to allocate %lu bytes",
- (unsigned long)(newCapacity * sizeof(float))];
- }
- _capacity = newCapacity;
-}
-
-- (void)addValue:(float)value {
- [self addValues:&value count:1];
-}
-
-- (void)addValues:(const float [])values count:(NSUInteger)count {
- if (values == NULL || count == 0) return;
- NSUInteger initialCount = _count;
- NSUInteger newCount = initialCount + count;
- if (newCount > _capacity) {
- [self internalResizeToCapacity:CapacityFromCount(newCount)];
- }
- _count = newCount;
- memcpy(&_values[initialCount], values, count * sizeof(float));
- if (_autocreator) {
- GPBAutocreatedArrayModified(_autocreator, self);
- }
-}
-
-- (void)insertValue:(float)value atIndex:(NSUInteger)index {
- if (index >= _count + 1) {
- [NSException raise:NSRangeException
- format:@"Index (%lu) beyond bounds (%lu)",
- (unsigned long)index, (unsigned long)_count + 1];
- }
- NSUInteger initialCount = _count;
- NSUInteger newCount = initialCount + 1;
- if (newCount > _capacity) {
- [self internalResizeToCapacity:CapacityFromCount(newCount)];
- }
- _count = newCount;
- if (index != initialCount) {
- memmove(&_values[index + 1], &_values[index], (initialCount - index) * sizeof(float));
- }
- _values[index] = value;
- if (_autocreator) {
- GPBAutocreatedArrayModified(_autocreator, self);
- }
-}
-
-- (void)replaceValueAtIndex:(NSUInteger)index withValue:(float)value {
- if (index >= _count) {
- [NSException raise:NSRangeException
- format:@"Index (%lu) beyond bounds (%lu)",
- (unsigned long)index, (unsigned long)_count];
- }
- _values[index] = value;
-}
-
-- (void)addValuesFromArray:(GPBFloatArray *)array {
- [self addValues:array->_values count:array->_count];
-}
-
-- (void)removeValueAtIndex:(NSUInteger)index {
- if (index >= _count) {
- [NSException raise:NSRangeException
- format:@"Index (%lu) beyond bounds (%lu)",
- (unsigned long)index, (unsigned long)_count];
- }
- NSUInteger newCount = _count - 1;
- if (index != newCount) {
- memmove(&_values[index], &_values[index + 1], (newCount - index) * sizeof(float));
- }
- _count = newCount;
- if ((newCount + (2 * kChunkSize)) < _capacity) {
- [self internalResizeToCapacity:CapacityFromCount(newCount)];
- }
-}
-
-- (void)removeAll {
- _count = 0;
- if ((0 + (2 * kChunkSize)) < _capacity) {
- [self internalResizeToCapacity:CapacityFromCount(0)];
- }
-}
-
-- (void)exchangeValueAtIndex:(NSUInteger)idx1
- withValueAtIndex:(NSUInteger)idx2 {
- if (idx1 >= _count) {
- [NSException raise:NSRangeException
- format:@"Index (%lu) beyond bounds (%lu)",
- (unsigned long)idx1, (unsigned long)_count];
- }
- if (idx2 >= _count) {
- [NSException raise:NSRangeException
- format:@"Index (%lu) beyond bounds (%lu)",
- (unsigned long)idx2, (unsigned long)_count];
- }
- float temp = _values[idx1];
- _values[idx1] = _values[idx2];
- _values[idx2] = temp;
-}
-
-@end
-
-//%PDDM-EXPAND ARRAY_INTERFACE_SIMPLE(Double, double, %lf)
-// This block of code is generated, do not edit it directly.
-
-#pragma mark - Double
-
-@implementation GPBDoubleArray {
- @package
- double *_values;
- NSUInteger _count;
- NSUInteger _capacity;
-}
-
-@synthesize count = _count;
-
-+ (instancetype)array {
- return [[[self alloc] init] autorelease];
-}
-
-+ (instancetype)arrayWithValue:(double)value {
- // Cast is needed so the compiler knows what class we are invoking initWithValues: on to get
- // the type correct.
- return [[(GPBDoubleArray*)[self alloc] initWithValues:&value count:1] autorelease];
-}
-
-+ (instancetype)arrayWithValueArray:(GPBDoubleArray *)array {
- return [[(GPBDoubleArray*)[self alloc] initWithValueArray:array] autorelease];
-}
-
-+ (instancetype)arrayWithCapacity:(NSUInteger)count {
- return [[[self alloc] initWithCapacity:count] autorelease];
-}
-
-- (instancetype)init {
- self = [super init];
- // No work needed;
- return self;
-}
-
-- (instancetype)initWithValueArray:(GPBDoubleArray *)array {
- return [self initWithValues:array->_values count:array->_count];
-}
-
-- (instancetype)initWithValues:(const double [])values count:(NSUInteger)count {
- self = [self init];
- if (self) {
- if (count && values) {
- _values = reallocf(_values, count * sizeof(double));
- if (_values != NULL) {
- _capacity = count;
- memcpy(_values, values, count * sizeof(double));
- _count = count;
- } else {
- [self release];
- [NSException raise:NSMallocException
- format:@"Failed to allocate %lu bytes",
- (unsigned long)(count * sizeof(double))];
- }
- }
- }
- return self;
-}
-
-- (instancetype)initWithCapacity:(NSUInteger)count {
- self = [self initWithValues:NULL count:0];
- if (self && count) {
- [self internalResizeToCapacity:count];
- }
- return self;
-}
-
-- (instancetype)copyWithZone:(NSZone *)zone {
- return [[GPBDoubleArray allocWithZone:zone] initWithValues:_values count:_count];
-}
-
-- (void)dealloc {
- NSAssert(!_autocreator,
- @"%@: Autocreator must be cleared before release, autocreator: %@",
- [self class], _autocreator);
- free(_values);
- [super dealloc];
-}
-
-- (BOOL)isEqual:(id)other {
- if (self == other) {
- return YES;
- }
- if (![other isKindOfClass:[GPBDoubleArray class]]) {
- return NO;
- }
- GPBDoubleArray *otherArray = other;
- return (_count == otherArray->_count
- && memcmp(_values, otherArray->_values, (_count * sizeof(double))) == 0);
-}
-
-- (NSUInteger)hash {
- // Follow NSArray's lead, and use the count as the hash.
- return _count;
-}
-
-- (NSString *)description {
- NSMutableString *result = [NSMutableString stringWithFormat:@"<%@ %p> { ", [self class], self];
- for (NSUInteger i = 0, count = _count; i < count; ++i) {
- if (i == 0) {
- [result appendFormat:@"%lf", _values[i]];
- } else {
- [result appendFormat:@", %lf", _values[i]];
- }
- }
- [result appendFormat:@" }"];
- return result;
-}
-
-- (void)enumerateValuesWithBlock:(void (^)(double value, NSUInteger idx, BOOL *stop))block {
- [self enumerateValuesWithOptions:(NSEnumerationOptions)0 usingBlock:block];
-}
-
-- (void)enumerateValuesWithOptions:(NSEnumerationOptions)opts
- usingBlock:(void (^)(double value, NSUInteger idx, BOOL *stop))block {
- // NSEnumerationConcurrent isn't currently supported (and Apple's docs say that is ok).
- BOOL stop = NO;
- if ((opts & NSEnumerationReverse) == 0) {
- for (NSUInteger i = 0, count = _count; i < count; ++i) {
- block(_values[i], i, &stop);
- if (stop) break;
- }
- } else if (_count > 0) {
- for (NSUInteger i = _count; i > 0; --i) {
- block(_values[i - 1], (i - 1), &stop);
- if (stop) break;
- }
- }
-}
-
-- (double)valueAtIndex:(NSUInteger)index {
- if (index >= _count) {
- [NSException raise:NSRangeException
- format:@"Index (%lu) beyond bounds (%lu)",
- (unsigned long)index, (unsigned long)_count];
- }
- return _values[index];
-}
-
-- (void)internalResizeToCapacity:(NSUInteger)newCapacity {
- _values = reallocf(_values, newCapacity * sizeof(double));
- if (_values == NULL) {
- _capacity = 0;
- _count = 0;
- [NSException raise:NSMallocException
- format:@"Failed to allocate %lu bytes",
- (unsigned long)(newCapacity * sizeof(double))];
- }
- _capacity = newCapacity;
-}
-
-- (void)addValue:(double)value {
- [self addValues:&value count:1];
-}
-
-- (void)addValues:(const double [])values count:(NSUInteger)count {
- if (values == NULL || count == 0) return;
- NSUInteger initialCount = _count;
- NSUInteger newCount = initialCount + count;
- if (newCount > _capacity) {
- [self internalResizeToCapacity:CapacityFromCount(newCount)];
- }
- _count = newCount;
- memcpy(&_values[initialCount], values, count * sizeof(double));
- if (_autocreator) {
- GPBAutocreatedArrayModified(_autocreator, self);
- }
-}
-
-- (void)insertValue:(double)value atIndex:(NSUInteger)index {
- if (index >= _count + 1) {
- [NSException raise:NSRangeException
- format:@"Index (%lu) beyond bounds (%lu)",
- (unsigned long)index, (unsigned long)_count + 1];
- }
- NSUInteger initialCount = _count;
- NSUInteger newCount = initialCount + 1;
- if (newCount > _capacity) {
- [self internalResizeToCapacity:CapacityFromCount(newCount)];
- }
- _count = newCount;
- if (index != initialCount) {
- memmove(&_values[index + 1], &_values[index], (initialCount - index) * sizeof(double));
- }
- _values[index] = value;
- if (_autocreator) {
- GPBAutocreatedArrayModified(_autocreator, self);
- }
-}
-
-- (void)replaceValueAtIndex:(NSUInteger)index withValue:(double)value {
- if (index >= _count) {
- [NSException raise:NSRangeException
- format:@"Index (%lu) beyond bounds (%lu)",
- (unsigned long)index, (unsigned long)_count];
- }
- _values[index] = value;
-}
-
-- (void)addValuesFromArray:(GPBDoubleArray *)array {
- [self addValues:array->_values count:array->_count];
-}
-
-- (void)removeValueAtIndex:(NSUInteger)index {
- if (index >= _count) {
- [NSException raise:NSRangeException
- format:@"Index (%lu) beyond bounds (%lu)",
- (unsigned long)index, (unsigned long)_count];
- }
- NSUInteger newCount = _count - 1;
- if (index != newCount) {
- memmove(&_values[index], &_values[index + 1], (newCount - index) * sizeof(double));
- }
- _count = newCount;
- if ((newCount + (2 * kChunkSize)) < _capacity) {
- [self internalResizeToCapacity:CapacityFromCount(newCount)];
- }
-}
-
-- (void)removeAll {
- _count = 0;
- if ((0 + (2 * kChunkSize)) < _capacity) {
- [self internalResizeToCapacity:CapacityFromCount(0)];
- }
-}
-
-- (void)exchangeValueAtIndex:(NSUInteger)idx1
- withValueAtIndex:(NSUInteger)idx2 {
- if (idx1 >= _count) {
- [NSException raise:NSRangeException
- format:@"Index (%lu) beyond bounds (%lu)",
- (unsigned long)idx1, (unsigned long)_count];
- }
- if (idx2 >= _count) {
- [NSException raise:NSRangeException
- format:@"Index (%lu) beyond bounds (%lu)",
- (unsigned long)idx2, (unsigned long)_count];
- }
- double temp = _values[idx1];
- _values[idx1] = _values[idx2];
- _values[idx2] = temp;
-}
-
-@end
-
-//%PDDM-EXPAND ARRAY_INTERFACE_SIMPLE(Bool, BOOL, %d)
-// This block of code is generated, do not edit it directly.
-
-#pragma mark - Bool
-
-@implementation GPBBoolArray {
- @package
- BOOL *_values;
- NSUInteger _count;
- NSUInteger _capacity;
-}
-
-@synthesize count = _count;
-
-+ (instancetype)array {
- return [[[self alloc] init] autorelease];
-}
-
-+ (instancetype)arrayWithValue:(BOOL)value {
- // Cast is needed so the compiler knows what class we are invoking initWithValues: on to get
- // the type correct.
- return [[(GPBBoolArray*)[self alloc] initWithValues:&value count:1] autorelease];
-}
-
-+ (instancetype)arrayWithValueArray:(GPBBoolArray *)array {
- return [[(GPBBoolArray*)[self alloc] initWithValueArray:array] autorelease];
-}
-
-+ (instancetype)arrayWithCapacity:(NSUInteger)count {
- return [[[self alloc] initWithCapacity:count] autorelease];
-}
-
-- (instancetype)init {
- self = [super init];
- // No work needed;
- return self;
-}
-
-- (instancetype)initWithValueArray:(GPBBoolArray *)array {
- return [self initWithValues:array->_values count:array->_count];
-}
-
-- (instancetype)initWithValues:(const BOOL [])values count:(NSUInteger)count {
- self = [self init];
- if (self) {
- if (count && values) {
- _values = reallocf(_values, count * sizeof(BOOL));
- if (_values != NULL) {
- _capacity = count;
- memcpy(_values, values, count * sizeof(BOOL));
- _count = count;
- } else {
- [self release];
- [NSException raise:NSMallocException
- format:@"Failed to allocate %lu bytes",
- (unsigned long)(count * sizeof(BOOL))];
- }
- }
- }
- return self;
-}
-
-- (instancetype)initWithCapacity:(NSUInteger)count {
- self = [self initWithValues:NULL count:0];
- if (self && count) {
- [self internalResizeToCapacity:count];
- }
- return self;
-}
-
-- (instancetype)copyWithZone:(NSZone *)zone {
- return [[GPBBoolArray allocWithZone:zone] initWithValues:_values count:_count];
-}
-
-- (void)dealloc {
- NSAssert(!_autocreator,
- @"%@: Autocreator must be cleared before release, autocreator: %@",
- [self class], _autocreator);
- free(_values);
- [super dealloc];
-}
-
-- (BOOL)isEqual:(id)other {
- if (self == other) {
- return YES;
- }
- if (![other isKindOfClass:[GPBBoolArray class]]) {
- return NO;
- }
- GPBBoolArray *otherArray = other;
- return (_count == otherArray->_count
- && memcmp(_values, otherArray->_values, (_count * sizeof(BOOL))) == 0);
-}
-
-- (NSUInteger)hash {
- // Follow NSArray's lead, and use the count as the hash.
- return _count;
-}
-
-- (NSString *)description {
- NSMutableString *result = [NSMutableString stringWithFormat:@"<%@ %p> { ", [self class], self];
- for (NSUInteger i = 0, count = _count; i < count; ++i) {
- if (i == 0) {
- [result appendFormat:@"%d", _values[i]];
- } else {
- [result appendFormat:@", %d", _values[i]];
- }
- }
- [result appendFormat:@" }"];
- return result;
-}
-
-- (void)enumerateValuesWithBlock:(void (^)(BOOL value, NSUInteger idx, BOOL *stop))block {
- [self enumerateValuesWithOptions:(NSEnumerationOptions)0 usingBlock:block];
-}
-
-- (void)enumerateValuesWithOptions:(NSEnumerationOptions)opts
- usingBlock:(void (^)(BOOL value, NSUInteger idx, BOOL *stop))block {
- // NSEnumerationConcurrent isn't currently supported (and Apple's docs say that is ok).
- BOOL stop = NO;
- if ((opts & NSEnumerationReverse) == 0) {
- for (NSUInteger i = 0, count = _count; i < count; ++i) {
- block(_values[i], i, &stop);
- if (stop) break;
- }
- } else if (_count > 0) {
- for (NSUInteger i = _count; i > 0; --i) {
- block(_values[i - 1], (i - 1), &stop);
- if (stop) break;
- }
- }
-}
-
-- (BOOL)valueAtIndex:(NSUInteger)index {
- if (index >= _count) {
- [NSException raise:NSRangeException
- format:@"Index (%lu) beyond bounds (%lu)",
- (unsigned long)index, (unsigned long)_count];
- }
- return _values[index];
-}
-
-- (void)internalResizeToCapacity:(NSUInteger)newCapacity {
- _values = reallocf(_values, newCapacity * sizeof(BOOL));
- if (_values == NULL) {
- _capacity = 0;
- _count = 0;
- [NSException raise:NSMallocException
- format:@"Failed to allocate %lu bytes",
- (unsigned long)(newCapacity * sizeof(BOOL))];
- }
- _capacity = newCapacity;
-}
-
-- (void)addValue:(BOOL)value {
- [self addValues:&value count:1];
-}
-
-- (void)addValues:(const BOOL [])values count:(NSUInteger)count {
- if (values == NULL || count == 0) return;
- NSUInteger initialCount = _count;
- NSUInteger newCount = initialCount + count;
- if (newCount > _capacity) {
- [self internalResizeToCapacity:CapacityFromCount(newCount)];
- }
- _count = newCount;
- memcpy(&_values[initialCount], values, count * sizeof(BOOL));
- if (_autocreator) {
- GPBAutocreatedArrayModified(_autocreator, self);
- }
-}
-
-- (void)insertValue:(BOOL)value atIndex:(NSUInteger)index {
- if (index >= _count + 1) {
- [NSException raise:NSRangeException
- format:@"Index (%lu) beyond bounds (%lu)",
- (unsigned long)index, (unsigned long)_count + 1];
- }
- NSUInteger initialCount = _count;
- NSUInteger newCount = initialCount + 1;
- if (newCount > _capacity) {
- [self internalResizeToCapacity:CapacityFromCount(newCount)];
- }
- _count = newCount;
- if (index != initialCount) {
- memmove(&_values[index + 1], &_values[index], (initialCount - index) * sizeof(BOOL));
- }
- _values[index] = value;
- if (_autocreator) {
- GPBAutocreatedArrayModified(_autocreator, self);
- }
-}
-
-- (void)replaceValueAtIndex:(NSUInteger)index withValue:(BOOL)value {
- if (index >= _count) {
- [NSException raise:NSRangeException
- format:@"Index (%lu) beyond bounds (%lu)",
- (unsigned long)index, (unsigned long)_count];
- }
- _values[index] = value;
-}
-
-- (void)addValuesFromArray:(GPBBoolArray *)array {
- [self addValues:array->_values count:array->_count];
-}
-
-- (void)removeValueAtIndex:(NSUInteger)index {
- if (index >= _count) {
- [NSException raise:NSRangeException
- format:@"Index (%lu) beyond bounds (%lu)",
- (unsigned long)index, (unsigned long)_count];
- }
- NSUInteger newCount = _count - 1;
- if (index != newCount) {
- memmove(&_values[index], &_values[index + 1], (newCount - index) * sizeof(BOOL));
- }
- _count = newCount;
- if ((newCount + (2 * kChunkSize)) < _capacity) {
- [self internalResizeToCapacity:CapacityFromCount(newCount)];
- }
-}
-
-- (void)removeAll {
- _count = 0;
- if ((0 + (2 * kChunkSize)) < _capacity) {
- [self internalResizeToCapacity:CapacityFromCount(0)];
- }
-}
-
-- (void)exchangeValueAtIndex:(NSUInteger)idx1
- withValueAtIndex:(NSUInteger)idx2 {
- if (idx1 >= _count) {
- [NSException raise:NSRangeException
- format:@"Index (%lu) beyond bounds (%lu)",
- (unsigned long)idx1, (unsigned long)_count];
- }
- if (idx2 >= _count) {
- [NSException raise:NSRangeException
- format:@"Index (%lu) beyond bounds (%lu)",
- (unsigned long)idx2, (unsigned long)_count];
- }
- BOOL temp = _values[idx1];
- _values[idx1] = _values[idx2];
- _values[idx2] = temp;
-}
-
-@end
-
-//%PDDM-EXPAND-END (7 expansions)
-
-#pragma mark - Enum
-
-@implementation GPBEnumArray {
- @package
- GPBEnumValidationFunc _validationFunc;
- int32_t *_values;
- NSUInteger _count;
- NSUInteger _capacity;
-}
-
-@synthesize count = _count;
-@synthesize validationFunc = _validationFunc;
-
-+ (instancetype)array {
- return [[[self alloc] initWithValidationFunction:NULL] autorelease];
-}
-
-+ (instancetype)arrayWithValidationFunction:(GPBEnumValidationFunc)func {
- return [[[self alloc] initWithValidationFunction:func] autorelease];
-}
-
-+ (instancetype)arrayWithValidationFunction:(GPBEnumValidationFunc)func
- rawValue:(int32_t)value {
- return [[[self alloc] initWithValidationFunction:func
- rawValues:&value
- count:1] autorelease];
-}
-
-+ (instancetype)arrayWithValueArray:(GPBEnumArray *)array {
- return [[(GPBEnumArray*)[self alloc] initWithValueArray:array] autorelease];
-}
-
-+ (instancetype)arrayWithValidationFunction:(GPBEnumValidationFunc)func
- capacity:(NSUInteger)count {
- return [[[self alloc] initWithValidationFunction:func capacity:count] autorelease];
-}
-
-- (instancetype)init {
- return [self initWithValidationFunction:NULL];
-}
-
-- (instancetype)initWithValueArray:(GPBEnumArray *)array {
- return [self initWithValidationFunction:array->_validationFunc
- rawValues:array->_values
- count:array->_count];
-}
-
-- (instancetype)initWithValidationFunction:(GPBEnumValidationFunc)func {
- self = [super init];
- if (self) {
- _validationFunc = (func != NULL ? func : ArrayDefault_IsValidValue);
- }
- return self;
-}
-
-- (instancetype)initWithValidationFunction:(GPBEnumValidationFunc)func
- rawValues:(const int32_t [])values
- count:(NSUInteger)count {
- self = [self initWithValidationFunction:func];
- if (self) {
- if (count && values) {
- _values = reallocf(_values, count * sizeof(int32_t));
- if (_values != NULL) {
- _capacity = count;
- memcpy(_values, values, count * sizeof(int32_t));
- _count = count;
- } else {
- [self release];
- [NSException raise:NSMallocException
- format:@"Failed to allocate %lu bytes",
- (unsigned long)(count * sizeof(int32_t))];
- }
- }
- }
- return self;
-}
-
-- (instancetype)initWithValidationFunction:(GPBEnumValidationFunc)func
- capacity:(NSUInteger)count {
- self = [self initWithValidationFunction:func];
- if (self && count) {
- [self internalResizeToCapacity:count];
- }
- return self;
-}
-
-- (instancetype)copyWithZone:(NSZone *)zone {
- return [[GPBEnumArray allocWithZone:zone]
- initWithValidationFunction:_validationFunc
- rawValues:_values
- count:_count];
-}
-
-//%PDDM-EXPAND ARRAY_IMMUTABLE_CORE(Enum, int32_t, Raw, %d)
-// This block of code is generated, do not edit it directly.
-
-- (void)dealloc {
- NSAssert(!_autocreator,
- @"%@: Autocreator must be cleared before release, autocreator: %@",
- [self class], _autocreator);
- free(_values);
- [super dealloc];
-}
-
-- (BOOL)isEqual:(id)other {
- if (self == other) {
- return YES;
- }
- if (![other isKindOfClass:[GPBEnumArray class]]) {
- return NO;
- }
- GPBEnumArray *otherArray = other;
- return (_count == otherArray->_count
- && memcmp(_values, otherArray->_values, (_count * sizeof(int32_t))) == 0);
-}
-
-- (NSUInteger)hash {
- // Follow NSArray's lead, and use the count as the hash.
- return _count;
-}
-
-- (NSString *)description {
- NSMutableString *result = [NSMutableString stringWithFormat:@"<%@ %p> { ", [self class], self];
- for (NSUInteger i = 0, count = _count; i < count; ++i) {
- if (i == 0) {
- [result appendFormat:@"%d", _values[i]];
- } else {
- [result appendFormat:@", %d", _values[i]];
- }
- }
- [result appendFormat:@" }"];
- return result;
-}
-
-- (void)enumerateRawValuesWithBlock:(void (^)(int32_t value, NSUInteger idx, BOOL *stop))block {
- [self enumerateRawValuesWithOptions:(NSEnumerationOptions)0 usingBlock:block];
-}
-
-- (void)enumerateRawValuesWithOptions:(NSEnumerationOptions)opts
- usingBlock:(void (^)(int32_t value, NSUInteger idx, BOOL *stop))block {
- // NSEnumerationConcurrent isn't currently supported (and Apple's docs say that is ok).
- BOOL stop = NO;
- if ((opts & NSEnumerationReverse) == 0) {
- for (NSUInteger i = 0, count = _count; i < count; ++i) {
- block(_values[i], i, &stop);
- if (stop) break;
- }
- } else if (_count > 0) {
- for (NSUInteger i = _count; i > 0; --i) {
- block(_values[i - 1], (i - 1), &stop);
- if (stop) break;
- }
- }
-}
-//%PDDM-EXPAND-END ARRAY_IMMUTABLE_CORE(Enum, int32_t, Raw, %d)
-
-- (int32_t)valueAtIndex:(NSUInteger)index {
-//%PDDM-EXPAND VALIDATE_RANGE(index, _count)
-// This block of code is generated, do not edit it directly.
-
- if (index >= _count) {
- [NSException raise:NSRangeException
- format:@"Index (%lu) beyond bounds (%lu)",
- (unsigned long)index, (unsigned long)_count];
- }
-//%PDDM-EXPAND-END VALIDATE_RANGE(index, _count)
- int32_t result = _values[index];
- if (!_validationFunc(result)) {
- result = kGPBUnrecognizedEnumeratorValue;
- }
- return result;
-}
-
-- (int32_t)rawValueAtIndex:(NSUInteger)index {
-//%PDDM-EXPAND VALIDATE_RANGE(index, _count)
-// This block of code is generated, do not edit it directly.
-
- if (index >= _count) {
- [NSException raise:NSRangeException
- format:@"Index (%lu) beyond bounds (%lu)",
- (unsigned long)index, (unsigned long)_count];
- }
-//%PDDM-EXPAND-END VALIDATE_RANGE(index, _count)
- return _values[index];
-}
-
-- (void)enumerateValuesWithBlock:(void (^)(int32_t value, NSUInteger idx, BOOL *stop))block {
- [self enumerateValuesWithOptions:(NSEnumerationOptions)0 usingBlock:block];
-}
-
-- (void)enumerateValuesWithOptions:(NSEnumerationOptions)opts
- usingBlock:(void (^)(int32_t value, NSUInteger idx, BOOL *stop))block {
- // NSEnumerationConcurrent isn't currently supported (and Apple's docs say that is ok).
- BOOL stop = NO;
- GPBEnumValidationFunc func = _validationFunc;
- if ((opts & NSEnumerationReverse) == 0) {
- int32_t *scan = _values;
- int32_t *end = scan + _count;
- for (NSUInteger i = 0; scan < end; ++i, ++scan) {
- int32_t value = *scan;
- if (!func(value)) {
- value = kGPBUnrecognizedEnumeratorValue;
- }
- block(value, i, &stop);
- if (stop) break;
- }
- } else if (_count > 0) {
- int32_t *end = _values;
- int32_t *scan = end + (_count - 1);
- for (NSUInteger i = (_count - 1); scan >= end; --i, --scan) {
- int32_t value = *scan;
- if (!func(value)) {
- value = kGPBUnrecognizedEnumeratorValue;
- }
- block(value, i, &stop);
- if (stop) break;
- }
- }
-}
-
-//%PDDM-EXPAND ARRAY_MUTABLE_CORE(Enum, int32_t, Raw, %d)
-// This block of code is generated, do not edit it directly.
-
-- (void)internalResizeToCapacity:(NSUInteger)newCapacity {
- _values = reallocf(_values, newCapacity * sizeof(int32_t));
- if (_values == NULL) {
- _capacity = 0;
- _count = 0;
- [NSException raise:NSMallocException
- format:@"Failed to allocate %lu bytes",
- (unsigned long)(newCapacity * sizeof(int32_t))];
- }
- _capacity = newCapacity;
-}
-
-- (void)addRawValue:(int32_t)value {
- [self addRawValues:&value count:1];
-}
-
-- (void)addRawValues:(const int32_t [])values count:(NSUInteger)count {
- if (values == NULL || count == 0) return;
- NSUInteger initialCount = _count;
- NSUInteger newCount = initialCount + count;
- if (newCount > _capacity) {
- [self internalResizeToCapacity:CapacityFromCount(newCount)];
- }
- _count = newCount;
- memcpy(&_values[initialCount], values, count * sizeof(int32_t));
- if (_autocreator) {
- GPBAutocreatedArrayModified(_autocreator, self);
- }
-}
-
-- (void)insertRawValue:(int32_t)value atIndex:(NSUInteger)index {
- if (index >= _count + 1) {
- [NSException raise:NSRangeException
- format:@"Index (%lu) beyond bounds (%lu)",
- (unsigned long)index, (unsigned long)_count + 1];
- }
- NSUInteger initialCount = _count;
- NSUInteger newCount = initialCount + 1;
- if (newCount > _capacity) {
- [self internalResizeToCapacity:CapacityFromCount(newCount)];
- }
- _count = newCount;
- if (index != initialCount) {
- memmove(&_values[index + 1], &_values[index], (initialCount - index) * sizeof(int32_t));
- }
- _values[index] = value;
- if (_autocreator) {
- GPBAutocreatedArrayModified(_autocreator, self);
- }
-}
-
-- (void)replaceValueAtIndex:(NSUInteger)index withRawValue:(int32_t)value {
- if (index >= _count) {
- [NSException raise:NSRangeException
- format:@"Index (%lu) beyond bounds (%lu)",
- (unsigned long)index, (unsigned long)_count];
- }
- _values[index] = value;
-}
-
-- (void)addRawValuesFromArray:(GPBEnumArray *)array {
- [self addRawValues:array->_values count:array->_count];
-}
-
-- (void)removeValueAtIndex:(NSUInteger)index {
- if (index >= _count) {
- [NSException raise:NSRangeException
- format:@"Index (%lu) beyond bounds (%lu)",
- (unsigned long)index, (unsigned long)_count];
- }
- NSUInteger newCount = _count - 1;
- if (index != newCount) {
- memmove(&_values[index], &_values[index + 1], (newCount - index) * sizeof(int32_t));
- }
- _count = newCount;
- if ((newCount + (2 * kChunkSize)) < _capacity) {
- [self internalResizeToCapacity:CapacityFromCount(newCount)];
- }
-}
-
-- (void)removeAll {
- _count = 0;
- if ((0 + (2 * kChunkSize)) < _capacity) {
- [self internalResizeToCapacity:CapacityFromCount(0)];
- }
-}
-
-- (void)exchangeValueAtIndex:(NSUInteger)idx1
- withValueAtIndex:(NSUInteger)idx2 {
- if (idx1 >= _count) {
- [NSException raise:NSRangeException
- format:@"Index (%lu) beyond bounds (%lu)",
- (unsigned long)idx1, (unsigned long)_count];
- }
- if (idx2 >= _count) {
- [NSException raise:NSRangeException
- format:@"Index (%lu) beyond bounds (%lu)",
- (unsigned long)idx2, (unsigned long)_count];
- }
- int32_t temp = _values[idx1];
- _values[idx1] = _values[idx2];
- _values[idx2] = temp;
-}
-
-//%PDDM-EXPAND MUTATION_METHODS(Enum, int32_t, , EnumValidationList, EnumValidationOne)
-// This block of code is generated, do not edit it directly.
-
-- (void)addValue:(int32_t)value {
- [self addValues:&value count:1];
-}
-
-- (void)addValues:(const int32_t [])values count:(NSUInteger)count {
- if (values == NULL || count == 0) return;
- GPBEnumValidationFunc func = _validationFunc;
- for (NSUInteger i = 0; i < count; ++i) {
- if (!func(values[i])) {
- [NSException raise:NSInvalidArgumentException
- format:@"%@: Attempt to set an unknown enum value (%d)",
- [self class], values[i]];
- }
- }
- NSUInteger initialCount = _count;
- NSUInteger newCount = initialCount + count;
- if (newCount > _capacity) {
- [self internalResizeToCapacity:CapacityFromCount(newCount)];
- }
- _count = newCount;
- memcpy(&_values[initialCount], values, count * sizeof(int32_t));
- if (_autocreator) {
- GPBAutocreatedArrayModified(_autocreator, self);
- }
-}
-
-- (void)insertValue:(int32_t)value atIndex:(NSUInteger)index {
- if (index >= _count + 1) {
- [NSException raise:NSRangeException
- format:@"Index (%lu) beyond bounds (%lu)",
- (unsigned long)index, (unsigned long)_count + 1];
- }
- if (!_validationFunc(value)) {
- [NSException raise:NSInvalidArgumentException
- format:@"%@: Attempt to set an unknown enum value (%d)",
- [self class], value];
- }
- NSUInteger initialCount = _count;
- NSUInteger newCount = initialCount + 1;
- if (newCount > _capacity) {
- [self internalResizeToCapacity:CapacityFromCount(newCount)];
- }
- _count = newCount;
- if (index != initialCount) {
- memmove(&_values[index + 1], &_values[index], (initialCount - index) * sizeof(int32_t));
- }
- _values[index] = value;
- if (_autocreator) {
- GPBAutocreatedArrayModified(_autocreator, self);
- }
-}
-
-- (void)replaceValueAtIndex:(NSUInteger)index withValue:(int32_t)value {
- if (index >= _count) {
- [NSException raise:NSRangeException
- format:@"Index (%lu) beyond bounds (%lu)",
- (unsigned long)index, (unsigned long)_count];
- }
- if (!_validationFunc(value)) {
- [NSException raise:NSInvalidArgumentException
- format:@"%@: Attempt to set an unknown enum value (%d)",
- [self class], value];
- }
- _values[index] = value;
-}
-//%PDDM-EXPAND-END (2 expansions)
-
-//%PDDM-DEFINE MUTATION_HOOK_EnumValidationList()
-//% GPBEnumValidationFunc func = _validationFunc;
-//% for (NSUInteger i = 0; i < count; ++i) {
-//% if (!func(values[i])) {
-//% [NSException raise:NSInvalidArgumentException
-//% format:@"%@: Attempt to set an unknown enum value (%d)",
-//% [self class], values[i]];
-//% }
-//% }
-//%
-//%PDDM-DEFINE MUTATION_HOOK_EnumValidationOne()
-//% if (!_validationFunc(value)) {
-//% [NSException raise:NSInvalidArgumentException
-//% format:@"%@: Attempt to set an unknown enum value (%d)",
-//% [self class], value];
-//% }
-//%
-
-@end
-
-#pragma mark - NSArray Subclass
-
-@implementation GPBAutocreatedArray {
- NSMutableArray *_array;
-}
-
-- (void)dealloc {
- NSAssert(!_autocreator,
- @"%@: Autocreator must be cleared before release, autocreator: %@",
- [self class], _autocreator);
- [_array release];
- [super dealloc];
-}
-
-#pragma mark Required NSArray overrides
-
-- (NSUInteger)count {
- return [_array count];
-}
-
-- (id)objectAtIndex:(NSUInteger)idx {
- return [_array objectAtIndex:idx];
-}
-
-#pragma mark Required NSMutableArray overrides
-
-// Only need to call GPBAutocreatedArrayModified() when adding things since
-// we only autocreate empty arrays.
-
-- (void)insertObject:(id)anObject atIndex:(NSUInteger)idx {
- if (_array == nil) {
- _array = [[NSMutableArray alloc] init];
- }
- [_array insertObject:anObject atIndex:idx];
-
- if (_autocreator) {
- GPBAutocreatedArrayModified(_autocreator, self);
- }
-}
-
-- (void)removeObject:(id)anObject {
- [_array removeObject:anObject];
-}
-
-- (void)removeObjectAtIndex:(NSUInteger)idx {
- [_array removeObjectAtIndex:idx];
-}
-
-- (void)addObject:(id)anObject {
- if (_array == nil) {
- _array = [[NSMutableArray alloc] init];
- }
- [_array addObject:anObject];
-
- if (_autocreator) {
- GPBAutocreatedArrayModified(_autocreator, self);
- }
-}
-
-- (void)removeLastObject {
- [_array removeLastObject];
-}
-
-- (void)replaceObjectAtIndex:(NSUInteger)idx withObject:(id)anObject {
- [_array replaceObjectAtIndex:idx withObject:anObject];
-}
-
-#pragma mark Extra things hooked
-
-- (id)copyWithZone:(NSZone *)zone {
- if (_array == nil) {
- return [[NSMutableArray allocWithZone:zone] init];
- }
- return [_array copyWithZone:zone];
-}
-
-- (id)mutableCopyWithZone:(NSZone *)zone {
- if (_array == nil) {
- return [[NSMutableArray allocWithZone:zone] init];
- }
- return [_array mutableCopyWithZone:zone];
-}
-
-- (NSUInteger)countByEnumeratingWithState:(NSFastEnumerationState *)state
- objects:(id __unsafe_unretained [])buffer
- count:(NSUInteger)len {
- return [_array countByEnumeratingWithState:state objects:buffer count:len];
-}
-
-- (void)enumerateObjectsUsingBlock:(void (^)(id obj, NSUInteger idx, BOOL *stop))block {
- [_array enumerateObjectsUsingBlock:block];
-}
-
-- (void)enumerateObjectsWithOptions:(NSEnumerationOptions)opts
- usingBlock:(void (^)(id obj, NSUInteger idx, BOOL *stop))block {
- [_array enumerateObjectsWithOptions:opts usingBlock:block];
-}
-
-@end
-
-#pragma clang diagnostic pop
diff --git a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBArray_PackagePrivate.h b/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBArray_PackagePrivate.h
deleted file mode 100644
index 35a45381..00000000
--- a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBArray_PackagePrivate.h
+++ /dev/null
@@ -1,130 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2015 Google Inc. All rights reserved.
-// https://developers.google.com/protocol-buffers/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#import "GPBArray.h"
-
-@class GPBMessage;
-
-//%PDDM-DEFINE DECLARE_ARRAY_EXTRAS()
-//%ARRAY_INTERFACE_EXTRAS(Int32, int32_t)
-//%ARRAY_INTERFACE_EXTRAS(UInt32, uint32_t)
-//%ARRAY_INTERFACE_EXTRAS(Int64, int64_t)
-//%ARRAY_INTERFACE_EXTRAS(UInt64, uint64_t)
-//%ARRAY_INTERFACE_EXTRAS(Float, float)
-//%ARRAY_INTERFACE_EXTRAS(Double, double)
-//%ARRAY_INTERFACE_EXTRAS(Bool, BOOL)
-//%ARRAY_INTERFACE_EXTRAS(Enum, int32_t)
-
-//%PDDM-DEFINE ARRAY_INTERFACE_EXTRAS(NAME, TYPE)
-//%#pragma mark - NAME
-//%
-//%@interface GPB##NAME##Array () {
-//% @package
-//% GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
-//%}
-//%@end
-//%
-
-//%PDDM-EXPAND DECLARE_ARRAY_EXTRAS()
-// This block of code is generated, do not edit it directly.
-
-#pragma mark - Int32
-
-@interface GPBInt32Array () {
- @package
- GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
-}
-@end
-
-#pragma mark - UInt32
-
-@interface GPBUInt32Array () {
- @package
- GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
-}
-@end
-
-#pragma mark - Int64
-
-@interface GPBInt64Array () {
- @package
- GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
-}
-@end
-
-#pragma mark - UInt64
-
-@interface GPBUInt64Array () {
- @package
- GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
-}
-@end
-
-#pragma mark - Float
-
-@interface GPBFloatArray () {
- @package
- GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
-}
-@end
-
-#pragma mark - Double
-
-@interface GPBDoubleArray () {
- @package
- GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
-}
-@end
-
-#pragma mark - Bool
-
-@interface GPBBoolArray () {
- @package
- GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
-}
-@end
-
-#pragma mark - Enum
-
-@interface GPBEnumArray () {
- @package
- GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
-}
-@end
-
-//%PDDM-EXPAND-END DECLARE_ARRAY_EXTRAS()
-
-#pragma mark - NSArray Subclass
-
-@interface GPBAutocreatedArray : NSMutableArray {
- @package
- GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
-}
-@end
diff --git a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBBootstrap.h b/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBBootstrap.h
deleted file mode 100644
index ed53ae7c..00000000
--- a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBBootstrap.h
+++ /dev/null
@@ -1,123 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// https://developers.google.com/protocol-buffers/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-/**
- * The Objective C runtime has complete enough info that most protos don’t end
- * up using this, so leaving it on is no cost or very little cost. If you
- * happen to see it causing bloat, this is the way to disable it. If you do
- * need to disable it, try only disabling it for Release builds as having
- * full TextFormat can be useful for debugging.
- **/
-#ifndef GPBOBJC_SKIP_MESSAGE_TEXTFORMAT_EXTRAS
-#define GPBOBJC_SKIP_MESSAGE_TEXTFORMAT_EXTRAS 0
-#endif
-
-// Used in the generated code to give sizes to enums. int32_t was chosen based
-// on the fact that Protocol Buffers enums are limited to this range.
-#if !__has_feature(objc_fixed_enum)
- #error All supported Xcode versions should support objc_fixed_enum.
-#endif
-
-// If the headers are imported into Objective-C++, we can run into an issue
-// where the defintion of NS_ENUM (really CF_ENUM) changes based on the C++
-// standard that is in effect. If it isn't C++11 or higher, the definition
-// doesn't allow us to forward declare. We work around this one case by
-// providing a local definition. The default case has to use NS_ENUM for the
-// magic that is Swift bridging of enums.
-#if (defined(__cplusplus) && __cplusplus && __cplusplus < 201103L)
- #define GPB_ENUM(X) enum X : int32_t X; enum X : int32_t
-#else
- #define GPB_ENUM(X) NS_ENUM(int32_t, X)
-#endif
-
-/**
- * GPB_ENUM_FWD_DECLARE is used for forward declaring enums, for example:
- *
- * ```
- * GPB_ENUM_FWD_DECLARE(Foo_Enum)
- *
- * @interface BarClass : NSObject
- * @property (nonatomic) enum Foo_Enum value;
- * - (void)bazMethod:(enum Foo_Enum):value;
- * @end
- * ```
- **/
-#define GPB_ENUM_FWD_DECLARE(X) enum X : int32_t
-
-/**
- * Based upon CF_INLINE. Forces inlining in non DEBUG builds.
- **/
-#if !defined(DEBUG)
-#define GPB_INLINE static __inline__ __attribute__((always_inline))
-#else
-#define GPB_INLINE static __inline__
-#endif
-
-/**
- * For use in public headers that might need to deal with ARC.
- **/
-#ifndef GPB_UNSAFE_UNRETAINED
-#if __has_feature(objc_arc)
-#define GPB_UNSAFE_UNRETAINED __unsafe_unretained
-#else
-#define GPB_UNSAFE_UNRETAINED
-#endif
-#endif
-
-// If property name starts with init we need to annotate it to get past ARC.
-// http://stackoverflow.com/questions/18723226/how-do-i-annotate-an-objective-c-property-with-an-objc-method-family/18723227#18723227
-//
-// Meant to be used internally by generated code.
-#define GPB_METHOD_FAMILY_NONE __attribute__((objc_method_family(none)))
-
-// ----------------------------------------------------------------------------
-// These version numbers are all internal to the ObjC Protobuf runtime; they
-// are used to ensure compatibility between the generated sources and the
-// headers being compiled against and/or the version of sources being run
-// against.
-//
-// They are all #defines so the values are captured into every .o file they
-// are used in and to allow comparisons in the preprocessor.
-
-// Current library runtime version.
-// - Gets bumped when the runtime makes changes to the interfaces between the
-// generated code and runtime (things added/removed, etc).
-#define GOOGLE_PROTOBUF_OBJC_VERSION 30002
-
-// Minimum runtime version supported for compiling/running against.
-// - Gets changed when support for the older generated code is dropped.
-#define GOOGLE_PROTOBUF_OBJC_MIN_SUPPORTED_VERSION 30001
-
-
-// This is a legacy constant now frozen in time for old generated code. If
-// GOOGLE_PROTOBUF_OBJC_MIN_SUPPORTED_VERSION ever gets moved above 30001 then
-// this should also change to break code compiled with an old runtime that
-// can't be supported any more.
-#define GOOGLE_PROTOBUF_OBJC_GEN_VERSION 30001
diff --git a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBCodedInputStream.h b/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBCodedInputStream.h
deleted file mode 100644
index fbe5009c..00000000
--- a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBCodedInputStream.h
+++ /dev/null
@@ -1,253 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// https://developers.google.com/protocol-buffers/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#import <Foundation/Foundation.h>
-
-@class GPBMessage;
-@class GPBExtensionRegistry;
-
-NS_ASSUME_NONNULL_BEGIN
-
-CF_EXTERN_C_BEGIN
-
-/**
- * @c GPBCodedInputStream exception name. Exceptions raised from
- * @c GPBCodedInputStream contain an underlying error in the userInfo dictionary
- * under the GPBCodedInputStreamUnderlyingErrorKey key.
- **/
-extern NSString *const GPBCodedInputStreamException;
-
-/** The key under which the underlying NSError from the exception is stored. */
-extern NSString *const GPBCodedInputStreamUnderlyingErrorKey;
-
-/** NSError domain used for @c GPBCodedInputStream errors. */
-extern NSString *const GPBCodedInputStreamErrorDomain;
-
-/**
- * Error code for NSError with @c GPBCodedInputStreamErrorDomain.
- **/
-typedef NS_ENUM(NSInteger, GPBCodedInputStreamErrorCode) {
- /** The size does not fit in the remaining bytes to be read. */
- GPBCodedInputStreamErrorInvalidSize = -100,
- /** Attempted to read beyond the subsection limit. */
- GPBCodedInputStreamErrorSubsectionLimitReached = -101,
- /** The requested subsection limit is invalid. */
- GPBCodedInputStreamErrorInvalidSubsectionLimit = -102,
- /** Invalid tag read. */
- GPBCodedInputStreamErrorInvalidTag = -103,
- /** Invalid UTF-8 character in a string. */
- GPBCodedInputStreamErrorInvalidUTF8 = -104,
- /** Invalid VarInt read. */
- GPBCodedInputStreamErrorInvalidVarInt = -105,
- /** The maximum recursion depth of messages was exceeded. */
- GPBCodedInputStreamErrorRecursionDepthExceeded = -106,
-};
-
-CF_EXTERN_C_END
-
-/**
- * Reads and decodes protocol message fields.
- *
- * The common uses of protocol buffers shouldn't need to use this class.
- * @c GPBMessage's provide a @c +parseFromData:error: and
- * @c +parseFromData:extensionRegistry:error: method that will decode a
- * message for you.
- *
- * @note Subclassing of @c GPBCodedInputStream is NOT supported.
- **/
-@interface GPBCodedInputStream : NSObject
-
-/**
- * Creates a new stream wrapping some data.
- *
- * @param data The data to wrap inside the stream.
- *
- * @return A newly instanced GPBCodedInputStream.
- **/
-+ (instancetype)streamWithData:(NSData *)data;
-
-/**
- * Initializes a stream wrapping some data.
- *
- * @param data The data to wrap inside the stream.
- *
- * @return A newly initialized GPBCodedInputStream.
- **/
-- (instancetype)initWithData:(NSData *)data;
-
-/**
- * Attempts to read a field tag, returning zero if we have reached EOF.
- * Protocol message parsers use this to read tags, since a protocol message
- * may legally end wherever a tag occurs, and zero is not a valid tag number.
- *
- * @return The field tag, or zero if EOF was reached.
- **/
-- (int32_t)readTag;
-
-/**
- * @return A double read from the stream.
- **/
-- (double)readDouble;
-/**
- * @return A float read from the stream.
- **/
-- (float)readFloat;
-/**
- * @return A uint64 read from the stream.
- **/
-- (uint64_t)readUInt64;
-/**
- * @return A uint32 read from the stream.
- **/
-- (uint32_t)readUInt32;
-/**
- * @return An int64 read from the stream.
- **/
-- (int64_t)readInt64;
-/**
- * @return An int32 read from the stream.
- **/
-- (int32_t)readInt32;
-/**
- * @return A fixed64 read from the stream.
- **/
-- (uint64_t)readFixed64;
-/**
- * @return A fixed32 read from the stream.
- **/
-- (uint32_t)readFixed32;
-/**
- * @return An enum read from the stream.
- **/
-- (int32_t)readEnum;
-/**
- * @return A sfixed32 read from the stream.
- **/
-- (int32_t)readSFixed32;
-/**
- * @return A fixed64 read from the stream.
- **/
-- (int64_t)readSFixed64;
-/**
- * @return A sint32 read from the stream.
- **/
-- (int32_t)readSInt32;
-/**
- * @return A sint64 read from the stream.
- **/
-- (int64_t)readSInt64;
-/**
- * @return A boolean read from the stream.
- **/
-- (BOOL)readBool;
-/**
- * @return A string read from the stream.
- **/
-- (NSString *)readString;
-/**
- * @return Data read from the stream.
- **/
-- (NSData *)readBytes;
-
-/**
- * Read an embedded message field value from the stream.
- *
- * @param message The message to set fields on as they are read.
- * @param extensionRegistry An optional extension registry to use to lookup
- * extensions for message.
- **/
-- (void)readMessage:(GPBMessage *)message
- extensionRegistry:(nullable GPBExtensionRegistry *)extensionRegistry;
-
-/**
- * Reads and discards a single field, given its tag value.
- *
- * @param tag The tag number of the field to skip.
- *
- * @return NO if the tag is an endgroup tag (in which case nothing is skipped),
- * YES in all other cases.
- **/
-- (BOOL)skipField:(int32_t)tag;
-
-/**
- * Reads and discards an entire message. This will read either until EOF or
- * until an endgroup tag, whichever comes first.
- **/
-- (void)skipMessage;
-
-/**
- * Check to see if the logical end of the stream has been reached.
- *
- * @note This can return NO when there is no more data, but the current parsing
- * expected more data.
- *
- * @return YES if the logical end of the stream has been reached, NO otherwise.
- **/
-- (BOOL)isAtEnd;
-
-/**
- * @return The offset into the stream.
- **/
-- (size_t)position;
-
-/**
- * Moves the limit to the given byte offset starting at the current location.
- *
- * @exception GPBCodedInputStreamException If the requested bytes exceeed the
- * current limit.
- *
- * @param byteLimit The number of bytes to move the limit, offset to the current
- * location.
- *
- * @return The limit offset before moving the new limit.
- */
-- (size_t)pushLimit:(size_t)byteLimit;
-
-/**
- * Moves the limit back to the offset as it was before calling pushLimit:.
- *
- * @param oldLimit The number of bytes to move the current limit. Usually this
- * is the value returned by the pushLimit: method.
- */
-- (void)popLimit:(size_t)oldLimit;
-
-/**
- * Verifies that the last call to -readTag returned the given tag value. This
- * is used to verify that a nested group ended with the correct end tag.
- *
- * @exception NSParseErrorException If the value does not match the last tag.
- *
- * @param expected The tag that was expected.
- **/
-- (void)checkLastTagWas:(int32_t)expected;
-
-@end
-
-NS_ASSUME_NONNULL_END
diff --git a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBCodedInputStream.m b/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBCodedInputStream.m
deleted file mode 100644
index eef05353..00000000
--- a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBCodedInputStream.m
+++ /dev/null
@@ -1,538 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// https://developers.google.com/protocol-buffers/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#import "GPBCodedInputStream_PackagePrivate.h"
-
-#import "GPBDictionary_PackagePrivate.h"
-#import "GPBMessage_PackagePrivate.h"
-#import "GPBUnknownFieldSet_PackagePrivate.h"
-#import "GPBUtilities_PackagePrivate.h"
-#import "GPBWireFormat.h"
-
-NSString *const GPBCodedInputStreamException =
- GPBNSStringifySymbol(GPBCodedInputStreamException);
-
-NSString *const GPBCodedInputStreamUnderlyingErrorKey =
- GPBNSStringifySymbol(GPBCodedInputStreamUnderlyingErrorKey);
-
-NSString *const GPBCodedInputStreamErrorDomain =
- GPBNSStringifySymbol(GPBCodedInputStreamErrorDomain);
-
-// Matching:
-// https://github.com/google/protobuf/blob/master/java/core/src/main/java/com/google/protobuf/CodedInputStream.java#L62
-// private static final int DEFAULT_RECURSION_LIMIT = 100;
-// https://github.com/google/protobuf/blob/master/src/google/protobuf/io/coded_stream.cc#L86
-// int CodedInputStream::default_recursion_limit_ = 100;
-static const NSUInteger kDefaultRecursionLimit = 100;
-
-static void RaiseException(NSInteger code, NSString *reason) {
- NSDictionary *errorInfo = nil;
- if ([reason length]) {
- errorInfo = @{ GPBErrorReasonKey: reason };
- }
- NSError *error = [NSError errorWithDomain:GPBCodedInputStreamErrorDomain
- code:code
- userInfo:errorInfo];
-
- NSDictionary *exceptionInfo =
- @{ GPBCodedInputStreamUnderlyingErrorKey: error };
- [[[NSException alloc] initWithName:GPBCodedInputStreamException
- reason:reason
- userInfo:exceptionInfo] raise];
-}
-
-static void CheckSize(GPBCodedInputStreamState *state, size_t size) {
- size_t newSize = state->bufferPos + size;
- if (newSize > state->bufferSize) {
- RaiseException(GPBCodedInputStreamErrorInvalidSize, nil);
- }
- if (newSize > state->currentLimit) {
- // Fast forward to end of currentLimit;
- state->bufferPos = state->currentLimit;
- RaiseException(GPBCodedInputStreamErrorSubsectionLimitReached, nil);
- }
-}
-
-static int8_t ReadRawByte(GPBCodedInputStreamState *state) {
- CheckSize(state, sizeof(int8_t));
- return ((int8_t *)state->bytes)[state->bufferPos++];
-}
-
-static int32_t ReadRawLittleEndian32(GPBCodedInputStreamState *state) {
- CheckSize(state, sizeof(int32_t));
- int32_t value = OSReadLittleInt32(state->bytes, state->bufferPos);
- state->bufferPos += sizeof(int32_t);
- return value;
-}
-
-static int64_t ReadRawLittleEndian64(GPBCodedInputStreamState *state) {
- CheckSize(state, sizeof(int64_t));
- int64_t value = OSReadLittleInt64(state->bytes, state->bufferPos);
- state->bufferPos += sizeof(int64_t);
- return value;
-}
-
-static int32_t ReadRawVarint32(GPBCodedInputStreamState *state) {
- int8_t tmp = ReadRawByte(state);
- if (tmp >= 0) {
- return tmp;
- }
- int32_t result = tmp & 0x7f;
- if ((tmp = ReadRawByte(state)) >= 0) {
- result |= tmp << 7;
- } else {
- result |= (tmp & 0x7f) << 7;
- if ((tmp = ReadRawByte(state)) >= 0) {
- result |= tmp << 14;
- } else {
- result |= (tmp & 0x7f) << 14;
- if ((tmp = ReadRawByte(state)) >= 0) {
- result |= tmp << 21;
- } else {
- result |= (tmp & 0x7f) << 21;
- result |= (tmp = ReadRawByte(state)) << 28;
- if (tmp < 0) {
- // Discard upper 32 bits.
- for (int i = 0; i < 5; i++) {
- if (ReadRawByte(state) >= 0) {
- return result;
- }
- }
- RaiseException(GPBCodedInputStreamErrorInvalidVarInt,
- @"Invalid VarInt32");
- }
- }
- }
- }
- return result;
-}
-
-static int64_t ReadRawVarint64(GPBCodedInputStreamState *state) {
- int32_t shift = 0;
- int64_t result = 0;
- while (shift < 64) {
- int8_t b = ReadRawByte(state);
- result |= (int64_t)(b & 0x7F) << shift;
- if ((b & 0x80) == 0) {
- return result;
- }
- shift += 7;
- }
- RaiseException(GPBCodedInputStreamErrorInvalidVarInt, @"Invalid VarInt64");
- return 0;
-}
-
-static void SkipRawData(GPBCodedInputStreamState *state, size_t size) {
- CheckSize(state, size);
- state->bufferPos += size;
-}
-
-double GPBCodedInputStreamReadDouble(GPBCodedInputStreamState *state) {
- int64_t value = ReadRawLittleEndian64(state);
- return GPBConvertInt64ToDouble(value);
-}
-
-float GPBCodedInputStreamReadFloat(GPBCodedInputStreamState *state) {
- int32_t value = ReadRawLittleEndian32(state);
- return GPBConvertInt32ToFloat(value);
-}
-
-uint64_t GPBCodedInputStreamReadUInt64(GPBCodedInputStreamState *state) {
- uint64_t value = ReadRawVarint64(state);
- return value;
-}
-
-uint32_t GPBCodedInputStreamReadUInt32(GPBCodedInputStreamState *state) {
- uint32_t value = ReadRawVarint32(state);
- return value;
-}
-
-int64_t GPBCodedInputStreamReadInt64(GPBCodedInputStreamState *state) {
- int64_t value = ReadRawVarint64(state);
- return value;
-}
-
-int32_t GPBCodedInputStreamReadInt32(GPBCodedInputStreamState *state) {
- int32_t value = ReadRawVarint32(state);
- return value;
-}
-
-uint64_t GPBCodedInputStreamReadFixed64(GPBCodedInputStreamState *state) {
- uint64_t value = ReadRawLittleEndian64(state);
- return value;
-}
-
-uint32_t GPBCodedInputStreamReadFixed32(GPBCodedInputStreamState *state) {
- uint32_t value = ReadRawLittleEndian32(state);
- return value;
-}
-
-int32_t GPBCodedInputStreamReadEnum(GPBCodedInputStreamState *state) {
- int32_t value = ReadRawVarint32(state);
- return value;
-}
-
-int32_t GPBCodedInputStreamReadSFixed32(GPBCodedInputStreamState *state) {
- int32_t value = ReadRawLittleEndian32(state);
- return value;
-}
-
-int64_t GPBCodedInputStreamReadSFixed64(GPBCodedInputStreamState *state) {
- int64_t value = ReadRawLittleEndian64(state);
- return value;
-}
-
-int32_t GPBCodedInputStreamReadSInt32(GPBCodedInputStreamState *state) {
- int32_t value = GPBDecodeZigZag32(ReadRawVarint32(state));
- return value;
-}
-
-int64_t GPBCodedInputStreamReadSInt64(GPBCodedInputStreamState *state) {
- int64_t value = GPBDecodeZigZag64(ReadRawVarint64(state));
- return value;
-}
-
-BOOL GPBCodedInputStreamReadBool(GPBCodedInputStreamState *state) {
- return ReadRawVarint32(state) != 0;
-}
-
-int32_t GPBCodedInputStreamReadTag(GPBCodedInputStreamState *state) {
- if (GPBCodedInputStreamIsAtEnd(state)) {
- state->lastTag = 0;
- return 0;
- }
-
- state->lastTag = ReadRawVarint32(state);
- if (state->lastTag == 0) {
- // If we actually read zero, that's not a valid tag.
- RaiseException(GPBCodedInputStreamErrorInvalidTag,
- @"A zero tag on the wire is invalid.");
- }
- // Tags have to include a valid wireformat, check that also.
- if (!GPBWireFormatIsValidTag(state->lastTag)) {
- RaiseException(GPBCodedInputStreamErrorInvalidTag,
- @"Invalid wireformat in tag.");
- }
- return state->lastTag;
-}
-
-NSString *GPBCodedInputStreamReadRetainedString(
- GPBCodedInputStreamState *state) {
- int32_t size = ReadRawVarint32(state);
- NSString *result;
- if (size == 0) {
- result = @"";
- } else {
- CheckSize(state, size);
- result = [[NSString alloc] initWithBytes:&state->bytes[state->bufferPos]
- length:size
- encoding:NSUTF8StringEncoding];
- state->bufferPos += size;
- if (!result) {
-#ifdef DEBUG
- // https://developers.google.com/protocol-buffers/docs/proto#scalar
- NSLog(@"UTF-8 failure, is some field type 'string' when it should be "
- @"'bytes'?");
-#endif
- RaiseException(GPBCodedInputStreamErrorInvalidUTF8, nil);
- }
- }
- return result;
-}
-
-NSData *GPBCodedInputStreamReadRetainedBytes(GPBCodedInputStreamState *state) {
- int32_t size = ReadRawVarint32(state);
- if (size < 0) return nil;
- CheckSize(state, size);
- NSData *result = [[NSData alloc] initWithBytes:state->bytes + state->bufferPos
- length:size];
- state->bufferPos += size;
- return result;
-}
-
-NSData *GPBCodedInputStreamReadRetainedBytesNoCopy(
- GPBCodedInputStreamState *state) {
- int32_t size = ReadRawVarint32(state);
- if (size < 0) return nil;
- CheckSize(state, size);
- // Cast is safe because freeWhenDone is NO.
- NSData *result = [[NSData alloc]
- initWithBytesNoCopy:(void *)(state->bytes + state->bufferPos)
- length:size
- freeWhenDone:NO];
- state->bufferPos += size;
- return result;
-}
-
-size_t GPBCodedInputStreamPushLimit(GPBCodedInputStreamState *state,
- size_t byteLimit) {
- byteLimit += state->bufferPos;
- size_t oldLimit = state->currentLimit;
- if (byteLimit > oldLimit) {
- RaiseException(GPBCodedInputStreamErrorInvalidSubsectionLimit, nil);
- }
- state->currentLimit = byteLimit;
- return oldLimit;
-}
-
-void GPBCodedInputStreamPopLimit(GPBCodedInputStreamState *state,
- size_t oldLimit) {
- state->currentLimit = oldLimit;
-}
-
-size_t GPBCodedInputStreamBytesUntilLimit(GPBCodedInputStreamState *state) {
- return state->currentLimit - state->bufferPos;
-}
-
-BOOL GPBCodedInputStreamIsAtEnd(GPBCodedInputStreamState *state) {
- return (state->bufferPos == state->bufferSize) ||
- (state->bufferPos == state->currentLimit);
-}
-
-void GPBCodedInputStreamCheckLastTagWas(GPBCodedInputStreamState *state,
- int32_t value) {
- if (state->lastTag != value) {
- RaiseException(GPBCodedInputStreamErrorInvalidTag, @"Unexpected tag read");
- }
-}
-
-@implementation GPBCodedInputStream
-
-+ (instancetype)streamWithData:(NSData *)data {
- return [[[self alloc] initWithData:data] autorelease];
-}
-
-- (instancetype)initWithData:(NSData *)data {
- if ((self = [super init])) {
-#ifdef DEBUG
- NSCAssert([self class] == [GPBCodedInputStream class],
- @"Subclassing of GPBCodedInputStream is not allowed.");
-#endif
- buffer_ = [data retain];
- state_.bytes = (const uint8_t *)[data bytes];
- state_.bufferSize = [data length];
- state_.currentLimit = state_.bufferSize;
- }
- return self;
-}
-
-- (void)dealloc {
- [buffer_ release];
- [super dealloc];
-}
-
-// Direct access is use for speed, to avoid even internally declaring things
-// read/write, etc. The warning is enabled in the project to ensure code calling
-// protos can turn on -Wdirect-ivar-access without issues.
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wdirect-ivar-access"
-
-- (int32_t)readTag {
- return GPBCodedInputStreamReadTag(&state_);
-}
-
-- (void)checkLastTagWas:(int32_t)value {
- GPBCodedInputStreamCheckLastTagWas(&state_, value);
-}
-
-- (BOOL)skipField:(int32_t)tag {
- NSAssert(GPBWireFormatIsValidTag(tag), @"Invalid tag");
- switch (GPBWireFormatGetTagWireType(tag)) {
- case GPBWireFormatVarint:
- GPBCodedInputStreamReadInt32(&state_);
- return YES;
- case GPBWireFormatFixed64:
- SkipRawData(&state_, sizeof(int64_t));
- return YES;
- case GPBWireFormatLengthDelimited:
- SkipRawData(&state_, ReadRawVarint32(&state_));
- return YES;
- case GPBWireFormatStartGroup:
- [self skipMessage];
- GPBCodedInputStreamCheckLastTagWas(
- &state_, GPBWireFormatMakeTag(GPBWireFormatGetTagFieldNumber(tag),
- GPBWireFormatEndGroup));
- return YES;
- case GPBWireFormatEndGroup:
- return NO;
- case GPBWireFormatFixed32:
- SkipRawData(&state_, sizeof(int32_t));
- return YES;
- }
-}
-
-- (void)skipMessage {
- while (YES) {
- int32_t tag = GPBCodedInputStreamReadTag(&state_);
- if (tag == 0 || ![self skipField:tag]) {
- return;
- }
- }
-}
-
-- (BOOL)isAtEnd {
- return GPBCodedInputStreamIsAtEnd(&state_);
-}
-
-- (size_t)position {
- return state_.bufferPos;
-}
-
-- (size_t)pushLimit:(size_t)byteLimit {
- return GPBCodedInputStreamPushLimit(&state_, byteLimit);
-}
-
-- (void)popLimit:(size_t)oldLimit {
- GPBCodedInputStreamPopLimit(&state_, oldLimit);
-}
-
-- (double)readDouble {
- return GPBCodedInputStreamReadDouble(&state_);
-}
-
-- (float)readFloat {
- return GPBCodedInputStreamReadFloat(&state_);
-}
-
-- (uint64_t)readUInt64 {
- return GPBCodedInputStreamReadUInt64(&state_);
-}
-
-- (int64_t)readInt64 {
- return GPBCodedInputStreamReadInt64(&state_);
-}
-
-- (int32_t)readInt32 {
- return GPBCodedInputStreamReadInt32(&state_);
-}
-
-- (uint64_t)readFixed64 {
- return GPBCodedInputStreamReadFixed64(&state_);
-}
-
-- (uint32_t)readFixed32 {
- return GPBCodedInputStreamReadFixed32(&state_);
-}
-
-- (BOOL)readBool {
- return GPBCodedInputStreamReadBool(&state_);
-}
-
-- (NSString *)readString {
- return [GPBCodedInputStreamReadRetainedString(&state_) autorelease];
-}
-
-- (void)readGroup:(int32_t)fieldNumber
- message:(GPBMessage *)message
- extensionRegistry:(GPBExtensionRegistry *)extensionRegistry {
- if (state_.recursionDepth >= kDefaultRecursionLimit) {
- RaiseException(GPBCodedInputStreamErrorRecursionDepthExceeded, nil);
- }
- ++state_.recursionDepth;
- [message mergeFromCodedInputStream:self extensionRegistry:extensionRegistry];
- GPBCodedInputStreamCheckLastTagWas(
- &state_, GPBWireFormatMakeTag(fieldNumber, GPBWireFormatEndGroup));
- --state_.recursionDepth;
-}
-
-- (void)readUnknownGroup:(int32_t)fieldNumber
- message:(GPBUnknownFieldSet *)message {
- if (state_.recursionDepth >= kDefaultRecursionLimit) {
- RaiseException(GPBCodedInputStreamErrorRecursionDepthExceeded, nil);
- }
- ++state_.recursionDepth;
- [message mergeFromCodedInputStream:self];
- GPBCodedInputStreamCheckLastTagWas(
- &state_, GPBWireFormatMakeTag(fieldNumber, GPBWireFormatEndGroup));
- --state_.recursionDepth;
-}
-
-- (void)readMessage:(GPBMessage *)message
- extensionRegistry:(GPBExtensionRegistry *)extensionRegistry {
- int32_t length = ReadRawVarint32(&state_);
- if (state_.recursionDepth >= kDefaultRecursionLimit) {
- RaiseException(GPBCodedInputStreamErrorRecursionDepthExceeded, nil);
- }
- size_t oldLimit = GPBCodedInputStreamPushLimit(&state_, length);
- ++state_.recursionDepth;
- [message mergeFromCodedInputStream:self extensionRegistry:extensionRegistry];
- GPBCodedInputStreamCheckLastTagWas(&state_, 0);
- --state_.recursionDepth;
- GPBCodedInputStreamPopLimit(&state_, oldLimit);
-}
-
-- (void)readMapEntry:(id)mapDictionary
- extensionRegistry:(GPBExtensionRegistry *)extensionRegistry
- field:(GPBFieldDescriptor *)field
- parentMessage:(GPBMessage *)parentMessage {
- int32_t length = ReadRawVarint32(&state_);
- if (state_.recursionDepth >= kDefaultRecursionLimit) {
- RaiseException(GPBCodedInputStreamErrorRecursionDepthExceeded, nil);
- }
- size_t oldLimit = GPBCodedInputStreamPushLimit(&state_, length);
- ++state_.recursionDepth;
- GPBDictionaryReadEntry(mapDictionary, self, extensionRegistry, field,
- parentMessage);
- GPBCodedInputStreamCheckLastTagWas(&state_, 0);
- --state_.recursionDepth;
- GPBCodedInputStreamPopLimit(&state_, oldLimit);
-}
-
-- (NSData *)readBytes {
- return [GPBCodedInputStreamReadRetainedBytes(&state_) autorelease];
-}
-
-- (uint32_t)readUInt32 {
- return GPBCodedInputStreamReadUInt32(&state_);
-}
-
-- (int32_t)readEnum {
- return GPBCodedInputStreamReadEnum(&state_);
-}
-
-- (int32_t)readSFixed32 {
- return GPBCodedInputStreamReadSFixed32(&state_);
-}
-
-- (int64_t)readSFixed64 {
- return GPBCodedInputStreamReadSFixed64(&state_);
-}
-
-- (int32_t)readSInt32 {
- return GPBCodedInputStreamReadSInt32(&state_);
-}
-
-- (int64_t)readSInt64 {
- return GPBCodedInputStreamReadSInt64(&state_);
-}
-
-#pragma clang diagnostic pop
-
-@end
diff --git a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBCodedInputStream_PackagePrivate.h b/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBCodedInputStream_PackagePrivate.h
deleted file mode 100644
index 90bd0c92..00000000
--- a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBCodedInputStream_PackagePrivate.h
+++ /dev/null
@@ -1,114 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// https://developers.google.com/protocol-buffers/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// This header is private to the ProtobolBuffers library and must NOT be
-// included by any sources outside this library. The contents of this file are
-// subject to change at any time without notice.
-
-#import "GPBCodedInputStream.h"
-
-#import <libkern/OSAtomic.h>
-
-@class GPBUnknownFieldSet;
-@class GPBFieldDescriptor;
-
-typedef struct GPBCodedInputStreamState {
- const uint8_t *bytes;
- size_t bufferSize;
- size_t bufferPos;
-
- // For parsing subsections of an input stream you can put a hard limit on
- // how much should be read. Normally the limit is the end of the stream,
- // but you can adjust it to anywhere, and if you hit it you will be at the
- // end of the stream, until you adjust the limit.
- size_t currentLimit;
- int32_t lastTag;
- NSUInteger recursionDepth;
-} GPBCodedInputStreamState;
-
-@interface GPBCodedInputStream () {
- @package
- struct GPBCodedInputStreamState state_;
- NSData *buffer_;
-}
-
-// Group support is deprecated, so we hide this interface from users, but
-// support for older data.
-- (void)readGroup:(int32_t)fieldNumber
- message:(GPBMessage *)message
- extensionRegistry:(GPBExtensionRegistry *)extensionRegistry;
-
-// Reads a group field value from the stream and merges it into the given
-// UnknownFieldSet.
-- (void)readUnknownGroup:(int32_t)fieldNumber
- message:(GPBUnknownFieldSet *)message;
-
-// Reads a map entry.
-- (void)readMapEntry:(id)mapDictionary
- extensionRegistry:(GPBExtensionRegistry *)extensionRegistry
- field:(GPBFieldDescriptor *)field
- parentMessage:(GPBMessage *)parentMessage;
-@end
-
-CF_EXTERN_C_BEGIN
-
-int32_t GPBCodedInputStreamReadTag(GPBCodedInputStreamState *state);
-
-double GPBCodedInputStreamReadDouble(GPBCodedInputStreamState *state);
-float GPBCodedInputStreamReadFloat(GPBCodedInputStreamState *state);
-uint64_t GPBCodedInputStreamReadUInt64(GPBCodedInputStreamState *state);
-uint32_t GPBCodedInputStreamReadUInt32(GPBCodedInputStreamState *state);
-int64_t GPBCodedInputStreamReadInt64(GPBCodedInputStreamState *state);
-int32_t GPBCodedInputStreamReadInt32(GPBCodedInputStreamState *state);
-uint64_t GPBCodedInputStreamReadFixed64(GPBCodedInputStreamState *state);
-uint32_t GPBCodedInputStreamReadFixed32(GPBCodedInputStreamState *state);
-int32_t GPBCodedInputStreamReadEnum(GPBCodedInputStreamState *state);
-int32_t GPBCodedInputStreamReadSFixed32(GPBCodedInputStreamState *state);
-int64_t GPBCodedInputStreamReadSFixed64(GPBCodedInputStreamState *state);
-int32_t GPBCodedInputStreamReadSInt32(GPBCodedInputStreamState *state);
-int64_t GPBCodedInputStreamReadSInt64(GPBCodedInputStreamState *state);
-BOOL GPBCodedInputStreamReadBool(GPBCodedInputStreamState *state);
-NSString *GPBCodedInputStreamReadRetainedString(GPBCodedInputStreamState *state)
- __attribute((ns_returns_retained));
-NSData *GPBCodedInputStreamReadRetainedBytes(GPBCodedInputStreamState *state)
- __attribute((ns_returns_retained));
-NSData *GPBCodedInputStreamReadRetainedBytesNoCopy(
- GPBCodedInputStreamState *state) __attribute((ns_returns_retained));
-
-size_t GPBCodedInputStreamPushLimit(GPBCodedInputStreamState *state,
- size_t byteLimit);
-void GPBCodedInputStreamPopLimit(GPBCodedInputStreamState *state,
- size_t oldLimit);
-size_t GPBCodedInputStreamBytesUntilLimit(GPBCodedInputStreamState *state);
-BOOL GPBCodedInputStreamIsAtEnd(GPBCodedInputStreamState *state);
-void GPBCodedInputStreamCheckLastTagWas(GPBCodedInputStreamState *state,
- int32_t value);
-
-CF_EXTERN_C_END
diff --git a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBCodedOutputStream.h b/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBCodedOutputStream.h
deleted file mode 100644
index d6fff3db..00000000
--- a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBCodedOutputStream.h
+++ /dev/null
@@ -1,739 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// https://developers.google.com/protocol-buffers/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#import <Foundation/Foundation.h>
-
-#import "GPBRuntimeTypes.h"
-#import "GPBWireFormat.h"
-
-@class GPBBoolArray;
-@class GPBDoubleArray;
-@class GPBEnumArray;
-@class GPBFloatArray;
-@class GPBMessage;
-@class GPBInt32Array;
-@class GPBInt64Array;
-@class GPBUInt32Array;
-@class GPBUInt64Array;
-@class GPBUnknownFieldSet;
-
-NS_ASSUME_NONNULL_BEGIN
-
-/**
- * Writes out protocol message fields.
- *
- * The common uses of protocol buffers shouldn't need to use this class.
- * GPBMessage's provide a -data method that will serialize the message for you.
- *
- * @note Subclassing of GPBCodedOutputStream is NOT supported.
- **/
-@interface GPBCodedOutputStream : NSObject
-
-/**
- * Creates a stream to fill in the given data. Data must be sized to fit or
- * an error will be raised when out of space.
- *
- * @param data The data where the stream will be written to.
- *
- * @return A newly instanced GPBCodedOutputStream.
- **/
-+ (instancetype)streamWithData:(NSMutableData *)data;
-
-/**
- * Creates a stream to write into the given NSOutputStream.
- *
- * @param output The output stream where the stream will be written to.
- *
- * @return A newly instanced GPBCodedOutputStream.
- **/
-+ (instancetype)streamWithOutputStream:(NSOutputStream *)output;
-
-/**
- * Initializes a stream to fill in the given data. Data must be sized to fit
- * or an error will be raised when out of space.
- *
- * @param data The data where the stream will be written to.
- *
- * @return A newly initialized GPBCodedOutputStream.
- **/
-- (instancetype)initWithData:(NSMutableData *)data;
-
-/**
- * Initializes a stream to write into the given @c NSOutputStream.
- *
- * @param output The output stream where the stream will be written to.
- *
- * @return A newly initialized GPBCodedOutputStream.
- **/
-- (instancetype)initWithOutputStream:(NSOutputStream *)output;
-
-/**
- * Flush any buffered data out.
- **/
-- (void)flush;
-
-/**
- * Write the raw byte out.
- *
- * @param value The value to write out.
- **/
-- (void)writeRawByte:(uint8_t)value;
-
-/**
- * Write the tag for the given field number and wire format.
- *
- * @param fieldNumber The field number.
- * @param format The wire format the data for the field will be in.
- **/
-- (void)writeTag:(uint32_t)fieldNumber format:(GPBWireFormat)format;
-
-/**
- * Write a 32bit value out in little endian format.
- *
- * @param value The value to write out.
- **/
-- (void)writeRawLittleEndian32:(int32_t)value;
-/**
- * Write a 64bit value out in little endian format.
- *
- * @param value The value to write out.
- **/
-- (void)writeRawLittleEndian64:(int64_t)value;
-
-/**
- * Write a 32bit value out in varint format.
- *
- * @param value The value to write out.
- **/
-- (void)writeRawVarint32:(int32_t)value;
-/**
- * Write a 64bit value out in varint format.
- *
- * @param value The value to write out.
- **/
-- (void)writeRawVarint64:(int64_t)value;
-
-/**
- * Write a size_t out as a 32bit varint value.
- *
- * @note This will truncate 64 bit values to 32.
- *
- * @param value The value to write out.
- **/
-- (void)writeRawVarintSizeTAs32:(size_t)value;
-
-/**
- * Writes the contents of an NSData out.
- *
- * @param data The data to write out.
- **/
-- (void)writeRawData:(NSData *)data;
-/**
- * Writes out the given data.
- *
- * @param data The data blob to write out.
- * @param offset The offset into the blob to start writing out.
- * @param length The number of bytes from the blob to write out.
- **/
-- (void)writeRawPtr:(const void *)data
- offset:(size_t)offset
- length:(size_t)length;
-
-//%PDDM-EXPAND _WRITE_DECLS()
-// This block of code is generated, do not edit it directly.
-
-/**
- * Write a double for the given field number.
- *
- * @param fieldNumber The field number assigned to the value.
- * @param value The value to write out.
- **/
-- (void)writeDouble:(int32_t)fieldNumber value:(double)value;
-/**
- * Write a packed array of double for the given field number.
- *
- * @param fieldNumber The field number assigned to the values.
- * @param values The values to write out.
- * @param tag The tag assigned to the values.
- **/
-- (void)writeDoubleArray:(int32_t)fieldNumber
- values:(GPBDoubleArray *)values
- tag:(uint32_t)tag;
-/**
- * Write a double without any tag.
- *
- * @param value The value to write out.
- **/
-- (void)writeDoubleNoTag:(double)value;
-
-/**
- * Write a float for the given field number.
- *
- * @param fieldNumber The field number assigned to the value.
- * @param value The value to write out.
- **/
-- (void)writeFloat:(int32_t)fieldNumber value:(float)value;
-/**
- * Write a packed array of float for the given field number.
- *
- * @param fieldNumber The field number assigned to the values.
- * @param values The values to write out.
- * @param tag The tag assigned to the values.
- **/
-- (void)writeFloatArray:(int32_t)fieldNumber
- values:(GPBFloatArray *)values
- tag:(uint32_t)tag;
-/**
- * Write a float without any tag.
- *
- * @param value The value to write out.
- **/
-- (void)writeFloatNoTag:(float)value;
-
-/**
- * Write a uint64_t for the given field number.
- *
- * @param fieldNumber The field number assigned to the value.
- * @param value The value to write out.
- **/
-- (void)writeUInt64:(int32_t)fieldNumber value:(uint64_t)value;
-/**
- * Write a packed array of uint64_t for the given field number.
- *
- * @param fieldNumber The field number assigned to the values.
- * @param values The values to write out.
- * @param tag The tag assigned to the values.
- **/
-- (void)writeUInt64Array:(int32_t)fieldNumber
- values:(GPBUInt64Array *)values
- tag:(uint32_t)tag;
-/**
- * Write a uint64_t without any tag.
- *
- * @param value The value to write out.
- **/
-- (void)writeUInt64NoTag:(uint64_t)value;
-
-/**
- * Write a int64_t for the given field number.
- *
- * @param fieldNumber The field number assigned to the value.
- * @param value The value to write out.
- **/
-- (void)writeInt64:(int32_t)fieldNumber value:(int64_t)value;
-/**
- * Write a packed array of int64_t for the given field number.
- *
- * @param fieldNumber The field number assigned to the values.
- * @param values The values to write out.
- * @param tag The tag assigned to the values.
- **/
-- (void)writeInt64Array:(int32_t)fieldNumber
- values:(GPBInt64Array *)values
- tag:(uint32_t)tag;
-/**
- * Write a int64_t without any tag.
- *
- * @param value The value to write out.
- **/
-- (void)writeInt64NoTag:(int64_t)value;
-
-/**
- * Write a int32_t for the given field number.
- *
- * @param fieldNumber The field number assigned to the value.
- * @param value The value to write out.
- **/
-- (void)writeInt32:(int32_t)fieldNumber value:(int32_t)value;
-/**
- * Write a packed array of int32_t for the given field number.
- *
- * @param fieldNumber The field number assigned to the values.
- * @param values The values to write out.
- * @param tag The tag assigned to the values.
- **/
-- (void)writeInt32Array:(int32_t)fieldNumber
- values:(GPBInt32Array *)values
- tag:(uint32_t)tag;
-/**
- * Write a int32_t without any tag.
- *
- * @param value The value to write out.
- **/
-- (void)writeInt32NoTag:(int32_t)value;
-
-/**
- * Write a uint32_t for the given field number.
- *
- * @param fieldNumber The field number assigned to the value.
- * @param value The value to write out.
- **/
-- (void)writeUInt32:(int32_t)fieldNumber value:(uint32_t)value;
-/**
- * Write a packed array of uint32_t for the given field number.
- *
- * @param fieldNumber The field number assigned to the values.
- * @param values The values to write out.
- * @param tag The tag assigned to the values.
- **/
-- (void)writeUInt32Array:(int32_t)fieldNumber
- values:(GPBUInt32Array *)values
- tag:(uint32_t)tag;
-/**
- * Write a uint32_t without any tag.
- *
- * @param value The value to write out.
- **/
-- (void)writeUInt32NoTag:(uint32_t)value;
-
-/**
- * Write a uint64_t for the given field number.
- *
- * @param fieldNumber The field number assigned to the value.
- * @param value The value to write out.
- **/
-- (void)writeFixed64:(int32_t)fieldNumber value:(uint64_t)value;
-/**
- * Write a packed array of uint64_t for the given field number.
- *
- * @param fieldNumber The field number assigned to the values.
- * @param values The values to write out.
- * @param tag The tag assigned to the values.
- **/
-- (void)writeFixed64Array:(int32_t)fieldNumber
- values:(GPBUInt64Array *)values
- tag:(uint32_t)tag;
-/**
- * Write a uint64_t without any tag.
- *
- * @param value The value to write out.
- **/
-- (void)writeFixed64NoTag:(uint64_t)value;
-
-/**
- * Write a uint32_t for the given field number.
- *
- * @param fieldNumber The field number assigned to the value.
- * @param value The value to write out.
- **/
-- (void)writeFixed32:(int32_t)fieldNumber value:(uint32_t)value;
-/**
- * Write a packed array of uint32_t for the given field number.
- *
- * @param fieldNumber The field number assigned to the values.
- * @param values The values to write out.
- * @param tag The tag assigned to the values.
- **/
-- (void)writeFixed32Array:(int32_t)fieldNumber
- values:(GPBUInt32Array *)values
- tag:(uint32_t)tag;
-/**
- * Write a uint32_t without any tag.
- *
- * @param value The value to write out.
- **/
-- (void)writeFixed32NoTag:(uint32_t)value;
-
-/**
- * Write a int32_t for the given field number.
- *
- * @param fieldNumber The field number assigned to the value.
- * @param value The value to write out.
- **/
-- (void)writeSInt32:(int32_t)fieldNumber value:(int32_t)value;
-/**
- * Write a packed array of int32_t for the given field number.
- *
- * @param fieldNumber The field number assigned to the values.
- * @param values The values to write out.
- * @param tag The tag assigned to the values.
- **/
-- (void)writeSInt32Array:(int32_t)fieldNumber
- values:(GPBInt32Array *)values
- tag:(uint32_t)tag;
-/**
- * Write a int32_t without any tag.
- *
- * @param value The value to write out.
- **/
-- (void)writeSInt32NoTag:(int32_t)value;
-
-/**
- * Write a int64_t for the given field number.
- *
- * @param fieldNumber The field number assigned to the value.
- * @param value The value to write out.
- **/
-- (void)writeSInt64:(int32_t)fieldNumber value:(int64_t)value;
-/**
- * Write a packed array of int64_t for the given field number.
- *
- * @param fieldNumber The field number assigned to the values.
- * @param values The values to write out.
- * @param tag The tag assigned to the values.
- **/
-- (void)writeSInt64Array:(int32_t)fieldNumber
- values:(GPBInt64Array *)values
- tag:(uint32_t)tag;
-/**
- * Write a int64_t without any tag.
- *
- * @param value The value to write out.
- **/
-- (void)writeSInt64NoTag:(int64_t)value;
-
-/**
- * Write a int64_t for the given field number.
- *
- * @param fieldNumber The field number assigned to the value.
- * @param value The value to write out.
- **/
-- (void)writeSFixed64:(int32_t)fieldNumber value:(int64_t)value;
-/**
- * Write a packed array of int64_t for the given field number.
- *
- * @param fieldNumber The field number assigned to the values.
- * @param values The values to write out.
- * @param tag The tag assigned to the values.
- **/
-- (void)writeSFixed64Array:(int32_t)fieldNumber
- values:(GPBInt64Array *)values
- tag:(uint32_t)tag;
-/**
- * Write a int64_t without any tag.
- *
- * @param value The value to write out.
- **/
-- (void)writeSFixed64NoTag:(int64_t)value;
-
-/**
- * Write a int32_t for the given field number.
- *
- * @param fieldNumber The field number assigned to the value.
- * @param value The value to write out.
- **/
-- (void)writeSFixed32:(int32_t)fieldNumber value:(int32_t)value;
-/**
- * Write a packed array of int32_t for the given field number.
- *
- * @param fieldNumber The field number assigned to the values.
- * @param values The values to write out.
- * @param tag The tag assigned to the values.
- **/
-- (void)writeSFixed32Array:(int32_t)fieldNumber
- values:(GPBInt32Array *)values
- tag:(uint32_t)tag;
-/**
- * Write a int32_t without any tag.
- *
- * @param value The value to write out.
- **/
-- (void)writeSFixed32NoTag:(int32_t)value;
-
-/**
- * Write a BOOL for the given field number.
- *
- * @param fieldNumber The field number assigned to the value.
- * @param value The value to write out.
- **/
-- (void)writeBool:(int32_t)fieldNumber value:(BOOL)value;
-/**
- * Write a packed array of BOOL for the given field number.
- *
- * @param fieldNumber The field number assigned to the values.
- * @param values The values to write out.
- * @param tag The tag assigned to the values.
- **/
-- (void)writeBoolArray:(int32_t)fieldNumber
- values:(GPBBoolArray *)values
- tag:(uint32_t)tag;
-/**
- * Write a BOOL without any tag.
- *
- * @param value The value to write out.
- **/
-- (void)writeBoolNoTag:(BOOL)value;
-
-/**
- * Write a int32_t for the given field number.
- *
- * @param fieldNumber The field number assigned to the value.
- * @param value The value to write out.
- **/
-- (void)writeEnum:(int32_t)fieldNumber value:(int32_t)value;
-/**
- * Write a packed array of int32_t for the given field number.
- *
- * @param fieldNumber The field number assigned to the values.
- * @param values The values to write out.
- * @param tag The tag assigned to the values.
- **/
-- (void)writeEnumArray:(int32_t)fieldNumber
- values:(GPBEnumArray *)values
- tag:(uint32_t)tag;
-/**
- * Write a int32_t without any tag.
- *
- * @param value The value to write out.
- **/
-- (void)writeEnumNoTag:(int32_t)value;
-
-/**
- * Write a NSString for the given field number.
- *
- * @param fieldNumber The field number assigned to the value.
- * @param value The value to write out.
- **/
-- (void)writeString:(int32_t)fieldNumber value:(NSString *)value;
-/**
- * Write an array of NSString for the given field number.
- *
- * @param fieldNumber The field number assigned to the values.
- * @param values The values to write out.
- **/
-- (void)writeStringArray:(int32_t)fieldNumber values:(NSArray<NSString*> *)values;
-/**
- * Write a NSString without any tag.
- *
- * @param value The value to write out.
- **/
-- (void)writeStringNoTag:(NSString *)value;
-
-/**
- * Write a GPBMessage for the given field number.
- *
- * @param fieldNumber The field number assigned to the value.
- * @param value The value to write out.
- **/
-- (void)writeMessage:(int32_t)fieldNumber value:(GPBMessage *)value;
-/**
- * Write an array of GPBMessage for the given field number.
- *
- * @param fieldNumber The field number assigned to the values.
- * @param values The values to write out.
- **/
-- (void)writeMessageArray:(int32_t)fieldNumber values:(NSArray<GPBMessage*> *)values;
-/**
- * Write a GPBMessage without any tag.
- *
- * @param value The value to write out.
- **/
-- (void)writeMessageNoTag:(GPBMessage *)value;
-
-/**
- * Write a NSData for the given field number.
- *
- * @param fieldNumber The field number assigned to the value.
- * @param value The value to write out.
- **/
-- (void)writeBytes:(int32_t)fieldNumber value:(NSData *)value;
-/**
- * Write an array of NSData for the given field number.
- *
- * @param fieldNumber The field number assigned to the values.
- * @param values The values to write out.
- **/
-- (void)writeBytesArray:(int32_t)fieldNumber values:(NSArray<NSData*> *)values;
-/**
- * Write a NSData without any tag.
- *
- * @param value The value to write out.
- **/
-- (void)writeBytesNoTag:(NSData *)value;
-
-/**
- * Write a GPBMessage for the given field number.
- *
- * @param fieldNumber The field number assigned to the value.
- * @param value The value to write out.
- **/
-- (void)writeGroup:(int32_t)fieldNumber
- value:(GPBMessage *)value;
-/**
- * Write an array of GPBMessage for the given field number.
- *
- * @param fieldNumber The field number assigned to the values.
- * @param values The values to write out.
- **/
-- (void)writeGroupArray:(int32_t)fieldNumber values:(NSArray<GPBMessage*> *)values;
-/**
- * Write a GPBMessage without any tag (but does write the endGroup tag).
- *
- * @param fieldNumber The field number assigned to the value.
- * @param value The value to write out.
- **/
-- (void)writeGroupNoTag:(int32_t)fieldNumber
- value:(GPBMessage *)value;
-
-/**
- * Write a GPBUnknownFieldSet for the given field number.
- *
- * @param fieldNumber The field number assigned to the value.
- * @param value The value to write out.
- **/
-- (void)writeUnknownGroup:(int32_t)fieldNumber
- value:(GPBUnknownFieldSet *)value;
-/**
- * Write an array of GPBUnknownFieldSet for the given field number.
- *
- * @param fieldNumber The field number assigned to the values.
- * @param values The values to write out.
- **/
-- (void)writeUnknownGroupArray:(int32_t)fieldNumber values:(NSArray<GPBUnknownFieldSet*> *)values;
-/**
- * Write a GPBUnknownFieldSet without any tag (but does write the endGroup tag).
- *
- * @param fieldNumber The field number assigned to the value.
- * @param value The value to write out.
- **/
-- (void)writeUnknownGroupNoTag:(int32_t)fieldNumber
- value:(GPBUnknownFieldSet *)value;
-
-//%PDDM-EXPAND-END _WRITE_DECLS()
-
-/**
-Write a MessageSet extension field to the stream. For historical reasons,
-the wire format differs from normal fields.
-
-@param fieldNumber The extension field number to write out.
-@param value The message from where to get the extension.
-*/
-- (void)writeMessageSetExtension:(int32_t)fieldNumber value:(GPBMessage *)value;
-
-/**
-Write an unparsed MessageSet extension field to the stream. For historical
-reasons, the wire format differs from normal fields.
-
-@param fieldNumber The extension field number to write out.
-@param value The raw message from where to get the extension.
-*/
-- (void)writeRawMessageSetExtension:(int32_t)fieldNumber value:(NSData *)value;
-
-@end
-
-NS_ASSUME_NONNULL_END
-
-// Write methods for types that can be in packed arrays.
-//%PDDM-DEFINE _WRITE_PACKABLE_DECLS(NAME, ARRAY_TYPE, TYPE)
-//%/**
-//% * Write a TYPE for the given field number.
-//% *
-//% * @param fieldNumber The field number assigned to the value.
-//% * @param value The value to write out.
-//% **/
-//%- (void)write##NAME:(int32_t)fieldNumber value:(TYPE)value;
-//%/**
-//% * Write a packed array of TYPE for the given field number.
-//% *
-//% * @param fieldNumber The field number assigned to the values.
-//% * @param values The values to write out.
-//% * @param tag The tag assigned to the values.
-//% **/
-//%- (void)write##NAME##Array:(int32_t)fieldNumber
-//% NAME$S values:(GPB##ARRAY_TYPE##Array *)values
-//% NAME$S tag:(uint32_t)tag;
-//%/**
-//% * Write a TYPE without any tag.
-//% *
-//% * @param value The value to write out.
-//% **/
-//%- (void)write##NAME##NoTag:(TYPE)value;
-//%
-// Write methods for types that aren't in packed arrays.
-//%PDDM-DEFINE _WRITE_UNPACKABLE_DECLS(NAME, TYPE)
-//%/**
-//% * Write a TYPE for the given field number.
-//% *
-//% * @param fieldNumber The field number assigned to the value.
-//% * @param value The value to write out.
-//% **/
-//%- (void)write##NAME:(int32_t)fieldNumber value:(TYPE *)value;
-//%/**
-//% * Write an array of TYPE for the given field number.
-//% *
-//% * @param fieldNumber The field number assigned to the values.
-//% * @param values The values to write out.
-//% **/
-//%- (void)write##NAME##Array:(int32_t)fieldNumber values:(NSArray<##TYPE##*> *)values;
-//%/**
-//% * Write a TYPE without any tag.
-//% *
-//% * @param value The value to write out.
-//% **/
-//%- (void)write##NAME##NoTag:(TYPE *)value;
-//%
-// Special write methods for Groups.
-//%PDDM-DEFINE _WRITE_GROUP_DECLS(NAME, TYPE)
-//%/**
-//% * Write a TYPE for the given field number.
-//% *
-//% * @param fieldNumber The field number assigned to the value.
-//% * @param value The value to write out.
-//% **/
-//%- (void)write##NAME:(int32_t)fieldNumber
-//% NAME$S value:(TYPE *)value;
-//%/**
-//% * Write an array of TYPE for the given field number.
-//% *
-//% * @param fieldNumber The field number assigned to the values.
-//% * @param values The values to write out.
-//% **/
-//%- (void)write##NAME##Array:(int32_t)fieldNumber values:(NSArray<##TYPE##*> *)values;
-//%/**
-//% * Write a TYPE without any tag (but does write the endGroup tag).
-//% *
-//% * @param fieldNumber The field number assigned to the value.
-//% * @param value The value to write out.
-//% **/
-//%- (void)write##NAME##NoTag:(int32_t)fieldNumber
-//% NAME$S value:(TYPE *)value;
-//%
-
-// One macro to hide it all up above.
-//%PDDM-DEFINE _WRITE_DECLS()
-//%_WRITE_PACKABLE_DECLS(Double, Double, double)
-//%_WRITE_PACKABLE_DECLS(Float, Float, float)
-//%_WRITE_PACKABLE_DECLS(UInt64, UInt64, uint64_t)
-//%_WRITE_PACKABLE_DECLS(Int64, Int64, int64_t)
-//%_WRITE_PACKABLE_DECLS(Int32, Int32, int32_t)
-//%_WRITE_PACKABLE_DECLS(UInt32, UInt32, uint32_t)
-//%_WRITE_PACKABLE_DECLS(Fixed64, UInt64, uint64_t)
-//%_WRITE_PACKABLE_DECLS(Fixed32, UInt32, uint32_t)
-//%_WRITE_PACKABLE_DECLS(SInt32, Int32, int32_t)
-//%_WRITE_PACKABLE_DECLS(SInt64, Int64, int64_t)
-//%_WRITE_PACKABLE_DECLS(SFixed64, Int64, int64_t)
-//%_WRITE_PACKABLE_DECLS(SFixed32, Int32, int32_t)
-//%_WRITE_PACKABLE_DECLS(Bool, Bool, BOOL)
-//%_WRITE_PACKABLE_DECLS(Enum, Enum, int32_t)
-//%_WRITE_UNPACKABLE_DECLS(String, NSString)
-//%_WRITE_UNPACKABLE_DECLS(Message, GPBMessage)
-//%_WRITE_UNPACKABLE_DECLS(Bytes, NSData)
-//%_WRITE_GROUP_DECLS(Group, GPBMessage)
-//%_WRITE_GROUP_DECLS(UnknownGroup, GPBUnknownFieldSet)
diff --git a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBCodedOutputStream.m b/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBCodedOutputStream.m
deleted file mode 100644
index 7c3ab447..00000000
--- a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBCodedOutputStream.m
+++ /dev/null
@@ -1,1202 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// https://developers.google.com/protocol-buffers/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#import "GPBCodedOutputStream_PackagePrivate.h"
-
-#import <mach/vm_param.h>
-
-#import "GPBArray.h"
-#import "GPBUnknownFieldSet_PackagePrivate.h"
-#import "GPBUtilities_PackagePrivate.h"
-
-// Structure for containing state of a GPBCodedInputStream. Brought out into
-// a struct so that we can inline several common functions instead of dealing
-// with overhead of ObjC dispatch.
-typedef struct GPBOutputBufferState {
- uint8_t *bytes;
- size_t size;
- size_t position;
- NSOutputStream *output;
-} GPBOutputBufferState;
-
-@implementation GPBCodedOutputStream {
- GPBOutputBufferState state_;
- NSMutableData *buffer_;
-}
-
-static const int32_t LITTLE_ENDIAN_32_SIZE = sizeof(uint32_t);
-static const int32_t LITTLE_ENDIAN_64_SIZE = sizeof(uint64_t);
-
-// Internal helper that writes the current buffer to the output. The
-// buffer position is reset to its initial value when this returns.
-static void GPBRefreshBuffer(GPBOutputBufferState *state) {
- if (state->output == nil) {
- // We're writing to a single buffer.
- [NSException raise:@"OutOfSpace" format:@""];
- }
- if (state->position != 0) {
- NSInteger written =
- [state->output write:state->bytes maxLength:state->position];
- if (written != (NSInteger)state->position) {
- [NSException raise:@"WriteFailed" format:@""];
- }
- state->position = 0;
- }
-}
-
-static void GPBWriteRawByte(GPBOutputBufferState *state, uint8_t value) {
- if (state->position == state->size) {
- GPBRefreshBuffer(state);
- }
- state->bytes[state->position++] = value;
-}
-
-static void GPBWriteRawVarint32(GPBOutputBufferState *state, int32_t value) {
- while (YES) {
- if ((value & ~0x7F) == 0) {
- uint8_t val = (uint8_t)value;
- GPBWriteRawByte(state, val);
- return;
- } else {
- GPBWriteRawByte(state, (value & 0x7F) | 0x80);
- value = GPBLogicalRightShift32(value, 7);
- }
- }
-}
-
-static void GPBWriteRawVarint64(GPBOutputBufferState *state, int64_t value) {
- while (YES) {
- if ((value & ~0x7FL) == 0) {
- uint8_t val = (uint8_t)value;
- GPBWriteRawByte(state, val);
- return;
- } else {
- GPBWriteRawByte(state, ((int32_t)value & 0x7F) | 0x80);
- value = GPBLogicalRightShift64(value, 7);
- }
- }
-}
-
-static void GPBWriteInt32NoTag(GPBOutputBufferState *state, int32_t value) {
- if (value >= 0) {
- GPBWriteRawVarint32(state, value);
- } else {
- // Must sign-extend
- GPBWriteRawVarint64(state, value);
- }
-}
-
-static void GPBWriteUInt32(GPBOutputBufferState *state, int32_t fieldNumber,
- uint32_t value) {
- GPBWriteTagWithFormat(state, fieldNumber, GPBWireFormatVarint);
- GPBWriteRawVarint32(state, value);
-}
-
-static void GPBWriteTagWithFormat(GPBOutputBufferState *state,
- uint32_t fieldNumber, GPBWireFormat format) {
- GPBWriteRawVarint32(state, GPBWireFormatMakeTag(fieldNumber, format));
-}
-
-static void GPBWriteRawLittleEndian32(GPBOutputBufferState *state,
- int32_t value) {
- GPBWriteRawByte(state, (value)&0xFF);
- GPBWriteRawByte(state, (value >> 8) & 0xFF);
- GPBWriteRawByte(state, (value >> 16) & 0xFF);
- GPBWriteRawByte(state, (value >> 24) & 0xFF);
-}
-
-static void GPBWriteRawLittleEndian64(GPBOutputBufferState *state,
- int64_t value) {
- GPBWriteRawByte(state, (int32_t)(value)&0xFF);
- GPBWriteRawByte(state, (int32_t)(value >> 8) & 0xFF);
- GPBWriteRawByte(state, (int32_t)(value >> 16) & 0xFF);
- GPBWriteRawByte(state, (int32_t)(value >> 24) & 0xFF);
- GPBWriteRawByte(state, (int32_t)(value >> 32) & 0xFF);
- GPBWriteRawByte(state, (int32_t)(value >> 40) & 0xFF);
- GPBWriteRawByte(state, (int32_t)(value >> 48) & 0xFF);
- GPBWriteRawByte(state, (int32_t)(value >> 56) & 0xFF);
-}
-
-- (void)dealloc {
- [self flush];
- [state_.output close];
- [state_.output release];
- [buffer_ release];
-
- [super dealloc];
-}
-
-- (instancetype)initWithOutputStream:(NSOutputStream *)output {
- NSMutableData *data = [NSMutableData dataWithLength:PAGE_SIZE];
- return [self initWithOutputStream:output data:data];
-}
-
-- (instancetype)initWithData:(NSMutableData *)data {
- return [self initWithOutputStream:nil data:data];
-}
-
-// This initializer isn't exposed, but it is the designated initializer.
-// Setting OutputStream and NSData is to control the buffering behavior/size
-// of the work, but that is more obvious via the bufferSize: version.
-- (instancetype)initWithOutputStream:(NSOutputStream *)output
- data:(NSMutableData *)data {
- if ((self = [super init])) {
- buffer_ = [data retain];
- [output open];
- state_.bytes = [data mutableBytes];
- state_.size = [data length];
- state_.output = [output retain];
- }
- return self;
-}
-
-+ (instancetype)streamWithOutputStream:(NSOutputStream *)output {
- NSMutableData *data = [NSMutableData dataWithLength:PAGE_SIZE];
- return [[[self alloc] initWithOutputStream:output
- data:data] autorelease];
-}
-
-+ (instancetype)streamWithData:(NSMutableData *)data {
- return [[[self alloc] initWithData:data] autorelease];
-}
-
-// Direct access is use for speed, to avoid even internally declaring things
-// read/write, etc. The warning is enabled in the project to ensure code calling
-// protos can turn on -Wdirect-ivar-access without issues.
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wdirect-ivar-access"
-
-- (void)writeDoubleNoTag:(double)value {
- GPBWriteRawLittleEndian64(&state_, GPBConvertDoubleToInt64(value));
-}
-
-- (void)writeDouble:(int32_t)fieldNumber value:(double)value {
- GPBWriteTagWithFormat(&state_, fieldNumber, GPBWireFormatFixed64);
- GPBWriteRawLittleEndian64(&state_, GPBConvertDoubleToInt64(value));
-}
-
-- (void)writeFloatNoTag:(float)value {
- GPBWriteRawLittleEndian32(&state_, GPBConvertFloatToInt32(value));
-}
-
-- (void)writeFloat:(int32_t)fieldNumber value:(float)value {
- GPBWriteTagWithFormat(&state_, fieldNumber, GPBWireFormatFixed32);
- GPBWriteRawLittleEndian32(&state_, GPBConvertFloatToInt32(value));
-}
-
-- (void)writeUInt64NoTag:(uint64_t)value {
- GPBWriteRawVarint64(&state_, value);
-}
-
-- (void)writeUInt64:(int32_t)fieldNumber value:(uint64_t)value {
- GPBWriteTagWithFormat(&state_, fieldNumber, GPBWireFormatVarint);
- GPBWriteRawVarint64(&state_, value);
-}
-
-- (void)writeInt64NoTag:(int64_t)value {
- GPBWriteRawVarint64(&state_, value);
-}
-
-- (void)writeInt64:(int32_t)fieldNumber value:(int64_t)value {
- GPBWriteTagWithFormat(&state_, fieldNumber, GPBWireFormatVarint);
- GPBWriteRawVarint64(&state_, value);
-}
-
-- (void)writeInt32NoTag:(int32_t)value {
- GPBWriteInt32NoTag(&state_, value);
-}
-
-- (void)writeInt32:(int32_t)fieldNumber value:(int32_t)value {
- GPBWriteTagWithFormat(&state_, fieldNumber, GPBWireFormatVarint);
- GPBWriteInt32NoTag(&state_, value);
-}
-
-- (void)writeFixed64NoTag:(uint64_t)value {
- GPBWriteRawLittleEndian64(&state_, value);
-}
-
-- (void)writeFixed64:(int32_t)fieldNumber value:(uint64_t)value {
- GPBWriteTagWithFormat(&state_, fieldNumber, GPBWireFormatFixed64);
- GPBWriteRawLittleEndian64(&state_, value);
-}
-
-- (void)writeFixed32NoTag:(uint32_t)value {
- GPBWriteRawLittleEndian32(&state_, value);
-}
-
-- (void)writeFixed32:(int32_t)fieldNumber value:(uint32_t)value {
- GPBWriteTagWithFormat(&state_, fieldNumber, GPBWireFormatFixed32);
- GPBWriteRawLittleEndian32(&state_, value);
-}
-
-- (void)writeBoolNoTag:(BOOL)value {
- GPBWriteRawByte(&state_, (value ? 1 : 0));
-}
-
-- (void)writeBool:(int32_t)fieldNumber value:(BOOL)value {
- GPBWriteTagWithFormat(&state_, fieldNumber, GPBWireFormatVarint);
- GPBWriteRawByte(&state_, (value ? 1 : 0));
-}
-
-- (void)writeStringNoTag:(const NSString *)value {
- size_t length = [value lengthOfBytesUsingEncoding:NSUTF8StringEncoding];
- GPBWriteRawVarint32(&state_, (int32_t)length);
- if (length == 0) {
- return;
- }
-
- const char *quickString =
- CFStringGetCStringPtr((CFStringRef)value, kCFStringEncodingUTF8);
-
- // Fast path: Most strings are short, if the buffer already has space,
- // add to it directly.
- NSUInteger bufferBytesLeft = state_.size - state_.position;
- if (bufferBytesLeft >= length) {
- NSUInteger usedBufferLength = 0;
- BOOL result;
- if (quickString != NULL) {
- memcpy(state_.bytes + state_.position, quickString, length);
- usedBufferLength = length;
- result = YES;
- } else {
- result = [value getBytes:state_.bytes + state_.position
- maxLength:bufferBytesLeft
- usedLength:&usedBufferLength
- encoding:NSUTF8StringEncoding
- options:(NSStringEncodingConversionOptions)0
- range:NSMakeRange(0, [value length])
- remainingRange:NULL];
- }
- if (result) {
- NSAssert2((usedBufferLength == length),
- @"Our UTF8 calc was wrong? %tu vs %zd", usedBufferLength,
- length);
- state_.position += usedBufferLength;
- return;
- }
- } else if (quickString != NULL) {
- [self writeRawPtr:quickString offset:0 length:length];
- } else {
- // Slow path: just get it as data and write it out.
- NSData *utf8Data = [value dataUsingEncoding:NSUTF8StringEncoding];
- NSAssert2(([utf8Data length] == length),
- @"Strings UTF8 length was wrong? %tu vs %zd", [utf8Data length],
- length);
- [self writeRawData:utf8Data];
- }
-}
-
-- (void)writeString:(int32_t)fieldNumber value:(NSString *)value {
- GPBWriteTagWithFormat(&state_, fieldNumber, GPBWireFormatLengthDelimited);
- [self writeStringNoTag:value];
-}
-
-- (void)writeGroupNoTag:(int32_t)fieldNumber value:(GPBMessage *)value {
- [value writeToCodedOutputStream:self];
- GPBWriteTagWithFormat(&state_, fieldNumber, GPBWireFormatEndGroup);
-}
-
-- (void)writeGroup:(int32_t)fieldNumber value:(GPBMessage *)value {
- GPBWriteTagWithFormat(&state_, fieldNumber, GPBWireFormatStartGroup);
- [self writeGroupNoTag:fieldNumber value:value];
-}
-
-- (void)writeUnknownGroupNoTag:(int32_t)fieldNumber
- value:(const GPBUnknownFieldSet *)value {
- [value writeToCodedOutputStream:self];
- GPBWriteTagWithFormat(&state_, fieldNumber, GPBWireFormatEndGroup);
-}
-
-- (void)writeUnknownGroup:(int32_t)fieldNumber
- value:(GPBUnknownFieldSet *)value {
- GPBWriteTagWithFormat(&state_, fieldNumber, GPBWireFormatStartGroup);
- [self writeUnknownGroupNoTag:fieldNumber value:value];
-}
-
-- (void)writeMessageNoTag:(GPBMessage *)value {
- GPBWriteRawVarint32(&state_, (int32_t)[value serializedSize]);
- [value writeToCodedOutputStream:self];
-}
-
-- (void)writeMessage:(int32_t)fieldNumber value:(GPBMessage *)value {
- GPBWriteTagWithFormat(&state_, fieldNumber, GPBWireFormatLengthDelimited);
- [self writeMessageNoTag:value];
-}
-
-- (void)writeBytesNoTag:(NSData *)value {
- GPBWriteRawVarint32(&state_, (int32_t)[value length]);
- [self writeRawData:value];
-}
-
-- (void)writeBytes:(int32_t)fieldNumber value:(NSData *)value {
- GPBWriteTagWithFormat(&state_, fieldNumber, GPBWireFormatLengthDelimited);
- [self writeBytesNoTag:value];
-}
-
-- (void)writeUInt32NoTag:(uint32_t)value {
- GPBWriteRawVarint32(&state_, value);
-}
-
-- (void)writeUInt32:(int32_t)fieldNumber value:(uint32_t)value {
- GPBWriteUInt32(&state_, fieldNumber, value);
-}
-
-- (void)writeEnumNoTag:(int32_t)value {
- GPBWriteRawVarint32(&state_, value);
-}
-
-- (void)writeEnum:(int32_t)fieldNumber value:(int32_t)value {
- GPBWriteTagWithFormat(&state_, fieldNumber, GPBWireFormatVarint);
- GPBWriteRawVarint32(&state_, value);
-}
-
-- (void)writeSFixed32NoTag:(int32_t)value {
- GPBWriteRawLittleEndian32(&state_, value);
-}
-
-- (void)writeSFixed32:(int32_t)fieldNumber value:(int32_t)value {
- GPBWriteTagWithFormat(&state_, fieldNumber, GPBWireFormatFixed32);
- GPBWriteRawLittleEndian32(&state_, value);
-}
-
-- (void)writeSFixed64NoTag:(int64_t)value {
- GPBWriteRawLittleEndian64(&state_, value);
-}
-
-- (void)writeSFixed64:(int32_t)fieldNumber value:(int64_t)value {
- GPBWriteTagWithFormat(&state_, fieldNumber, GPBWireFormatFixed64);
- GPBWriteRawLittleEndian64(&state_, value);
-}
-
-- (void)writeSInt32NoTag:(int32_t)value {
- GPBWriteRawVarint32(&state_, GPBEncodeZigZag32(value));
-}
-
-- (void)writeSInt32:(int32_t)fieldNumber value:(int32_t)value {
- GPBWriteTagWithFormat(&state_, fieldNumber, GPBWireFormatVarint);
- GPBWriteRawVarint32(&state_, GPBEncodeZigZag32(value));
-}
-
-- (void)writeSInt64NoTag:(int64_t)value {
- GPBWriteRawVarint64(&state_, GPBEncodeZigZag64(value));
-}
-
-- (void)writeSInt64:(int32_t)fieldNumber value:(int64_t)value {
- GPBWriteTagWithFormat(&state_, fieldNumber, GPBWireFormatVarint);
- GPBWriteRawVarint64(&state_, GPBEncodeZigZag64(value));
-}
-
-//%PDDM-DEFINE WRITE_PACKABLE_DEFNS(NAME, ARRAY_TYPE, TYPE, ACCESSOR_NAME)
-//%- (void)write##NAME##Array:(int32_t)fieldNumber
-//% NAME$S values:(GPB##ARRAY_TYPE##Array *)values
-//% NAME$S tag:(uint32_t)tag {
-//% if (tag != 0) {
-//% if (values.count == 0) return;
-//% __block size_t dataSize = 0;
-//% [values enumerate##ACCESSOR_NAME##ValuesWithBlock:^(TYPE value, NSUInteger idx, BOOL *stop) {
-//%#pragma unused(idx, stop)
-//% dataSize += GPBCompute##NAME##SizeNoTag(value);
-//% }];
-//% GPBWriteRawVarint32(&state_, tag);
-//% GPBWriteRawVarint32(&state_, (int32_t)dataSize);
-//% [values enumerate##ACCESSOR_NAME##ValuesWithBlock:^(TYPE value, NSUInteger idx, BOOL *stop) {
-//%#pragma unused(idx, stop)
-//% [self write##NAME##NoTag:value];
-//% }];
-//% } else {
-//% [values enumerate##ACCESSOR_NAME##ValuesWithBlock:^(TYPE value, NSUInteger idx, BOOL *stop) {
-//%#pragma unused(idx, stop)
-//% [self write##NAME:fieldNumber value:value];
-//% }];
-//% }
-//%}
-//%
-//%PDDM-DEFINE WRITE_UNPACKABLE_DEFNS(NAME, TYPE)
-//%- (void)write##NAME##Array:(int32_t)fieldNumber values:(NSArray *)values {
-//% for (TYPE *value in values) {
-//% [self write##NAME:fieldNumber value:value];
-//% }
-//%}
-//%
-//%PDDM-EXPAND WRITE_PACKABLE_DEFNS(Double, Double, double, )
-// This block of code is generated, do not edit it directly.
-
-- (void)writeDoubleArray:(int32_t)fieldNumber
- values:(GPBDoubleArray *)values
- tag:(uint32_t)tag {
- if (tag != 0) {
- if (values.count == 0) return;
- __block size_t dataSize = 0;
- [values enumerateValuesWithBlock:^(double value, NSUInteger idx, BOOL *stop) {
-#pragma unused(idx, stop)
- dataSize += GPBComputeDoubleSizeNoTag(value);
- }];
- GPBWriteRawVarint32(&state_, tag);
- GPBWriteRawVarint32(&state_, (int32_t)dataSize);
- [values enumerateValuesWithBlock:^(double value, NSUInteger idx, BOOL *stop) {
-#pragma unused(idx, stop)
- [self writeDoubleNoTag:value];
- }];
- } else {
- [values enumerateValuesWithBlock:^(double value, NSUInteger idx, BOOL *stop) {
-#pragma unused(idx, stop)
- [self writeDouble:fieldNumber value:value];
- }];
- }
-}
-
-//%PDDM-EXPAND WRITE_PACKABLE_DEFNS(Float, Float, float, )
-// This block of code is generated, do not edit it directly.
-
-- (void)writeFloatArray:(int32_t)fieldNumber
- values:(GPBFloatArray *)values
- tag:(uint32_t)tag {
- if (tag != 0) {
- if (values.count == 0) return;
- __block size_t dataSize = 0;
- [values enumerateValuesWithBlock:^(float value, NSUInteger idx, BOOL *stop) {
-#pragma unused(idx, stop)
- dataSize += GPBComputeFloatSizeNoTag(value);
- }];
- GPBWriteRawVarint32(&state_, tag);
- GPBWriteRawVarint32(&state_, (int32_t)dataSize);
- [values enumerateValuesWithBlock:^(float value, NSUInteger idx, BOOL *stop) {
-#pragma unused(idx, stop)
- [self writeFloatNoTag:value];
- }];
- } else {
- [values enumerateValuesWithBlock:^(float value, NSUInteger idx, BOOL *stop) {
-#pragma unused(idx, stop)
- [self writeFloat:fieldNumber value:value];
- }];
- }
-}
-
-//%PDDM-EXPAND WRITE_PACKABLE_DEFNS(UInt64, UInt64, uint64_t, )
-// This block of code is generated, do not edit it directly.
-
-- (void)writeUInt64Array:(int32_t)fieldNumber
- values:(GPBUInt64Array *)values
- tag:(uint32_t)tag {
- if (tag != 0) {
- if (values.count == 0) return;
- __block size_t dataSize = 0;
- [values enumerateValuesWithBlock:^(uint64_t value, NSUInteger idx, BOOL *stop) {
-#pragma unused(idx, stop)
- dataSize += GPBComputeUInt64SizeNoTag(value);
- }];
- GPBWriteRawVarint32(&state_, tag);
- GPBWriteRawVarint32(&state_, (int32_t)dataSize);
- [values enumerateValuesWithBlock:^(uint64_t value, NSUInteger idx, BOOL *stop) {
-#pragma unused(idx, stop)
- [self writeUInt64NoTag:value];
- }];
- } else {
- [values enumerateValuesWithBlock:^(uint64_t value, NSUInteger idx, BOOL *stop) {
-#pragma unused(idx, stop)
- [self writeUInt64:fieldNumber value:value];
- }];
- }
-}
-
-//%PDDM-EXPAND WRITE_PACKABLE_DEFNS(Int64, Int64, int64_t, )
-// This block of code is generated, do not edit it directly.
-
-- (void)writeInt64Array:(int32_t)fieldNumber
- values:(GPBInt64Array *)values
- tag:(uint32_t)tag {
- if (tag != 0) {
- if (values.count == 0) return;
- __block size_t dataSize = 0;
- [values enumerateValuesWithBlock:^(int64_t value, NSUInteger idx, BOOL *stop) {
-#pragma unused(idx, stop)
- dataSize += GPBComputeInt64SizeNoTag(value);
- }];
- GPBWriteRawVarint32(&state_, tag);
- GPBWriteRawVarint32(&state_, (int32_t)dataSize);
- [values enumerateValuesWithBlock:^(int64_t value, NSUInteger idx, BOOL *stop) {
-#pragma unused(idx, stop)
- [self writeInt64NoTag:value];
- }];
- } else {
- [values enumerateValuesWithBlock:^(int64_t value, NSUInteger idx, BOOL *stop) {
-#pragma unused(idx, stop)
- [self writeInt64:fieldNumber value:value];
- }];
- }
-}
-
-//%PDDM-EXPAND WRITE_PACKABLE_DEFNS(Int32, Int32, int32_t, )
-// This block of code is generated, do not edit it directly.
-
-- (void)writeInt32Array:(int32_t)fieldNumber
- values:(GPBInt32Array *)values
- tag:(uint32_t)tag {
- if (tag != 0) {
- if (values.count == 0) return;
- __block size_t dataSize = 0;
- [values enumerateValuesWithBlock:^(int32_t value, NSUInteger idx, BOOL *stop) {
-#pragma unused(idx, stop)
- dataSize += GPBComputeInt32SizeNoTag(value);
- }];
- GPBWriteRawVarint32(&state_, tag);
- GPBWriteRawVarint32(&state_, (int32_t)dataSize);
- [values enumerateValuesWithBlock:^(int32_t value, NSUInteger idx, BOOL *stop) {
-#pragma unused(idx, stop)
- [self writeInt32NoTag:value];
- }];
- } else {
- [values enumerateValuesWithBlock:^(int32_t value, NSUInteger idx, BOOL *stop) {
-#pragma unused(idx, stop)
- [self writeInt32:fieldNumber value:value];
- }];
- }
-}
-
-//%PDDM-EXPAND WRITE_PACKABLE_DEFNS(UInt32, UInt32, uint32_t, )
-// This block of code is generated, do not edit it directly.
-
-- (void)writeUInt32Array:(int32_t)fieldNumber
- values:(GPBUInt32Array *)values
- tag:(uint32_t)tag {
- if (tag != 0) {
- if (values.count == 0) return;
- __block size_t dataSize = 0;
- [values enumerateValuesWithBlock:^(uint32_t value, NSUInteger idx, BOOL *stop) {
-#pragma unused(idx, stop)
- dataSize += GPBComputeUInt32SizeNoTag(value);
- }];
- GPBWriteRawVarint32(&state_, tag);
- GPBWriteRawVarint32(&state_, (int32_t)dataSize);
- [values enumerateValuesWithBlock:^(uint32_t value, NSUInteger idx, BOOL *stop) {
-#pragma unused(idx, stop)
- [self writeUInt32NoTag:value];
- }];
- } else {
- [values enumerateValuesWithBlock:^(uint32_t value, NSUInteger idx, BOOL *stop) {
-#pragma unused(idx, stop)
- [self writeUInt32:fieldNumber value:value];
- }];
- }
-}
-
-//%PDDM-EXPAND WRITE_PACKABLE_DEFNS(Fixed64, UInt64, uint64_t, )
-// This block of code is generated, do not edit it directly.
-
-- (void)writeFixed64Array:(int32_t)fieldNumber
- values:(GPBUInt64Array *)values
- tag:(uint32_t)tag {
- if (tag != 0) {
- if (values.count == 0) return;
- __block size_t dataSize = 0;
- [values enumerateValuesWithBlock:^(uint64_t value, NSUInteger idx, BOOL *stop) {
-#pragma unused(idx, stop)
- dataSize += GPBComputeFixed64SizeNoTag(value);
- }];
- GPBWriteRawVarint32(&state_, tag);
- GPBWriteRawVarint32(&state_, (int32_t)dataSize);
- [values enumerateValuesWithBlock:^(uint64_t value, NSUInteger idx, BOOL *stop) {
-#pragma unused(idx, stop)
- [self writeFixed64NoTag:value];
- }];
- } else {
- [values enumerateValuesWithBlock:^(uint64_t value, NSUInteger idx, BOOL *stop) {
-#pragma unused(idx, stop)
- [self writeFixed64:fieldNumber value:value];
- }];
- }
-}
-
-//%PDDM-EXPAND WRITE_PACKABLE_DEFNS(Fixed32, UInt32, uint32_t, )
-// This block of code is generated, do not edit it directly.
-
-- (void)writeFixed32Array:(int32_t)fieldNumber
- values:(GPBUInt32Array *)values
- tag:(uint32_t)tag {
- if (tag != 0) {
- if (values.count == 0) return;
- __block size_t dataSize = 0;
- [values enumerateValuesWithBlock:^(uint32_t value, NSUInteger idx, BOOL *stop) {
-#pragma unused(idx, stop)
- dataSize += GPBComputeFixed32SizeNoTag(value);
- }];
- GPBWriteRawVarint32(&state_, tag);
- GPBWriteRawVarint32(&state_, (int32_t)dataSize);
- [values enumerateValuesWithBlock:^(uint32_t value, NSUInteger idx, BOOL *stop) {
-#pragma unused(idx, stop)
- [self writeFixed32NoTag:value];
- }];
- } else {
- [values enumerateValuesWithBlock:^(uint32_t value, NSUInteger idx, BOOL *stop) {
-#pragma unused(idx, stop)
- [self writeFixed32:fieldNumber value:value];
- }];
- }
-}
-
-//%PDDM-EXPAND WRITE_PACKABLE_DEFNS(SInt32, Int32, int32_t, )
-// This block of code is generated, do not edit it directly.
-
-- (void)writeSInt32Array:(int32_t)fieldNumber
- values:(GPBInt32Array *)values
- tag:(uint32_t)tag {
- if (tag != 0) {
- if (values.count == 0) return;
- __block size_t dataSize = 0;
- [values enumerateValuesWithBlock:^(int32_t value, NSUInteger idx, BOOL *stop) {
-#pragma unused(idx, stop)
- dataSize += GPBComputeSInt32SizeNoTag(value);
- }];
- GPBWriteRawVarint32(&state_, tag);
- GPBWriteRawVarint32(&state_, (int32_t)dataSize);
- [values enumerateValuesWithBlock:^(int32_t value, NSUInteger idx, BOOL *stop) {
-#pragma unused(idx, stop)
- [self writeSInt32NoTag:value];
- }];
- } else {
- [values enumerateValuesWithBlock:^(int32_t value, NSUInteger idx, BOOL *stop) {
-#pragma unused(idx, stop)
- [self writeSInt32:fieldNumber value:value];
- }];
- }
-}
-
-//%PDDM-EXPAND WRITE_PACKABLE_DEFNS(SInt64, Int64, int64_t, )
-// This block of code is generated, do not edit it directly.
-
-- (void)writeSInt64Array:(int32_t)fieldNumber
- values:(GPBInt64Array *)values
- tag:(uint32_t)tag {
- if (tag != 0) {
- if (values.count == 0) return;
- __block size_t dataSize = 0;
- [values enumerateValuesWithBlock:^(int64_t value, NSUInteger idx, BOOL *stop) {
-#pragma unused(idx, stop)
- dataSize += GPBComputeSInt64SizeNoTag(value);
- }];
- GPBWriteRawVarint32(&state_, tag);
- GPBWriteRawVarint32(&state_, (int32_t)dataSize);
- [values enumerateValuesWithBlock:^(int64_t value, NSUInteger idx, BOOL *stop) {
-#pragma unused(idx, stop)
- [self writeSInt64NoTag:value];
- }];
- } else {
- [values enumerateValuesWithBlock:^(int64_t value, NSUInteger idx, BOOL *stop) {
-#pragma unused(idx, stop)
- [self writeSInt64:fieldNumber value:value];
- }];
- }
-}
-
-//%PDDM-EXPAND WRITE_PACKABLE_DEFNS(SFixed64, Int64, int64_t, )
-// This block of code is generated, do not edit it directly.
-
-- (void)writeSFixed64Array:(int32_t)fieldNumber
- values:(GPBInt64Array *)values
- tag:(uint32_t)tag {
- if (tag != 0) {
- if (values.count == 0) return;
- __block size_t dataSize = 0;
- [values enumerateValuesWithBlock:^(int64_t value, NSUInteger idx, BOOL *stop) {
-#pragma unused(idx, stop)
- dataSize += GPBComputeSFixed64SizeNoTag(value);
- }];
- GPBWriteRawVarint32(&state_, tag);
- GPBWriteRawVarint32(&state_, (int32_t)dataSize);
- [values enumerateValuesWithBlock:^(int64_t value, NSUInteger idx, BOOL *stop) {
-#pragma unused(idx, stop)
- [self writeSFixed64NoTag:value];
- }];
- } else {
- [values enumerateValuesWithBlock:^(int64_t value, NSUInteger idx, BOOL *stop) {
-#pragma unused(idx, stop)
- [self writeSFixed64:fieldNumber value:value];
- }];
- }
-}
-
-//%PDDM-EXPAND WRITE_PACKABLE_DEFNS(SFixed32, Int32, int32_t, )
-// This block of code is generated, do not edit it directly.
-
-- (void)writeSFixed32Array:(int32_t)fieldNumber
- values:(GPBInt32Array *)values
- tag:(uint32_t)tag {
- if (tag != 0) {
- if (values.count == 0) return;
- __block size_t dataSize = 0;
- [values enumerateValuesWithBlock:^(int32_t value, NSUInteger idx, BOOL *stop) {
-#pragma unused(idx, stop)
- dataSize += GPBComputeSFixed32SizeNoTag(value);
- }];
- GPBWriteRawVarint32(&state_, tag);
- GPBWriteRawVarint32(&state_, (int32_t)dataSize);
- [values enumerateValuesWithBlock:^(int32_t value, NSUInteger idx, BOOL *stop) {
-#pragma unused(idx, stop)
- [self writeSFixed32NoTag:value];
- }];
- } else {
- [values enumerateValuesWithBlock:^(int32_t value, NSUInteger idx, BOOL *stop) {
-#pragma unused(idx, stop)
- [self writeSFixed32:fieldNumber value:value];
- }];
- }
-}
-
-//%PDDM-EXPAND WRITE_PACKABLE_DEFNS(Bool, Bool, BOOL, )
-// This block of code is generated, do not edit it directly.
-
-- (void)writeBoolArray:(int32_t)fieldNumber
- values:(GPBBoolArray *)values
- tag:(uint32_t)tag {
- if (tag != 0) {
- if (values.count == 0) return;
- __block size_t dataSize = 0;
- [values enumerateValuesWithBlock:^(BOOL value, NSUInteger idx, BOOL *stop) {
-#pragma unused(idx, stop)
- dataSize += GPBComputeBoolSizeNoTag(value);
- }];
- GPBWriteRawVarint32(&state_, tag);
- GPBWriteRawVarint32(&state_, (int32_t)dataSize);
- [values enumerateValuesWithBlock:^(BOOL value, NSUInteger idx, BOOL *stop) {
-#pragma unused(idx, stop)
- [self writeBoolNoTag:value];
- }];
- } else {
- [values enumerateValuesWithBlock:^(BOOL value, NSUInteger idx, BOOL *stop) {
-#pragma unused(idx, stop)
- [self writeBool:fieldNumber value:value];
- }];
- }
-}
-
-//%PDDM-EXPAND WRITE_PACKABLE_DEFNS(Enum, Enum, int32_t, Raw)
-// This block of code is generated, do not edit it directly.
-
-- (void)writeEnumArray:(int32_t)fieldNumber
- values:(GPBEnumArray *)values
- tag:(uint32_t)tag {
- if (tag != 0) {
- if (values.count == 0) return;
- __block size_t dataSize = 0;
- [values enumerateRawValuesWithBlock:^(int32_t value, NSUInteger idx, BOOL *stop) {
-#pragma unused(idx, stop)
- dataSize += GPBComputeEnumSizeNoTag(value);
- }];
- GPBWriteRawVarint32(&state_, tag);
- GPBWriteRawVarint32(&state_, (int32_t)dataSize);
- [values enumerateRawValuesWithBlock:^(int32_t value, NSUInteger idx, BOOL *stop) {
-#pragma unused(idx, stop)
- [self writeEnumNoTag:value];
- }];
- } else {
- [values enumerateRawValuesWithBlock:^(int32_t value, NSUInteger idx, BOOL *stop) {
-#pragma unused(idx, stop)
- [self writeEnum:fieldNumber value:value];
- }];
- }
-}
-
-//%PDDM-EXPAND WRITE_UNPACKABLE_DEFNS(String, NSString)
-// This block of code is generated, do not edit it directly.
-
-- (void)writeStringArray:(int32_t)fieldNumber values:(NSArray *)values {
- for (NSString *value in values) {
- [self writeString:fieldNumber value:value];
- }
-}
-
-//%PDDM-EXPAND WRITE_UNPACKABLE_DEFNS(Message, GPBMessage)
-// This block of code is generated, do not edit it directly.
-
-- (void)writeMessageArray:(int32_t)fieldNumber values:(NSArray *)values {
- for (GPBMessage *value in values) {
- [self writeMessage:fieldNumber value:value];
- }
-}
-
-//%PDDM-EXPAND WRITE_UNPACKABLE_DEFNS(Bytes, NSData)
-// This block of code is generated, do not edit it directly.
-
-- (void)writeBytesArray:(int32_t)fieldNumber values:(NSArray *)values {
- for (NSData *value in values) {
- [self writeBytes:fieldNumber value:value];
- }
-}
-
-//%PDDM-EXPAND WRITE_UNPACKABLE_DEFNS(Group, GPBMessage)
-// This block of code is generated, do not edit it directly.
-
-- (void)writeGroupArray:(int32_t)fieldNumber values:(NSArray *)values {
- for (GPBMessage *value in values) {
- [self writeGroup:fieldNumber value:value];
- }
-}
-
-//%PDDM-EXPAND WRITE_UNPACKABLE_DEFNS(UnknownGroup, GPBUnknownFieldSet)
-// This block of code is generated, do not edit it directly.
-
-- (void)writeUnknownGroupArray:(int32_t)fieldNumber values:(NSArray *)values {
- for (GPBUnknownFieldSet *value in values) {
- [self writeUnknownGroup:fieldNumber value:value];
- }
-}
-
-//%PDDM-EXPAND-END (19 expansions)
-
-- (void)writeMessageSetExtension:(int32_t)fieldNumber
- value:(GPBMessage *)value {
- GPBWriteTagWithFormat(&state_, GPBWireFormatMessageSetItem,
- GPBWireFormatStartGroup);
- GPBWriteUInt32(&state_, GPBWireFormatMessageSetTypeId, fieldNumber);
- [self writeMessage:GPBWireFormatMessageSetMessage value:value];
- GPBWriteTagWithFormat(&state_, GPBWireFormatMessageSetItem,
- GPBWireFormatEndGroup);
-}
-
-- (void)writeRawMessageSetExtension:(int32_t)fieldNumber value:(NSData *)value {
- GPBWriteTagWithFormat(&state_, GPBWireFormatMessageSetItem,
- GPBWireFormatStartGroup);
- GPBWriteUInt32(&state_, GPBWireFormatMessageSetTypeId, fieldNumber);
- [self writeBytes:GPBWireFormatMessageSetMessage value:value];
- GPBWriteTagWithFormat(&state_, GPBWireFormatMessageSetItem,
- GPBWireFormatEndGroup);
-}
-
-- (void)flush {
- if (state_.output != nil) {
- GPBRefreshBuffer(&state_);
- }
-}
-
-- (void)writeRawByte:(uint8_t)value {
- GPBWriteRawByte(&state_, value);
-}
-
-- (void)writeRawData:(const NSData *)data {
- [self writeRawPtr:[data bytes] offset:0 length:[data length]];
-}
-
-- (void)writeRawPtr:(const void *)value
- offset:(size_t)offset
- length:(size_t)length {
- if (value == nil || length == 0) {
- return;
- }
-
- NSUInteger bufferLength = state_.size;
- NSUInteger bufferBytesLeft = bufferLength - state_.position;
- if (bufferBytesLeft >= length) {
- // We have room in the current buffer.
- memcpy(state_.bytes + state_.position, ((uint8_t *)value) + offset, length);
- state_.position += length;
- } else {
- // Write extends past current buffer. Fill the rest of this buffer and
- // flush.
- size_t bytesWritten = bufferBytesLeft;
- memcpy(state_.bytes + state_.position, ((uint8_t *)value) + offset,
- bytesWritten);
- offset += bytesWritten;
- length -= bytesWritten;
- state_.position = bufferLength;
- GPBRefreshBuffer(&state_);
- bufferLength = state_.size;
-
- // Now deal with the rest.
- // Since we have an output stream, this is our buffer
- // and buffer offset == 0
- if (length <= bufferLength) {
- // Fits in new buffer.
- memcpy(state_.bytes, ((uint8_t *)value) + offset, length);
- state_.position = length;
- } else {
- // Write is very big. Let's do it all at once.
- [state_.output write:((uint8_t *)value) + offset maxLength:length];
- }
- }
-}
-
-- (void)writeTag:(uint32_t)fieldNumber format:(GPBWireFormat)format {
- GPBWriteTagWithFormat(&state_, fieldNumber, format);
-}
-
-- (void)writeRawVarint32:(int32_t)value {
- GPBWriteRawVarint32(&state_, value);
-}
-
-- (void)writeRawVarintSizeTAs32:(size_t)value {
- // Note the truncation.
- GPBWriteRawVarint32(&state_, (int32_t)value);
-}
-
-- (void)writeRawVarint64:(int64_t)value {
- GPBWriteRawVarint64(&state_, value);
-}
-
-- (void)writeRawLittleEndian32:(int32_t)value {
- GPBWriteRawLittleEndian32(&state_, value);
-}
-
-- (void)writeRawLittleEndian64:(int64_t)value {
- GPBWriteRawLittleEndian64(&state_, value);
-}
-
-#pragma clang diagnostic pop
-
-@end
-
-size_t GPBComputeDoubleSizeNoTag(Float64 value) {
-#pragma unused(value)
- return LITTLE_ENDIAN_64_SIZE;
-}
-
-size_t GPBComputeFloatSizeNoTag(Float32 value) {
-#pragma unused(value)
- return LITTLE_ENDIAN_32_SIZE;
-}
-
-size_t GPBComputeUInt64SizeNoTag(uint64_t value) {
- return GPBComputeRawVarint64Size(value);
-}
-
-size_t GPBComputeInt64SizeNoTag(int64_t value) {
- return GPBComputeRawVarint64Size(value);
-}
-
-size_t GPBComputeInt32SizeNoTag(int32_t value) {
- if (value >= 0) {
- return GPBComputeRawVarint32Size(value);
- } else {
- // Must sign-extend.
- return 10;
- }
-}
-
-size_t GPBComputeSizeTSizeAsInt32NoTag(size_t value) {
- return GPBComputeInt32SizeNoTag((int32_t)value);
-}
-
-size_t GPBComputeFixed64SizeNoTag(uint64_t value) {
-#pragma unused(value)
- return LITTLE_ENDIAN_64_SIZE;
-}
-
-size_t GPBComputeFixed32SizeNoTag(uint32_t value) {
-#pragma unused(value)
- return LITTLE_ENDIAN_32_SIZE;
-}
-
-size_t GPBComputeBoolSizeNoTag(BOOL value) {
-#pragma unused(value)
- return 1;
-}
-
-size_t GPBComputeStringSizeNoTag(NSString *value) {
- NSUInteger length = [value lengthOfBytesUsingEncoding:NSUTF8StringEncoding];
- return GPBComputeRawVarint32SizeForInteger(length) + length;
-}
-
-size_t GPBComputeGroupSizeNoTag(GPBMessage *value) {
- return [value serializedSize];
-}
-
-size_t GPBComputeUnknownGroupSizeNoTag(GPBUnknownFieldSet *value) {
- return value.serializedSize;
-}
-
-size_t GPBComputeMessageSizeNoTag(GPBMessage *value) {
- size_t size = [value serializedSize];
- return GPBComputeRawVarint32SizeForInteger(size) + size;
-}
-
-size_t GPBComputeBytesSizeNoTag(NSData *value) {
- NSUInteger valueLength = [value length];
- return GPBComputeRawVarint32SizeForInteger(valueLength) + valueLength;
-}
-
-size_t GPBComputeUInt32SizeNoTag(int32_t value) {
- return GPBComputeRawVarint32Size(value);
-}
-
-size_t GPBComputeEnumSizeNoTag(int32_t value) {
- return GPBComputeRawVarint32Size(value);
-}
-
-size_t GPBComputeSFixed32SizeNoTag(int32_t value) {
-#pragma unused(value)
- return LITTLE_ENDIAN_32_SIZE;
-}
-
-size_t GPBComputeSFixed64SizeNoTag(int64_t value) {
-#pragma unused(value)
- return LITTLE_ENDIAN_64_SIZE;
-}
-
-size_t GPBComputeSInt32SizeNoTag(int32_t value) {
- return GPBComputeRawVarint32Size(GPBEncodeZigZag32(value));
-}
-
-size_t GPBComputeSInt64SizeNoTag(int64_t value) {
- return GPBComputeRawVarint64Size(GPBEncodeZigZag64(value));
-}
-
-size_t GPBComputeDoubleSize(int32_t fieldNumber, double value) {
- return GPBComputeTagSize(fieldNumber) + GPBComputeDoubleSizeNoTag(value);
-}
-
-size_t GPBComputeFloatSize(int32_t fieldNumber, float value) {
- return GPBComputeTagSize(fieldNumber) + GPBComputeFloatSizeNoTag(value);
-}
-
-size_t GPBComputeUInt64Size(int32_t fieldNumber, uint64_t value) {
- return GPBComputeTagSize(fieldNumber) + GPBComputeUInt64SizeNoTag(value);
-}
-
-size_t GPBComputeInt64Size(int32_t fieldNumber, int64_t value) {
- return GPBComputeTagSize(fieldNumber) + GPBComputeInt64SizeNoTag(value);
-}
-
-size_t GPBComputeInt32Size(int32_t fieldNumber, int32_t value) {
- return GPBComputeTagSize(fieldNumber) + GPBComputeInt32SizeNoTag(value);
-}
-
-size_t GPBComputeFixed64Size(int32_t fieldNumber, uint64_t value) {
- return GPBComputeTagSize(fieldNumber) + GPBComputeFixed64SizeNoTag(value);
-}
-
-size_t GPBComputeFixed32Size(int32_t fieldNumber, uint32_t value) {
- return GPBComputeTagSize(fieldNumber) + GPBComputeFixed32SizeNoTag(value);
-}
-
-size_t GPBComputeBoolSize(int32_t fieldNumber, BOOL value) {
- return GPBComputeTagSize(fieldNumber) + GPBComputeBoolSizeNoTag(value);
-}
-
-size_t GPBComputeStringSize(int32_t fieldNumber, NSString *value) {
- return GPBComputeTagSize(fieldNumber) + GPBComputeStringSizeNoTag(value);
-}
-
-size_t GPBComputeGroupSize(int32_t fieldNumber, GPBMessage *value) {
- return GPBComputeTagSize(fieldNumber) * 2 + GPBComputeGroupSizeNoTag(value);
-}
-
-size_t GPBComputeUnknownGroupSize(int32_t fieldNumber,
- GPBUnknownFieldSet *value) {
- return GPBComputeTagSize(fieldNumber) * 2 +
- GPBComputeUnknownGroupSizeNoTag(value);
-}
-
-size_t GPBComputeMessageSize(int32_t fieldNumber, GPBMessage *value) {
- return GPBComputeTagSize(fieldNumber) + GPBComputeMessageSizeNoTag(value);
-}
-
-size_t GPBComputeBytesSize(int32_t fieldNumber, NSData *value) {
- return GPBComputeTagSize(fieldNumber) + GPBComputeBytesSizeNoTag(value);
-}
-
-size_t GPBComputeUInt32Size(int32_t fieldNumber, uint32_t value) {
- return GPBComputeTagSize(fieldNumber) + GPBComputeUInt32SizeNoTag(value);
-}
-
-size_t GPBComputeEnumSize(int32_t fieldNumber, int32_t value) {
- return GPBComputeTagSize(fieldNumber) + GPBComputeEnumSizeNoTag(value);
-}
-
-size_t GPBComputeSFixed32Size(int32_t fieldNumber, int32_t value) {
- return GPBComputeTagSize(fieldNumber) + GPBComputeSFixed32SizeNoTag(value);
-}
-
-size_t GPBComputeSFixed64Size(int32_t fieldNumber, int64_t value) {
- return GPBComputeTagSize(fieldNumber) + GPBComputeSFixed64SizeNoTag(value);
-}
-
-size_t GPBComputeSInt32Size(int32_t fieldNumber, int32_t value) {
- return GPBComputeTagSize(fieldNumber) + GPBComputeSInt32SizeNoTag(value);
-}
-
-size_t GPBComputeSInt64Size(int32_t fieldNumber, int64_t value) {
- return GPBComputeTagSize(fieldNumber) +
- GPBComputeRawVarint64Size(GPBEncodeZigZag64(value));
-}
-
-size_t GPBComputeMessageSetExtensionSize(int32_t fieldNumber,
- GPBMessage *value) {
- return GPBComputeTagSize(GPBWireFormatMessageSetItem) * 2 +
- GPBComputeUInt32Size(GPBWireFormatMessageSetTypeId, fieldNumber) +
- GPBComputeMessageSize(GPBWireFormatMessageSetMessage, value);
-}
-
-size_t GPBComputeRawMessageSetExtensionSize(int32_t fieldNumber,
- NSData *value) {
- return GPBComputeTagSize(GPBWireFormatMessageSetItem) * 2 +
- GPBComputeUInt32Size(GPBWireFormatMessageSetTypeId, fieldNumber) +
- GPBComputeBytesSize(GPBWireFormatMessageSetMessage, value);
-}
-
-size_t GPBComputeTagSize(int32_t fieldNumber) {
- return GPBComputeRawVarint32Size(
- GPBWireFormatMakeTag(fieldNumber, GPBWireFormatVarint));
-}
-
-size_t GPBComputeWireFormatTagSize(int field_number, GPBDataType dataType) {
- size_t result = GPBComputeTagSize(field_number);
- if (dataType == GPBDataTypeGroup) {
- // Groups have both a start and an end tag.
- return result * 2;
- } else {
- return result;
- }
-}
-
-size_t GPBComputeRawVarint32Size(int32_t value) {
- // value is treated as unsigned, so it won't be sign-extended if negative.
- if ((value & (0xffffffff << 7)) == 0) return 1;
- if ((value & (0xffffffff << 14)) == 0) return 2;
- if ((value & (0xffffffff << 21)) == 0) return 3;
- if ((value & (0xffffffff << 28)) == 0) return 4;
- return 5;
-}
-
-size_t GPBComputeRawVarint32SizeForInteger(NSInteger value) {
- // Note the truncation.
- return GPBComputeRawVarint32Size((int32_t)value);
-}
-
-size_t GPBComputeRawVarint64Size(int64_t value) {
- if ((value & (0xffffffffffffffffL << 7)) == 0) return 1;
- if ((value & (0xffffffffffffffffL << 14)) == 0) return 2;
- if ((value & (0xffffffffffffffffL << 21)) == 0) return 3;
- if ((value & (0xffffffffffffffffL << 28)) == 0) return 4;
- if ((value & (0xffffffffffffffffL << 35)) == 0) return 5;
- if ((value & (0xffffffffffffffffL << 42)) == 0) return 6;
- if ((value & (0xffffffffffffffffL << 49)) == 0) return 7;
- if ((value & (0xffffffffffffffffL << 56)) == 0) return 8;
- if ((value & (0xffffffffffffffffL << 63)) == 0) return 9;
- return 10;
-}
diff --git a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBCodedOutputStream_PackagePrivate.h b/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBCodedOutputStream_PackagePrivate.h
deleted file mode 100644
index 2e7bb4c4..00000000
--- a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBCodedOutputStream_PackagePrivate.h
+++ /dev/null
@@ -1,126 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2016 Google Inc. All rights reserved.
-// https://developers.google.com/protocol-buffers/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#import "GPBCodedOutputStream.h"
-
-NS_ASSUME_NONNULL_BEGIN
-
-CF_EXTERN_C_BEGIN
-
-size_t GPBComputeDoubleSize(int32_t fieldNumber, double value)
- __attribute__((const));
-size_t GPBComputeFloatSize(int32_t fieldNumber, float value)
- __attribute__((const));
-size_t GPBComputeUInt64Size(int32_t fieldNumber, uint64_t value)
- __attribute__((const));
-size_t GPBComputeInt64Size(int32_t fieldNumber, int64_t value)
- __attribute__((const));
-size_t GPBComputeInt32Size(int32_t fieldNumber, int32_t value)
- __attribute__((const));
-size_t GPBComputeFixed64Size(int32_t fieldNumber, uint64_t value)
- __attribute__((const));
-size_t GPBComputeFixed32Size(int32_t fieldNumber, uint32_t value)
- __attribute__((const));
-size_t GPBComputeBoolSize(int32_t fieldNumber, BOOL value)
- __attribute__((const));
-size_t GPBComputeStringSize(int32_t fieldNumber, NSString *value)
- __attribute__((const));
-size_t GPBComputeGroupSize(int32_t fieldNumber, GPBMessage *value)
- __attribute__((const));
-size_t GPBComputeUnknownGroupSize(int32_t fieldNumber,
- GPBUnknownFieldSet *value)
- __attribute__((const));
-size_t GPBComputeMessageSize(int32_t fieldNumber, GPBMessage *value)
- __attribute__((const));
-size_t GPBComputeBytesSize(int32_t fieldNumber, NSData *value)
- __attribute__((const));
-size_t GPBComputeUInt32Size(int32_t fieldNumber, uint32_t value)
- __attribute__((const));
-size_t GPBComputeSFixed32Size(int32_t fieldNumber, int32_t value)
- __attribute__((const));
-size_t GPBComputeSFixed64Size(int32_t fieldNumber, int64_t value)
- __attribute__((const));
-size_t GPBComputeSInt32Size(int32_t fieldNumber, int32_t value)
- __attribute__((const));
-size_t GPBComputeSInt64Size(int32_t fieldNumber, int64_t value)
- __attribute__((const));
-size_t GPBComputeTagSize(int32_t fieldNumber) __attribute__((const));
-size_t GPBComputeWireFormatTagSize(int field_number, GPBDataType dataType)
- __attribute__((const));
-
-size_t GPBComputeDoubleSizeNoTag(double value) __attribute__((const));
-size_t GPBComputeFloatSizeNoTag(float value) __attribute__((const));
-size_t GPBComputeUInt64SizeNoTag(uint64_t value) __attribute__((const));
-size_t GPBComputeInt64SizeNoTag(int64_t value) __attribute__((const));
-size_t GPBComputeInt32SizeNoTag(int32_t value) __attribute__((const));
-size_t GPBComputeFixed64SizeNoTag(uint64_t value) __attribute__((const));
-size_t GPBComputeFixed32SizeNoTag(uint32_t value) __attribute__((const));
-size_t GPBComputeBoolSizeNoTag(BOOL value) __attribute__((const));
-size_t GPBComputeStringSizeNoTag(NSString *value) __attribute__((const));
-size_t GPBComputeGroupSizeNoTag(GPBMessage *value) __attribute__((const));
-size_t GPBComputeUnknownGroupSizeNoTag(GPBUnknownFieldSet *value)
- __attribute__((const));
-size_t GPBComputeMessageSizeNoTag(GPBMessage *value) __attribute__((const));
-size_t GPBComputeBytesSizeNoTag(NSData *value) __attribute__((const));
-size_t GPBComputeUInt32SizeNoTag(int32_t value) __attribute__((const));
-size_t GPBComputeEnumSizeNoTag(int32_t value) __attribute__((const));
-size_t GPBComputeSFixed32SizeNoTag(int32_t value) __attribute__((const));
-size_t GPBComputeSFixed64SizeNoTag(int64_t value) __attribute__((const));
-size_t GPBComputeSInt32SizeNoTag(int32_t value) __attribute__((const));
-size_t GPBComputeSInt64SizeNoTag(int64_t value) __attribute__((const));
-
-// Note that this will calculate the size of 64 bit values truncated to 32.
-size_t GPBComputeSizeTSizeAsInt32NoTag(size_t value) __attribute__((const));
-
-size_t GPBComputeRawVarint32Size(int32_t value) __attribute__((const));
-size_t GPBComputeRawVarint64Size(int64_t value) __attribute__((const));
-
-// Note that this will calculate the size of 64 bit values truncated to 32.
-size_t GPBComputeRawVarint32SizeForInteger(NSInteger value)
- __attribute__((const));
-
-// Compute the number of bytes that would be needed to encode a
-// MessageSet extension to the stream. For historical reasons,
-// the wire format differs from normal fields.
-size_t GPBComputeMessageSetExtensionSize(int32_t fieldNumber, GPBMessage *value)
- __attribute__((const));
-
-// Compute the number of bytes that would be needed to encode an
-// unparsed MessageSet extension field to the stream. For
-// historical reasons, the wire format differs from normal fields.
-size_t GPBComputeRawMessageSetExtensionSize(int32_t fieldNumber, NSData *value)
- __attribute__((const));
-
-size_t GPBComputeEnumSize(int32_t fieldNumber, int32_t value)
- __attribute__((const));
-
-CF_EXTERN_C_END
-
-NS_ASSUME_NONNULL_END
diff --git a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBDescriptor.h b/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBDescriptor.h
deleted file mode 100644
index 651f4de0..00000000
--- a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBDescriptor.h
+++ /dev/null
@@ -1,288 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// https://developers.google.com/protocol-buffers/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#import <Foundation/Foundation.h>
-
-#import "GPBRuntimeTypes.h"
-
-@class GPBEnumDescriptor;
-@class GPBFieldDescriptor;
-@class GPBFileDescriptor;
-@class GPBOneofDescriptor;
-
-NS_ASSUME_NONNULL_BEGIN
-
-/** Syntax used in the proto file. */
-typedef NS_ENUM(uint8_t, GPBFileSyntax) {
- /** Unknown syntax. */
- GPBFileSyntaxUnknown = 0,
- /** Proto2 syntax. */
- GPBFileSyntaxProto2 = 2,
- /** Proto3 syntax. */
- GPBFileSyntaxProto3 = 3,
-};
-
-/** Type of proto field. */
-typedef NS_ENUM(uint8_t, GPBFieldType) {
- /** Optional/required field. Only valid for proto2 fields. */
- GPBFieldTypeSingle,
- /** Repeated field. */
- GPBFieldTypeRepeated,
- /** Map field. */
- GPBFieldTypeMap,
-};
-
-/**
- * Describes a proto message.
- **/
-@interface GPBDescriptor : NSObject<NSCopying>
-
-/** Name of the message. */
-@property(nonatomic, readonly, copy) NSString *name;
-/** Fields declared in the message. */
-@property(nonatomic, readonly, strong, nullable) NSArray<GPBFieldDescriptor*> *fields;
-/** Oneofs declared in the message. */
-@property(nonatomic, readonly, strong, nullable) NSArray<GPBOneofDescriptor*> *oneofs;
-/** Extension range declared for the message. */
-@property(nonatomic, readonly, nullable) const GPBExtensionRange *extensionRanges;
-/** Number of extension ranges declared for the message. */
-@property(nonatomic, readonly) uint32_t extensionRangesCount;
-/** Descriptor for the file where the message was defined. */
-@property(nonatomic, readonly, assign) GPBFileDescriptor *file;
-
-/** Whether the message is in wire format or not. */
-@property(nonatomic, readonly, getter=isWireFormat) BOOL wireFormat;
-/** The class of this message. */
-@property(nonatomic, readonly) Class messageClass;
-/** Containing message descriptor if this message is nested, or nil otherwise. */
-@property(readonly, nullable) GPBDescriptor *containingType;
-/**
- * Fully qualified name for this message (package.message). Can be nil if the
- * value is unable to be computed.
- */
-@property(readonly, nullable) NSString *fullName;
-
-/**
- * Gets the field for the given number.
- *
- * @param fieldNumber The number for the field to get.
- *
- * @return The field descriptor for the given number, or nil if not found.
- **/
-- (nullable GPBFieldDescriptor *)fieldWithNumber:(uint32_t)fieldNumber;
-
-/**
- * Gets the field for the given name.
- *
- * @param name The name for the field to get.
- *
- * @return The field descriptor for the given name, or nil if not found.
- **/
-- (nullable GPBFieldDescriptor *)fieldWithName:(NSString *)name;
-
-/**
- * Gets the oneof for the given name.
- *
- * @param name The name for the oneof to get.
- *
- * @return The oneof descriptor for the given name, or nil if not found.
- **/
-- (nullable GPBOneofDescriptor *)oneofWithName:(NSString *)name;
-
-@end
-
-/**
- * Describes a proto file.
- **/
-@interface GPBFileDescriptor : NSObject
-
-/** The package declared in the proto file. */
-@property(nonatomic, readonly, copy) NSString *package;
-/** The objc prefix declared in the proto file. */
-@property(nonatomic, readonly, copy, nullable) NSString *objcPrefix;
-/** The syntax of the proto file. */
-@property(nonatomic, readonly) GPBFileSyntax syntax;
-
-@end
-
-/**
- * Describes a oneof field.
- **/
-@interface GPBOneofDescriptor : NSObject
-/** Name of the oneof field. */
-@property(nonatomic, readonly) NSString *name;
-/** Fields declared in the oneof. */
-@property(nonatomic, readonly) NSArray<GPBFieldDescriptor*> *fields;
-
-/**
- * Gets the field for the given number.
- *
- * @param fieldNumber The number for the field to get.
- *
- * @return The field descriptor for the given number, or nil if not found.
- **/
-- (nullable GPBFieldDescriptor *)fieldWithNumber:(uint32_t)fieldNumber;
-
-/**
- * Gets the field for the given name.
- *
- * @param name The name for the field to get.
- *
- * @return The field descriptor for the given name, or nil if not found.
- **/
-- (nullable GPBFieldDescriptor *)fieldWithName:(NSString *)name;
-
-@end
-
-/**
- * Describes a proto field.
- **/
-@interface GPBFieldDescriptor : NSObject
-
-/** Name of the field. */
-@property(nonatomic, readonly, copy) NSString *name;
-/** Number associated with the field. */
-@property(nonatomic, readonly) uint32_t number;
-/** Data type contained in the field. */
-@property(nonatomic, readonly) GPBDataType dataType;
-/** Whether it has a default value or not. */
-@property(nonatomic, readonly) BOOL hasDefaultValue;
-/** Default value for the field. */
-@property(nonatomic, readonly) GPBGenericValue defaultValue;
-/** Whether this field is required. Only valid for proto2 fields. */
-@property(nonatomic, readonly, getter=isRequired) BOOL required;
-/** Whether this field is optional. */
-@property(nonatomic, readonly, getter=isOptional) BOOL optional;
-/** Type of field (single, repeated, map). */
-@property(nonatomic, readonly) GPBFieldType fieldType;
-/** Type of the key if the field is a map. The value's type is -fieldType. */
-@property(nonatomic, readonly) GPBDataType mapKeyDataType;
-/** Whether the field is packable. */
-@property(nonatomic, readonly, getter=isPackable) BOOL packable;
-
-/** The containing oneof if this field is part of one, nil otherwise. */
-@property(nonatomic, readonly, assign, nullable) GPBOneofDescriptor *containingOneof;
-
-/** Class of the message if the field is of message type. */
-@property(nonatomic, readonly, assign, nullable) Class msgClass;
-
-/** Descriptor for the enum if this field is an enum. */
-@property(nonatomic, readonly, strong, nullable) GPBEnumDescriptor *enumDescriptor;
-
-/**
- * Checks whether the given enum raw value is a valid enum value.
- *
- * @param value The raw enum value to check.
- *
- * @return YES if value is a valid enum raw value.
- **/
-- (BOOL)isValidEnumValue:(int32_t)value;
-
-/** @return Name for the text format, or nil if not known. */
-- (nullable NSString *)textFormatName;
-
-@end
-
-/**
- * Describes a proto enum.
- **/
-@interface GPBEnumDescriptor : NSObject
-
-/** Name of the enum. */
-@property(nonatomic, readonly, copy) NSString *name;
-/** Function that validates that raw values are valid enum values. */
-@property(nonatomic, readonly) GPBEnumValidationFunc enumVerifier;
-
-/**
- * Returns the enum value name for the given raw enum.
- *
- * @param number The raw enum value.
- *
- * @return The name of the enum value passed, or nil if not valid.
- **/
-- (nullable NSString *)enumNameForValue:(int32_t)number;
-
-/**
- * Gets the enum raw value for the given enum name.
- *
- * @param outValue A pointer where the value will be set.
- * @param name The enum name for which to get the raw value.
- *
- * @return YES if a value was copied into the pointer, NO otherwise.
- **/
-- (BOOL)getValue:(nullable int32_t *)outValue forEnumName:(NSString *)name;
-
-/**
- * Returns the text format for the given raw enum value.
- *
- * @param number The raw enum value.
- *
- * @return The text format name for the raw enum value, or nil if not valid.
- **/
-- (nullable NSString *)textFormatNameForValue:(int32_t)number;
-
-/**
- * Gets the enum raw value for the given text format name.
- *
- * @param outValue A pointer where the value will be set.
- * @param textFormatName The text format name for which to get the raw value.
- *
- * @return YES if a value was copied into the pointer, NO otherwise.
- **/
-- (BOOL)getValue:(nullable int32_t *)outValue forEnumTextFormatName:(NSString *)textFormatName;
-
-@end
-
-/**
- * Describes a proto extension.
- **/
-@interface GPBExtensionDescriptor : NSObject<NSCopying>
-/** Field number under which the extension is stored. */
-@property(nonatomic, readonly) uint32_t fieldNumber;
-/** The containing message class, i.e. the class extended by this extension. */
-@property(nonatomic, readonly) Class containingMessageClass;
-/** Data type contained in the extension. */
-@property(nonatomic, readonly) GPBDataType dataType;
-/** Whether the extension is repeated. */
-@property(nonatomic, readonly, getter=isRepeated) BOOL repeated;
-/** Whether the extension is packable. */
-@property(nonatomic, readonly, getter=isPackable) BOOL packable;
-/** The class of the message if the extension is of message type. */
-@property(nonatomic, readonly, assign) Class msgClass;
-/** The singleton name for the extension. */
-@property(nonatomic, readonly) NSString *singletonName;
-/** The enum descriptor if the extension is of enum type. */
-@property(nonatomic, readonly, strong, nullable) GPBEnumDescriptor *enumDescriptor;
-/** The default value for the extension. */
-@property(nonatomic, readonly, nullable) id defaultValue;
-
-@end
-
-NS_ASSUME_NONNULL_END
diff --git a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBDescriptor.m b/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBDescriptor.m
deleted file mode 100644
index 0753a948..00000000
--- a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBDescriptor.m
+++ /dev/null
@@ -1,1104 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// https://developers.google.com/protocol-buffers/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#import "GPBDescriptor_PackagePrivate.h"
-
-#import <objc/runtime.h>
-
-#import "GPBUtilities_PackagePrivate.h"
-#import "GPBWireFormat.h"
-#import "GPBMessage_PackagePrivate.h"
-
-// Direct access is use for speed, to avoid even internally declaring things
-// read/write, etc. The warning is enabled in the project to ensure code calling
-// protos can turn on -Wdirect-ivar-access without issues.
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wdirect-ivar-access"
-
-// The addresses of these variables are used as keys for objc_getAssociatedObject.
-static const char kTextFormatExtraValueKey = 0;
-static const char kParentClassNameValueKey = 0;
-static const char kClassNameSuffixKey = 0;
-
-// Utility function to generate selectors on the fly.
-static SEL SelFromStrings(const char *prefix, const char *middle,
- const char *suffix, BOOL takesArg) {
- if (prefix == NULL && suffix == NULL && !takesArg) {
- return sel_getUid(middle);
- }
- const size_t prefixLen = prefix != NULL ? strlen(prefix) : 0;
- const size_t middleLen = strlen(middle);
- const size_t suffixLen = suffix != NULL ? strlen(suffix) : 0;
- size_t totalLen =
- prefixLen + middleLen + suffixLen + 1; // include space for null on end.
- if (takesArg) {
- totalLen += 1;
- }
- char buffer[totalLen];
- if (prefix != NULL) {
- memcpy(buffer, prefix, prefixLen);
- memcpy(buffer + prefixLen, middle, middleLen);
- buffer[prefixLen] = (char)toupper(buffer[prefixLen]);
- } else {
- memcpy(buffer, middle, middleLen);
- }
- if (suffix != NULL) {
- memcpy(buffer + prefixLen + middleLen, suffix, suffixLen);
- }
- if (takesArg) {
- buffer[totalLen - 2] = ':';
- }
- // Always null terminate it.
- buffer[totalLen - 1] = 0;
-
- SEL result = sel_getUid(buffer);
- return result;
-}
-
-static NSArray *NewFieldsArrayForHasIndex(int hasIndex,
- NSArray *allMessageFields)
- __attribute__((ns_returns_retained));
-
-static NSArray *NewFieldsArrayForHasIndex(int hasIndex,
- NSArray *allMessageFields) {
- NSMutableArray *result = [[NSMutableArray alloc] init];
- for (GPBFieldDescriptor *fieldDesc in allMessageFields) {
- if (fieldDesc->description_->hasIndex == hasIndex) {
- [result addObject:fieldDesc];
- }
- }
- return result;
-}
-
-@implementation GPBDescriptor {
- Class messageClass_;
- GPBFileDescriptor *file_;
- BOOL wireFormat_;
-}
-
-@synthesize messageClass = messageClass_;
-@synthesize fields = fields_;
-@synthesize oneofs = oneofs_;
-@synthesize extensionRanges = extensionRanges_;
-@synthesize extensionRangesCount = extensionRangesCount_;
-@synthesize file = file_;
-@synthesize wireFormat = wireFormat_;
-
-+ (instancetype)
- allocDescriptorForClass:(Class)messageClass
- rootClass:(Class)rootClass
- file:(GPBFileDescriptor *)file
- fields:(void *)fieldDescriptions
- fieldCount:(uint32_t)fieldCount
- storageSize:(uint32_t)storageSize
- flags:(GPBDescriptorInitializationFlags)flags {
- // The rootClass is no longer used, but it is passed in to ensure it
- // was started up during initialization also.
- (void)rootClass;
- NSMutableArray *fields = nil;
- GPBFileSyntax syntax = file.syntax;
- BOOL fieldsIncludeDefault =
- (flags & GPBDescriptorInitializationFlag_FieldsWithDefault) != 0;
-
- void *desc;
- for (uint32_t i = 0; i < fieldCount; ++i) {
- if (fields == nil) {
- fields = [[NSMutableArray alloc] initWithCapacity:fieldCount];
- }
- // Need correctly typed pointer for array indexing below to work.
- if (fieldsIncludeDefault) {
- GPBMessageFieldDescriptionWithDefault *fieldDescWithDefault = fieldDescriptions;
- desc = &(fieldDescWithDefault[i]);
- } else {
- GPBMessageFieldDescription *fieldDesc = fieldDescriptions;
- desc = &(fieldDesc[i]);
- }
- GPBFieldDescriptor *fieldDescriptor =
- [[GPBFieldDescriptor alloc] initWithFieldDescription:desc
- includesDefault:fieldsIncludeDefault
- syntax:syntax];
- [fields addObject:fieldDescriptor];
- [fieldDescriptor release];
- }
-
- BOOL wireFormat = (flags & GPBDescriptorInitializationFlag_WireFormat) != 0;
- GPBDescriptor *descriptor = [[self alloc] initWithClass:messageClass
- file:file
- fields:fields
- storageSize:storageSize
- wireFormat:wireFormat];
- [fields release];
- return descriptor;
-}
-
-- (instancetype)initWithClass:(Class)messageClass
- file:(GPBFileDescriptor *)file
- fields:(NSArray *)fields
- storageSize:(uint32_t)storageSize
- wireFormat:(BOOL)wireFormat {
- if ((self = [super init])) {
- messageClass_ = messageClass;
- file_ = file;
- fields_ = [fields retain];
- storageSize_ = storageSize;
- wireFormat_ = wireFormat;
- }
- return self;
-}
-
-- (void)dealloc {
- [fields_ release];
- [oneofs_ release];
- [super dealloc];
-}
-
-- (void)setupOneofs:(const char **)oneofNames
- count:(uint32_t)count
- firstHasIndex:(int32_t)firstHasIndex {
- NSCAssert(firstHasIndex < 0, @"Should always be <0");
- NSMutableArray *oneofs = [[NSMutableArray alloc] initWithCapacity:count];
- for (uint32_t i = 0, hasIndex = firstHasIndex; i < count; ++i, --hasIndex) {
- const char *name = oneofNames[i];
- NSArray *fieldsForOneof = NewFieldsArrayForHasIndex(hasIndex, fields_);
- NSCAssert(fieldsForOneof.count > 0,
- @"No fields for this oneof? (%s:%d)", name, hasIndex);
- GPBOneofDescriptor *oneofDescriptor =
- [[GPBOneofDescriptor alloc] initWithName:name fields:fieldsForOneof];
- [oneofs addObject:oneofDescriptor];
- [oneofDescriptor release];
- [fieldsForOneof release];
- }
- oneofs_ = oneofs;
-}
-
-- (void)setupExtraTextInfo:(const char *)extraTextFormatInfo {
- // Extra info is a compile time option, so skip the work if not needed.
- if (extraTextFormatInfo) {
- NSValue *extraInfoValue = [NSValue valueWithPointer:extraTextFormatInfo];
- for (GPBFieldDescriptor *fieldDescriptor in fields_) {
- if (fieldDescriptor->description_->flags & GPBFieldTextFormatNameCustom) {
- objc_setAssociatedObject(fieldDescriptor, &kTextFormatExtraValueKey,
- extraInfoValue,
- OBJC_ASSOCIATION_RETAIN_NONATOMIC);
- }
- }
- }
-}
-
-- (void)setupExtensionRanges:(const GPBExtensionRange *)ranges count:(int32_t)count {
- extensionRanges_ = ranges;
- extensionRangesCount_ = count;
-}
-
-- (void)setupContainingMessageClassName:(const char *)msgClassName {
- // Note: Only fetch the class here, can't send messages to it because
- // that could cause cycles back to this class within +initialize if
- // two messages have each other in fields (i.e. - they build a graph).
- NSAssert(objc_getClass(msgClassName), @"Class %s not defined", msgClassName);
- NSValue *parentNameValue = [NSValue valueWithPointer:msgClassName];
- objc_setAssociatedObject(self, &kParentClassNameValueKey,
- parentNameValue,
- OBJC_ASSOCIATION_RETAIN_NONATOMIC);
-}
-
-- (void)setupMessageClassNameSuffix:(NSString *)suffix {
- if (suffix.length) {
- objc_setAssociatedObject(self, &kClassNameSuffixKey,
- suffix,
- OBJC_ASSOCIATION_RETAIN_NONATOMIC);
- }
-}
-
-- (NSString *)name {
- return NSStringFromClass(messageClass_);
-}
-
-- (GPBDescriptor *)containingType {
- NSValue *parentNameValue =
- objc_getAssociatedObject(self, &kParentClassNameValueKey);
- if (!parentNameValue) {
- return nil;
- }
- const char *parentName = [parentNameValue pointerValue];
- Class parentClass = objc_getClass(parentName);
- NSAssert(parentClass, @"Class %s not defined", parentName);
- return [parentClass descriptor];
-}
-
-- (NSString *)fullName {
- NSString *className = NSStringFromClass(self.messageClass);
- GPBFileDescriptor *file = self.file;
- NSString *objcPrefix = file.objcPrefix;
- if (objcPrefix && ![className hasPrefix:objcPrefix]) {
- NSAssert(0,
- @"Class didn't have correct prefix? (%@ - %@)",
- className, objcPrefix);
- return nil;
- }
- GPBDescriptor *parent = self.containingType;
-
- NSString *name = nil;
- if (parent) {
- NSString *parentClassName = NSStringFromClass(parent.messageClass);
- // The generator will add _Class to avoid reserved words, drop it.
- NSString *suffix = objc_getAssociatedObject(parent, &kClassNameSuffixKey);
- if (suffix) {
- if (![parentClassName hasSuffix:suffix]) {
- NSAssert(0,
- @"ParentMessage class didn't have correct suffix? (%@ - %@)",
- className, suffix);
- return nil;
- }
- parentClassName =
- [parentClassName substringToIndex:(parentClassName.length - suffix.length)];
- }
- NSString *parentPrefix = [parentClassName stringByAppendingString:@"_"];
- if (![className hasPrefix:parentPrefix]) {
- NSAssert(0,
- @"Class didn't have the correct parent name prefix? (%@ - %@)",
- parentPrefix, className);
- return nil;
- }
- name = [className substringFromIndex:parentPrefix.length];
- } else {
- name = [className substringFromIndex:objcPrefix.length];
- }
-
- // The generator will add _Class to avoid reserved words, drop it.
- NSString *suffix = objc_getAssociatedObject(self, &kClassNameSuffixKey);
- if (suffix) {
- if (![name hasSuffix:suffix]) {
- NSAssert(0,
- @"Message class didn't have correct suffix? (%@ - %@)",
- name, suffix);
- return nil;
- }
- name = [name substringToIndex:(name.length - suffix.length)];
- }
-
- NSString *prefix = (parent != nil ? parent.fullName : file.package);
- NSString *result;
- if (prefix.length > 0) {
- result = [NSString stringWithFormat:@"%@.%@", prefix, name];
- } else {
- result = name;
- }
- return result;
-}
-
-- (id)copyWithZone:(NSZone *)zone {
-#pragma unused(zone)
- return [self retain];
-}
-
-- (GPBFieldDescriptor *)fieldWithNumber:(uint32_t)fieldNumber {
- for (GPBFieldDescriptor *descriptor in fields_) {
- if (GPBFieldNumber(descriptor) == fieldNumber) {
- return descriptor;
- }
- }
- return nil;
-}
-
-- (GPBFieldDescriptor *)fieldWithName:(NSString *)name {
- for (GPBFieldDescriptor *descriptor in fields_) {
- if ([descriptor.name isEqual:name]) {
- return descriptor;
- }
- }
- return nil;
-}
-
-- (GPBOneofDescriptor *)oneofWithName:(NSString *)name {
- for (GPBOneofDescriptor *descriptor in oneofs_) {
- if ([descriptor.name isEqual:name]) {
- return descriptor;
- }
- }
- return nil;
-}
-
-@end
-
-@implementation GPBFileDescriptor {
- NSString *package_;
- NSString *objcPrefix_;
- GPBFileSyntax syntax_;
-}
-
-@synthesize package = package_;
-@synthesize objcPrefix = objcPrefix_;
-@synthesize syntax = syntax_;
-
-- (instancetype)initWithPackage:(NSString *)package
- objcPrefix:(NSString *)objcPrefix
- syntax:(GPBFileSyntax)syntax {
- self = [super init];
- if (self) {
- package_ = [package copy];
- objcPrefix_ = [objcPrefix copy];
- syntax_ = syntax;
- }
- return self;
-}
-
-- (instancetype)initWithPackage:(NSString *)package
- syntax:(GPBFileSyntax)syntax {
- self = [super init];
- if (self) {
- package_ = [package copy];
- syntax_ = syntax;
- }
- return self;
-}
-
-- (void)dealloc {
- [package_ release];
- [objcPrefix_ release];
- [super dealloc];
-}
-
-@end
-
-@implementation GPBOneofDescriptor
-
-@synthesize fields = fields_;
-
-- (instancetype)initWithName:(const char *)name fields:(NSArray *)fields {
- self = [super init];
- if (self) {
- name_ = name;
- fields_ = [fields retain];
- for (GPBFieldDescriptor *fieldDesc in fields) {
- fieldDesc->containingOneof_ = self;
- }
-
- caseSel_ = SelFromStrings(NULL, name, "OneOfCase", NO);
- }
- return self;
-}
-
-- (void)dealloc {
- [fields_ release];
- [super dealloc];
-}
-
-- (NSString *)name {
- return @(name_);
-}
-
-- (GPBFieldDescriptor *)fieldWithNumber:(uint32_t)fieldNumber {
- for (GPBFieldDescriptor *descriptor in fields_) {
- if (GPBFieldNumber(descriptor) == fieldNumber) {
- return descriptor;
- }
- }
- return nil;
-}
-
-- (GPBFieldDescriptor *)fieldWithName:(NSString *)name {
- for (GPBFieldDescriptor *descriptor in fields_) {
- if ([descriptor.name isEqual:name]) {
- return descriptor;
- }
- }
- return nil;
-}
-
-@end
-
-uint32_t GPBFieldTag(GPBFieldDescriptor *self) {
- GPBMessageFieldDescription *description = self->description_;
- GPBWireFormat format;
- if ((description->flags & GPBFieldMapKeyMask) != 0) {
- // Maps are repeated messages on the wire.
- format = GPBWireFormatForType(GPBDataTypeMessage, NO);
- } else {
- format = GPBWireFormatForType(description->dataType,
- ((description->flags & GPBFieldPacked) != 0));
- }
- return GPBWireFormatMakeTag(description->number, format);
-}
-
-uint32_t GPBFieldAlternateTag(GPBFieldDescriptor *self) {
- GPBMessageFieldDescription *description = self->description_;
- NSCAssert((description->flags & GPBFieldRepeated) != 0,
- @"Only valid on repeated fields");
- GPBWireFormat format =
- GPBWireFormatForType(description->dataType,
- ((description->flags & GPBFieldPacked) == 0));
- return GPBWireFormatMakeTag(description->number, format);
-}
-
-@implementation GPBFieldDescriptor {
- GPBGenericValue defaultValue_;
-
- // Message ivars
- Class msgClass_;
-
- // Enum ivars.
- // If protos are generated with GenerateEnumDescriptors on then it will
- // be a enumDescriptor, otherwise it will be a enumVerifier.
- union {
- GPBEnumDescriptor *enumDescriptor_;
- GPBEnumValidationFunc enumVerifier_;
- } enumHandling_;
-}
-
-@synthesize msgClass = msgClass_;
-@synthesize containingOneof = containingOneof_;
-
-- (instancetype)init {
- // Throw an exception if people attempt to not use the designated initializer.
- self = [super init];
- if (self != nil) {
- [self doesNotRecognizeSelector:_cmd];
- self = nil;
- }
- return self;
-}
-
-- (instancetype)initWithFieldDescription:(void *)description
- includesDefault:(BOOL)includesDefault
- syntax:(GPBFileSyntax)syntax {
- if ((self = [super init])) {
- GPBMessageFieldDescription *coreDesc;
- if (includesDefault) {
- coreDesc = &(((GPBMessageFieldDescriptionWithDefault *)description)->core);
- } else {
- coreDesc = description;
- }
- description_ = coreDesc;
- getSel_ = sel_getUid(coreDesc->name);
- setSel_ = SelFromStrings("set", coreDesc->name, NULL, YES);
-
- GPBDataType dataType = coreDesc->dataType;
- BOOL isMessage = GPBDataTypeIsMessage(dataType);
- BOOL isMapOrArray = GPBFieldIsMapOrArray(self);
-
- if (isMapOrArray) {
- // map<>/repeated fields get a *Count property (inplace of a has*) to
- // support checking if there are any entries without triggering
- // autocreation.
- hasOrCountSel_ = SelFromStrings(NULL, coreDesc->name, "_Count", NO);
- } else {
- // If there is a positive hasIndex, then:
- // - All fields types for proto2 messages get has* selectors.
- // - Only message fields for proto3 messages get has* selectors.
- // Note: the positive check is to handle oneOfs, we can't check
- // containingOneof_ because it isn't set until after initialization.
- if ((coreDesc->hasIndex >= 0) &&
- (coreDesc->hasIndex != GPBNoHasBit) &&
- ((syntax != GPBFileSyntaxProto3) || isMessage)) {
- hasOrCountSel_ = SelFromStrings("has", coreDesc->name, NULL, NO);
- setHasSel_ = SelFromStrings("setHas", coreDesc->name, NULL, YES);
- }
- }
-
- // Extra type specific data.
- if (isMessage) {
- const char *className = coreDesc->dataTypeSpecific.className;
- // Note: Only fetch the class here, can't send messages to it because
- // that could cause cycles back to this class within +initialize if
- // two messages have each other in fields (i.e. - they build a graph).
- msgClass_ = objc_getClass(className);
- NSAssert(msgClass_, @"Class %s not defined", className);
- } else if (dataType == GPBDataTypeEnum) {
- if ((coreDesc->flags & GPBFieldHasEnumDescriptor) != 0) {
- enumHandling_.enumDescriptor_ =
- coreDesc->dataTypeSpecific.enumDescFunc();
- } else {
- enumHandling_.enumVerifier_ =
- coreDesc->dataTypeSpecific.enumVerifier;
- }
- }
-
- // Non map<>/repeated fields can have defaults in proto2 syntax.
- if (!isMapOrArray && includesDefault) {
- defaultValue_ = ((GPBMessageFieldDescriptionWithDefault *)description)->defaultValue;
- if (dataType == GPBDataTypeBytes) {
- // Data stored as a length prefixed (network byte order) c-string in
- // descriptor structure.
- const uint8_t *bytes = (const uint8_t *)defaultValue_.valueData;
- if (bytes) {
- uint32_t length = *((uint32_t *)bytes);
- length = ntohl(length);
- bytes += sizeof(length);
- defaultValue_.valueData =
- [[NSData alloc] initWithBytes:bytes length:length];
- }
- }
- }
- }
- return self;
-}
-
-- (void)dealloc {
- if (description_->dataType == GPBDataTypeBytes &&
- !(description_->flags & GPBFieldRepeated)) {
- [defaultValue_.valueData release];
- }
- [super dealloc];
-}
-
-- (GPBDataType)dataType {
- return description_->dataType;
-}
-
-- (BOOL)hasDefaultValue {
- return (description_->flags & GPBFieldHasDefaultValue) != 0;
-}
-
-- (uint32_t)number {
- return description_->number;
-}
-
-- (NSString *)name {
- return @(description_->name);
-}
-
-- (BOOL)isRequired {
- return (description_->flags & GPBFieldRequired) != 0;
-}
-
-- (BOOL)isOptional {
- return (description_->flags & GPBFieldOptional) != 0;
-}
-
-- (GPBFieldType)fieldType {
- GPBFieldFlags flags = description_->flags;
- if ((flags & GPBFieldRepeated) != 0) {
- return GPBFieldTypeRepeated;
- } else if ((flags & GPBFieldMapKeyMask) != 0) {
- return GPBFieldTypeMap;
- } else {
- return GPBFieldTypeSingle;
- }
-}
-
-- (GPBDataType)mapKeyDataType {
- switch (description_->flags & GPBFieldMapKeyMask) {
- case GPBFieldMapKeyInt32:
- return GPBDataTypeInt32;
- case GPBFieldMapKeyInt64:
- return GPBDataTypeInt64;
- case GPBFieldMapKeyUInt32:
- return GPBDataTypeUInt32;
- case GPBFieldMapKeyUInt64:
- return GPBDataTypeUInt64;
- case GPBFieldMapKeySInt32:
- return GPBDataTypeSInt32;
- case GPBFieldMapKeySInt64:
- return GPBDataTypeSInt64;
- case GPBFieldMapKeyFixed32:
- return GPBDataTypeFixed32;
- case GPBFieldMapKeyFixed64:
- return GPBDataTypeFixed64;
- case GPBFieldMapKeySFixed32:
- return GPBDataTypeSFixed32;
- case GPBFieldMapKeySFixed64:
- return GPBDataTypeSFixed64;
- case GPBFieldMapKeyBool:
- return GPBDataTypeBool;
- case GPBFieldMapKeyString:
- return GPBDataTypeString;
-
- default:
- NSAssert(0, @"Not a map type");
- return GPBDataTypeInt32; // For lack of anything better.
- }
-}
-
-- (BOOL)isPackable {
- return (description_->flags & GPBFieldPacked) != 0;
-}
-
-- (BOOL)isValidEnumValue:(int32_t)value {
- NSAssert(description_->dataType == GPBDataTypeEnum,
- @"Field Must be of type GPBDataTypeEnum");
- if (description_->flags & GPBFieldHasEnumDescriptor) {
- return enumHandling_.enumDescriptor_.enumVerifier(value);
- } else {
- return enumHandling_.enumVerifier_(value);
- }
-}
-
-- (GPBEnumDescriptor *)enumDescriptor {
- if (description_->flags & GPBFieldHasEnumDescriptor) {
- return enumHandling_.enumDescriptor_;
- } else {
- return nil;
- }
-}
-
-- (GPBGenericValue)defaultValue {
- // Depends on the fact that defaultValue_ is initialized either to "0/nil" or
- // to an actual defaultValue in our initializer.
- GPBGenericValue value = defaultValue_;
-
- if (!(description_->flags & GPBFieldRepeated)) {
- // We special handle data and strings. If they are nil, we replace them
- // with empty string/empty data.
- GPBDataType type = description_->dataType;
- if (type == GPBDataTypeBytes && value.valueData == nil) {
- value.valueData = GPBEmptyNSData();
- } else if (type == GPBDataTypeString && value.valueString == nil) {
- value.valueString = @"";
- }
- }
- return value;
-}
-
-- (NSString *)textFormatName {
- if ((description_->flags & GPBFieldTextFormatNameCustom) != 0) {
- NSValue *extraInfoValue =
- objc_getAssociatedObject(self, &kTextFormatExtraValueKey);
- // Support can be left out at generation time.
- if (!extraInfoValue) {
- return nil;
- }
- const uint8_t *extraTextFormatInfo = [extraInfoValue pointerValue];
- return GPBDecodeTextFormatName(extraTextFormatInfo, GPBFieldNumber(self),
- self.name);
- }
-
- // The logic here has to match SetCommonFieldVariables() from
- // objectivec_field.cc in the proto compiler.
- NSString *name = self.name;
- NSUInteger len = [name length];
-
- // Remove the "_p" added to reserved names.
- if ([name hasSuffix:@"_p"]) {
- name = [name substringToIndex:(len - 2)];
- len = [name length];
- }
-
- // Remove "Array" from the end for repeated fields.
- if (((description_->flags & GPBFieldRepeated) != 0) &&
- [name hasSuffix:@"Array"]) {
- name = [name substringToIndex:(len - 5)];
- len = [name length];
- }
-
- // Groups vs. other fields.
- if (description_->dataType == GPBDataTypeGroup) {
- // Just capitalize the first letter.
- unichar firstChar = [name characterAtIndex:0];
- if (firstChar >= 'a' && firstChar <= 'z') {
- NSString *firstCharString =
- [NSString stringWithFormat:@"%C", (unichar)(firstChar - 'a' + 'A')];
- NSString *result =
- [name stringByReplacingCharactersInRange:NSMakeRange(0, 1)
- withString:firstCharString];
- return result;
- }
- return name;
-
- } else {
- // Undo the CamelCase.
- NSMutableString *result = [NSMutableString stringWithCapacity:len];
- for (uint32_t i = 0; i < len; i++) {
- unichar c = [name characterAtIndex:i];
- if (c >= 'A' && c <= 'Z') {
- if (i > 0) {
- [result appendFormat:@"_%C", (unichar)(c - 'A' + 'a')];
- } else {
- [result appendFormat:@"%C", c];
- }
- } else {
- [result appendFormat:@"%C", c];
- }
- }
- return result;
- }
-}
-
-@end
-
-@implementation GPBEnumDescriptor {
- NSString *name_;
- // valueNames_ is a single c string with all of the value names appended
- // together, each null terminated. -calcValueNameOffsets fills in
- // nameOffsets_ with the offsets to allow quicker access to the individual
- // names.
- const char *valueNames_;
- const int32_t *values_;
- GPBEnumValidationFunc enumVerifier_;
- const uint8_t *extraTextFormatInfo_;
- uint32_t *nameOffsets_;
- uint32_t valueCount_;
-}
-
-@synthesize name = name_;
-@synthesize enumVerifier = enumVerifier_;
-
-+ (instancetype)
- allocDescriptorForName:(NSString *)name
- valueNames:(const char *)valueNames
- values:(const int32_t *)values
- count:(uint32_t)valueCount
- enumVerifier:(GPBEnumValidationFunc)enumVerifier {
- GPBEnumDescriptor *descriptor = [[self alloc] initWithName:name
- valueNames:valueNames
- values:values
- count:valueCount
- enumVerifier:enumVerifier];
- return descriptor;
-}
-
-+ (instancetype)
- allocDescriptorForName:(NSString *)name
- valueNames:(const char *)valueNames
- values:(const int32_t *)values
- count:(uint32_t)valueCount
- enumVerifier:(GPBEnumValidationFunc)enumVerifier
- extraTextFormatInfo:(const char *)extraTextFormatInfo {
- // Call the common case.
- GPBEnumDescriptor *descriptor = [self allocDescriptorForName:name
- valueNames:valueNames
- values:values
- count:valueCount
- enumVerifier:enumVerifier];
- // Set the extra info.
- descriptor->extraTextFormatInfo_ = (const uint8_t *)extraTextFormatInfo;
- return descriptor;
-}
-
-- (instancetype)initWithName:(NSString *)name
- valueNames:(const char *)valueNames
- values:(const int32_t *)values
- count:(uint32_t)valueCount
- enumVerifier:(GPBEnumValidationFunc)enumVerifier {
- if ((self = [super init])) {
- name_ = [name copy];
- valueNames_ = valueNames;
- values_ = values;
- valueCount_ = valueCount;
- enumVerifier_ = enumVerifier;
- }
- return self;
-}
-
-- (void)dealloc {
- [name_ release];
- if (nameOffsets_) free(nameOffsets_);
- [super dealloc];
-}
-
-- (void)calcValueNameOffsets {
- @synchronized(self) {
- if (nameOffsets_ != NULL) {
- return;
- }
- uint32_t *offsets = malloc(valueCount_ * sizeof(uint32_t));
- const char *scan = valueNames_;
- for (uint32_t i = 0; i < valueCount_; ++i) {
- offsets[i] = (uint32_t)(scan - valueNames_);
- while (*scan != '\0') ++scan;
- ++scan; // Step over the null.
- }
- nameOffsets_ = offsets;
- }
-}
-
-- (NSString *)enumNameForValue:(int32_t)number {
- if (nameOffsets_ == NULL) [self calcValueNameOffsets];
-
- for (uint32_t i = 0; i < valueCount_; ++i) {
- if (values_[i] == number) {
- const char *valueName = valueNames_ + nameOffsets_[i];
- NSString *fullName = [NSString stringWithFormat:@"%@_%s", name_, valueName];
- return fullName;
- }
- }
- return nil;
-}
-
-- (BOOL)getValue:(int32_t *)outValue forEnumName:(NSString *)name {
- // Must have the prefix.
- NSUInteger prefixLen = name_.length + 1;
- if ((name.length <= prefixLen) || ![name hasPrefix:name_] ||
- ([name characterAtIndex:prefixLen - 1] != '_')) {
- return NO;
- }
-
- // Skip over the prefix.
- const char *nameAsCStr = [name UTF8String];
- nameAsCStr += prefixLen;
-
- if (nameOffsets_ == NULL) [self calcValueNameOffsets];
-
- // Find it.
- for (uint32_t i = 0; i < valueCount_; ++i) {
- const char *valueName = valueNames_ + nameOffsets_[i];
- if (strcmp(nameAsCStr, valueName) == 0) {
- if (outValue) {
- *outValue = values_[i];
- }
- return YES;
- }
- }
- return NO;
-}
-
-- (BOOL)getValue:(int32_t *)outValue forEnumTextFormatName:(NSString *)textFormatName {
- if (nameOffsets_ == NULL) [self calcValueNameOffsets];
-
- for (uint32_t i = 0; i < valueCount_; ++i) {
- int32_t value = values_[i];
- NSString *valueTextFormatName = [self textFormatNameForValue:value];
- if ([valueTextFormatName isEqual:textFormatName]) {
- if (outValue) {
- *outValue = value;
- }
- return YES;
- }
- }
- return NO;
-}
-
-- (NSString *)textFormatNameForValue:(int32_t)number {
- if (nameOffsets_ == NULL) [self calcValueNameOffsets];
-
- // Find the EnumValue descriptor and its index.
- BOOL foundIt = NO;
- uint32_t valueDescriptorIndex;
- for (valueDescriptorIndex = 0; valueDescriptorIndex < valueCount_;
- ++valueDescriptorIndex) {
- if (values_[valueDescriptorIndex] == number) {
- foundIt = YES;
- break;
- }
- }
-
- if (!foundIt) {
- return nil;
- }
-
- NSString *result = nil;
- // Naming adds an underscore between enum name and value name, skip that also.
- const char *valueName = valueNames_ + nameOffsets_[valueDescriptorIndex];
- NSString *shortName = @(valueName);
-
- // See if it is in the map of special format handling.
- if (extraTextFormatInfo_) {
- result = GPBDecodeTextFormatName(extraTextFormatInfo_,
- (int32_t)valueDescriptorIndex, shortName);
- }
- // Logic here needs to match what objectivec_enum.cc does in the proto
- // compiler.
- if (result == nil) {
- NSUInteger len = [shortName length];
- NSMutableString *worker = [NSMutableString stringWithCapacity:len];
- for (NSUInteger i = 0; i < len; i++) {
- unichar c = [shortName characterAtIndex:i];
- if (i > 0 && c >= 'A' && c <= 'Z') {
- [worker appendString:@"_"];
- }
- [worker appendFormat:@"%c", toupper((char)c)];
- }
- result = worker;
- }
- return result;
-}
-
-@end
-
-@implementation GPBExtensionDescriptor {
- GPBGenericValue defaultValue_;
-}
-
-@synthesize containingMessageClass = containingMessageClass_;
-
-- (instancetype)initWithExtensionDescription:
- (GPBExtensionDescription *)description {
- if ((self = [super init])) {
- description_ = description;
-
-#if defined(DEBUG) && DEBUG
- const char *className = description->messageOrGroupClassName;
- if (className) {
- NSAssert(objc_lookUpClass(className) != Nil,
- @"Class %s not defined", className);
- }
-#endif
-
- if (description->extendedClass) {
- Class containingClass = objc_lookUpClass(description->extendedClass);
- NSAssert(containingClass, @"Class %s not defined",
- description->extendedClass);
- containingMessageClass_ = containingClass;
- }
-
- GPBDataType type = description_->dataType;
- if (type == GPBDataTypeBytes) {
- // Data stored as a length prefixed c-string in descriptor records.
- const uint8_t *bytes =
- (const uint8_t *)description->defaultValue.valueData;
- if (bytes) {
- uint32_t length = *((uint32_t *)bytes);
- // The length is stored in network byte order.
- length = ntohl(length);
- bytes += sizeof(length);
- defaultValue_.valueData =
- [[NSData alloc] initWithBytes:bytes length:length];
- }
- } else if (type == GPBDataTypeMessage || type == GPBDataTypeGroup) {
- // The default is looked up in -defaultValue instead since extensions
- // aren't common, we avoid the hit startup hit and it avoid initialization
- // order issues.
- } else {
- defaultValue_ = description->defaultValue;
- }
- }
- return self;
-}
-
-- (void)dealloc {
- if ((description_->dataType == GPBDataTypeBytes) &&
- !GPBExtensionIsRepeated(description_)) {
- [defaultValue_.valueData release];
- }
- [super dealloc];
-}
-
-- (instancetype)copyWithZone:(NSZone *)zone {
-#pragma unused(zone)
- // Immutable.
- return [self retain];
-}
-
-- (NSString *)singletonName {
- return @(description_->singletonName);
-}
-
-- (const char *)singletonNameC {
- return description_->singletonName;
-}
-
-- (uint32_t)fieldNumber {
- return description_->fieldNumber;
-}
-
-- (GPBDataType)dataType {
- return description_->dataType;
-}
-
-- (GPBWireFormat)wireType {
- return GPBWireFormatForType(description_->dataType,
- GPBExtensionIsPacked(description_));
-}
-
-- (GPBWireFormat)alternateWireType {
- NSAssert(GPBExtensionIsRepeated(description_),
- @"Only valid on repeated extensions");
- return GPBWireFormatForType(description_->dataType,
- !GPBExtensionIsPacked(description_));
-}
-
-- (BOOL)isRepeated {
- return GPBExtensionIsRepeated(description_);
-}
-
-- (BOOL)isMap {
- return (description_->options & GPBFieldMapKeyMask) != 0;
-}
-
-- (BOOL)isPackable {
- return GPBExtensionIsPacked(description_);
-}
-
-- (Class)msgClass {
- return objc_getClass(description_->messageOrGroupClassName);
-}
-
-- (GPBEnumDescriptor *)enumDescriptor {
- if (description_->dataType == GPBDataTypeEnum) {
- GPBEnumDescriptor *enumDescriptor = description_->enumDescriptorFunc();
- return enumDescriptor;
- }
- return nil;
-}
-
-- (id)defaultValue {
- if (GPBExtensionIsRepeated(description_)) {
- return nil;
- }
-
- switch (description_->dataType) {
- case GPBDataTypeBool:
- return @(defaultValue_.valueBool);
- case GPBDataTypeFloat:
- return @(defaultValue_.valueFloat);
- case GPBDataTypeDouble:
- return @(defaultValue_.valueDouble);
- case GPBDataTypeInt32:
- case GPBDataTypeSInt32:
- case GPBDataTypeEnum:
- case GPBDataTypeSFixed32:
- return @(defaultValue_.valueInt32);
- case GPBDataTypeInt64:
- case GPBDataTypeSInt64:
- case GPBDataTypeSFixed64:
- return @(defaultValue_.valueInt64);
- case GPBDataTypeUInt32:
- case GPBDataTypeFixed32:
- return @(defaultValue_.valueUInt32);
- case GPBDataTypeUInt64:
- case GPBDataTypeFixed64:
- return @(defaultValue_.valueUInt64);
- case GPBDataTypeBytes:
- // Like message fields, the default is zero length data.
- return (defaultValue_.valueData ? defaultValue_.valueData
- : GPBEmptyNSData());
- case GPBDataTypeString:
- // Like message fields, the default is zero length string.
- return (defaultValue_.valueString ? defaultValue_.valueString : @"");
- case GPBDataTypeGroup:
- case GPBDataTypeMessage:
- return nil;
- }
-}
-
-- (NSComparisonResult)compareByFieldNumber:(GPBExtensionDescriptor *)other {
- int32_t selfNumber = description_->fieldNumber;
- int32_t otherNumber = other->description_->fieldNumber;
- if (selfNumber < otherNumber) {
- return NSOrderedAscending;
- } else if (selfNumber == otherNumber) {
- return NSOrderedSame;
- } else {
- return NSOrderedDescending;
- }
-}
-
-@end
-
-#pragma clang diagnostic pop
diff --git a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBDescriptor_PackagePrivate.h b/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBDescriptor_PackagePrivate.h
deleted file mode 100644
index 9173e7a2..00000000
--- a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBDescriptor_PackagePrivate.h
+++ /dev/null
@@ -1,329 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// https://developers.google.com/protocol-buffers/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// This header is private to the ProtobolBuffers library and must NOT be
-// included by any sources outside this library. The contents of this file are
-// subject to change at any time without notice.
-
-#import "GPBDescriptor.h"
-#import "GPBWireFormat.h"
-
-// Describes attributes of the field.
-typedef NS_OPTIONS(uint16_t, GPBFieldFlags) {
- GPBFieldNone = 0,
- // These map to standard protobuf concepts.
- GPBFieldRequired = 1 << 0,
- GPBFieldRepeated = 1 << 1,
- GPBFieldPacked = 1 << 2,
- GPBFieldOptional = 1 << 3,
- GPBFieldHasDefaultValue = 1 << 4,
-
- // Indicates the field needs custom handling for the TextFormat name, if not
- // set, the name can be derived from the ObjC name.
- GPBFieldTextFormatNameCustom = 1 << 6,
- // Indicates the field has an enum descriptor.
- GPBFieldHasEnumDescriptor = 1 << 7,
-
- // These are not standard protobuf concepts, they are specific to the
- // Objective C runtime.
-
- // These bits are used to mark the field as a map and what the key
- // type is.
- GPBFieldMapKeyMask = 0xF << 8,
- GPBFieldMapKeyInt32 = 1 << 8,
- GPBFieldMapKeyInt64 = 2 << 8,
- GPBFieldMapKeyUInt32 = 3 << 8,
- GPBFieldMapKeyUInt64 = 4 << 8,
- GPBFieldMapKeySInt32 = 5 << 8,
- GPBFieldMapKeySInt64 = 6 << 8,
- GPBFieldMapKeyFixed32 = 7 << 8,
- GPBFieldMapKeyFixed64 = 8 << 8,
- GPBFieldMapKeySFixed32 = 9 << 8,
- GPBFieldMapKeySFixed64 = 10 << 8,
- GPBFieldMapKeyBool = 11 << 8,
- GPBFieldMapKeyString = 12 << 8,
-};
-
-// NOTE: The structures defined here have their members ordered to minimize
-// their size. This directly impacts the size of apps since these exist per
-// field/extension.
-
-// Describes a single field in a protobuf as it is represented as an ivar.
-typedef struct GPBMessageFieldDescription {
- // Name of ivar.
- const char *name;
- union {
- const char *className; // Name for message class.
- // For enums only: If EnumDescriptors are compiled in, it will be that,
- // otherwise it will be the verifier.
- GPBEnumDescriptorFunc enumDescFunc;
- GPBEnumValidationFunc enumVerifier;
- } dataTypeSpecific;
- // The field number for the ivar.
- uint32_t number;
- // The index (in bits) into _has_storage_.
- // >= 0: the bit to use for a value being set.
- // = GPBNoHasBit(INT32_MAX): no storage used.
- // < 0: in a oneOf, use a full int32 to record the field active.
- int32_t hasIndex;
- // Offset of the variable into it's structure struct.
- uint32_t offset;
- // Field flags. Use accessor functions below.
- GPBFieldFlags flags;
- // Data type of the ivar.
- GPBDataType dataType;
-} GPBMessageFieldDescription;
-
-// Fields in messages defined in a 'proto2' syntax file can provide a default
-// value. This struct provides the default along with the field info.
-typedef struct GPBMessageFieldDescriptionWithDefault {
- // Default value for the ivar.
- GPBGenericValue defaultValue;
-
- GPBMessageFieldDescription core;
-} GPBMessageFieldDescriptionWithDefault;
-
-// Describes attributes of the extension.
-typedef NS_OPTIONS(uint8_t, GPBExtensionOptions) {
- GPBExtensionNone = 0,
- // These map to standard protobuf concepts.
- GPBExtensionRepeated = 1 << 0,
- GPBExtensionPacked = 1 << 1,
- GPBExtensionSetWireFormat = 1 << 2,
-};
-
-// An extension
-typedef struct GPBExtensionDescription {
- GPBGenericValue defaultValue;
- const char *singletonName;
- const char *extendedClass;
- const char *messageOrGroupClassName;
- GPBEnumDescriptorFunc enumDescriptorFunc;
- int32_t fieldNumber;
- GPBDataType dataType;
- GPBExtensionOptions options;
-} GPBExtensionDescription;
-
-typedef NS_OPTIONS(uint32_t, GPBDescriptorInitializationFlags) {
- GPBDescriptorInitializationFlag_None = 0,
- GPBDescriptorInitializationFlag_FieldsWithDefault = 1 << 0,
- GPBDescriptorInitializationFlag_WireFormat = 1 << 1,
-};
-
-@interface GPBDescriptor () {
- @package
- NSArray *fields_;
- NSArray *oneofs_;
- uint32_t storageSize_;
-}
-
-// fieldDescriptions have to be long lived, they are held as raw pointers.
-+ (instancetype)
- allocDescriptorForClass:(Class)messageClass
- rootClass:(Class)rootClass
- file:(GPBFileDescriptor *)file
- fields:(void *)fieldDescriptions
- fieldCount:(uint32_t)fieldCount
- storageSize:(uint32_t)storageSize
- flags:(GPBDescriptorInitializationFlags)flags;
-
-- (instancetype)initWithClass:(Class)messageClass
- file:(GPBFileDescriptor *)file
- fields:(NSArray *)fields
- storageSize:(uint32_t)storage
- wireFormat:(BOOL)wireFormat;
-
-// Called right after init to provide extra information to avoid init having
-// an explosion of args. These pointers are recorded, so they are expected
-// to live for the lifetime of the app.
-- (void)setupOneofs:(const char **)oneofNames
- count:(uint32_t)count
- firstHasIndex:(int32_t)firstHasIndex;
-- (void)setupExtraTextInfo:(const char *)extraTextFormatInfo;
-- (void)setupExtensionRanges:(const GPBExtensionRange *)ranges count:(int32_t)count;
-- (void)setupContainingMessageClassName:(const char *)msgClassName;
-- (void)setupMessageClassNameSuffix:(NSString *)suffix;
-
-@end
-
-@interface GPBFileDescriptor ()
-- (instancetype)initWithPackage:(NSString *)package
- objcPrefix:(NSString *)objcPrefix
- syntax:(GPBFileSyntax)syntax;
-- (instancetype)initWithPackage:(NSString *)package
- syntax:(GPBFileSyntax)syntax;
-@end
-
-@interface GPBOneofDescriptor () {
- @package
- const char *name_;
- NSArray *fields_;
- SEL caseSel_;
-}
-// name must be long lived.
-- (instancetype)initWithName:(const char *)name fields:(NSArray *)fields;
-@end
-
-@interface GPBFieldDescriptor () {
- @package
- GPBMessageFieldDescription *description_;
- GPB_UNSAFE_UNRETAINED GPBOneofDescriptor *containingOneof_;
-
- SEL getSel_;
- SEL setSel_;
- SEL hasOrCountSel_; // *Count for map<>/repeated fields, has* otherwise.
- SEL setHasSel_;
-}
-
-// Single initializer
-// description has to be long lived, it is held as a raw pointer.
-- (instancetype)initWithFieldDescription:(void *)description
- includesDefault:(BOOL)includesDefault
- syntax:(GPBFileSyntax)syntax;
-@end
-
-@interface GPBEnumDescriptor ()
-// valueNames, values and extraTextFormatInfo have to be long lived, they are
-// held as raw pointers.
-+ (instancetype)
- allocDescriptorForName:(NSString *)name
- valueNames:(const char *)valueNames
- values:(const int32_t *)values
- count:(uint32_t)valueCount
- enumVerifier:(GPBEnumValidationFunc)enumVerifier;
-+ (instancetype)
- allocDescriptorForName:(NSString *)name
- valueNames:(const char *)valueNames
- values:(const int32_t *)values
- count:(uint32_t)valueCount
- enumVerifier:(GPBEnumValidationFunc)enumVerifier
- extraTextFormatInfo:(const char *)extraTextFormatInfo;
-
-- (instancetype)initWithName:(NSString *)name
- valueNames:(const char *)valueNames
- values:(const int32_t *)values
- count:(uint32_t)valueCount
- enumVerifier:(GPBEnumValidationFunc)enumVerifier;
-@end
-
-@interface GPBExtensionDescriptor () {
- @package
- GPBExtensionDescription *description_;
-}
-@property(nonatomic, readonly) GPBWireFormat wireType;
-
-// For repeated extensions, alternateWireType is the wireType with the opposite
-// value for the packable property. i.e. - if the extension was marked packed
-// it would be the wire type for unpacked; if the extension was marked unpacked,
-// it would be the wire type for packed.
-@property(nonatomic, readonly) GPBWireFormat alternateWireType;
-
-// description has to be long lived, it is held as a raw pointer.
-- (instancetype)initWithExtensionDescription:
- (GPBExtensionDescription *)description;
-- (NSComparisonResult)compareByFieldNumber:(GPBExtensionDescriptor *)other;
-@end
-
-CF_EXTERN_C_BEGIN
-
-// Direct access is use for speed, to avoid even internally declaring things
-// read/write, etc. The warning is enabled in the project to ensure code calling
-// protos can turn on -Wdirect-ivar-access without issues.
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wdirect-ivar-access"
-
-GPB_INLINE BOOL GPBFieldIsMapOrArray(GPBFieldDescriptor *field) {
- return (field->description_->flags &
- (GPBFieldRepeated | GPBFieldMapKeyMask)) != 0;
-}
-
-GPB_INLINE GPBDataType GPBGetFieldDataType(GPBFieldDescriptor *field) {
- return field->description_->dataType;
-}
-
-GPB_INLINE int32_t GPBFieldHasIndex(GPBFieldDescriptor *field) {
- return field->description_->hasIndex;
-}
-
-GPB_INLINE uint32_t GPBFieldNumber(GPBFieldDescriptor *field) {
- return field->description_->number;
-}
-
-#pragma clang diagnostic pop
-
-uint32_t GPBFieldTag(GPBFieldDescriptor *self);
-
-// For repeated fields, alternateWireType is the wireType with the opposite
-// value for the packable property. i.e. - if the field was marked packed it
-// would be the wire type for unpacked; if the field was marked unpacked, it
-// would be the wire type for packed.
-uint32_t GPBFieldAlternateTag(GPBFieldDescriptor *self);
-
-GPB_INLINE BOOL GPBPreserveUnknownFields(GPBFileSyntax syntax) {
- return syntax != GPBFileSyntaxProto3;
-}
-
-GPB_INLINE BOOL GPBHasPreservingUnknownEnumSemantics(GPBFileSyntax syntax) {
- return syntax == GPBFileSyntaxProto3;
-}
-
-GPB_INLINE BOOL GPBExtensionIsRepeated(GPBExtensionDescription *description) {
- return (description->options & GPBExtensionRepeated) != 0;
-}
-
-GPB_INLINE BOOL GPBExtensionIsPacked(GPBExtensionDescription *description) {
- return (description->options & GPBExtensionPacked) != 0;
-}
-
-GPB_INLINE BOOL GPBExtensionIsWireFormat(GPBExtensionDescription *description) {
- return (description->options & GPBExtensionSetWireFormat) != 0;
-}
-
-// Helper for compile time assets.
-#ifndef GPBInternalCompileAssert
- #if __has_feature(c_static_assert) || __has_extension(c_static_assert)
- #define GPBInternalCompileAssert(test, msg) _Static_assert((test), #msg)
- #else
- // Pre-Xcode 7 support.
- #define GPBInternalCompileAssertSymbolInner(line, msg) GPBInternalCompileAssert ## line ## __ ## msg
- #define GPBInternalCompileAssertSymbol(line, msg) GPBInternalCompileAssertSymbolInner(line, msg)
- #define GPBInternalCompileAssert(test, msg) \
- typedef char GPBInternalCompileAssertSymbol(__LINE__, msg) [ ((test) ? 1 : -1) ]
- #endif // __has_feature(c_static_assert) || __has_extension(c_static_assert)
-#endif // GPBInternalCompileAssert
-
-// Sanity check that there isn't padding between the field description
-// structures with and without a default.
-GPBInternalCompileAssert(sizeof(GPBMessageFieldDescriptionWithDefault) ==
- (sizeof(GPBGenericValue) +
- sizeof(GPBMessageFieldDescription)),
- DescriptionsWithDefault_different_size_than_expected);
-
-CF_EXTERN_C_END
diff --git a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBDictionary.h b/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBDictionary.h
deleted file mode 100644
index 9d674150..00000000
--- a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBDictionary.h
+++ /dev/null
@@ -1,8570 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// https://developers.google.com/protocol-buffers/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#import <Foundation/Foundation.h>
-
-#import "GPBRuntimeTypes.h"
-
-// Note on naming: for the classes holding numeric values, a more natural
-// naming of the method might be things like "-valueForKey:",
-// "-setValue:forKey:"; etc. But those selectors are also defined by Key Value
-// Coding (KVC) as categories on NSObject. So "overloading" the selectors with
-// other meanings can cause warnings (based on compiler settings), but more
-// importantly, some of those selector get called as KVC breaks up keypaths.
-// So if those selectors are used, using KVC will compile cleanly, but could
-// crash as it invokes those selectors with the wrong types of arguments.
-
-NS_ASSUME_NONNULL_BEGIN
-
-//%PDDM-EXPAND DECLARE_DICTIONARIES()
-// This block of code is generated, do not edit it directly.
-
-#pragma mark - UInt32 -> UInt32
-
-/**
- * Class used for map fields of <uint32_t, uint32_t>
- * values. This performs better than boxing into NSNumbers in NSDictionaries.
- *
- * @note This class is not meant to be subclassed.
- **/
-@interface GPBUInt32UInt32Dictionary : NSObject <NSCopying>
-
-/** Number of entries stored in this dictionary. */
-@property(nonatomic, readonly) NSUInteger count;
-
-/**
- * @return A newly instanced and empty dictionary.
- **/
-+ (instancetype)dictionary;
-
-/**
- * Creates and initializes a dictionary with the single entry given.
- *
- * @param value The value to be placed in the dictionary.
- * @param key The key under which to store the value.
- *
- * @return A newly instanced dictionary with the key and value in it.
- **/
-+ (instancetype)dictionaryWithUInt32:(uint32_t)value
- forKey:(uint32_t)key;
-
-/**
- * Creates and initializes a dictionary with the entries given.
- *
- * @param values The values to be placed in the dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of entries to store in the dictionary.
- *
- * @return A newly instanced dictionary with the keys and values in it.
- **/
-+ (instancetype)dictionaryWithUInt32s:(const uint32_t [__nullable])values
- forKeys:(const uint32_t [__nullable])keys
- count:(NSUInteger)count;
-
-/**
- * Creates and initializes a dictionary with the entries from the given.
- * dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to the dictionary.
- *
- * @return A newly instanced dictionary with the entries from the given
- * dictionary in it.
- **/
-+ (instancetype)dictionaryWithDictionary:(GPBUInt32UInt32Dictionary *)dictionary;
-
-/**
- * Creates and initializes a dictionary with the given capacity.
- *
- * @param numItems Capacity needed for the dictionary.
- *
- * @return A newly instanced dictionary with the given capacity.
- **/
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems;
-
-/**
- * Initializes this dictionary, copying the given values and keys.
- *
- * @param values The values to be placed in this dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of elements to copy into the dictionary.
- *
- * @return A newly initialized dictionary with a copy of the values and keys.
- **/
-- (instancetype)initWithUInt32s:(const uint32_t [__nullable])values
- forKeys:(const uint32_t [__nullable])keys
- count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
-
-/**
- * Initializes this dictionary, copying the entries from the given dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to this dictionary.
- *
- * @return A newly initialized dictionary with the entries of the given dictionary.
- **/
-- (instancetype)initWithDictionary:(GPBUInt32UInt32Dictionary *)dictionary;
-
-/**
- * Initializes this dictionary with the requested capacity.
- *
- * @param numItems Number of items needed for this dictionary.
- *
- * @return A newly initialized dictionary with the requested capacity.
- **/
-- (instancetype)initWithCapacity:(NSUInteger)numItems;
-
-/**
- * Gets the value for the given key.
- *
- * @param value Pointer into which the value will be set, if found.
- * @param key Key under which the value is stored, if present.
- *
- * @return YES if the key was found and the value was copied, NO otherwise.
- **/
-- (BOOL)getUInt32:(nullable uint32_t *)value forKey:(uint32_t)key;
-
-/**
- * Enumerates the keys and values on this dictionary with the given block.
- *
- * @param block The block to enumerate with.
- * **key**: The key for the current entry.
- * **value**: The value for the current entry
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateKeysAndUInt32sUsingBlock:
- (void (^)(uint32_t key, uint32_t value, BOOL *stop))block;
-
-/**
- * Adds the keys and values from another dictionary.
- *
- * @param otherDictionary Dictionary containing entries to be added to this
- * dictionary.
- **/
-- (void)addEntriesFromDictionary:(GPBUInt32UInt32Dictionary *)otherDictionary;
-
-/**
- * Sets the value for the given key.
- *
- * @param value The value to set.
- * @param key The key under which to store the value.
- **/
-- (void)setUInt32:(uint32_t)value forKey:(uint32_t)key;
-
-/**
- * Removes the entry for the given key.
- *
- * @param aKey Key to be removed from this dictionary.
- **/
-- (void)removeUInt32ForKey:(uint32_t)aKey;
-
-/**
- * Removes all entries in this dictionary.
- **/
-- (void)removeAll;
-
-@end
-
-#pragma mark - UInt32 -> Int32
-
-/**
- * Class used for map fields of <uint32_t, int32_t>
- * values. This performs better than boxing into NSNumbers in NSDictionaries.
- *
- * @note This class is not meant to be subclassed.
- **/
-@interface GPBUInt32Int32Dictionary : NSObject <NSCopying>
-
-/** Number of entries stored in this dictionary. */
-@property(nonatomic, readonly) NSUInteger count;
-
-/**
- * @return A newly instanced and empty dictionary.
- **/
-+ (instancetype)dictionary;
-
-/**
- * Creates and initializes a dictionary with the single entry given.
- *
- * @param value The value to be placed in the dictionary.
- * @param key The key under which to store the value.
- *
- * @return A newly instanced dictionary with the key and value in it.
- **/
-+ (instancetype)dictionaryWithInt32:(int32_t)value
- forKey:(uint32_t)key;
-
-/**
- * Creates and initializes a dictionary with the entries given.
- *
- * @param values The values to be placed in the dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of entries to store in the dictionary.
- *
- * @return A newly instanced dictionary with the keys and values in it.
- **/
-+ (instancetype)dictionaryWithInt32s:(const int32_t [__nullable])values
- forKeys:(const uint32_t [__nullable])keys
- count:(NSUInteger)count;
-
-/**
- * Creates and initializes a dictionary with the entries from the given.
- * dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to the dictionary.
- *
- * @return A newly instanced dictionary with the entries from the given
- * dictionary in it.
- **/
-+ (instancetype)dictionaryWithDictionary:(GPBUInt32Int32Dictionary *)dictionary;
-
-/**
- * Creates and initializes a dictionary with the given capacity.
- *
- * @param numItems Capacity needed for the dictionary.
- *
- * @return A newly instanced dictionary with the given capacity.
- **/
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems;
-
-/**
- * Initializes this dictionary, copying the given values and keys.
- *
- * @param values The values to be placed in this dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of elements to copy into the dictionary.
- *
- * @return A newly initialized dictionary with a copy of the values and keys.
- **/
-- (instancetype)initWithInt32s:(const int32_t [__nullable])values
- forKeys:(const uint32_t [__nullable])keys
- count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
-
-/**
- * Initializes this dictionary, copying the entries from the given dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to this dictionary.
- *
- * @return A newly initialized dictionary with the entries of the given dictionary.
- **/
-- (instancetype)initWithDictionary:(GPBUInt32Int32Dictionary *)dictionary;
-
-/**
- * Initializes this dictionary with the requested capacity.
- *
- * @param numItems Number of items needed for this dictionary.
- *
- * @return A newly initialized dictionary with the requested capacity.
- **/
-- (instancetype)initWithCapacity:(NSUInteger)numItems;
-
-/**
- * Gets the value for the given key.
- *
- * @param value Pointer into which the value will be set, if found.
- * @param key Key under which the value is stored, if present.
- *
- * @return YES if the key was found and the value was copied, NO otherwise.
- **/
-- (BOOL)getInt32:(nullable int32_t *)value forKey:(uint32_t)key;
-
-/**
- * Enumerates the keys and values on this dictionary with the given block.
- *
- * @param block The block to enumerate with.
- * **key**: The key for the current entry.
- * **value**: The value for the current entry
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateKeysAndInt32sUsingBlock:
- (void (^)(uint32_t key, int32_t value, BOOL *stop))block;
-
-/**
- * Adds the keys and values from another dictionary.
- *
- * @param otherDictionary Dictionary containing entries to be added to this
- * dictionary.
- **/
-- (void)addEntriesFromDictionary:(GPBUInt32Int32Dictionary *)otherDictionary;
-
-/**
- * Sets the value for the given key.
- *
- * @param value The value to set.
- * @param key The key under which to store the value.
- **/
-- (void)setInt32:(int32_t)value forKey:(uint32_t)key;
-
-/**
- * Removes the entry for the given key.
- *
- * @param aKey Key to be removed from this dictionary.
- **/
-- (void)removeInt32ForKey:(uint32_t)aKey;
-
-/**
- * Removes all entries in this dictionary.
- **/
-- (void)removeAll;
-
-@end
-
-#pragma mark - UInt32 -> UInt64
-
-/**
- * Class used for map fields of <uint32_t, uint64_t>
- * values. This performs better than boxing into NSNumbers in NSDictionaries.
- *
- * @note This class is not meant to be subclassed.
- **/
-@interface GPBUInt32UInt64Dictionary : NSObject <NSCopying>
-
-/** Number of entries stored in this dictionary. */
-@property(nonatomic, readonly) NSUInteger count;
-
-/**
- * @return A newly instanced and empty dictionary.
- **/
-+ (instancetype)dictionary;
-
-/**
- * Creates and initializes a dictionary with the single entry given.
- *
- * @param value The value to be placed in the dictionary.
- * @param key The key under which to store the value.
- *
- * @return A newly instanced dictionary with the key and value in it.
- **/
-+ (instancetype)dictionaryWithUInt64:(uint64_t)value
- forKey:(uint32_t)key;
-
-/**
- * Creates and initializes a dictionary with the entries given.
- *
- * @param values The values to be placed in the dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of entries to store in the dictionary.
- *
- * @return A newly instanced dictionary with the keys and values in it.
- **/
-+ (instancetype)dictionaryWithUInt64s:(const uint64_t [__nullable])values
- forKeys:(const uint32_t [__nullable])keys
- count:(NSUInteger)count;
-
-/**
- * Creates and initializes a dictionary with the entries from the given.
- * dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to the dictionary.
- *
- * @return A newly instanced dictionary with the entries from the given
- * dictionary in it.
- **/
-+ (instancetype)dictionaryWithDictionary:(GPBUInt32UInt64Dictionary *)dictionary;
-
-/**
- * Creates and initializes a dictionary with the given capacity.
- *
- * @param numItems Capacity needed for the dictionary.
- *
- * @return A newly instanced dictionary with the given capacity.
- **/
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems;
-
-/**
- * Initializes this dictionary, copying the given values and keys.
- *
- * @param values The values to be placed in this dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of elements to copy into the dictionary.
- *
- * @return A newly initialized dictionary with a copy of the values and keys.
- **/
-- (instancetype)initWithUInt64s:(const uint64_t [__nullable])values
- forKeys:(const uint32_t [__nullable])keys
- count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
-
-/**
- * Initializes this dictionary, copying the entries from the given dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to this dictionary.
- *
- * @return A newly initialized dictionary with the entries of the given dictionary.
- **/
-- (instancetype)initWithDictionary:(GPBUInt32UInt64Dictionary *)dictionary;
-
-/**
- * Initializes this dictionary with the requested capacity.
- *
- * @param numItems Number of items needed for this dictionary.
- *
- * @return A newly initialized dictionary with the requested capacity.
- **/
-- (instancetype)initWithCapacity:(NSUInteger)numItems;
-
-/**
- * Gets the value for the given key.
- *
- * @param value Pointer into which the value will be set, if found.
- * @param key Key under which the value is stored, if present.
- *
- * @return YES if the key was found and the value was copied, NO otherwise.
- **/
-- (BOOL)getUInt64:(nullable uint64_t *)value forKey:(uint32_t)key;
-
-/**
- * Enumerates the keys and values on this dictionary with the given block.
- *
- * @param block The block to enumerate with.
- * **key**: The key for the current entry.
- * **value**: The value for the current entry
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateKeysAndUInt64sUsingBlock:
- (void (^)(uint32_t key, uint64_t value, BOOL *stop))block;
-
-/**
- * Adds the keys and values from another dictionary.
- *
- * @param otherDictionary Dictionary containing entries to be added to this
- * dictionary.
- **/
-- (void)addEntriesFromDictionary:(GPBUInt32UInt64Dictionary *)otherDictionary;
-
-/**
- * Sets the value for the given key.
- *
- * @param value The value to set.
- * @param key The key under which to store the value.
- **/
-- (void)setUInt64:(uint64_t)value forKey:(uint32_t)key;
-
-/**
- * Removes the entry for the given key.
- *
- * @param aKey Key to be removed from this dictionary.
- **/
-- (void)removeUInt64ForKey:(uint32_t)aKey;
-
-/**
- * Removes all entries in this dictionary.
- **/
-- (void)removeAll;
-
-@end
-
-#pragma mark - UInt32 -> Int64
-
-/**
- * Class used for map fields of <uint32_t, int64_t>
- * values. This performs better than boxing into NSNumbers in NSDictionaries.
- *
- * @note This class is not meant to be subclassed.
- **/
-@interface GPBUInt32Int64Dictionary : NSObject <NSCopying>
-
-/** Number of entries stored in this dictionary. */
-@property(nonatomic, readonly) NSUInteger count;
-
-/**
- * @return A newly instanced and empty dictionary.
- **/
-+ (instancetype)dictionary;
-
-/**
- * Creates and initializes a dictionary with the single entry given.
- *
- * @param value The value to be placed in the dictionary.
- * @param key The key under which to store the value.
- *
- * @return A newly instanced dictionary with the key and value in it.
- **/
-+ (instancetype)dictionaryWithInt64:(int64_t)value
- forKey:(uint32_t)key;
-
-/**
- * Creates and initializes a dictionary with the entries given.
- *
- * @param values The values to be placed in the dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of entries to store in the dictionary.
- *
- * @return A newly instanced dictionary with the keys and values in it.
- **/
-+ (instancetype)dictionaryWithInt64s:(const int64_t [__nullable])values
- forKeys:(const uint32_t [__nullable])keys
- count:(NSUInteger)count;
-
-/**
- * Creates and initializes a dictionary with the entries from the given.
- * dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to the dictionary.
- *
- * @return A newly instanced dictionary with the entries from the given
- * dictionary in it.
- **/
-+ (instancetype)dictionaryWithDictionary:(GPBUInt32Int64Dictionary *)dictionary;
-
-/**
- * Creates and initializes a dictionary with the given capacity.
- *
- * @param numItems Capacity needed for the dictionary.
- *
- * @return A newly instanced dictionary with the given capacity.
- **/
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems;
-
-/**
- * Initializes this dictionary, copying the given values and keys.
- *
- * @param values The values to be placed in this dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of elements to copy into the dictionary.
- *
- * @return A newly initialized dictionary with a copy of the values and keys.
- **/
-- (instancetype)initWithInt64s:(const int64_t [__nullable])values
- forKeys:(const uint32_t [__nullable])keys
- count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
-
-/**
- * Initializes this dictionary, copying the entries from the given dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to this dictionary.
- *
- * @return A newly initialized dictionary with the entries of the given dictionary.
- **/
-- (instancetype)initWithDictionary:(GPBUInt32Int64Dictionary *)dictionary;
-
-/**
- * Initializes this dictionary with the requested capacity.
- *
- * @param numItems Number of items needed for this dictionary.
- *
- * @return A newly initialized dictionary with the requested capacity.
- **/
-- (instancetype)initWithCapacity:(NSUInteger)numItems;
-
-/**
- * Gets the value for the given key.
- *
- * @param value Pointer into which the value will be set, if found.
- * @param key Key under which the value is stored, if present.
- *
- * @return YES if the key was found and the value was copied, NO otherwise.
- **/
-- (BOOL)getInt64:(nullable int64_t *)value forKey:(uint32_t)key;
-
-/**
- * Enumerates the keys and values on this dictionary with the given block.
- *
- * @param block The block to enumerate with.
- * **key**: The key for the current entry.
- * **value**: The value for the current entry
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateKeysAndInt64sUsingBlock:
- (void (^)(uint32_t key, int64_t value, BOOL *stop))block;
-
-/**
- * Adds the keys and values from another dictionary.
- *
- * @param otherDictionary Dictionary containing entries to be added to this
- * dictionary.
- **/
-- (void)addEntriesFromDictionary:(GPBUInt32Int64Dictionary *)otherDictionary;
-
-/**
- * Sets the value for the given key.
- *
- * @param value The value to set.
- * @param key The key under which to store the value.
- **/
-- (void)setInt64:(int64_t)value forKey:(uint32_t)key;
-
-/**
- * Removes the entry for the given key.
- *
- * @param aKey Key to be removed from this dictionary.
- **/
-- (void)removeInt64ForKey:(uint32_t)aKey;
-
-/**
- * Removes all entries in this dictionary.
- **/
-- (void)removeAll;
-
-@end
-
-#pragma mark - UInt32 -> Bool
-
-/**
- * Class used for map fields of <uint32_t, BOOL>
- * values. This performs better than boxing into NSNumbers in NSDictionaries.
- *
- * @note This class is not meant to be subclassed.
- **/
-@interface GPBUInt32BoolDictionary : NSObject <NSCopying>
-
-/** Number of entries stored in this dictionary. */
-@property(nonatomic, readonly) NSUInteger count;
-
-/**
- * @return A newly instanced and empty dictionary.
- **/
-+ (instancetype)dictionary;
-
-/**
- * Creates and initializes a dictionary with the single entry given.
- *
- * @param value The value to be placed in the dictionary.
- * @param key The key under which to store the value.
- *
- * @return A newly instanced dictionary with the key and value in it.
- **/
-+ (instancetype)dictionaryWithBool:(BOOL)value
- forKey:(uint32_t)key;
-
-/**
- * Creates and initializes a dictionary with the entries given.
- *
- * @param values The values to be placed in the dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of entries to store in the dictionary.
- *
- * @return A newly instanced dictionary with the keys and values in it.
- **/
-+ (instancetype)dictionaryWithBools:(const BOOL [__nullable])values
- forKeys:(const uint32_t [__nullable])keys
- count:(NSUInteger)count;
-
-/**
- * Creates and initializes a dictionary with the entries from the given.
- * dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to the dictionary.
- *
- * @return A newly instanced dictionary with the entries from the given
- * dictionary in it.
- **/
-+ (instancetype)dictionaryWithDictionary:(GPBUInt32BoolDictionary *)dictionary;
-
-/**
- * Creates and initializes a dictionary with the given capacity.
- *
- * @param numItems Capacity needed for the dictionary.
- *
- * @return A newly instanced dictionary with the given capacity.
- **/
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems;
-
-/**
- * Initializes this dictionary, copying the given values and keys.
- *
- * @param values The values to be placed in this dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of elements to copy into the dictionary.
- *
- * @return A newly initialized dictionary with a copy of the values and keys.
- **/
-- (instancetype)initWithBools:(const BOOL [__nullable])values
- forKeys:(const uint32_t [__nullable])keys
- count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
-
-/**
- * Initializes this dictionary, copying the entries from the given dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to this dictionary.
- *
- * @return A newly initialized dictionary with the entries of the given dictionary.
- **/
-- (instancetype)initWithDictionary:(GPBUInt32BoolDictionary *)dictionary;
-
-/**
- * Initializes this dictionary with the requested capacity.
- *
- * @param numItems Number of items needed for this dictionary.
- *
- * @return A newly initialized dictionary with the requested capacity.
- **/
-- (instancetype)initWithCapacity:(NSUInteger)numItems;
-
-/**
- * Gets the value for the given key.
- *
- * @param value Pointer into which the value will be set, if found.
- * @param key Key under which the value is stored, if present.
- *
- * @return YES if the key was found and the value was copied, NO otherwise.
- **/
-- (BOOL)getBool:(nullable BOOL *)value forKey:(uint32_t)key;
-
-/**
- * Enumerates the keys and values on this dictionary with the given block.
- *
- * @param block The block to enumerate with.
- * **key**: The key for the current entry.
- * **value**: The value for the current entry
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateKeysAndBoolsUsingBlock:
- (void (^)(uint32_t key, BOOL value, BOOL *stop))block;
-
-/**
- * Adds the keys and values from another dictionary.
- *
- * @param otherDictionary Dictionary containing entries to be added to this
- * dictionary.
- **/
-- (void)addEntriesFromDictionary:(GPBUInt32BoolDictionary *)otherDictionary;
-
-/**
- * Sets the value for the given key.
- *
- * @param value The value to set.
- * @param key The key under which to store the value.
- **/
-- (void)setBool:(BOOL)value forKey:(uint32_t)key;
-
-/**
- * Removes the entry for the given key.
- *
- * @param aKey Key to be removed from this dictionary.
- **/
-- (void)removeBoolForKey:(uint32_t)aKey;
-
-/**
- * Removes all entries in this dictionary.
- **/
-- (void)removeAll;
-
-@end
-
-#pragma mark - UInt32 -> Float
-
-/**
- * Class used for map fields of <uint32_t, float>
- * values. This performs better than boxing into NSNumbers in NSDictionaries.
- *
- * @note This class is not meant to be subclassed.
- **/
-@interface GPBUInt32FloatDictionary : NSObject <NSCopying>
-
-/** Number of entries stored in this dictionary. */
-@property(nonatomic, readonly) NSUInteger count;
-
-/**
- * @return A newly instanced and empty dictionary.
- **/
-+ (instancetype)dictionary;
-
-/**
- * Creates and initializes a dictionary with the single entry given.
- *
- * @param value The value to be placed in the dictionary.
- * @param key The key under which to store the value.
- *
- * @return A newly instanced dictionary with the key and value in it.
- **/
-+ (instancetype)dictionaryWithFloat:(float)value
- forKey:(uint32_t)key;
-
-/**
- * Creates and initializes a dictionary with the entries given.
- *
- * @param values The values to be placed in the dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of entries to store in the dictionary.
- *
- * @return A newly instanced dictionary with the keys and values in it.
- **/
-+ (instancetype)dictionaryWithFloats:(const float [__nullable])values
- forKeys:(const uint32_t [__nullable])keys
- count:(NSUInteger)count;
-
-/**
- * Creates and initializes a dictionary with the entries from the given.
- * dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to the dictionary.
- *
- * @return A newly instanced dictionary with the entries from the given
- * dictionary in it.
- **/
-+ (instancetype)dictionaryWithDictionary:(GPBUInt32FloatDictionary *)dictionary;
-
-/**
- * Creates and initializes a dictionary with the given capacity.
- *
- * @param numItems Capacity needed for the dictionary.
- *
- * @return A newly instanced dictionary with the given capacity.
- **/
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems;
-
-/**
- * Initializes this dictionary, copying the given values and keys.
- *
- * @param values The values to be placed in this dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of elements to copy into the dictionary.
- *
- * @return A newly initialized dictionary with a copy of the values and keys.
- **/
-- (instancetype)initWithFloats:(const float [__nullable])values
- forKeys:(const uint32_t [__nullable])keys
- count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
-
-/**
- * Initializes this dictionary, copying the entries from the given dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to this dictionary.
- *
- * @return A newly initialized dictionary with the entries of the given dictionary.
- **/
-- (instancetype)initWithDictionary:(GPBUInt32FloatDictionary *)dictionary;
-
-/**
- * Initializes this dictionary with the requested capacity.
- *
- * @param numItems Number of items needed for this dictionary.
- *
- * @return A newly initialized dictionary with the requested capacity.
- **/
-- (instancetype)initWithCapacity:(NSUInteger)numItems;
-
-/**
- * Gets the value for the given key.
- *
- * @param value Pointer into which the value will be set, if found.
- * @param key Key under which the value is stored, if present.
- *
- * @return YES if the key was found and the value was copied, NO otherwise.
- **/
-- (BOOL)getFloat:(nullable float *)value forKey:(uint32_t)key;
-
-/**
- * Enumerates the keys and values on this dictionary with the given block.
- *
- * @param block The block to enumerate with.
- * **key**: The key for the current entry.
- * **value**: The value for the current entry
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateKeysAndFloatsUsingBlock:
- (void (^)(uint32_t key, float value, BOOL *stop))block;
-
-/**
- * Adds the keys and values from another dictionary.
- *
- * @param otherDictionary Dictionary containing entries to be added to this
- * dictionary.
- **/
-- (void)addEntriesFromDictionary:(GPBUInt32FloatDictionary *)otherDictionary;
-
-/**
- * Sets the value for the given key.
- *
- * @param value The value to set.
- * @param key The key under which to store the value.
- **/
-- (void)setFloat:(float)value forKey:(uint32_t)key;
-
-/**
- * Removes the entry for the given key.
- *
- * @param aKey Key to be removed from this dictionary.
- **/
-- (void)removeFloatForKey:(uint32_t)aKey;
-
-/**
- * Removes all entries in this dictionary.
- **/
-- (void)removeAll;
-
-@end
-
-#pragma mark - UInt32 -> Double
-
-/**
- * Class used for map fields of <uint32_t, double>
- * values. This performs better than boxing into NSNumbers in NSDictionaries.
- *
- * @note This class is not meant to be subclassed.
- **/
-@interface GPBUInt32DoubleDictionary : NSObject <NSCopying>
-
-/** Number of entries stored in this dictionary. */
-@property(nonatomic, readonly) NSUInteger count;
-
-/**
- * @return A newly instanced and empty dictionary.
- **/
-+ (instancetype)dictionary;
-
-/**
- * Creates and initializes a dictionary with the single entry given.
- *
- * @param value The value to be placed in the dictionary.
- * @param key The key under which to store the value.
- *
- * @return A newly instanced dictionary with the key and value in it.
- **/
-+ (instancetype)dictionaryWithDouble:(double)value
- forKey:(uint32_t)key;
-
-/**
- * Creates and initializes a dictionary with the entries given.
- *
- * @param values The values to be placed in the dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of entries to store in the dictionary.
- *
- * @return A newly instanced dictionary with the keys and values in it.
- **/
-+ (instancetype)dictionaryWithDoubles:(const double [__nullable])values
- forKeys:(const uint32_t [__nullable])keys
- count:(NSUInteger)count;
-
-/**
- * Creates and initializes a dictionary with the entries from the given.
- * dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to the dictionary.
- *
- * @return A newly instanced dictionary with the entries from the given
- * dictionary in it.
- **/
-+ (instancetype)dictionaryWithDictionary:(GPBUInt32DoubleDictionary *)dictionary;
-
-/**
- * Creates and initializes a dictionary with the given capacity.
- *
- * @param numItems Capacity needed for the dictionary.
- *
- * @return A newly instanced dictionary with the given capacity.
- **/
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems;
-
-/**
- * Initializes this dictionary, copying the given values and keys.
- *
- * @param values The values to be placed in this dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of elements to copy into the dictionary.
- *
- * @return A newly initialized dictionary with a copy of the values and keys.
- **/
-- (instancetype)initWithDoubles:(const double [__nullable])values
- forKeys:(const uint32_t [__nullable])keys
- count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
-
-/**
- * Initializes this dictionary, copying the entries from the given dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to this dictionary.
- *
- * @return A newly initialized dictionary with the entries of the given dictionary.
- **/
-- (instancetype)initWithDictionary:(GPBUInt32DoubleDictionary *)dictionary;
-
-/**
- * Initializes this dictionary with the requested capacity.
- *
- * @param numItems Number of items needed for this dictionary.
- *
- * @return A newly initialized dictionary with the requested capacity.
- **/
-- (instancetype)initWithCapacity:(NSUInteger)numItems;
-
-/**
- * Gets the value for the given key.
- *
- * @param value Pointer into which the value will be set, if found.
- * @param key Key under which the value is stored, if present.
- *
- * @return YES if the key was found and the value was copied, NO otherwise.
- **/
-- (BOOL)getDouble:(nullable double *)value forKey:(uint32_t)key;
-
-/**
- * Enumerates the keys and values on this dictionary with the given block.
- *
- * @param block The block to enumerate with.
- * **key**: The key for the current entry.
- * **value**: The value for the current entry
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateKeysAndDoublesUsingBlock:
- (void (^)(uint32_t key, double value, BOOL *stop))block;
-
-/**
- * Adds the keys and values from another dictionary.
- *
- * @param otherDictionary Dictionary containing entries to be added to this
- * dictionary.
- **/
-- (void)addEntriesFromDictionary:(GPBUInt32DoubleDictionary *)otherDictionary;
-
-/**
- * Sets the value for the given key.
- *
- * @param value The value to set.
- * @param key The key under which to store the value.
- **/
-- (void)setDouble:(double)value forKey:(uint32_t)key;
-
-/**
- * Removes the entry for the given key.
- *
- * @param aKey Key to be removed from this dictionary.
- **/
-- (void)removeDoubleForKey:(uint32_t)aKey;
-
-/**
- * Removes all entries in this dictionary.
- **/
-- (void)removeAll;
-
-@end
-
-#pragma mark - UInt32 -> Enum
-
-/**
- * Class used for map fields of <uint32_t, int32_t>
- * values. This performs better than boxing into NSNumbers in NSDictionaries.
- *
- * @note This class is not meant to be subclassed.
- **/
-@interface GPBUInt32EnumDictionary : NSObject <NSCopying>
-
-/** Number of entries stored in this dictionary. */
-@property(nonatomic, readonly) NSUInteger count;
-/** The validation function to check if the enums are valid. */
-@property(nonatomic, readonly) GPBEnumValidationFunc validationFunc;
-
-/**
- * @return A newly instanced and empty dictionary.
- **/
-+ (instancetype)dictionary;
-
-/**
- * Creates and initializes a dictionary with the given validation function.
- *
- * @param func The enum validation function for the dictionary.
- *
- * @return A newly instanced dictionary.
- **/
-+ (instancetype)dictionaryWithValidationFunction:(nullable GPBEnumValidationFunc)func;
-
-/**
- * Creates and initializes a dictionary with the single entry given.
- *
- * @param func The enum validation function for the dictionary.
- * @param rawValue The raw enum value to be placed in the dictionary.
- * @param key The key under which to store the value.
- *
- * @return A newly instanced dictionary with the key and value in it.
- **/
-+ (instancetype)dictionaryWithValidationFunction:(nullable GPBEnumValidationFunc)func
- rawValue:(int32_t)rawValue
- forKey:(uint32_t)key;
-
-/**
- * Creates and initializes a dictionary with the entries given.
- *
- * @param func The enum validation function for the dictionary.
- * @param values The raw enum values values to be placed in the dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of entries to store in the dictionary.
- *
- * @return A newly instanced dictionary with the keys and values in it.
- **/
-+ (instancetype)dictionaryWithValidationFunction:(nullable GPBEnumValidationFunc)func
- rawValues:(const int32_t [__nullable])values
- forKeys:(const uint32_t [__nullable])keys
- count:(NSUInteger)count;
-
-/**
- * Creates and initializes a dictionary with the entries from the given.
- * dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to the dictionary.
- *
- * @return A newly instanced dictionary with the entries from the given
- * dictionary in it.
- **/
-+ (instancetype)dictionaryWithDictionary:(GPBUInt32EnumDictionary *)dictionary;
-
-/**
- * Creates and initializes a dictionary with the given capacity.
- *
- * @param func The enum validation function for the dictionary.
- * @param numItems Capacity needed for the dictionary.
- *
- * @return A newly instanced dictionary with the given capacity.
- **/
-+ (instancetype)dictionaryWithValidationFunction:(nullable GPBEnumValidationFunc)func
- capacity:(NSUInteger)numItems;
-
-/**
- * Initializes a dictionary with the given validation function.
- *
- * @param func The enum validation function for the dictionary.
- *
- * @return A newly initialized dictionary.
- **/
-- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func;
-
-/**
- * Initializes a dictionary with the entries given.
- *
- * @param func The enum validation function for the dictionary.
- * @param values The raw enum values values to be placed in the dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of entries to store in the dictionary.
- *
- * @return A newly initialized dictionary with the keys and values in it.
- **/
-- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func
- rawValues:(const int32_t [__nullable])values
- forKeys:(const uint32_t [__nullable])keys
- count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
-
-/**
- * Initializes a dictionary with the entries from the given.
- * dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to the dictionary.
- *
- * @return A newly initialized dictionary with the entries from the given
- * dictionary in it.
- **/
-- (instancetype)initWithDictionary:(GPBUInt32EnumDictionary *)dictionary;
-
-/**
- * Initializes a dictionary with the given capacity.
- *
- * @param func The enum validation function for the dictionary.
- * @param numItems Capacity needed for the dictionary.
- *
- * @return A newly initialized dictionary with the given capacity.
- **/
-- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func
- capacity:(NSUInteger)numItems;
-
-// These will return kGPBUnrecognizedEnumeratorValue if the value for the key
-// is not a valid enumerator as defined by validationFunc. If the actual value is
-// desired, use "raw" version of the method.
-
-/**
- * Gets the value for the given key.
- *
- * @param value Pointer into which the value will be set, if found.
- * @param key Key under which the value is stored, if present.
- *
- * @return YES if the key was found and the value was copied, NO otherwise.
- **/
-- (BOOL)getEnum:(nullable int32_t *)value forKey:(uint32_t)key;
-
-/**
- * Enumerates the keys and values on this dictionary with the given block.
- *
- * @param block The block to enumerate with.
- * **key**: The key for the current entry.
- * **value**: The value for the current entry
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateKeysAndEnumsUsingBlock:
- (void (^)(uint32_t key, int32_t value, BOOL *stop))block;
-
-/**
- * Gets the raw enum value for the given key.
- *
- * @note This method bypass the validationFunc to enable the access of values that
- * were not known at the time the binary was compiled.
- *
- * @param rawValue Pointer into which the value will be set, if found.
- * @param key Key under which the value is stored, if present.
- *
- * @return YES if the key was found and the value was copied, NO otherwise.
- **/
-- (BOOL)getRawValue:(nullable int32_t *)rawValue forKey:(uint32_t)key;
-
-/**
- * Enumerates the keys and values on this dictionary with the given block.
- *
- * @note This method bypass the validationFunc to enable the access of values that
- * were not known at the time the binary was compiled.
- *
- * @param block The block to enumerate with.
- * **key**: The key for the current entry.
- * **rawValue**: The value for the current entry
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateKeysAndRawValuesUsingBlock:
- (void (^)(uint32_t key, int32_t rawValue, BOOL *stop))block;
-
-/**
- * Adds the keys and raw enum values from another dictionary.
- *
- * @note This method bypass the validationFunc to enable the setting of values that
- * were not known at the time the binary was compiled.
- *
- * @param otherDictionary Dictionary containing entries to be added to this
- * dictionary.
- **/
-- (void)addRawEntriesFromDictionary:(GPBUInt32EnumDictionary *)otherDictionary;
-
-// If value is not a valid enumerator as defined by validationFunc, these
-// methods will assert in debug, and will log in release and assign the value
-// to the default value. Use the rawValue methods below to assign non enumerator
-// values.
-
-/**
- * Sets the value for the given key.
- *
- * @param value The value to set.
- * @param key The key under which to store the value.
- **/
-- (void)setEnum:(int32_t)value forKey:(uint32_t)key;
-
-/**
- * Sets the raw enum value for the given key.
- *
- * @note This method bypass the validationFunc to enable the setting of values that
- * were not known at the time the binary was compiled.
- *
- * @param rawValue The raw enum value to set.
- * @param key The key under which to store the raw enum value.
- **/
-- (void)setRawValue:(int32_t)rawValue forKey:(uint32_t)key;
-
-/**
- * Removes the entry for the given key.
- *
- * @param aKey Key to be removed from this dictionary.
- **/
-- (void)removeEnumForKey:(uint32_t)aKey;
-
-/**
- * Removes all entries in this dictionary.
- **/
-- (void)removeAll;
-
-@end
-
-#pragma mark - UInt32 -> Object
-
-/**
- * Class used for map fields of <uint32_t, ObjectType>
- * values. This performs better than boxing into NSNumbers in NSDictionaries.
- *
- * @note This class is not meant to be subclassed.
- **/
-@interface GPBUInt32ObjectDictionary<__covariant ObjectType> : NSObject <NSCopying>
-
-/** Number of entries stored in this dictionary. */
-@property(nonatomic, readonly) NSUInteger count;
-
-/**
- * @return A newly instanced and empty dictionary.
- **/
-+ (instancetype)dictionary;
-
-/**
- * Creates and initializes a dictionary with the single entry given.
- *
- * @param object The value to be placed in the dictionary.
- * @param key The key under which to store the value.
- *
- * @return A newly instanced dictionary with the key and value in it.
- **/
-+ (instancetype)dictionaryWithObject:(ObjectType)object
- forKey:(uint32_t)key;
-
-/**
- * Creates and initializes a dictionary with the entries given.
- *
- * @param objects The values to be placed in the dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of entries to store in the dictionary.
- *
- * @return A newly instanced dictionary with the keys and values in it.
- **/
-+ (instancetype)dictionaryWithObjects:(const ObjectType __nonnull GPB_UNSAFE_UNRETAINED [__nullable])objects
- forKeys:(const uint32_t [__nullable])keys
- count:(NSUInteger)count;
-
-/**
- * Creates and initializes a dictionary with the entries from the given.
- * dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to the dictionary.
- *
- * @return A newly instanced dictionary with the entries from the given
- * dictionary in it.
- **/
-+ (instancetype)dictionaryWithDictionary:(GPBUInt32ObjectDictionary *)dictionary;
-
-/**
- * Creates and initializes a dictionary with the given capacity.
- *
- * @param numItems Capacity needed for the dictionary.
- *
- * @return A newly instanced dictionary with the given capacity.
- **/
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems;
-
-/**
- * Initializes this dictionary, copying the given values and keys.
- *
- * @param objects The values to be placed in this dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of elements to copy into the dictionary.
- *
- * @return A newly initialized dictionary with a copy of the values and keys.
- **/
-- (instancetype)initWithObjects:(const ObjectType __nonnull GPB_UNSAFE_UNRETAINED [__nullable])objects
- forKeys:(const uint32_t [__nullable])keys
- count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
-
-/**
- * Initializes this dictionary, copying the entries from the given dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to this dictionary.
- *
- * @return A newly initialized dictionary with the entries of the given dictionary.
- **/
-- (instancetype)initWithDictionary:(GPBUInt32ObjectDictionary *)dictionary;
-
-/**
- * Initializes this dictionary with the requested capacity.
- *
- * @param numItems Number of items needed for this dictionary.
- *
- * @return A newly initialized dictionary with the requested capacity.
- **/
-- (instancetype)initWithCapacity:(NSUInteger)numItems;
-
-/**
- * Fetches the object stored under the given key.
- *
- * @param key Key under which the value is stored, if present.
- *
- * @return The object if found, nil otherwise.
- **/
-- (ObjectType)objectForKey:(uint32_t)key;
-
-/**
- * Enumerates the keys and values on this dictionary with the given block.
- *
- * @param block The block to enumerate with.
- * **key**: The key for the current entry.
- * **object**: The value for the current entry
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateKeysAndObjectsUsingBlock:
- (void (^)(uint32_t key, ObjectType object, BOOL *stop))block;
-
-/**
- * Adds the keys and values from another dictionary.
- *
- * @param otherDictionary Dictionary containing entries to be added to this
- * dictionary.
- **/
-- (void)addEntriesFromDictionary:(GPBUInt32ObjectDictionary *)otherDictionary;
-
-/**
- * Sets the value for the given key.
- *
- * @param object The value to set.
- * @param key The key under which to store the value.
- **/
-- (void)setObject:(ObjectType)object forKey:(uint32_t)key;
-
-/**
- * Removes the entry for the given key.
- *
- * @param aKey Key to be removed from this dictionary.
- **/
-- (void)removeObjectForKey:(uint32_t)aKey;
-
-/**
- * Removes all entries in this dictionary.
- **/
-- (void)removeAll;
-
-@end
-
-#pragma mark - Int32 -> UInt32
-
-/**
- * Class used for map fields of <int32_t, uint32_t>
- * values. This performs better than boxing into NSNumbers in NSDictionaries.
- *
- * @note This class is not meant to be subclassed.
- **/
-@interface GPBInt32UInt32Dictionary : NSObject <NSCopying>
-
-/** Number of entries stored in this dictionary. */
-@property(nonatomic, readonly) NSUInteger count;
-
-/**
- * @return A newly instanced and empty dictionary.
- **/
-+ (instancetype)dictionary;
-
-/**
- * Creates and initializes a dictionary with the single entry given.
- *
- * @param value The value to be placed in the dictionary.
- * @param key The key under which to store the value.
- *
- * @return A newly instanced dictionary with the key and value in it.
- **/
-+ (instancetype)dictionaryWithUInt32:(uint32_t)value
- forKey:(int32_t)key;
-
-/**
- * Creates and initializes a dictionary with the entries given.
- *
- * @param values The values to be placed in the dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of entries to store in the dictionary.
- *
- * @return A newly instanced dictionary with the keys and values in it.
- **/
-+ (instancetype)dictionaryWithUInt32s:(const uint32_t [__nullable])values
- forKeys:(const int32_t [__nullable])keys
- count:(NSUInteger)count;
-
-/**
- * Creates and initializes a dictionary with the entries from the given.
- * dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to the dictionary.
- *
- * @return A newly instanced dictionary with the entries from the given
- * dictionary in it.
- **/
-+ (instancetype)dictionaryWithDictionary:(GPBInt32UInt32Dictionary *)dictionary;
-
-/**
- * Creates and initializes a dictionary with the given capacity.
- *
- * @param numItems Capacity needed for the dictionary.
- *
- * @return A newly instanced dictionary with the given capacity.
- **/
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems;
-
-/**
- * Initializes this dictionary, copying the given values and keys.
- *
- * @param values The values to be placed in this dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of elements to copy into the dictionary.
- *
- * @return A newly initialized dictionary with a copy of the values and keys.
- **/
-- (instancetype)initWithUInt32s:(const uint32_t [__nullable])values
- forKeys:(const int32_t [__nullable])keys
- count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
-
-/**
- * Initializes this dictionary, copying the entries from the given dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to this dictionary.
- *
- * @return A newly initialized dictionary with the entries of the given dictionary.
- **/
-- (instancetype)initWithDictionary:(GPBInt32UInt32Dictionary *)dictionary;
-
-/**
- * Initializes this dictionary with the requested capacity.
- *
- * @param numItems Number of items needed for this dictionary.
- *
- * @return A newly initialized dictionary with the requested capacity.
- **/
-- (instancetype)initWithCapacity:(NSUInteger)numItems;
-
-/**
- * Gets the value for the given key.
- *
- * @param value Pointer into which the value will be set, if found.
- * @param key Key under which the value is stored, if present.
- *
- * @return YES if the key was found and the value was copied, NO otherwise.
- **/
-- (BOOL)getUInt32:(nullable uint32_t *)value forKey:(int32_t)key;
-
-/**
- * Enumerates the keys and values on this dictionary with the given block.
- *
- * @param block The block to enumerate with.
- * **key**: The key for the current entry.
- * **value**: The value for the current entry
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateKeysAndUInt32sUsingBlock:
- (void (^)(int32_t key, uint32_t value, BOOL *stop))block;
-
-/**
- * Adds the keys and values from another dictionary.
- *
- * @param otherDictionary Dictionary containing entries to be added to this
- * dictionary.
- **/
-- (void)addEntriesFromDictionary:(GPBInt32UInt32Dictionary *)otherDictionary;
-
-/**
- * Sets the value for the given key.
- *
- * @param value The value to set.
- * @param key The key under which to store the value.
- **/
-- (void)setUInt32:(uint32_t)value forKey:(int32_t)key;
-
-/**
- * Removes the entry for the given key.
- *
- * @param aKey Key to be removed from this dictionary.
- **/
-- (void)removeUInt32ForKey:(int32_t)aKey;
-
-/**
- * Removes all entries in this dictionary.
- **/
-- (void)removeAll;
-
-@end
-
-#pragma mark - Int32 -> Int32
-
-/**
- * Class used for map fields of <int32_t, int32_t>
- * values. This performs better than boxing into NSNumbers in NSDictionaries.
- *
- * @note This class is not meant to be subclassed.
- **/
-@interface GPBInt32Int32Dictionary : NSObject <NSCopying>
-
-/** Number of entries stored in this dictionary. */
-@property(nonatomic, readonly) NSUInteger count;
-
-/**
- * @return A newly instanced and empty dictionary.
- **/
-+ (instancetype)dictionary;
-
-/**
- * Creates and initializes a dictionary with the single entry given.
- *
- * @param value The value to be placed in the dictionary.
- * @param key The key under which to store the value.
- *
- * @return A newly instanced dictionary with the key and value in it.
- **/
-+ (instancetype)dictionaryWithInt32:(int32_t)value
- forKey:(int32_t)key;
-
-/**
- * Creates and initializes a dictionary with the entries given.
- *
- * @param values The values to be placed in the dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of entries to store in the dictionary.
- *
- * @return A newly instanced dictionary with the keys and values in it.
- **/
-+ (instancetype)dictionaryWithInt32s:(const int32_t [__nullable])values
- forKeys:(const int32_t [__nullable])keys
- count:(NSUInteger)count;
-
-/**
- * Creates and initializes a dictionary with the entries from the given.
- * dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to the dictionary.
- *
- * @return A newly instanced dictionary with the entries from the given
- * dictionary in it.
- **/
-+ (instancetype)dictionaryWithDictionary:(GPBInt32Int32Dictionary *)dictionary;
-
-/**
- * Creates and initializes a dictionary with the given capacity.
- *
- * @param numItems Capacity needed for the dictionary.
- *
- * @return A newly instanced dictionary with the given capacity.
- **/
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems;
-
-/**
- * Initializes this dictionary, copying the given values and keys.
- *
- * @param values The values to be placed in this dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of elements to copy into the dictionary.
- *
- * @return A newly initialized dictionary with a copy of the values and keys.
- **/
-- (instancetype)initWithInt32s:(const int32_t [__nullable])values
- forKeys:(const int32_t [__nullable])keys
- count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
-
-/**
- * Initializes this dictionary, copying the entries from the given dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to this dictionary.
- *
- * @return A newly initialized dictionary with the entries of the given dictionary.
- **/
-- (instancetype)initWithDictionary:(GPBInt32Int32Dictionary *)dictionary;
-
-/**
- * Initializes this dictionary with the requested capacity.
- *
- * @param numItems Number of items needed for this dictionary.
- *
- * @return A newly initialized dictionary with the requested capacity.
- **/
-- (instancetype)initWithCapacity:(NSUInteger)numItems;
-
-/**
- * Gets the value for the given key.
- *
- * @param value Pointer into which the value will be set, if found.
- * @param key Key under which the value is stored, if present.
- *
- * @return YES if the key was found and the value was copied, NO otherwise.
- **/
-- (BOOL)getInt32:(nullable int32_t *)value forKey:(int32_t)key;
-
-/**
- * Enumerates the keys and values on this dictionary with the given block.
- *
- * @param block The block to enumerate with.
- * **key**: The key for the current entry.
- * **value**: The value for the current entry
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateKeysAndInt32sUsingBlock:
- (void (^)(int32_t key, int32_t value, BOOL *stop))block;
-
-/**
- * Adds the keys and values from another dictionary.
- *
- * @param otherDictionary Dictionary containing entries to be added to this
- * dictionary.
- **/
-- (void)addEntriesFromDictionary:(GPBInt32Int32Dictionary *)otherDictionary;
-
-/**
- * Sets the value for the given key.
- *
- * @param value The value to set.
- * @param key The key under which to store the value.
- **/
-- (void)setInt32:(int32_t)value forKey:(int32_t)key;
-
-/**
- * Removes the entry for the given key.
- *
- * @param aKey Key to be removed from this dictionary.
- **/
-- (void)removeInt32ForKey:(int32_t)aKey;
-
-/**
- * Removes all entries in this dictionary.
- **/
-- (void)removeAll;
-
-@end
-
-#pragma mark - Int32 -> UInt64
-
-/**
- * Class used for map fields of <int32_t, uint64_t>
- * values. This performs better than boxing into NSNumbers in NSDictionaries.
- *
- * @note This class is not meant to be subclassed.
- **/
-@interface GPBInt32UInt64Dictionary : NSObject <NSCopying>
-
-/** Number of entries stored in this dictionary. */
-@property(nonatomic, readonly) NSUInteger count;
-
-/**
- * @return A newly instanced and empty dictionary.
- **/
-+ (instancetype)dictionary;
-
-/**
- * Creates and initializes a dictionary with the single entry given.
- *
- * @param value The value to be placed in the dictionary.
- * @param key The key under which to store the value.
- *
- * @return A newly instanced dictionary with the key and value in it.
- **/
-+ (instancetype)dictionaryWithUInt64:(uint64_t)value
- forKey:(int32_t)key;
-
-/**
- * Creates and initializes a dictionary with the entries given.
- *
- * @param values The values to be placed in the dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of entries to store in the dictionary.
- *
- * @return A newly instanced dictionary with the keys and values in it.
- **/
-+ (instancetype)dictionaryWithUInt64s:(const uint64_t [__nullable])values
- forKeys:(const int32_t [__nullable])keys
- count:(NSUInteger)count;
-
-/**
- * Creates and initializes a dictionary with the entries from the given.
- * dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to the dictionary.
- *
- * @return A newly instanced dictionary with the entries from the given
- * dictionary in it.
- **/
-+ (instancetype)dictionaryWithDictionary:(GPBInt32UInt64Dictionary *)dictionary;
-
-/**
- * Creates and initializes a dictionary with the given capacity.
- *
- * @param numItems Capacity needed for the dictionary.
- *
- * @return A newly instanced dictionary with the given capacity.
- **/
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems;
-
-/**
- * Initializes this dictionary, copying the given values and keys.
- *
- * @param values The values to be placed in this dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of elements to copy into the dictionary.
- *
- * @return A newly initialized dictionary with a copy of the values and keys.
- **/
-- (instancetype)initWithUInt64s:(const uint64_t [__nullable])values
- forKeys:(const int32_t [__nullable])keys
- count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
-
-/**
- * Initializes this dictionary, copying the entries from the given dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to this dictionary.
- *
- * @return A newly initialized dictionary with the entries of the given dictionary.
- **/
-- (instancetype)initWithDictionary:(GPBInt32UInt64Dictionary *)dictionary;
-
-/**
- * Initializes this dictionary with the requested capacity.
- *
- * @param numItems Number of items needed for this dictionary.
- *
- * @return A newly initialized dictionary with the requested capacity.
- **/
-- (instancetype)initWithCapacity:(NSUInteger)numItems;
-
-/**
- * Gets the value for the given key.
- *
- * @param value Pointer into which the value will be set, if found.
- * @param key Key under which the value is stored, if present.
- *
- * @return YES if the key was found and the value was copied, NO otherwise.
- **/
-- (BOOL)getUInt64:(nullable uint64_t *)value forKey:(int32_t)key;
-
-/**
- * Enumerates the keys and values on this dictionary with the given block.
- *
- * @param block The block to enumerate with.
- * **key**: The key for the current entry.
- * **value**: The value for the current entry
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateKeysAndUInt64sUsingBlock:
- (void (^)(int32_t key, uint64_t value, BOOL *stop))block;
-
-/**
- * Adds the keys and values from another dictionary.
- *
- * @param otherDictionary Dictionary containing entries to be added to this
- * dictionary.
- **/
-- (void)addEntriesFromDictionary:(GPBInt32UInt64Dictionary *)otherDictionary;
-
-/**
- * Sets the value for the given key.
- *
- * @param value The value to set.
- * @param key The key under which to store the value.
- **/
-- (void)setUInt64:(uint64_t)value forKey:(int32_t)key;
-
-/**
- * Removes the entry for the given key.
- *
- * @param aKey Key to be removed from this dictionary.
- **/
-- (void)removeUInt64ForKey:(int32_t)aKey;
-
-/**
- * Removes all entries in this dictionary.
- **/
-- (void)removeAll;
-
-@end
-
-#pragma mark - Int32 -> Int64
-
-/**
- * Class used for map fields of <int32_t, int64_t>
- * values. This performs better than boxing into NSNumbers in NSDictionaries.
- *
- * @note This class is not meant to be subclassed.
- **/
-@interface GPBInt32Int64Dictionary : NSObject <NSCopying>
-
-/** Number of entries stored in this dictionary. */
-@property(nonatomic, readonly) NSUInteger count;
-
-/**
- * @return A newly instanced and empty dictionary.
- **/
-+ (instancetype)dictionary;
-
-/**
- * Creates and initializes a dictionary with the single entry given.
- *
- * @param value The value to be placed in the dictionary.
- * @param key The key under which to store the value.
- *
- * @return A newly instanced dictionary with the key and value in it.
- **/
-+ (instancetype)dictionaryWithInt64:(int64_t)value
- forKey:(int32_t)key;
-
-/**
- * Creates and initializes a dictionary with the entries given.
- *
- * @param values The values to be placed in the dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of entries to store in the dictionary.
- *
- * @return A newly instanced dictionary with the keys and values in it.
- **/
-+ (instancetype)dictionaryWithInt64s:(const int64_t [__nullable])values
- forKeys:(const int32_t [__nullable])keys
- count:(NSUInteger)count;
-
-/**
- * Creates and initializes a dictionary with the entries from the given.
- * dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to the dictionary.
- *
- * @return A newly instanced dictionary with the entries from the given
- * dictionary in it.
- **/
-+ (instancetype)dictionaryWithDictionary:(GPBInt32Int64Dictionary *)dictionary;
-
-/**
- * Creates and initializes a dictionary with the given capacity.
- *
- * @param numItems Capacity needed for the dictionary.
- *
- * @return A newly instanced dictionary with the given capacity.
- **/
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems;
-
-/**
- * Initializes this dictionary, copying the given values and keys.
- *
- * @param values The values to be placed in this dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of elements to copy into the dictionary.
- *
- * @return A newly initialized dictionary with a copy of the values and keys.
- **/
-- (instancetype)initWithInt64s:(const int64_t [__nullable])values
- forKeys:(const int32_t [__nullable])keys
- count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
-
-/**
- * Initializes this dictionary, copying the entries from the given dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to this dictionary.
- *
- * @return A newly initialized dictionary with the entries of the given dictionary.
- **/
-- (instancetype)initWithDictionary:(GPBInt32Int64Dictionary *)dictionary;
-
-/**
- * Initializes this dictionary with the requested capacity.
- *
- * @param numItems Number of items needed for this dictionary.
- *
- * @return A newly initialized dictionary with the requested capacity.
- **/
-- (instancetype)initWithCapacity:(NSUInteger)numItems;
-
-/**
- * Gets the value for the given key.
- *
- * @param value Pointer into which the value will be set, if found.
- * @param key Key under which the value is stored, if present.
- *
- * @return YES if the key was found and the value was copied, NO otherwise.
- **/
-- (BOOL)getInt64:(nullable int64_t *)value forKey:(int32_t)key;
-
-/**
- * Enumerates the keys and values on this dictionary with the given block.
- *
- * @param block The block to enumerate with.
- * **key**: The key for the current entry.
- * **value**: The value for the current entry
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateKeysAndInt64sUsingBlock:
- (void (^)(int32_t key, int64_t value, BOOL *stop))block;
-
-/**
- * Adds the keys and values from another dictionary.
- *
- * @param otherDictionary Dictionary containing entries to be added to this
- * dictionary.
- **/
-- (void)addEntriesFromDictionary:(GPBInt32Int64Dictionary *)otherDictionary;
-
-/**
- * Sets the value for the given key.
- *
- * @param value The value to set.
- * @param key The key under which to store the value.
- **/
-- (void)setInt64:(int64_t)value forKey:(int32_t)key;
-
-/**
- * Removes the entry for the given key.
- *
- * @param aKey Key to be removed from this dictionary.
- **/
-- (void)removeInt64ForKey:(int32_t)aKey;
-
-/**
- * Removes all entries in this dictionary.
- **/
-- (void)removeAll;
-
-@end
-
-#pragma mark - Int32 -> Bool
-
-/**
- * Class used for map fields of <int32_t, BOOL>
- * values. This performs better than boxing into NSNumbers in NSDictionaries.
- *
- * @note This class is not meant to be subclassed.
- **/
-@interface GPBInt32BoolDictionary : NSObject <NSCopying>
-
-/** Number of entries stored in this dictionary. */
-@property(nonatomic, readonly) NSUInteger count;
-
-/**
- * @return A newly instanced and empty dictionary.
- **/
-+ (instancetype)dictionary;
-
-/**
- * Creates and initializes a dictionary with the single entry given.
- *
- * @param value The value to be placed in the dictionary.
- * @param key The key under which to store the value.
- *
- * @return A newly instanced dictionary with the key and value in it.
- **/
-+ (instancetype)dictionaryWithBool:(BOOL)value
- forKey:(int32_t)key;
-
-/**
- * Creates and initializes a dictionary with the entries given.
- *
- * @param values The values to be placed in the dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of entries to store in the dictionary.
- *
- * @return A newly instanced dictionary with the keys and values in it.
- **/
-+ (instancetype)dictionaryWithBools:(const BOOL [__nullable])values
- forKeys:(const int32_t [__nullable])keys
- count:(NSUInteger)count;
-
-/**
- * Creates and initializes a dictionary with the entries from the given.
- * dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to the dictionary.
- *
- * @return A newly instanced dictionary with the entries from the given
- * dictionary in it.
- **/
-+ (instancetype)dictionaryWithDictionary:(GPBInt32BoolDictionary *)dictionary;
-
-/**
- * Creates and initializes a dictionary with the given capacity.
- *
- * @param numItems Capacity needed for the dictionary.
- *
- * @return A newly instanced dictionary with the given capacity.
- **/
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems;
-
-/**
- * Initializes this dictionary, copying the given values and keys.
- *
- * @param values The values to be placed in this dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of elements to copy into the dictionary.
- *
- * @return A newly initialized dictionary with a copy of the values and keys.
- **/
-- (instancetype)initWithBools:(const BOOL [__nullable])values
- forKeys:(const int32_t [__nullable])keys
- count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
-
-/**
- * Initializes this dictionary, copying the entries from the given dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to this dictionary.
- *
- * @return A newly initialized dictionary with the entries of the given dictionary.
- **/
-- (instancetype)initWithDictionary:(GPBInt32BoolDictionary *)dictionary;
-
-/**
- * Initializes this dictionary with the requested capacity.
- *
- * @param numItems Number of items needed for this dictionary.
- *
- * @return A newly initialized dictionary with the requested capacity.
- **/
-- (instancetype)initWithCapacity:(NSUInteger)numItems;
-
-/**
- * Gets the value for the given key.
- *
- * @param value Pointer into which the value will be set, if found.
- * @param key Key under which the value is stored, if present.
- *
- * @return YES if the key was found and the value was copied, NO otherwise.
- **/
-- (BOOL)getBool:(nullable BOOL *)value forKey:(int32_t)key;
-
-/**
- * Enumerates the keys and values on this dictionary with the given block.
- *
- * @param block The block to enumerate with.
- * **key**: The key for the current entry.
- * **value**: The value for the current entry
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateKeysAndBoolsUsingBlock:
- (void (^)(int32_t key, BOOL value, BOOL *stop))block;
-
-/**
- * Adds the keys and values from another dictionary.
- *
- * @param otherDictionary Dictionary containing entries to be added to this
- * dictionary.
- **/
-- (void)addEntriesFromDictionary:(GPBInt32BoolDictionary *)otherDictionary;
-
-/**
- * Sets the value for the given key.
- *
- * @param value The value to set.
- * @param key The key under which to store the value.
- **/
-- (void)setBool:(BOOL)value forKey:(int32_t)key;
-
-/**
- * Removes the entry for the given key.
- *
- * @param aKey Key to be removed from this dictionary.
- **/
-- (void)removeBoolForKey:(int32_t)aKey;
-
-/**
- * Removes all entries in this dictionary.
- **/
-- (void)removeAll;
-
-@end
-
-#pragma mark - Int32 -> Float
-
-/**
- * Class used for map fields of <int32_t, float>
- * values. This performs better than boxing into NSNumbers in NSDictionaries.
- *
- * @note This class is not meant to be subclassed.
- **/
-@interface GPBInt32FloatDictionary : NSObject <NSCopying>
-
-/** Number of entries stored in this dictionary. */
-@property(nonatomic, readonly) NSUInteger count;
-
-/**
- * @return A newly instanced and empty dictionary.
- **/
-+ (instancetype)dictionary;
-
-/**
- * Creates and initializes a dictionary with the single entry given.
- *
- * @param value The value to be placed in the dictionary.
- * @param key The key under which to store the value.
- *
- * @return A newly instanced dictionary with the key and value in it.
- **/
-+ (instancetype)dictionaryWithFloat:(float)value
- forKey:(int32_t)key;
-
-/**
- * Creates and initializes a dictionary with the entries given.
- *
- * @param values The values to be placed in the dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of entries to store in the dictionary.
- *
- * @return A newly instanced dictionary with the keys and values in it.
- **/
-+ (instancetype)dictionaryWithFloats:(const float [__nullable])values
- forKeys:(const int32_t [__nullable])keys
- count:(NSUInteger)count;
-
-/**
- * Creates and initializes a dictionary with the entries from the given.
- * dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to the dictionary.
- *
- * @return A newly instanced dictionary with the entries from the given
- * dictionary in it.
- **/
-+ (instancetype)dictionaryWithDictionary:(GPBInt32FloatDictionary *)dictionary;
-
-/**
- * Creates and initializes a dictionary with the given capacity.
- *
- * @param numItems Capacity needed for the dictionary.
- *
- * @return A newly instanced dictionary with the given capacity.
- **/
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems;
-
-/**
- * Initializes this dictionary, copying the given values and keys.
- *
- * @param values The values to be placed in this dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of elements to copy into the dictionary.
- *
- * @return A newly initialized dictionary with a copy of the values and keys.
- **/
-- (instancetype)initWithFloats:(const float [__nullable])values
- forKeys:(const int32_t [__nullable])keys
- count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
-
-/**
- * Initializes this dictionary, copying the entries from the given dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to this dictionary.
- *
- * @return A newly initialized dictionary with the entries of the given dictionary.
- **/
-- (instancetype)initWithDictionary:(GPBInt32FloatDictionary *)dictionary;
-
-/**
- * Initializes this dictionary with the requested capacity.
- *
- * @param numItems Number of items needed for this dictionary.
- *
- * @return A newly initialized dictionary with the requested capacity.
- **/
-- (instancetype)initWithCapacity:(NSUInteger)numItems;
-
-/**
- * Gets the value for the given key.
- *
- * @param value Pointer into which the value will be set, if found.
- * @param key Key under which the value is stored, if present.
- *
- * @return YES if the key was found and the value was copied, NO otherwise.
- **/
-- (BOOL)getFloat:(nullable float *)value forKey:(int32_t)key;
-
-/**
- * Enumerates the keys and values on this dictionary with the given block.
- *
- * @param block The block to enumerate with.
- * **key**: The key for the current entry.
- * **value**: The value for the current entry
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateKeysAndFloatsUsingBlock:
- (void (^)(int32_t key, float value, BOOL *stop))block;
-
-/**
- * Adds the keys and values from another dictionary.
- *
- * @param otherDictionary Dictionary containing entries to be added to this
- * dictionary.
- **/
-- (void)addEntriesFromDictionary:(GPBInt32FloatDictionary *)otherDictionary;
-
-/**
- * Sets the value for the given key.
- *
- * @param value The value to set.
- * @param key The key under which to store the value.
- **/
-- (void)setFloat:(float)value forKey:(int32_t)key;
-
-/**
- * Removes the entry for the given key.
- *
- * @param aKey Key to be removed from this dictionary.
- **/
-- (void)removeFloatForKey:(int32_t)aKey;
-
-/**
- * Removes all entries in this dictionary.
- **/
-- (void)removeAll;
-
-@end
-
-#pragma mark - Int32 -> Double
-
-/**
- * Class used for map fields of <int32_t, double>
- * values. This performs better than boxing into NSNumbers in NSDictionaries.
- *
- * @note This class is not meant to be subclassed.
- **/
-@interface GPBInt32DoubleDictionary : NSObject <NSCopying>
-
-/** Number of entries stored in this dictionary. */
-@property(nonatomic, readonly) NSUInteger count;
-
-/**
- * @return A newly instanced and empty dictionary.
- **/
-+ (instancetype)dictionary;
-
-/**
- * Creates and initializes a dictionary with the single entry given.
- *
- * @param value The value to be placed in the dictionary.
- * @param key The key under which to store the value.
- *
- * @return A newly instanced dictionary with the key and value in it.
- **/
-+ (instancetype)dictionaryWithDouble:(double)value
- forKey:(int32_t)key;
-
-/**
- * Creates and initializes a dictionary with the entries given.
- *
- * @param values The values to be placed in the dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of entries to store in the dictionary.
- *
- * @return A newly instanced dictionary with the keys and values in it.
- **/
-+ (instancetype)dictionaryWithDoubles:(const double [__nullable])values
- forKeys:(const int32_t [__nullable])keys
- count:(NSUInteger)count;
-
-/**
- * Creates and initializes a dictionary with the entries from the given.
- * dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to the dictionary.
- *
- * @return A newly instanced dictionary with the entries from the given
- * dictionary in it.
- **/
-+ (instancetype)dictionaryWithDictionary:(GPBInt32DoubleDictionary *)dictionary;
-
-/**
- * Creates and initializes a dictionary with the given capacity.
- *
- * @param numItems Capacity needed for the dictionary.
- *
- * @return A newly instanced dictionary with the given capacity.
- **/
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems;
-
-/**
- * Initializes this dictionary, copying the given values and keys.
- *
- * @param values The values to be placed in this dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of elements to copy into the dictionary.
- *
- * @return A newly initialized dictionary with a copy of the values and keys.
- **/
-- (instancetype)initWithDoubles:(const double [__nullable])values
- forKeys:(const int32_t [__nullable])keys
- count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
-
-/**
- * Initializes this dictionary, copying the entries from the given dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to this dictionary.
- *
- * @return A newly initialized dictionary with the entries of the given dictionary.
- **/
-- (instancetype)initWithDictionary:(GPBInt32DoubleDictionary *)dictionary;
-
-/**
- * Initializes this dictionary with the requested capacity.
- *
- * @param numItems Number of items needed for this dictionary.
- *
- * @return A newly initialized dictionary with the requested capacity.
- **/
-- (instancetype)initWithCapacity:(NSUInteger)numItems;
-
-/**
- * Gets the value for the given key.
- *
- * @param value Pointer into which the value will be set, if found.
- * @param key Key under which the value is stored, if present.
- *
- * @return YES if the key was found and the value was copied, NO otherwise.
- **/
-- (BOOL)getDouble:(nullable double *)value forKey:(int32_t)key;
-
-/**
- * Enumerates the keys and values on this dictionary with the given block.
- *
- * @param block The block to enumerate with.
- * **key**: The key for the current entry.
- * **value**: The value for the current entry
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateKeysAndDoublesUsingBlock:
- (void (^)(int32_t key, double value, BOOL *stop))block;
-
-/**
- * Adds the keys and values from another dictionary.
- *
- * @param otherDictionary Dictionary containing entries to be added to this
- * dictionary.
- **/
-- (void)addEntriesFromDictionary:(GPBInt32DoubleDictionary *)otherDictionary;
-
-/**
- * Sets the value for the given key.
- *
- * @param value The value to set.
- * @param key The key under which to store the value.
- **/
-- (void)setDouble:(double)value forKey:(int32_t)key;
-
-/**
- * Removes the entry for the given key.
- *
- * @param aKey Key to be removed from this dictionary.
- **/
-- (void)removeDoubleForKey:(int32_t)aKey;
-
-/**
- * Removes all entries in this dictionary.
- **/
-- (void)removeAll;
-
-@end
-
-#pragma mark - Int32 -> Enum
-
-/**
- * Class used for map fields of <int32_t, int32_t>
- * values. This performs better than boxing into NSNumbers in NSDictionaries.
- *
- * @note This class is not meant to be subclassed.
- **/
-@interface GPBInt32EnumDictionary : NSObject <NSCopying>
-
-/** Number of entries stored in this dictionary. */
-@property(nonatomic, readonly) NSUInteger count;
-/** The validation function to check if the enums are valid. */
-@property(nonatomic, readonly) GPBEnumValidationFunc validationFunc;
-
-/**
- * @return A newly instanced and empty dictionary.
- **/
-+ (instancetype)dictionary;
-
-/**
- * Creates and initializes a dictionary with the given validation function.
- *
- * @param func The enum validation function for the dictionary.
- *
- * @return A newly instanced dictionary.
- **/
-+ (instancetype)dictionaryWithValidationFunction:(nullable GPBEnumValidationFunc)func;
-
-/**
- * Creates and initializes a dictionary with the single entry given.
- *
- * @param func The enum validation function for the dictionary.
- * @param rawValue The raw enum value to be placed in the dictionary.
- * @param key The key under which to store the value.
- *
- * @return A newly instanced dictionary with the key and value in it.
- **/
-+ (instancetype)dictionaryWithValidationFunction:(nullable GPBEnumValidationFunc)func
- rawValue:(int32_t)rawValue
- forKey:(int32_t)key;
-
-/**
- * Creates and initializes a dictionary with the entries given.
- *
- * @param func The enum validation function for the dictionary.
- * @param values The raw enum values values to be placed in the dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of entries to store in the dictionary.
- *
- * @return A newly instanced dictionary with the keys and values in it.
- **/
-+ (instancetype)dictionaryWithValidationFunction:(nullable GPBEnumValidationFunc)func
- rawValues:(const int32_t [__nullable])values
- forKeys:(const int32_t [__nullable])keys
- count:(NSUInteger)count;
-
-/**
- * Creates and initializes a dictionary with the entries from the given.
- * dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to the dictionary.
- *
- * @return A newly instanced dictionary with the entries from the given
- * dictionary in it.
- **/
-+ (instancetype)dictionaryWithDictionary:(GPBInt32EnumDictionary *)dictionary;
-
-/**
- * Creates and initializes a dictionary with the given capacity.
- *
- * @param func The enum validation function for the dictionary.
- * @param numItems Capacity needed for the dictionary.
- *
- * @return A newly instanced dictionary with the given capacity.
- **/
-+ (instancetype)dictionaryWithValidationFunction:(nullable GPBEnumValidationFunc)func
- capacity:(NSUInteger)numItems;
-
-/**
- * Initializes a dictionary with the given validation function.
- *
- * @param func The enum validation function for the dictionary.
- *
- * @return A newly initialized dictionary.
- **/
-- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func;
-
-/**
- * Initializes a dictionary with the entries given.
- *
- * @param func The enum validation function for the dictionary.
- * @param values The raw enum values values to be placed in the dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of entries to store in the dictionary.
- *
- * @return A newly initialized dictionary with the keys and values in it.
- **/
-- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func
- rawValues:(const int32_t [__nullable])values
- forKeys:(const int32_t [__nullable])keys
- count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
-
-/**
- * Initializes a dictionary with the entries from the given.
- * dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to the dictionary.
- *
- * @return A newly initialized dictionary with the entries from the given
- * dictionary in it.
- **/
-- (instancetype)initWithDictionary:(GPBInt32EnumDictionary *)dictionary;
-
-/**
- * Initializes a dictionary with the given capacity.
- *
- * @param func The enum validation function for the dictionary.
- * @param numItems Capacity needed for the dictionary.
- *
- * @return A newly initialized dictionary with the given capacity.
- **/
-- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func
- capacity:(NSUInteger)numItems;
-
-// These will return kGPBUnrecognizedEnumeratorValue if the value for the key
-// is not a valid enumerator as defined by validationFunc. If the actual value is
-// desired, use "raw" version of the method.
-
-/**
- * Gets the value for the given key.
- *
- * @param value Pointer into which the value will be set, if found.
- * @param key Key under which the value is stored, if present.
- *
- * @return YES if the key was found and the value was copied, NO otherwise.
- **/
-- (BOOL)getEnum:(nullable int32_t *)value forKey:(int32_t)key;
-
-/**
- * Enumerates the keys and values on this dictionary with the given block.
- *
- * @param block The block to enumerate with.
- * **key**: The key for the current entry.
- * **value**: The value for the current entry
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateKeysAndEnumsUsingBlock:
- (void (^)(int32_t key, int32_t value, BOOL *stop))block;
-
-/**
- * Gets the raw enum value for the given key.
- *
- * @note This method bypass the validationFunc to enable the access of values that
- * were not known at the time the binary was compiled.
- *
- * @param rawValue Pointer into which the value will be set, if found.
- * @param key Key under which the value is stored, if present.
- *
- * @return YES if the key was found and the value was copied, NO otherwise.
- **/
-- (BOOL)getRawValue:(nullable int32_t *)rawValue forKey:(int32_t)key;
-
-/**
- * Enumerates the keys and values on this dictionary with the given block.
- *
- * @note This method bypass the validationFunc to enable the access of values that
- * were not known at the time the binary was compiled.
- *
- * @param block The block to enumerate with.
- * **key**: The key for the current entry.
- * **rawValue**: The value for the current entry
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateKeysAndRawValuesUsingBlock:
- (void (^)(int32_t key, int32_t rawValue, BOOL *stop))block;
-
-/**
- * Adds the keys and raw enum values from another dictionary.
- *
- * @note This method bypass the validationFunc to enable the setting of values that
- * were not known at the time the binary was compiled.
- *
- * @param otherDictionary Dictionary containing entries to be added to this
- * dictionary.
- **/
-- (void)addRawEntriesFromDictionary:(GPBInt32EnumDictionary *)otherDictionary;
-
-// If value is not a valid enumerator as defined by validationFunc, these
-// methods will assert in debug, and will log in release and assign the value
-// to the default value. Use the rawValue methods below to assign non enumerator
-// values.
-
-/**
- * Sets the value for the given key.
- *
- * @param value The value to set.
- * @param key The key under which to store the value.
- **/
-- (void)setEnum:(int32_t)value forKey:(int32_t)key;
-
-/**
- * Sets the raw enum value for the given key.
- *
- * @note This method bypass the validationFunc to enable the setting of values that
- * were not known at the time the binary was compiled.
- *
- * @param rawValue The raw enum value to set.
- * @param key The key under which to store the raw enum value.
- **/
-- (void)setRawValue:(int32_t)rawValue forKey:(int32_t)key;
-
-/**
- * Removes the entry for the given key.
- *
- * @param aKey Key to be removed from this dictionary.
- **/
-- (void)removeEnumForKey:(int32_t)aKey;
-
-/**
- * Removes all entries in this dictionary.
- **/
-- (void)removeAll;
-
-@end
-
-#pragma mark - Int32 -> Object
-
-/**
- * Class used for map fields of <int32_t, ObjectType>
- * values. This performs better than boxing into NSNumbers in NSDictionaries.
- *
- * @note This class is not meant to be subclassed.
- **/
-@interface GPBInt32ObjectDictionary<__covariant ObjectType> : NSObject <NSCopying>
-
-/** Number of entries stored in this dictionary. */
-@property(nonatomic, readonly) NSUInteger count;
-
-/**
- * @return A newly instanced and empty dictionary.
- **/
-+ (instancetype)dictionary;
-
-/**
- * Creates and initializes a dictionary with the single entry given.
- *
- * @param object The value to be placed in the dictionary.
- * @param key The key under which to store the value.
- *
- * @return A newly instanced dictionary with the key and value in it.
- **/
-+ (instancetype)dictionaryWithObject:(ObjectType)object
- forKey:(int32_t)key;
-
-/**
- * Creates and initializes a dictionary with the entries given.
- *
- * @param objects The values to be placed in the dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of entries to store in the dictionary.
- *
- * @return A newly instanced dictionary with the keys and values in it.
- **/
-+ (instancetype)dictionaryWithObjects:(const ObjectType __nonnull GPB_UNSAFE_UNRETAINED [__nullable])objects
- forKeys:(const int32_t [__nullable])keys
- count:(NSUInteger)count;
-
-/**
- * Creates and initializes a dictionary with the entries from the given.
- * dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to the dictionary.
- *
- * @return A newly instanced dictionary with the entries from the given
- * dictionary in it.
- **/
-+ (instancetype)dictionaryWithDictionary:(GPBInt32ObjectDictionary *)dictionary;
-
-/**
- * Creates and initializes a dictionary with the given capacity.
- *
- * @param numItems Capacity needed for the dictionary.
- *
- * @return A newly instanced dictionary with the given capacity.
- **/
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems;
-
-/**
- * Initializes this dictionary, copying the given values and keys.
- *
- * @param objects The values to be placed in this dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of elements to copy into the dictionary.
- *
- * @return A newly initialized dictionary with a copy of the values and keys.
- **/
-- (instancetype)initWithObjects:(const ObjectType __nonnull GPB_UNSAFE_UNRETAINED [__nullable])objects
- forKeys:(const int32_t [__nullable])keys
- count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
-
-/**
- * Initializes this dictionary, copying the entries from the given dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to this dictionary.
- *
- * @return A newly initialized dictionary with the entries of the given dictionary.
- **/
-- (instancetype)initWithDictionary:(GPBInt32ObjectDictionary *)dictionary;
-
-/**
- * Initializes this dictionary with the requested capacity.
- *
- * @param numItems Number of items needed for this dictionary.
- *
- * @return A newly initialized dictionary with the requested capacity.
- **/
-- (instancetype)initWithCapacity:(NSUInteger)numItems;
-
-/**
- * Fetches the object stored under the given key.
- *
- * @param key Key under which the value is stored, if present.
- *
- * @return The object if found, nil otherwise.
- **/
-- (ObjectType)objectForKey:(int32_t)key;
-
-/**
- * Enumerates the keys and values on this dictionary with the given block.
- *
- * @param block The block to enumerate with.
- * **key**: The key for the current entry.
- * **object**: The value for the current entry
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateKeysAndObjectsUsingBlock:
- (void (^)(int32_t key, ObjectType object, BOOL *stop))block;
-
-/**
- * Adds the keys and values from another dictionary.
- *
- * @param otherDictionary Dictionary containing entries to be added to this
- * dictionary.
- **/
-- (void)addEntriesFromDictionary:(GPBInt32ObjectDictionary *)otherDictionary;
-
-/**
- * Sets the value for the given key.
- *
- * @param object The value to set.
- * @param key The key under which to store the value.
- **/
-- (void)setObject:(ObjectType)object forKey:(int32_t)key;
-
-/**
- * Removes the entry for the given key.
- *
- * @param aKey Key to be removed from this dictionary.
- **/
-- (void)removeObjectForKey:(int32_t)aKey;
-
-/**
- * Removes all entries in this dictionary.
- **/
-- (void)removeAll;
-
-@end
-
-#pragma mark - UInt64 -> UInt32
-
-/**
- * Class used for map fields of <uint64_t, uint32_t>
- * values. This performs better than boxing into NSNumbers in NSDictionaries.
- *
- * @note This class is not meant to be subclassed.
- **/
-@interface GPBUInt64UInt32Dictionary : NSObject <NSCopying>
-
-/** Number of entries stored in this dictionary. */
-@property(nonatomic, readonly) NSUInteger count;
-
-/**
- * @return A newly instanced and empty dictionary.
- **/
-+ (instancetype)dictionary;
-
-/**
- * Creates and initializes a dictionary with the single entry given.
- *
- * @param value The value to be placed in the dictionary.
- * @param key The key under which to store the value.
- *
- * @return A newly instanced dictionary with the key and value in it.
- **/
-+ (instancetype)dictionaryWithUInt32:(uint32_t)value
- forKey:(uint64_t)key;
-
-/**
- * Creates and initializes a dictionary with the entries given.
- *
- * @param values The values to be placed in the dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of entries to store in the dictionary.
- *
- * @return A newly instanced dictionary with the keys and values in it.
- **/
-+ (instancetype)dictionaryWithUInt32s:(const uint32_t [__nullable])values
- forKeys:(const uint64_t [__nullable])keys
- count:(NSUInteger)count;
-
-/**
- * Creates and initializes a dictionary with the entries from the given.
- * dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to the dictionary.
- *
- * @return A newly instanced dictionary with the entries from the given
- * dictionary in it.
- **/
-+ (instancetype)dictionaryWithDictionary:(GPBUInt64UInt32Dictionary *)dictionary;
-
-/**
- * Creates and initializes a dictionary with the given capacity.
- *
- * @param numItems Capacity needed for the dictionary.
- *
- * @return A newly instanced dictionary with the given capacity.
- **/
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems;
-
-/**
- * Initializes this dictionary, copying the given values and keys.
- *
- * @param values The values to be placed in this dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of elements to copy into the dictionary.
- *
- * @return A newly initialized dictionary with a copy of the values and keys.
- **/
-- (instancetype)initWithUInt32s:(const uint32_t [__nullable])values
- forKeys:(const uint64_t [__nullable])keys
- count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
-
-/**
- * Initializes this dictionary, copying the entries from the given dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to this dictionary.
- *
- * @return A newly initialized dictionary with the entries of the given dictionary.
- **/
-- (instancetype)initWithDictionary:(GPBUInt64UInt32Dictionary *)dictionary;
-
-/**
- * Initializes this dictionary with the requested capacity.
- *
- * @param numItems Number of items needed for this dictionary.
- *
- * @return A newly initialized dictionary with the requested capacity.
- **/
-- (instancetype)initWithCapacity:(NSUInteger)numItems;
-
-/**
- * Gets the value for the given key.
- *
- * @param value Pointer into which the value will be set, if found.
- * @param key Key under which the value is stored, if present.
- *
- * @return YES if the key was found and the value was copied, NO otherwise.
- **/
-- (BOOL)getUInt32:(nullable uint32_t *)value forKey:(uint64_t)key;
-
-/**
- * Enumerates the keys and values on this dictionary with the given block.
- *
- * @param block The block to enumerate with.
- * **key**: The key for the current entry.
- * **value**: The value for the current entry
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateKeysAndUInt32sUsingBlock:
- (void (^)(uint64_t key, uint32_t value, BOOL *stop))block;
-
-/**
- * Adds the keys and values from another dictionary.
- *
- * @param otherDictionary Dictionary containing entries to be added to this
- * dictionary.
- **/
-- (void)addEntriesFromDictionary:(GPBUInt64UInt32Dictionary *)otherDictionary;
-
-/**
- * Sets the value for the given key.
- *
- * @param value The value to set.
- * @param key The key under which to store the value.
- **/
-- (void)setUInt32:(uint32_t)value forKey:(uint64_t)key;
-
-/**
- * Removes the entry for the given key.
- *
- * @param aKey Key to be removed from this dictionary.
- **/
-- (void)removeUInt32ForKey:(uint64_t)aKey;
-
-/**
- * Removes all entries in this dictionary.
- **/
-- (void)removeAll;
-
-@end
-
-#pragma mark - UInt64 -> Int32
-
-/**
- * Class used for map fields of <uint64_t, int32_t>
- * values. This performs better than boxing into NSNumbers in NSDictionaries.
- *
- * @note This class is not meant to be subclassed.
- **/
-@interface GPBUInt64Int32Dictionary : NSObject <NSCopying>
-
-/** Number of entries stored in this dictionary. */
-@property(nonatomic, readonly) NSUInteger count;
-
-/**
- * @return A newly instanced and empty dictionary.
- **/
-+ (instancetype)dictionary;
-
-/**
- * Creates and initializes a dictionary with the single entry given.
- *
- * @param value The value to be placed in the dictionary.
- * @param key The key under which to store the value.
- *
- * @return A newly instanced dictionary with the key and value in it.
- **/
-+ (instancetype)dictionaryWithInt32:(int32_t)value
- forKey:(uint64_t)key;
-
-/**
- * Creates and initializes a dictionary with the entries given.
- *
- * @param values The values to be placed in the dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of entries to store in the dictionary.
- *
- * @return A newly instanced dictionary with the keys and values in it.
- **/
-+ (instancetype)dictionaryWithInt32s:(const int32_t [__nullable])values
- forKeys:(const uint64_t [__nullable])keys
- count:(NSUInteger)count;
-
-/**
- * Creates and initializes a dictionary with the entries from the given.
- * dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to the dictionary.
- *
- * @return A newly instanced dictionary with the entries from the given
- * dictionary in it.
- **/
-+ (instancetype)dictionaryWithDictionary:(GPBUInt64Int32Dictionary *)dictionary;
-
-/**
- * Creates and initializes a dictionary with the given capacity.
- *
- * @param numItems Capacity needed for the dictionary.
- *
- * @return A newly instanced dictionary with the given capacity.
- **/
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems;
-
-/**
- * Initializes this dictionary, copying the given values and keys.
- *
- * @param values The values to be placed in this dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of elements to copy into the dictionary.
- *
- * @return A newly initialized dictionary with a copy of the values and keys.
- **/
-- (instancetype)initWithInt32s:(const int32_t [__nullable])values
- forKeys:(const uint64_t [__nullable])keys
- count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
-
-/**
- * Initializes this dictionary, copying the entries from the given dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to this dictionary.
- *
- * @return A newly initialized dictionary with the entries of the given dictionary.
- **/
-- (instancetype)initWithDictionary:(GPBUInt64Int32Dictionary *)dictionary;
-
-/**
- * Initializes this dictionary with the requested capacity.
- *
- * @param numItems Number of items needed for this dictionary.
- *
- * @return A newly initialized dictionary with the requested capacity.
- **/
-- (instancetype)initWithCapacity:(NSUInteger)numItems;
-
-/**
- * Gets the value for the given key.
- *
- * @param value Pointer into which the value will be set, if found.
- * @param key Key under which the value is stored, if present.
- *
- * @return YES if the key was found and the value was copied, NO otherwise.
- **/
-- (BOOL)getInt32:(nullable int32_t *)value forKey:(uint64_t)key;
-
-/**
- * Enumerates the keys and values on this dictionary with the given block.
- *
- * @param block The block to enumerate with.
- * **key**: The key for the current entry.
- * **value**: The value for the current entry
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateKeysAndInt32sUsingBlock:
- (void (^)(uint64_t key, int32_t value, BOOL *stop))block;
-
-/**
- * Adds the keys and values from another dictionary.
- *
- * @param otherDictionary Dictionary containing entries to be added to this
- * dictionary.
- **/
-- (void)addEntriesFromDictionary:(GPBUInt64Int32Dictionary *)otherDictionary;
-
-/**
- * Sets the value for the given key.
- *
- * @param value The value to set.
- * @param key The key under which to store the value.
- **/
-- (void)setInt32:(int32_t)value forKey:(uint64_t)key;
-
-/**
- * Removes the entry for the given key.
- *
- * @param aKey Key to be removed from this dictionary.
- **/
-- (void)removeInt32ForKey:(uint64_t)aKey;
-
-/**
- * Removes all entries in this dictionary.
- **/
-- (void)removeAll;
-
-@end
-
-#pragma mark - UInt64 -> UInt64
-
-/**
- * Class used for map fields of <uint64_t, uint64_t>
- * values. This performs better than boxing into NSNumbers in NSDictionaries.
- *
- * @note This class is not meant to be subclassed.
- **/
-@interface GPBUInt64UInt64Dictionary : NSObject <NSCopying>
-
-/** Number of entries stored in this dictionary. */
-@property(nonatomic, readonly) NSUInteger count;
-
-/**
- * @return A newly instanced and empty dictionary.
- **/
-+ (instancetype)dictionary;
-
-/**
- * Creates and initializes a dictionary with the single entry given.
- *
- * @param value The value to be placed in the dictionary.
- * @param key The key under which to store the value.
- *
- * @return A newly instanced dictionary with the key and value in it.
- **/
-+ (instancetype)dictionaryWithUInt64:(uint64_t)value
- forKey:(uint64_t)key;
-
-/**
- * Creates and initializes a dictionary with the entries given.
- *
- * @param values The values to be placed in the dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of entries to store in the dictionary.
- *
- * @return A newly instanced dictionary with the keys and values in it.
- **/
-+ (instancetype)dictionaryWithUInt64s:(const uint64_t [__nullable])values
- forKeys:(const uint64_t [__nullable])keys
- count:(NSUInteger)count;
-
-/**
- * Creates and initializes a dictionary with the entries from the given.
- * dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to the dictionary.
- *
- * @return A newly instanced dictionary with the entries from the given
- * dictionary in it.
- **/
-+ (instancetype)dictionaryWithDictionary:(GPBUInt64UInt64Dictionary *)dictionary;
-
-/**
- * Creates and initializes a dictionary with the given capacity.
- *
- * @param numItems Capacity needed for the dictionary.
- *
- * @return A newly instanced dictionary with the given capacity.
- **/
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems;
-
-/**
- * Initializes this dictionary, copying the given values and keys.
- *
- * @param values The values to be placed in this dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of elements to copy into the dictionary.
- *
- * @return A newly initialized dictionary with a copy of the values and keys.
- **/
-- (instancetype)initWithUInt64s:(const uint64_t [__nullable])values
- forKeys:(const uint64_t [__nullable])keys
- count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
-
-/**
- * Initializes this dictionary, copying the entries from the given dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to this dictionary.
- *
- * @return A newly initialized dictionary with the entries of the given dictionary.
- **/
-- (instancetype)initWithDictionary:(GPBUInt64UInt64Dictionary *)dictionary;
-
-/**
- * Initializes this dictionary with the requested capacity.
- *
- * @param numItems Number of items needed for this dictionary.
- *
- * @return A newly initialized dictionary with the requested capacity.
- **/
-- (instancetype)initWithCapacity:(NSUInteger)numItems;
-
-/**
- * Gets the value for the given key.
- *
- * @param value Pointer into which the value will be set, if found.
- * @param key Key under which the value is stored, if present.
- *
- * @return YES if the key was found and the value was copied, NO otherwise.
- **/
-- (BOOL)getUInt64:(nullable uint64_t *)value forKey:(uint64_t)key;
-
-/**
- * Enumerates the keys and values on this dictionary with the given block.
- *
- * @param block The block to enumerate with.
- * **key**: The key for the current entry.
- * **value**: The value for the current entry
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateKeysAndUInt64sUsingBlock:
- (void (^)(uint64_t key, uint64_t value, BOOL *stop))block;
-
-/**
- * Adds the keys and values from another dictionary.
- *
- * @param otherDictionary Dictionary containing entries to be added to this
- * dictionary.
- **/
-- (void)addEntriesFromDictionary:(GPBUInt64UInt64Dictionary *)otherDictionary;
-
-/**
- * Sets the value for the given key.
- *
- * @param value The value to set.
- * @param key The key under which to store the value.
- **/
-- (void)setUInt64:(uint64_t)value forKey:(uint64_t)key;
-
-/**
- * Removes the entry for the given key.
- *
- * @param aKey Key to be removed from this dictionary.
- **/
-- (void)removeUInt64ForKey:(uint64_t)aKey;
-
-/**
- * Removes all entries in this dictionary.
- **/
-- (void)removeAll;
-
-@end
-
-#pragma mark - UInt64 -> Int64
-
-/**
- * Class used for map fields of <uint64_t, int64_t>
- * values. This performs better than boxing into NSNumbers in NSDictionaries.
- *
- * @note This class is not meant to be subclassed.
- **/
-@interface GPBUInt64Int64Dictionary : NSObject <NSCopying>
-
-/** Number of entries stored in this dictionary. */
-@property(nonatomic, readonly) NSUInteger count;
-
-/**
- * @return A newly instanced and empty dictionary.
- **/
-+ (instancetype)dictionary;
-
-/**
- * Creates and initializes a dictionary with the single entry given.
- *
- * @param value The value to be placed in the dictionary.
- * @param key The key under which to store the value.
- *
- * @return A newly instanced dictionary with the key and value in it.
- **/
-+ (instancetype)dictionaryWithInt64:(int64_t)value
- forKey:(uint64_t)key;
-
-/**
- * Creates and initializes a dictionary with the entries given.
- *
- * @param values The values to be placed in the dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of entries to store in the dictionary.
- *
- * @return A newly instanced dictionary with the keys and values in it.
- **/
-+ (instancetype)dictionaryWithInt64s:(const int64_t [__nullable])values
- forKeys:(const uint64_t [__nullable])keys
- count:(NSUInteger)count;
-
-/**
- * Creates and initializes a dictionary with the entries from the given.
- * dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to the dictionary.
- *
- * @return A newly instanced dictionary with the entries from the given
- * dictionary in it.
- **/
-+ (instancetype)dictionaryWithDictionary:(GPBUInt64Int64Dictionary *)dictionary;
-
-/**
- * Creates and initializes a dictionary with the given capacity.
- *
- * @param numItems Capacity needed for the dictionary.
- *
- * @return A newly instanced dictionary with the given capacity.
- **/
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems;
-
-/**
- * Initializes this dictionary, copying the given values and keys.
- *
- * @param values The values to be placed in this dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of elements to copy into the dictionary.
- *
- * @return A newly initialized dictionary with a copy of the values and keys.
- **/
-- (instancetype)initWithInt64s:(const int64_t [__nullable])values
- forKeys:(const uint64_t [__nullable])keys
- count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
-
-/**
- * Initializes this dictionary, copying the entries from the given dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to this dictionary.
- *
- * @return A newly initialized dictionary with the entries of the given dictionary.
- **/
-- (instancetype)initWithDictionary:(GPBUInt64Int64Dictionary *)dictionary;
-
-/**
- * Initializes this dictionary with the requested capacity.
- *
- * @param numItems Number of items needed for this dictionary.
- *
- * @return A newly initialized dictionary with the requested capacity.
- **/
-- (instancetype)initWithCapacity:(NSUInteger)numItems;
-
-/**
- * Gets the value for the given key.
- *
- * @param value Pointer into which the value will be set, if found.
- * @param key Key under which the value is stored, if present.
- *
- * @return YES if the key was found and the value was copied, NO otherwise.
- **/
-- (BOOL)getInt64:(nullable int64_t *)value forKey:(uint64_t)key;
-
-/**
- * Enumerates the keys and values on this dictionary with the given block.
- *
- * @param block The block to enumerate with.
- * **key**: The key for the current entry.
- * **value**: The value for the current entry
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateKeysAndInt64sUsingBlock:
- (void (^)(uint64_t key, int64_t value, BOOL *stop))block;
-
-/**
- * Adds the keys and values from another dictionary.
- *
- * @param otherDictionary Dictionary containing entries to be added to this
- * dictionary.
- **/
-- (void)addEntriesFromDictionary:(GPBUInt64Int64Dictionary *)otherDictionary;
-
-/**
- * Sets the value for the given key.
- *
- * @param value The value to set.
- * @param key The key under which to store the value.
- **/
-- (void)setInt64:(int64_t)value forKey:(uint64_t)key;
-
-/**
- * Removes the entry for the given key.
- *
- * @param aKey Key to be removed from this dictionary.
- **/
-- (void)removeInt64ForKey:(uint64_t)aKey;
-
-/**
- * Removes all entries in this dictionary.
- **/
-- (void)removeAll;
-
-@end
-
-#pragma mark - UInt64 -> Bool
-
-/**
- * Class used for map fields of <uint64_t, BOOL>
- * values. This performs better than boxing into NSNumbers in NSDictionaries.
- *
- * @note This class is not meant to be subclassed.
- **/
-@interface GPBUInt64BoolDictionary : NSObject <NSCopying>
-
-/** Number of entries stored in this dictionary. */
-@property(nonatomic, readonly) NSUInteger count;
-
-/**
- * @return A newly instanced and empty dictionary.
- **/
-+ (instancetype)dictionary;
-
-/**
- * Creates and initializes a dictionary with the single entry given.
- *
- * @param value The value to be placed in the dictionary.
- * @param key The key under which to store the value.
- *
- * @return A newly instanced dictionary with the key and value in it.
- **/
-+ (instancetype)dictionaryWithBool:(BOOL)value
- forKey:(uint64_t)key;
-
-/**
- * Creates and initializes a dictionary with the entries given.
- *
- * @param values The values to be placed in the dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of entries to store in the dictionary.
- *
- * @return A newly instanced dictionary with the keys and values in it.
- **/
-+ (instancetype)dictionaryWithBools:(const BOOL [__nullable])values
- forKeys:(const uint64_t [__nullable])keys
- count:(NSUInteger)count;
-
-/**
- * Creates and initializes a dictionary with the entries from the given.
- * dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to the dictionary.
- *
- * @return A newly instanced dictionary with the entries from the given
- * dictionary in it.
- **/
-+ (instancetype)dictionaryWithDictionary:(GPBUInt64BoolDictionary *)dictionary;
-
-/**
- * Creates and initializes a dictionary with the given capacity.
- *
- * @param numItems Capacity needed for the dictionary.
- *
- * @return A newly instanced dictionary with the given capacity.
- **/
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems;
-
-/**
- * Initializes this dictionary, copying the given values and keys.
- *
- * @param values The values to be placed in this dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of elements to copy into the dictionary.
- *
- * @return A newly initialized dictionary with a copy of the values and keys.
- **/
-- (instancetype)initWithBools:(const BOOL [__nullable])values
- forKeys:(const uint64_t [__nullable])keys
- count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
-
-/**
- * Initializes this dictionary, copying the entries from the given dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to this dictionary.
- *
- * @return A newly initialized dictionary with the entries of the given dictionary.
- **/
-- (instancetype)initWithDictionary:(GPBUInt64BoolDictionary *)dictionary;
-
-/**
- * Initializes this dictionary with the requested capacity.
- *
- * @param numItems Number of items needed for this dictionary.
- *
- * @return A newly initialized dictionary with the requested capacity.
- **/
-- (instancetype)initWithCapacity:(NSUInteger)numItems;
-
-/**
- * Gets the value for the given key.
- *
- * @param value Pointer into which the value will be set, if found.
- * @param key Key under which the value is stored, if present.
- *
- * @return YES if the key was found and the value was copied, NO otherwise.
- **/
-- (BOOL)getBool:(nullable BOOL *)value forKey:(uint64_t)key;
-
-/**
- * Enumerates the keys and values on this dictionary with the given block.
- *
- * @param block The block to enumerate with.
- * **key**: The key for the current entry.
- * **value**: The value for the current entry
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateKeysAndBoolsUsingBlock:
- (void (^)(uint64_t key, BOOL value, BOOL *stop))block;
-
-/**
- * Adds the keys and values from another dictionary.
- *
- * @param otherDictionary Dictionary containing entries to be added to this
- * dictionary.
- **/
-- (void)addEntriesFromDictionary:(GPBUInt64BoolDictionary *)otherDictionary;
-
-/**
- * Sets the value for the given key.
- *
- * @param value The value to set.
- * @param key The key under which to store the value.
- **/
-- (void)setBool:(BOOL)value forKey:(uint64_t)key;
-
-/**
- * Removes the entry for the given key.
- *
- * @param aKey Key to be removed from this dictionary.
- **/
-- (void)removeBoolForKey:(uint64_t)aKey;
-
-/**
- * Removes all entries in this dictionary.
- **/
-- (void)removeAll;
-
-@end
-
-#pragma mark - UInt64 -> Float
-
-/**
- * Class used for map fields of <uint64_t, float>
- * values. This performs better than boxing into NSNumbers in NSDictionaries.
- *
- * @note This class is not meant to be subclassed.
- **/
-@interface GPBUInt64FloatDictionary : NSObject <NSCopying>
-
-/** Number of entries stored in this dictionary. */
-@property(nonatomic, readonly) NSUInteger count;
-
-/**
- * @return A newly instanced and empty dictionary.
- **/
-+ (instancetype)dictionary;
-
-/**
- * Creates and initializes a dictionary with the single entry given.
- *
- * @param value The value to be placed in the dictionary.
- * @param key The key under which to store the value.
- *
- * @return A newly instanced dictionary with the key and value in it.
- **/
-+ (instancetype)dictionaryWithFloat:(float)value
- forKey:(uint64_t)key;
-
-/**
- * Creates and initializes a dictionary with the entries given.
- *
- * @param values The values to be placed in the dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of entries to store in the dictionary.
- *
- * @return A newly instanced dictionary with the keys and values in it.
- **/
-+ (instancetype)dictionaryWithFloats:(const float [__nullable])values
- forKeys:(const uint64_t [__nullable])keys
- count:(NSUInteger)count;
-
-/**
- * Creates and initializes a dictionary with the entries from the given.
- * dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to the dictionary.
- *
- * @return A newly instanced dictionary with the entries from the given
- * dictionary in it.
- **/
-+ (instancetype)dictionaryWithDictionary:(GPBUInt64FloatDictionary *)dictionary;
-
-/**
- * Creates and initializes a dictionary with the given capacity.
- *
- * @param numItems Capacity needed for the dictionary.
- *
- * @return A newly instanced dictionary with the given capacity.
- **/
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems;
-
-/**
- * Initializes this dictionary, copying the given values and keys.
- *
- * @param values The values to be placed in this dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of elements to copy into the dictionary.
- *
- * @return A newly initialized dictionary with a copy of the values and keys.
- **/
-- (instancetype)initWithFloats:(const float [__nullable])values
- forKeys:(const uint64_t [__nullable])keys
- count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
-
-/**
- * Initializes this dictionary, copying the entries from the given dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to this dictionary.
- *
- * @return A newly initialized dictionary with the entries of the given dictionary.
- **/
-- (instancetype)initWithDictionary:(GPBUInt64FloatDictionary *)dictionary;
-
-/**
- * Initializes this dictionary with the requested capacity.
- *
- * @param numItems Number of items needed for this dictionary.
- *
- * @return A newly initialized dictionary with the requested capacity.
- **/
-- (instancetype)initWithCapacity:(NSUInteger)numItems;
-
-/**
- * Gets the value for the given key.
- *
- * @param value Pointer into which the value will be set, if found.
- * @param key Key under which the value is stored, if present.
- *
- * @return YES if the key was found and the value was copied, NO otherwise.
- **/
-- (BOOL)getFloat:(nullable float *)value forKey:(uint64_t)key;
-
-/**
- * Enumerates the keys and values on this dictionary with the given block.
- *
- * @param block The block to enumerate with.
- * **key**: The key for the current entry.
- * **value**: The value for the current entry
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateKeysAndFloatsUsingBlock:
- (void (^)(uint64_t key, float value, BOOL *stop))block;
-
-/**
- * Adds the keys and values from another dictionary.
- *
- * @param otherDictionary Dictionary containing entries to be added to this
- * dictionary.
- **/
-- (void)addEntriesFromDictionary:(GPBUInt64FloatDictionary *)otherDictionary;
-
-/**
- * Sets the value for the given key.
- *
- * @param value The value to set.
- * @param key The key under which to store the value.
- **/
-- (void)setFloat:(float)value forKey:(uint64_t)key;
-
-/**
- * Removes the entry for the given key.
- *
- * @param aKey Key to be removed from this dictionary.
- **/
-- (void)removeFloatForKey:(uint64_t)aKey;
-
-/**
- * Removes all entries in this dictionary.
- **/
-- (void)removeAll;
-
-@end
-
-#pragma mark - UInt64 -> Double
-
-/**
- * Class used for map fields of <uint64_t, double>
- * values. This performs better than boxing into NSNumbers in NSDictionaries.
- *
- * @note This class is not meant to be subclassed.
- **/
-@interface GPBUInt64DoubleDictionary : NSObject <NSCopying>
-
-/** Number of entries stored in this dictionary. */
-@property(nonatomic, readonly) NSUInteger count;
-
-/**
- * @return A newly instanced and empty dictionary.
- **/
-+ (instancetype)dictionary;
-
-/**
- * Creates and initializes a dictionary with the single entry given.
- *
- * @param value The value to be placed in the dictionary.
- * @param key The key under which to store the value.
- *
- * @return A newly instanced dictionary with the key and value in it.
- **/
-+ (instancetype)dictionaryWithDouble:(double)value
- forKey:(uint64_t)key;
-
-/**
- * Creates and initializes a dictionary with the entries given.
- *
- * @param values The values to be placed in the dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of entries to store in the dictionary.
- *
- * @return A newly instanced dictionary with the keys and values in it.
- **/
-+ (instancetype)dictionaryWithDoubles:(const double [__nullable])values
- forKeys:(const uint64_t [__nullable])keys
- count:(NSUInteger)count;
-
-/**
- * Creates and initializes a dictionary with the entries from the given.
- * dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to the dictionary.
- *
- * @return A newly instanced dictionary with the entries from the given
- * dictionary in it.
- **/
-+ (instancetype)dictionaryWithDictionary:(GPBUInt64DoubleDictionary *)dictionary;
-
-/**
- * Creates and initializes a dictionary with the given capacity.
- *
- * @param numItems Capacity needed for the dictionary.
- *
- * @return A newly instanced dictionary with the given capacity.
- **/
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems;
-
-/**
- * Initializes this dictionary, copying the given values and keys.
- *
- * @param values The values to be placed in this dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of elements to copy into the dictionary.
- *
- * @return A newly initialized dictionary with a copy of the values and keys.
- **/
-- (instancetype)initWithDoubles:(const double [__nullable])values
- forKeys:(const uint64_t [__nullable])keys
- count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
-
-/**
- * Initializes this dictionary, copying the entries from the given dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to this dictionary.
- *
- * @return A newly initialized dictionary with the entries of the given dictionary.
- **/
-- (instancetype)initWithDictionary:(GPBUInt64DoubleDictionary *)dictionary;
-
-/**
- * Initializes this dictionary with the requested capacity.
- *
- * @param numItems Number of items needed for this dictionary.
- *
- * @return A newly initialized dictionary with the requested capacity.
- **/
-- (instancetype)initWithCapacity:(NSUInteger)numItems;
-
-/**
- * Gets the value for the given key.
- *
- * @param value Pointer into which the value will be set, if found.
- * @param key Key under which the value is stored, if present.
- *
- * @return YES if the key was found and the value was copied, NO otherwise.
- **/
-- (BOOL)getDouble:(nullable double *)value forKey:(uint64_t)key;
-
-/**
- * Enumerates the keys and values on this dictionary with the given block.
- *
- * @param block The block to enumerate with.
- * **key**: The key for the current entry.
- * **value**: The value for the current entry
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateKeysAndDoublesUsingBlock:
- (void (^)(uint64_t key, double value, BOOL *stop))block;
-
-/**
- * Adds the keys and values from another dictionary.
- *
- * @param otherDictionary Dictionary containing entries to be added to this
- * dictionary.
- **/
-- (void)addEntriesFromDictionary:(GPBUInt64DoubleDictionary *)otherDictionary;
-
-/**
- * Sets the value for the given key.
- *
- * @param value The value to set.
- * @param key The key under which to store the value.
- **/
-- (void)setDouble:(double)value forKey:(uint64_t)key;
-
-/**
- * Removes the entry for the given key.
- *
- * @param aKey Key to be removed from this dictionary.
- **/
-- (void)removeDoubleForKey:(uint64_t)aKey;
-
-/**
- * Removes all entries in this dictionary.
- **/
-- (void)removeAll;
-
-@end
-
-#pragma mark - UInt64 -> Enum
-
-/**
- * Class used for map fields of <uint64_t, int32_t>
- * values. This performs better than boxing into NSNumbers in NSDictionaries.
- *
- * @note This class is not meant to be subclassed.
- **/
-@interface GPBUInt64EnumDictionary : NSObject <NSCopying>
-
-/** Number of entries stored in this dictionary. */
-@property(nonatomic, readonly) NSUInteger count;
-/** The validation function to check if the enums are valid. */
-@property(nonatomic, readonly) GPBEnumValidationFunc validationFunc;
-
-/**
- * @return A newly instanced and empty dictionary.
- **/
-+ (instancetype)dictionary;
-
-/**
- * Creates and initializes a dictionary with the given validation function.
- *
- * @param func The enum validation function for the dictionary.
- *
- * @return A newly instanced dictionary.
- **/
-+ (instancetype)dictionaryWithValidationFunction:(nullable GPBEnumValidationFunc)func;
-
-/**
- * Creates and initializes a dictionary with the single entry given.
- *
- * @param func The enum validation function for the dictionary.
- * @param rawValue The raw enum value to be placed in the dictionary.
- * @param key The key under which to store the value.
- *
- * @return A newly instanced dictionary with the key and value in it.
- **/
-+ (instancetype)dictionaryWithValidationFunction:(nullable GPBEnumValidationFunc)func
- rawValue:(int32_t)rawValue
- forKey:(uint64_t)key;
-
-/**
- * Creates and initializes a dictionary with the entries given.
- *
- * @param func The enum validation function for the dictionary.
- * @param values The raw enum values values to be placed in the dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of entries to store in the dictionary.
- *
- * @return A newly instanced dictionary with the keys and values in it.
- **/
-+ (instancetype)dictionaryWithValidationFunction:(nullable GPBEnumValidationFunc)func
- rawValues:(const int32_t [__nullable])values
- forKeys:(const uint64_t [__nullable])keys
- count:(NSUInteger)count;
-
-/**
- * Creates and initializes a dictionary with the entries from the given.
- * dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to the dictionary.
- *
- * @return A newly instanced dictionary with the entries from the given
- * dictionary in it.
- **/
-+ (instancetype)dictionaryWithDictionary:(GPBUInt64EnumDictionary *)dictionary;
-
-/**
- * Creates and initializes a dictionary with the given capacity.
- *
- * @param func The enum validation function for the dictionary.
- * @param numItems Capacity needed for the dictionary.
- *
- * @return A newly instanced dictionary with the given capacity.
- **/
-+ (instancetype)dictionaryWithValidationFunction:(nullable GPBEnumValidationFunc)func
- capacity:(NSUInteger)numItems;
-
-/**
- * Initializes a dictionary with the given validation function.
- *
- * @param func The enum validation function for the dictionary.
- *
- * @return A newly initialized dictionary.
- **/
-- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func;
-
-/**
- * Initializes a dictionary with the entries given.
- *
- * @param func The enum validation function for the dictionary.
- * @param values The raw enum values values to be placed in the dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of entries to store in the dictionary.
- *
- * @return A newly initialized dictionary with the keys and values in it.
- **/
-- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func
- rawValues:(const int32_t [__nullable])values
- forKeys:(const uint64_t [__nullable])keys
- count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
-
-/**
- * Initializes a dictionary with the entries from the given.
- * dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to the dictionary.
- *
- * @return A newly initialized dictionary with the entries from the given
- * dictionary in it.
- **/
-- (instancetype)initWithDictionary:(GPBUInt64EnumDictionary *)dictionary;
-
-/**
- * Initializes a dictionary with the given capacity.
- *
- * @param func The enum validation function for the dictionary.
- * @param numItems Capacity needed for the dictionary.
- *
- * @return A newly initialized dictionary with the given capacity.
- **/
-- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func
- capacity:(NSUInteger)numItems;
-
-// These will return kGPBUnrecognizedEnumeratorValue if the value for the key
-// is not a valid enumerator as defined by validationFunc. If the actual value is
-// desired, use "raw" version of the method.
-
-/**
- * Gets the value for the given key.
- *
- * @param value Pointer into which the value will be set, if found.
- * @param key Key under which the value is stored, if present.
- *
- * @return YES if the key was found and the value was copied, NO otherwise.
- **/
-- (BOOL)getEnum:(nullable int32_t *)value forKey:(uint64_t)key;
-
-/**
- * Enumerates the keys and values on this dictionary with the given block.
- *
- * @param block The block to enumerate with.
- * **key**: The key for the current entry.
- * **value**: The value for the current entry
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateKeysAndEnumsUsingBlock:
- (void (^)(uint64_t key, int32_t value, BOOL *stop))block;
-
-/**
- * Gets the raw enum value for the given key.
- *
- * @note This method bypass the validationFunc to enable the access of values that
- * were not known at the time the binary was compiled.
- *
- * @param rawValue Pointer into which the value will be set, if found.
- * @param key Key under which the value is stored, if present.
- *
- * @return YES if the key was found and the value was copied, NO otherwise.
- **/
-- (BOOL)getRawValue:(nullable int32_t *)rawValue forKey:(uint64_t)key;
-
-/**
- * Enumerates the keys and values on this dictionary with the given block.
- *
- * @note This method bypass the validationFunc to enable the access of values that
- * were not known at the time the binary was compiled.
- *
- * @param block The block to enumerate with.
- * **key**: The key for the current entry.
- * **rawValue**: The value for the current entry
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateKeysAndRawValuesUsingBlock:
- (void (^)(uint64_t key, int32_t rawValue, BOOL *stop))block;
-
-/**
- * Adds the keys and raw enum values from another dictionary.
- *
- * @note This method bypass the validationFunc to enable the setting of values that
- * were not known at the time the binary was compiled.
- *
- * @param otherDictionary Dictionary containing entries to be added to this
- * dictionary.
- **/
-- (void)addRawEntriesFromDictionary:(GPBUInt64EnumDictionary *)otherDictionary;
-
-// If value is not a valid enumerator as defined by validationFunc, these
-// methods will assert in debug, and will log in release and assign the value
-// to the default value. Use the rawValue methods below to assign non enumerator
-// values.
-
-/**
- * Sets the value for the given key.
- *
- * @param value The value to set.
- * @param key The key under which to store the value.
- **/
-- (void)setEnum:(int32_t)value forKey:(uint64_t)key;
-
-/**
- * Sets the raw enum value for the given key.
- *
- * @note This method bypass the validationFunc to enable the setting of values that
- * were not known at the time the binary was compiled.
- *
- * @param rawValue The raw enum value to set.
- * @param key The key under which to store the raw enum value.
- **/
-- (void)setRawValue:(int32_t)rawValue forKey:(uint64_t)key;
-
-/**
- * Removes the entry for the given key.
- *
- * @param aKey Key to be removed from this dictionary.
- **/
-- (void)removeEnumForKey:(uint64_t)aKey;
-
-/**
- * Removes all entries in this dictionary.
- **/
-- (void)removeAll;
-
-@end
-
-#pragma mark - UInt64 -> Object
-
-/**
- * Class used for map fields of <uint64_t, ObjectType>
- * values. This performs better than boxing into NSNumbers in NSDictionaries.
- *
- * @note This class is not meant to be subclassed.
- **/
-@interface GPBUInt64ObjectDictionary<__covariant ObjectType> : NSObject <NSCopying>
-
-/** Number of entries stored in this dictionary. */
-@property(nonatomic, readonly) NSUInteger count;
-
-/**
- * @return A newly instanced and empty dictionary.
- **/
-+ (instancetype)dictionary;
-
-/**
- * Creates and initializes a dictionary with the single entry given.
- *
- * @param object The value to be placed in the dictionary.
- * @param key The key under which to store the value.
- *
- * @return A newly instanced dictionary with the key and value in it.
- **/
-+ (instancetype)dictionaryWithObject:(ObjectType)object
- forKey:(uint64_t)key;
-
-/**
- * Creates and initializes a dictionary with the entries given.
- *
- * @param objects The values to be placed in the dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of entries to store in the dictionary.
- *
- * @return A newly instanced dictionary with the keys and values in it.
- **/
-+ (instancetype)dictionaryWithObjects:(const ObjectType __nonnull GPB_UNSAFE_UNRETAINED [__nullable])objects
- forKeys:(const uint64_t [__nullable])keys
- count:(NSUInteger)count;
-
-/**
- * Creates and initializes a dictionary with the entries from the given.
- * dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to the dictionary.
- *
- * @return A newly instanced dictionary with the entries from the given
- * dictionary in it.
- **/
-+ (instancetype)dictionaryWithDictionary:(GPBUInt64ObjectDictionary *)dictionary;
-
-/**
- * Creates and initializes a dictionary with the given capacity.
- *
- * @param numItems Capacity needed for the dictionary.
- *
- * @return A newly instanced dictionary with the given capacity.
- **/
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems;
-
-/**
- * Initializes this dictionary, copying the given values and keys.
- *
- * @param objects The values to be placed in this dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of elements to copy into the dictionary.
- *
- * @return A newly initialized dictionary with a copy of the values and keys.
- **/
-- (instancetype)initWithObjects:(const ObjectType __nonnull GPB_UNSAFE_UNRETAINED [__nullable])objects
- forKeys:(const uint64_t [__nullable])keys
- count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
-
-/**
- * Initializes this dictionary, copying the entries from the given dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to this dictionary.
- *
- * @return A newly initialized dictionary with the entries of the given dictionary.
- **/
-- (instancetype)initWithDictionary:(GPBUInt64ObjectDictionary *)dictionary;
-
-/**
- * Initializes this dictionary with the requested capacity.
- *
- * @param numItems Number of items needed for this dictionary.
- *
- * @return A newly initialized dictionary with the requested capacity.
- **/
-- (instancetype)initWithCapacity:(NSUInteger)numItems;
-
-/**
- * Fetches the object stored under the given key.
- *
- * @param key Key under which the value is stored, if present.
- *
- * @return The object if found, nil otherwise.
- **/
-- (ObjectType)objectForKey:(uint64_t)key;
-
-/**
- * Enumerates the keys and values on this dictionary with the given block.
- *
- * @param block The block to enumerate with.
- * **key**: The key for the current entry.
- * **object**: The value for the current entry
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateKeysAndObjectsUsingBlock:
- (void (^)(uint64_t key, ObjectType object, BOOL *stop))block;
-
-/**
- * Adds the keys and values from another dictionary.
- *
- * @param otherDictionary Dictionary containing entries to be added to this
- * dictionary.
- **/
-- (void)addEntriesFromDictionary:(GPBUInt64ObjectDictionary *)otherDictionary;
-
-/**
- * Sets the value for the given key.
- *
- * @param object The value to set.
- * @param key The key under which to store the value.
- **/
-- (void)setObject:(ObjectType)object forKey:(uint64_t)key;
-
-/**
- * Removes the entry for the given key.
- *
- * @param aKey Key to be removed from this dictionary.
- **/
-- (void)removeObjectForKey:(uint64_t)aKey;
-
-/**
- * Removes all entries in this dictionary.
- **/
-- (void)removeAll;
-
-@end
-
-#pragma mark - Int64 -> UInt32
-
-/**
- * Class used for map fields of <int64_t, uint32_t>
- * values. This performs better than boxing into NSNumbers in NSDictionaries.
- *
- * @note This class is not meant to be subclassed.
- **/
-@interface GPBInt64UInt32Dictionary : NSObject <NSCopying>
-
-/** Number of entries stored in this dictionary. */
-@property(nonatomic, readonly) NSUInteger count;
-
-/**
- * @return A newly instanced and empty dictionary.
- **/
-+ (instancetype)dictionary;
-
-/**
- * Creates and initializes a dictionary with the single entry given.
- *
- * @param value The value to be placed in the dictionary.
- * @param key The key under which to store the value.
- *
- * @return A newly instanced dictionary with the key and value in it.
- **/
-+ (instancetype)dictionaryWithUInt32:(uint32_t)value
- forKey:(int64_t)key;
-
-/**
- * Creates and initializes a dictionary with the entries given.
- *
- * @param values The values to be placed in the dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of entries to store in the dictionary.
- *
- * @return A newly instanced dictionary with the keys and values in it.
- **/
-+ (instancetype)dictionaryWithUInt32s:(const uint32_t [__nullable])values
- forKeys:(const int64_t [__nullable])keys
- count:(NSUInteger)count;
-
-/**
- * Creates and initializes a dictionary with the entries from the given.
- * dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to the dictionary.
- *
- * @return A newly instanced dictionary with the entries from the given
- * dictionary in it.
- **/
-+ (instancetype)dictionaryWithDictionary:(GPBInt64UInt32Dictionary *)dictionary;
-
-/**
- * Creates and initializes a dictionary with the given capacity.
- *
- * @param numItems Capacity needed for the dictionary.
- *
- * @return A newly instanced dictionary with the given capacity.
- **/
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems;
-
-/**
- * Initializes this dictionary, copying the given values and keys.
- *
- * @param values The values to be placed in this dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of elements to copy into the dictionary.
- *
- * @return A newly initialized dictionary with a copy of the values and keys.
- **/
-- (instancetype)initWithUInt32s:(const uint32_t [__nullable])values
- forKeys:(const int64_t [__nullable])keys
- count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
-
-/**
- * Initializes this dictionary, copying the entries from the given dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to this dictionary.
- *
- * @return A newly initialized dictionary with the entries of the given dictionary.
- **/
-- (instancetype)initWithDictionary:(GPBInt64UInt32Dictionary *)dictionary;
-
-/**
- * Initializes this dictionary with the requested capacity.
- *
- * @param numItems Number of items needed for this dictionary.
- *
- * @return A newly initialized dictionary with the requested capacity.
- **/
-- (instancetype)initWithCapacity:(NSUInteger)numItems;
-
-/**
- * Gets the value for the given key.
- *
- * @param value Pointer into which the value will be set, if found.
- * @param key Key under which the value is stored, if present.
- *
- * @return YES if the key was found and the value was copied, NO otherwise.
- **/
-- (BOOL)getUInt32:(nullable uint32_t *)value forKey:(int64_t)key;
-
-/**
- * Enumerates the keys and values on this dictionary with the given block.
- *
- * @param block The block to enumerate with.
- * **key**: The key for the current entry.
- * **value**: The value for the current entry
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateKeysAndUInt32sUsingBlock:
- (void (^)(int64_t key, uint32_t value, BOOL *stop))block;
-
-/**
- * Adds the keys and values from another dictionary.
- *
- * @param otherDictionary Dictionary containing entries to be added to this
- * dictionary.
- **/
-- (void)addEntriesFromDictionary:(GPBInt64UInt32Dictionary *)otherDictionary;
-
-/**
- * Sets the value for the given key.
- *
- * @param value The value to set.
- * @param key The key under which to store the value.
- **/
-- (void)setUInt32:(uint32_t)value forKey:(int64_t)key;
-
-/**
- * Removes the entry for the given key.
- *
- * @param aKey Key to be removed from this dictionary.
- **/
-- (void)removeUInt32ForKey:(int64_t)aKey;
-
-/**
- * Removes all entries in this dictionary.
- **/
-- (void)removeAll;
-
-@end
-
-#pragma mark - Int64 -> Int32
-
-/**
- * Class used for map fields of <int64_t, int32_t>
- * values. This performs better than boxing into NSNumbers in NSDictionaries.
- *
- * @note This class is not meant to be subclassed.
- **/
-@interface GPBInt64Int32Dictionary : NSObject <NSCopying>
-
-/** Number of entries stored in this dictionary. */
-@property(nonatomic, readonly) NSUInteger count;
-
-/**
- * @return A newly instanced and empty dictionary.
- **/
-+ (instancetype)dictionary;
-
-/**
- * Creates and initializes a dictionary with the single entry given.
- *
- * @param value The value to be placed in the dictionary.
- * @param key The key under which to store the value.
- *
- * @return A newly instanced dictionary with the key and value in it.
- **/
-+ (instancetype)dictionaryWithInt32:(int32_t)value
- forKey:(int64_t)key;
-
-/**
- * Creates and initializes a dictionary with the entries given.
- *
- * @param values The values to be placed in the dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of entries to store in the dictionary.
- *
- * @return A newly instanced dictionary with the keys and values in it.
- **/
-+ (instancetype)dictionaryWithInt32s:(const int32_t [__nullable])values
- forKeys:(const int64_t [__nullable])keys
- count:(NSUInteger)count;
-
-/**
- * Creates and initializes a dictionary with the entries from the given.
- * dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to the dictionary.
- *
- * @return A newly instanced dictionary with the entries from the given
- * dictionary in it.
- **/
-+ (instancetype)dictionaryWithDictionary:(GPBInt64Int32Dictionary *)dictionary;
-
-/**
- * Creates and initializes a dictionary with the given capacity.
- *
- * @param numItems Capacity needed for the dictionary.
- *
- * @return A newly instanced dictionary with the given capacity.
- **/
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems;
-
-/**
- * Initializes this dictionary, copying the given values and keys.
- *
- * @param values The values to be placed in this dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of elements to copy into the dictionary.
- *
- * @return A newly initialized dictionary with a copy of the values and keys.
- **/
-- (instancetype)initWithInt32s:(const int32_t [__nullable])values
- forKeys:(const int64_t [__nullable])keys
- count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
-
-/**
- * Initializes this dictionary, copying the entries from the given dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to this dictionary.
- *
- * @return A newly initialized dictionary with the entries of the given dictionary.
- **/
-- (instancetype)initWithDictionary:(GPBInt64Int32Dictionary *)dictionary;
-
-/**
- * Initializes this dictionary with the requested capacity.
- *
- * @param numItems Number of items needed for this dictionary.
- *
- * @return A newly initialized dictionary with the requested capacity.
- **/
-- (instancetype)initWithCapacity:(NSUInteger)numItems;
-
-/**
- * Gets the value for the given key.
- *
- * @param value Pointer into which the value will be set, if found.
- * @param key Key under which the value is stored, if present.
- *
- * @return YES if the key was found and the value was copied, NO otherwise.
- **/
-- (BOOL)getInt32:(nullable int32_t *)value forKey:(int64_t)key;
-
-/**
- * Enumerates the keys and values on this dictionary with the given block.
- *
- * @param block The block to enumerate with.
- * **key**: The key for the current entry.
- * **value**: The value for the current entry
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateKeysAndInt32sUsingBlock:
- (void (^)(int64_t key, int32_t value, BOOL *stop))block;
-
-/**
- * Adds the keys and values from another dictionary.
- *
- * @param otherDictionary Dictionary containing entries to be added to this
- * dictionary.
- **/
-- (void)addEntriesFromDictionary:(GPBInt64Int32Dictionary *)otherDictionary;
-
-/**
- * Sets the value for the given key.
- *
- * @param value The value to set.
- * @param key The key under which to store the value.
- **/
-- (void)setInt32:(int32_t)value forKey:(int64_t)key;
-
-/**
- * Removes the entry for the given key.
- *
- * @param aKey Key to be removed from this dictionary.
- **/
-- (void)removeInt32ForKey:(int64_t)aKey;
-
-/**
- * Removes all entries in this dictionary.
- **/
-- (void)removeAll;
-
-@end
-
-#pragma mark - Int64 -> UInt64
-
-/**
- * Class used for map fields of <int64_t, uint64_t>
- * values. This performs better than boxing into NSNumbers in NSDictionaries.
- *
- * @note This class is not meant to be subclassed.
- **/
-@interface GPBInt64UInt64Dictionary : NSObject <NSCopying>
-
-/** Number of entries stored in this dictionary. */
-@property(nonatomic, readonly) NSUInteger count;
-
-/**
- * @return A newly instanced and empty dictionary.
- **/
-+ (instancetype)dictionary;
-
-/**
- * Creates and initializes a dictionary with the single entry given.
- *
- * @param value The value to be placed in the dictionary.
- * @param key The key under which to store the value.
- *
- * @return A newly instanced dictionary with the key and value in it.
- **/
-+ (instancetype)dictionaryWithUInt64:(uint64_t)value
- forKey:(int64_t)key;
-
-/**
- * Creates and initializes a dictionary with the entries given.
- *
- * @param values The values to be placed in the dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of entries to store in the dictionary.
- *
- * @return A newly instanced dictionary with the keys and values in it.
- **/
-+ (instancetype)dictionaryWithUInt64s:(const uint64_t [__nullable])values
- forKeys:(const int64_t [__nullable])keys
- count:(NSUInteger)count;
-
-/**
- * Creates and initializes a dictionary with the entries from the given.
- * dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to the dictionary.
- *
- * @return A newly instanced dictionary with the entries from the given
- * dictionary in it.
- **/
-+ (instancetype)dictionaryWithDictionary:(GPBInt64UInt64Dictionary *)dictionary;
-
-/**
- * Creates and initializes a dictionary with the given capacity.
- *
- * @param numItems Capacity needed for the dictionary.
- *
- * @return A newly instanced dictionary with the given capacity.
- **/
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems;
-
-/**
- * Initializes this dictionary, copying the given values and keys.
- *
- * @param values The values to be placed in this dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of elements to copy into the dictionary.
- *
- * @return A newly initialized dictionary with a copy of the values and keys.
- **/
-- (instancetype)initWithUInt64s:(const uint64_t [__nullable])values
- forKeys:(const int64_t [__nullable])keys
- count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
-
-/**
- * Initializes this dictionary, copying the entries from the given dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to this dictionary.
- *
- * @return A newly initialized dictionary with the entries of the given dictionary.
- **/
-- (instancetype)initWithDictionary:(GPBInt64UInt64Dictionary *)dictionary;
-
-/**
- * Initializes this dictionary with the requested capacity.
- *
- * @param numItems Number of items needed for this dictionary.
- *
- * @return A newly initialized dictionary with the requested capacity.
- **/
-- (instancetype)initWithCapacity:(NSUInteger)numItems;
-
-/**
- * Gets the value for the given key.
- *
- * @param value Pointer into which the value will be set, if found.
- * @param key Key under which the value is stored, if present.
- *
- * @return YES if the key was found and the value was copied, NO otherwise.
- **/
-- (BOOL)getUInt64:(nullable uint64_t *)value forKey:(int64_t)key;
-
-/**
- * Enumerates the keys and values on this dictionary with the given block.
- *
- * @param block The block to enumerate with.
- * **key**: The key for the current entry.
- * **value**: The value for the current entry
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateKeysAndUInt64sUsingBlock:
- (void (^)(int64_t key, uint64_t value, BOOL *stop))block;
-
-/**
- * Adds the keys and values from another dictionary.
- *
- * @param otherDictionary Dictionary containing entries to be added to this
- * dictionary.
- **/
-- (void)addEntriesFromDictionary:(GPBInt64UInt64Dictionary *)otherDictionary;
-
-/**
- * Sets the value for the given key.
- *
- * @param value The value to set.
- * @param key The key under which to store the value.
- **/
-- (void)setUInt64:(uint64_t)value forKey:(int64_t)key;
-
-/**
- * Removes the entry for the given key.
- *
- * @param aKey Key to be removed from this dictionary.
- **/
-- (void)removeUInt64ForKey:(int64_t)aKey;
-
-/**
- * Removes all entries in this dictionary.
- **/
-- (void)removeAll;
-
-@end
-
-#pragma mark - Int64 -> Int64
-
-/**
- * Class used for map fields of <int64_t, int64_t>
- * values. This performs better than boxing into NSNumbers in NSDictionaries.
- *
- * @note This class is not meant to be subclassed.
- **/
-@interface GPBInt64Int64Dictionary : NSObject <NSCopying>
-
-/** Number of entries stored in this dictionary. */
-@property(nonatomic, readonly) NSUInteger count;
-
-/**
- * @return A newly instanced and empty dictionary.
- **/
-+ (instancetype)dictionary;
-
-/**
- * Creates and initializes a dictionary with the single entry given.
- *
- * @param value The value to be placed in the dictionary.
- * @param key The key under which to store the value.
- *
- * @return A newly instanced dictionary with the key and value in it.
- **/
-+ (instancetype)dictionaryWithInt64:(int64_t)value
- forKey:(int64_t)key;
-
-/**
- * Creates and initializes a dictionary with the entries given.
- *
- * @param values The values to be placed in the dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of entries to store in the dictionary.
- *
- * @return A newly instanced dictionary with the keys and values in it.
- **/
-+ (instancetype)dictionaryWithInt64s:(const int64_t [__nullable])values
- forKeys:(const int64_t [__nullable])keys
- count:(NSUInteger)count;
-
-/**
- * Creates and initializes a dictionary with the entries from the given.
- * dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to the dictionary.
- *
- * @return A newly instanced dictionary with the entries from the given
- * dictionary in it.
- **/
-+ (instancetype)dictionaryWithDictionary:(GPBInt64Int64Dictionary *)dictionary;
-
-/**
- * Creates and initializes a dictionary with the given capacity.
- *
- * @param numItems Capacity needed for the dictionary.
- *
- * @return A newly instanced dictionary with the given capacity.
- **/
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems;
-
-/**
- * Initializes this dictionary, copying the given values and keys.
- *
- * @param values The values to be placed in this dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of elements to copy into the dictionary.
- *
- * @return A newly initialized dictionary with a copy of the values and keys.
- **/
-- (instancetype)initWithInt64s:(const int64_t [__nullable])values
- forKeys:(const int64_t [__nullable])keys
- count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
-
-/**
- * Initializes this dictionary, copying the entries from the given dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to this dictionary.
- *
- * @return A newly initialized dictionary with the entries of the given dictionary.
- **/
-- (instancetype)initWithDictionary:(GPBInt64Int64Dictionary *)dictionary;
-
-/**
- * Initializes this dictionary with the requested capacity.
- *
- * @param numItems Number of items needed for this dictionary.
- *
- * @return A newly initialized dictionary with the requested capacity.
- **/
-- (instancetype)initWithCapacity:(NSUInteger)numItems;
-
-/**
- * Gets the value for the given key.
- *
- * @param value Pointer into which the value will be set, if found.
- * @param key Key under which the value is stored, if present.
- *
- * @return YES if the key was found and the value was copied, NO otherwise.
- **/
-- (BOOL)getInt64:(nullable int64_t *)value forKey:(int64_t)key;
-
-/**
- * Enumerates the keys and values on this dictionary with the given block.
- *
- * @param block The block to enumerate with.
- * **key**: The key for the current entry.
- * **value**: The value for the current entry
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateKeysAndInt64sUsingBlock:
- (void (^)(int64_t key, int64_t value, BOOL *stop))block;
-
-/**
- * Adds the keys and values from another dictionary.
- *
- * @param otherDictionary Dictionary containing entries to be added to this
- * dictionary.
- **/
-- (void)addEntriesFromDictionary:(GPBInt64Int64Dictionary *)otherDictionary;
-
-/**
- * Sets the value for the given key.
- *
- * @param value The value to set.
- * @param key The key under which to store the value.
- **/
-- (void)setInt64:(int64_t)value forKey:(int64_t)key;
-
-/**
- * Removes the entry for the given key.
- *
- * @param aKey Key to be removed from this dictionary.
- **/
-- (void)removeInt64ForKey:(int64_t)aKey;
-
-/**
- * Removes all entries in this dictionary.
- **/
-- (void)removeAll;
-
-@end
-
-#pragma mark - Int64 -> Bool
-
-/**
- * Class used for map fields of <int64_t, BOOL>
- * values. This performs better than boxing into NSNumbers in NSDictionaries.
- *
- * @note This class is not meant to be subclassed.
- **/
-@interface GPBInt64BoolDictionary : NSObject <NSCopying>
-
-/** Number of entries stored in this dictionary. */
-@property(nonatomic, readonly) NSUInteger count;
-
-/**
- * @return A newly instanced and empty dictionary.
- **/
-+ (instancetype)dictionary;
-
-/**
- * Creates and initializes a dictionary with the single entry given.
- *
- * @param value The value to be placed in the dictionary.
- * @param key The key under which to store the value.
- *
- * @return A newly instanced dictionary with the key and value in it.
- **/
-+ (instancetype)dictionaryWithBool:(BOOL)value
- forKey:(int64_t)key;
-
-/**
- * Creates and initializes a dictionary with the entries given.
- *
- * @param values The values to be placed in the dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of entries to store in the dictionary.
- *
- * @return A newly instanced dictionary with the keys and values in it.
- **/
-+ (instancetype)dictionaryWithBools:(const BOOL [__nullable])values
- forKeys:(const int64_t [__nullable])keys
- count:(NSUInteger)count;
-
-/**
- * Creates and initializes a dictionary with the entries from the given.
- * dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to the dictionary.
- *
- * @return A newly instanced dictionary with the entries from the given
- * dictionary in it.
- **/
-+ (instancetype)dictionaryWithDictionary:(GPBInt64BoolDictionary *)dictionary;
-
-/**
- * Creates and initializes a dictionary with the given capacity.
- *
- * @param numItems Capacity needed for the dictionary.
- *
- * @return A newly instanced dictionary with the given capacity.
- **/
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems;
-
-/**
- * Initializes this dictionary, copying the given values and keys.
- *
- * @param values The values to be placed in this dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of elements to copy into the dictionary.
- *
- * @return A newly initialized dictionary with a copy of the values and keys.
- **/
-- (instancetype)initWithBools:(const BOOL [__nullable])values
- forKeys:(const int64_t [__nullable])keys
- count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
-
-/**
- * Initializes this dictionary, copying the entries from the given dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to this dictionary.
- *
- * @return A newly initialized dictionary with the entries of the given dictionary.
- **/
-- (instancetype)initWithDictionary:(GPBInt64BoolDictionary *)dictionary;
-
-/**
- * Initializes this dictionary with the requested capacity.
- *
- * @param numItems Number of items needed for this dictionary.
- *
- * @return A newly initialized dictionary with the requested capacity.
- **/
-- (instancetype)initWithCapacity:(NSUInteger)numItems;
-
-/**
- * Gets the value for the given key.
- *
- * @param value Pointer into which the value will be set, if found.
- * @param key Key under which the value is stored, if present.
- *
- * @return YES if the key was found and the value was copied, NO otherwise.
- **/
-- (BOOL)getBool:(nullable BOOL *)value forKey:(int64_t)key;
-
-/**
- * Enumerates the keys and values on this dictionary with the given block.
- *
- * @param block The block to enumerate with.
- * **key**: The key for the current entry.
- * **value**: The value for the current entry
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateKeysAndBoolsUsingBlock:
- (void (^)(int64_t key, BOOL value, BOOL *stop))block;
-
-/**
- * Adds the keys and values from another dictionary.
- *
- * @param otherDictionary Dictionary containing entries to be added to this
- * dictionary.
- **/
-- (void)addEntriesFromDictionary:(GPBInt64BoolDictionary *)otherDictionary;
-
-/**
- * Sets the value for the given key.
- *
- * @param value The value to set.
- * @param key The key under which to store the value.
- **/
-- (void)setBool:(BOOL)value forKey:(int64_t)key;
-
-/**
- * Removes the entry for the given key.
- *
- * @param aKey Key to be removed from this dictionary.
- **/
-- (void)removeBoolForKey:(int64_t)aKey;
-
-/**
- * Removes all entries in this dictionary.
- **/
-- (void)removeAll;
-
-@end
-
-#pragma mark - Int64 -> Float
-
-/**
- * Class used for map fields of <int64_t, float>
- * values. This performs better than boxing into NSNumbers in NSDictionaries.
- *
- * @note This class is not meant to be subclassed.
- **/
-@interface GPBInt64FloatDictionary : NSObject <NSCopying>
-
-/** Number of entries stored in this dictionary. */
-@property(nonatomic, readonly) NSUInteger count;
-
-/**
- * @return A newly instanced and empty dictionary.
- **/
-+ (instancetype)dictionary;
-
-/**
- * Creates and initializes a dictionary with the single entry given.
- *
- * @param value The value to be placed in the dictionary.
- * @param key The key under which to store the value.
- *
- * @return A newly instanced dictionary with the key and value in it.
- **/
-+ (instancetype)dictionaryWithFloat:(float)value
- forKey:(int64_t)key;
-
-/**
- * Creates and initializes a dictionary with the entries given.
- *
- * @param values The values to be placed in the dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of entries to store in the dictionary.
- *
- * @return A newly instanced dictionary with the keys and values in it.
- **/
-+ (instancetype)dictionaryWithFloats:(const float [__nullable])values
- forKeys:(const int64_t [__nullable])keys
- count:(NSUInteger)count;
-
-/**
- * Creates and initializes a dictionary with the entries from the given.
- * dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to the dictionary.
- *
- * @return A newly instanced dictionary with the entries from the given
- * dictionary in it.
- **/
-+ (instancetype)dictionaryWithDictionary:(GPBInt64FloatDictionary *)dictionary;
-
-/**
- * Creates and initializes a dictionary with the given capacity.
- *
- * @param numItems Capacity needed for the dictionary.
- *
- * @return A newly instanced dictionary with the given capacity.
- **/
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems;
-
-/**
- * Initializes this dictionary, copying the given values and keys.
- *
- * @param values The values to be placed in this dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of elements to copy into the dictionary.
- *
- * @return A newly initialized dictionary with a copy of the values and keys.
- **/
-- (instancetype)initWithFloats:(const float [__nullable])values
- forKeys:(const int64_t [__nullable])keys
- count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
-
-/**
- * Initializes this dictionary, copying the entries from the given dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to this dictionary.
- *
- * @return A newly initialized dictionary with the entries of the given dictionary.
- **/
-- (instancetype)initWithDictionary:(GPBInt64FloatDictionary *)dictionary;
-
-/**
- * Initializes this dictionary with the requested capacity.
- *
- * @param numItems Number of items needed for this dictionary.
- *
- * @return A newly initialized dictionary with the requested capacity.
- **/
-- (instancetype)initWithCapacity:(NSUInteger)numItems;
-
-/**
- * Gets the value for the given key.
- *
- * @param value Pointer into which the value will be set, if found.
- * @param key Key under which the value is stored, if present.
- *
- * @return YES if the key was found and the value was copied, NO otherwise.
- **/
-- (BOOL)getFloat:(nullable float *)value forKey:(int64_t)key;
-
-/**
- * Enumerates the keys and values on this dictionary with the given block.
- *
- * @param block The block to enumerate with.
- * **key**: The key for the current entry.
- * **value**: The value for the current entry
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateKeysAndFloatsUsingBlock:
- (void (^)(int64_t key, float value, BOOL *stop))block;
-
-/**
- * Adds the keys and values from another dictionary.
- *
- * @param otherDictionary Dictionary containing entries to be added to this
- * dictionary.
- **/
-- (void)addEntriesFromDictionary:(GPBInt64FloatDictionary *)otherDictionary;
-
-/**
- * Sets the value for the given key.
- *
- * @param value The value to set.
- * @param key The key under which to store the value.
- **/
-- (void)setFloat:(float)value forKey:(int64_t)key;
-
-/**
- * Removes the entry for the given key.
- *
- * @param aKey Key to be removed from this dictionary.
- **/
-- (void)removeFloatForKey:(int64_t)aKey;
-
-/**
- * Removes all entries in this dictionary.
- **/
-- (void)removeAll;
-
-@end
-
-#pragma mark - Int64 -> Double
-
-/**
- * Class used for map fields of <int64_t, double>
- * values. This performs better than boxing into NSNumbers in NSDictionaries.
- *
- * @note This class is not meant to be subclassed.
- **/
-@interface GPBInt64DoubleDictionary : NSObject <NSCopying>
-
-/** Number of entries stored in this dictionary. */
-@property(nonatomic, readonly) NSUInteger count;
-
-/**
- * @return A newly instanced and empty dictionary.
- **/
-+ (instancetype)dictionary;
-
-/**
- * Creates and initializes a dictionary with the single entry given.
- *
- * @param value The value to be placed in the dictionary.
- * @param key The key under which to store the value.
- *
- * @return A newly instanced dictionary with the key and value in it.
- **/
-+ (instancetype)dictionaryWithDouble:(double)value
- forKey:(int64_t)key;
-
-/**
- * Creates and initializes a dictionary with the entries given.
- *
- * @param values The values to be placed in the dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of entries to store in the dictionary.
- *
- * @return A newly instanced dictionary with the keys and values in it.
- **/
-+ (instancetype)dictionaryWithDoubles:(const double [__nullable])values
- forKeys:(const int64_t [__nullable])keys
- count:(NSUInteger)count;
-
-/**
- * Creates and initializes a dictionary with the entries from the given.
- * dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to the dictionary.
- *
- * @return A newly instanced dictionary with the entries from the given
- * dictionary in it.
- **/
-+ (instancetype)dictionaryWithDictionary:(GPBInt64DoubleDictionary *)dictionary;
-
-/**
- * Creates and initializes a dictionary with the given capacity.
- *
- * @param numItems Capacity needed for the dictionary.
- *
- * @return A newly instanced dictionary with the given capacity.
- **/
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems;
-
-/**
- * Initializes this dictionary, copying the given values and keys.
- *
- * @param values The values to be placed in this dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of elements to copy into the dictionary.
- *
- * @return A newly initialized dictionary with a copy of the values and keys.
- **/
-- (instancetype)initWithDoubles:(const double [__nullable])values
- forKeys:(const int64_t [__nullable])keys
- count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
-
-/**
- * Initializes this dictionary, copying the entries from the given dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to this dictionary.
- *
- * @return A newly initialized dictionary with the entries of the given dictionary.
- **/
-- (instancetype)initWithDictionary:(GPBInt64DoubleDictionary *)dictionary;
-
-/**
- * Initializes this dictionary with the requested capacity.
- *
- * @param numItems Number of items needed for this dictionary.
- *
- * @return A newly initialized dictionary with the requested capacity.
- **/
-- (instancetype)initWithCapacity:(NSUInteger)numItems;
-
-/**
- * Gets the value for the given key.
- *
- * @param value Pointer into which the value will be set, if found.
- * @param key Key under which the value is stored, if present.
- *
- * @return YES if the key was found and the value was copied, NO otherwise.
- **/
-- (BOOL)getDouble:(nullable double *)value forKey:(int64_t)key;
-
-/**
- * Enumerates the keys and values on this dictionary with the given block.
- *
- * @param block The block to enumerate with.
- * **key**: The key for the current entry.
- * **value**: The value for the current entry
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateKeysAndDoublesUsingBlock:
- (void (^)(int64_t key, double value, BOOL *stop))block;
-
-/**
- * Adds the keys and values from another dictionary.
- *
- * @param otherDictionary Dictionary containing entries to be added to this
- * dictionary.
- **/
-- (void)addEntriesFromDictionary:(GPBInt64DoubleDictionary *)otherDictionary;
-
-/**
- * Sets the value for the given key.
- *
- * @param value The value to set.
- * @param key The key under which to store the value.
- **/
-- (void)setDouble:(double)value forKey:(int64_t)key;
-
-/**
- * Removes the entry for the given key.
- *
- * @param aKey Key to be removed from this dictionary.
- **/
-- (void)removeDoubleForKey:(int64_t)aKey;
-
-/**
- * Removes all entries in this dictionary.
- **/
-- (void)removeAll;
-
-@end
-
-#pragma mark - Int64 -> Enum
-
-/**
- * Class used for map fields of <int64_t, int32_t>
- * values. This performs better than boxing into NSNumbers in NSDictionaries.
- *
- * @note This class is not meant to be subclassed.
- **/
-@interface GPBInt64EnumDictionary : NSObject <NSCopying>
-
-/** Number of entries stored in this dictionary. */
-@property(nonatomic, readonly) NSUInteger count;
-/** The validation function to check if the enums are valid. */
-@property(nonatomic, readonly) GPBEnumValidationFunc validationFunc;
-
-/**
- * @return A newly instanced and empty dictionary.
- **/
-+ (instancetype)dictionary;
-
-/**
- * Creates and initializes a dictionary with the given validation function.
- *
- * @param func The enum validation function for the dictionary.
- *
- * @return A newly instanced dictionary.
- **/
-+ (instancetype)dictionaryWithValidationFunction:(nullable GPBEnumValidationFunc)func;
-
-/**
- * Creates and initializes a dictionary with the single entry given.
- *
- * @param func The enum validation function for the dictionary.
- * @param rawValue The raw enum value to be placed in the dictionary.
- * @param key The key under which to store the value.
- *
- * @return A newly instanced dictionary with the key and value in it.
- **/
-+ (instancetype)dictionaryWithValidationFunction:(nullable GPBEnumValidationFunc)func
- rawValue:(int32_t)rawValue
- forKey:(int64_t)key;
-
-/**
- * Creates and initializes a dictionary with the entries given.
- *
- * @param func The enum validation function for the dictionary.
- * @param values The raw enum values values to be placed in the dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of entries to store in the dictionary.
- *
- * @return A newly instanced dictionary with the keys and values in it.
- **/
-+ (instancetype)dictionaryWithValidationFunction:(nullable GPBEnumValidationFunc)func
- rawValues:(const int32_t [__nullable])values
- forKeys:(const int64_t [__nullable])keys
- count:(NSUInteger)count;
-
-/**
- * Creates and initializes a dictionary with the entries from the given.
- * dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to the dictionary.
- *
- * @return A newly instanced dictionary with the entries from the given
- * dictionary in it.
- **/
-+ (instancetype)dictionaryWithDictionary:(GPBInt64EnumDictionary *)dictionary;
-
-/**
- * Creates and initializes a dictionary with the given capacity.
- *
- * @param func The enum validation function for the dictionary.
- * @param numItems Capacity needed for the dictionary.
- *
- * @return A newly instanced dictionary with the given capacity.
- **/
-+ (instancetype)dictionaryWithValidationFunction:(nullable GPBEnumValidationFunc)func
- capacity:(NSUInteger)numItems;
-
-/**
- * Initializes a dictionary with the given validation function.
- *
- * @param func The enum validation function for the dictionary.
- *
- * @return A newly initialized dictionary.
- **/
-- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func;
-
-/**
- * Initializes a dictionary with the entries given.
- *
- * @param func The enum validation function for the dictionary.
- * @param values The raw enum values values to be placed in the dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of entries to store in the dictionary.
- *
- * @return A newly initialized dictionary with the keys and values in it.
- **/
-- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func
- rawValues:(const int32_t [__nullable])values
- forKeys:(const int64_t [__nullable])keys
- count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
-
-/**
- * Initializes a dictionary with the entries from the given.
- * dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to the dictionary.
- *
- * @return A newly initialized dictionary with the entries from the given
- * dictionary in it.
- **/
-- (instancetype)initWithDictionary:(GPBInt64EnumDictionary *)dictionary;
-
-/**
- * Initializes a dictionary with the given capacity.
- *
- * @param func The enum validation function for the dictionary.
- * @param numItems Capacity needed for the dictionary.
- *
- * @return A newly initialized dictionary with the given capacity.
- **/
-- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func
- capacity:(NSUInteger)numItems;
-
-// These will return kGPBUnrecognizedEnumeratorValue if the value for the key
-// is not a valid enumerator as defined by validationFunc. If the actual value is
-// desired, use "raw" version of the method.
-
-/**
- * Gets the value for the given key.
- *
- * @param value Pointer into which the value will be set, if found.
- * @param key Key under which the value is stored, if present.
- *
- * @return YES if the key was found and the value was copied, NO otherwise.
- **/
-- (BOOL)getEnum:(nullable int32_t *)value forKey:(int64_t)key;
-
-/**
- * Enumerates the keys and values on this dictionary with the given block.
- *
- * @param block The block to enumerate with.
- * **key**: The key for the current entry.
- * **value**: The value for the current entry
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateKeysAndEnumsUsingBlock:
- (void (^)(int64_t key, int32_t value, BOOL *stop))block;
-
-/**
- * Gets the raw enum value for the given key.
- *
- * @note This method bypass the validationFunc to enable the access of values that
- * were not known at the time the binary was compiled.
- *
- * @param rawValue Pointer into which the value will be set, if found.
- * @param key Key under which the value is stored, if present.
- *
- * @return YES if the key was found and the value was copied, NO otherwise.
- **/
-- (BOOL)getRawValue:(nullable int32_t *)rawValue forKey:(int64_t)key;
-
-/**
- * Enumerates the keys and values on this dictionary with the given block.
- *
- * @note This method bypass the validationFunc to enable the access of values that
- * were not known at the time the binary was compiled.
- *
- * @param block The block to enumerate with.
- * **key**: The key for the current entry.
- * **rawValue**: The value for the current entry
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateKeysAndRawValuesUsingBlock:
- (void (^)(int64_t key, int32_t rawValue, BOOL *stop))block;
-
-/**
- * Adds the keys and raw enum values from another dictionary.
- *
- * @note This method bypass the validationFunc to enable the setting of values that
- * were not known at the time the binary was compiled.
- *
- * @param otherDictionary Dictionary containing entries to be added to this
- * dictionary.
- **/
-- (void)addRawEntriesFromDictionary:(GPBInt64EnumDictionary *)otherDictionary;
-
-// If value is not a valid enumerator as defined by validationFunc, these
-// methods will assert in debug, and will log in release and assign the value
-// to the default value. Use the rawValue methods below to assign non enumerator
-// values.
-
-/**
- * Sets the value for the given key.
- *
- * @param value The value to set.
- * @param key The key under which to store the value.
- **/
-- (void)setEnum:(int32_t)value forKey:(int64_t)key;
-
-/**
- * Sets the raw enum value for the given key.
- *
- * @note This method bypass the validationFunc to enable the setting of values that
- * were not known at the time the binary was compiled.
- *
- * @param rawValue The raw enum value to set.
- * @param key The key under which to store the raw enum value.
- **/
-- (void)setRawValue:(int32_t)rawValue forKey:(int64_t)key;
-
-/**
- * Removes the entry for the given key.
- *
- * @param aKey Key to be removed from this dictionary.
- **/
-- (void)removeEnumForKey:(int64_t)aKey;
-
-/**
- * Removes all entries in this dictionary.
- **/
-- (void)removeAll;
-
-@end
-
-#pragma mark - Int64 -> Object
-
-/**
- * Class used for map fields of <int64_t, ObjectType>
- * values. This performs better than boxing into NSNumbers in NSDictionaries.
- *
- * @note This class is not meant to be subclassed.
- **/
-@interface GPBInt64ObjectDictionary<__covariant ObjectType> : NSObject <NSCopying>
-
-/** Number of entries stored in this dictionary. */
-@property(nonatomic, readonly) NSUInteger count;
-
-/**
- * @return A newly instanced and empty dictionary.
- **/
-+ (instancetype)dictionary;
-
-/**
- * Creates and initializes a dictionary with the single entry given.
- *
- * @param object The value to be placed in the dictionary.
- * @param key The key under which to store the value.
- *
- * @return A newly instanced dictionary with the key and value in it.
- **/
-+ (instancetype)dictionaryWithObject:(ObjectType)object
- forKey:(int64_t)key;
-
-/**
- * Creates and initializes a dictionary with the entries given.
- *
- * @param objects The values to be placed in the dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of entries to store in the dictionary.
- *
- * @return A newly instanced dictionary with the keys and values in it.
- **/
-+ (instancetype)dictionaryWithObjects:(const ObjectType __nonnull GPB_UNSAFE_UNRETAINED [__nullable])objects
- forKeys:(const int64_t [__nullable])keys
- count:(NSUInteger)count;
-
-/**
- * Creates and initializes a dictionary with the entries from the given.
- * dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to the dictionary.
- *
- * @return A newly instanced dictionary with the entries from the given
- * dictionary in it.
- **/
-+ (instancetype)dictionaryWithDictionary:(GPBInt64ObjectDictionary *)dictionary;
-
-/**
- * Creates and initializes a dictionary with the given capacity.
- *
- * @param numItems Capacity needed for the dictionary.
- *
- * @return A newly instanced dictionary with the given capacity.
- **/
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems;
-
-/**
- * Initializes this dictionary, copying the given values and keys.
- *
- * @param objects The values to be placed in this dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of elements to copy into the dictionary.
- *
- * @return A newly initialized dictionary with a copy of the values and keys.
- **/
-- (instancetype)initWithObjects:(const ObjectType __nonnull GPB_UNSAFE_UNRETAINED [__nullable])objects
- forKeys:(const int64_t [__nullable])keys
- count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
-
-/**
- * Initializes this dictionary, copying the entries from the given dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to this dictionary.
- *
- * @return A newly initialized dictionary with the entries of the given dictionary.
- **/
-- (instancetype)initWithDictionary:(GPBInt64ObjectDictionary *)dictionary;
-
-/**
- * Initializes this dictionary with the requested capacity.
- *
- * @param numItems Number of items needed for this dictionary.
- *
- * @return A newly initialized dictionary with the requested capacity.
- **/
-- (instancetype)initWithCapacity:(NSUInteger)numItems;
-
-/**
- * Fetches the object stored under the given key.
- *
- * @param key Key under which the value is stored, if present.
- *
- * @return The object if found, nil otherwise.
- **/
-- (ObjectType)objectForKey:(int64_t)key;
-
-/**
- * Enumerates the keys and values on this dictionary with the given block.
- *
- * @param block The block to enumerate with.
- * **key**: The key for the current entry.
- * **object**: The value for the current entry
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateKeysAndObjectsUsingBlock:
- (void (^)(int64_t key, ObjectType object, BOOL *stop))block;
-
-/**
- * Adds the keys and values from another dictionary.
- *
- * @param otherDictionary Dictionary containing entries to be added to this
- * dictionary.
- **/
-- (void)addEntriesFromDictionary:(GPBInt64ObjectDictionary *)otherDictionary;
-
-/**
- * Sets the value for the given key.
- *
- * @param object The value to set.
- * @param key The key under which to store the value.
- **/
-- (void)setObject:(ObjectType)object forKey:(int64_t)key;
-
-/**
- * Removes the entry for the given key.
- *
- * @param aKey Key to be removed from this dictionary.
- **/
-- (void)removeObjectForKey:(int64_t)aKey;
-
-/**
- * Removes all entries in this dictionary.
- **/
-- (void)removeAll;
-
-@end
-
-#pragma mark - Bool -> UInt32
-
-/**
- * Class used for map fields of <BOOL, uint32_t>
- * values. This performs better than boxing into NSNumbers in NSDictionaries.
- *
- * @note This class is not meant to be subclassed.
- **/
-@interface GPBBoolUInt32Dictionary : NSObject <NSCopying>
-
-/** Number of entries stored in this dictionary. */
-@property(nonatomic, readonly) NSUInteger count;
-
-/**
- * @return A newly instanced and empty dictionary.
- **/
-+ (instancetype)dictionary;
-
-/**
- * Creates and initializes a dictionary with the single entry given.
- *
- * @param value The value to be placed in the dictionary.
- * @param key The key under which to store the value.
- *
- * @return A newly instanced dictionary with the key and value in it.
- **/
-+ (instancetype)dictionaryWithUInt32:(uint32_t)value
- forKey:(BOOL)key;
-
-/**
- * Creates and initializes a dictionary with the entries given.
- *
- * @param values The values to be placed in the dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of entries to store in the dictionary.
- *
- * @return A newly instanced dictionary with the keys and values in it.
- **/
-+ (instancetype)dictionaryWithUInt32s:(const uint32_t [__nullable])values
- forKeys:(const BOOL [__nullable])keys
- count:(NSUInteger)count;
-
-/**
- * Creates and initializes a dictionary with the entries from the given.
- * dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to the dictionary.
- *
- * @return A newly instanced dictionary with the entries from the given
- * dictionary in it.
- **/
-+ (instancetype)dictionaryWithDictionary:(GPBBoolUInt32Dictionary *)dictionary;
-
-/**
- * Creates and initializes a dictionary with the given capacity.
- *
- * @param numItems Capacity needed for the dictionary.
- *
- * @return A newly instanced dictionary with the given capacity.
- **/
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems;
-
-/**
- * Initializes this dictionary, copying the given values and keys.
- *
- * @param values The values to be placed in this dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of elements to copy into the dictionary.
- *
- * @return A newly initialized dictionary with a copy of the values and keys.
- **/
-- (instancetype)initWithUInt32s:(const uint32_t [__nullable])values
- forKeys:(const BOOL [__nullable])keys
- count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
-
-/**
- * Initializes this dictionary, copying the entries from the given dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to this dictionary.
- *
- * @return A newly initialized dictionary with the entries of the given dictionary.
- **/
-- (instancetype)initWithDictionary:(GPBBoolUInt32Dictionary *)dictionary;
-
-/**
- * Initializes this dictionary with the requested capacity.
- *
- * @param numItems Number of items needed for this dictionary.
- *
- * @return A newly initialized dictionary with the requested capacity.
- **/
-- (instancetype)initWithCapacity:(NSUInteger)numItems;
-
-/**
- * Gets the value for the given key.
- *
- * @param value Pointer into which the value will be set, if found.
- * @param key Key under which the value is stored, if present.
- *
- * @return YES if the key was found and the value was copied, NO otherwise.
- **/
-- (BOOL)getUInt32:(nullable uint32_t *)value forKey:(BOOL)key;
-
-/**
- * Enumerates the keys and values on this dictionary with the given block.
- *
- * @param block The block to enumerate with.
- * **key**: The key for the current entry.
- * **value**: The value for the current entry
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateKeysAndUInt32sUsingBlock:
- (void (^)(BOOL key, uint32_t value, BOOL *stop))block;
-
-/**
- * Adds the keys and values from another dictionary.
- *
- * @param otherDictionary Dictionary containing entries to be added to this
- * dictionary.
- **/
-- (void)addEntriesFromDictionary:(GPBBoolUInt32Dictionary *)otherDictionary;
-
-/**
- * Sets the value for the given key.
- *
- * @param value The value to set.
- * @param key The key under which to store the value.
- **/
-- (void)setUInt32:(uint32_t)value forKey:(BOOL)key;
-
-/**
- * Removes the entry for the given key.
- *
- * @param aKey Key to be removed from this dictionary.
- **/
-- (void)removeUInt32ForKey:(BOOL)aKey;
-
-/**
- * Removes all entries in this dictionary.
- **/
-- (void)removeAll;
-
-@end
-
-#pragma mark - Bool -> Int32
-
-/**
- * Class used for map fields of <BOOL, int32_t>
- * values. This performs better than boxing into NSNumbers in NSDictionaries.
- *
- * @note This class is not meant to be subclassed.
- **/
-@interface GPBBoolInt32Dictionary : NSObject <NSCopying>
-
-/** Number of entries stored in this dictionary. */
-@property(nonatomic, readonly) NSUInteger count;
-
-/**
- * @return A newly instanced and empty dictionary.
- **/
-+ (instancetype)dictionary;
-
-/**
- * Creates and initializes a dictionary with the single entry given.
- *
- * @param value The value to be placed in the dictionary.
- * @param key The key under which to store the value.
- *
- * @return A newly instanced dictionary with the key and value in it.
- **/
-+ (instancetype)dictionaryWithInt32:(int32_t)value
- forKey:(BOOL)key;
-
-/**
- * Creates and initializes a dictionary with the entries given.
- *
- * @param values The values to be placed in the dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of entries to store in the dictionary.
- *
- * @return A newly instanced dictionary with the keys and values in it.
- **/
-+ (instancetype)dictionaryWithInt32s:(const int32_t [__nullable])values
- forKeys:(const BOOL [__nullable])keys
- count:(NSUInteger)count;
-
-/**
- * Creates and initializes a dictionary with the entries from the given.
- * dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to the dictionary.
- *
- * @return A newly instanced dictionary with the entries from the given
- * dictionary in it.
- **/
-+ (instancetype)dictionaryWithDictionary:(GPBBoolInt32Dictionary *)dictionary;
-
-/**
- * Creates and initializes a dictionary with the given capacity.
- *
- * @param numItems Capacity needed for the dictionary.
- *
- * @return A newly instanced dictionary with the given capacity.
- **/
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems;
-
-/**
- * Initializes this dictionary, copying the given values and keys.
- *
- * @param values The values to be placed in this dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of elements to copy into the dictionary.
- *
- * @return A newly initialized dictionary with a copy of the values and keys.
- **/
-- (instancetype)initWithInt32s:(const int32_t [__nullable])values
- forKeys:(const BOOL [__nullable])keys
- count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
-
-/**
- * Initializes this dictionary, copying the entries from the given dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to this dictionary.
- *
- * @return A newly initialized dictionary with the entries of the given dictionary.
- **/
-- (instancetype)initWithDictionary:(GPBBoolInt32Dictionary *)dictionary;
-
-/**
- * Initializes this dictionary with the requested capacity.
- *
- * @param numItems Number of items needed for this dictionary.
- *
- * @return A newly initialized dictionary with the requested capacity.
- **/
-- (instancetype)initWithCapacity:(NSUInteger)numItems;
-
-/**
- * Gets the value for the given key.
- *
- * @param value Pointer into which the value will be set, if found.
- * @param key Key under which the value is stored, if present.
- *
- * @return YES if the key was found and the value was copied, NO otherwise.
- **/
-- (BOOL)getInt32:(nullable int32_t *)value forKey:(BOOL)key;
-
-/**
- * Enumerates the keys and values on this dictionary with the given block.
- *
- * @param block The block to enumerate with.
- * **key**: The key for the current entry.
- * **value**: The value for the current entry
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateKeysAndInt32sUsingBlock:
- (void (^)(BOOL key, int32_t value, BOOL *stop))block;
-
-/**
- * Adds the keys and values from another dictionary.
- *
- * @param otherDictionary Dictionary containing entries to be added to this
- * dictionary.
- **/
-- (void)addEntriesFromDictionary:(GPBBoolInt32Dictionary *)otherDictionary;
-
-/**
- * Sets the value for the given key.
- *
- * @param value The value to set.
- * @param key The key under which to store the value.
- **/
-- (void)setInt32:(int32_t)value forKey:(BOOL)key;
-
-/**
- * Removes the entry for the given key.
- *
- * @param aKey Key to be removed from this dictionary.
- **/
-- (void)removeInt32ForKey:(BOOL)aKey;
-
-/**
- * Removes all entries in this dictionary.
- **/
-- (void)removeAll;
-
-@end
-
-#pragma mark - Bool -> UInt64
-
-/**
- * Class used for map fields of <BOOL, uint64_t>
- * values. This performs better than boxing into NSNumbers in NSDictionaries.
- *
- * @note This class is not meant to be subclassed.
- **/
-@interface GPBBoolUInt64Dictionary : NSObject <NSCopying>
-
-/** Number of entries stored in this dictionary. */
-@property(nonatomic, readonly) NSUInteger count;
-
-/**
- * @return A newly instanced and empty dictionary.
- **/
-+ (instancetype)dictionary;
-
-/**
- * Creates and initializes a dictionary with the single entry given.
- *
- * @param value The value to be placed in the dictionary.
- * @param key The key under which to store the value.
- *
- * @return A newly instanced dictionary with the key and value in it.
- **/
-+ (instancetype)dictionaryWithUInt64:(uint64_t)value
- forKey:(BOOL)key;
-
-/**
- * Creates and initializes a dictionary with the entries given.
- *
- * @param values The values to be placed in the dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of entries to store in the dictionary.
- *
- * @return A newly instanced dictionary with the keys and values in it.
- **/
-+ (instancetype)dictionaryWithUInt64s:(const uint64_t [__nullable])values
- forKeys:(const BOOL [__nullable])keys
- count:(NSUInteger)count;
-
-/**
- * Creates and initializes a dictionary with the entries from the given.
- * dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to the dictionary.
- *
- * @return A newly instanced dictionary with the entries from the given
- * dictionary in it.
- **/
-+ (instancetype)dictionaryWithDictionary:(GPBBoolUInt64Dictionary *)dictionary;
-
-/**
- * Creates and initializes a dictionary with the given capacity.
- *
- * @param numItems Capacity needed for the dictionary.
- *
- * @return A newly instanced dictionary with the given capacity.
- **/
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems;
-
-/**
- * Initializes this dictionary, copying the given values and keys.
- *
- * @param values The values to be placed in this dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of elements to copy into the dictionary.
- *
- * @return A newly initialized dictionary with a copy of the values and keys.
- **/
-- (instancetype)initWithUInt64s:(const uint64_t [__nullable])values
- forKeys:(const BOOL [__nullable])keys
- count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
-
-/**
- * Initializes this dictionary, copying the entries from the given dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to this dictionary.
- *
- * @return A newly initialized dictionary with the entries of the given dictionary.
- **/
-- (instancetype)initWithDictionary:(GPBBoolUInt64Dictionary *)dictionary;
-
-/**
- * Initializes this dictionary with the requested capacity.
- *
- * @param numItems Number of items needed for this dictionary.
- *
- * @return A newly initialized dictionary with the requested capacity.
- **/
-- (instancetype)initWithCapacity:(NSUInteger)numItems;
-
-/**
- * Gets the value for the given key.
- *
- * @param value Pointer into which the value will be set, if found.
- * @param key Key under which the value is stored, if present.
- *
- * @return YES if the key was found and the value was copied, NO otherwise.
- **/
-- (BOOL)getUInt64:(nullable uint64_t *)value forKey:(BOOL)key;
-
-/**
- * Enumerates the keys and values on this dictionary with the given block.
- *
- * @param block The block to enumerate with.
- * **key**: The key for the current entry.
- * **value**: The value for the current entry
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateKeysAndUInt64sUsingBlock:
- (void (^)(BOOL key, uint64_t value, BOOL *stop))block;
-
-/**
- * Adds the keys and values from another dictionary.
- *
- * @param otherDictionary Dictionary containing entries to be added to this
- * dictionary.
- **/
-- (void)addEntriesFromDictionary:(GPBBoolUInt64Dictionary *)otherDictionary;
-
-/**
- * Sets the value for the given key.
- *
- * @param value The value to set.
- * @param key The key under which to store the value.
- **/
-- (void)setUInt64:(uint64_t)value forKey:(BOOL)key;
-
-/**
- * Removes the entry for the given key.
- *
- * @param aKey Key to be removed from this dictionary.
- **/
-- (void)removeUInt64ForKey:(BOOL)aKey;
-
-/**
- * Removes all entries in this dictionary.
- **/
-- (void)removeAll;
-
-@end
-
-#pragma mark - Bool -> Int64
-
-/**
- * Class used for map fields of <BOOL, int64_t>
- * values. This performs better than boxing into NSNumbers in NSDictionaries.
- *
- * @note This class is not meant to be subclassed.
- **/
-@interface GPBBoolInt64Dictionary : NSObject <NSCopying>
-
-/** Number of entries stored in this dictionary. */
-@property(nonatomic, readonly) NSUInteger count;
-
-/**
- * @return A newly instanced and empty dictionary.
- **/
-+ (instancetype)dictionary;
-
-/**
- * Creates and initializes a dictionary with the single entry given.
- *
- * @param value The value to be placed in the dictionary.
- * @param key The key under which to store the value.
- *
- * @return A newly instanced dictionary with the key and value in it.
- **/
-+ (instancetype)dictionaryWithInt64:(int64_t)value
- forKey:(BOOL)key;
-
-/**
- * Creates and initializes a dictionary with the entries given.
- *
- * @param values The values to be placed in the dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of entries to store in the dictionary.
- *
- * @return A newly instanced dictionary with the keys and values in it.
- **/
-+ (instancetype)dictionaryWithInt64s:(const int64_t [__nullable])values
- forKeys:(const BOOL [__nullable])keys
- count:(NSUInteger)count;
-
-/**
- * Creates and initializes a dictionary with the entries from the given.
- * dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to the dictionary.
- *
- * @return A newly instanced dictionary with the entries from the given
- * dictionary in it.
- **/
-+ (instancetype)dictionaryWithDictionary:(GPBBoolInt64Dictionary *)dictionary;
-
-/**
- * Creates and initializes a dictionary with the given capacity.
- *
- * @param numItems Capacity needed for the dictionary.
- *
- * @return A newly instanced dictionary with the given capacity.
- **/
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems;
-
-/**
- * Initializes this dictionary, copying the given values and keys.
- *
- * @param values The values to be placed in this dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of elements to copy into the dictionary.
- *
- * @return A newly initialized dictionary with a copy of the values and keys.
- **/
-- (instancetype)initWithInt64s:(const int64_t [__nullable])values
- forKeys:(const BOOL [__nullable])keys
- count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
-
-/**
- * Initializes this dictionary, copying the entries from the given dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to this dictionary.
- *
- * @return A newly initialized dictionary with the entries of the given dictionary.
- **/
-- (instancetype)initWithDictionary:(GPBBoolInt64Dictionary *)dictionary;
-
-/**
- * Initializes this dictionary with the requested capacity.
- *
- * @param numItems Number of items needed for this dictionary.
- *
- * @return A newly initialized dictionary with the requested capacity.
- **/
-- (instancetype)initWithCapacity:(NSUInteger)numItems;
-
-/**
- * Gets the value for the given key.
- *
- * @param value Pointer into which the value will be set, if found.
- * @param key Key under which the value is stored, if present.
- *
- * @return YES if the key was found and the value was copied, NO otherwise.
- **/
-- (BOOL)getInt64:(nullable int64_t *)value forKey:(BOOL)key;
-
-/**
- * Enumerates the keys and values on this dictionary with the given block.
- *
- * @param block The block to enumerate with.
- * **key**: The key for the current entry.
- * **value**: The value for the current entry
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateKeysAndInt64sUsingBlock:
- (void (^)(BOOL key, int64_t value, BOOL *stop))block;
-
-/**
- * Adds the keys and values from another dictionary.
- *
- * @param otherDictionary Dictionary containing entries to be added to this
- * dictionary.
- **/
-- (void)addEntriesFromDictionary:(GPBBoolInt64Dictionary *)otherDictionary;
-
-/**
- * Sets the value for the given key.
- *
- * @param value The value to set.
- * @param key The key under which to store the value.
- **/
-- (void)setInt64:(int64_t)value forKey:(BOOL)key;
-
-/**
- * Removes the entry for the given key.
- *
- * @param aKey Key to be removed from this dictionary.
- **/
-- (void)removeInt64ForKey:(BOOL)aKey;
-
-/**
- * Removes all entries in this dictionary.
- **/
-- (void)removeAll;
-
-@end
-
-#pragma mark - Bool -> Bool
-
-/**
- * Class used for map fields of <BOOL, BOOL>
- * values. This performs better than boxing into NSNumbers in NSDictionaries.
- *
- * @note This class is not meant to be subclassed.
- **/
-@interface GPBBoolBoolDictionary : NSObject <NSCopying>
-
-/** Number of entries stored in this dictionary. */
-@property(nonatomic, readonly) NSUInteger count;
-
-/**
- * @return A newly instanced and empty dictionary.
- **/
-+ (instancetype)dictionary;
-
-/**
- * Creates and initializes a dictionary with the single entry given.
- *
- * @param value The value to be placed in the dictionary.
- * @param key The key under which to store the value.
- *
- * @return A newly instanced dictionary with the key and value in it.
- **/
-+ (instancetype)dictionaryWithBool:(BOOL)value
- forKey:(BOOL)key;
-
-/**
- * Creates and initializes a dictionary with the entries given.
- *
- * @param values The values to be placed in the dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of entries to store in the dictionary.
- *
- * @return A newly instanced dictionary with the keys and values in it.
- **/
-+ (instancetype)dictionaryWithBools:(const BOOL [__nullable])values
- forKeys:(const BOOL [__nullable])keys
- count:(NSUInteger)count;
-
-/**
- * Creates and initializes a dictionary with the entries from the given.
- * dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to the dictionary.
- *
- * @return A newly instanced dictionary with the entries from the given
- * dictionary in it.
- **/
-+ (instancetype)dictionaryWithDictionary:(GPBBoolBoolDictionary *)dictionary;
-
-/**
- * Creates and initializes a dictionary with the given capacity.
- *
- * @param numItems Capacity needed for the dictionary.
- *
- * @return A newly instanced dictionary with the given capacity.
- **/
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems;
-
-/**
- * Initializes this dictionary, copying the given values and keys.
- *
- * @param values The values to be placed in this dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of elements to copy into the dictionary.
- *
- * @return A newly initialized dictionary with a copy of the values and keys.
- **/
-- (instancetype)initWithBools:(const BOOL [__nullable])values
- forKeys:(const BOOL [__nullable])keys
- count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
-
-/**
- * Initializes this dictionary, copying the entries from the given dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to this dictionary.
- *
- * @return A newly initialized dictionary with the entries of the given dictionary.
- **/
-- (instancetype)initWithDictionary:(GPBBoolBoolDictionary *)dictionary;
-
-/**
- * Initializes this dictionary with the requested capacity.
- *
- * @param numItems Number of items needed for this dictionary.
- *
- * @return A newly initialized dictionary with the requested capacity.
- **/
-- (instancetype)initWithCapacity:(NSUInteger)numItems;
-
-/**
- * Gets the value for the given key.
- *
- * @param value Pointer into which the value will be set, if found.
- * @param key Key under which the value is stored, if present.
- *
- * @return YES if the key was found and the value was copied, NO otherwise.
- **/
-- (BOOL)getBool:(nullable BOOL *)value forKey:(BOOL)key;
-
-/**
- * Enumerates the keys and values on this dictionary with the given block.
- *
- * @param block The block to enumerate with.
- * **key**: The key for the current entry.
- * **value**: The value for the current entry
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateKeysAndBoolsUsingBlock:
- (void (^)(BOOL key, BOOL value, BOOL *stop))block;
-
-/**
- * Adds the keys and values from another dictionary.
- *
- * @param otherDictionary Dictionary containing entries to be added to this
- * dictionary.
- **/
-- (void)addEntriesFromDictionary:(GPBBoolBoolDictionary *)otherDictionary;
-
-/**
- * Sets the value for the given key.
- *
- * @param value The value to set.
- * @param key The key under which to store the value.
- **/
-- (void)setBool:(BOOL)value forKey:(BOOL)key;
-
-/**
- * Removes the entry for the given key.
- *
- * @param aKey Key to be removed from this dictionary.
- **/
-- (void)removeBoolForKey:(BOOL)aKey;
-
-/**
- * Removes all entries in this dictionary.
- **/
-- (void)removeAll;
-
-@end
-
-#pragma mark - Bool -> Float
-
-/**
- * Class used for map fields of <BOOL, float>
- * values. This performs better than boxing into NSNumbers in NSDictionaries.
- *
- * @note This class is not meant to be subclassed.
- **/
-@interface GPBBoolFloatDictionary : NSObject <NSCopying>
-
-/** Number of entries stored in this dictionary. */
-@property(nonatomic, readonly) NSUInteger count;
-
-/**
- * @return A newly instanced and empty dictionary.
- **/
-+ (instancetype)dictionary;
-
-/**
- * Creates and initializes a dictionary with the single entry given.
- *
- * @param value The value to be placed in the dictionary.
- * @param key The key under which to store the value.
- *
- * @return A newly instanced dictionary with the key and value in it.
- **/
-+ (instancetype)dictionaryWithFloat:(float)value
- forKey:(BOOL)key;
-
-/**
- * Creates and initializes a dictionary with the entries given.
- *
- * @param values The values to be placed in the dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of entries to store in the dictionary.
- *
- * @return A newly instanced dictionary with the keys and values in it.
- **/
-+ (instancetype)dictionaryWithFloats:(const float [__nullable])values
- forKeys:(const BOOL [__nullable])keys
- count:(NSUInteger)count;
-
-/**
- * Creates and initializes a dictionary with the entries from the given.
- * dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to the dictionary.
- *
- * @return A newly instanced dictionary with the entries from the given
- * dictionary in it.
- **/
-+ (instancetype)dictionaryWithDictionary:(GPBBoolFloatDictionary *)dictionary;
-
-/**
- * Creates and initializes a dictionary with the given capacity.
- *
- * @param numItems Capacity needed for the dictionary.
- *
- * @return A newly instanced dictionary with the given capacity.
- **/
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems;
-
-/**
- * Initializes this dictionary, copying the given values and keys.
- *
- * @param values The values to be placed in this dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of elements to copy into the dictionary.
- *
- * @return A newly initialized dictionary with a copy of the values and keys.
- **/
-- (instancetype)initWithFloats:(const float [__nullable])values
- forKeys:(const BOOL [__nullable])keys
- count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
-
-/**
- * Initializes this dictionary, copying the entries from the given dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to this dictionary.
- *
- * @return A newly initialized dictionary with the entries of the given dictionary.
- **/
-- (instancetype)initWithDictionary:(GPBBoolFloatDictionary *)dictionary;
-
-/**
- * Initializes this dictionary with the requested capacity.
- *
- * @param numItems Number of items needed for this dictionary.
- *
- * @return A newly initialized dictionary with the requested capacity.
- **/
-- (instancetype)initWithCapacity:(NSUInteger)numItems;
-
-/**
- * Gets the value for the given key.
- *
- * @param value Pointer into which the value will be set, if found.
- * @param key Key under which the value is stored, if present.
- *
- * @return YES if the key was found and the value was copied, NO otherwise.
- **/
-- (BOOL)getFloat:(nullable float *)value forKey:(BOOL)key;
-
-/**
- * Enumerates the keys and values on this dictionary with the given block.
- *
- * @param block The block to enumerate with.
- * **key**: The key for the current entry.
- * **value**: The value for the current entry
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateKeysAndFloatsUsingBlock:
- (void (^)(BOOL key, float value, BOOL *stop))block;
-
-/**
- * Adds the keys and values from another dictionary.
- *
- * @param otherDictionary Dictionary containing entries to be added to this
- * dictionary.
- **/
-- (void)addEntriesFromDictionary:(GPBBoolFloatDictionary *)otherDictionary;
-
-/**
- * Sets the value for the given key.
- *
- * @param value The value to set.
- * @param key The key under which to store the value.
- **/
-- (void)setFloat:(float)value forKey:(BOOL)key;
-
-/**
- * Removes the entry for the given key.
- *
- * @param aKey Key to be removed from this dictionary.
- **/
-- (void)removeFloatForKey:(BOOL)aKey;
-
-/**
- * Removes all entries in this dictionary.
- **/
-- (void)removeAll;
-
-@end
-
-#pragma mark - Bool -> Double
-
-/**
- * Class used for map fields of <BOOL, double>
- * values. This performs better than boxing into NSNumbers in NSDictionaries.
- *
- * @note This class is not meant to be subclassed.
- **/
-@interface GPBBoolDoubleDictionary : NSObject <NSCopying>
-
-/** Number of entries stored in this dictionary. */
-@property(nonatomic, readonly) NSUInteger count;
-
-/**
- * @return A newly instanced and empty dictionary.
- **/
-+ (instancetype)dictionary;
-
-/**
- * Creates and initializes a dictionary with the single entry given.
- *
- * @param value The value to be placed in the dictionary.
- * @param key The key under which to store the value.
- *
- * @return A newly instanced dictionary with the key and value in it.
- **/
-+ (instancetype)dictionaryWithDouble:(double)value
- forKey:(BOOL)key;
-
-/**
- * Creates and initializes a dictionary with the entries given.
- *
- * @param values The values to be placed in the dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of entries to store in the dictionary.
- *
- * @return A newly instanced dictionary with the keys and values in it.
- **/
-+ (instancetype)dictionaryWithDoubles:(const double [__nullable])values
- forKeys:(const BOOL [__nullable])keys
- count:(NSUInteger)count;
-
-/**
- * Creates and initializes a dictionary with the entries from the given.
- * dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to the dictionary.
- *
- * @return A newly instanced dictionary with the entries from the given
- * dictionary in it.
- **/
-+ (instancetype)dictionaryWithDictionary:(GPBBoolDoubleDictionary *)dictionary;
-
-/**
- * Creates and initializes a dictionary with the given capacity.
- *
- * @param numItems Capacity needed for the dictionary.
- *
- * @return A newly instanced dictionary with the given capacity.
- **/
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems;
-
-/**
- * Initializes this dictionary, copying the given values and keys.
- *
- * @param values The values to be placed in this dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of elements to copy into the dictionary.
- *
- * @return A newly initialized dictionary with a copy of the values and keys.
- **/
-- (instancetype)initWithDoubles:(const double [__nullable])values
- forKeys:(const BOOL [__nullable])keys
- count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
-
-/**
- * Initializes this dictionary, copying the entries from the given dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to this dictionary.
- *
- * @return A newly initialized dictionary with the entries of the given dictionary.
- **/
-- (instancetype)initWithDictionary:(GPBBoolDoubleDictionary *)dictionary;
-
-/**
- * Initializes this dictionary with the requested capacity.
- *
- * @param numItems Number of items needed for this dictionary.
- *
- * @return A newly initialized dictionary with the requested capacity.
- **/
-- (instancetype)initWithCapacity:(NSUInteger)numItems;
-
-/**
- * Gets the value for the given key.
- *
- * @param value Pointer into which the value will be set, if found.
- * @param key Key under which the value is stored, if present.
- *
- * @return YES if the key was found and the value was copied, NO otherwise.
- **/
-- (BOOL)getDouble:(nullable double *)value forKey:(BOOL)key;
-
-/**
- * Enumerates the keys and values on this dictionary with the given block.
- *
- * @param block The block to enumerate with.
- * **key**: The key for the current entry.
- * **value**: The value for the current entry
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateKeysAndDoublesUsingBlock:
- (void (^)(BOOL key, double value, BOOL *stop))block;
-
-/**
- * Adds the keys and values from another dictionary.
- *
- * @param otherDictionary Dictionary containing entries to be added to this
- * dictionary.
- **/
-- (void)addEntriesFromDictionary:(GPBBoolDoubleDictionary *)otherDictionary;
-
-/**
- * Sets the value for the given key.
- *
- * @param value The value to set.
- * @param key The key under which to store the value.
- **/
-- (void)setDouble:(double)value forKey:(BOOL)key;
-
-/**
- * Removes the entry for the given key.
- *
- * @param aKey Key to be removed from this dictionary.
- **/
-- (void)removeDoubleForKey:(BOOL)aKey;
-
-/**
- * Removes all entries in this dictionary.
- **/
-- (void)removeAll;
-
-@end
-
-#pragma mark - Bool -> Enum
-
-/**
- * Class used for map fields of <BOOL, int32_t>
- * values. This performs better than boxing into NSNumbers in NSDictionaries.
- *
- * @note This class is not meant to be subclassed.
- **/
-@interface GPBBoolEnumDictionary : NSObject <NSCopying>
-
-/** Number of entries stored in this dictionary. */
-@property(nonatomic, readonly) NSUInteger count;
-/** The validation function to check if the enums are valid. */
-@property(nonatomic, readonly) GPBEnumValidationFunc validationFunc;
-
-/**
- * @return A newly instanced and empty dictionary.
- **/
-+ (instancetype)dictionary;
-
-/**
- * Creates and initializes a dictionary with the given validation function.
- *
- * @param func The enum validation function for the dictionary.
- *
- * @return A newly instanced dictionary.
- **/
-+ (instancetype)dictionaryWithValidationFunction:(nullable GPBEnumValidationFunc)func;
-
-/**
- * Creates and initializes a dictionary with the single entry given.
- *
- * @param func The enum validation function for the dictionary.
- * @param rawValue The raw enum value to be placed in the dictionary.
- * @param key The key under which to store the value.
- *
- * @return A newly instanced dictionary with the key and value in it.
- **/
-+ (instancetype)dictionaryWithValidationFunction:(nullable GPBEnumValidationFunc)func
- rawValue:(int32_t)rawValue
- forKey:(BOOL)key;
-
-/**
- * Creates and initializes a dictionary with the entries given.
- *
- * @param func The enum validation function for the dictionary.
- * @param values The raw enum values values to be placed in the dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of entries to store in the dictionary.
- *
- * @return A newly instanced dictionary with the keys and values in it.
- **/
-+ (instancetype)dictionaryWithValidationFunction:(nullable GPBEnumValidationFunc)func
- rawValues:(const int32_t [__nullable])values
- forKeys:(const BOOL [__nullable])keys
- count:(NSUInteger)count;
-
-/**
- * Creates and initializes a dictionary with the entries from the given.
- * dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to the dictionary.
- *
- * @return A newly instanced dictionary with the entries from the given
- * dictionary in it.
- **/
-+ (instancetype)dictionaryWithDictionary:(GPBBoolEnumDictionary *)dictionary;
-
-/**
- * Creates and initializes a dictionary with the given capacity.
- *
- * @param func The enum validation function for the dictionary.
- * @param numItems Capacity needed for the dictionary.
- *
- * @return A newly instanced dictionary with the given capacity.
- **/
-+ (instancetype)dictionaryWithValidationFunction:(nullable GPBEnumValidationFunc)func
- capacity:(NSUInteger)numItems;
-
-/**
- * Initializes a dictionary with the given validation function.
- *
- * @param func The enum validation function for the dictionary.
- *
- * @return A newly initialized dictionary.
- **/
-- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func;
-
-/**
- * Initializes a dictionary with the entries given.
- *
- * @param func The enum validation function for the dictionary.
- * @param values The raw enum values values to be placed in the dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of entries to store in the dictionary.
- *
- * @return A newly initialized dictionary with the keys and values in it.
- **/
-- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func
- rawValues:(const int32_t [__nullable])values
- forKeys:(const BOOL [__nullable])keys
- count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
-
-/**
- * Initializes a dictionary with the entries from the given.
- * dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to the dictionary.
- *
- * @return A newly initialized dictionary with the entries from the given
- * dictionary in it.
- **/
-- (instancetype)initWithDictionary:(GPBBoolEnumDictionary *)dictionary;
-
-/**
- * Initializes a dictionary with the given capacity.
- *
- * @param func The enum validation function for the dictionary.
- * @param numItems Capacity needed for the dictionary.
- *
- * @return A newly initialized dictionary with the given capacity.
- **/
-- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func
- capacity:(NSUInteger)numItems;
-
-// These will return kGPBUnrecognizedEnumeratorValue if the value for the key
-// is not a valid enumerator as defined by validationFunc. If the actual value is
-// desired, use "raw" version of the method.
-
-/**
- * Gets the value for the given key.
- *
- * @param value Pointer into which the value will be set, if found.
- * @param key Key under which the value is stored, if present.
- *
- * @return YES if the key was found and the value was copied, NO otherwise.
- **/
-- (BOOL)getEnum:(nullable int32_t *)value forKey:(BOOL)key;
-
-/**
- * Enumerates the keys and values on this dictionary with the given block.
- *
- * @param block The block to enumerate with.
- * **key**: The key for the current entry.
- * **value**: The value for the current entry
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateKeysAndEnumsUsingBlock:
- (void (^)(BOOL key, int32_t value, BOOL *stop))block;
-
-/**
- * Gets the raw enum value for the given key.
- *
- * @note This method bypass the validationFunc to enable the access of values that
- * were not known at the time the binary was compiled.
- *
- * @param rawValue Pointer into which the value will be set, if found.
- * @param key Key under which the value is stored, if present.
- *
- * @return YES if the key was found and the value was copied, NO otherwise.
- **/
-- (BOOL)getRawValue:(nullable int32_t *)rawValue forKey:(BOOL)key;
-
-/**
- * Enumerates the keys and values on this dictionary with the given block.
- *
- * @note This method bypass the validationFunc to enable the access of values that
- * were not known at the time the binary was compiled.
- *
- * @param block The block to enumerate with.
- * **key**: The key for the current entry.
- * **rawValue**: The value for the current entry
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateKeysAndRawValuesUsingBlock:
- (void (^)(BOOL key, int32_t rawValue, BOOL *stop))block;
-
-/**
- * Adds the keys and raw enum values from another dictionary.
- *
- * @note This method bypass the validationFunc to enable the setting of values that
- * were not known at the time the binary was compiled.
- *
- * @param otherDictionary Dictionary containing entries to be added to this
- * dictionary.
- **/
-- (void)addRawEntriesFromDictionary:(GPBBoolEnumDictionary *)otherDictionary;
-
-// If value is not a valid enumerator as defined by validationFunc, these
-// methods will assert in debug, and will log in release and assign the value
-// to the default value. Use the rawValue methods below to assign non enumerator
-// values.
-
-/**
- * Sets the value for the given key.
- *
- * @param value The value to set.
- * @param key The key under which to store the value.
- **/
-- (void)setEnum:(int32_t)value forKey:(BOOL)key;
-
-/**
- * Sets the raw enum value for the given key.
- *
- * @note This method bypass the validationFunc to enable the setting of values that
- * were not known at the time the binary was compiled.
- *
- * @param rawValue The raw enum value to set.
- * @param key The key under which to store the raw enum value.
- **/
-- (void)setRawValue:(int32_t)rawValue forKey:(BOOL)key;
-
-/**
- * Removes the entry for the given key.
- *
- * @param aKey Key to be removed from this dictionary.
- **/
-- (void)removeEnumForKey:(BOOL)aKey;
-
-/**
- * Removes all entries in this dictionary.
- **/
-- (void)removeAll;
-
-@end
-
-#pragma mark - Bool -> Object
-
-/**
- * Class used for map fields of <BOOL, ObjectType>
- * values. This performs better than boxing into NSNumbers in NSDictionaries.
- *
- * @note This class is not meant to be subclassed.
- **/
-@interface GPBBoolObjectDictionary<__covariant ObjectType> : NSObject <NSCopying>
-
-/** Number of entries stored in this dictionary. */
-@property(nonatomic, readonly) NSUInteger count;
-
-/**
- * @return A newly instanced and empty dictionary.
- **/
-+ (instancetype)dictionary;
-
-/**
- * Creates and initializes a dictionary with the single entry given.
- *
- * @param object The value to be placed in the dictionary.
- * @param key The key under which to store the value.
- *
- * @return A newly instanced dictionary with the key and value in it.
- **/
-+ (instancetype)dictionaryWithObject:(ObjectType)object
- forKey:(BOOL)key;
-
-/**
- * Creates and initializes a dictionary with the entries given.
- *
- * @param objects The values to be placed in the dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of entries to store in the dictionary.
- *
- * @return A newly instanced dictionary with the keys and values in it.
- **/
-+ (instancetype)dictionaryWithObjects:(const ObjectType __nonnull GPB_UNSAFE_UNRETAINED [__nullable])objects
- forKeys:(const BOOL [__nullable])keys
- count:(NSUInteger)count;
-
-/**
- * Creates and initializes a dictionary with the entries from the given.
- * dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to the dictionary.
- *
- * @return A newly instanced dictionary with the entries from the given
- * dictionary in it.
- **/
-+ (instancetype)dictionaryWithDictionary:(GPBBoolObjectDictionary *)dictionary;
-
-/**
- * Creates and initializes a dictionary with the given capacity.
- *
- * @param numItems Capacity needed for the dictionary.
- *
- * @return A newly instanced dictionary with the given capacity.
- **/
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems;
-
-/**
- * Initializes this dictionary, copying the given values and keys.
- *
- * @param objects The values to be placed in this dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of elements to copy into the dictionary.
- *
- * @return A newly initialized dictionary with a copy of the values and keys.
- **/
-- (instancetype)initWithObjects:(const ObjectType __nonnull GPB_UNSAFE_UNRETAINED [__nullable])objects
- forKeys:(const BOOL [__nullable])keys
- count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
-
-/**
- * Initializes this dictionary, copying the entries from the given dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to this dictionary.
- *
- * @return A newly initialized dictionary with the entries of the given dictionary.
- **/
-- (instancetype)initWithDictionary:(GPBBoolObjectDictionary *)dictionary;
-
-/**
- * Initializes this dictionary with the requested capacity.
- *
- * @param numItems Number of items needed for this dictionary.
- *
- * @return A newly initialized dictionary with the requested capacity.
- **/
-- (instancetype)initWithCapacity:(NSUInteger)numItems;
-
-/**
- * Fetches the object stored under the given key.
- *
- * @param key Key under which the value is stored, if present.
- *
- * @return The object if found, nil otherwise.
- **/
-- (ObjectType)objectForKey:(BOOL)key;
-
-/**
- * Enumerates the keys and values on this dictionary with the given block.
- *
- * @param block The block to enumerate with.
- * **key**: The key for the current entry.
- * **object**: The value for the current entry
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateKeysAndObjectsUsingBlock:
- (void (^)(BOOL key, ObjectType object, BOOL *stop))block;
-
-/**
- * Adds the keys and values from another dictionary.
- *
- * @param otherDictionary Dictionary containing entries to be added to this
- * dictionary.
- **/
-- (void)addEntriesFromDictionary:(GPBBoolObjectDictionary *)otherDictionary;
-
-/**
- * Sets the value for the given key.
- *
- * @param object The value to set.
- * @param key The key under which to store the value.
- **/
-- (void)setObject:(ObjectType)object forKey:(BOOL)key;
-
-/**
- * Removes the entry for the given key.
- *
- * @param aKey Key to be removed from this dictionary.
- **/
-- (void)removeObjectForKey:(BOOL)aKey;
-
-/**
- * Removes all entries in this dictionary.
- **/
-- (void)removeAll;
-
-@end
-
-#pragma mark - String -> UInt32
-
-/**
- * Class used for map fields of <NSString, uint32_t>
- * values. This performs better than boxing into NSNumbers in NSDictionaries.
- *
- * @note This class is not meant to be subclassed.
- **/
-@interface GPBStringUInt32Dictionary : NSObject <NSCopying>
-
-/** Number of entries stored in this dictionary. */
-@property(nonatomic, readonly) NSUInteger count;
-
-/**
- * @return A newly instanced and empty dictionary.
- **/
-+ (instancetype)dictionary;
-
-/**
- * Creates and initializes a dictionary with the single entry given.
- *
- * @param value The value to be placed in the dictionary.
- * @param key The key under which to store the value.
- *
- * @return A newly instanced dictionary with the key and value in it.
- **/
-+ (instancetype)dictionaryWithUInt32:(uint32_t)value
- forKey:(NSString *)key;
-
-/**
- * Creates and initializes a dictionary with the entries given.
- *
- * @param values The values to be placed in the dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of entries to store in the dictionary.
- *
- * @return A newly instanced dictionary with the keys and values in it.
- **/
-+ (instancetype)dictionaryWithUInt32s:(const uint32_t [__nullable])values
- forKeys:(const NSString * __nonnull GPB_UNSAFE_UNRETAINED [__nullable])keys
- count:(NSUInteger)count;
-
-/**
- * Creates and initializes a dictionary with the entries from the given.
- * dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to the dictionary.
- *
- * @return A newly instanced dictionary with the entries from the given
- * dictionary in it.
- **/
-+ (instancetype)dictionaryWithDictionary:(GPBStringUInt32Dictionary *)dictionary;
-
-/**
- * Creates and initializes a dictionary with the given capacity.
- *
- * @param numItems Capacity needed for the dictionary.
- *
- * @return A newly instanced dictionary with the given capacity.
- **/
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems;
-
-/**
- * Initializes this dictionary, copying the given values and keys.
- *
- * @param values The values to be placed in this dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of elements to copy into the dictionary.
- *
- * @return A newly initialized dictionary with a copy of the values and keys.
- **/
-- (instancetype)initWithUInt32s:(const uint32_t [__nullable])values
- forKeys:(const NSString * __nonnull GPB_UNSAFE_UNRETAINED [__nullable])keys
- count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
-
-/**
- * Initializes this dictionary, copying the entries from the given dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to this dictionary.
- *
- * @return A newly initialized dictionary with the entries of the given dictionary.
- **/
-- (instancetype)initWithDictionary:(GPBStringUInt32Dictionary *)dictionary;
-
-/**
- * Initializes this dictionary with the requested capacity.
- *
- * @param numItems Number of items needed for this dictionary.
- *
- * @return A newly initialized dictionary with the requested capacity.
- **/
-- (instancetype)initWithCapacity:(NSUInteger)numItems;
-
-/**
- * Gets the value for the given key.
- *
- * @param value Pointer into which the value will be set, if found.
- * @param key Key under which the value is stored, if present.
- *
- * @return YES if the key was found and the value was copied, NO otherwise.
- **/
-- (BOOL)getUInt32:(nullable uint32_t *)value forKey:(NSString *)key;
-
-/**
- * Enumerates the keys and values on this dictionary with the given block.
- *
- * @param block The block to enumerate with.
- * **key**: The key for the current entry.
- * **value**: The value for the current entry
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateKeysAndUInt32sUsingBlock:
- (void (^)(NSString *key, uint32_t value, BOOL *stop))block;
-
-/**
- * Adds the keys and values from another dictionary.
- *
- * @param otherDictionary Dictionary containing entries to be added to this
- * dictionary.
- **/
-- (void)addEntriesFromDictionary:(GPBStringUInt32Dictionary *)otherDictionary;
-
-/**
- * Sets the value for the given key.
- *
- * @param value The value to set.
- * @param key The key under which to store the value.
- **/
-- (void)setUInt32:(uint32_t)value forKey:(NSString *)key;
-
-/**
- * Removes the entry for the given key.
- *
- * @param aKey Key to be removed from this dictionary.
- **/
-- (void)removeUInt32ForKey:(NSString *)aKey;
-
-/**
- * Removes all entries in this dictionary.
- **/
-- (void)removeAll;
-
-@end
-
-#pragma mark - String -> Int32
-
-/**
- * Class used for map fields of <NSString, int32_t>
- * values. This performs better than boxing into NSNumbers in NSDictionaries.
- *
- * @note This class is not meant to be subclassed.
- **/
-@interface GPBStringInt32Dictionary : NSObject <NSCopying>
-
-/** Number of entries stored in this dictionary. */
-@property(nonatomic, readonly) NSUInteger count;
-
-/**
- * @return A newly instanced and empty dictionary.
- **/
-+ (instancetype)dictionary;
-
-/**
- * Creates and initializes a dictionary with the single entry given.
- *
- * @param value The value to be placed in the dictionary.
- * @param key The key under which to store the value.
- *
- * @return A newly instanced dictionary with the key and value in it.
- **/
-+ (instancetype)dictionaryWithInt32:(int32_t)value
- forKey:(NSString *)key;
-
-/**
- * Creates and initializes a dictionary with the entries given.
- *
- * @param values The values to be placed in the dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of entries to store in the dictionary.
- *
- * @return A newly instanced dictionary with the keys and values in it.
- **/
-+ (instancetype)dictionaryWithInt32s:(const int32_t [__nullable])values
- forKeys:(const NSString * __nonnull GPB_UNSAFE_UNRETAINED [__nullable])keys
- count:(NSUInteger)count;
-
-/**
- * Creates and initializes a dictionary with the entries from the given.
- * dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to the dictionary.
- *
- * @return A newly instanced dictionary with the entries from the given
- * dictionary in it.
- **/
-+ (instancetype)dictionaryWithDictionary:(GPBStringInt32Dictionary *)dictionary;
-
-/**
- * Creates and initializes a dictionary with the given capacity.
- *
- * @param numItems Capacity needed for the dictionary.
- *
- * @return A newly instanced dictionary with the given capacity.
- **/
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems;
-
-/**
- * Initializes this dictionary, copying the given values and keys.
- *
- * @param values The values to be placed in this dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of elements to copy into the dictionary.
- *
- * @return A newly initialized dictionary with a copy of the values and keys.
- **/
-- (instancetype)initWithInt32s:(const int32_t [__nullable])values
- forKeys:(const NSString * __nonnull GPB_UNSAFE_UNRETAINED [__nullable])keys
- count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
-
-/**
- * Initializes this dictionary, copying the entries from the given dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to this dictionary.
- *
- * @return A newly initialized dictionary with the entries of the given dictionary.
- **/
-- (instancetype)initWithDictionary:(GPBStringInt32Dictionary *)dictionary;
-
-/**
- * Initializes this dictionary with the requested capacity.
- *
- * @param numItems Number of items needed for this dictionary.
- *
- * @return A newly initialized dictionary with the requested capacity.
- **/
-- (instancetype)initWithCapacity:(NSUInteger)numItems;
-
-/**
- * Gets the value for the given key.
- *
- * @param value Pointer into which the value will be set, if found.
- * @param key Key under which the value is stored, if present.
- *
- * @return YES if the key was found and the value was copied, NO otherwise.
- **/
-- (BOOL)getInt32:(nullable int32_t *)value forKey:(NSString *)key;
-
-/**
- * Enumerates the keys and values on this dictionary with the given block.
- *
- * @param block The block to enumerate with.
- * **key**: The key for the current entry.
- * **value**: The value for the current entry
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateKeysAndInt32sUsingBlock:
- (void (^)(NSString *key, int32_t value, BOOL *stop))block;
-
-/**
- * Adds the keys and values from another dictionary.
- *
- * @param otherDictionary Dictionary containing entries to be added to this
- * dictionary.
- **/
-- (void)addEntriesFromDictionary:(GPBStringInt32Dictionary *)otherDictionary;
-
-/**
- * Sets the value for the given key.
- *
- * @param value The value to set.
- * @param key The key under which to store the value.
- **/
-- (void)setInt32:(int32_t)value forKey:(NSString *)key;
-
-/**
- * Removes the entry for the given key.
- *
- * @param aKey Key to be removed from this dictionary.
- **/
-- (void)removeInt32ForKey:(NSString *)aKey;
-
-/**
- * Removes all entries in this dictionary.
- **/
-- (void)removeAll;
-
-@end
-
-#pragma mark - String -> UInt64
-
-/**
- * Class used for map fields of <NSString, uint64_t>
- * values. This performs better than boxing into NSNumbers in NSDictionaries.
- *
- * @note This class is not meant to be subclassed.
- **/
-@interface GPBStringUInt64Dictionary : NSObject <NSCopying>
-
-/** Number of entries stored in this dictionary. */
-@property(nonatomic, readonly) NSUInteger count;
-
-/**
- * @return A newly instanced and empty dictionary.
- **/
-+ (instancetype)dictionary;
-
-/**
- * Creates and initializes a dictionary with the single entry given.
- *
- * @param value The value to be placed in the dictionary.
- * @param key The key under which to store the value.
- *
- * @return A newly instanced dictionary with the key and value in it.
- **/
-+ (instancetype)dictionaryWithUInt64:(uint64_t)value
- forKey:(NSString *)key;
-
-/**
- * Creates and initializes a dictionary with the entries given.
- *
- * @param values The values to be placed in the dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of entries to store in the dictionary.
- *
- * @return A newly instanced dictionary with the keys and values in it.
- **/
-+ (instancetype)dictionaryWithUInt64s:(const uint64_t [__nullable])values
- forKeys:(const NSString * __nonnull GPB_UNSAFE_UNRETAINED [__nullable])keys
- count:(NSUInteger)count;
-
-/**
- * Creates and initializes a dictionary with the entries from the given.
- * dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to the dictionary.
- *
- * @return A newly instanced dictionary with the entries from the given
- * dictionary in it.
- **/
-+ (instancetype)dictionaryWithDictionary:(GPBStringUInt64Dictionary *)dictionary;
-
-/**
- * Creates and initializes a dictionary with the given capacity.
- *
- * @param numItems Capacity needed for the dictionary.
- *
- * @return A newly instanced dictionary with the given capacity.
- **/
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems;
-
-/**
- * Initializes this dictionary, copying the given values and keys.
- *
- * @param values The values to be placed in this dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of elements to copy into the dictionary.
- *
- * @return A newly initialized dictionary with a copy of the values and keys.
- **/
-- (instancetype)initWithUInt64s:(const uint64_t [__nullable])values
- forKeys:(const NSString * __nonnull GPB_UNSAFE_UNRETAINED [__nullable])keys
- count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
-
-/**
- * Initializes this dictionary, copying the entries from the given dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to this dictionary.
- *
- * @return A newly initialized dictionary with the entries of the given dictionary.
- **/
-- (instancetype)initWithDictionary:(GPBStringUInt64Dictionary *)dictionary;
-
-/**
- * Initializes this dictionary with the requested capacity.
- *
- * @param numItems Number of items needed for this dictionary.
- *
- * @return A newly initialized dictionary with the requested capacity.
- **/
-- (instancetype)initWithCapacity:(NSUInteger)numItems;
-
-/**
- * Gets the value for the given key.
- *
- * @param value Pointer into which the value will be set, if found.
- * @param key Key under which the value is stored, if present.
- *
- * @return YES if the key was found and the value was copied, NO otherwise.
- **/
-- (BOOL)getUInt64:(nullable uint64_t *)value forKey:(NSString *)key;
-
-/**
- * Enumerates the keys and values on this dictionary with the given block.
- *
- * @param block The block to enumerate with.
- * **key**: The key for the current entry.
- * **value**: The value for the current entry
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateKeysAndUInt64sUsingBlock:
- (void (^)(NSString *key, uint64_t value, BOOL *stop))block;
-
-/**
- * Adds the keys and values from another dictionary.
- *
- * @param otherDictionary Dictionary containing entries to be added to this
- * dictionary.
- **/
-- (void)addEntriesFromDictionary:(GPBStringUInt64Dictionary *)otherDictionary;
-
-/**
- * Sets the value for the given key.
- *
- * @param value The value to set.
- * @param key The key under which to store the value.
- **/
-- (void)setUInt64:(uint64_t)value forKey:(NSString *)key;
-
-/**
- * Removes the entry for the given key.
- *
- * @param aKey Key to be removed from this dictionary.
- **/
-- (void)removeUInt64ForKey:(NSString *)aKey;
-
-/**
- * Removes all entries in this dictionary.
- **/
-- (void)removeAll;
-
-@end
-
-#pragma mark - String -> Int64
-
-/**
- * Class used for map fields of <NSString, int64_t>
- * values. This performs better than boxing into NSNumbers in NSDictionaries.
- *
- * @note This class is not meant to be subclassed.
- **/
-@interface GPBStringInt64Dictionary : NSObject <NSCopying>
-
-/** Number of entries stored in this dictionary. */
-@property(nonatomic, readonly) NSUInteger count;
-
-/**
- * @return A newly instanced and empty dictionary.
- **/
-+ (instancetype)dictionary;
-
-/**
- * Creates and initializes a dictionary with the single entry given.
- *
- * @param value The value to be placed in the dictionary.
- * @param key The key under which to store the value.
- *
- * @return A newly instanced dictionary with the key and value in it.
- **/
-+ (instancetype)dictionaryWithInt64:(int64_t)value
- forKey:(NSString *)key;
-
-/**
- * Creates and initializes a dictionary with the entries given.
- *
- * @param values The values to be placed in the dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of entries to store in the dictionary.
- *
- * @return A newly instanced dictionary with the keys and values in it.
- **/
-+ (instancetype)dictionaryWithInt64s:(const int64_t [__nullable])values
- forKeys:(const NSString * __nonnull GPB_UNSAFE_UNRETAINED [__nullable])keys
- count:(NSUInteger)count;
-
-/**
- * Creates and initializes a dictionary with the entries from the given.
- * dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to the dictionary.
- *
- * @return A newly instanced dictionary with the entries from the given
- * dictionary in it.
- **/
-+ (instancetype)dictionaryWithDictionary:(GPBStringInt64Dictionary *)dictionary;
-
-/**
- * Creates and initializes a dictionary with the given capacity.
- *
- * @param numItems Capacity needed for the dictionary.
- *
- * @return A newly instanced dictionary with the given capacity.
- **/
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems;
-
-/**
- * Initializes this dictionary, copying the given values and keys.
- *
- * @param values The values to be placed in this dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of elements to copy into the dictionary.
- *
- * @return A newly initialized dictionary with a copy of the values and keys.
- **/
-- (instancetype)initWithInt64s:(const int64_t [__nullable])values
- forKeys:(const NSString * __nonnull GPB_UNSAFE_UNRETAINED [__nullable])keys
- count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
-
-/**
- * Initializes this dictionary, copying the entries from the given dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to this dictionary.
- *
- * @return A newly initialized dictionary with the entries of the given dictionary.
- **/
-- (instancetype)initWithDictionary:(GPBStringInt64Dictionary *)dictionary;
-
-/**
- * Initializes this dictionary with the requested capacity.
- *
- * @param numItems Number of items needed for this dictionary.
- *
- * @return A newly initialized dictionary with the requested capacity.
- **/
-- (instancetype)initWithCapacity:(NSUInteger)numItems;
-
-/**
- * Gets the value for the given key.
- *
- * @param value Pointer into which the value will be set, if found.
- * @param key Key under which the value is stored, if present.
- *
- * @return YES if the key was found and the value was copied, NO otherwise.
- **/
-- (BOOL)getInt64:(nullable int64_t *)value forKey:(NSString *)key;
-
-/**
- * Enumerates the keys and values on this dictionary with the given block.
- *
- * @param block The block to enumerate with.
- * **key**: The key for the current entry.
- * **value**: The value for the current entry
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateKeysAndInt64sUsingBlock:
- (void (^)(NSString *key, int64_t value, BOOL *stop))block;
-
-/**
- * Adds the keys and values from another dictionary.
- *
- * @param otherDictionary Dictionary containing entries to be added to this
- * dictionary.
- **/
-- (void)addEntriesFromDictionary:(GPBStringInt64Dictionary *)otherDictionary;
-
-/**
- * Sets the value for the given key.
- *
- * @param value The value to set.
- * @param key The key under which to store the value.
- **/
-- (void)setInt64:(int64_t)value forKey:(NSString *)key;
-
-/**
- * Removes the entry for the given key.
- *
- * @param aKey Key to be removed from this dictionary.
- **/
-- (void)removeInt64ForKey:(NSString *)aKey;
-
-/**
- * Removes all entries in this dictionary.
- **/
-- (void)removeAll;
-
-@end
-
-#pragma mark - String -> Bool
-
-/**
- * Class used for map fields of <NSString, BOOL>
- * values. This performs better than boxing into NSNumbers in NSDictionaries.
- *
- * @note This class is not meant to be subclassed.
- **/
-@interface GPBStringBoolDictionary : NSObject <NSCopying>
-
-/** Number of entries stored in this dictionary. */
-@property(nonatomic, readonly) NSUInteger count;
-
-/**
- * @return A newly instanced and empty dictionary.
- **/
-+ (instancetype)dictionary;
-
-/**
- * Creates and initializes a dictionary with the single entry given.
- *
- * @param value The value to be placed in the dictionary.
- * @param key The key under which to store the value.
- *
- * @return A newly instanced dictionary with the key and value in it.
- **/
-+ (instancetype)dictionaryWithBool:(BOOL)value
- forKey:(NSString *)key;
-
-/**
- * Creates and initializes a dictionary with the entries given.
- *
- * @param values The values to be placed in the dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of entries to store in the dictionary.
- *
- * @return A newly instanced dictionary with the keys and values in it.
- **/
-+ (instancetype)dictionaryWithBools:(const BOOL [__nullable])values
- forKeys:(const NSString * __nonnull GPB_UNSAFE_UNRETAINED [__nullable])keys
- count:(NSUInteger)count;
-
-/**
- * Creates and initializes a dictionary with the entries from the given.
- * dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to the dictionary.
- *
- * @return A newly instanced dictionary with the entries from the given
- * dictionary in it.
- **/
-+ (instancetype)dictionaryWithDictionary:(GPBStringBoolDictionary *)dictionary;
-
-/**
- * Creates and initializes a dictionary with the given capacity.
- *
- * @param numItems Capacity needed for the dictionary.
- *
- * @return A newly instanced dictionary with the given capacity.
- **/
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems;
-
-/**
- * Initializes this dictionary, copying the given values and keys.
- *
- * @param values The values to be placed in this dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of elements to copy into the dictionary.
- *
- * @return A newly initialized dictionary with a copy of the values and keys.
- **/
-- (instancetype)initWithBools:(const BOOL [__nullable])values
- forKeys:(const NSString * __nonnull GPB_UNSAFE_UNRETAINED [__nullable])keys
- count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
-
-/**
- * Initializes this dictionary, copying the entries from the given dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to this dictionary.
- *
- * @return A newly initialized dictionary with the entries of the given dictionary.
- **/
-- (instancetype)initWithDictionary:(GPBStringBoolDictionary *)dictionary;
-
-/**
- * Initializes this dictionary with the requested capacity.
- *
- * @param numItems Number of items needed for this dictionary.
- *
- * @return A newly initialized dictionary with the requested capacity.
- **/
-- (instancetype)initWithCapacity:(NSUInteger)numItems;
-
-/**
- * Gets the value for the given key.
- *
- * @param value Pointer into which the value will be set, if found.
- * @param key Key under which the value is stored, if present.
- *
- * @return YES if the key was found and the value was copied, NO otherwise.
- **/
-- (BOOL)getBool:(nullable BOOL *)value forKey:(NSString *)key;
-
-/**
- * Enumerates the keys and values on this dictionary with the given block.
- *
- * @param block The block to enumerate with.
- * **key**: The key for the current entry.
- * **value**: The value for the current entry
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateKeysAndBoolsUsingBlock:
- (void (^)(NSString *key, BOOL value, BOOL *stop))block;
-
-/**
- * Adds the keys and values from another dictionary.
- *
- * @param otherDictionary Dictionary containing entries to be added to this
- * dictionary.
- **/
-- (void)addEntriesFromDictionary:(GPBStringBoolDictionary *)otherDictionary;
-
-/**
- * Sets the value for the given key.
- *
- * @param value The value to set.
- * @param key The key under which to store the value.
- **/
-- (void)setBool:(BOOL)value forKey:(NSString *)key;
-
-/**
- * Removes the entry for the given key.
- *
- * @param aKey Key to be removed from this dictionary.
- **/
-- (void)removeBoolForKey:(NSString *)aKey;
-
-/**
- * Removes all entries in this dictionary.
- **/
-- (void)removeAll;
-
-@end
-
-#pragma mark - String -> Float
-
-/**
- * Class used for map fields of <NSString, float>
- * values. This performs better than boxing into NSNumbers in NSDictionaries.
- *
- * @note This class is not meant to be subclassed.
- **/
-@interface GPBStringFloatDictionary : NSObject <NSCopying>
-
-/** Number of entries stored in this dictionary. */
-@property(nonatomic, readonly) NSUInteger count;
-
-/**
- * @return A newly instanced and empty dictionary.
- **/
-+ (instancetype)dictionary;
-
-/**
- * Creates and initializes a dictionary with the single entry given.
- *
- * @param value The value to be placed in the dictionary.
- * @param key The key under which to store the value.
- *
- * @return A newly instanced dictionary with the key and value in it.
- **/
-+ (instancetype)dictionaryWithFloat:(float)value
- forKey:(NSString *)key;
-
-/**
- * Creates and initializes a dictionary with the entries given.
- *
- * @param values The values to be placed in the dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of entries to store in the dictionary.
- *
- * @return A newly instanced dictionary with the keys and values in it.
- **/
-+ (instancetype)dictionaryWithFloats:(const float [__nullable])values
- forKeys:(const NSString * __nonnull GPB_UNSAFE_UNRETAINED [__nullable])keys
- count:(NSUInteger)count;
-
-/**
- * Creates and initializes a dictionary with the entries from the given.
- * dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to the dictionary.
- *
- * @return A newly instanced dictionary with the entries from the given
- * dictionary in it.
- **/
-+ (instancetype)dictionaryWithDictionary:(GPBStringFloatDictionary *)dictionary;
-
-/**
- * Creates and initializes a dictionary with the given capacity.
- *
- * @param numItems Capacity needed for the dictionary.
- *
- * @return A newly instanced dictionary with the given capacity.
- **/
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems;
-
-/**
- * Initializes this dictionary, copying the given values and keys.
- *
- * @param values The values to be placed in this dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of elements to copy into the dictionary.
- *
- * @return A newly initialized dictionary with a copy of the values and keys.
- **/
-- (instancetype)initWithFloats:(const float [__nullable])values
- forKeys:(const NSString * __nonnull GPB_UNSAFE_UNRETAINED [__nullable])keys
- count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
-
-/**
- * Initializes this dictionary, copying the entries from the given dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to this dictionary.
- *
- * @return A newly initialized dictionary with the entries of the given dictionary.
- **/
-- (instancetype)initWithDictionary:(GPBStringFloatDictionary *)dictionary;
-
-/**
- * Initializes this dictionary with the requested capacity.
- *
- * @param numItems Number of items needed for this dictionary.
- *
- * @return A newly initialized dictionary with the requested capacity.
- **/
-- (instancetype)initWithCapacity:(NSUInteger)numItems;
-
-/**
- * Gets the value for the given key.
- *
- * @param value Pointer into which the value will be set, if found.
- * @param key Key under which the value is stored, if present.
- *
- * @return YES if the key was found and the value was copied, NO otherwise.
- **/
-- (BOOL)getFloat:(nullable float *)value forKey:(NSString *)key;
-
-/**
- * Enumerates the keys and values on this dictionary with the given block.
- *
- * @param block The block to enumerate with.
- * **key**: The key for the current entry.
- * **value**: The value for the current entry
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateKeysAndFloatsUsingBlock:
- (void (^)(NSString *key, float value, BOOL *stop))block;
-
-/**
- * Adds the keys and values from another dictionary.
- *
- * @param otherDictionary Dictionary containing entries to be added to this
- * dictionary.
- **/
-- (void)addEntriesFromDictionary:(GPBStringFloatDictionary *)otherDictionary;
-
-/**
- * Sets the value for the given key.
- *
- * @param value The value to set.
- * @param key The key under which to store the value.
- **/
-- (void)setFloat:(float)value forKey:(NSString *)key;
-
-/**
- * Removes the entry for the given key.
- *
- * @param aKey Key to be removed from this dictionary.
- **/
-- (void)removeFloatForKey:(NSString *)aKey;
-
-/**
- * Removes all entries in this dictionary.
- **/
-- (void)removeAll;
-
-@end
-
-#pragma mark - String -> Double
-
-/**
- * Class used for map fields of <NSString, double>
- * values. This performs better than boxing into NSNumbers in NSDictionaries.
- *
- * @note This class is not meant to be subclassed.
- **/
-@interface GPBStringDoubleDictionary : NSObject <NSCopying>
-
-/** Number of entries stored in this dictionary. */
-@property(nonatomic, readonly) NSUInteger count;
-
-/**
- * @return A newly instanced and empty dictionary.
- **/
-+ (instancetype)dictionary;
-
-/**
- * Creates and initializes a dictionary with the single entry given.
- *
- * @param value The value to be placed in the dictionary.
- * @param key The key under which to store the value.
- *
- * @return A newly instanced dictionary with the key and value in it.
- **/
-+ (instancetype)dictionaryWithDouble:(double)value
- forKey:(NSString *)key;
-
-/**
- * Creates and initializes a dictionary with the entries given.
- *
- * @param values The values to be placed in the dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of entries to store in the dictionary.
- *
- * @return A newly instanced dictionary with the keys and values in it.
- **/
-+ (instancetype)dictionaryWithDoubles:(const double [__nullable])values
- forKeys:(const NSString * __nonnull GPB_UNSAFE_UNRETAINED [__nullable])keys
- count:(NSUInteger)count;
-
-/**
- * Creates and initializes a dictionary with the entries from the given.
- * dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to the dictionary.
- *
- * @return A newly instanced dictionary with the entries from the given
- * dictionary in it.
- **/
-+ (instancetype)dictionaryWithDictionary:(GPBStringDoubleDictionary *)dictionary;
-
-/**
- * Creates and initializes a dictionary with the given capacity.
- *
- * @param numItems Capacity needed for the dictionary.
- *
- * @return A newly instanced dictionary with the given capacity.
- **/
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems;
-
-/**
- * Initializes this dictionary, copying the given values and keys.
- *
- * @param values The values to be placed in this dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of elements to copy into the dictionary.
- *
- * @return A newly initialized dictionary with a copy of the values and keys.
- **/
-- (instancetype)initWithDoubles:(const double [__nullable])values
- forKeys:(const NSString * __nonnull GPB_UNSAFE_UNRETAINED [__nullable])keys
- count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
-
-/**
- * Initializes this dictionary, copying the entries from the given dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to this dictionary.
- *
- * @return A newly initialized dictionary with the entries of the given dictionary.
- **/
-- (instancetype)initWithDictionary:(GPBStringDoubleDictionary *)dictionary;
-
-/**
- * Initializes this dictionary with the requested capacity.
- *
- * @param numItems Number of items needed for this dictionary.
- *
- * @return A newly initialized dictionary with the requested capacity.
- **/
-- (instancetype)initWithCapacity:(NSUInteger)numItems;
-
-/**
- * Gets the value for the given key.
- *
- * @param value Pointer into which the value will be set, if found.
- * @param key Key under which the value is stored, if present.
- *
- * @return YES if the key was found and the value was copied, NO otherwise.
- **/
-- (BOOL)getDouble:(nullable double *)value forKey:(NSString *)key;
-
-/**
- * Enumerates the keys and values on this dictionary with the given block.
- *
- * @param block The block to enumerate with.
- * **key**: The key for the current entry.
- * **value**: The value for the current entry
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateKeysAndDoublesUsingBlock:
- (void (^)(NSString *key, double value, BOOL *stop))block;
-
-/**
- * Adds the keys and values from another dictionary.
- *
- * @param otherDictionary Dictionary containing entries to be added to this
- * dictionary.
- **/
-- (void)addEntriesFromDictionary:(GPBStringDoubleDictionary *)otherDictionary;
-
-/**
- * Sets the value for the given key.
- *
- * @param value The value to set.
- * @param key The key under which to store the value.
- **/
-- (void)setDouble:(double)value forKey:(NSString *)key;
-
-/**
- * Removes the entry for the given key.
- *
- * @param aKey Key to be removed from this dictionary.
- **/
-- (void)removeDoubleForKey:(NSString *)aKey;
-
-/**
- * Removes all entries in this dictionary.
- **/
-- (void)removeAll;
-
-@end
-
-#pragma mark - String -> Enum
-
-/**
- * Class used for map fields of <NSString, int32_t>
- * values. This performs better than boxing into NSNumbers in NSDictionaries.
- *
- * @note This class is not meant to be subclassed.
- **/
-@interface GPBStringEnumDictionary : NSObject <NSCopying>
-
-/** Number of entries stored in this dictionary. */
-@property(nonatomic, readonly) NSUInteger count;
-/** The validation function to check if the enums are valid. */
-@property(nonatomic, readonly) GPBEnumValidationFunc validationFunc;
-
-/**
- * @return A newly instanced and empty dictionary.
- **/
-+ (instancetype)dictionary;
-
-/**
- * Creates and initializes a dictionary with the given validation function.
- *
- * @param func The enum validation function for the dictionary.
- *
- * @return A newly instanced dictionary.
- **/
-+ (instancetype)dictionaryWithValidationFunction:(nullable GPBEnumValidationFunc)func;
-
-/**
- * Creates and initializes a dictionary with the single entry given.
- *
- * @param func The enum validation function for the dictionary.
- * @param rawValue The raw enum value to be placed in the dictionary.
- * @param key The key under which to store the value.
- *
- * @return A newly instanced dictionary with the key and value in it.
- **/
-+ (instancetype)dictionaryWithValidationFunction:(nullable GPBEnumValidationFunc)func
- rawValue:(int32_t)rawValue
- forKey:(NSString *)key;
-
-/**
- * Creates and initializes a dictionary with the entries given.
- *
- * @param func The enum validation function for the dictionary.
- * @param values The raw enum values values to be placed in the dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of entries to store in the dictionary.
- *
- * @return A newly instanced dictionary with the keys and values in it.
- **/
-+ (instancetype)dictionaryWithValidationFunction:(nullable GPBEnumValidationFunc)func
- rawValues:(const int32_t [__nullable])values
- forKeys:(const NSString * __nonnull GPB_UNSAFE_UNRETAINED [__nullable])keys
- count:(NSUInteger)count;
-
-/**
- * Creates and initializes a dictionary with the entries from the given.
- * dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to the dictionary.
- *
- * @return A newly instanced dictionary with the entries from the given
- * dictionary in it.
- **/
-+ (instancetype)dictionaryWithDictionary:(GPBStringEnumDictionary *)dictionary;
-
-/**
- * Creates and initializes a dictionary with the given capacity.
- *
- * @param func The enum validation function for the dictionary.
- * @param numItems Capacity needed for the dictionary.
- *
- * @return A newly instanced dictionary with the given capacity.
- **/
-+ (instancetype)dictionaryWithValidationFunction:(nullable GPBEnumValidationFunc)func
- capacity:(NSUInteger)numItems;
-
-/**
- * Initializes a dictionary with the given validation function.
- *
- * @param func The enum validation function for the dictionary.
- *
- * @return A newly initialized dictionary.
- **/
-- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func;
-
-/**
- * Initializes a dictionary with the entries given.
- *
- * @param func The enum validation function for the dictionary.
- * @param values The raw enum values values to be placed in the dictionary.
- * @param keys The keys under which to store the values.
- * @param count The number of entries to store in the dictionary.
- *
- * @return A newly initialized dictionary with the keys and values in it.
- **/
-- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func
- rawValues:(const int32_t [__nullable])values
- forKeys:(const NSString * __nonnull GPB_UNSAFE_UNRETAINED [__nullable])keys
- count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
-
-/**
- * Initializes a dictionary with the entries from the given.
- * dictionary.
- *
- * @param dictionary Dictionary containing the entries to add to the dictionary.
- *
- * @return A newly initialized dictionary with the entries from the given
- * dictionary in it.
- **/
-- (instancetype)initWithDictionary:(GPBStringEnumDictionary *)dictionary;
-
-/**
- * Initializes a dictionary with the given capacity.
- *
- * @param func The enum validation function for the dictionary.
- * @param numItems Capacity needed for the dictionary.
- *
- * @return A newly initialized dictionary with the given capacity.
- **/
-- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func
- capacity:(NSUInteger)numItems;
-
-// These will return kGPBUnrecognizedEnumeratorValue if the value for the key
-// is not a valid enumerator as defined by validationFunc. If the actual value is
-// desired, use "raw" version of the method.
-
-/**
- * Gets the value for the given key.
- *
- * @param value Pointer into which the value will be set, if found.
- * @param key Key under which the value is stored, if present.
- *
- * @return YES if the key was found and the value was copied, NO otherwise.
- **/
-- (BOOL)getEnum:(nullable int32_t *)value forKey:(NSString *)key;
-
-/**
- * Enumerates the keys and values on this dictionary with the given block.
- *
- * @param block The block to enumerate with.
- * **key**: The key for the current entry.
- * **value**: The value for the current entry
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateKeysAndEnumsUsingBlock:
- (void (^)(NSString *key, int32_t value, BOOL *stop))block;
-
-/**
- * Gets the raw enum value for the given key.
- *
- * @note This method bypass the validationFunc to enable the access of values that
- * were not known at the time the binary was compiled.
- *
- * @param rawValue Pointer into which the value will be set, if found.
- * @param key Key under which the value is stored, if present.
- *
- * @return YES if the key was found and the value was copied, NO otherwise.
- **/
-- (BOOL)getRawValue:(nullable int32_t *)rawValue forKey:(NSString *)key;
-
-/**
- * Enumerates the keys and values on this dictionary with the given block.
- *
- * @note This method bypass the validationFunc to enable the access of values that
- * were not known at the time the binary was compiled.
- *
- * @param block The block to enumerate with.
- * **key**: The key for the current entry.
- * **rawValue**: The value for the current entry
- * **stop**: A pointer to a boolean that when set stops the enumeration.
- **/
-- (void)enumerateKeysAndRawValuesUsingBlock:
- (void (^)(NSString *key, int32_t rawValue, BOOL *stop))block;
-
-/**
- * Adds the keys and raw enum values from another dictionary.
- *
- * @note This method bypass the validationFunc to enable the setting of values that
- * were not known at the time the binary was compiled.
- *
- * @param otherDictionary Dictionary containing entries to be added to this
- * dictionary.
- **/
-- (void)addRawEntriesFromDictionary:(GPBStringEnumDictionary *)otherDictionary;
-
-// If value is not a valid enumerator as defined by validationFunc, these
-// methods will assert in debug, and will log in release and assign the value
-// to the default value. Use the rawValue methods below to assign non enumerator
-// values.
-
-/**
- * Sets the value for the given key.
- *
- * @param value The value to set.
- * @param key The key under which to store the value.
- **/
-- (void)setEnum:(int32_t)value forKey:(NSString *)key;
-
-/**
- * Sets the raw enum value for the given key.
- *
- * @note This method bypass the validationFunc to enable the setting of values that
- * were not known at the time the binary was compiled.
- *
- * @param rawValue The raw enum value to set.
- * @param key The key under which to store the raw enum value.
- **/
-- (void)setRawValue:(int32_t)rawValue forKey:(NSString *)key;
-
-/**
- * Removes the entry for the given key.
- *
- * @param aKey Key to be removed from this dictionary.
- **/
-- (void)removeEnumForKey:(NSString *)aKey;
-
-/**
- * Removes all entries in this dictionary.
- **/
-- (void)removeAll;
-
-@end
-
-//%PDDM-EXPAND-END DECLARE_DICTIONARIES()
-
-NS_ASSUME_NONNULL_END
-
-//%PDDM-DEFINE DECLARE_DICTIONARIES()
-//%DICTIONARY_INTERFACES_FOR_POD_KEY(UInt32, uint32_t)
-//%DICTIONARY_INTERFACES_FOR_POD_KEY(Int32, int32_t)
-//%DICTIONARY_INTERFACES_FOR_POD_KEY(UInt64, uint64_t)
-//%DICTIONARY_INTERFACES_FOR_POD_KEY(Int64, int64_t)
-//%DICTIONARY_INTERFACES_FOR_POD_KEY(Bool, BOOL)
-//%DICTIONARY_POD_INTERFACES_FOR_KEY(String, NSString, *, OBJECT)
-//%PDDM-DEFINE DICTIONARY_INTERFACES_FOR_POD_KEY(KEY_NAME, KEY_TYPE)
-//%DICTIONARY_POD_INTERFACES_FOR_KEY(KEY_NAME, KEY_TYPE, , POD)
-//%DICTIONARY_POD_KEY_TO_OBJECT_INTERFACE(KEY_NAME, KEY_TYPE, Object, ObjectType)
-//%PDDM-DEFINE DICTIONARY_POD_INTERFACES_FOR_KEY(KEY_NAME, KEY_TYPE, KisP, KHELPER)
-//%DICTIONARY_KEY_TO_POD_INTERFACE(KEY_NAME, KEY_TYPE, KisP, KHELPER, UInt32, uint32_t)
-//%DICTIONARY_KEY_TO_POD_INTERFACE(KEY_NAME, KEY_TYPE, KisP, KHELPER, Int32, int32_t)
-//%DICTIONARY_KEY_TO_POD_INTERFACE(KEY_NAME, KEY_TYPE, KisP, KHELPER, UInt64, uint64_t)
-//%DICTIONARY_KEY_TO_POD_INTERFACE(KEY_NAME, KEY_TYPE, KisP, KHELPER, Int64, int64_t)
-//%DICTIONARY_KEY_TO_POD_INTERFACE(KEY_NAME, KEY_TYPE, KisP, KHELPER, Bool, BOOL)
-//%DICTIONARY_KEY_TO_POD_INTERFACE(KEY_NAME, KEY_TYPE, KisP, KHELPER, Float, float)
-//%DICTIONARY_KEY_TO_POD_INTERFACE(KEY_NAME, KEY_TYPE, KisP, KHELPER, Double, double)
-//%DICTIONARY_KEY_TO_ENUM_INTERFACE(KEY_NAME, KEY_TYPE, KisP, KHELPER, Enum, int32_t)
-//%PDDM-DEFINE DICTIONARY_KEY_TO_POD_INTERFACE(KEY_NAME, KEY_TYPE, KisP, KHELPER, VALUE_NAME, VALUE_TYPE)
-//%DICTIONARY_COMMON_INTERFACE(KEY_NAME, KEY_TYPE, KisP, KHELPER, VALUE_NAME, VALUE_TYPE, POD, VALUE_NAME, value)
-//%PDDM-DEFINE DICTIONARY_POD_KEY_TO_OBJECT_INTERFACE(KEY_NAME, KEY_TYPE, VALUE_NAME, VALUE_TYPE)
-//%DICTIONARY_COMMON_INTERFACE(KEY_NAME, KEY_TYPE, , POD, VALUE_NAME, VALUE_TYPE, OBJECT, Object, object)
-//%PDDM-DEFINE VALUE_FOR_KEY_POD(KEY_TYPE, VALUE_TYPE, VNAME)
-//%/**
-//% * Gets the value for the given key.
-//% *
-//% * @param value Pointer into which the value will be set, if found.
-//% * @param key Key under which the value is stored, if present.
-//% *
-//% * @return YES if the key was found and the value was copied, NO otherwise.
-//% **/
-//%- (BOOL)get##VNAME##:(nullable VALUE_TYPE *)value forKey:(KEY_TYPE)key;
-//%PDDM-DEFINE VALUE_FOR_KEY_OBJECT(KEY_TYPE, VALUE_TYPE, VNAME)
-//%/**
-//% * Fetches the object stored under the given key.
-//% *
-//% * @param key Key under which the value is stored, if present.
-//% *
-//% * @return The object if found, nil otherwise.
-//% **/
-//%- (VALUE_TYPE)objectForKey:(KEY_TYPE)key;
-//%PDDM-DEFINE VALUE_FOR_KEY_Enum(KEY_TYPE, VALUE_TYPE, VNAME)
-//%VALUE_FOR_KEY_POD(KEY_TYPE, VALUE_TYPE, VNAME)
-//%PDDM-DEFINE ARRAY_ARG_MODIFIERPOD()
-// Nothing
-//%PDDM-DEFINE ARRAY_ARG_MODIFIEREnum()
-// Nothing
-//%PDDM-DEFINE ARRAY_ARG_MODIFIEROBJECT()
-//%__nonnull GPB_UNSAFE_UNRETAINED ##
-//%PDDM-DEFINE DICTIONARY_CLASS_DECLPOD(KEY_NAME, VALUE_NAME, VALUE_TYPE)
-//%GPB##KEY_NAME##VALUE_NAME##Dictionary
-//%PDDM-DEFINE DICTIONARY_CLASS_DECLEnum(KEY_NAME, VALUE_NAME, VALUE_TYPE)
-//%GPB##KEY_NAME##VALUE_NAME##Dictionary
-//%PDDM-DEFINE DICTIONARY_CLASS_DECLOBJECT(KEY_NAME, VALUE_NAME, VALUE_TYPE)
-//%GPB##KEY_NAME##VALUE_NAME##Dictionary<__covariant VALUE_TYPE>
-//%PDDM-DEFINE DICTIONARY_COMMON_INTERFACE(KEY_NAME, KEY_TYPE, KisP, KHELPER, VALUE_NAME, VALUE_TYPE, VHELPER, VNAME, VNAME_VAR)
-//%#pragma mark - KEY_NAME -> VALUE_NAME
-//%
-//%/**
-//% * Class used for map fields of <##KEY_TYPE##, ##VALUE_TYPE##>
-//% * values. This performs better than boxing into NSNumbers in NSDictionaries.
-//% *
-//% * @note This class is not meant to be subclassed.
-//% **/
-//%@interface DICTIONARY_CLASS_DECL##VHELPER(KEY_NAME, VALUE_NAME, VALUE_TYPE) : NSObject <NSCopying>
-//%
-//%/** Number of entries stored in this dictionary. */
-//%@property(nonatomic, readonly) NSUInteger count;
-//%
-//%/**
-//% * @return A newly instanced and empty dictionary.
-//% **/
-//%+ (instancetype)dictionary;
-//%
-//%/**
-//% * Creates and initializes a dictionary with the single entry given.
-//% *
-//% * @param ##VNAME_VAR The value to be placed in the dictionary.
-//% * @param key ##VNAME_VAR$S## The key under which to store the value.
-//% *
-//% * @return A newly instanced dictionary with the key and value in it.
-//% **/
-//%+ (instancetype)dictionaryWith##VNAME##:(VALUE_TYPE)##VNAME_VAR
-//% ##VNAME$S## forKey:(KEY_TYPE##KisP$S##KisP)key;
-//%
-//%/**
-//% * Creates and initializes a dictionary with the entries given.
-//% *
-//% * @param ##VNAME_VAR##s The values to be placed in the dictionary.
-//% * @param keys ##VNAME_VAR$S## The keys under which to store the values.
-//% * @param count ##VNAME_VAR$S## The number of entries to store in the dictionary.
-//% *
-//% * @return A newly instanced dictionary with the keys and values in it.
-//% **/
-//%+ (instancetype)dictionaryWith##VNAME##s:(const VALUE_TYPE ARRAY_ARG_MODIFIER##VHELPER()[__nullable])##VNAME_VAR##s
-//% ##VNAME$S## forKeys:(const KEY_TYPE##KisP$S##KisP ARRAY_ARG_MODIFIER##KHELPER()[__nullable])keys
-//% ##VNAME$S## count:(NSUInteger)count;
-//%
-//%/**
-//% * Creates and initializes a dictionary with the entries from the given.
-//% * dictionary.
-//% *
-//% * @param dictionary Dictionary containing the entries to add to the dictionary.
-//% *
-//% * @return A newly instanced dictionary with the entries from the given
-//% * dictionary in it.
-//% **/
-//%+ (instancetype)dictionaryWithDictionary:(GPB##KEY_NAME##VALUE_NAME##Dictionary *)dictionary;
-//%
-//%/**
-//% * Creates and initializes a dictionary with the given capacity.
-//% *
-//% * @param numItems Capacity needed for the dictionary.
-//% *
-//% * @return A newly instanced dictionary with the given capacity.
-//% **/
-//%+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems;
-//%
-//%/**
-//% * Initializes this dictionary, copying the given values and keys.
-//% *
-//% * @param ##VNAME_VAR##s The values to be placed in this dictionary.
-//% * @param keys ##VNAME_VAR$S## The keys under which to store the values.
-//% * @param count ##VNAME_VAR$S## The number of elements to copy into the dictionary.
-//% *
-//% * @return A newly initialized dictionary with a copy of the values and keys.
-//% **/
-//%- (instancetype)initWith##VNAME##s:(const VALUE_TYPE ARRAY_ARG_MODIFIER##VHELPER()[__nullable])##VNAME_VAR##s
-//% ##VNAME$S## forKeys:(const KEY_TYPE##KisP$S##KisP ARRAY_ARG_MODIFIER##KHELPER()[__nullable])keys
-//% ##VNAME$S## count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
-//%
-//%/**
-//% * Initializes this dictionary, copying the entries from the given dictionary.
-//% *
-//% * @param dictionary Dictionary containing the entries to add to this dictionary.
-//% *
-//% * @return A newly initialized dictionary with the entries of the given dictionary.
-//% **/
-//%- (instancetype)initWithDictionary:(GPB##KEY_NAME##VALUE_NAME##Dictionary *)dictionary;
-//%
-//%/**
-//% * Initializes this dictionary with the requested capacity.
-//% *
-//% * @param numItems Number of items needed for this dictionary.
-//% *
-//% * @return A newly initialized dictionary with the requested capacity.
-//% **/
-//%- (instancetype)initWithCapacity:(NSUInteger)numItems;
-//%
-//%DICTIONARY_IMMUTABLE_INTERFACE(KEY_NAME, KEY_TYPE, KisP, VALUE_NAME, VALUE_TYPE, VHELPER, VNAME, VNAME_VAR)
-//%
-//%/**
-//% * Adds the keys and values from another dictionary.
-//% *
-//% * @param otherDictionary Dictionary containing entries to be added to this
-//% * dictionary.
-//% **/
-//%- (void)addEntriesFromDictionary:(GPB##KEY_NAME##VALUE_NAME##Dictionary *)otherDictionary;
-//%
-//%DICTIONARY_MUTABLE_INTERFACE(KEY_NAME, KEY_TYPE, KisP, VALUE_NAME, VALUE_TYPE, VHELPER, VNAME, VNAME_VAR)
-//%
-//%@end
-//%
-
-//%PDDM-DEFINE DICTIONARY_KEY_TO_ENUM_INTERFACE(KEY_NAME, KEY_TYPE, KisP, KHELPER, VALUE_NAME, VALUE_TYPE)
-//%DICTIONARY_KEY_TO_ENUM_INTERFACE2(KEY_NAME, KEY_TYPE, KisP, KHELPER, VALUE_NAME, VALUE_TYPE, Enum)
-//%PDDM-DEFINE DICTIONARY_KEY_TO_ENUM_INTERFACE2(KEY_NAME, KEY_TYPE, KisP, KHELPER, VALUE_NAME, VALUE_TYPE, VHELPER)
-//%#pragma mark - KEY_NAME -> VALUE_NAME
-//%
-//%/**
-//% * Class used for map fields of <##KEY_TYPE##, ##VALUE_TYPE##>
-//% * values. This performs better than boxing into NSNumbers in NSDictionaries.
-//% *
-//% * @note This class is not meant to be subclassed.
-//% **/
-//%@interface GPB##KEY_NAME##VALUE_NAME##Dictionary : NSObject <NSCopying>
-//%
-//%/** Number of entries stored in this dictionary. */
-//%@property(nonatomic, readonly) NSUInteger count;
-//%/** The validation function to check if the enums are valid. */
-//%@property(nonatomic, readonly) GPBEnumValidationFunc validationFunc;
-//%
-//%/**
-//% * @return A newly instanced and empty dictionary.
-//% **/
-//%+ (instancetype)dictionary;
-//%
-//%/**
-//% * Creates and initializes a dictionary with the given validation function.
-//% *
-//% * @param func The enum validation function for the dictionary.
-//% *
-//% * @return A newly instanced dictionary.
-//% **/
-//%+ (instancetype)dictionaryWithValidationFunction:(nullable GPBEnumValidationFunc)func;
-//%
-//%/**
-//% * Creates and initializes a dictionary with the single entry given.
-//% *
-//% * @param func The enum validation function for the dictionary.
-//% * @param rawValue The raw enum value to be placed in the dictionary.
-//% * @param key The key under which to store the value.
-//% *
-//% * @return A newly instanced dictionary with the key and value in it.
-//% **/
-//%+ (instancetype)dictionaryWithValidationFunction:(nullable GPBEnumValidationFunc)func
-//% rawValue:(VALUE_TYPE)rawValue
-//% forKey:(KEY_TYPE##KisP$S##KisP)key;
-//%
-//%/**
-//% * Creates and initializes a dictionary with the entries given.
-//% *
-//% * @param func The enum validation function for the dictionary.
-//% * @param values The raw enum values values to be placed in the dictionary.
-//% * @param keys The keys under which to store the values.
-//% * @param count The number of entries to store in the dictionary.
-//% *
-//% * @return A newly instanced dictionary with the keys and values in it.
-//% **/
-//%+ (instancetype)dictionaryWithValidationFunction:(nullable GPBEnumValidationFunc)func
-//% rawValues:(const VALUE_TYPE ARRAY_ARG_MODIFIER##VHELPER()[__nullable])values
-//% forKeys:(const KEY_TYPE##KisP$S##KisP ARRAY_ARG_MODIFIER##KHELPER()[__nullable])keys
-//% count:(NSUInteger)count;
-//%
-//%/**
-//% * Creates and initializes a dictionary with the entries from the given.
-//% * dictionary.
-//% *
-//% * @param dictionary Dictionary containing the entries to add to the dictionary.
-//% *
-//% * @return A newly instanced dictionary with the entries from the given
-//% * dictionary in it.
-//% **/
-//%+ (instancetype)dictionaryWithDictionary:(GPB##KEY_NAME##VALUE_NAME##Dictionary *)dictionary;
-//%
-//%/**
-//% * Creates and initializes a dictionary with the given capacity.
-//% *
-//% * @param func The enum validation function for the dictionary.
-//% * @param numItems Capacity needed for the dictionary.
-//% *
-//% * @return A newly instanced dictionary with the given capacity.
-//% **/
-//%+ (instancetype)dictionaryWithValidationFunction:(nullable GPBEnumValidationFunc)func
-//% capacity:(NSUInteger)numItems;
-//%
-//%/**
-//% * Initializes a dictionary with the given validation function.
-//% *
-//% * @param func The enum validation function for the dictionary.
-//% *
-//% * @return A newly initialized dictionary.
-//% **/
-//%- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func;
-//%
-//%/**
-//% * Initializes a dictionary with the entries given.
-//% *
-//% * @param func The enum validation function for the dictionary.
-//% * @param values The raw enum values values to be placed in the dictionary.
-//% * @param keys The keys under which to store the values.
-//% * @param count The number of entries to store in the dictionary.
-//% *
-//% * @return A newly initialized dictionary with the keys and values in it.
-//% **/
-//%- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func
-//% rawValues:(const VALUE_TYPE ARRAY_ARG_MODIFIER##VHELPER()[__nullable])values
-//% forKeys:(const KEY_TYPE##KisP$S##KisP ARRAY_ARG_MODIFIER##KHELPER()[__nullable])keys
-//% count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
-//%
-//%/**
-//% * Initializes a dictionary with the entries from the given.
-//% * dictionary.
-//% *
-//% * @param dictionary Dictionary containing the entries to add to the dictionary.
-//% *
-//% * @return A newly initialized dictionary with the entries from the given
-//% * dictionary in it.
-//% **/
-//%- (instancetype)initWithDictionary:(GPB##KEY_NAME##VALUE_NAME##Dictionary *)dictionary;
-//%
-//%/**
-//% * Initializes a dictionary with the given capacity.
-//% *
-//% * @param func The enum validation function for the dictionary.
-//% * @param numItems Capacity needed for the dictionary.
-//% *
-//% * @return A newly initialized dictionary with the given capacity.
-//% **/
-//%- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func
-//% capacity:(NSUInteger)numItems;
-//%
-//%// These will return kGPBUnrecognizedEnumeratorValue if the value for the key
-//%// is not a valid enumerator as defined by validationFunc. If the actual value is
-//%// desired, use "raw" version of the method.
-//%
-//%DICTIONARY_IMMUTABLE_INTERFACE(KEY_NAME, KEY_TYPE, KisP, VALUE_NAME, VALUE_TYPE, VHELPER, Enum, value)
-//%
-//%/**
-//% * Gets the raw enum value for the given key.
-//% *
-//% * @note This method bypass the validationFunc to enable the access of values that
-//% * were not known at the time the binary was compiled.
-//% *
-//% * @param rawValue Pointer into which the value will be set, if found.
-//% * @param key Key under which the value is stored, if present.
-//% *
-//% * @return YES if the key was found and the value was copied, NO otherwise.
-//% **/
-//%- (BOOL)getRawValue:(nullable VALUE_TYPE *)rawValue forKey:(KEY_TYPE##KisP$S##KisP)key;
-//%
-//%/**
-//% * Enumerates the keys and values on this dictionary with the given block.
-//% *
-//% * @note This method bypass the validationFunc to enable the access of values that
-//% * were not known at the time the binary was compiled.
-//% *
-//% * @param block The block to enumerate with.
-//% * **key**: The key for the current entry.
-//% * **rawValue**: The value for the current entry
-//% * **stop**: A pointer to a boolean that when set stops the enumeration.
-//% **/
-//%- (void)enumerateKeysAndRawValuesUsingBlock:
-//% (void (^)(KEY_TYPE KisP##key, VALUE_TYPE rawValue, BOOL *stop))block;
-//%
-//%/**
-//% * Adds the keys and raw enum values from another dictionary.
-//% *
-//% * @note This method bypass the validationFunc to enable the setting of values that
-//% * were not known at the time the binary was compiled.
-//% *
-//% * @param otherDictionary Dictionary containing entries to be added to this
-//% * dictionary.
-//% **/
-//%- (void)addRawEntriesFromDictionary:(GPB##KEY_NAME##VALUE_NAME##Dictionary *)otherDictionary;
-//%
-//%// If value is not a valid enumerator as defined by validationFunc, these
-//%// methods will assert in debug, and will log in release and assign the value
-//%// to the default value. Use the rawValue methods below to assign non enumerator
-//%// values.
-//%
-//%DICTIONARY_MUTABLE_INTERFACE(KEY_NAME, KEY_TYPE, KisP, VALUE_NAME, VALUE_TYPE, VHELPER, Enum, value)
-//%
-//%@end
-//%
-
-//%PDDM-DEFINE DICTIONARY_IMMUTABLE_INTERFACE(KEY_NAME, KEY_TYPE, KisP, VALUE_NAME, VALUE_TYPE, VHELPER, VNAME, VNAME_VAR)
-//%VALUE_FOR_KEY_##VHELPER(KEY_TYPE##KisP$S##KisP, VALUE_TYPE, VNAME)
-//%
-//%/**
-//% * Enumerates the keys and values on this dictionary with the given block.
-//% *
-//% * @param block The block to enumerate with.
-//% * **key**: ##VNAME_VAR$S## The key for the current entry.
-//% * **VNAME_VAR**: The value for the current entry
-//% * **stop**: ##VNAME_VAR$S## A pointer to a boolean that when set stops the enumeration.
-//% **/
-//%- (void)enumerateKeysAnd##VNAME##sUsingBlock:
-//% (void (^)(KEY_TYPE KisP##key, VALUE_TYPE VNAME_VAR, BOOL *stop))block;
-
-//%PDDM-DEFINE DICTIONARY_MUTABLE_INTERFACE(KEY_NAME, KEY_TYPE, KisP, VALUE_NAME, VALUE_TYPE, VHELPER, VNAME, VNAME_VAR)
-//%/**
-//% * Sets the value for the given key.
-//% *
-//% * @param ##VNAME_VAR The value to set.
-//% * @param key ##VNAME_VAR$S## The key under which to store the value.
-//% **/
-//%- (void)set##VNAME##:(VALUE_TYPE)##VNAME_VAR forKey:(KEY_TYPE##KisP$S##KisP)key;
-//%DICTIONARY_EXTRA_MUTABLE_METHODS_##VHELPER(KEY_NAME, KEY_TYPE, KisP, VALUE_NAME, VALUE_TYPE)
-//%/**
-//% * Removes the entry for the given key.
-//% *
-//% * @param aKey Key to be removed from this dictionary.
-//% **/
-//%- (void)remove##VNAME##ForKey:(KEY_TYPE##KisP$S##KisP)aKey;
-//%
-//%/**
-//% * Removes all entries in this dictionary.
-//% **/
-//%- (void)removeAll;
-
-//%PDDM-DEFINE DICTIONARY_EXTRA_MUTABLE_METHODS_POD(KEY_NAME, KEY_TYPE, KisP, VALUE_NAME, VALUE_TYPE)
-// Empty
-//%PDDM-DEFINE DICTIONARY_EXTRA_MUTABLE_METHODS_OBJECT(KEY_NAME, KEY_TYPE, KisP, VALUE_NAME, VALUE_TYPE)
-// Empty
-//%PDDM-DEFINE DICTIONARY_EXTRA_MUTABLE_METHODS_Enum(KEY_NAME, KEY_TYPE, KisP, VALUE_NAME, VALUE_TYPE)
-//%
-//%/**
-//% * Sets the raw enum value for the given key.
-//% *
-//% * @note This method bypass the validationFunc to enable the setting of values that
-//% * were not known at the time the binary was compiled.
-//% *
-//% * @param rawValue The raw enum value to set.
-//% * @param key The key under which to store the raw enum value.
-//% **/
-//%- (void)setRawValue:(VALUE_TYPE)rawValue forKey:(KEY_TYPE##KisP$S##KisP)key;
-//%
diff --git a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBDictionary.m b/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBDictionary.m
deleted file mode 100644
index 1c67c680..00000000
--- a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBDictionary.m
+++ /dev/null
@@ -1,13627 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// https://developers.google.com/protocol-buffers/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#import "GPBDictionary_PackagePrivate.h"
-
-#import "GPBCodedInputStream_PackagePrivate.h"
-#import "GPBCodedOutputStream_PackagePrivate.h"
-#import "GPBDescriptor_PackagePrivate.h"
-#import "GPBMessage_PackagePrivate.h"
-#import "GPBUtilities_PackagePrivate.h"
-
-// ------------------------------ NOTE ------------------------------
-// At the moment, this is all using NSNumbers in NSDictionaries under
-// the hood, but it is all hidden so we can come back and optimize
-// with direct CFDictionary usage later. The reason that wasn't
-// done yet is needing to support 32bit iOS builds. Otherwise
-// it would be pretty simple to store all this data in CFDictionaries
-// directly.
-// ------------------------------------------------------------------
-
-// Direct access is use for speed, to avoid even internally declaring things
-// read/write, etc. The warning is enabled in the project to ensure code calling
-// protos can turn on -Wdirect-ivar-access without issues.
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wdirect-ivar-access"
-
-// Used to include code only visible to specific versions of the static
-// analyzer. Useful for wrapping code that only exists to silence the analyzer.
-// Determine the values you want to use for BEGIN_APPLE_BUILD_VERSION,
-// END_APPLE_BUILD_VERSION using:
-// xcrun clang -dM -E -x c /dev/null | grep __apple_build_version__
-// Example usage:
-// #if GPB_STATIC_ANALYZER_ONLY(5621, 5623) ... #endif
-#define GPB_STATIC_ANALYZER_ONLY(BEGIN_APPLE_BUILD_VERSION, END_APPLE_BUILD_VERSION) \
- (defined(__clang_analyzer__) && \
- (__apple_build_version__ >= BEGIN_APPLE_BUILD_VERSION && \
- __apple_build_version__ <= END_APPLE_BUILD_VERSION))
-
-enum {
- kMapKeyFieldNumber = 1,
- kMapValueFieldNumber = 2,
-};
-
-static BOOL DictDefault_IsValidValue(int32_t value) {
- // Anything but the bad value marker is allowed.
- return (value != kGPBUnrecognizedEnumeratorValue);
-}
-
-//%PDDM-DEFINE SERIALIZE_SUPPORT_2_TYPE(VALUE_NAME, VALUE_TYPE, GPBDATATYPE_NAME1, GPBDATATYPE_NAME2)
-//%static size_t ComputeDict##VALUE_NAME##FieldSize(VALUE_TYPE value, uint32_t fieldNum, GPBDataType dataType) {
-//% if (dataType == GPBDataType##GPBDATATYPE_NAME1) {
-//% return GPBCompute##GPBDATATYPE_NAME1##Size(fieldNum, value);
-//% } else if (dataType == GPBDataType##GPBDATATYPE_NAME2) {
-//% return GPBCompute##GPBDATATYPE_NAME2##Size(fieldNum, value);
-//% } else {
-//% NSCAssert(NO, @"Unexpected type %d", dataType);
-//% return 0;
-//% }
-//%}
-//%
-//%static void WriteDict##VALUE_NAME##Field(GPBCodedOutputStream *stream, VALUE_TYPE value, uint32_t fieldNum, GPBDataType dataType) {
-//% if (dataType == GPBDataType##GPBDATATYPE_NAME1) {
-//% [stream write##GPBDATATYPE_NAME1##:fieldNum value:value];
-//% } else if (dataType == GPBDataType##GPBDATATYPE_NAME2) {
-//% [stream write##GPBDATATYPE_NAME2##:fieldNum value:value];
-//% } else {
-//% NSCAssert(NO, @"Unexpected type %d", dataType);
-//% }
-//%}
-//%
-//%PDDM-DEFINE SERIALIZE_SUPPORT_3_TYPE(VALUE_NAME, VALUE_TYPE, GPBDATATYPE_NAME1, GPBDATATYPE_NAME2, GPBDATATYPE_NAME3)
-//%static size_t ComputeDict##VALUE_NAME##FieldSize(VALUE_TYPE value, uint32_t fieldNum, GPBDataType dataType) {
-//% if (dataType == GPBDataType##GPBDATATYPE_NAME1) {
-//% return GPBCompute##GPBDATATYPE_NAME1##Size(fieldNum, value);
-//% } else if (dataType == GPBDataType##GPBDATATYPE_NAME2) {
-//% return GPBCompute##GPBDATATYPE_NAME2##Size(fieldNum, value);
-//% } else if (dataType == GPBDataType##GPBDATATYPE_NAME3) {
-//% return GPBCompute##GPBDATATYPE_NAME3##Size(fieldNum, value);
-//% } else {
-//% NSCAssert(NO, @"Unexpected type %d", dataType);
-//% return 0;
-//% }
-//%}
-//%
-//%static void WriteDict##VALUE_NAME##Field(GPBCodedOutputStream *stream, VALUE_TYPE value, uint32_t fieldNum, GPBDataType dataType) {
-//% if (dataType == GPBDataType##GPBDATATYPE_NAME1) {
-//% [stream write##GPBDATATYPE_NAME1##:fieldNum value:value];
-//% } else if (dataType == GPBDataType##GPBDATATYPE_NAME2) {
-//% [stream write##GPBDATATYPE_NAME2##:fieldNum value:value];
-//% } else if (dataType == GPBDataType##GPBDATATYPE_NAME3) {
-//% [stream write##GPBDATATYPE_NAME3##:fieldNum value:value];
-//% } else {
-//% NSCAssert(NO, @"Unexpected type %d", dataType);
-//% }
-//%}
-//%
-//%PDDM-DEFINE SIMPLE_SERIALIZE_SUPPORT(VALUE_NAME, VALUE_TYPE, VisP)
-//%static size_t ComputeDict##VALUE_NAME##FieldSize(VALUE_TYPE VisP##value, uint32_t fieldNum, GPBDataType dataType) {
-//% NSCAssert(dataType == GPBDataType##VALUE_NAME, @"bad type: %d", dataType);
-//% #pragma unused(dataType) // For when asserts are off in release.
-//% return GPBCompute##VALUE_NAME##Size(fieldNum, value);
-//%}
-//%
-//%static void WriteDict##VALUE_NAME##Field(GPBCodedOutputStream *stream, VALUE_TYPE VisP##value, uint32_t fieldNum, GPBDataType dataType) {
-//% NSCAssert(dataType == GPBDataType##VALUE_NAME, @"bad type: %d", dataType);
-//% #pragma unused(dataType) // For when asserts are off in release.
-//% [stream write##VALUE_NAME##:fieldNum value:value];
-//%}
-//%
-//%PDDM-DEFINE SERIALIZE_SUPPORT_HELPERS()
-//%SERIALIZE_SUPPORT_3_TYPE(Int32, int32_t, Int32, SInt32, SFixed32)
-//%SERIALIZE_SUPPORT_2_TYPE(UInt32, uint32_t, UInt32, Fixed32)
-//%SERIALIZE_SUPPORT_3_TYPE(Int64, int64_t, Int64, SInt64, SFixed64)
-//%SERIALIZE_SUPPORT_2_TYPE(UInt64, uint64_t, UInt64, Fixed64)
-//%SIMPLE_SERIALIZE_SUPPORT(Bool, BOOL, )
-//%SIMPLE_SERIALIZE_SUPPORT(Enum, int32_t, )
-//%SIMPLE_SERIALIZE_SUPPORT(Float, float, )
-//%SIMPLE_SERIALIZE_SUPPORT(Double, double, )
-//%SIMPLE_SERIALIZE_SUPPORT(String, NSString, *)
-//%SERIALIZE_SUPPORT_3_TYPE(Object, id, Message, String, Bytes)
-//%PDDM-EXPAND SERIALIZE_SUPPORT_HELPERS()
-// This block of code is generated, do not edit it directly.
-
-static size_t ComputeDictInt32FieldSize(int32_t value, uint32_t fieldNum, GPBDataType dataType) {
- if (dataType == GPBDataTypeInt32) {
- return GPBComputeInt32Size(fieldNum, value);
- } else if (dataType == GPBDataTypeSInt32) {
- return GPBComputeSInt32Size(fieldNum, value);
- } else if (dataType == GPBDataTypeSFixed32) {
- return GPBComputeSFixed32Size(fieldNum, value);
- } else {
- NSCAssert(NO, @"Unexpected type %d", dataType);
- return 0;
- }
-}
-
-static void WriteDictInt32Field(GPBCodedOutputStream *stream, int32_t value, uint32_t fieldNum, GPBDataType dataType) {
- if (dataType == GPBDataTypeInt32) {
- [stream writeInt32:fieldNum value:value];
- } else if (dataType == GPBDataTypeSInt32) {
- [stream writeSInt32:fieldNum value:value];
- } else if (dataType == GPBDataTypeSFixed32) {
- [stream writeSFixed32:fieldNum value:value];
- } else {
- NSCAssert(NO, @"Unexpected type %d", dataType);
- }
-}
-
-static size_t ComputeDictUInt32FieldSize(uint32_t value, uint32_t fieldNum, GPBDataType dataType) {
- if (dataType == GPBDataTypeUInt32) {
- return GPBComputeUInt32Size(fieldNum, value);
- } else if (dataType == GPBDataTypeFixed32) {
- return GPBComputeFixed32Size(fieldNum, value);
- } else {
- NSCAssert(NO, @"Unexpected type %d", dataType);
- return 0;
- }
-}
-
-static void WriteDictUInt32Field(GPBCodedOutputStream *stream, uint32_t value, uint32_t fieldNum, GPBDataType dataType) {
- if (dataType == GPBDataTypeUInt32) {
- [stream writeUInt32:fieldNum value:value];
- } else if (dataType == GPBDataTypeFixed32) {
- [stream writeFixed32:fieldNum value:value];
- } else {
- NSCAssert(NO, @"Unexpected type %d", dataType);
- }
-}
-
-static size_t ComputeDictInt64FieldSize(int64_t value, uint32_t fieldNum, GPBDataType dataType) {
- if (dataType == GPBDataTypeInt64) {
- return GPBComputeInt64Size(fieldNum, value);
- } else if (dataType == GPBDataTypeSInt64) {
- return GPBComputeSInt64Size(fieldNum, value);
- } else if (dataType == GPBDataTypeSFixed64) {
- return GPBComputeSFixed64Size(fieldNum, value);
- } else {
- NSCAssert(NO, @"Unexpected type %d", dataType);
- return 0;
- }
-}
-
-static void WriteDictInt64Field(GPBCodedOutputStream *stream, int64_t value, uint32_t fieldNum, GPBDataType dataType) {
- if (dataType == GPBDataTypeInt64) {
- [stream writeInt64:fieldNum value:value];
- } else if (dataType == GPBDataTypeSInt64) {
- [stream writeSInt64:fieldNum value:value];
- } else if (dataType == GPBDataTypeSFixed64) {
- [stream writeSFixed64:fieldNum value:value];
- } else {
- NSCAssert(NO, @"Unexpected type %d", dataType);
- }
-}
-
-static size_t ComputeDictUInt64FieldSize(uint64_t value, uint32_t fieldNum, GPBDataType dataType) {
- if (dataType == GPBDataTypeUInt64) {
- return GPBComputeUInt64Size(fieldNum, value);
- } else if (dataType == GPBDataTypeFixed64) {
- return GPBComputeFixed64Size(fieldNum, value);
- } else {
- NSCAssert(NO, @"Unexpected type %d", dataType);
- return 0;
- }
-}
-
-static void WriteDictUInt64Field(GPBCodedOutputStream *stream, uint64_t value, uint32_t fieldNum, GPBDataType dataType) {
- if (dataType == GPBDataTypeUInt64) {
- [stream writeUInt64:fieldNum value:value];
- } else if (dataType == GPBDataTypeFixed64) {
- [stream writeFixed64:fieldNum value:value];
- } else {
- NSCAssert(NO, @"Unexpected type %d", dataType);
- }
-}
-
-static size_t ComputeDictBoolFieldSize(BOOL value, uint32_t fieldNum, GPBDataType dataType) {
- NSCAssert(dataType == GPBDataTypeBool, @"bad type: %d", dataType);
- #pragma unused(dataType) // For when asserts are off in release.
- return GPBComputeBoolSize(fieldNum, value);
-}
-
-static void WriteDictBoolField(GPBCodedOutputStream *stream, BOOL value, uint32_t fieldNum, GPBDataType dataType) {
- NSCAssert(dataType == GPBDataTypeBool, @"bad type: %d", dataType);
- #pragma unused(dataType) // For when asserts are off in release.
- [stream writeBool:fieldNum value:value];
-}
-
-static size_t ComputeDictEnumFieldSize(int32_t value, uint32_t fieldNum, GPBDataType dataType) {
- NSCAssert(dataType == GPBDataTypeEnum, @"bad type: %d", dataType);
- #pragma unused(dataType) // For when asserts are off in release.
- return GPBComputeEnumSize(fieldNum, value);
-}
-
-static void WriteDictEnumField(GPBCodedOutputStream *stream, int32_t value, uint32_t fieldNum, GPBDataType dataType) {
- NSCAssert(dataType == GPBDataTypeEnum, @"bad type: %d", dataType);
- #pragma unused(dataType) // For when asserts are off in release.
- [stream writeEnum:fieldNum value:value];
-}
-
-static size_t ComputeDictFloatFieldSize(float value, uint32_t fieldNum, GPBDataType dataType) {
- NSCAssert(dataType == GPBDataTypeFloat, @"bad type: %d", dataType);
- #pragma unused(dataType) // For when asserts are off in release.
- return GPBComputeFloatSize(fieldNum, value);
-}
-
-static void WriteDictFloatField(GPBCodedOutputStream *stream, float value, uint32_t fieldNum, GPBDataType dataType) {
- NSCAssert(dataType == GPBDataTypeFloat, @"bad type: %d", dataType);
- #pragma unused(dataType) // For when asserts are off in release.
- [stream writeFloat:fieldNum value:value];
-}
-
-static size_t ComputeDictDoubleFieldSize(double value, uint32_t fieldNum, GPBDataType dataType) {
- NSCAssert(dataType == GPBDataTypeDouble, @"bad type: %d", dataType);
- #pragma unused(dataType) // For when asserts are off in release.
- return GPBComputeDoubleSize(fieldNum, value);
-}
-
-static void WriteDictDoubleField(GPBCodedOutputStream *stream, double value, uint32_t fieldNum, GPBDataType dataType) {
- NSCAssert(dataType == GPBDataTypeDouble, @"bad type: %d", dataType);
- #pragma unused(dataType) // For when asserts are off in release.
- [stream writeDouble:fieldNum value:value];
-}
-
-static size_t ComputeDictStringFieldSize(NSString *value, uint32_t fieldNum, GPBDataType dataType) {
- NSCAssert(dataType == GPBDataTypeString, @"bad type: %d", dataType);
- #pragma unused(dataType) // For when asserts are off in release.
- return GPBComputeStringSize(fieldNum, value);
-}
-
-static void WriteDictStringField(GPBCodedOutputStream *stream, NSString *value, uint32_t fieldNum, GPBDataType dataType) {
- NSCAssert(dataType == GPBDataTypeString, @"bad type: %d", dataType);
- #pragma unused(dataType) // For when asserts are off in release.
- [stream writeString:fieldNum value:value];
-}
-
-static size_t ComputeDictObjectFieldSize(id value, uint32_t fieldNum, GPBDataType dataType) {
- if (dataType == GPBDataTypeMessage) {
- return GPBComputeMessageSize(fieldNum, value);
- } else if (dataType == GPBDataTypeString) {
- return GPBComputeStringSize(fieldNum, value);
- } else if (dataType == GPBDataTypeBytes) {
- return GPBComputeBytesSize(fieldNum, value);
- } else {
- NSCAssert(NO, @"Unexpected type %d", dataType);
- return 0;
- }
-}
-
-static void WriteDictObjectField(GPBCodedOutputStream *stream, id value, uint32_t fieldNum, GPBDataType dataType) {
- if (dataType == GPBDataTypeMessage) {
- [stream writeMessage:fieldNum value:value];
- } else if (dataType == GPBDataTypeString) {
- [stream writeString:fieldNum value:value];
- } else if (dataType == GPBDataTypeBytes) {
- [stream writeBytes:fieldNum value:value];
- } else {
- NSCAssert(NO, @"Unexpected type %d", dataType);
- }
-}
-
-//%PDDM-EXPAND-END SERIALIZE_SUPPORT_HELPERS()
-
-size_t GPBDictionaryComputeSizeInternalHelper(NSDictionary *dict, GPBFieldDescriptor *field) {
- GPBDataType mapValueType = GPBGetFieldDataType(field);
- __block size_t result = 0;
- [dict enumerateKeysAndObjectsUsingBlock:^(NSString *key, id obj, BOOL *stop) {
- #pragma unused(stop)
- size_t msgSize = GPBComputeStringSize(kMapKeyFieldNumber, key);
- msgSize += ComputeDictObjectFieldSize(obj, kMapValueFieldNumber, mapValueType);
- result += GPBComputeRawVarint32SizeForInteger(msgSize) + msgSize;
- }];
- size_t tagSize = GPBComputeWireFormatTagSize(GPBFieldNumber(field), GPBDataTypeMessage);
- result += tagSize * dict.count;
- return result;
-}
-
-void GPBDictionaryWriteToStreamInternalHelper(GPBCodedOutputStream *outputStream,
- NSDictionary *dict,
- GPBFieldDescriptor *field) {
- NSCAssert(field.mapKeyDataType == GPBDataTypeString, @"Unexpected key type");
- GPBDataType mapValueType = GPBGetFieldDataType(field);
- uint32_t tag = GPBWireFormatMakeTag(GPBFieldNumber(field), GPBWireFormatLengthDelimited);
- [dict enumerateKeysAndObjectsUsingBlock:^(NSString *key, id obj, BOOL *stop) {
- #pragma unused(stop)
- // Write the tag.
- [outputStream writeInt32NoTag:tag];
- // Write the size of the message.
- size_t msgSize = GPBComputeStringSize(kMapKeyFieldNumber, key);
- msgSize += ComputeDictObjectFieldSize(obj, kMapValueFieldNumber, mapValueType);
-
- // Write the size and fields.
- [outputStream writeInt32NoTag:(int32_t)msgSize];
- [outputStream writeString:kMapKeyFieldNumber value:key];
- WriteDictObjectField(outputStream, obj, kMapValueFieldNumber, mapValueType);
- }];
-}
-
-BOOL GPBDictionaryIsInitializedInternalHelper(NSDictionary *dict, GPBFieldDescriptor *field) {
- NSCAssert(field.mapKeyDataType == GPBDataTypeString, @"Unexpected key type");
- NSCAssert(GPBGetFieldDataType(field) == GPBDataTypeMessage, @"Unexpected value type");
- #pragma unused(field) // For when asserts are off in release.
- for (GPBMessage *msg in [dict objectEnumerator]) {
- if (!msg.initialized) {
- return NO;
- }
- }
- return YES;
-}
-
-// Note: if the type is an object, it the retain pass back to the caller.
-static void ReadValue(GPBCodedInputStream *stream,
- GPBGenericValue *valueToFill,
- GPBDataType type,
- GPBExtensionRegistry *registry,
- GPBFieldDescriptor *field) {
- switch (type) {
- case GPBDataTypeBool:
- valueToFill->valueBool = GPBCodedInputStreamReadBool(&stream->state_);
- break;
- case GPBDataTypeFixed32:
- valueToFill->valueUInt32 = GPBCodedInputStreamReadFixed32(&stream->state_);
- break;
- case GPBDataTypeSFixed32:
- valueToFill->valueInt32 = GPBCodedInputStreamReadSFixed32(&stream->state_);
- break;
- case GPBDataTypeFloat:
- valueToFill->valueFloat = GPBCodedInputStreamReadFloat(&stream->state_);
- break;
- case GPBDataTypeFixed64:
- valueToFill->valueUInt64 = GPBCodedInputStreamReadFixed64(&stream->state_);
- break;
- case GPBDataTypeSFixed64:
- valueToFill->valueInt64 = GPBCodedInputStreamReadSFixed64(&stream->state_);
- break;
- case GPBDataTypeDouble:
- valueToFill->valueDouble = GPBCodedInputStreamReadDouble(&stream->state_);
- break;
- case GPBDataTypeInt32:
- valueToFill->valueInt32 = GPBCodedInputStreamReadInt32(&stream->state_);
- break;
- case GPBDataTypeInt64:
- valueToFill->valueInt64 = GPBCodedInputStreamReadInt32(&stream->state_);
- break;
- case GPBDataTypeSInt32:
- valueToFill->valueInt32 = GPBCodedInputStreamReadSInt32(&stream->state_);
- break;
- case GPBDataTypeSInt64:
- valueToFill->valueInt64 = GPBCodedInputStreamReadSInt64(&stream->state_);
- break;
- case GPBDataTypeUInt32:
- valueToFill->valueUInt32 = GPBCodedInputStreamReadUInt32(&stream->state_);
- break;
- case GPBDataTypeUInt64:
- valueToFill->valueUInt64 = GPBCodedInputStreamReadUInt64(&stream->state_);
- break;
- case GPBDataTypeBytes:
- [valueToFill->valueData release];
- valueToFill->valueData = GPBCodedInputStreamReadRetainedBytes(&stream->state_);
- break;
- case GPBDataTypeString:
- [valueToFill->valueString release];
- valueToFill->valueString = GPBCodedInputStreamReadRetainedString(&stream->state_);
- break;
- case GPBDataTypeMessage: {
- GPBMessage *message = [[field.msgClass alloc] init];
- [stream readMessage:message extensionRegistry:registry];
- [valueToFill->valueMessage release];
- valueToFill->valueMessage = message;
- break;
- }
- case GPBDataTypeGroup:
- NSCAssert(NO, @"Can't happen");
- break;
- case GPBDataTypeEnum:
- valueToFill->valueEnum = GPBCodedInputStreamReadEnum(&stream->state_);
- break;
- }
-}
-
-void GPBDictionaryReadEntry(id mapDictionary,
- GPBCodedInputStream *stream,
- GPBExtensionRegistry *registry,
- GPBFieldDescriptor *field,
- GPBMessage *parentMessage) {
- GPBDataType keyDataType = field.mapKeyDataType;
- GPBDataType valueDataType = GPBGetFieldDataType(field);
-
- GPBGenericValue key;
- GPBGenericValue value;
- // Zero them (but pick up any enum default for proto2).
- key.valueString = value.valueString = nil;
- if (valueDataType == GPBDataTypeEnum) {
- value = field.defaultValue;
- }
-
- GPBCodedInputStreamState *state = &stream->state_;
- uint32_t keyTag =
- GPBWireFormatMakeTag(kMapKeyFieldNumber, GPBWireFormatForType(keyDataType, NO));
- uint32_t valueTag =
- GPBWireFormatMakeTag(kMapValueFieldNumber, GPBWireFormatForType(valueDataType, NO));
-
- BOOL hitError = NO;
- while (YES) {
- uint32_t tag = GPBCodedInputStreamReadTag(state);
- if (tag == keyTag) {
- ReadValue(stream, &key, keyDataType, registry, field);
- } else if (tag == valueTag) {
- ReadValue(stream, &value, valueDataType, registry, field);
- } else if (tag == 0) {
- // zero signals EOF / limit reached
- break;
- } else { // Unknown
- if (![stream skipField:tag]){
- hitError = YES;
- break;
- }
- }
- }
-
- if (!hitError) {
- // Handle the special defaults and/or missing key/value.
- if ((keyDataType == GPBDataTypeString) && (key.valueString == nil)) {
- key.valueString = [@"" retain];
- }
- if (GPBDataTypeIsObject(valueDataType) && value.valueString == nil) {
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wswitch-enum"
- switch (valueDataType) {
- case GPBDataTypeString:
- value.valueString = [@"" retain];
- break;
- case GPBDataTypeBytes:
- value.valueData = [GPBEmptyNSData() retain];
- break;
-#if defined(__clang_analyzer__)
- case GPBDataTypeGroup:
- // Maps can't really have Groups as the value type, but this case is needed
- // so the analyzer won't report the posibility of send nil in for the value
- // in the NSMutableDictionary case below.
-#endif
- case GPBDataTypeMessage: {
- value.valueMessage = [[field.msgClass alloc] init];
- break;
- }
- default:
- // Nothing
- break;
- }
-#pragma clang diagnostic pop
- }
-
- if ((keyDataType == GPBDataTypeString) && GPBDataTypeIsObject(valueDataType)) {
-#if GPB_STATIC_ANALYZER_ONLY(6020053, 7000181)
- // Limited to Xcode 6.4 - 7.2, are known to fail here. The upper end can
- // be raised as needed for new Xcodes.
- //
- // This is only needed on a "shallow" analyze; on a "deep" analyze, the
- // existing code path gets this correct. In shallow, the analyzer decides
- // GPBDataTypeIsObject(valueDataType) is both false and true on a single
- // path through this function, allowing nil to be used for the
- // setObject:forKey:.
- if (value.valueString == nil) {
- value.valueString = [@"" retain];
- }
-#endif
- // mapDictionary is an NSMutableDictionary
- [(NSMutableDictionary *)mapDictionary setObject:value.valueString
- forKey:key.valueString];
- } else {
- if (valueDataType == GPBDataTypeEnum) {
- if (GPBHasPreservingUnknownEnumSemantics([parentMessage descriptor].file.syntax) ||
- [field isValidEnumValue:value.valueEnum]) {
- [mapDictionary setGPBGenericValue:&value forGPBGenericValueKey:&key];
- } else {
- NSData *data = [mapDictionary serializedDataForUnknownValue:value.valueEnum
- forKey:&key
- keyDataType:keyDataType];
- [parentMessage addUnknownMapEntry:GPBFieldNumber(field) value:data];
- }
- } else {
- [mapDictionary setGPBGenericValue:&value forGPBGenericValueKey:&key];
- }
- }
- }
-
- if (GPBDataTypeIsObject(keyDataType)) {
- [key.valueString release];
- }
- if (GPBDataTypeIsObject(valueDataType)) {
- [value.valueString release];
- }
-}
-
-//
-// Macros for the common basic cases.
-//
-
-//%PDDM-DEFINE DICTIONARY_IMPL_FOR_POD_KEY(KEY_NAME, KEY_TYPE)
-//%DICTIONARY_POD_IMPL_FOR_KEY(KEY_NAME, KEY_TYPE, , POD)
-//%DICTIONARY_POD_KEY_TO_OBJECT_IMPL(KEY_NAME, KEY_TYPE, Object, id)
-
-//%PDDM-DEFINE DICTIONARY_POD_IMPL_FOR_KEY(KEY_NAME, KEY_TYPE, KisP, KHELPER)
-//%DICTIONARY_KEY_TO_POD_IMPL(KEY_NAME, KEY_TYPE, KisP, UInt32, uint32_t, KHELPER)
-//%DICTIONARY_KEY_TO_POD_IMPL(KEY_NAME, KEY_TYPE, KisP, Int32, int32_t, KHELPER)
-//%DICTIONARY_KEY_TO_POD_IMPL(KEY_NAME, KEY_TYPE, KisP, UInt64, uint64_t, KHELPER)
-//%DICTIONARY_KEY_TO_POD_IMPL(KEY_NAME, KEY_TYPE, KisP, Int64, int64_t, KHELPER)
-//%DICTIONARY_KEY_TO_POD_IMPL(KEY_NAME, KEY_TYPE, KisP, Bool, BOOL, KHELPER)
-//%DICTIONARY_KEY_TO_POD_IMPL(KEY_NAME, KEY_TYPE, KisP, Float, float, KHELPER)
-//%DICTIONARY_KEY_TO_POD_IMPL(KEY_NAME, KEY_TYPE, KisP, Double, double, KHELPER)
-//%DICTIONARY_KEY_TO_ENUM_IMPL(KEY_NAME, KEY_TYPE, KisP, Enum, int32_t, KHELPER)
-
-//%PDDM-DEFINE DICTIONARY_KEY_TO_POD_IMPL(KEY_NAME, KEY_TYPE, KisP, VALUE_NAME, VALUE_TYPE, KHELPER)
-//%DICTIONARY_COMMON_IMPL(KEY_NAME, KEY_TYPE, KisP, VALUE_NAME, VALUE_TYPE, KHELPER, POD, VALUE_NAME, value)
-
-//%PDDM-DEFINE DICTIONARY_POD_KEY_TO_OBJECT_IMPL(KEY_NAME, KEY_TYPE, VALUE_NAME, VALUE_TYPE)
-//%DICTIONARY_COMMON_IMPL(KEY_NAME, KEY_TYPE, , VALUE_NAME, VALUE_TYPE, POD, OBJECT, Object, object)
-
-//%PDDM-DEFINE DICTIONARY_COMMON_IMPL(KEY_NAME, KEY_TYPE, KisP, VALUE_NAME, VALUE_TYPE, KHELPER, VHELPER, VNAME, VNAME_VAR)
-//%#pragma mark - KEY_NAME -> VALUE_NAME
-//%
-//%@implementation GPB##KEY_NAME##VALUE_NAME##Dictionary {
-//% @package
-//% NSMutableDictionary *_dictionary;
-//%}
-//%
-//%+ (instancetype)dictionary {
-//% return [[[self alloc] initWith##VNAME##s:NULL forKeys:NULL count:0] autorelease];
-//%}
-//%
-//%+ (instancetype)dictionaryWith##VNAME##:(VALUE_TYPE)##VNAME_VAR
-//% ##VNAME$S## forKey:(KEY_TYPE##KisP$S##KisP)key {
-//% // Cast is needed so the compiler knows what class we are invoking initWith##VNAME##s:forKeys:count:
-//% // on to get the type correct.
-//% return [[(GPB##KEY_NAME##VALUE_NAME##Dictionary*)[self alloc] initWith##VNAME##s:&##VNAME_VAR
-//% KEY_NAME$S VALUE_NAME$S ##VNAME$S## forKeys:&key
-//% KEY_NAME$S VALUE_NAME$S ##VNAME$S## count:1] autorelease];
-//%}
-//%
-//%+ (instancetype)dictionaryWith##VNAME##s:(const VALUE_TYPE [])##VNAME_VAR##s
-//% ##VNAME$S## forKeys:(const KEY_TYPE##KisP$S##KisP [])keys
-//% ##VNAME$S## count:(NSUInteger)count {
-//% // Cast is needed so the compiler knows what class we are invoking initWith##VNAME##s:forKeys:count:
-//% // on to get the type correct.
-//% return [[(GPB##KEY_NAME##VALUE_NAME##Dictionary*)[self alloc] initWith##VNAME##s:##VNAME_VAR##s
-//% KEY_NAME$S VALUE_NAME$S forKeys:keys
-//% KEY_NAME$S VALUE_NAME$S count:count] autorelease];
-//%}
-//%
-//%+ (instancetype)dictionaryWithDictionary:(GPB##KEY_NAME##VALUE_NAME##Dictionary *)dictionary {
-//% // Cast is needed so the compiler knows what class we are invoking initWithDictionary:
-//% // on to get the type correct.
-//% return [[(GPB##KEY_NAME##VALUE_NAME##Dictionary*)[self alloc] initWithDictionary:dictionary] autorelease];
-//%}
-//%
-//%+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems {
-//% return [[[self alloc] initWithCapacity:numItems] autorelease];
-//%}
-//%
-//%- (instancetype)init {
-//% return [self initWith##VNAME##s:NULL forKeys:NULL count:0];
-//%}
-//%
-//%- (instancetype)initWith##VNAME##s:(const VALUE_TYPE [])##VNAME_VAR##s
-//% ##VNAME$S## forKeys:(const KEY_TYPE##KisP$S##KisP [])keys
-//% ##VNAME$S## count:(NSUInteger)count {
-//% self = [super init];
-//% if (self) {
-//% _dictionary = [[NSMutableDictionary alloc] init];
-//% if (count && VNAME_VAR##s && keys) {
-//% for (NSUInteger i = 0; i < count; ++i) {
-//%DICTIONARY_VALIDATE_VALUE_##VHELPER(VNAME_VAR##s[i], ______)##DICTIONARY_VALIDATE_KEY_##KHELPER(keys[i], ______) [_dictionary setObject:WRAPPED##VHELPER(VNAME_VAR##s[i]) forKey:WRAPPED##KHELPER(keys[i])];
-//% }
-//% }
-//% }
-//% return self;
-//%}
-//%
-//%- (instancetype)initWithDictionary:(GPB##KEY_NAME##VALUE_NAME##Dictionary *)dictionary {
-//% self = [self initWith##VNAME##s:NULL forKeys:NULL count:0];
-//% if (self) {
-//% if (dictionary) {
-//% [_dictionary addEntriesFromDictionary:dictionary->_dictionary];
-//% }
-//% }
-//% return self;
-//%}
-//%
-//%- (instancetype)initWithCapacity:(NSUInteger)numItems {
-//% #pragma unused(numItems)
-//% return [self initWith##VNAME##s:NULL forKeys:NULL count:0];
-//%}
-//%
-//%DICTIONARY_IMMUTABLE_CORE(KEY_NAME, KEY_TYPE, KisP, VALUE_NAME, VALUE_TYPE, KHELPER, VHELPER, VNAME, VNAME_VAR, )
-//%
-//%VALUE_FOR_KEY_##VHELPER(KEY_TYPE##KisP$S##KisP, VALUE_NAME, VALUE_TYPE, KHELPER)
-//%
-//%DICTIONARY_MUTABLE_CORE(KEY_NAME, KEY_TYPE, KisP, VALUE_NAME, VALUE_TYPE, KHELPER, VHELPER, VNAME, VNAME_VAR, )
-//%
-//%@end
-//%
-
-//%PDDM-DEFINE DICTIONARY_KEY_TO_ENUM_IMPL(KEY_NAME, KEY_TYPE, KisP, VALUE_NAME, VALUE_TYPE, KHELPER)
-//%DICTIONARY_KEY_TO_ENUM_IMPL2(KEY_NAME, KEY_TYPE, KisP, VALUE_NAME, VALUE_TYPE, KHELPER, POD)
-//%PDDM-DEFINE DICTIONARY_KEY_TO_ENUM_IMPL2(KEY_NAME, KEY_TYPE, KisP, VALUE_NAME, VALUE_TYPE, KHELPER, VHELPER)
-//%#pragma mark - KEY_NAME -> VALUE_NAME
-//%
-//%@implementation GPB##KEY_NAME##VALUE_NAME##Dictionary {
-//% @package
-//% NSMutableDictionary *_dictionary;
-//% GPBEnumValidationFunc _validationFunc;
-//%}
-//%
-//%@synthesize validationFunc = _validationFunc;
-//%
-//%+ (instancetype)dictionary {
-//% return [[[self alloc] initWithValidationFunction:NULL
-//% rawValues:NULL
-//% forKeys:NULL
-//% count:0] autorelease];
-//%}
-//%
-//%+ (instancetype)dictionaryWithValidationFunction:(GPBEnumValidationFunc)func {
-//% return [[[self alloc] initWithValidationFunction:func
-//% rawValues:NULL
-//% forKeys:NULL
-//% count:0] autorelease];
-//%}
-//%
-//%+ (instancetype)dictionaryWithValidationFunction:(GPBEnumValidationFunc)func
-//% rawValue:(VALUE_TYPE)rawValue
-//% forKey:(KEY_TYPE##KisP$S##KisP)key {
-//% // Cast is needed so the compiler knows what class we are invoking initWithValues:forKeys:count:
-//% // on to get the type correct.
-//% return [[(GPB##KEY_NAME##VALUE_NAME##Dictionary*)[self alloc] initWithValidationFunction:func
-//% KEY_NAME$S VALUE_NAME$S rawValues:&rawValue
-//% KEY_NAME$S VALUE_NAME$S forKeys:&key
-//% KEY_NAME$S VALUE_NAME$S count:1] autorelease];
-//%}
-//%
-//%+ (instancetype)dictionaryWithValidationFunction:(GPBEnumValidationFunc)func
-//% rawValues:(const VALUE_TYPE [])rawValues
-//% forKeys:(const KEY_TYPE##KisP$S##KisP [])keys
-//% count:(NSUInteger)count {
-//% // Cast is needed so the compiler knows what class we are invoking initWithValues:forKeys:count:
-//% // on to get the type correct.
-//% return [[(GPB##KEY_NAME##VALUE_NAME##Dictionary*)[self alloc] initWithValidationFunction:func
-//% KEY_NAME$S VALUE_NAME$S rawValues:rawValues
-//% KEY_NAME$S VALUE_NAME$S forKeys:keys
-//% KEY_NAME$S VALUE_NAME$S count:count] autorelease];
-//%}
-//%
-//%+ (instancetype)dictionaryWithDictionary:(GPB##KEY_NAME##VALUE_NAME##Dictionary *)dictionary {
-//% // Cast is needed so the compiler knows what class we are invoking initWithValues:forKeys:count:
-//% // on to get the type correct.
-//% return [[(GPB##KEY_NAME##VALUE_NAME##Dictionary*)[self alloc] initWithDictionary:dictionary] autorelease];
-//%}
-//%
-//%+ (instancetype)dictionaryWithValidationFunction:(GPBEnumValidationFunc)func
-//% capacity:(NSUInteger)numItems {
-//% return [[[self alloc] initWithValidationFunction:func capacity:numItems] autorelease];
-//%}
-//%
-//%- (instancetype)init {
-//% return [self initWithValidationFunction:NULL rawValues:NULL forKeys:NULL count:0];
-//%}
-//%
-//%- (instancetype)initWithValidationFunction:(GPBEnumValidationFunc)func {
-//% return [self initWithValidationFunction:func rawValues:NULL forKeys:NULL count:0];
-//%}
-//%
-//%- (instancetype)initWithValidationFunction:(GPBEnumValidationFunc)func
-//% rawValues:(const VALUE_TYPE [])rawValues
-//% forKeys:(const KEY_TYPE##KisP$S##KisP [])keys
-//% count:(NSUInteger)count {
-//% self = [super init];
-//% if (self) {
-//% _dictionary = [[NSMutableDictionary alloc] init];
-//% _validationFunc = (func != NULL ? func : DictDefault_IsValidValue);
-//% if (count && rawValues && keys) {
-//% for (NSUInteger i = 0; i < count; ++i) {
-//%DICTIONARY_VALIDATE_KEY_##KHELPER(keys[i], ______) [_dictionary setObject:WRAPPED##VHELPER(rawValues[i]) forKey:WRAPPED##KHELPER(keys[i])];
-//% }
-//% }
-//% }
-//% return self;
-//%}
-//%
-//%- (instancetype)initWithDictionary:(GPB##KEY_NAME##VALUE_NAME##Dictionary *)dictionary {
-//% self = [self initWithValidationFunction:dictionary.validationFunc
-//% rawValues:NULL
-//% forKeys:NULL
-//% count:0];
-//% if (self) {
-//% if (dictionary) {
-//% [_dictionary addEntriesFromDictionary:dictionary->_dictionary];
-//% }
-//% }
-//% return self;
-//%}
-//%
-//%- (instancetype)initWithValidationFunction:(GPBEnumValidationFunc)func
-//% capacity:(NSUInteger)numItems {
-//% #pragma unused(numItems)
-//% return [self initWithValidationFunction:func rawValues:NULL forKeys:NULL count:0];
-//%}
-//%
-//%DICTIONARY_IMMUTABLE_CORE(KEY_NAME, KEY_TYPE, KisP, VALUE_NAME, VALUE_TYPE, KHELPER, VHELPER, Value, value, Raw)
-//%
-//%- (BOOL)getEnum:(VALUE_TYPE *)value forKey:(KEY_TYPE##KisP$S##KisP)key {
-//% NSNumber *wrapped = [_dictionary objectForKey:WRAPPED##KHELPER(key)];
-//% if (wrapped && value) {
-//% VALUE_TYPE result = UNWRAP##VALUE_NAME(wrapped);
-//% if (!_validationFunc(result)) {
-//% result = kGPBUnrecognizedEnumeratorValue;
-//% }
-//% *value = result;
-//% }
-//% return (wrapped != NULL);
-//%}
-//%
-//%- (BOOL)getRawValue:(VALUE_TYPE *)rawValue forKey:(KEY_TYPE##KisP$S##KisP)key {
-//% NSNumber *wrapped = [_dictionary objectForKey:WRAPPED##KHELPER(key)];
-//% if (wrapped && rawValue) {
-//% *rawValue = UNWRAP##VALUE_NAME(wrapped);
-//% }
-//% return (wrapped != NULL);
-//%}
-//%
-//%- (void)enumerateKeysAndEnumsUsingBlock:
-//% (void (^)(KEY_TYPE KisP##key, VALUE_TYPE value, BOOL *stop))block {
-//% GPBEnumValidationFunc func = _validationFunc;
-//% [_dictionary enumerateKeysAndObjectsUsingBlock:^(ENUM_TYPE##KHELPER(KEY_TYPE)##aKey,
-//% ENUM_TYPE##VHELPER(VALUE_TYPE)##aValue,
-//% BOOL *stop) {
-//% VALUE_TYPE unwrapped = UNWRAP##VALUE_NAME(aValue);
-//% if (!func(unwrapped)) {
-//% unwrapped = kGPBUnrecognizedEnumeratorValue;
-//% }
-//% block(UNWRAP##KEY_NAME(aKey), unwrapped, stop);
-//% }];
-//%}
-//%
-//%DICTIONARY_MUTABLE_CORE2(KEY_NAME, KEY_TYPE, KisP, VALUE_NAME, VALUE_TYPE, KHELPER, VHELPER, Value, Enum, value, Raw)
-//%
-//%- (void)setEnum:(VALUE_TYPE)value forKey:(KEY_TYPE##KisP$S##KisP)key {
-//%DICTIONARY_VALIDATE_KEY_##KHELPER(key, ) if (!_validationFunc(value)) {
-//% [NSException raise:NSInvalidArgumentException
-//% format:@"GPB##KEY_NAME##VALUE_NAME##Dictionary: Attempt to set an unknown enum value (%d)",
-//% value];
-//% }
-//%
-//% [_dictionary setObject:WRAPPED##VHELPER(value) forKey:WRAPPED##KHELPER(key)];
-//% if (_autocreator) {
-//% GPBAutocreatedDictionaryModified(_autocreator, self);
-//% }
-//%}
-//%
-//%@end
-//%
-
-//%PDDM-DEFINE DICTIONARY_IMMUTABLE_CORE(KEY_NAME, KEY_TYPE, KisP, VALUE_NAME, VALUE_TYPE, KHELPER, VHELPER, VNAME, VNAME_VAR, ACCESSOR_NAME)
-//%- (void)dealloc {
-//% NSAssert(!_autocreator,
-//% @"%@: Autocreator must be cleared before release, autocreator: %@",
-//% [self class], _autocreator);
-//% [_dictionary release];
-//% [super dealloc];
-//%}
-//%
-//%- (instancetype)copyWithZone:(NSZone *)zone {
-//% return [[GPB##KEY_NAME##VALUE_NAME##Dictionary allocWithZone:zone] initWithDictionary:self];
-//%}
-//%
-//%- (BOOL)isEqual:(id)other {
-//% if (self == other) {
-//% return YES;
-//% }
-//% if (![other isKindOfClass:[GPB##KEY_NAME##VALUE_NAME##Dictionary class]]) {
-//% return NO;
-//% }
-//% GPB##KEY_NAME##VALUE_NAME##Dictionary *otherDictionary = other;
-//% return [_dictionary isEqual:otherDictionary->_dictionary];
-//%}
-//%
-//%- (NSUInteger)hash {
-//% return _dictionary.count;
-//%}
-//%
-//%- (NSString *)description {
-//% return [NSString stringWithFormat:@"<%@ %p> { %@ }", [self class], self, _dictionary];
-//%}
-//%
-//%- (NSUInteger)count {
-//% return _dictionary.count;
-//%}
-//%
-//%- (void)enumerateKeysAnd##ACCESSOR_NAME##VNAME##sUsingBlock:
-//% (void (^)(KEY_TYPE KisP##key, VALUE_TYPE VNAME_VAR, BOOL *stop))block {
-//% [_dictionary enumerateKeysAndObjectsUsingBlock:^(ENUM_TYPE##KHELPER(KEY_TYPE)##aKey,
-//% ENUM_TYPE##VHELPER(VALUE_TYPE)##a##VNAME_VAR$u,
-//% BOOL *stop) {
-//% block(UNWRAP##KEY_NAME(aKey), UNWRAP##VALUE_NAME(a##VNAME_VAR$u), stop);
-//% }];
-//%}
-//%
-//%EXTRA_METHODS_##VHELPER(KEY_NAME, VALUE_NAME)- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field {
-//% NSUInteger count = _dictionary.count;
-//% if (count == 0) {
-//% return 0;
-//% }
-//%
-//% GPBDataType valueDataType = GPBGetFieldDataType(field);
-//% GPBDataType keyDataType = field.mapKeyDataType;
-//% __block size_t result = 0;
-//% [_dictionary enumerateKeysAndObjectsUsingBlock:^(ENUM_TYPE##KHELPER(KEY_TYPE)##aKey,
-//% ENUM_TYPE##VHELPER(VALUE_TYPE)##a##VNAME_VAR$u##,
-//% BOOL *stop) {
-//% #pragma unused(stop)
-//% size_t msgSize = ComputeDict##KEY_NAME##FieldSize(UNWRAP##KEY_NAME(aKey), kMapKeyFieldNumber, keyDataType);
-//% msgSize += ComputeDict##VALUE_NAME##FieldSize(UNWRAP##VALUE_NAME(a##VNAME_VAR$u), kMapValueFieldNumber, valueDataType);
-//% result += GPBComputeRawVarint32SizeForInteger(msgSize) + msgSize;
-//% }];
-//% size_t tagSize = GPBComputeWireFormatTagSize(GPBFieldNumber(field), GPBDataTypeMessage);
-//% result += tagSize * count;
-//% return result;
-//%}
-//%
-//%- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
-//% asField:(GPBFieldDescriptor *)field {
-//% GPBDataType valueDataType = GPBGetFieldDataType(field);
-//% GPBDataType keyDataType = field.mapKeyDataType;
-//% uint32_t tag = GPBWireFormatMakeTag(GPBFieldNumber(field), GPBWireFormatLengthDelimited);
-//% [_dictionary enumerateKeysAndObjectsUsingBlock:^(ENUM_TYPE##KHELPER(KEY_TYPE)##aKey,
-//% ENUM_TYPE##VHELPER(VALUE_TYPE)##a##VNAME_VAR$u,
-//% BOOL *stop) {
-//% #pragma unused(stop)
-//% // Write the tag.
-//% [outputStream writeInt32NoTag:tag];
-//% // Write the size of the message.
-//% size_t msgSize = ComputeDict##KEY_NAME##FieldSize(UNWRAP##KEY_NAME(aKey), kMapKeyFieldNumber, keyDataType);
-//% msgSize += ComputeDict##VALUE_NAME##FieldSize(UNWRAP##VALUE_NAME(a##VNAME_VAR$u), kMapValueFieldNumber, valueDataType);
-//% [outputStream writeInt32NoTag:(int32_t)msgSize];
-//% // Write the fields.
-//% WriteDict##KEY_NAME##Field(outputStream, UNWRAP##KEY_NAME(aKey), kMapKeyFieldNumber, keyDataType);
-//% WriteDict##VALUE_NAME##Field(outputStream, UNWRAP##VALUE_NAME(a##VNAME_VAR$u), kMapValueFieldNumber, valueDataType);
-//% }];
-//%}
-//%
-//%SERIAL_DATA_FOR_ENTRY_##VHELPER(KEY_NAME, VALUE_NAME)- (void)setGPBGenericValue:(GPBGenericValue *)value
-//% forGPBGenericValueKey:(GPBGenericValue *)key {
-//% [_dictionary setObject:WRAPPED##VHELPER(value->##GPBVALUE_##VHELPER(VALUE_NAME)##) forKey:WRAPPED##KHELPER(key->value##KEY_NAME)];
-//%}
-//%
-//%- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block {
-//% [self enumerateKeysAnd##ACCESSOR_NAME##VNAME##sUsingBlock:^(KEY_TYPE KisP##key, VALUE_TYPE VNAME_VAR, BOOL *stop) {
-//% #pragma unused(stop)
-//% block(TEXT_FORMAT_OBJ##KEY_NAME(key), TEXT_FORMAT_OBJ##VALUE_NAME(VNAME_VAR));
-//% }];
-//%}
-//%PDDM-DEFINE DICTIONARY_MUTABLE_CORE(KEY_NAME, KEY_TYPE, KisP, VALUE_NAME, VALUE_TYPE, KHELPER, VHELPER, VNAME, VNAME_VAR, ACCESSOR_NAME)
-//%DICTIONARY_MUTABLE_CORE2(KEY_NAME, KEY_TYPE, KisP, VALUE_NAME, VALUE_TYPE, KHELPER, VHELPER, VNAME, VNAME, VNAME_VAR, ACCESSOR_NAME)
-//%PDDM-DEFINE DICTIONARY_MUTABLE_CORE2(KEY_NAME, KEY_TYPE, KisP, VALUE_NAME, VALUE_TYPE, KHELPER, VHELPER, VNAME, VNAME_REMOVE, VNAME_VAR, ACCESSOR_NAME)
-//%- (void)add##ACCESSOR_NAME##EntriesFromDictionary:(GPB##KEY_NAME##VALUE_NAME##Dictionary *)otherDictionary {
-//% if (otherDictionary) {
-//% [_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
-//% if (_autocreator) {
-//% GPBAutocreatedDictionaryModified(_autocreator, self);
-//% }
-//% }
-//%}
-//%
-//%- (void)set##ACCESSOR_NAME##VNAME##:(VALUE_TYPE)VNAME_VAR forKey:(KEY_TYPE##KisP$S##KisP)key {
-//%DICTIONARY_VALIDATE_VALUE_##VHELPER(VNAME_VAR, )##DICTIONARY_VALIDATE_KEY_##KHELPER(key, ) [_dictionary setObject:WRAPPED##VHELPER(VNAME_VAR) forKey:WRAPPED##KHELPER(key)];
-//% if (_autocreator) {
-//% GPBAutocreatedDictionaryModified(_autocreator, self);
-//% }
-//%}
-//%
-//%- (void)remove##VNAME_REMOVE##ForKey:(KEY_TYPE##KisP$S##KisP)aKey {
-//% [_dictionary removeObjectForKey:WRAPPED##KHELPER(aKey)];
-//%}
-//%
-//%- (void)removeAll {
-//% [_dictionary removeAllObjects];
-//%}
-
-//
-// Custom Generation for Bool keys
-//
-
-//%PDDM-DEFINE DICTIONARY_BOOL_KEY_TO_POD_IMPL(VALUE_NAME, VALUE_TYPE)
-//%DICTIONARY_BOOL_KEY_TO_VALUE_IMPL(VALUE_NAME, VALUE_TYPE, POD, VALUE_NAME, value)
-//%PDDM-DEFINE DICTIONARY_BOOL_KEY_TO_OBJECT_IMPL(VALUE_NAME, VALUE_TYPE)
-//%DICTIONARY_BOOL_KEY_TO_VALUE_IMPL(VALUE_NAME, VALUE_TYPE, OBJECT, Object, object)
-
-//%PDDM-DEFINE DICTIONARY_BOOL_KEY_TO_VALUE_IMPL(VALUE_NAME, VALUE_TYPE, HELPER, VNAME, VNAME_VAR)
-//%#pragma mark - Bool -> VALUE_NAME
-//%
-//%@implementation GPBBool##VALUE_NAME##Dictionary {
-//% @package
-//% VALUE_TYPE _values[2];
-//%BOOL_DICT_HAS_STORAGE_##HELPER()}
-//%
-//%+ (instancetype)dictionary {
-//% return [[[self alloc] initWith##VNAME##s:NULL forKeys:NULL count:0] autorelease];
-//%}
-//%
-//%+ (instancetype)dictionaryWith##VNAME##:(VALUE_TYPE)VNAME_VAR
-//% ##VNAME$S## forKey:(BOOL)key {
-//% // Cast is needed so the compiler knows what class we are invoking initWith##VNAME##s:forKeys:count:
-//% // on to get the type correct.
-//% return [[(GPBBool##VALUE_NAME##Dictionary*)[self alloc] initWith##VNAME##s:&##VNAME_VAR
-//% VALUE_NAME$S ##VNAME$S## forKeys:&key
-//% VALUE_NAME$S ##VNAME$S## count:1] autorelease];
-//%}
-//%
-//%+ (instancetype)dictionaryWith##VNAME##s:(const VALUE_TYPE [])##VNAME_VAR##s
-//% ##VNAME$S## forKeys:(const BOOL [])keys
-//% ##VNAME$S## count:(NSUInteger)count {
-//% // Cast is needed so the compiler knows what class we are invoking initWith##VNAME##s:forKeys:count:
-//% // on to get the type correct.
-//% return [[(GPBBool##VALUE_NAME##Dictionary*)[self alloc] initWith##VNAME##s:##VNAME_VAR##s
-//% VALUE_NAME$S ##VNAME$S## forKeys:keys
-//% VALUE_NAME$S ##VNAME$S## count:count] autorelease];
-//%}
-//%
-//%+ (instancetype)dictionaryWithDictionary:(GPBBool##VALUE_NAME##Dictionary *)dictionary {
-//% // Cast is needed so the compiler knows what class we are invoking initWithDictionary:
-//% // on to get the type correct.
-//% return [[(GPBBool##VALUE_NAME##Dictionary*)[self alloc] initWithDictionary:dictionary] autorelease];
-//%}
-//%
-//%+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems {
-//% return [[[self alloc] initWithCapacity:numItems] autorelease];
-//%}
-//%
-//%- (instancetype)init {
-//% return [self initWith##VNAME##s:NULL forKeys:NULL count:0];
-//%}
-//%
-//%BOOL_DICT_INITS_##HELPER(VALUE_NAME, VALUE_TYPE)
-//%
-//%- (instancetype)initWithCapacity:(NSUInteger)numItems {
-//% #pragma unused(numItems)
-//% return [self initWith##VNAME##s:NULL forKeys:NULL count:0];
-//%}
-//%
-//%BOOL_DICT_DEALLOC##HELPER()
-//%
-//%- (instancetype)copyWithZone:(NSZone *)zone {
-//% return [[GPBBool##VALUE_NAME##Dictionary allocWithZone:zone] initWithDictionary:self];
-//%}
-//%
-//%- (BOOL)isEqual:(id)other {
-//% if (self == other) {
-//% return YES;
-//% }
-//% if (![other isKindOfClass:[GPBBool##VALUE_NAME##Dictionary class]]) {
-//% return NO;
-//% }
-//% GPBBool##VALUE_NAME##Dictionary *otherDictionary = other;
-//% if ((BOOL_DICT_W_HAS##HELPER(0, ) != BOOL_DICT_W_HAS##HELPER(0, otherDictionary->)) ||
-//% (BOOL_DICT_W_HAS##HELPER(1, ) != BOOL_DICT_W_HAS##HELPER(1, otherDictionary->))) {
-//% return NO;
-//% }
-//% if ((BOOL_DICT_W_HAS##HELPER(0, ) && (NEQ_##HELPER(_values[0], otherDictionary->_values[0]))) ||
-//% (BOOL_DICT_W_HAS##HELPER(1, ) && (NEQ_##HELPER(_values[1], otherDictionary->_values[1])))) {
-//% return NO;
-//% }
-//% return YES;
-//%}
-//%
-//%- (NSUInteger)hash {
-//% return (BOOL_DICT_W_HAS##HELPER(0, ) ? 1 : 0) + (BOOL_DICT_W_HAS##HELPER(1, ) ? 1 : 0);
-//%}
-//%
-//%- (NSString *)description {
-//% NSMutableString *result = [NSMutableString stringWithFormat:@"<%@ %p> {", [self class], self];
-//% if (BOOL_DICT_W_HAS##HELPER(0, )) {
-//% [result appendFormat:@"NO: STR_FORMAT_##HELPER(VALUE_NAME)", _values[0]];
-//% }
-//% if (BOOL_DICT_W_HAS##HELPER(1, )) {
-//% [result appendFormat:@"YES: STR_FORMAT_##HELPER(VALUE_NAME)", _values[1]];
-//% }
-//% [result appendString:@" }"];
-//% return result;
-//%}
-//%
-//%- (NSUInteger)count {
-//% return (BOOL_DICT_W_HAS##HELPER(0, ) ? 1 : 0) + (BOOL_DICT_W_HAS##HELPER(1, ) ? 1 : 0);
-//%}
-//%
-//%BOOL_VALUE_FOR_KEY_##HELPER(VALUE_NAME, VALUE_TYPE)
-//%
-//%BOOL_SET_GPBVALUE_FOR_KEY_##HELPER(VALUE_NAME, VALUE_TYPE, VisP)
-//%
-//%- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block {
-//% if (BOOL_DICT_HAS##HELPER(0, )) {
-//% block(@"false", TEXT_FORMAT_OBJ##VALUE_NAME(_values[0]));
-//% }
-//% if (BOOL_DICT_W_HAS##HELPER(1, )) {
-//% block(@"true", TEXT_FORMAT_OBJ##VALUE_NAME(_values[1]));
-//% }
-//%}
-//%
-//%- (void)enumerateKeysAnd##VNAME##sUsingBlock:
-//% (void (^)(BOOL key, VALUE_TYPE VNAME_VAR, BOOL *stop))block {
-//% BOOL stop = NO;
-//% if (BOOL_DICT_HAS##HELPER(0, )) {
-//% block(NO, _values[0], &stop);
-//% }
-//% if (!stop && BOOL_DICT_W_HAS##HELPER(1, )) {
-//% block(YES, _values[1], &stop);
-//% }
-//%}
-//%
-//%BOOL_EXTRA_METHODS_##HELPER(Bool, VALUE_NAME)- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field {
-//% GPBDataType valueDataType = GPBGetFieldDataType(field);
-//% NSUInteger count = 0;
-//% size_t result = 0;
-//% for (int i = 0; i < 2; ++i) {
-//% if (BOOL_DICT_HAS##HELPER(i, )) {
-//% ++count;
-//% size_t msgSize = ComputeDictBoolFieldSize((i == 1), kMapKeyFieldNumber, GPBDataTypeBool);
-//% msgSize += ComputeDict##VALUE_NAME##FieldSize(_values[i], kMapValueFieldNumber, valueDataType);
-//% result += GPBComputeRawVarint32SizeForInteger(msgSize) + msgSize;
-//% }
-//% }
-//% size_t tagSize = GPBComputeWireFormatTagSize(GPBFieldNumber(field), GPBDataTypeMessage);
-//% result += tagSize * count;
-//% return result;
-//%}
-//%
-//%- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
-//% asField:(GPBFieldDescriptor *)field {
-//% GPBDataType valueDataType = GPBGetFieldDataType(field);
-//% uint32_t tag = GPBWireFormatMakeTag(GPBFieldNumber(field), GPBWireFormatLengthDelimited);
-//% for (int i = 0; i < 2; ++i) {
-//% if (BOOL_DICT_HAS##HELPER(i, )) {
-//% // Write the tag.
-//% [outputStream writeInt32NoTag:tag];
-//% // Write the size of the message.
-//% size_t msgSize = ComputeDictBoolFieldSize((i == 1), kMapKeyFieldNumber, GPBDataTypeBool);
-//% msgSize += ComputeDict##VALUE_NAME##FieldSize(_values[i], kMapValueFieldNumber, valueDataType);
-//% [outputStream writeInt32NoTag:(int32_t)msgSize];
-//% // Write the fields.
-//% WriteDictBoolField(outputStream, (i == 1), kMapKeyFieldNumber, GPBDataTypeBool);
-//% WriteDict##VALUE_NAME##Field(outputStream, _values[i], kMapValueFieldNumber, valueDataType);
-//% }
-//% }
-//%}
-//%
-//%BOOL_DICT_MUTATIONS_##HELPER(VALUE_NAME, VALUE_TYPE)
-//%
-//%@end
-//%
-
-
-//
-// Helpers for PODs
-//
-
-//%PDDM-DEFINE VALUE_FOR_KEY_POD(KEY_TYPE, VALUE_NAME, VALUE_TYPE, KHELPER)
-//%- (BOOL)get##VALUE_NAME##:(nullable VALUE_TYPE *)value forKey:(KEY_TYPE)key {
-//% NSNumber *wrapped = [_dictionary objectForKey:WRAPPED##KHELPER(key)];
-//% if (wrapped && value) {
-//% *value = UNWRAP##VALUE_NAME(wrapped);
-//% }
-//% return (wrapped != NULL);
-//%}
-//%PDDM-DEFINE WRAPPEDPOD(VALUE)
-//%@(VALUE)
-//%PDDM-DEFINE UNWRAPUInt32(VALUE)
-//%[VALUE unsignedIntValue]
-//%PDDM-DEFINE UNWRAPInt32(VALUE)
-//%[VALUE intValue]
-//%PDDM-DEFINE UNWRAPUInt64(VALUE)
-//%[VALUE unsignedLongLongValue]
-//%PDDM-DEFINE UNWRAPInt64(VALUE)
-//%[VALUE longLongValue]
-//%PDDM-DEFINE UNWRAPBool(VALUE)
-//%[VALUE boolValue]
-//%PDDM-DEFINE UNWRAPFloat(VALUE)
-//%[VALUE floatValue]
-//%PDDM-DEFINE UNWRAPDouble(VALUE)
-//%[VALUE doubleValue]
-//%PDDM-DEFINE UNWRAPEnum(VALUE)
-//%[VALUE intValue]
-//%PDDM-DEFINE TEXT_FORMAT_OBJUInt32(VALUE)
-//%[NSString stringWithFormat:@"%u", VALUE]
-//%PDDM-DEFINE TEXT_FORMAT_OBJInt32(VALUE)
-//%[NSString stringWithFormat:@"%d", VALUE]
-//%PDDM-DEFINE TEXT_FORMAT_OBJUInt64(VALUE)
-//%[NSString stringWithFormat:@"%llu", VALUE]
-//%PDDM-DEFINE TEXT_FORMAT_OBJInt64(VALUE)
-//%[NSString stringWithFormat:@"%lld", VALUE]
-//%PDDM-DEFINE TEXT_FORMAT_OBJBool(VALUE)
-//%(VALUE ? @"true" : @"false")
-//%PDDM-DEFINE TEXT_FORMAT_OBJFloat(VALUE)
-//%[NSString stringWithFormat:@"%.*g", FLT_DIG, VALUE]
-//%PDDM-DEFINE TEXT_FORMAT_OBJDouble(VALUE)
-//%[NSString stringWithFormat:@"%.*lg", DBL_DIG, VALUE]
-//%PDDM-DEFINE TEXT_FORMAT_OBJEnum(VALUE)
-//%@(VALUE)
-//%PDDM-DEFINE ENUM_TYPEPOD(TYPE)
-//%NSNumber *
-//%PDDM-DEFINE NEQ_POD(VAL1, VAL2)
-//%VAL1 != VAL2
-//%PDDM-DEFINE EXTRA_METHODS_POD(KEY_NAME, VALUE_NAME)
-// Empty
-//%PDDM-DEFINE BOOL_EXTRA_METHODS_POD(KEY_NAME, VALUE_NAME)
-// Empty
-//%PDDM-DEFINE SERIAL_DATA_FOR_ENTRY_POD(KEY_NAME, VALUE_NAME)
-//%SERIAL_DATA_FOR_ENTRY_POD_##VALUE_NAME(KEY_NAME)
-//%PDDM-DEFINE SERIAL_DATA_FOR_ENTRY_POD_UInt32(KEY_NAME)
-// Empty
-//%PDDM-DEFINE SERIAL_DATA_FOR_ENTRY_POD_Int32(KEY_NAME)
-// Empty
-//%PDDM-DEFINE SERIAL_DATA_FOR_ENTRY_POD_UInt64(KEY_NAME)
-// Empty
-//%PDDM-DEFINE SERIAL_DATA_FOR_ENTRY_POD_Int64(KEY_NAME)
-// Empty
-//%PDDM-DEFINE SERIAL_DATA_FOR_ENTRY_POD_Bool(KEY_NAME)
-// Empty
-//%PDDM-DEFINE SERIAL_DATA_FOR_ENTRY_POD_Float(KEY_NAME)
-// Empty
-//%PDDM-DEFINE SERIAL_DATA_FOR_ENTRY_POD_Double(KEY_NAME)
-// Empty
-//%PDDM-DEFINE SERIAL_DATA_FOR_ENTRY_POD_Enum(KEY_NAME)
-//%- (NSData *)serializedDataForUnknownValue:(int32_t)value
-//% forKey:(GPBGenericValue *)key
-//% keyDataType:(GPBDataType)keyDataType {
-//% size_t msgSize = ComputeDict##KEY_NAME##FieldSize(key->value##KEY_NAME, kMapKeyFieldNumber, keyDataType);
-//% msgSize += ComputeDictEnumFieldSize(value, kMapValueFieldNumber, GPBDataTypeEnum);
-//% NSMutableData *data = [NSMutableData dataWithLength:msgSize];
-//% GPBCodedOutputStream *outputStream = [[GPBCodedOutputStream alloc] initWithData:data];
-//% WriteDict##KEY_NAME##Field(outputStream, key->value##KEY_NAME, kMapKeyFieldNumber, keyDataType);
-//% WriteDictEnumField(outputStream, value, kMapValueFieldNumber, GPBDataTypeEnum);
-//% [outputStream release];
-//% return data;
-//%}
-//%
-//%PDDM-DEFINE GPBVALUE_POD(VALUE_NAME)
-//%value##VALUE_NAME
-//%PDDM-DEFINE DICTIONARY_VALIDATE_VALUE_POD(VALUE_NAME, EXTRA_INDENT)
-// Empty
-//%PDDM-DEFINE DICTIONARY_VALIDATE_KEY_POD(KEY_NAME, EXTRA_INDENT)
-// Empty
-
-//%PDDM-DEFINE BOOL_DICT_HAS_STORAGE_POD()
-//% BOOL _valueSet[2];
-//%
-//%PDDM-DEFINE BOOL_DICT_INITS_POD(VALUE_NAME, VALUE_TYPE)
-//%- (instancetype)initWith##VALUE_NAME##s:(const VALUE_TYPE [])values
-//% ##VALUE_NAME$S## forKeys:(const BOOL [])keys
-//% ##VALUE_NAME$S## count:(NSUInteger)count {
-//% self = [super init];
-//% if (self) {
-//% for (NSUInteger i = 0; i < count; ++i) {
-//% int idx = keys[i] ? 1 : 0;
-//% _values[idx] = values[i];
-//% _valueSet[idx] = YES;
-//% }
-//% }
-//% return self;
-//%}
-//%
-//%- (instancetype)initWithDictionary:(GPBBool##VALUE_NAME##Dictionary *)dictionary {
-//% self = [self initWith##VALUE_NAME##s:NULL forKeys:NULL count:0];
-//% if (self) {
-//% if (dictionary) {
-//% for (int i = 0; i < 2; ++i) {
-//% if (dictionary->_valueSet[i]) {
-//% _values[i] = dictionary->_values[i];
-//% _valueSet[i] = YES;
-//% }
-//% }
-//% }
-//% }
-//% return self;
-//%}
-//%PDDM-DEFINE BOOL_DICT_DEALLOCPOD()
-//%#if !defined(NS_BLOCK_ASSERTIONS)
-//%- (void)dealloc {
-//% NSAssert(!_autocreator,
-//% @"%@: Autocreator must be cleared before release, autocreator: %@",
-//% [self class], _autocreator);
-//% [super dealloc];
-//%}
-//%#endif // !defined(NS_BLOCK_ASSERTIONS)
-//%PDDM-DEFINE BOOL_DICT_W_HASPOD(IDX, REF)
-//%BOOL_DICT_HASPOD(IDX, REF)
-//%PDDM-DEFINE BOOL_DICT_HASPOD(IDX, REF)
-//%REF##_valueSet[IDX]
-//%PDDM-DEFINE BOOL_VALUE_FOR_KEY_POD(VALUE_NAME, VALUE_TYPE)
-//%- (BOOL)get##VALUE_NAME##:(VALUE_TYPE *)value forKey:(BOOL)key {
-//% int idx = (key ? 1 : 0);
-//% if (_valueSet[idx]) {
-//% if (value) {
-//% *value = _values[idx];
-//% }
-//% return YES;
-//% }
-//% return NO;
-//%}
-//%PDDM-DEFINE BOOL_SET_GPBVALUE_FOR_KEY_POD(VALUE_NAME, VALUE_TYPE, VisP)
-//%- (void)setGPBGenericValue:(GPBGenericValue *)value
-//% forGPBGenericValueKey:(GPBGenericValue *)key {
-//% int idx = (key->valueBool ? 1 : 0);
-//% _values[idx] = value->value##VALUE_NAME;
-//% _valueSet[idx] = YES;
-//%}
-//%PDDM-DEFINE BOOL_DICT_MUTATIONS_POD(VALUE_NAME, VALUE_TYPE)
-//%- (void)addEntriesFromDictionary:(GPBBool##VALUE_NAME##Dictionary *)otherDictionary {
-//% if (otherDictionary) {
-//% for (int i = 0; i < 2; ++i) {
-//% if (otherDictionary->_valueSet[i]) {
-//% _valueSet[i] = YES;
-//% _values[i] = otherDictionary->_values[i];
-//% }
-//% }
-//% if (_autocreator) {
-//% GPBAutocreatedDictionaryModified(_autocreator, self);
-//% }
-//% }
-//%}
-//%
-//%- (void)set##VALUE_NAME:(VALUE_TYPE)value forKey:(BOOL)key {
-//% int idx = (key ? 1 : 0);
-//% _values[idx] = value;
-//% _valueSet[idx] = YES;
-//% if (_autocreator) {
-//% GPBAutocreatedDictionaryModified(_autocreator, self);
-//% }
-//%}
-//%
-//%- (void)remove##VALUE_NAME##ForKey:(BOOL)aKey {
-//% _valueSet[aKey ? 1 : 0] = NO;
-//%}
-//%
-//%- (void)removeAll {
-//% _valueSet[0] = NO;
-//% _valueSet[1] = NO;
-//%}
-//%PDDM-DEFINE STR_FORMAT_POD(VALUE_NAME)
-//%STR_FORMAT_##VALUE_NAME()
-//%PDDM-DEFINE STR_FORMAT_UInt32()
-//%%u
-//%PDDM-DEFINE STR_FORMAT_Int32()
-//%%d
-//%PDDM-DEFINE STR_FORMAT_UInt64()
-//%%llu
-//%PDDM-DEFINE STR_FORMAT_Int64()
-//%%lld
-//%PDDM-DEFINE STR_FORMAT_Bool()
-//%%d
-//%PDDM-DEFINE STR_FORMAT_Float()
-//%%f
-//%PDDM-DEFINE STR_FORMAT_Double()
-//%%lf
-
-//
-// Helpers for Objects
-//
-
-//%PDDM-DEFINE VALUE_FOR_KEY_OBJECT(KEY_TYPE, VALUE_NAME, VALUE_TYPE, KHELPER)
-//%- (VALUE_TYPE)objectForKey:(KEY_TYPE)key {
-//% VALUE_TYPE result = [_dictionary objectForKey:WRAPPED##KHELPER(key)];
-//% return result;
-//%}
-//%PDDM-DEFINE WRAPPEDOBJECT(VALUE)
-//%VALUE
-//%PDDM-DEFINE UNWRAPString(VALUE)
-//%VALUE
-//%PDDM-DEFINE UNWRAPObject(VALUE)
-//%VALUE
-//%PDDM-DEFINE TEXT_FORMAT_OBJString(VALUE)
-//%VALUE
-//%PDDM-DEFINE TEXT_FORMAT_OBJObject(VALUE)
-//%VALUE
-//%PDDM-DEFINE ENUM_TYPEOBJECT(TYPE)
-//%ENUM_TYPEOBJECT_##TYPE()
-//%PDDM-DEFINE ENUM_TYPEOBJECT_NSString()
-//%NSString *
-//%PDDM-DEFINE ENUM_TYPEOBJECT_id()
-//%id ##
-//%PDDM-DEFINE NEQ_OBJECT(VAL1, VAL2)
-//%![VAL1 isEqual:VAL2]
-//%PDDM-DEFINE EXTRA_METHODS_OBJECT(KEY_NAME, VALUE_NAME)
-//%- (BOOL)isInitialized {
-//% for (GPBMessage *msg in [_dictionary objectEnumerator]) {
-//% if (!msg.initialized) {
-//% return NO;
-//% }
-//% }
-//% return YES;
-//%}
-//%
-//%- (instancetype)deepCopyWithZone:(NSZone *)zone {
-//% GPB##KEY_NAME##VALUE_NAME##Dictionary *newDict =
-//% [[GPB##KEY_NAME##VALUE_NAME##Dictionary alloc] init];
-//% [_dictionary enumerateKeysAndObjectsUsingBlock:^(id aKey,
-//% GPBMessage *msg,
-//% BOOL *stop) {
-//% #pragma unused(stop)
-//% GPBMessage *copiedMsg = [msg copyWithZone:zone];
-//% [newDict->_dictionary setObject:copiedMsg forKey:aKey];
-//% [copiedMsg release];
-//% }];
-//% return newDict;
-//%}
-//%
-//%
-//%PDDM-DEFINE BOOL_EXTRA_METHODS_OBJECT(KEY_NAME, VALUE_NAME)
-//%- (BOOL)isInitialized {
-//% if (_values[0] && ![_values[0] isInitialized]) {
-//% return NO;
-//% }
-//% if (_values[1] && ![_values[1] isInitialized]) {
-//% return NO;
-//% }
-//% return YES;
-//%}
-//%
-//%- (instancetype)deepCopyWithZone:(NSZone *)zone {
-//% GPB##KEY_NAME##VALUE_NAME##Dictionary *newDict =
-//% [[GPB##KEY_NAME##VALUE_NAME##Dictionary alloc] init];
-//% for (int i = 0; i < 2; ++i) {
-//% if (_values[i] != nil) {
-//% newDict->_values[i] = [_values[i] copyWithZone:zone];
-//% }
-//% }
-//% return newDict;
-//%}
-//%
-//%
-//%PDDM-DEFINE SERIAL_DATA_FOR_ENTRY_OBJECT(KEY_NAME, VALUE_NAME)
-// Empty
-//%PDDM-DEFINE GPBVALUE_OBJECT(VALUE_NAME)
-//%valueString
-//%PDDM-DEFINE DICTIONARY_VALIDATE_VALUE_OBJECT(VALUE_NAME, EXTRA_INDENT)
-//%##EXTRA_INDENT$S## if (!##VALUE_NAME) {
-//%##EXTRA_INDENT$S## [NSException raise:NSInvalidArgumentException
-//%##EXTRA_INDENT$S## format:@"Attempting to add nil object to a Dictionary"];
-//%##EXTRA_INDENT$S## }
-//%
-//%PDDM-DEFINE DICTIONARY_VALIDATE_KEY_OBJECT(KEY_NAME, EXTRA_INDENT)
-//%##EXTRA_INDENT$S## if (!##KEY_NAME) {
-//%##EXTRA_INDENT$S## [NSException raise:NSInvalidArgumentException
-//%##EXTRA_INDENT$S## format:@"Attempting to add nil key to a Dictionary"];
-//%##EXTRA_INDENT$S## }
-//%
-
-//%PDDM-DEFINE BOOL_DICT_HAS_STORAGE_OBJECT()
-// Empty
-//%PDDM-DEFINE BOOL_DICT_INITS_OBJECT(VALUE_NAME, VALUE_TYPE)
-//%- (instancetype)initWithObjects:(const VALUE_TYPE [])objects
-//% forKeys:(const BOOL [])keys
-//% count:(NSUInteger)count {
-//% self = [super init];
-//% if (self) {
-//% for (NSUInteger i = 0; i < count; ++i) {
-//% if (!objects[i]) {
-//% [NSException raise:NSInvalidArgumentException
-//% format:@"Attempting to add nil object to a Dictionary"];
-//% }
-//% int idx = keys[i] ? 1 : 0;
-//% [_values[idx] release];
-//% _values[idx] = (VALUE_TYPE)[objects[i] retain];
-//% }
-//% }
-//% return self;
-//%}
-//%
-//%- (instancetype)initWithDictionary:(GPBBool##VALUE_NAME##Dictionary *)dictionary {
-//% self = [self initWithObjects:NULL forKeys:NULL count:0];
-//% if (self) {
-//% if (dictionary) {
-//% _values[0] = [dictionary->_values[0] retain];
-//% _values[1] = [dictionary->_values[1] retain];
-//% }
-//% }
-//% return self;
-//%}
-//%PDDM-DEFINE BOOL_DICT_DEALLOCOBJECT()
-//%- (void)dealloc {
-//% NSAssert(!_autocreator,
-//% @"%@: Autocreator must be cleared before release, autocreator: %@",
-//% [self class], _autocreator);
-//% [_values[0] release];
-//% [_values[1] release];
-//% [super dealloc];
-//%}
-//%PDDM-DEFINE BOOL_DICT_W_HASOBJECT(IDX, REF)
-//%(BOOL_DICT_HASOBJECT(IDX, REF))
-//%PDDM-DEFINE BOOL_DICT_HASOBJECT(IDX, REF)
-//%REF##_values[IDX] != nil
-//%PDDM-DEFINE BOOL_VALUE_FOR_KEY_OBJECT(VALUE_NAME, VALUE_TYPE)
-//%- (VALUE_TYPE)objectForKey:(BOOL)key {
-//% return _values[key ? 1 : 0];
-//%}
-//%PDDM-DEFINE BOOL_SET_GPBVALUE_FOR_KEY_OBJECT(VALUE_NAME, VALUE_TYPE, VisP)
-//%- (void)setGPBGenericValue:(GPBGenericValue *)value
-//% forGPBGenericValueKey:(GPBGenericValue *)key {
-//% int idx = (key->valueBool ? 1 : 0);
-//% [_values[idx] release];
-//% _values[idx] = [value->valueString retain];
-//%}
-
-//%PDDM-DEFINE BOOL_DICT_MUTATIONS_OBJECT(VALUE_NAME, VALUE_TYPE)
-//%- (void)addEntriesFromDictionary:(GPBBool##VALUE_NAME##Dictionary *)otherDictionary {
-//% if (otherDictionary) {
-//% for (int i = 0; i < 2; ++i) {
-//% if (otherDictionary->_values[i] != nil) {
-//% [_values[i] release];
-//% _values[i] = [otherDictionary->_values[i] retain];
-//% }
-//% }
-//% if (_autocreator) {
-//% GPBAutocreatedDictionaryModified(_autocreator, self);
-//% }
-//% }
-//%}
-//%
-//%- (void)setObject:(VALUE_TYPE)object forKey:(BOOL)key {
-//% if (!object) {
-//% [NSException raise:NSInvalidArgumentException
-//% format:@"Attempting to add nil object to a Dictionary"];
-//% }
-//% int idx = (key ? 1 : 0);
-//% [_values[idx] release];
-//% _values[idx] = [object retain];
-//% if (_autocreator) {
-//% GPBAutocreatedDictionaryModified(_autocreator, self);
-//% }
-//%}
-//%
-//%- (void)removeObjectForKey:(BOOL)aKey {
-//% int idx = (aKey ? 1 : 0);
-//% [_values[idx] release];
-//% _values[idx] = nil;
-//%}
-//%
-//%- (void)removeAll {
-//% for (int i = 0; i < 2; ++i) {
-//% [_values[i] release];
-//% _values[i] = nil;
-//% }
-//%}
-//%PDDM-DEFINE STR_FORMAT_OBJECT(VALUE_NAME)
-//%%@
-
-
-//%PDDM-EXPAND DICTIONARY_IMPL_FOR_POD_KEY(UInt32, uint32_t)
-// This block of code is generated, do not edit it directly.
-
-#pragma mark - UInt32 -> UInt32
-
-@implementation GPBUInt32UInt32Dictionary {
- @package
- NSMutableDictionary *_dictionary;
-}
-
-+ (instancetype)dictionary {
- return [[[self alloc] initWithUInt32s:NULL forKeys:NULL count:0] autorelease];
-}
-
-+ (instancetype)dictionaryWithUInt32:(uint32_t)value
- forKey:(uint32_t)key {
- // Cast is needed so the compiler knows what class we are invoking initWithUInt32s:forKeys:count:
- // on to get the type correct.
- return [[(GPBUInt32UInt32Dictionary*)[self alloc] initWithUInt32s:&value
- forKeys:&key
- count:1] autorelease];
-}
-
-+ (instancetype)dictionaryWithUInt32s:(const uint32_t [])values
- forKeys:(const uint32_t [])keys
- count:(NSUInteger)count {
- // Cast is needed so the compiler knows what class we are invoking initWithUInt32s:forKeys:count:
- // on to get the type correct.
- return [[(GPBUInt32UInt32Dictionary*)[self alloc] initWithUInt32s:values
- forKeys:keys
- count:count] autorelease];
-}
-
-+ (instancetype)dictionaryWithDictionary:(GPBUInt32UInt32Dictionary *)dictionary {
- // Cast is needed so the compiler knows what class we are invoking initWithDictionary:
- // on to get the type correct.
- return [[(GPBUInt32UInt32Dictionary*)[self alloc] initWithDictionary:dictionary] autorelease];
-}
-
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems {
- return [[[self alloc] initWithCapacity:numItems] autorelease];
-}
-
-- (instancetype)init {
- return [self initWithUInt32s:NULL forKeys:NULL count:0];
-}
-
-- (instancetype)initWithUInt32s:(const uint32_t [])values
- forKeys:(const uint32_t [])keys
- count:(NSUInteger)count {
- self = [super init];
- if (self) {
- _dictionary = [[NSMutableDictionary alloc] init];
- if (count && values && keys) {
- for (NSUInteger i = 0; i < count; ++i) {
- [_dictionary setObject:@(values[i]) forKey:@(keys[i])];
- }
- }
- }
- return self;
-}
-
-- (instancetype)initWithDictionary:(GPBUInt32UInt32Dictionary *)dictionary {
- self = [self initWithUInt32s:NULL forKeys:NULL count:0];
- if (self) {
- if (dictionary) {
- [_dictionary addEntriesFromDictionary:dictionary->_dictionary];
- }
- }
- return self;
-}
-
-- (instancetype)initWithCapacity:(NSUInteger)numItems {
- #pragma unused(numItems)
- return [self initWithUInt32s:NULL forKeys:NULL count:0];
-}
-
-- (void)dealloc {
- NSAssert(!_autocreator,
- @"%@: Autocreator must be cleared before release, autocreator: %@",
- [self class], _autocreator);
- [_dictionary release];
- [super dealloc];
-}
-
-- (instancetype)copyWithZone:(NSZone *)zone {
- return [[GPBUInt32UInt32Dictionary allocWithZone:zone] initWithDictionary:self];
-}
-
-- (BOOL)isEqual:(id)other {
- if (self == other) {
- return YES;
- }
- if (![other isKindOfClass:[GPBUInt32UInt32Dictionary class]]) {
- return NO;
- }
- GPBUInt32UInt32Dictionary *otherDictionary = other;
- return [_dictionary isEqual:otherDictionary->_dictionary];
-}
-
-- (NSUInteger)hash {
- return _dictionary.count;
-}
-
-- (NSString *)description {
- return [NSString stringWithFormat:@"<%@ %p> { %@ }", [self class], self, _dictionary];
-}
-
-- (NSUInteger)count {
- return _dictionary.count;
-}
-
-- (void)enumerateKeysAndUInt32sUsingBlock:
- (void (^)(uint32_t key, uint32_t value, BOOL *stop))block {
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- block([aKey unsignedIntValue], [aValue unsignedIntValue], stop);
- }];
-}
-
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field {
- NSUInteger count = _dictionary.count;
- if (count == 0) {
- return 0;
- }
-
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- __block size_t result = 0;
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- size_t msgSize = ComputeDictUInt32FieldSize([aKey unsignedIntValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictUInt32FieldSize([aValue unsignedIntValue], kMapValueFieldNumber, valueDataType);
- result += GPBComputeRawVarint32SizeForInteger(msgSize) + msgSize;
- }];
- size_t tagSize = GPBComputeWireFormatTagSize(GPBFieldNumber(field), GPBDataTypeMessage);
- result += tagSize * count;
- return result;
-}
-
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field {
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- uint32_t tag = GPBWireFormatMakeTag(GPBFieldNumber(field), GPBWireFormatLengthDelimited);
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- // Write the tag.
- [outputStream writeInt32NoTag:tag];
- // Write the size of the message.
- size_t msgSize = ComputeDictUInt32FieldSize([aKey unsignedIntValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictUInt32FieldSize([aValue unsignedIntValue], kMapValueFieldNumber, valueDataType);
- [outputStream writeInt32NoTag:(int32_t)msgSize];
- // Write the fields.
- WriteDictUInt32Field(outputStream, [aKey unsignedIntValue], kMapKeyFieldNumber, keyDataType);
- WriteDictUInt32Field(outputStream, [aValue unsignedIntValue], kMapValueFieldNumber, valueDataType);
- }];
-}
-
-- (void)setGPBGenericValue:(GPBGenericValue *)value
- forGPBGenericValueKey:(GPBGenericValue *)key {
- [_dictionary setObject:@(value->valueUInt32) forKey:@(key->valueUInt32)];
-}
-
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block {
- [self enumerateKeysAndUInt32sUsingBlock:^(uint32_t key, uint32_t value, BOOL *stop) {
- #pragma unused(stop)
- block([NSString stringWithFormat:@"%u", key], [NSString stringWithFormat:@"%u", value]);
- }];
-}
-
-- (BOOL)getUInt32:(nullable uint32_t *)value forKey:(uint32_t)key {
- NSNumber *wrapped = [_dictionary objectForKey:@(key)];
- if (wrapped && value) {
- *value = [wrapped unsignedIntValue];
- }
- return (wrapped != NULL);
-}
-
-- (void)addEntriesFromDictionary:(GPBUInt32UInt32Dictionary *)otherDictionary {
- if (otherDictionary) {
- [_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
- }
-}
-
-- (void)setUInt32:(uint32_t)value forKey:(uint32_t)key {
- [_dictionary setObject:@(value) forKey:@(key)];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
-}
-
-- (void)removeUInt32ForKey:(uint32_t)aKey {
- [_dictionary removeObjectForKey:@(aKey)];
-}
-
-- (void)removeAll {
- [_dictionary removeAllObjects];
-}
-
-@end
-
-#pragma mark - UInt32 -> Int32
-
-@implementation GPBUInt32Int32Dictionary {
- @package
- NSMutableDictionary *_dictionary;
-}
-
-+ (instancetype)dictionary {
- return [[[self alloc] initWithInt32s:NULL forKeys:NULL count:0] autorelease];
-}
-
-+ (instancetype)dictionaryWithInt32:(int32_t)value
- forKey:(uint32_t)key {
- // Cast is needed so the compiler knows what class we are invoking initWithInt32s:forKeys:count:
- // on to get the type correct.
- return [[(GPBUInt32Int32Dictionary*)[self alloc] initWithInt32s:&value
- forKeys:&key
- count:1] autorelease];
-}
-
-+ (instancetype)dictionaryWithInt32s:(const int32_t [])values
- forKeys:(const uint32_t [])keys
- count:(NSUInteger)count {
- // Cast is needed so the compiler knows what class we are invoking initWithInt32s:forKeys:count:
- // on to get the type correct.
- return [[(GPBUInt32Int32Dictionary*)[self alloc] initWithInt32s:values
- forKeys:keys
- count:count] autorelease];
-}
-
-+ (instancetype)dictionaryWithDictionary:(GPBUInt32Int32Dictionary *)dictionary {
- // Cast is needed so the compiler knows what class we are invoking initWithDictionary:
- // on to get the type correct.
- return [[(GPBUInt32Int32Dictionary*)[self alloc] initWithDictionary:dictionary] autorelease];
-}
-
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems {
- return [[[self alloc] initWithCapacity:numItems] autorelease];
-}
-
-- (instancetype)init {
- return [self initWithInt32s:NULL forKeys:NULL count:0];
-}
-
-- (instancetype)initWithInt32s:(const int32_t [])values
- forKeys:(const uint32_t [])keys
- count:(NSUInteger)count {
- self = [super init];
- if (self) {
- _dictionary = [[NSMutableDictionary alloc] init];
- if (count && values && keys) {
- for (NSUInteger i = 0; i < count; ++i) {
- [_dictionary setObject:@(values[i]) forKey:@(keys[i])];
- }
- }
- }
- return self;
-}
-
-- (instancetype)initWithDictionary:(GPBUInt32Int32Dictionary *)dictionary {
- self = [self initWithInt32s:NULL forKeys:NULL count:0];
- if (self) {
- if (dictionary) {
- [_dictionary addEntriesFromDictionary:dictionary->_dictionary];
- }
- }
- return self;
-}
-
-- (instancetype)initWithCapacity:(NSUInteger)numItems {
- #pragma unused(numItems)
- return [self initWithInt32s:NULL forKeys:NULL count:0];
-}
-
-- (void)dealloc {
- NSAssert(!_autocreator,
- @"%@: Autocreator must be cleared before release, autocreator: %@",
- [self class], _autocreator);
- [_dictionary release];
- [super dealloc];
-}
-
-- (instancetype)copyWithZone:(NSZone *)zone {
- return [[GPBUInt32Int32Dictionary allocWithZone:zone] initWithDictionary:self];
-}
-
-- (BOOL)isEqual:(id)other {
- if (self == other) {
- return YES;
- }
- if (![other isKindOfClass:[GPBUInt32Int32Dictionary class]]) {
- return NO;
- }
- GPBUInt32Int32Dictionary *otherDictionary = other;
- return [_dictionary isEqual:otherDictionary->_dictionary];
-}
-
-- (NSUInteger)hash {
- return _dictionary.count;
-}
-
-- (NSString *)description {
- return [NSString stringWithFormat:@"<%@ %p> { %@ }", [self class], self, _dictionary];
-}
-
-- (NSUInteger)count {
- return _dictionary.count;
-}
-
-- (void)enumerateKeysAndInt32sUsingBlock:
- (void (^)(uint32_t key, int32_t value, BOOL *stop))block {
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- block([aKey unsignedIntValue], [aValue intValue], stop);
- }];
-}
-
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field {
- NSUInteger count = _dictionary.count;
- if (count == 0) {
- return 0;
- }
-
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- __block size_t result = 0;
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- size_t msgSize = ComputeDictUInt32FieldSize([aKey unsignedIntValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictInt32FieldSize([aValue intValue], kMapValueFieldNumber, valueDataType);
- result += GPBComputeRawVarint32SizeForInteger(msgSize) + msgSize;
- }];
- size_t tagSize = GPBComputeWireFormatTagSize(GPBFieldNumber(field), GPBDataTypeMessage);
- result += tagSize * count;
- return result;
-}
-
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field {
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- uint32_t tag = GPBWireFormatMakeTag(GPBFieldNumber(field), GPBWireFormatLengthDelimited);
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- // Write the tag.
- [outputStream writeInt32NoTag:tag];
- // Write the size of the message.
- size_t msgSize = ComputeDictUInt32FieldSize([aKey unsignedIntValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictInt32FieldSize([aValue intValue], kMapValueFieldNumber, valueDataType);
- [outputStream writeInt32NoTag:(int32_t)msgSize];
- // Write the fields.
- WriteDictUInt32Field(outputStream, [aKey unsignedIntValue], kMapKeyFieldNumber, keyDataType);
- WriteDictInt32Field(outputStream, [aValue intValue], kMapValueFieldNumber, valueDataType);
- }];
-}
-
-- (void)setGPBGenericValue:(GPBGenericValue *)value
- forGPBGenericValueKey:(GPBGenericValue *)key {
- [_dictionary setObject:@(value->valueInt32) forKey:@(key->valueUInt32)];
-}
-
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block {
- [self enumerateKeysAndInt32sUsingBlock:^(uint32_t key, int32_t value, BOOL *stop) {
- #pragma unused(stop)
- block([NSString stringWithFormat:@"%u", key], [NSString stringWithFormat:@"%d", value]);
- }];
-}
-
-- (BOOL)getInt32:(nullable int32_t *)value forKey:(uint32_t)key {
- NSNumber *wrapped = [_dictionary objectForKey:@(key)];
- if (wrapped && value) {
- *value = [wrapped intValue];
- }
- return (wrapped != NULL);
-}
-
-- (void)addEntriesFromDictionary:(GPBUInt32Int32Dictionary *)otherDictionary {
- if (otherDictionary) {
- [_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
- }
-}
-
-- (void)setInt32:(int32_t)value forKey:(uint32_t)key {
- [_dictionary setObject:@(value) forKey:@(key)];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
-}
-
-- (void)removeInt32ForKey:(uint32_t)aKey {
- [_dictionary removeObjectForKey:@(aKey)];
-}
-
-- (void)removeAll {
- [_dictionary removeAllObjects];
-}
-
-@end
-
-#pragma mark - UInt32 -> UInt64
-
-@implementation GPBUInt32UInt64Dictionary {
- @package
- NSMutableDictionary *_dictionary;
-}
-
-+ (instancetype)dictionary {
- return [[[self alloc] initWithUInt64s:NULL forKeys:NULL count:0] autorelease];
-}
-
-+ (instancetype)dictionaryWithUInt64:(uint64_t)value
- forKey:(uint32_t)key {
- // Cast is needed so the compiler knows what class we are invoking initWithUInt64s:forKeys:count:
- // on to get the type correct.
- return [[(GPBUInt32UInt64Dictionary*)[self alloc] initWithUInt64s:&value
- forKeys:&key
- count:1] autorelease];
-}
-
-+ (instancetype)dictionaryWithUInt64s:(const uint64_t [])values
- forKeys:(const uint32_t [])keys
- count:(NSUInteger)count {
- // Cast is needed so the compiler knows what class we are invoking initWithUInt64s:forKeys:count:
- // on to get the type correct.
- return [[(GPBUInt32UInt64Dictionary*)[self alloc] initWithUInt64s:values
- forKeys:keys
- count:count] autorelease];
-}
-
-+ (instancetype)dictionaryWithDictionary:(GPBUInt32UInt64Dictionary *)dictionary {
- // Cast is needed so the compiler knows what class we are invoking initWithDictionary:
- // on to get the type correct.
- return [[(GPBUInt32UInt64Dictionary*)[self alloc] initWithDictionary:dictionary] autorelease];
-}
-
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems {
- return [[[self alloc] initWithCapacity:numItems] autorelease];
-}
-
-- (instancetype)init {
- return [self initWithUInt64s:NULL forKeys:NULL count:0];
-}
-
-- (instancetype)initWithUInt64s:(const uint64_t [])values
- forKeys:(const uint32_t [])keys
- count:(NSUInteger)count {
- self = [super init];
- if (self) {
- _dictionary = [[NSMutableDictionary alloc] init];
- if (count && values && keys) {
- for (NSUInteger i = 0; i < count; ++i) {
- [_dictionary setObject:@(values[i]) forKey:@(keys[i])];
- }
- }
- }
- return self;
-}
-
-- (instancetype)initWithDictionary:(GPBUInt32UInt64Dictionary *)dictionary {
- self = [self initWithUInt64s:NULL forKeys:NULL count:0];
- if (self) {
- if (dictionary) {
- [_dictionary addEntriesFromDictionary:dictionary->_dictionary];
- }
- }
- return self;
-}
-
-- (instancetype)initWithCapacity:(NSUInteger)numItems {
- #pragma unused(numItems)
- return [self initWithUInt64s:NULL forKeys:NULL count:0];
-}
-
-- (void)dealloc {
- NSAssert(!_autocreator,
- @"%@: Autocreator must be cleared before release, autocreator: %@",
- [self class], _autocreator);
- [_dictionary release];
- [super dealloc];
-}
-
-- (instancetype)copyWithZone:(NSZone *)zone {
- return [[GPBUInt32UInt64Dictionary allocWithZone:zone] initWithDictionary:self];
-}
-
-- (BOOL)isEqual:(id)other {
- if (self == other) {
- return YES;
- }
- if (![other isKindOfClass:[GPBUInt32UInt64Dictionary class]]) {
- return NO;
- }
- GPBUInt32UInt64Dictionary *otherDictionary = other;
- return [_dictionary isEqual:otherDictionary->_dictionary];
-}
-
-- (NSUInteger)hash {
- return _dictionary.count;
-}
-
-- (NSString *)description {
- return [NSString stringWithFormat:@"<%@ %p> { %@ }", [self class], self, _dictionary];
-}
-
-- (NSUInteger)count {
- return _dictionary.count;
-}
-
-- (void)enumerateKeysAndUInt64sUsingBlock:
- (void (^)(uint32_t key, uint64_t value, BOOL *stop))block {
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- block([aKey unsignedIntValue], [aValue unsignedLongLongValue], stop);
- }];
-}
-
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field {
- NSUInteger count = _dictionary.count;
- if (count == 0) {
- return 0;
- }
-
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- __block size_t result = 0;
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- size_t msgSize = ComputeDictUInt32FieldSize([aKey unsignedIntValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictUInt64FieldSize([aValue unsignedLongLongValue], kMapValueFieldNumber, valueDataType);
- result += GPBComputeRawVarint32SizeForInteger(msgSize) + msgSize;
- }];
- size_t tagSize = GPBComputeWireFormatTagSize(GPBFieldNumber(field), GPBDataTypeMessage);
- result += tagSize * count;
- return result;
-}
-
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field {
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- uint32_t tag = GPBWireFormatMakeTag(GPBFieldNumber(field), GPBWireFormatLengthDelimited);
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- // Write the tag.
- [outputStream writeInt32NoTag:tag];
- // Write the size of the message.
- size_t msgSize = ComputeDictUInt32FieldSize([aKey unsignedIntValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictUInt64FieldSize([aValue unsignedLongLongValue], kMapValueFieldNumber, valueDataType);
- [outputStream writeInt32NoTag:(int32_t)msgSize];
- // Write the fields.
- WriteDictUInt32Field(outputStream, [aKey unsignedIntValue], kMapKeyFieldNumber, keyDataType);
- WriteDictUInt64Field(outputStream, [aValue unsignedLongLongValue], kMapValueFieldNumber, valueDataType);
- }];
-}
-
-- (void)setGPBGenericValue:(GPBGenericValue *)value
- forGPBGenericValueKey:(GPBGenericValue *)key {
- [_dictionary setObject:@(value->valueUInt64) forKey:@(key->valueUInt32)];
-}
-
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block {
- [self enumerateKeysAndUInt64sUsingBlock:^(uint32_t key, uint64_t value, BOOL *stop) {
- #pragma unused(stop)
- block([NSString stringWithFormat:@"%u", key], [NSString stringWithFormat:@"%llu", value]);
- }];
-}
-
-- (BOOL)getUInt64:(nullable uint64_t *)value forKey:(uint32_t)key {
- NSNumber *wrapped = [_dictionary objectForKey:@(key)];
- if (wrapped && value) {
- *value = [wrapped unsignedLongLongValue];
- }
- return (wrapped != NULL);
-}
-
-- (void)addEntriesFromDictionary:(GPBUInt32UInt64Dictionary *)otherDictionary {
- if (otherDictionary) {
- [_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
- }
-}
-
-- (void)setUInt64:(uint64_t)value forKey:(uint32_t)key {
- [_dictionary setObject:@(value) forKey:@(key)];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
-}
-
-- (void)removeUInt64ForKey:(uint32_t)aKey {
- [_dictionary removeObjectForKey:@(aKey)];
-}
-
-- (void)removeAll {
- [_dictionary removeAllObjects];
-}
-
-@end
-
-#pragma mark - UInt32 -> Int64
-
-@implementation GPBUInt32Int64Dictionary {
- @package
- NSMutableDictionary *_dictionary;
-}
-
-+ (instancetype)dictionary {
- return [[[self alloc] initWithInt64s:NULL forKeys:NULL count:0] autorelease];
-}
-
-+ (instancetype)dictionaryWithInt64:(int64_t)value
- forKey:(uint32_t)key {
- // Cast is needed so the compiler knows what class we are invoking initWithInt64s:forKeys:count:
- // on to get the type correct.
- return [[(GPBUInt32Int64Dictionary*)[self alloc] initWithInt64s:&value
- forKeys:&key
- count:1] autorelease];
-}
-
-+ (instancetype)dictionaryWithInt64s:(const int64_t [])values
- forKeys:(const uint32_t [])keys
- count:(NSUInteger)count {
- // Cast is needed so the compiler knows what class we are invoking initWithInt64s:forKeys:count:
- // on to get the type correct.
- return [[(GPBUInt32Int64Dictionary*)[self alloc] initWithInt64s:values
- forKeys:keys
- count:count] autorelease];
-}
-
-+ (instancetype)dictionaryWithDictionary:(GPBUInt32Int64Dictionary *)dictionary {
- // Cast is needed so the compiler knows what class we are invoking initWithDictionary:
- // on to get the type correct.
- return [[(GPBUInt32Int64Dictionary*)[self alloc] initWithDictionary:dictionary] autorelease];
-}
-
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems {
- return [[[self alloc] initWithCapacity:numItems] autorelease];
-}
-
-- (instancetype)init {
- return [self initWithInt64s:NULL forKeys:NULL count:0];
-}
-
-- (instancetype)initWithInt64s:(const int64_t [])values
- forKeys:(const uint32_t [])keys
- count:(NSUInteger)count {
- self = [super init];
- if (self) {
- _dictionary = [[NSMutableDictionary alloc] init];
- if (count && values && keys) {
- for (NSUInteger i = 0; i < count; ++i) {
- [_dictionary setObject:@(values[i]) forKey:@(keys[i])];
- }
- }
- }
- return self;
-}
-
-- (instancetype)initWithDictionary:(GPBUInt32Int64Dictionary *)dictionary {
- self = [self initWithInt64s:NULL forKeys:NULL count:0];
- if (self) {
- if (dictionary) {
- [_dictionary addEntriesFromDictionary:dictionary->_dictionary];
- }
- }
- return self;
-}
-
-- (instancetype)initWithCapacity:(NSUInteger)numItems {
- #pragma unused(numItems)
- return [self initWithInt64s:NULL forKeys:NULL count:0];
-}
-
-- (void)dealloc {
- NSAssert(!_autocreator,
- @"%@: Autocreator must be cleared before release, autocreator: %@",
- [self class], _autocreator);
- [_dictionary release];
- [super dealloc];
-}
-
-- (instancetype)copyWithZone:(NSZone *)zone {
- return [[GPBUInt32Int64Dictionary allocWithZone:zone] initWithDictionary:self];
-}
-
-- (BOOL)isEqual:(id)other {
- if (self == other) {
- return YES;
- }
- if (![other isKindOfClass:[GPBUInt32Int64Dictionary class]]) {
- return NO;
- }
- GPBUInt32Int64Dictionary *otherDictionary = other;
- return [_dictionary isEqual:otherDictionary->_dictionary];
-}
-
-- (NSUInteger)hash {
- return _dictionary.count;
-}
-
-- (NSString *)description {
- return [NSString stringWithFormat:@"<%@ %p> { %@ }", [self class], self, _dictionary];
-}
-
-- (NSUInteger)count {
- return _dictionary.count;
-}
-
-- (void)enumerateKeysAndInt64sUsingBlock:
- (void (^)(uint32_t key, int64_t value, BOOL *stop))block {
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- block([aKey unsignedIntValue], [aValue longLongValue], stop);
- }];
-}
-
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field {
- NSUInteger count = _dictionary.count;
- if (count == 0) {
- return 0;
- }
-
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- __block size_t result = 0;
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- size_t msgSize = ComputeDictUInt32FieldSize([aKey unsignedIntValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictInt64FieldSize([aValue longLongValue], kMapValueFieldNumber, valueDataType);
- result += GPBComputeRawVarint32SizeForInteger(msgSize) + msgSize;
- }];
- size_t tagSize = GPBComputeWireFormatTagSize(GPBFieldNumber(field), GPBDataTypeMessage);
- result += tagSize * count;
- return result;
-}
-
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field {
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- uint32_t tag = GPBWireFormatMakeTag(GPBFieldNumber(field), GPBWireFormatLengthDelimited);
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- // Write the tag.
- [outputStream writeInt32NoTag:tag];
- // Write the size of the message.
- size_t msgSize = ComputeDictUInt32FieldSize([aKey unsignedIntValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictInt64FieldSize([aValue longLongValue], kMapValueFieldNumber, valueDataType);
- [outputStream writeInt32NoTag:(int32_t)msgSize];
- // Write the fields.
- WriteDictUInt32Field(outputStream, [aKey unsignedIntValue], kMapKeyFieldNumber, keyDataType);
- WriteDictInt64Field(outputStream, [aValue longLongValue], kMapValueFieldNumber, valueDataType);
- }];
-}
-
-- (void)setGPBGenericValue:(GPBGenericValue *)value
- forGPBGenericValueKey:(GPBGenericValue *)key {
- [_dictionary setObject:@(value->valueInt64) forKey:@(key->valueUInt32)];
-}
-
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block {
- [self enumerateKeysAndInt64sUsingBlock:^(uint32_t key, int64_t value, BOOL *stop) {
- #pragma unused(stop)
- block([NSString stringWithFormat:@"%u", key], [NSString stringWithFormat:@"%lld", value]);
- }];
-}
-
-- (BOOL)getInt64:(nullable int64_t *)value forKey:(uint32_t)key {
- NSNumber *wrapped = [_dictionary objectForKey:@(key)];
- if (wrapped && value) {
- *value = [wrapped longLongValue];
- }
- return (wrapped != NULL);
-}
-
-- (void)addEntriesFromDictionary:(GPBUInt32Int64Dictionary *)otherDictionary {
- if (otherDictionary) {
- [_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
- }
-}
-
-- (void)setInt64:(int64_t)value forKey:(uint32_t)key {
- [_dictionary setObject:@(value) forKey:@(key)];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
-}
-
-- (void)removeInt64ForKey:(uint32_t)aKey {
- [_dictionary removeObjectForKey:@(aKey)];
-}
-
-- (void)removeAll {
- [_dictionary removeAllObjects];
-}
-
-@end
-
-#pragma mark - UInt32 -> Bool
-
-@implementation GPBUInt32BoolDictionary {
- @package
- NSMutableDictionary *_dictionary;
-}
-
-+ (instancetype)dictionary {
- return [[[self alloc] initWithBools:NULL forKeys:NULL count:0] autorelease];
-}
-
-+ (instancetype)dictionaryWithBool:(BOOL)value
- forKey:(uint32_t)key {
- // Cast is needed so the compiler knows what class we are invoking initWithBools:forKeys:count:
- // on to get the type correct.
- return [[(GPBUInt32BoolDictionary*)[self alloc] initWithBools:&value
- forKeys:&key
- count:1] autorelease];
-}
-
-+ (instancetype)dictionaryWithBools:(const BOOL [])values
- forKeys:(const uint32_t [])keys
- count:(NSUInteger)count {
- // Cast is needed so the compiler knows what class we are invoking initWithBools:forKeys:count:
- // on to get the type correct.
- return [[(GPBUInt32BoolDictionary*)[self alloc] initWithBools:values
- forKeys:keys
- count:count] autorelease];
-}
-
-+ (instancetype)dictionaryWithDictionary:(GPBUInt32BoolDictionary *)dictionary {
- // Cast is needed so the compiler knows what class we are invoking initWithDictionary:
- // on to get the type correct.
- return [[(GPBUInt32BoolDictionary*)[self alloc] initWithDictionary:dictionary] autorelease];
-}
-
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems {
- return [[[self alloc] initWithCapacity:numItems] autorelease];
-}
-
-- (instancetype)init {
- return [self initWithBools:NULL forKeys:NULL count:0];
-}
-
-- (instancetype)initWithBools:(const BOOL [])values
- forKeys:(const uint32_t [])keys
- count:(NSUInteger)count {
- self = [super init];
- if (self) {
- _dictionary = [[NSMutableDictionary alloc] init];
- if (count && values && keys) {
- for (NSUInteger i = 0; i < count; ++i) {
- [_dictionary setObject:@(values[i]) forKey:@(keys[i])];
- }
- }
- }
- return self;
-}
-
-- (instancetype)initWithDictionary:(GPBUInt32BoolDictionary *)dictionary {
- self = [self initWithBools:NULL forKeys:NULL count:0];
- if (self) {
- if (dictionary) {
- [_dictionary addEntriesFromDictionary:dictionary->_dictionary];
- }
- }
- return self;
-}
-
-- (instancetype)initWithCapacity:(NSUInteger)numItems {
- #pragma unused(numItems)
- return [self initWithBools:NULL forKeys:NULL count:0];
-}
-
-- (void)dealloc {
- NSAssert(!_autocreator,
- @"%@: Autocreator must be cleared before release, autocreator: %@",
- [self class], _autocreator);
- [_dictionary release];
- [super dealloc];
-}
-
-- (instancetype)copyWithZone:(NSZone *)zone {
- return [[GPBUInt32BoolDictionary allocWithZone:zone] initWithDictionary:self];
-}
-
-- (BOOL)isEqual:(id)other {
- if (self == other) {
- return YES;
- }
- if (![other isKindOfClass:[GPBUInt32BoolDictionary class]]) {
- return NO;
- }
- GPBUInt32BoolDictionary *otherDictionary = other;
- return [_dictionary isEqual:otherDictionary->_dictionary];
-}
-
-- (NSUInteger)hash {
- return _dictionary.count;
-}
-
-- (NSString *)description {
- return [NSString stringWithFormat:@"<%@ %p> { %@ }", [self class], self, _dictionary];
-}
-
-- (NSUInteger)count {
- return _dictionary.count;
-}
-
-- (void)enumerateKeysAndBoolsUsingBlock:
- (void (^)(uint32_t key, BOOL value, BOOL *stop))block {
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- block([aKey unsignedIntValue], [aValue boolValue], stop);
- }];
-}
-
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field {
- NSUInteger count = _dictionary.count;
- if (count == 0) {
- return 0;
- }
-
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- __block size_t result = 0;
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- size_t msgSize = ComputeDictUInt32FieldSize([aKey unsignedIntValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictBoolFieldSize([aValue boolValue], kMapValueFieldNumber, valueDataType);
- result += GPBComputeRawVarint32SizeForInteger(msgSize) + msgSize;
- }];
- size_t tagSize = GPBComputeWireFormatTagSize(GPBFieldNumber(field), GPBDataTypeMessage);
- result += tagSize * count;
- return result;
-}
-
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field {
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- uint32_t tag = GPBWireFormatMakeTag(GPBFieldNumber(field), GPBWireFormatLengthDelimited);
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- // Write the tag.
- [outputStream writeInt32NoTag:tag];
- // Write the size of the message.
- size_t msgSize = ComputeDictUInt32FieldSize([aKey unsignedIntValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictBoolFieldSize([aValue boolValue], kMapValueFieldNumber, valueDataType);
- [outputStream writeInt32NoTag:(int32_t)msgSize];
- // Write the fields.
- WriteDictUInt32Field(outputStream, [aKey unsignedIntValue], kMapKeyFieldNumber, keyDataType);
- WriteDictBoolField(outputStream, [aValue boolValue], kMapValueFieldNumber, valueDataType);
- }];
-}
-
-- (void)setGPBGenericValue:(GPBGenericValue *)value
- forGPBGenericValueKey:(GPBGenericValue *)key {
- [_dictionary setObject:@(value->valueBool) forKey:@(key->valueUInt32)];
-}
-
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block {
- [self enumerateKeysAndBoolsUsingBlock:^(uint32_t key, BOOL value, BOOL *stop) {
- #pragma unused(stop)
- block([NSString stringWithFormat:@"%u", key], (value ? @"true" : @"false"));
- }];
-}
-
-- (BOOL)getBool:(nullable BOOL *)value forKey:(uint32_t)key {
- NSNumber *wrapped = [_dictionary objectForKey:@(key)];
- if (wrapped && value) {
- *value = [wrapped boolValue];
- }
- return (wrapped != NULL);
-}
-
-- (void)addEntriesFromDictionary:(GPBUInt32BoolDictionary *)otherDictionary {
- if (otherDictionary) {
- [_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
- }
-}
-
-- (void)setBool:(BOOL)value forKey:(uint32_t)key {
- [_dictionary setObject:@(value) forKey:@(key)];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
-}
-
-- (void)removeBoolForKey:(uint32_t)aKey {
- [_dictionary removeObjectForKey:@(aKey)];
-}
-
-- (void)removeAll {
- [_dictionary removeAllObjects];
-}
-
-@end
-
-#pragma mark - UInt32 -> Float
-
-@implementation GPBUInt32FloatDictionary {
- @package
- NSMutableDictionary *_dictionary;
-}
-
-+ (instancetype)dictionary {
- return [[[self alloc] initWithFloats:NULL forKeys:NULL count:0] autorelease];
-}
-
-+ (instancetype)dictionaryWithFloat:(float)value
- forKey:(uint32_t)key {
- // Cast is needed so the compiler knows what class we are invoking initWithFloats:forKeys:count:
- // on to get the type correct.
- return [[(GPBUInt32FloatDictionary*)[self alloc] initWithFloats:&value
- forKeys:&key
- count:1] autorelease];
-}
-
-+ (instancetype)dictionaryWithFloats:(const float [])values
- forKeys:(const uint32_t [])keys
- count:(NSUInteger)count {
- // Cast is needed so the compiler knows what class we are invoking initWithFloats:forKeys:count:
- // on to get the type correct.
- return [[(GPBUInt32FloatDictionary*)[self alloc] initWithFloats:values
- forKeys:keys
- count:count] autorelease];
-}
-
-+ (instancetype)dictionaryWithDictionary:(GPBUInt32FloatDictionary *)dictionary {
- // Cast is needed so the compiler knows what class we are invoking initWithDictionary:
- // on to get the type correct.
- return [[(GPBUInt32FloatDictionary*)[self alloc] initWithDictionary:dictionary] autorelease];
-}
-
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems {
- return [[[self alloc] initWithCapacity:numItems] autorelease];
-}
-
-- (instancetype)init {
- return [self initWithFloats:NULL forKeys:NULL count:0];
-}
-
-- (instancetype)initWithFloats:(const float [])values
- forKeys:(const uint32_t [])keys
- count:(NSUInteger)count {
- self = [super init];
- if (self) {
- _dictionary = [[NSMutableDictionary alloc] init];
- if (count && values && keys) {
- for (NSUInteger i = 0; i < count; ++i) {
- [_dictionary setObject:@(values[i]) forKey:@(keys[i])];
- }
- }
- }
- return self;
-}
-
-- (instancetype)initWithDictionary:(GPBUInt32FloatDictionary *)dictionary {
- self = [self initWithFloats:NULL forKeys:NULL count:0];
- if (self) {
- if (dictionary) {
- [_dictionary addEntriesFromDictionary:dictionary->_dictionary];
- }
- }
- return self;
-}
-
-- (instancetype)initWithCapacity:(NSUInteger)numItems {
- #pragma unused(numItems)
- return [self initWithFloats:NULL forKeys:NULL count:0];
-}
-
-- (void)dealloc {
- NSAssert(!_autocreator,
- @"%@: Autocreator must be cleared before release, autocreator: %@",
- [self class], _autocreator);
- [_dictionary release];
- [super dealloc];
-}
-
-- (instancetype)copyWithZone:(NSZone *)zone {
- return [[GPBUInt32FloatDictionary allocWithZone:zone] initWithDictionary:self];
-}
-
-- (BOOL)isEqual:(id)other {
- if (self == other) {
- return YES;
- }
- if (![other isKindOfClass:[GPBUInt32FloatDictionary class]]) {
- return NO;
- }
- GPBUInt32FloatDictionary *otherDictionary = other;
- return [_dictionary isEqual:otherDictionary->_dictionary];
-}
-
-- (NSUInteger)hash {
- return _dictionary.count;
-}
-
-- (NSString *)description {
- return [NSString stringWithFormat:@"<%@ %p> { %@ }", [self class], self, _dictionary];
-}
-
-- (NSUInteger)count {
- return _dictionary.count;
-}
-
-- (void)enumerateKeysAndFloatsUsingBlock:
- (void (^)(uint32_t key, float value, BOOL *stop))block {
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- block([aKey unsignedIntValue], [aValue floatValue], stop);
- }];
-}
-
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field {
- NSUInteger count = _dictionary.count;
- if (count == 0) {
- return 0;
- }
-
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- __block size_t result = 0;
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- size_t msgSize = ComputeDictUInt32FieldSize([aKey unsignedIntValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictFloatFieldSize([aValue floatValue], kMapValueFieldNumber, valueDataType);
- result += GPBComputeRawVarint32SizeForInteger(msgSize) + msgSize;
- }];
- size_t tagSize = GPBComputeWireFormatTagSize(GPBFieldNumber(field), GPBDataTypeMessage);
- result += tagSize * count;
- return result;
-}
-
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field {
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- uint32_t tag = GPBWireFormatMakeTag(GPBFieldNumber(field), GPBWireFormatLengthDelimited);
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- // Write the tag.
- [outputStream writeInt32NoTag:tag];
- // Write the size of the message.
- size_t msgSize = ComputeDictUInt32FieldSize([aKey unsignedIntValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictFloatFieldSize([aValue floatValue], kMapValueFieldNumber, valueDataType);
- [outputStream writeInt32NoTag:(int32_t)msgSize];
- // Write the fields.
- WriteDictUInt32Field(outputStream, [aKey unsignedIntValue], kMapKeyFieldNumber, keyDataType);
- WriteDictFloatField(outputStream, [aValue floatValue], kMapValueFieldNumber, valueDataType);
- }];
-}
-
-- (void)setGPBGenericValue:(GPBGenericValue *)value
- forGPBGenericValueKey:(GPBGenericValue *)key {
- [_dictionary setObject:@(value->valueFloat) forKey:@(key->valueUInt32)];
-}
-
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block {
- [self enumerateKeysAndFloatsUsingBlock:^(uint32_t key, float value, BOOL *stop) {
- #pragma unused(stop)
- block([NSString stringWithFormat:@"%u", key], [NSString stringWithFormat:@"%.*g", FLT_DIG, value]);
- }];
-}
-
-- (BOOL)getFloat:(nullable float *)value forKey:(uint32_t)key {
- NSNumber *wrapped = [_dictionary objectForKey:@(key)];
- if (wrapped && value) {
- *value = [wrapped floatValue];
- }
- return (wrapped != NULL);
-}
-
-- (void)addEntriesFromDictionary:(GPBUInt32FloatDictionary *)otherDictionary {
- if (otherDictionary) {
- [_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
- }
-}
-
-- (void)setFloat:(float)value forKey:(uint32_t)key {
- [_dictionary setObject:@(value) forKey:@(key)];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
-}
-
-- (void)removeFloatForKey:(uint32_t)aKey {
- [_dictionary removeObjectForKey:@(aKey)];
-}
-
-- (void)removeAll {
- [_dictionary removeAllObjects];
-}
-
-@end
-
-#pragma mark - UInt32 -> Double
-
-@implementation GPBUInt32DoubleDictionary {
- @package
- NSMutableDictionary *_dictionary;
-}
-
-+ (instancetype)dictionary {
- return [[[self alloc] initWithDoubles:NULL forKeys:NULL count:0] autorelease];
-}
-
-+ (instancetype)dictionaryWithDouble:(double)value
- forKey:(uint32_t)key {
- // Cast is needed so the compiler knows what class we are invoking initWithDoubles:forKeys:count:
- // on to get the type correct.
- return [[(GPBUInt32DoubleDictionary*)[self alloc] initWithDoubles:&value
- forKeys:&key
- count:1] autorelease];
-}
-
-+ (instancetype)dictionaryWithDoubles:(const double [])values
- forKeys:(const uint32_t [])keys
- count:(NSUInteger)count {
- // Cast is needed so the compiler knows what class we are invoking initWithDoubles:forKeys:count:
- // on to get the type correct.
- return [[(GPBUInt32DoubleDictionary*)[self alloc] initWithDoubles:values
- forKeys:keys
- count:count] autorelease];
-}
-
-+ (instancetype)dictionaryWithDictionary:(GPBUInt32DoubleDictionary *)dictionary {
- // Cast is needed so the compiler knows what class we are invoking initWithDictionary:
- // on to get the type correct.
- return [[(GPBUInt32DoubleDictionary*)[self alloc] initWithDictionary:dictionary] autorelease];
-}
-
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems {
- return [[[self alloc] initWithCapacity:numItems] autorelease];
-}
-
-- (instancetype)init {
- return [self initWithDoubles:NULL forKeys:NULL count:0];
-}
-
-- (instancetype)initWithDoubles:(const double [])values
- forKeys:(const uint32_t [])keys
- count:(NSUInteger)count {
- self = [super init];
- if (self) {
- _dictionary = [[NSMutableDictionary alloc] init];
- if (count && values && keys) {
- for (NSUInteger i = 0; i < count; ++i) {
- [_dictionary setObject:@(values[i]) forKey:@(keys[i])];
- }
- }
- }
- return self;
-}
-
-- (instancetype)initWithDictionary:(GPBUInt32DoubleDictionary *)dictionary {
- self = [self initWithDoubles:NULL forKeys:NULL count:0];
- if (self) {
- if (dictionary) {
- [_dictionary addEntriesFromDictionary:dictionary->_dictionary];
- }
- }
- return self;
-}
-
-- (instancetype)initWithCapacity:(NSUInteger)numItems {
- #pragma unused(numItems)
- return [self initWithDoubles:NULL forKeys:NULL count:0];
-}
-
-- (void)dealloc {
- NSAssert(!_autocreator,
- @"%@: Autocreator must be cleared before release, autocreator: %@",
- [self class], _autocreator);
- [_dictionary release];
- [super dealloc];
-}
-
-- (instancetype)copyWithZone:(NSZone *)zone {
- return [[GPBUInt32DoubleDictionary allocWithZone:zone] initWithDictionary:self];
-}
-
-- (BOOL)isEqual:(id)other {
- if (self == other) {
- return YES;
- }
- if (![other isKindOfClass:[GPBUInt32DoubleDictionary class]]) {
- return NO;
- }
- GPBUInt32DoubleDictionary *otherDictionary = other;
- return [_dictionary isEqual:otherDictionary->_dictionary];
-}
-
-- (NSUInteger)hash {
- return _dictionary.count;
-}
-
-- (NSString *)description {
- return [NSString stringWithFormat:@"<%@ %p> { %@ }", [self class], self, _dictionary];
-}
-
-- (NSUInteger)count {
- return _dictionary.count;
-}
-
-- (void)enumerateKeysAndDoublesUsingBlock:
- (void (^)(uint32_t key, double value, BOOL *stop))block {
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- block([aKey unsignedIntValue], [aValue doubleValue], stop);
- }];
-}
-
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field {
- NSUInteger count = _dictionary.count;
- if (count == 0) {
- return 0;
- }
-
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- __block size_t result = 0;
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- size_t msgSize = ComputeDictUInt32FieldSize([aKey unsignedIntValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictDoubleFieldSize([aValue doubleValue], kMapValueFieldNumber, valueDataType);
- result += GPBComputeRawVarint32SizeForInteger(msgSize) + msgSize;
- }];
- size_t tagSize = GPBComputeWireFormatTagSize(GPBFieldNumber(field), GPBDataTypeMessage);
- result += tagSize * count;
- return result;
-}
-
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field {
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- uint32_t tag = GPBWireFormatMakeTag(GPBFieldNumber(field), GPBWireFormatLengthDelimited);
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- // Write the tag.
- [outputStream writeInt32NoTag:tag];
- // Write the size of the message.
- size_t msgSize = ComputeDictUInt32FieldSize([aKey unsignedIntValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictDoubleFieldSize([aValue doubleValue], kMapValueFieldNumber, valueDataType);
- [outputStream writeInt32NoTag:(int32_t)msgSize];
- // Write the fields.
- WriteDictUInt32Field(outputStream, [aKey unsignedIntValue], kMapKeyFieldNumber, keyDataType);
- WriteDictDoubleField(outputStream, [aValue doubleValue], kMapValueFieldNumber, valueDataType);
- }];
-}
-
-- (void)setGPBGenericValue:(GPBGenericValue *)value
- forGPBGenericValueKey:(GPBGenericValue *)key {
- [_dictionary setObject:@(value->valueDouble) forKey:@(key->valueUInt32)];
-}
-
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block {
- [self enumerateKeysAndDoublesUsingBlock:^(uint32_t key, double value, BOOL *stop) {
- #pragma unused(stop)
- block([NSString stringWithFormat:@"%u", key], [NSString stringWithFormat:@"%.*lg", DBL_DIG, value]);
- }];
-}
-
-- (BOOL)getDouble:(nullable double *)value forKey:(uint32_t)key {
- NSNumber *wrapped = [_dictionary objectForKey:@(key)];
- if (wrapped && value) {
- *value = [wrapped doubleValue];
- }
- return (wrapped != NULL);
-}
-
-- (void)addEntriesFromDictionary:(GPBUInt32DoubleDictionary *)otherDictionary {
- if (otherDictionary) {
- [_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
- }
-}
-
-- (void)setDouble:(double)value forKey:(uint32_t)key {
- [_dictionary setObject:@(value) forKey:@(key)];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
-}
-
-- (void)removeDoubleForKey:(uint32_t)aKey {
- [_dictionary removeObjectForKey:@(aKey)];
-}
-
-- (void)removeAll {
- [_dictionary removeAllObjects];
-}
-
-@end
-
-#pragma mark - UInt32 -> Enum
-
-@implementation GPBUInt32EnumDictionary {
- @package
- NSMutableDictionary *_dictionary;
- GPBEnumValidationFunc _validationFunc;
-}
-
-@synthesize validationFunc = _validationFunc;
-
-+ (instancetype)dictionary {
- return [[[self alloc] initWithValidationFunction:NULL
- rawValues:NULL
- forKeys:NULL
- count:0] autorelease];
-}
-
-+ (instancetype)dictionaryWithValidationFunction:(GPBEnumValidationFunc)func {
- return [[[self alloc] initWithValidationFunction:func
- rawValues:NULL
- forKeys:NULL
- count:0] autorelease];
-}
-
-+ (instancetype)dictionaryWithValidationFunction:(GPBEnumValidationFunc)func
- rawValue:(int32_t)rawValue
- forKey:(uint32_t)key {
- // Cast is needed so the compiler knows what class we are invoking initWithValues:forKeys:count:
- // on to get the type correct.
- return [[(GPBUInt32EnumDictionary*)[self alloc] initWithValidationFunction:func
- rawValues:&rawValue
- forKeys:&key
- count:1] autorelease];
-}
-
-+ (instancetype)dictionaryWithValidationFunction:(GPBEnumValidationFunc)func
- rawValues:(const int32_t [])rawValues
- forKeys:(const uint32_t [])keys
- count:(NSUInteger)count {
- // Cast is needed so the compiler knows what class we are invoking initWithValues:forKeys:count:
- // on to get the type correct.
- return [[(GPBUInt32EnumDictionary*)[self alloc] initWithValidationFunction:func
- rawValues:rawValues
- forKeys:keys
- count:count] autorelease];
-}
-
-+ (instancetype)dictionaryWithDictionary:(GPBUInt32EnumDictionary *)dictionary {
- // Cast is needed so the compiler knows what class we are invoking initWithValues:forKeys:count:
- // on to get the type correct.
- return [[(GPBUInt32EnumDictionary*)[self alloc] initWithDictionary:dictionary] autorelease];
-}
-
-+ (instancetype)dictionaryWithValidationFunction:(GPBEnumValidationFunc)func
- capacity:(NSUInteger)numItems {
- return [[[self alloc] initWithValidationFunction:func capacity:numItems] autorelease];
-}
-
-- (instancetype)init {
- return [self initWithValidationFunction:NULL rawValues:NULL forKeys:NULL count:0];
-}
-
-- (instancetype)initWithValidationFunction:(GPBEnumValidationFunc)func {
- return [self initWithValidationFunction:func rawValues:NULL forKeys:NULL count:0];
-}
-
-- (instancetype)initWithValidationFunction:(GPBEnumValidationFunc)func
- rawValues:(const int32_t [])rawValues
- forKeys:(const uint32_t [])keys
- count:(NSUInteger)count {
- self = [super init];
- if (self) {
- _dictionary = [[NSMutableDictionary alloc] init];
- _validationFunc = (func != NULL ? func : DictDefault_IsValidValue);
- if (count && rawValues && keys) {
- for (NSUInteger i = 0; i < count; ++i) {
- [_dictionary setObject:@(rawValues[i]) forKey:@(keys[i])];
- }
- }
- }
- return self;
-}
-
-- (instancetype)initWithDictionary:(GPBUInt32EnumDictionary *)dictionary {
- self = [self initWithValidationFunction:dictionary.validationFunc
- rawValues:NULL
- forKeys:NULL
- count:0];
- if (self) {
- if (dictionary) {
- [_dictionary addEntriesFromDictionary:dictionary->_dictionary];
- }
- }
- return self;
-}
-
-- (instancetype)initWithValidationFunction:(GPBEnumValidationFunc)func
- capacity:(NSUInteger)numItems {
- #pragma unused(numItems)
- return [self initWithValidationFunction:func rawValues:NULL forKeys:NULL count:0];
-}
-
-- (void)dealloc {
- NSAssert(!_autocreator,
- @"%@: Autocreator must be cleared before release, autocreator: %@",
- [self class], _autocreator);
- [_dictionary release];
- [super dealloc];
-}
-
-- (instancetype)copyWithZone:(NSZone *)zone {
- return [[GPBUInt32EnumDictionary allocWithZone:zone] initWithDictionary:self];
-}
-
-- (BOOL)isEqual:(id)other {
- if (self == other) {
- return YES;
- }
- if (![other isKindOfClass:[GPBUInt32EnumDictionary class]]) {
- return NO;
- }
- GPBUInt32EnumDictionary *otherDictionary = other;
- return [_dictionary isEqual:otherDictionary->_dictionary];
-}
-
-- (NSUInteger)hash {
- return _dictionary.count;
-}
-
-- (NSString *)description {
- return [NSString stringWithFormat:@"<%@ %p> { %@ }", [self class], self, _dictionary];
-}
-
-- (NSUInteger)count {
- return _dictionary.count;
-}
-
-- (void)enumerateKeysAndRawValuesUsingBlock:
- (void (^)(uint32_t key, int32_t value, BOOL *stop))block {
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- block([aKey unsignedIntValue], [aValue intValue], stop);
- }];
-}
-
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field {
- NSUInteger count = _dictionary.count;
- if (count == 0) {
- return 0;
- }
-
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- __block size_t result = 0;
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- size_t msgSize = ComputeDictUInt32FieldSize([aKey unsignedIntValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictEnumFieldSize([aValue intValue], kMapValueFieldNumber, valueDataType);
- result += GPBComputeRawVarint32SizeForInteger(msgSize) + msgSize;
- }];
- size_t tagSize = GPBComputeWireFormatTagSize(GPBFieldNumber(field), GPBDataTypeMessage);
- result += tagSize * count;
- return result;
-}
-
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field {
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- uint32_t tag = GPBWireFormatMakeTag(GPBFieldNumber(field), GPBWireFormatLengthDelimited);
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- // Write the tag.
- [outputStream writeInt32NoTag:tag];
- // Write the size of the message.
- size_t msgSize = ComputeDictUInt32FieldSize([aKey unsignedIntValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictEnumFieldSize([aValue intValue], kMapValueFieldNumber, valueDataType);
- [outputStream writeInt32NoTag:(int32_t)msgSize];
- // Write the fields.
- WriteDictUInt32Field(outputStream, [aKey unsignedIntValue], kMapKeyFieldNumber, keyDataType);
- WriteDictEnumField(outputStream, [aValue intValue], kMapValueFieldNumber, valueDataType);
- }];
-}
-
-- (NSData *)serializedDataForUnknownValue:(int32_t)value
- forKey:(GPBGenericValue *)key
- keyDataType:(GPBDataType)keyDataType {
- size_t msgSize = ComputeDictUInt32FieldSize(key->valueUInt32, kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictEnumFieldSize(value, kMapValueFieldNumber, GPBDataTypeEnum);
- NSMutableData *data = [NSMutableData dataWithLength:msgSize];
- GPBCodedOutputStream *outputStream = [[GPBCodedOutputStream alloc] initWithData:data];
- WriteDictUInt32Field(outputStream, key->valueUInt32, kMapKeyFieldNumber, keyDataType);
- WriteDictEnumField(outputStream, value, kMapValueFieldNumber, GPBDataTypeEnum);
- [outputStream release];
- return data;
-}
-- (void)setGPBGenericValue:(GPBGenericValue *)value
- forGPBGenericValueKey:(GPBGenericValue *)key {
- [_dictionary setObject:@(value->valueEnum) forKey:@(key->valueUInt32)];
-}
-
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block {
- [self enumerateKeysAndRawValuesUsingBlock:^(uint32_t key, int32_t value, BOOL *stop) {
- #pragma unused(stop)
- block([NSString stringWithFormat:@"%u", key], @(value));
- }];
-}
-
-- (BOOL)getEnum:(int32_t *)value forKey:(uint32_t)key {
- NSNumber *wrapped = [_dictionary objectForKey:@(key)];
- if (wrapped && value) {
- int32_t result = [wrapped intValue];
- if (!_validationFunc(result)) {
- result = kGPBUnrecognizedEnumeratorValue;
- }
- *value = result;
- }
- return (wrapped != NULL);
-}
-
-- (BOOL)getRawValue:(int32_t *)rawValue forKey:(uint32_t)key {
- NSNumber *wrapped = [_dictionary objectForKey:@(key)];
- if (wrapped && rawValue) {
- *rawValue = [wrapped intValue];
- }
- return (wrapped != NULL);
-}
-
-- (void)enumerateKeysAndEnumsUsingBlock:
- (void (^)(uint32_t key, int32_t value, BOOL *stop))block {
- GPBEnumValidationFunc func = _validationFunc;
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- int32_t unwrapped = [aValue intValue];
- if (!func(unwrapped)) {
- unwrapped = kGPBUnrecognizedEnumeratorValue;
- }
- block([aKey unsignedIntValue], unwrapped, stop);
- }];
-}
-
-- (void)addRawEntriesFromDictionary:(GPBUInt32EnumDictionary *)otherDictionary {
- if (otherDictionary) {
- [_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
- }
-}
-
-- (void)setRawValue:(int32_t)value forKey:(uint32_t)key {
- [_dictionary setObject:@(value) forKey:@(key)];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
-}
-
-- (void)removeEnumForKey:(uint32_t)aKey {
- [_dictionary removeObjectForKey:@(aKey)];
-}
-
-- (void)removeAll {
- [_dictionary removeAllObjects];
-}
-
-- (void)setEnum:(int32_t)value forKey:(uint32_t)key {
- if (!_validationFunc(value)) {
- [NSException raise:NSInvalidArgumentException
- format:@"GPBUInt32EnumDictionary: Attempt to set an unknown enum value (%d)",
- value];
- }
-
- [_dictionary setObject:@(value) forKey:@(key)];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
-}
-
-@end
-
-#pragma mark - UInt32 -> Object
-
-@implementation GPBUInt32ObjectDictionary {
- @package
- NSMutableDictionary *_dictionary;
-}
-
-+ (instancetype)dictionary {
- return [[[self alloc] initWithObjects:NULL forKeys:NULL count:0] autorelease];
-}
-
-+ (instancetype)dictionaryWithObject:(id)object
- forKey:(uint32_t)key {
- // Cast is needed so the compiler knows what class we are invoking initWithObjects:forKeys:count:
- // on to get the type correct.
- return [[(GPBUInt32ObjectDictionary*)[self alloc] initWithObjects:&object
- forKeys:&key
- count:1] autorelease];
-}
-
-+ (instancetype)dictionaryWithObjects:(const id [])objects
- forKeys:(const uint32_t [])keys
- count:(NSUInteger)count {
- // Cast is needed so the compiler knows what class we are invoking initWithObjects:forKeys:count:
- // on to get the type correct.
- return [[(GPBUInt32ObjectDictionary*)[self alloc] initWithObjects:objects
- forKeys:keys
- count:count] autorelease];
-}
-
-+ (instancetype)dictionaryWithDictionary:(GPBUInt32ObjectDictionary *)dictionary {
- // Cast is needed so the compiler knows what class we are invoking initWithDictionary:
- // on to get the type correct.
- return [[(GPBUInt32ObjectDictionary*)[self alloc] initWithDictionary:dictionary] autorelease];
-}
-
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems {
- return [[[self alloc] initWithCapacity:numItems] autorelease];
-}
-
-- (instancetype)init {
- return [self initWithObjects:NULL forKeys:NULL count:0];
-}
-
-- (instancetype)initWithObjects:(const id [])objects
- forKeys:(const uint32_t [])keys
- count:(NSUInteger)count {
- self = [super init];
- if (self) {
- _dictionary = [[NSMutableDictionary alloc] init];
- if (count && objects && keys) {
- for (NSUInteger i = 0; i < count; ++i) {
- if (!objects[i]) {
- [NSException raise:NSInvalidArgumentException
- format:@"Attempting to add nil object to a Dictionary"];
- }
- [_dictionary setObject:objects[i] forKey:@(keys[i])];
- }
- }
- }
- return self;
-}
-
-- (instancetype)initWithDictionary:(GPBUInt32ObjectDictionary *)dictionary {
- self = [self initWithObjects:NULL forKeys:NULL count:0];
- if (self) {
- if (dictionary) {
- [_dictionary addEntriesFromDictionary:dictionary->_dictionary];
- }
- }
- return self;
-}
-
-- (instancetype)initWithCapacity:(NSUInteger)numItems {
- #pragma unused(numItems)
- return [self initWithObjects:NULL forKeys:NULL count:0];
-}
-
-- (void)dealloc {
- NSAssert(!_autocreator,
- @"%@: Autocreator must be cleared before release, autocreator: %@",
- [self class], _autocreator);
- [_dictionary release];
- [super dealloc];
-}
-
-- (instancetype)copyWithZone:(NSZone *)zone {
- return [[GPBUInt32ObjectDictionary allocWithZone:zone] initWithDictionary:self];
-}
-
-- (BOOL)isEqual:(id)other {
- if (self == other) {
- return YES;
- }
- if (![other isKindOfClass:[GPBUInt32ObjectDictionary class]]) {
- return NO;
- }
- GPBUInt32ObjectDictionary *otherDictionary = other;
- return [_dictionary isEqual:otherDictionary->_dictionary];
-}
-
-- (NSUInteger)hash {
- return _dictionary.count;
-}
-
-- (NSString *)description {
- return [NSString stringWithFormat:@"<%@ %p> { %@ }", [self class], self, _dictionary];
-}
-
-- (NSUInteger)count {
- return _dictionary.count;
-}
-
-- (void)enumerateKeysAndObjectsUsingBlock:
- (void (^)(uint32_t key, id object, BOOL *stop))block {
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- id aObject,
- BOOL *stop) {
- block([aKey unsignedIntValue], aObject, stop);
- }];
-}
-
-- (BOOL)isInitialized {
- for (GPBMessage *msg in [_dictionary objectEnumerator]) {
- if (!msg.initialized) {
- return NO;
- }
- }
- return YES;
-}
-
-- (instancetype)deepCopyWithZone:(NSZone *)zone {
- GPBUInt32ObjectDictionary *newDict =
- [[GPBUInt32ObjectDictionary alloc] init];
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(id aKey,
- GPBMessage *msg,
- BOOL *stop) {
- #pragma unused(stop)
- GPBMessage *copiedMsg = [msg copyWithZone:zone];
- [newDict->_dictionary setObject:copiedMsg forKey:aKey];
- [copiedMsg release];
- }];
- return newDict;
-}
-
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field {
- NSUInteger count = _dictionary.count;
- if (count == 0) {
- return 0;
- }
-
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- __block size_t result = 0;
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- id aObject,
- BOOL *stop) {
- #pragma unused(stop)
- size_t msgSize = ComputeDictUInt32FieldSize([aKey unsignedIntValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictObjectFieldSize(aObject, kMapValueFieldNumber, valueDataType);
- result += GPBComputeRawVarint32SizeForInteger(msgSize) + msgSize;
- }];
- size_t tagSize = GPBComputeWireFormatTagSize(GPBFieldNumber(field), GPBDataTypeMessage);
- result += tagSize * count;
- return result;
-}
-
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field {
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- uint32_t tag = GPBWireFormatMakeTag(GPBFieldNumber(field), GPBWireFormatLengthDelimited);
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- id aObject,
- BOOL *stop) {
- #pragma unused(stop)
- // Write the tag.
- [outputStream writeInt32NoTag:tag];
- // Write the size of the message.
- size_t msgSize = ComputeDictUInt32FieldSize([aKey unsignedIntValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictObjectFieldSize(aObject, kMapValueFieldNumber, valueDataType);
- [outputStream writeInt32NoTag:(int32_t)msgSize];
- // Write the fields.
- WriteDictUInt32Field(outputStream, [aKey unsignedIntValue], kMapKeyFieldNumber, keyDataType);
- WriteDictObjectField(outputStream, aObject, kMapValueFieldNumber, valueDataType);
- }];
-}
-
-- (void)setGPBGenericValue:(GPBGenericValue *)value
- forGPBGenericValueKey:(GPBGenericValue *)key {
- [_dictionary setObject:value->valueString forKey:@(key->valueUInt32)];
-}
-
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block {
- [self enumerateKeysAndObjectsUsingBlock:^(uint32_t key, id object, BOOL *stop) {
- #pragma unused(stop)
- block([NSString stringWithFormat:@"%u", key], object);
- }];
-}
-
-- (id)objectForKey:(uint32_t)key {
- id result = [_dictionary objectForKey:@(key)];
- return result;
-}
-
-- (void)addEntriesFromDictionary:(GPBUInt32ObjectDictionary *)otherDictionary {
- if (otherDictionary) {
- [_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
- }
-}
-
-- (void)setObject:(id)object forKey:(uint32_t)key {
- if (!object) {
- [NSException raise:NSInvalidArgumentException
- format:@"Attempting to add nil object to a Dictionary"];
- }
- [_dictionary setObject:object forKey:@(key)];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
-}
-
-- (void)removeObjectForKey:(uint32_t)aKey {
- [_dictionary removeObjectForKey:@(aKey)];
-}
-
-- (void)removeAll {
- [_dictionary removeAllObjects];
-}
-
-@end
-
-//%PDDM-EXPAND DICTIONARY_IMPL_FOR_POD_KEY(Int32, int32_t)
-// This block of code is generated, do not edit it directly.
-
-#pragma mark - Int32 -> UInt32
-
-@implementation GPBInt32UInt32Dictionary {
- @package
- NSMutableDictionary *_dictionary;
-}
-
-+ (instancetype)dictionary {
- return [[[self alloc] initWithUInt32s:NULL forKeys:NULL count:0] autorelease];
-}
-
-+ (instancetype)dictionaryWithUInt32:(uint32_t)value
- forKey:(int32_t)key {
- // Cast is needed so the compiler knows what class we are invoking initWithUInt32s:forKeys:count:
- // on to get the type correct.
- return [[(GPBInt32UInt32Dictionary*)[self alloc] initWithUInt32s:&value
- forKeys:&key
- count:1] autorelease];
-}
-
-+ (instancetype)dictionaryWithUInt32s:(const uint32_t [])values
- forKeys:(const int32_t [])keys
- count:(NSUInteger)count {
- // Cast is needed so the compiler knows what class we are invoking initWithUInt32s:forKeys:count:
- // on to get the type correct.
- return [[(GPBInt32UInt32Dictionary*)[self alloc] initWithUInt32s:values
- forKeys:keys
- count:count] autorelease];
-}
-
-+ (instancetype)dictionaryWithDictionary:(GPBInt32UInt32Dictionary *)dictionary {
- // Cast is needed so the compiler knows what class we are invoking initWithDictionary:
- // on to get the type correct.
- return [[(GPBInt32UInt32Dictionary*)[self alloc] initWithDictionary:dictionary] autorelease];
-}
-
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems {
- return [[[self alloc] initWithCapacity:numItems] autorelease];
-}
-
-- (instancetype)init {
- return [self initWithUInt32s:NULL forKeys:NULL count:0];
-}
-
-- (instancetype)initWithUInt32s:(const uint32_t [])values
- forKeys:(const int32_t [])keys
- count:(NSUInteger)count {
- self = [super init];
- if (self) {
- _dictionary = [[NSMutableDictionary alloc] init];
- if (count && values && keys) {
- for (NSUInteger i = 0; i < count; ++i) {
- [_dictionary setObject:@(values[i]) forKey:@(keys[i])];
- }
- }
- }
- return self;
-}
-
-- (instancetype)initWithDictionary:(GPBInt32UInt32Dictionary *)dictionary {
- self = [self initWithUInt32s:NULL forKeys:NULL count:0];
- if (self) {
- if (dictionary) {
- [_dictionary addEntriesFromDictionary:dictionary->_dictionary];
- }
- }
- return self;
-}
-
-- (instancetype)initWithCapacity:(NSUInteger)numItems {
- #pragma unused(numItems)
- return [self initWithUInt32s:NULL forKeys:NULL count:0];
-}
-
-- (void)dealloc {
- NSAssert(!_autocreator,
- @"%@: Autocreator must be cleared before release, autocreator: %@",
- [self class], _autocreator);
- [_dictionary release];
- [super dealloc];
-}
-
-- (instancetype)copyWithZone:(NSZone *)zone {
- return [[GPBInt32UInt32Dictionary allocWithZone:zone] initWithDictionary:self];
-}
-
-- (BOOL)isEqual:(id)other {
- if (self == other) {
- return YES;
- }
- if (![other isKindOfClass:[GPBInt32UInt32Dictionary class]]) {
- return NO;
- }
- GPBInt32UInt32Dictionary *otherDictionary = other;
- return [_dictionary isEqual:otherDictionary->_dictionary];
-}
-
-- (NSUInteger)hash {
- return _dictionary.count;
-}
-
-- (NSString *)description {
- return [NSString stringWithFormat:@"<%@ %p> { %@ }", [self class], self, _dictionary];
-}
-
-- (NSUInteger)count {
- return _dictionary.count;
-}
-
-- (void)enumerateKeysAndUInt32sUsingBlock:
- (void (^)(int32_t key, uint32_t value, BOOL *stop))block {
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- block([aKey intValue], [aValue unsignedIntValue], stop);
- }];
-}
-
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field {
- NSUInteger count = _dictionary.count;
- if (count == 0) {
- return 0;
- }
-
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- __block size_t result = 0;
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- size_t msgSize = ComputeDictInt32FieldSize([aKey intValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictUInt32FieldSize([aValue unsignedIntValue], kMapValueFieldNumber, valueDataType);
- result += GPBComputeRawVarint32SizeForInteger(msgSize) + msgSize;
- }];
- size_t tagSize = GPBComputeWireFormatTagSize(GPBFieldNumber(field), GPBDataTypeMessage);
- result += tagSize * count;
- return result;
-}
-
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field {
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- uint32_t tag = GPBWireFormatMakeTag(GPBFieldNumber(field), GPBWireFormatLengthDelimited);
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- // Write the tag.
- [outputStream writeInt32NoTag:tag];
- // Write the size of the message.
- size_t msgSize = ComputeDictInt32FieldSize([aKey intValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictUInt32FieldSize([aValue unsignedIntValue], kMapValueFieldNumber, valueDataType);
- [outputStream writeInt32NoTag:(int32_t)msgSize];
- // Write the fields.
- WriteDictInt32Field(outputStream, [aKey intValue], kMapKeyFieldNumber, keyDataType);
- WriteDictUInt32Field(outputStream, [aValue unsignedIntValue], kMapValueFieldNumber, valueDataType);
- }];
-}
-
-- (void)setGPBGenericValue:(GPBGenericValue *)value
- forGPBGenericValueKey:(GPBGenericValue *)key {
- [_dictionary setObject:@(value->valueUInt32) forKey:@(key->valueInt32)];
-}
-
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block {
- [self enumerateKeysAndUInt32sUsingBlock:^(int32_t key, uint32_t value, BOOL *stop) {
- #pragma unused(stop)
- block([NSString stringWithFormat:@"%d", key], [NSString stringWithFormat:@"%u", value]);
- }];
-}
-
-- (BOOL)getUInt32:(nullable uint32_t *)value forKey:(int32_t)key {
- NSNumber *wrapped = [_dictionary objectForKey:@(key)];
- if (wrapped && value) {
- *value = [wrapped unsignedIntValue];
- }
- return (wrapped != NULL);
-}
-
-- (void)addEntriesFromDictionary:(GPBInt32UInt32Dictionary *)otherDictionary {
- if (otherDictionary) {
- [_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
- }
-}
-
-- (void)setUInt32:(uint32_t)value forKey:(int32_t)key {
- [_dictionary setObject:@(value) forKey:@(key)];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
-}
-
-- (void)removeUInt32ForKey:(int32_t)aKey {
- [_dictionary removeObjectForKey:@(aKey)];
-}
-
-- (void)removeAll {
- [_dictionary removeAllObjects];
-}
-
-@end
-
-#pragma mark - Int32 -> Int32
-
-@implementation GPBInt32Int32Dictionary {
- @package
- NSMutableDictionary *_dictionary;
-}
-
-+ (instancetype)dictionary {
- return [[[self alloc] initWithInt32s:NULL forKeys:NULL count:0] autorelease];
-}
-
-+ (instancetype)dictionaryWithInt32:(int32_t)value
- forKey:(int32_t)key {
- // Cast is needed so the compiler knows what class we are invoking initWithInt32s:forKeys:count:
- // on to get the type correct.
- return [[(GPBInt32Int32Dictionary*)[self alloc] initWithInt32s:&value
- forKeys:&key
- count:1] autorelease];
-}
-
-+ (instancetype)dictionaryWithInt32s:(const int32_t [])values
- forKeys:(const int32_t [])keys
- count:(NSUInteger)count {
- // Cast is needed so the compiler knows what class we are invoking initWithInt32s:forKeys:count:
- // on to get the type correct.
- return [[(GPBInt32Int32Dictionary*)[self alloc] initWithInt32s:values
- forKeys:keys
- count:count] autorelease];
-}
-
-+ (instancetype)dictionaryWithDictionary:(GPBInt32Int32Dictionary *)dictionary {
- // Cast is needed so the compiler knows what class we are invoking initWithDictionary:
- // on to get the type correct.
- return [[(GPBInt32Int32Dictionary*)[self alloc] initWithDictionary:dictionary] autorelease];
-}
-
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems {
- return [[[self alloc] initWithCapacity:numItems] autorelease];
-}
-
-- (instancetype)init {
- return [self initWithInt32s:NULL forKeys:NULL count:0];
-}
-
-- (instancetype)initWithInt32s:(const int32_t [])values
- forKeys:(const int32_t [])keys
- count:(NSUInteger)count {
- self = [super init];
- if (self) {
- _dictionary = [[NSMutableDictionary alloc] init];
- if (count && values && keys) {
- for (NSUInteger i = 0; i < count; ++i) {
- [_dictionary setObject:@(values[i]) forKey:@(keys[i])];
- }
- }
- }
- return self;
-}
-
-- (instancetype)initWithDictionary:(GPBInt32Int32Dictionary *)dictionary {
- self = [self initWithInt32s:NULL forKeys:NULL count:0];
- if (self) {
- if (dictionary) {
- [_dictionary addEntriesFromDictionary:dictionary->_dictionary];
- }
- }
- return self;
-}
-
-- (instancetype)initWithCapacity:(NSUInteger)numItems {
- #pragma unused(numItems)
- return [self initWithInt32s:NULL forKeys:NULL count:0];
-}
-
-- (void)dealloc {
- NSAssert(!_autocreator,
- @"%@: Autocreator must be cleared before release, autocreator: %@",
- [self class], _autocreator);
- [_dictionary release];
- [super dealloc];
-}
-
-- (instancetype)copyWithZone:(NSZone *)zone {
- return [[GPBInt32Int32Dictionary allocWithZone:zone] initWithDictionary:self];
-}
-
-- (BOOL)isEqual:(id)other {
- if (self == other) {
- return YES;
- }
- if (![other isKindOfClass:[GPBInt32Int32Dictionary class]]) {
- return NO;
- }
- GPBInt32Int32Dictionary *otherDictionary = other;
- return [_dictionary isEqual:otherDictionary->_dictionary];
-}
-
-- (NSUInteger)hash {
- return _dictionary.count;
-}
-
-- (NSString *)description {
- return [NSString stringWithFormat:@"<%@ %p> { %@ }", [self class], self, _dictionary];
-}
-
-- (NSUInteger)count {
- return _dictionary.count;
-}
-
-- (void)enumerateKeysAndInt32sUsingBlock:
- (void (^)(int32_t key, int32_t value, BOOL *stop))block {
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- block([aKey intValue], [aValue intValue], stop);
- }];
-}
-
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field {
- NSUInteger count = _dictionary.count;
- if (count == 0) {
- return 0;
- }
-
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- __block size_t result = 0;
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- size_t msgSize = ComputeDictInt32FieldSize([aKey intValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictInt32FieldSize([aValue intValue], kMapValueFieldNumber, valueDataType);
- result += GPBComputeRawVarint32SizeForInteger(msgSize) + msgSize;
- }];
- size_t tagSize = GPBComputeWireFormatTagSize(GPBFieldNumber(field), GPBDataTypeMessage);
- result += tagSize * count;
- return result;
-}
-
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field {
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- uint32_t tag = GPBWireFormatMakeTag(GPBFieldNumber(field), GPBWireFormatLengthDelimited);
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- // Write the tag.
- [outputStream writeInt32NoTag:tag];
- // Write the size of the message.
- size_t msgSize = ComputeDictInt32FieldSize([aKey intValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictInt32FieldSize([aValue intValue], kMapValueFieldNumber, valueDataType);
- [outputStream writeInt32NoTag:(int32_t)msgSize];
- // Write the fields.
- WriteDictInt32Field(outputStream, [aKey intValue], kMapKeyFieldNumber, keyDataType);
- WriteDictInt32Field(outputStream, [aValue intValue], kMapValueFieldNumber, valueDataType);
- }];
-}
-
-- (void)setGPBGenericValue:(GPBGenericValue *)value
- forGPBGenericValueKey:(GPBGenericValue *)key {
- [_dictionary setObject:@(value->valueInt32) forKey:@(key->valueInt32)];
-}
-
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block {
- [self enumerateKeysAndInt32sUsingBlock:^(int32_t key, int32_t value, BOOL *stop) {
- #pragma unused(stop)
- block([NSString stringWithFormat:@"%d", key], [NSString stringWithFormat:@"%d", value]);
- }];
-}
-
-- (BOOL)getInt32:(nullable int32_t *)value forKey:(int32_t)key {
- NSNumber *wrapped = [_dictionary objectForKey:@(key)];
- if (wrapped && value) {
- *value = [wrapped intValue];
- }
- return (wrapped != NULL);
-}
-
-- (void)addEntriesFromDictionary:(GPBInt32Int32Dictionary *)otherDictionary {
- if (otherDictionary) {
- [_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
- }
-}
-
-- (void)setInt32:(int32_t)value forKey:(int32_t)key {
- [_dictionary setObject:@(value) forKey:@(key)];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
-}
-
-- (void)removeInt32ForKey:(int32_t)aKey {
- [_dictionary removeObjectForKey:@(aKey)];
-}
-
-- (void)removeAll {
- [_dictionary removeAllObjects];
-}
-
-@end
-
-#pragma mark - Int32 -> UInt64
-
-@implementation GPBInt32UInt64Dictionary {
- @package
- NSMutableDictionary *_dictionary;
-}
-
-+ (instancetype)dictionary {
- return [[[self alloc] initWithUInt64s:NULL forKeys:NULL count:0] autorelease];
-}
-
-+ (instancetype)dictionaryWithUInt64:(uint64_t)value
- forKey:(int32_t)key {
- // Cast is needed so the compiler knows what class we are invoking initWithUInt64s:forKeys:count:
- // on to get the type correct.
- return [[(GPBInt32UInt64Dictionary*)[self alloc] initWithUInt64s:&value
- forKeys:&key
- count:1] autorelease];
-}
-
-+ (instancetype)dictionaryWithUInt64s:(const uint64_t [])values
- forKeys:(const int32_t [])keys
- count:(NSUInteger)count {
- // Cast is needed so the compiler knows what class we are invoking initWithUInt64s:forKeys:count:
- // on to get the type correct.
- return [[(GPBInt32UInt64Dictionary*)[self alloc] initWithUInt64s:values
- forKeys:keys
- count:count] autorelease];
-}
-
-+ (instancetype)dictionaryWithDictionary:(GPBInt32UInt64Dictionary *)dictionary {
- // Cast is needed so the compiler knows what class we are invoking initWithDictionary:
- // on to get the type correct.
- return [[(GPBInt32UInt64Dictionary*)[self alloc] initWithDictionary:dictionary] autorelease];
-}
-
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems {
- return [[[self alloc] initWithCapacity:numItems] autorelease];
-}
-
-- (instancetype)init {
- return [self initWithUInt64s:NULL forKeys:NULL count:0];
-}
-
-- (instancetype)initWithUInt64s:(const uint64_t [])values
- forKeys:(const int32_t [])keys
- count:(NSUInteger)count {
- self = [super init];
- if (self) {
- _dictionary = [[NSMutableDictionary alloc] init];
- if (count && values && keys) {
- for (NSUInteger i = 0; i < count; ++i) {
- [_dictionary setObject:@(values[i]) forKey:@(keys[i])];
- }
- }
- }
- return self;
-}
-
-- (instancetype)initWithDictionary:(GPBInt32UInt64Dictionary *)dictionary {
- self = [self initWithUInt64s:NULL forKeys:NULL count:0];
- if (self) {
- if (dictionary) {
- [_dictionary addEntriesFromDictionary:dictionary->_dictionary];
- }
- }
- return self;
-}
-
-- (instancetype)initWithCapacity:(NSUInteger)numItems {
- #pragma unused(numItems)
- return [self initWithUInt64s:NULL forKeys:NULL count:0];
-}
-
-- (void)dealloc {
- NSAssert(!_autocreator,
- @"%@: Autocreator must be cleared before release, autocreator: %@",
- [self class], _autocreator);
- [_dictionary release];
- [super dealloc];
-}
-
-- (instancetype)copyWithZone:(NSZone *)zone {
- return [[GPBInt32UInt64Dictionary allocWithZone:zone] initWithDictionary:self];
-}
-
-- (BOOL)isEqual:(id)other {
- if (self == other) {
- return YES;
- }
- if (![other isKindOfClass:[GPBInt32UInt64Dictionary class]]) {
- return NO;
- }
- GPBInt32UInt64Dictionary *otherDictionary = other;
- return [_dictionary isEqual:otherDictionary->_dictionary];
-}
-
-- (NSUInteger)hash {
- return _dictionary.count;
-}
-
-- (NSString *)description {
- return [NSString stringWithFormat:@"<%@ %p> { %@ }", [self class], self, _dictionary];
-}
-
-- (NSUInteger)count {
- return _dictionary.count;
-}
-
-- (void)enumerateKeysAndUInt64sUsingBlock:
- (void (^)(int32_t key, uint64_t value, BOOL *stop))block {
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- block([aKey intValue], [aValue unsignedLongLongValue], stop);
- }];
-}
-
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field {
- NSUInteger count = _dictionary.count;
- if (count == 0) {
- return 0;
- }
-
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- __block size_t result = 0;
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- size_t msgSize = ComputeDictInt32FieldSize([aKey intValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictUInt64FieldSize([aValue unsignedLongLongValue], kMapValueFieldNumber, valueDataType);
- result += GPBComputeRawVarint32SizeForInteger(msgSize) + msgSize;
- }];
- size_t tagSize = GPBComputeWireFormatTagSize(GPBFieldNumber(field), GPBDataTypeMessage);
- result += tagSize * count;
- return result;
-}
-
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field {
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- uint32_t tag = GPBWireFormatMakeTag(GPBFieldNumber(field), GPBWireFormatLengthDelimited);
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- // Write the tag.
- [outputStream writeInt32NoTag:tag];
- // Write the size of the message.
- size_t msgSize = ComputeDictInt32FieldSize([aKey intValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictUInt64FieldSize([aValue unsignedLongLongValue], kMapValueFieldNumber, valueDataType);
- [outputStream writeInt32NoTag:(int32_t)msgSize];
- // Write the fields.
- WriteDictInt32Field(outputStream, [aKey intValue], kMapKeyFieldNumber, keyDataType);
- WriteDictUInt64Field(outputStream, [aValue unsignedLongLongValue], kMapValueFieldNumber, valueDataType);
- }];
-}
-
-- (void)setGPBGenericValue:(GPBGenericValue *)value
- forGPBGenericValueKey:(GPBGenericValue *)key {
- [_dictionary setObject:@(value->valueUInt64) forKey:@(key->valueInt32)];
-}
-
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block {
- [self enumerateKeysAndUInt64sUsingBlock:^(int32_t key, uint64_t value, BOOL *stop) {
- #pragma unused(stop)
- block([NSString stringWithFormat:@"%d", key], [NSString stringWithFormat:@"%llu", value]);
- }];
-}
-
-- (BOOL)getUInt64:(nullable uint64_t *)value forKey:(int32_t)key {
- NSNumber *wrapped = [_dictionary objectForKey:@(key)];
- if (wrapped && value) {
- *value = [wrapped unsignedLongLongValue];
- }
- return (wrapped != NULL);
-}
-
-- (void)addEntriesFromDictionary:(GPBInt32UInt64Dictionary *)otherDictionary {
- if (otherDictionary) {
- [_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
- }
-}
-
-- (void)setUInt64:(uint64_t)value forKey:(int32_t)key {
- [_dictionary setObject:@(value) forKey:@(key)];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
-}
-
-- (void)removeUInt64ForKey:(int32_t)aKey {
- [_dictionary removeObjectForKey:@(aKey)];
-}
-
-- (void)removeAll {
- [_dictionary removeAllObjects];
-}
-
-@end
-
-#pragma mark - Int32 -> Int64
-
-@implementation GPBInt32Int64Dictionary {
- @package
- NSMutableDictionary *_dictionary;
-}
-
-+ (instancetype)dictionary {
- return [[[self alloc] initWithInt64s:NULL forKeys:NULL count:0] autorelease];
-}
-
-+ (instancetype)dictionaryWithInt64:(int64_t)value
- forKey:(int32_t)key {
- // Cast is needed so the compiler knows what class we are invoking initWithInt64s:forKeys:count:
- // on to get the type correct.
- return [[(GPBInt32Int64Dictionary*)[self alloc] initWithInt64s:&value
- forKeys:&key
- count:1] autorelease];
-}
-
-+ (instancetype)dictionaryWithInt64s:(const int64_t [])values
- forKeys:(const int32_t [])keys
- count:(NSUInteger)count {
- // Cast is needed so the compiler knows what class we are invoking initWithInt64s:forKeys:count:
- // on to get the type correct.
- return [[(GPBInt32Int64Dictionary*)[self alloc] initWithInt64s:values
- forKeys:keys
- count:count] autorelease];
-}
-
-+ (instancetype)dictionaryWithDictionary:(GPBInt32Int64Dictionary *)dictionary {
- // Cast is needed so the compiler knows what class we are invoking initWithDictionary:
- // on to get the type correct.
- return [[(GPBInt32Int64Dictionary*)[self alloc] initWithDictionary:dictionary] autorelease];
-}
-
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems {
- return [[[self alloc] initWithCapacity:numItems] autorelease];
-}
-
-- (instancetype)init {
- return [self initWithInt64s:NULL forKeys:NULL count:0];
-}
-
-- (instancetype)initWithInt64s:(const int64_t [])values
- forKeys:(const int32_t [])keys
- count:(NSUInteger)count {
- self = [super init];
- if (self) {
- _dictionary = [[NSMutableDictionary alloc] init];
- if (count && values && keys) {
- for (NSUInteger i = 0; i < count; ++i) {
- [_dictionary setObject:@(values[i]) forKey:@(keys[i])];
- }
- }
- }
- return self;
-}
-
-- (instancetype)initWithDictionary:(GPBInt32Int64Dictionary *)dictionary {
- self = [self initWithInt64s:NULL forKeys:NULL count:0];
- if (self) {
- if (dictionary) {
- [_dictionary addEntriesFromDictionary:dictionary->_dictionary];
- }
- }
- return self;
-}
-
-- (instancetype)initWithCapacity:(NSUInteger)numItems {
- #pragma unused(numItems)
- return [self initWithInt64s:NULL forKeys:NULL count:0];
-}
-
-- (void)dealloc {
- NSAssert(!_autocreator,
- @"%@: Autocreator must be cleared before release, autocreator: %@",
- [self class], _autocreator);
- [_dictionary release];
- [super dealloc];
-}
-
-- (instancetype)copyWithZone:(NSZone *)zone {
- return [[GPBInt32Int64Dictionary allocWithZone:zone] initWithDictionary:self];
-}
-
-- (BOOL)isEqual:(id)other {
- if (self == other) {
- return YES;
- }
- if (![other isKindOfClass:[GPBInt32Int64Dictionary class]]) {
- return NO;
- }
- GPBInt32Int64Dictionary *otherDictionary = other;
- return [_dictionary isEqual:otherDictionary->_dictionary];
-}
-
-- (NSUInteger)hash {
- return _dictionary.count;
-}
-
-- (NSString *)description {
- return [NSString stringWithFormat:@"<%@ %p> { %@ }", [self class], self, _dictionary];
-}
-
-- (NSUInteger)count {
- return _dictionary.count;
-}
-
-- (void)enumerateKeysAndInt64sUsingBlock:
- (void (^)(int32_t key, int64_t value, BOOL *stop))block {
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- block([aKey intValue], [aValue longLongValue], stop);
- }];
-}
-
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field {
- NSUInteger count = _dictionary.count;
- if (count == 0) {
- return 0;
- }
-
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- __block size_t result = 0;
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- size_t msgSize = ComputeDictInt32FieldSize([aKey intValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictInt64FieldSize([aValue longLongValue], kMapValueFieldNumber, valueDataType);
- result += GPBComputeRawVarint32SizeForInteger(msgSize) + msgSize;
- }];
- size_t tagSize = GPBComputeWireFormatTagSize(GPBFieldNumber(field), GPBDataTypeMessage);
- result += tagSize * count;
- return result;
-}
-
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field {
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- uint32_t tag = GPBWireFormatMakeTag(GPBFieldNumber(field), GPBWireFormatLengthDelimited);
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- // Write the tag.
- [outputStream writeInt32NoTag:tag];
- // Write the size of the message.
- size_t msgSize = ComputeDictInt32FieldSize([aKey intValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictInt64FieldSize([aValue longLongValue], kMapValueFieldNumber, valueDataType);
- [outputStream writeInt32NoTag:(int32_t)msgSize];
- // Write the fields.
- WriteDictInt32Field(outputStream, [aKey intValue], kMapKeyFieldNumber, keyDataType);
- WriteDictInt64Field(outputStream, [aValue longLongValue], kMapValueFieldNumber, valueDataType);
- }];
-}
-
-- (void)setGPBGenericValue:(GPBGenericValue *)value
- forGPBGenericValueKey:(GPBGenericValue *)key {
- [_dictionary setObject:@(value->valueInt64) forKey:@(key->valueInt32)];
-}
-
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block {
- [self enumerateKeysAndInt64sUsingBlock:^(int32_t key, int64_t value, BOOL *stop) {
- #pragma unused(stop)
- block([NSString stringWithFormat:@"%d", key], [NSString stringWithFormat:@"%lld", value]);
- }];
-}
-
-- (BOOL)getInt64:(nullable int64_t *)value forKey:(int32_t)key {
- NSNumber *wrapped = [_dictionary objectForKey:@(key)];
- if (wrapped && value) {
- *value = [wrapped longLongValue];
- }
- return (wrapped != NULL);
-}
-
-- (void)addEntriesFromDictionary:(GPBInt32Int64Dictionary *)otherDictionary {
- if (otherDictionary) {
- [_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
- }
-}
-
-- (void)setInt64:(int64_t)value forKey:(int32_t)key {
- [_dictionary setObject:@(value) forKey:@(key)];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
-}
-
-- (void)removeInt64ForKey:(int32_t)aKey {
- [_dictionary removeObjectForKey:@(aKey)];
-}
-
-- (void)removeAll {
- [_dictionary removeAllObjects];
-}
-
-@end
-
-#pragma mark - Int32 -> Bool
-
-@implementation GPBInt32BoolDictionary {
- @package
- NSMutableDictionary *_dictionary;
-}
-
-+ (instancetype)dictionary {
- return [[[self alloc] initWithBools:NULL forKeys:NULL count:0] autorelease];
-}
-
-+ (instancetype)dictionaryWithBool:(BOOL)value
- forKey:(int32_t)key {
- // Cast is needed so the compiler knows what class we are invoking initWithBools:forKeys:count:
- // on to get the type correct.
- return [[(GPBInt32BoolDictionary*)[self alloc] initWithBools:&value
- forKeys:&key
- count:1] autorelease];
-}
-
-+ (instancetype)dictionaryWithBools:(const BOOL [])values
- forKeys:(const int32_t [])keys
- count:(NSUInteger)count {
- // Cast is needed so the compiler knows what class we are invoking initWithBools:forKeys:count:
- // on to get the type correct.
- return [[(GPBInt32BoolDictionary*)[self alloc] initWithBools:values
- forKeys:keys
- count:count] autorelease];
-}
-
-+ (instancetype)dictionaryWithDictionary:(GPBInt32BoolDictionary *)dictionary {
- // Cast is needed so the compiler knows what class we are invoking initWithDictionary:
- // on to get the type correct.
- return [[(GPBInt32BoolDictionary*)[self alloc] initWithDictionary:dictionary] autorelease];
-}
-
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems {
- return [[[self alloc] initWithCapacity:numItems] autorelease];
-}
-
-- (instancetype)init {
- return [self initWithBools:NULL forKeys:NULL count:0];
-}
-
-- (instancetype)initWithBools:(const BOOL [])values
- forKeys:(const int32_t [])keys
- count:(NSUInteger)count {
- self = [super init];
- if (self) {
- _dictionary = [[NSMutableDictionary alloc] init];
- if (count && values && keys) {
- for (NSUInteger i = 0; i < count; ++i) {
- [_dictionary setObject:@(values[i]) forKey:@(keys[i])];
- }
- }
- }
- return self;
-}
-
-- (instancetype)initWithDictionary:(GPBInt32BoolDictionary *)dictionary {
- self = [self initWithBools:NULL forKeys:NULL count:0];
- if (self) {
- if (dictionary) {
- [_dictionary addEntriesFromDictionary:dictionary->_dictionary];
- }
- }
- return self;
-}
-
-- (instancetype)initWithCapacity:(NSUInteger)numItems {
- #pragma unused(numItems)
- return [self initWithBools:NULL forKeys:NULL count:0];
-}
-
-- (void)dealloc {
- NSAssert(!_autocreator,
- @"%@: Autocreator must be cleared before release, autocreator: %@",
- [self class], _autocreator);
- [_dictionary release];
- [super dealloc];
-}
-
-- (instancetype)copyWithZone:(NSZone *)zone {
- return [[GPBInt32BoolDictionary allocWithZone:zone] initWithDictionary:self];
-}
-
-- (BOOL)isEqual:(id)other {
- if (self == other) {
- return YES;
- }
- if (![other isKindOfClass:[GPBInt32BoolDictionary class]]) {
- return NO;
- }
- GPBInt32BoolDictionary *otherDictionary = other;
- return [_dictionary isEqual:otherDictionary->_dictionary];
-}
-
-- (NSUInteger)hash {
- return _dictionary.count;
-}
-
-- (NSString *)description {
- return [NSString stringWithFormat:@"<%@ %p> { %@ }", [self class], self, _dictionary];
-}
-
-- (NSUInteger)count {
- return _dictionary.count;
-}
-
-- (void)enumerateKeysAndBoolsUsingBlock:
- (void (^)(int32_t key, BOOL value, BOOL *stop))block {
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- block([aKey intValue], [aValue boolValue], stop);
- }];
-}
-
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field {
- NSUInteger count = _dictionary.count;
- if (count == 0) {
- return 0;
- }
-
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- __block size_t result = 0;
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- size_t msgSize = ComputeDictInt32FieldSize([aKey intValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictBoolFieldSize([aValue boolValue], kMapValueFieldNumber, valueDataType);
- result += GPBComputeRawVarint32SizeForInteger(msgSize) + msgSize;
- }];
- size_t tagSize = GPBComputeWireFormatTagSize(GPBFieldNumber(field), GPBDataTypeMessage);
- result += tagSize * count;
- return result;
-}
-
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field {
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- uint32_t tag = GPBWireFormatMakeTag(GPBFieldNumber(field), GPBWireFormatLengthDelimited);
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- // Write the tag.
- [outputStream writeInt32NoTag:tag];
- // Write the size of the message.
- size_t msgSize = ComputeDictInt32FieldSize([aKey intValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictBoolFieldSize([aValue boolValue], kMapValueFieldNumber, valueDataType);
- [outputStream writeInt32NoTag:(int32_t)msgSize];
- // Write the fields.
- WriteDictInt32Field(outputStream, [aKey intValue], kMapKeyFieldNumber, keyDataType);
- WriteDictBoolField(outputStream, [aValue boolValue], kMapValueFieldNumber, valueDataType);
- }];
-}
-
-- (void)setGPBGenericValue:(GPBGenericValue *)value
- forGPBGenericValueKey:(GPBGenericValue *)key {
- [_dictionary setObject:@(value->valueBool) forKey:@(key->valueInt32)];
-}
-
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block {
- [self enumerateKeysAndBoolsUsingBlock:^(int32_t key, BOOL value, BOOL *stop) {
- #pragma unused(stop)
- block([NSString stringWithFormat:@"%d", key], (value ? @"true" : @"false"));
- }];
-}
-
-- (BOOL)getBool:(nullable BOOL *)value forKey:(int32_t)key {
- NSNumber *wrapped = [_dictionary objectForKey:@(key)];
- if (wrapped && value) {
- *value = [wrapped boolValue];
- }
- return (wrapped != NULL);
-}
-
-- (void)addEntriesFromDictionary:(GPBInt32BoolDictionary *)otherDictionary {
- if (otherDictionary) {
- [_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
- }
-}
-
-- (void)setBool:(BOOL)value forKey:(int32_t)key {
- [_dictionary setObject:@(value) forKey:@(key)];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
-}
-
-- (void)removeBoolForKey:(int32_t)aKey {
- [_dictionary removeObjectForKey:@(aKey)];
-}
-
-- (void)removeAll {
- [_dictionary removeAllObjects];
-}
-
-@end
-
-#pragma mark - Int32 -> Float
-
-@implementation GPBInt32FloatDictionary {
- @package
- NSMutableDictionary *_dictionary;
-}
-
-+ (instancetype)dictionary {
- return [[[self alloc] initWithFloats:NULL forKeys:NULL count:0] autorelease];
-}
-
-+ (instancetype)dictionaryWithFloat:(float)value
- forKey:(int32_t)key {
- // Cast is needed so the compiler knows what class we are invoking initWithFloats:forKeys:count:
- // on to get the type correct.
- return [[(GPBInt32FloatDictionary*)[self alloc] initWithFloats:&value
- forKeys:&key
- count:1] autorelease];
-}
-
-+ (instancetype)dictionaryWithFloats:(const float [])values
- forKeys:(const int32_t [])keys
- count:(NSUInteger)count {
- // Cast is needed so the compiler knows what class we are invoking initWithFloats:forKeys:count:
- // on to get the type correct.
- return [[(GPBInt32FloatDictionary*)[self alloc] initWithFloats:values
- forKeys:keys
- count:count] autorelease];
-}
-
-+ (instancetype)dictionaryWithDictionary:(GPBInt32FloatDictionary *)dictionary {
- // Cast is needed so the compiler knows what class we are invoking initWithDictionary:
- // on to get the type correct.
- return [[(GPBInt32FloatDictionary*)[self alloc] initWithDictionary:dictionary] autorelease];
-}
-
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems {
- return [[[self alloc] initWithCapacity:numItems] autorelease];
-}
-
-- (instancetype)init {
- return [self initWithFloats:NULL forKeys:NULL count:0];
-}
-
-- (instancetype)initWithFloats:(const float [])values
- forKeys:(const int32_t [])keys
- count:(NSUInteger)count {
- self = [super init];
- if (self) {
- _dictionary = [[NSMutableDictionary alloc] init];
- if (count && values && keys) {
- for (NSUInteger i = 0; i < count; ++i) {
- [_dictionary setObject:@(values[i]) forKey:@(keys[i])];
- }
- }
- }
- return self;
-}
-
-- (instancetype)initWithDictionary:(GPBInt32FloatDictionary *)dictionary {
- self = [self initWithFloats:NULL forKeys:NULL count:0];
- if (self) {
- if (dictionary) {
- [_dictionary addEntriesFromDictionary:dictionary->_dictionary];
- }
- }
- return self;
-}
-
-- (instancetype)initWithCapacity:(NSUInteger)numItems {
- #pragma unused(numItems)
- return [self initWithFloats:NULL forKeys:NULL count:0];
-}
-
-- (void)dealloc {
- NSAssert(!_autocreator,
- @"%@: Autocreator must be cleared before release, autocreator: %@",
- [self class], _autocreator);
- [_dictionary release];
- [super dealloc];
-}
-
-- (instancetype)copyWithZone:(NSZone *)zone {
- return [[GPBInt32FloatDictionary allocWithZone:zone] initWithDictionary:self];
-}
-
-- (BOOL)isEqual:(id)other {
- if (self == other) {
- return YES;
- }
- if (![other isKindOfClass:[GPBInt32FloatDictionary class]]) {
- return NO;
- }
- GPBInt32FloatDictionary *otherDictionary = other;
- return [_dictionary isEqual:otherDictionary->_dictionary];
-}
-
-- (NSUInteger)hash {
- return _dictionary.count;
-}
-
-- (NSString *)description {
- return [NSString stringWithFormat:@"<%@ %p> { %@ }", [self class], self, _dictionary];
-}
-
-- (NSUInteger)count {
- return _dictionary.count;
-}
-
-- (void)enumerateKeysAndFloatsUsingBlock:
- (void (^)(int32_t key, float value, BOOL *stop))block {
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- block([aKey intValue], [aValue floatValue], stop);
- }];
-}
-
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field {
- NSUInteger count = _dictionary.count;
- if (count == 0) {
- return 0;
- }
-
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- __block size_t result = 0;
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- size_t msgSize = ComputeDictInt32FieldSize([aKey intValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictFloatFieldSize([aValue floatValue], kMapValueFieldNumber, valueDataType);
- result += GPBComputeRawVarint32SizeForInteger(msgSize) + msgSize;
- }];
- size_t tagSize = GPBComputeWireFormatTagSize(GPBFieldNumber(field), GPBDataTypeMessage);
- result += tagSize * count;
- return result;
-}
-
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field {
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- uint32_t tag = GPBWireFormatMakeTag(GPBFieldNumber(field), GPBWireFormatLengthDelimited);
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- // Write the tag.
- [outputStream writeInt32NoTag:tag];
- // Write the size of the message.
- size_t msgSize = ComputeDictInt32FieldSize([aKey intValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictFloatFieldSize([aValue floatValue], kMapValueFieldNumber, valueDataType);
- [outputStream writeInt32NoTag:(int32_t)msgSize];
- // Write the fields.
- WriteDictInt32Field(outputStream, [aKey intValue], kMapKeyFieldNumber, keyDataType);
- WriteDictFloatField(outputStream, [aValue floatValue], kMapValueFieldNumber, valueDataType);
- }];
-}
-
-- (void)setGPBGenericValue:(GPBGenericValue *)value
- forGPBGenericValueKey:(GPBGenericValue *)key {
- [_dictionary setObject:@(value->valueFloat) forKey:@(key->valueInt32)];
-}
-
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block {
- [self enumerateKeysAndFloatsUsingBlock:^(int32_t key, float value, BOOL *stop) {
- #pragma unused(stop)
- block([NSString stringWithFormat:@"%d", key], [NSString stringWithFormat:@"%.*g", FLT_DIG, value]);
- }];
-}
-
-- (BOOL)getFloat:(nullable float *)value forKey:(int32_t)key {
- NSNumber *wrapped = [_dictionary objectForKey:@(key)];
- if (wrapped && value) {
- *value = [wrapped floatValue];
- }
- return (wrapped != NULL);
-}
-
-- (void)addEntriesFromDictionary:(GPBInt32FloatDictionary *)otherDictionary {
- if (otherDictionary) {
- [_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
- }
-}
-
-- (void)setFloat:(float)value forKey:(int32_t)key {
- [_dictionary setObject:@(value) forKey:@(key)];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
-}
-
-- (void)removeFloatForKey:(int32_t)aKey {
- [_dictionary removeObjectForKey:@(aKey)];
-}
-
-- (void)removeAll {
- [_dictionary removeAllObjects];
-}
-
-@end
-
-#pragma mark - Int32 -> Double
-
-@implementation GPBInt32DoubleDictionary {
- @package
- NSMutableDictionary *_dictionary;
-}
-
-+ (instancetype)dictionary {
- return [[[self alloc] initWithDoubles:NULL forKeys:NULL count:0] autorelease];
-}
-
-+ (instancetype)dictionaryWithDouble:(double)value
- forKey:(int32_t)key {
- // Cast is needed so the compiler knows what class we are invoking initWithDoubles:forKeys:count:
- // on to get the type correct.
- return [[(GPBInt32DoubleDictionary*)[self alloc] initWithDoubles:&value
- forKeys:&key
- count:1] autorelease];
-}
-
-+ (instancetype)dictionaryWithDoubles:(const double [])values
- forKeys:(const int32_t [])keys
- count:(NSUInteger)count {
- // Cast is needed so the compiler knows what class we are invoking initWithDoubles:forKeys:count:
- // on to get the type correct.
- return [[(GPBInt32DoubleDictionary*)[self alloc] initWithDoubles:values
- forKeys:keys
- count:count] autorelease];
-}
-
-+ (instancetype)dictionaryWithDictionary:(GPBInt32DoubleDictionary *)dictionary {
- // Cast is needed so the compiler knows what class we are invoking initWithDictionary:
- // on to get the type correct.
- return [[(GPBInt32DoubleDictionary*)[self alloc] initWithDictionary:dictionary] autorelease];
-}
-
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems {
- return [[[self alloc] initWithCapacity:numItems] autorelease];
-}
-
-- (instancetype)init {
- return [self initWithDoubles:NULL forKeys:NULL count:0];
-}
-
-- (instancetype)initWithDoubles:(const double [])values
- forKeys:(const int32_t [])keys
- count:(NSUInteger)count {
- self = [super init];
- if (self) {
- _dictionary = [[NSMutableDictionary alloc] init];
- if (count && values && keys) {
- for (NSUInteger i = 0; i < count; ++i) {
- [_dictionary setObject:@(values[i]) forKey:@(keys[i])];
- }
- }
- }
- return self;
-}
-
-- (instancetype)initWithDictionary:(GPBInt32DoubleDictionary *)dictionary {
- self = [self initWithDoubles:NULL forKeys:NULL count:0];
- if (self) {
- if (dictionary) {
- [_dictionary addEntriesFromDictionary:dictionary->_dictionary];
- }
- }
- return self;
-}
-
-- (instancetype)initWithCapacity:(NSUInteger)numItems {
- #pragma unused(numItems)
- return [self initWithDoubles:NULL forKeys:NULL count:0];
-}
-
-- (void)dealloc {
- NSAssert(!_autocreator,
- @"%@: Autocreator must be cleared before release, autocreator: %@",
- [self class], _autocreator);
- [_dictionary release];
- [super dealloc];
-}
-
-- (instancetype)copyWithZone:(NSZone *)zone {
- return [[GPBInt32DoubleDictionary allocWithZone:zone] initWithDictionary:self];
-}
-
-- (BOOL)isEqual:(id)other {
- if (self == other) {
- return YES;
- }
- if (![other isKindOfClass:[GPBInt32DoubleDictionary class]]) {
- return NO;
- }
- GPBInt32DoubleDictionary *otherDictionary = other;
- return [_dictionary isEqual:otherDictionary->_dictionary];
-}
-
-- (NSUInteger)hash {
- return _dictionary.count;
-}
-
-- (NSString *)description {
- return [NSString stringWithFormat:@"<%@ %p> { %@ }", [self class], self, _dictionary];
-}
-
-- (NSUInteger)count {
- return _dictionary.count;
-}
-
-- (void)enumerateKeysAndDoublesUsingBlock:
- (void (^)(int32_t key, double value, BOOL *stop))block {
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- block([aKey intValue], [aValue doubleValue], stop);
- }];
-}
-
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field {
- NSUInteger count = _dictionary.count;
- if (count == 0) {
- return 0;
- }
-
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- __block size_t result = 0;
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- size_t msgSize = ComputeDictInt32FieldSize([aKey intValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictDoubleFieldSize([aValue doubleValue], kMapValueFieldNumber, valueDataType);
- result += GPBComputeRawVarint32SizeForInteger(msgSize) + msgSize;
- }];
- size_t tagSize = GPBComputeWireFormatTagSize(GPBFieldNumber(field), GPBDataTypeMessage);
- result += tagSize * count;
- return result;
-}
-
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field {
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- uint32_t tag = GPBWireFormatMakeTag(GPBFieldNumber(field), GPBWireFormatLengthDelimited);
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- // Write the tag.
- [outputStream writeInt32NoTag:tag];
- // Write the size of the message.
- size_t msgSize = ComputeDictInt32FieldSize([aKey intValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictDoubleFieldSize([aValue doubleValue], kMapValueFieldNumber, valueDataType);
- [outputStream writeInt32NoTag:(int32_t)msgSize];
- // Write the fields.
- WriteDictInt32Field(outputStream, [aKey intValue], kMapKeyFieldNumber, keyDataType);
- WriteDictDoubleField(outputStream, [aValue doubleValue], kMapValueFieldNumber, valueDataType);
- }];
-}
-
-- (void)setGPBGenericValue:(GPBGenericValue *)value
- forGPBGenericValueKey:(GPBGenericValue *)key {
- [_dictionary setObject:@(value->valueDouble) forKey:@(key->valueInt32)];
-}
-
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block {
- [self enumerateKeysAndDoublesUsingBlock:^(int32_t key, double value, BOOL *stop) {
- #pragma unused(stop)
- block([NSString stringWithFormat:@"%d", key], [NSString stringWithFormat:@"%.*lg", DBL_DIG, value]);
- }];
-}
-
-- (BOOL)getDouble:(nullable double *)value forKey:(int32_t)key {
- NSNumber *wrapped = [_dictionary objectForKey:@(key)];
- if (wrapped && value) {
- *value = [wrapped doubleValue];
- }
- return (wrapped != NULL);
-}
-
-- (void)addEntriesFromDictionary:(GPBInt32DoubleDictionary *)otherDictionary {
- if (otherDictionary) {
- [_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
- }
-}
-
-- (void)setDouble:(double)value forKey:(int32_t)key {
- [_dictionary setObject:@(value) forKey:@(key)];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
-}
-
-- (void)removeDoubleForKey:(int32_t)aKey {
- [_dictionary removeObjectForKey:@(aKey)];
-}
-
-- (void)removeAll {
- [_dictionary removeAllObjects];
-}
-
-@end
-
-#pragma mark - Int32 -> Enum
-
-@implementation GPBInt32EnumDictionary {
- @package
- NSMutableDictionary *_dictionary;
- GPBEnumValidationFunc _validationFunc;
-}
-
-@synthesize validationFunc = _validationFunc;
-
-+ (instancetype)dictionary {
- return [[[self alloc] initWithValidationFunction:NULL
- rawValues:NULL
- forKeys:NULL
- count:0] autorelease];
-}
-
-+ (instancetype)dictionaryWithValidationFunction:(GPBEnumValidationFunc)func {
- return [[[self alloc] initWithValidationFunction:func
- rawValues:NULL
- forKeys:NULL
- count:0] autorelease];
-}
-
-+ (instancetype)dictionaryWithValidationFunction:(GPBEnumValidationFunc)func
- rawValue:(int32_t)rawValue
- forKey:(int32_t)key {
- // Cast is needed so the compiler knows what class we are invoking initWithValues:forKeys:count:
- // on to get the type correct.
- return [[(GPBInt32EnumDictionary*)[self alloc] initWithValidationFunction:func
- rawValues:&rawValue
- forKeys:&key
- count:1] autorelease];
-}
-
-+ (instancetype)dictionaryWithValidationFunction:(GPBEnumValidationFunc)func
- rawValues:(const int32_t [])rawValues
- forKeys:(const int32_t [])keys
- count:(NSUInteger)count {
- // Cast is needed so the compiler knows what class we are invoking initWithValues:forKeys:count:
- // on to get the type correct.
- return [[(GPBInt32EnumDictionary*)[self alloc] initWithValidationFunction:func
- rawValues:rawValues
- forKeys:keys
- count:count] autorelease];
-}
-
-+ (instancetype)dictionaryWithDictionary:(GPBInt32EnumDictionary *)dictionary {
- // Cast is needed so the compiler knows what class we are invoking initWithValues:forKeys:count:
- // on to get the type correct.
- return [[(GPBInt32EnumDictionary*)[self alloc] initWithDictionary:dictionary] autorelease];
-}
-
-+ (instancetype)dictionaryWithValidationFunction:(GPBEnumValidationFunc)func
- capacity:(NSUInteger)numItems {
- return [[[self alloc] initWithValidationFunction:func capacity:numItems] autorelease];
-}
-
-- (instancetype)init {
- return [self initWithValidationFunction:NULL rawValues:NULL forKeys:NULL count:0];
-}
-
-- (instancetype)initWithValidationFunction:(GPBEnumValidationFunc)func {
- return [self initWithValidationFunction:func rawValues:NULL forKeys:NULL count:0];
-}
-
-- (instancetype)initWithValidationFunction:(GPBEnumValidationFunc)func
- rawValues:(const int32_t [])rawValues
- forKeys:(const int32_t [])keys
- count:(NSUInteger)count {
- self = [super init];
- if (self) {
- _dictionary = [[NSMutableDictionary alloc] init];
- _validationFunc = (func != NULL ? func : DictDefault_IsValidValue);
- if (count && rawValues && keys) {
- for (NSUInteger i = 0; i < count; ++i) {
- [_dictionary setObject:@(rawValues[i]) forKey:@(keys[i])];
- }
- }
- }
- return self;
-}
-
-- (instancetype)initWithDictionary:(GPBInt32EnumDictionary *)dictionary {
- self = [self initWithValidationFunction:dictionary.validationFunc
- rawValues:NULL
- forKeys:NULL
- count:0];
- if (self) {
- if (dictionary) {
- [_dictionary addEntriesFromDictionary:dictionary->_dictionary];
- }
- }
- return self;
-}
-
-- (instancetype)initWithValidationFunction:(GPBEnumValidationFunc)func
- capacity:(NSUInteger)numItems {
- #pragma unused(numItems)
- return [self initWithValidationFunction:func rawValues:NULL forKeys:NULL count:0];
-}
-
-- (void)dealloc {
- NSAssert(!_autocreator,
- @"%@: Autocreator must be cleared before release, autocreator: %@",
- [self class], _autocreator);
- [_dictionary release];
- [super dealloc];
-}
-
-- (instancetype)copyWithZone:(NSZone *)zone {
- return [[GPBInt32EnumDictionary allocWithZone:zone] initWithDictionary:self];
-}
-
-- (BOOL)isEqual:(id)other {
- if (self == other) {
- return YES;
- }
- if (![other isKindOfClass:[GPBInt32EnumDictionary class]]) {
- return NO;
- }
- GPBInt32EnumDictionary *otherDictionary = other;
- return [_dictionary isEqual:otherDictionary->_dictionary];
-}
-
-- (NSUInteger)hash {
- return _dictionary.count;
-}
-
-- (NSString *)description {
- return [NSString stringWithFormat:@"<%@ %p> { %@ }", [self class], self, _dictionary];
-}
-
-- (NSUInteger)count {
- return _dictionary.count;
-}
-
-- (void)enumerateKeysAndRawValuesUsingBlock:
- (void (^)(int32_t key, int32_t value, BOOL *stop))block {
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- block([aKey intValue], [aValue intValue], stop);
- }];
-}
-
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field {
- NSUInteger count = _dictionary.count;
- if (count == 0) {
- return 0;
- }
-
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- __block size_t result = 0;
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- size_t msgSize = ComputeDictInt32FieldSize([aKey intValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictEnumFieldSize([aValue intValue], kMapValueFieldNumber, valueDataType);
- result += GPBComputeRawVarint32SizeForInteger(msgSize) + msgSize;
- }];
- size_t tagSize = GPBComputeWireFormatTagSize(GPBFieldNumber(field), GPBDataTypeMessage);
- result += tagSize * count;
- return result;
-}
-
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field {
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- uint32_t tag = GPBWireFormatMakeTag(GPBFieldNumber(field), GPBWireFormatLengthDelimited);
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- // Write the tag.
- [outputStream writeInt32NoTag:tag];
- // Write the size of the message.
- size_t msgSize = ComputeDictInt32FieldSize([aKey intValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictEnumFieldSize([aValue intValue], kMapValueFieldNumber, valueDataType);
- [outputStream writeInt32NoTag:(int32_t)msgSize];
- // Write the fields.
- WriteDictInt32Field(outputStream, [aKey intValue], kMapKeyFieldNumber, keyDataType);
- WriteDictEnumField(outputStream, [aValue intValue], kMapValueFieldNumber, valueDataType);
- }];
-}
-
-- (NSData *)serializedDataForUnknownValue:(int32_t)value
- forKey:(GPBGenericValue *)key
- keyDataType:(GPBDataType)keyDataType {
- size_t msgSize = ComputeDictInt32FieldSize(key->valueInt32, kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictEnumFieldSize(value, kMapValueFieldNumber, GPBDataTypeEnum);
- NSMutableData *data = [NSMutableData dataWithLength:msgSize];
- GPBCodedOutputStream *outputStream = [[GPBCodedOutputStream alloc] initWithData:data];
- WriteDictInt32Field(outputStream, key->valueInt32, kMapKeyFieldNumber, keyDataType);
- WriteDictEnumField(outputStream, value, kMapValueFieldNumber, GPBDataTypeEnum);
- [outputStream release];
- return data;
-}
-- (void)setGPBGenericValue:(GPBGenericValue *)value
- forGPBGenericValueKey:(GPBGenericValue *)key {
- [_dictionary setObject:@(value->valueEnum) forKey:@(key->valueInt32)];
-}
-
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block {
- [self enumerateKeysAndRawValuesUsingBlock:^(int32_t key, int32_t value, BOOL *stop) {
- #pragma unused(stop)
- block([NSString stringWithFormat:@"%d", key], @(value));
- }];
-}
-
-- (BOOL)getEnum:(int32_t *)value forKey:(int32_t)key {
- NSNumber *wrapped = [_dictionary objectForKey:@(key)];
- if (wrapped && value) {
- int32_t result = [wrapped intValue];
- if (!_validationFunc(result)) {
- result = kGPBUnrecognizedEnumeratorValue;
- }
- *value = result;
- }
- return (wrapped != NULL);
-}
-
-- (BOOL)getRawValue:(int32_t *)rawValue forKey:(int32_t)key {
- NSNumber *wrapped = [_dictionary objectForKey:@(key)];
- if (wrapped && rawValue) {
- *rawValue = [wrapped intValue];
- }
- return (wrapped != NULL);
-}
-
-- (void)enumerateKeysAndEnumsUsingBlock:
- (void (^)(int32_t key, int32_t value, BOOL *stop))block {
- GPBEnumValidationFunc func = _validationFunc;
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- int32_t unwrapped = [aValue intValue];
- if (!func(unwrapped)) {
- unwrapped = kGPBUnrecognizedEnumeratorValue;
- }
- block([aKey intValue], unwrapped, stop);
- }];
-}
-
-- (void)addRawEntriesFromDictionary:(GPBInt32EnumDictionary *)otherDictionary {
- if (otherDictionary) {
- [_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
- }
-}
-
-- (void)setRawValue:(int32_t)value forKey:(int32_t)key {
- [_dictionary setObject:@(value) forKey:@(key)];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
-}
-
-- (void)removeEnumForKey:(int32_t)aKey {
- [_dictionary removeObjectForKey:@(aKey)];
-}
-
-- (void)removeAll {
- [_dictionary removeAllObjects];
-}
-
-- (void)setEnum:(int32_t)value forKey:(int32_t)key {
- if (!_validationFunc(value)) {
- [NSException raise:NSInvalidArgumentException
- format:@"GPBInt32EnumDictionary: Attempt to set an unknown enum value (%d)",
- value];
- }
-
- [_dictionary setObject:@(value) forKey:@(key)];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
-}
-
-@end
-
-#pragma mark - Int32 -> Object
-
-@implementation GPBInt32ObjectDictionary {
- @package
- NSMutableDictionary *_dictionary;
-}
-
-+ (instancetype)dictionary {
- return [[[self alloc] initWithObjects:NULL forKeys:NULL count:0] autorelease];
-}
-
-+ (instancetype)dictionaryWithObject:(id)object
- forKey:(int32_t)key {
- // Cast is needed so the compiler knows what class we are invoking initWithObjects:forKeys:count:
- // on to get the type correct.
- return [[(GPBInt32ObjectDictionary*)[self alloc] initWithObjects:&object
- forKeys:&key
- count:1] autorelease];
-}
-
-+ (instancetype)dictionaryWithObjects:(const id [])objects
- forKeys:(const int32_t [])keys
- count:(NSUInteger)count {
- // Cast is needed so the compiler knows what class we are invoking initWithObjects:forKeys:count:
- // on to get the type correct.
- return [[(GPBInt32ObjectDictionary*)[self alloc] initWithObjects:objects
- forKeys:keys
- count:count] autorelease];
-}
-
-+ (instancetype)dictionaryWithDictionary:(GPBInt32ObjectDictionary *)dictionary {
- // Cast is needed so the compiler knows what class we are invoking initWithDictionary:
- // on to get the type correct.
- return [[(GPBInt32ObjectDictionary*)[self alloc] initWithDictionary:dictionary] autorelease];
-}
-
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems {
- return [[[self alloc] initWithCapacity:numItems] autorelease];
-}
-
-- (instancetype)init {
- return [self initWithObjects:NULL forKeys:NULL count:0];
-}
-
-- (instancetype)initWithObjects:(const id [])objects
- forKeys:(const int32_t [])keys
- count:(NSUInteger)count {
- self = [super init];
- if (self) {
- _dictionary = [[NSMutableDictionary alloc] init];
- if (count && objects && keys) {
- for (NSUInteger i = 0; i < count; ++i) {
- if (!objects[i]) {
- [NSException raise:NSInvalidArgumentException
- format:@"Attempting to add nil object to a Dictionary"];
- }
- [_dictionary setObject:objects[i] forKey:@(keys[i])];
- }
- }
- }
- return self;
-}
-
-- (instancetype)initWithDictionary:(GPBInt32ObjectDictionary *)dictionary {
- self = [self initWithObjects:NULL forKeys:NULL count:0];
- if (self) {
- if (dictionary) {
- [_dictionary addEntriesFromDictionary:dictionary->_dictionary];
- }
- }
- return self;
-}
-
-- (instancetype)initWithCapacity:(NSUInteger)numItems {
- #pragma unused(numItems)
- return [self initWithObjects:NULL forKeys:NULL count:0];
-}
-
-- (void)dealloc {
- NSAssert(!_autocreator,
- @"%@: Autocreator must be cleared before release, autocreator: %@",
- [self class], _autocreator);
- [_dictionary release];
- [super dealloc];
-}
-
-- (instancetype)copyWithZone:(NSZone *)zone {
- return [[GPBInt32ObjectDictionary allocWithZone:zone] initWithDictionary:self];
-}
-
-- (BOOL)isEqual:(id)other {
- if (self == other) {
- return YES;
- }
- if (![other isKindOfClass:[GPBInt32ObjectDictionary class]]) {
- return NO;
- }
- GPBInt32ObjectDictionary *otherDictionary = other;
- return [_dictionary isEqual:otherDictionary->_dictionary];
-}
-
-- (NSUInteger)hash {
- return _dictionary.count;
-}
-
-- (NSString *)description {
- return [NSString stringWithFormat:@"<%@ %p> { %@ }", [self class], self, _dictionary];
-}
-
-- (NSUInteger)count {
- return _dictionary.count;
-}
-
-- (void)enumerateKeysAndObjectsUsingBlock:
- (void (^)(int32_t key, id object, BOOL *stop))block {
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- id aObject,
- BOOL *stop) {
- block([aKey intValue], aObject, stop);
- }];
-}
-
-- (BOOL)isInitialized {
- for (GPBMessage *msg in [_dictionary objectEnumerator]) {
- if (!msg.initialized) {
- return NO;
- }
- }
- return YES;
-}
-
-- (instancetype)deepCopyWithZone:(NSZone *)zone {
- GPBInt32ObjectDictionary *newDict =
- [[GPBInt32ObjectDictionary alloc] init];
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(id aKey,
- GPBMessage *msg,
- BOOL *stop) {
- #pragma unused(stop)
- GPBMessage *copiedMsg = [msg copyWithZone:zone];
- [newDict->_dictionary setObject:copiedMsg forKey:aKey];
- [copiedMsg release];
- }];
- return newDict;
-}
-
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field {
- NSUInteger count = _dictionary.count;
- if (count == 0) {
- return 0;
- }
-
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- __block size_t result = 0;
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- id aObject,
- BOOL *stop) {
- #pragma unused(stop)
- size_t msgSize = ComputeDictInt32FieldSize([aKey intValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictObjectFieldSize(aObject, kMapValueFieldNumber, valueDataType);
- result += GPBComputeRawVarint32SizeForInteger(msgSize) + msgSize;
- }];
- size_t tagSize = GPBComputeWireFormatTagSize(GPBFieldNumber(field), GPBDataTypeMessage);
- result += tagSize * count;
- return result;
-}
-
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field {
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- uint32_t tag = GPBWireFormatMakeTag(GPBFieldNumber(field), GPBWireFormatLengthDelimited);
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- id aObject,
- BOOL *stop) {
- #pragma unused(stop)
- // Write the tag.
- [outputStream writeInt32NoTag:tag];
- // Write the size of the message.
- size_t msgSize = ComputeDictInt32FieldSize([aKey intValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictObjectFieldSize(aObject, kMapValueFieldNumber, valueDataType);
- [outputStream writeInt32NoTag:(int32_t)msgSize];
- // Write the fields.
- WriteDictInt32Field(outputStream, [aKey intValue], kMapKeyFieldNumber, keyDataType);
- WriteDictObjectField(outputStream, aObject, kMapValueFieldNumber, valueDataType);
- }];
-}
-
-- (void)setGPBGenericValue:(GPBGenericValue *)value
- forGPBGenericValueKey:(GPBGenericValue *)key {
- [_dictionary setObject:value->valueString forKey:@(key->valueInt32)];
-}
-
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block {
- [self enumerateKeysAndObjectsUsingBlock:^(int32_t key, id object, BOOL *stop) {
- #pragma unused(stop)
- block([NSString stringWithFormat:@"%d", key], object);
- }];
-}
-
-- (id)objectForKey:(int32_t)key {
- id result = [_dictionary objectForKey:@(key)];
- return result;
-}
-
-- (void)addEntriesFromDictionary:(GPBInt32ObjectDictionary *)otherDictionary {
- if (otherDictionary) {
- [_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
- }
-}
-
-- (void)setObject:(id)object forKey:(int32_t)key {
- if (!object) {
- [NSException raise:NSInvalidArgumentException
- format:@"Attempting to add nil object to a Dictionary"];
- }
- [_dictionary setObject:object forKey:@(key)];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
-}
-
-- (void)removeObjectForKey:(int32_t)aKey {
- [_dictionary removeObjectForKey:@(aKey)];
-}
-
-- (void)removeAll {
- [_dictionary removeAllObjects];
-}
-
-@end
-
-//%PDDM-EXPAND DICTIONARY_IMPL_FOR_POD_KEY(UInt64, uint64_t)
-// This block of code is generated, do not edit it directly.
-
-#pragma mark - UInt64 -> UInt32
-
-@implementation GPBUInt64UInt32Dictionary {
- @package
- NSMutableDictionary *_dictionary;
-}
-
-+ (instancetype)dictionary {
- return [[[self alloc] initWithUInt32s:NULL forKeys:NULL count:0] autorelease];
-}
-
-+ (instancetype)dictionaryWithUInt32:(uint32_t)value
- forKey:(uint64_t)key {
- // Cast is needed so the compiler knows what class we are invoking initWithUInt32s:forKeys:count:
- // on to get the type correct.
- return [[(GPBUInt64UInt32Dictionary*)[self alloc] initWithUInt32s:&value
- forKeys:&key
- count:1] autorelease];
-}
-
-+ (instancetype)dictionaryWithUInt32s:(const uint32_t [])values
- forKeys:(const uint64_t [])keys
- count:(NSUInteger)count {
- // Cast is needed so the compiler knows what class we are invoking initWithUInt32s:forKeys:count:
- // on to get the type correct.
- return [[(GPBUInt64UInt32Dictionary*)[self alloc] initWithUInt32s:values
- forKeys:keys
- count:count] autorelease];
-}
-
-+ (instancetype)dictionaryWithDictionary:(GPBUInt64UInt32Dictionary *)dictionary {
- // Cast is needed so the compiler knows what class we are invoking initWithDictionary:
- // on to get the type correct.
- return [[(GPBUInt64UInt32Dictionary*)[self alloc] initWithDictionary:dictionary] autorelease];
-}
-
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems {
- return [[[self alloc] initWithCapacity:numItems] autorelease];
-}
-
-- (instancetype)init {
- return [self initWithUInt32s:NULL forKeys:NULL count:0];
-}
-
-- (instancetype)initWithUInt32s:(const uint32_t [])values
- forKeys:(const uint64_t [])keys
- count:(NSUInteger)count {
- self = [super init];
- if (self) {
- _dictionary = [[NSMutableDictionary alloc] init];
- if (count && values && keys) {
- for (NSUInteger i = 0; i < count; ++i) {
- [_dictionary setObject:@(values[i]) forKey:@(keys[i])];
- }
- }
- }
- return self;
-}
-
-- (instancetype)initWithDictionary:(GPBUInt64UInt32Dictionary *)dictionary {
- self = [self initWithUInt32s:NULL forKeys:NULL count:0];
- if (self) {
- if (dictionary) {
- [_dictionary addEntriesFromDictionary:dictionary->_dictionary];
- }
- }
- return self;
-}
-
-- (instancetype)initWithCapacity:(NSUInteger)numItems {
- #pragma unused(numItems)
- return [self initWithUInt32s:NULL forKeys:NULL count:0];
-}
-
-- (void)dealloc {
- NSAssert(!_autocreator,
- @"%@: Autocreator must be cleared before release, autocreator: %@",
- [self class], _autocreator);
- [_dictionary release];
- [super dealloc];
-}
-
-- (instancetype)copyWithZone:(NSZone *)zone {
- return [[GPBUInt64UInt32Dictionary allocWithZone:zone] initWithDictionary:self];
-}
-
-- (BOOL)isEqual:(id)other {
- if (self == other) {
- return YES;
- }
- if (![other isKindOfClass:[GPBUInt64UInt32Dictionary class]]) {
- return NO;
- }
- GPBUInt64UInt32Dictionary *otherDictionary = other;
- return [_dictionary isEqual:otherDictionary->_dictionary];
-}
-
-- (NSUInteger)hash {
- return _dictionary.count;
-}
-
-- (NSString *)description {
- return [NSString stringWithFormat:@"<%@ %p> { %@ }", [self class], self, _dictionary];
-}
-
-- (NSUInteger)count {
- return _dictionary.count;
-}
-
-- (void)enumerateKeysAndUInt32sUsingBlock:
- (void (^)(uint64_t key, uint32_t value, BOOL *stop))block {
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- block([aKey unsignedLongLongValue], [aValue unsignedIntValue], stop);
- }];
-}
-
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field {
- NSUInteger count = _dictionary.count;
- if (count == 0) {
- return 0;
- }
-
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- __block size_t result = 0;
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- size_t msgSize = ComputeDictUInt64FieldSize([aKey unsignedLongLongValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictUInt32FieldSize([aValue unsignedIntValue], kMapValueFieldNumber, valueDataType);
- result += GPBComputeRawVarint32SizeForInteger(msgSize) + msgSize;
- }];
- size_t tagSize = GPBComputeWireFormatTagSize(GPBFieldNumber(field), GPBDataTypeMessage);
- result += tagSize * count;
- return result;
-}
-
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field {
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- uint32_t tag = GPBWireFormatMakeTag(GPBFieldNumber(field), GPBWireFormatLengthDelimited);
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- // Write the tag.
- [outputStream writeInt32NoTag:tag];
- // Write the size of the message.
- size_t msgSize = ComputeDictUInt64FieldSize([aKey unsignedLongLongValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictUInt32FieldSize([aValue unsignedIntValue], kMapValueFieldNumber, valueDataType);
- [outputStream writeInt32NoTag:(int32_t)msgSize];
- // Write the fields.
- WriteDictUInt64Field(outputStream, [aKey unsignedLongLongValue], kMapKeyFieldNumber, keyDataType);
- WriteDictUInt32Field(outputStream, [aValue unsignedIntValue], kMapValueFieldNumber, valueDataType);
- }];
-}
-
-- (void)setGPBGenericValue:(GPBGenericValue *)value
- forGPBGenericValueKey:(GPBGenericValue *)key {
- [_dictionary setObject:@(value->valueUInt32) forKey:@(key->valueUInt64)];
-}
-
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block {
- [self enumerateKeysAndUInt32sUsingBlock:^(uint64_t key, uint32_t value, BOOL *stop) {
- #pragma unused(stop)
- block([NSString stringWithFormat:@"%llu", key], [NSString stringWithFormat:@"%u", value]);
- }];
-}
-
-- (BOOL)getUInt32:(nullable uint32_t *)value forKey:(uint64_t)key {
- NSNumber *wrapped = [_dictionary objectForKey:@(key)];
- if (wrapped && value) {
- *value = [wrapped unsignedIntValue];
- }
- return (wrapped != NULL);
-}
-
-- (void)addEntriesFromDictionary:(GPBUInt64UInt32Dictionary *)otherDictionary {
- if (otherDictionary) {
- [_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
- }
-}
-
-- (void)setUInt32:(uint32_t)value forKey:(uint64_t)key {
- [_dictionary setObject:@(value) forKey:@(key)];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
-}
-
-- (void)removeUInt32ForKey:(uint64_t)aKey {
- [_dictionary removeObjectForKey:@(aKey)];
-}
-
-- (void)removeAll {
- [_dictionary removeAllObjects];
-}
-
-@end
-
-#pragma mark - UInt64 -> Int32
-
-@implementation GPBUInt64Int32Dictionary {
- @package
- NSMutableDictionary *_dictionary;
-}
-
-+ (instancetype)dictionary {
- return [[[self alloc] initWithInt32s:NULL forKeys:NULL count:0] autorelease];
-}
-
-+ (instancetype)dictionaryWithInt32:(int32_t)value
- forKey:(uint64_t)key {
- // Cast is needed so the compiler knows what class we are invoking initWithInt32s:forKeys:count:
- // on to get the type correct.
- return [[(GPBUInt64Int32Dictionary*)[self alloc] initWithInt32s:&value
- forKeys:&key
- count:1] autorelease];
-}
-
-+ (instancetype)dictionaryWithInt32s:(const int32_t [])values
- forKeys:(const uint64_t [])keys
- count:(NSUInteger)count {
- // Cast is needed so the compiler knows what class we are invoking initWithInt32s:forKeys:count:
- // on to get the type correct.
- return [[(GPBUInt64Int32Dictionary*)[self alloc] initWithInt32s:values
- forKeys:keys
- count:count] autorelease];
-}
-
-+ (instancetype)dictionaryWithDictionary:(GPBUInt64Int32Dictionary *)dictionary {
- // Cast is needed so the compiler knows what class we are invoking initWithDictionary:
- // on to get the type correct.
- return [[(GPBUInt64Int32Dictionary*)[self alloc] initWithDictionary:dictionary] autorelease];
-}
-
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems {
- return [[[self alloc] initWithCapacity:numItems] autorelease];
-}
-
-- (instancetype)init {
- return [self initWithInt32s:NULL forKeys:NULL count:0];
-}
-
-- (instancetype)initWithInt32s:(const int32_t [])values
- forKeys:(const uint64_t [])keys
- count:(NSUInteger)count {
- self = [super init];
- if (self) {
- _dictionary = [[NSMutableDictionary alloc] init];
- if (count && values && keys) {
- for (NSUInteger i = 0; i < count; ++i) {
- [_dictionary setObject:@(values[i]) forKey:@(keys[i])];
- }
- }
- }
- return self;
-}
-
-- (instancetype)initWithDictionary:(GPBUInt64Int32Dictionary *)dictionary {
- self = [self initWithInt32s:NULL forKeys:NULL count:0];
- if (self) {
- if (dictionary) {
- [_dictionary addEntriesFromDictionary:dictionary->_dictionary];
- }
- }
- return self;
-}
-
-- (instancetype)initWithCapacity:(NSUInteger)numItems {
- #pragma unused(numItems)
- return [self initWithInt32s:NULL forKeys:NULL count:0];
-}
-
-- (void)dealloc {
- NSAssert(!_autocreator,
- @"%@: Autocreator must be cleared before release, autocreator: %@",
- [self class], _autocreator);
- [_dictionary release];
- [super dealloc];
-}
-
-- (instancetype)copyWithZone:(NSZone *)zone {
- return [[GPBUInt64Int32Dictionary allocWithZone:zone] initWithDictionary:self];
-}
-
-- (BOOL)isEqual:(id)other {
- if (self == other) {
- return YES;
- }
- if (![other isKindOfClass:[GPBUInt64Int32Dictionary class]]) {
- return NO;
- }
- GPBUInt64Int32Dictionary *otherDictionary = other;
- return [_dictionary isEqual:otherDictionary->_dictionary];
-}
-
-- (NSUInteger)hash {
- return _dictionary.count;
-}
-
-- (NSString *)description {
- return [NSString stringWithFormat:@"<%@ %p> { %@ }", [self class], self, _dictionary];
-}
-
-- (NSUInteger)count {
- return _dictionary.count;
-}
-
-- (void)enumerateKeysAndInt32sUsingBlock:
- (void (^)(uint64_t key, int32_t value, BOOL *stop))block {
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- block([aKey unsignedLongLongValue], [aValue intValue], stop);
- }];
-}
-
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field {
- NSUInteger count = _dictionary.count;
- if (count == 0) {
- return 0;
- }
-
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- __block size_t result = 0;
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- size_t msgSize = ComputeDictUInt64FieldSize([aKey unsignedLongLongValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictInt32FieldSize([aValue intValue], kMapValueFieldNumber, valueDataType);
- result += GPBComputeRawVarint32SizeForInteger(msgSize) + msgSize;
- }];
- size_t tagSize = GPBComputeWireFormatTagSize(GPBFieldNumber(field), GPBDataTypeMessage);
- result += tagSize * count;
- return result;
-}
-
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field {
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- uint32_t tag = GPBWireFormatMakeTag(GPBFieldNumber(field), GPBWireFormatLengthDelimited);
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- // Write the tag.
- [outputStream writeInt32NoTag:tag];
- // Write the size of the message.
- size_t msgSize = ComputeDictUInt64FieldSize([aKey unsignedLongLongValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictInt32FieldSize([aValue intValue], kMapValueFieldNumber, valueDataType);
- [outputStream writeInt32NoTag:(int32_t)msgSize];
- // Write the fields.
- WriteDictUInt64Field(outputStream, [aKey unsignedLongLongValue], kMapKeyFieldNumber, keyDataType);
- WriteDictInt32Field(outputStream, [aValue intValue], kMapValueFieldNumber, valueDataType);
- }];
-}
-
-- (void)setGPBGenericValue:(GPBGenericValue *)value
- forGPBGenericValueKey:(GPBGenericValue *)key {
- [_dictionary setObject:@(value->valueInt32) forKey:@(key->valueUInt64)];
-}
-
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block {
- [self enumerateKeysAndInt32sUsingBlock:^(uint64_t key, int32_t value, BOOL *stop) {
- #pragma unused(stop)
- block([NSString stringWithFormat:@"%llu", key], [NSString stringWithFormat:@"%d", value]);
- }];
-}
-
-- (BOOL)getInt32:(nullable int32_t *)value forKey:(uint64_t)key {
- NSNumber *wrapped = [_dictionary objectForKey:@(key)];
- if (wrapped && value) {
- *value = [wrapped intValue];
- }
- return (wrapped != NULL);
-}
-
-- (void)addEntriesFromDictionary:(GPBUInt64Int32Dictionary *)otherDictionary {
- if (otherDictionary) {
- [_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
- }
-}
-
-- (void)setInt32:(int32_t)value forKey:(uint64_t)key {
- [_dictionary setObject:@(value) forKey:@(key)];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
-}
-
-- (void)removeInt32ForKey:(uint64_t)aKey {
- [_dictionary removeObjectForKey:@(aKey)];
-}
-
-- (void)removeAll {
- [_dictionary removeAllObjects];
-}
-
-@end
-
-#pragma mark - UInt64 -> UInt64
-
-@implementation GPBUInt64UInt64Dictionary {
- @package
- NSMutableDictionary *_dictionary;
-}
-
-+ (instancetype)dictionary {
- return [[[self alloc] initWithUInt64s:NULL forKeys:NULL count:0] autorelease];
-}
-
-+ (instancetype)dictionaryWithUInt64:(uint64_t)value
- forKey:(uint64_t)key {
- // Cast is needed so the compiler knows what class we are invoking initWithUInt64s:forKeys:count:
- // on to get the type correct.
- return [[(GPBUInt64UInt64Dictionary*)[self alloc] initWithUInt64s:&value
- forKeys:&key
- count:1] autorelease];
-}
-
-+ (instancetype)dictionaryWithUInt64s:(const uint64_t [])values
- forKeys:(const uint64_t [])keys
- count:(NSUInteger)count {
- // Cast is needed so the compiler knows what class we are invoking initWithUInt64s:forKeys:count:
- // on to get the type correct.
- return [[(GPBUInt64UInt64Dictionary*)[self alloc] initWithUInt64s:values
- forKeys:keys
- count:count] autorelease];
-}
-
-+ (instancetype)dictionaryWithDictionary:(GPBUInt64UInt64Dictionary *)dictionary {
- // Cast is needed so the compiler knows what class we are invoking initWithDictionary:
- // on to get the type correct.
- return [[(GPBUInt64UInt64Dictionary*)[self alloc] initWithDictionary:dictionary] autorelease];
-}
-
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems {
- return [[[self alloc] initWithCapacity:numItems] autorelease];
-}
-
-- (instancetype)init {
- return [self initWithUInt64s:NULL forKeys:NULL count:0];
-}
-
-- (instancetype)initWithUInt64s:(const uint64_t [])values
- forKeys:(const uint64_t [])keys
- count:(NSUInteger)count {
- self = [super init];
- if (self) {
- _dictionary = [[NSMutableDictionary alloc] init];
- if (count && values && keys) {
- for (NSUInteger i = 0; i < count; ++i) {
- [_dictionary setObject:@(values[i]) forKey:@(keys[i])];
- }
- }
- }
- return self;
-}
-
-- (instancetype)initWithDictionary:(GPBUInt64UInt64Dictionary *)dictionary {
- self = [self initWithUInt64s:NULL forKeys:NULL count:0];
- if (self) {
- if (dictionary) {
- [_dictionary addEntriesFromDictionary:dictionary->_dictionary];
- }
- }
- return self;
-}
-
-- (instancetype)initWithCapacity:(NSUInteger)numItems {
- #pragma unused(numItems)
- return [self initWithUInt64s:NULL forKeys:NULL count:0];
-}
-
-- (void)dealloc {
- NSAssert(!_autocreator,
- @"%@: Autocreator must be cleared before release, autocreator: %@",
- [self class], _autocreator);
- [_dictionary release];
- [super dealloc];
-}
-
-- (instancetype)copyWithZone:(NSZone *)zone {
- return [[GPBUInt64UInt64Dictionary allocWithZone:zone] initWithDictionary:self];
-}
-
-- (BOOL)isEqual:(id)other {
- if (self == other) {
- return YES;
- }
- if (![other isKindOfClass:[GPBUInt64UInt64Dictionary class]]) {
- return NO;
- }
- GPBUInt64UInt64Dictionary *otherDictionary = other;
- return [_dictionary isEqual:otherDictionary->_dictionary];
-}
-
-- (NSUInteger)hash {
- return _dictionary.count;
-}
-
-- (NSString *)description {
- return [NSString stringWithFormat:@"<%@ %p> { %@ }", [self class], self, _dictionary];
-}
-
-- (NSUInteger)count {
- return _dictionary.count;
-}
-
-- (void)enumerateKeysAndUInt64sUsingBlock:
- (void (^)(uint64_t key, uint64_t value, BOOL *stop))block {
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- block([aKey unsignedLongLongValue], [aValue unsignedLongLongValue], stop);
- }];
-}
-
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field {
- NSUInteger count = _dictionary.count;
- if (count == 0) {
- return 0;
- }
-
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- __block size_t result = 0;
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- size_t msgSize = ComputeDictUInt64FieldSize([aKey unsignedLongLongValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictUInt64FieldSize([aValue unsignedLongLongValue], kMapValueFieldNumber, valueDataType);
- result += GPBComputeRawVarint32SizeForInteger(msgSize) + msgSize;
- }];
- size_t tagSize = GPBComputeWireFormatTagSize(GPBFieldNumber(field), GPBDataTypeMessage);
- result += tagSize * count;
- return result;
-}
-
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field {
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- uint32_t tag = GPBWireFormatMakeTag(GPBFieldNumber(field), GPBWireFormatLengthDelimited);
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- // Write the tag.
- [outputStream writeInt32NoTag:tag];
- // Write the size of the message.
- size_t msgSize = ComputeDictUInt64FieldSize([aKey unsignedLongLongValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictUInt64FieldSize([aValue unsignedLongLongValue], kMapValueFieldNumber, valueDataType);
- [outputStream writeInt32NoTag:(int32_t)msgSize];
- // Write the fields.
- WriteDictUInt64Field(outputStream, [aKey unsignedLongLongValue], kMapKeyFieldNumber, keyDataType);
- WriteDictUInt64Field(outputStream, [aValue unsignedLongLongValue], kMapValueFieldNumber, valueDataType);
- }];
-}
-
-- (void)setGPBGenericValue:(GPBGenericValue *)value
- forGPBGenericValueKey:(GPBGenericValue *)key {
- [_dictionary setObject:@(value->valueUInt64) forKey:@(key->valueUInt64)];
-}
-
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block {
- [self enumerateKeysAndUInt64sUsingBlock:^(uint64_t key, uint64_t value, BOOL *stop) {
- #pragma unused(stop)
- block([NSString stringWithFormat:@"%llu", key], [NSString stringWithFormat:@"%llu", value]);
- }];
-}
-
-- (BOOL)getUInt64:(nullable uint64_t *)value forKey:(uint64_t)key {
- NSNumber *wrapped = [_dictionary objectForKey:@(key)];
- if (wrapped && value) {
- *value = [wrapped unsignedLongLongValue];
- }
- return (wrapped != NULL);
-}
-
-- (void)addEntriesFromDictionary:(GPBUInt64UInt64Dictionary *)otherDictionary {
- if (otherDictionary) {
- [_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
- }
-}
-
-- (void)setUInt64:(uint64_t)value forKey:(uint64_t)key {
- [_dictionary setObject:@(value) forKey:@(key)];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
-}
-
-- (void)removeUInt64ForKey:(uint64_t)aKey {
- [_dictionary removeObjectForKey:@(aKey)];
-}
-
-- (void)removeAll {
- [_dictionary removeAllObjects];
-}
-
-@end
-
-#pragma mark - UInt64 -> Int64
-
-@implementation GPBUInt64Int64Dictionary {
- @package
- NSMutableDictionary *_dictionary;
-}
-
-+ (instancetype)dictionary {
- return [[[self alloc] initWithInt64s:NULL forKeys:NULL count:0] autorelease];
-}
-
-+ (instancetype)dictionaryWithInt64:(int64_t)value
- forKey:(uint64_t)key {
- // Cast is needed so the compiler knows what class we are invoking initWithInt64s:forKeys:count:
- // on to get the type correct.
- return [[(GPBUInt64Int64Dictionary*)[self alloc] initWithInt64s:&value
- forKeys:&key
- count:1] autorelease];
-}
-
-+ (instancetype)dictionaryWithInt64s:(const int64_t [])values
- forKeys:(const uint64_t [])keys
- count:(NSUInteger)count {
- // Cast is needed so the compiler knows what class we are invoking initWithInt64s:forKeys:count:
- // on to get the type correct.
- return [[(GPBUInt64Int64Dictionary*)[self alloc] initWithInt64s:values
- forKeys:keys
- count:count] autorelease];
-}
-
-+ (instancetype)dictionaryWithDictionary:(GPBUInt64Int64Dictionary *)dictionary {
- // Cast is needed so the compiler knows what class we are invoking initWithDictionary:
- // on to get the type correct.
- return [[(GPBUInt64Int64Dictionary*)[self alloc] initWithDictionary:dictionary] autorelease];
-}
-
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems {
- return [[[self alloc] initWithCapacity:numItems] autorelease];
-}
-
-- (instancetype)init {
- return [self initWithInt64s:NULL forKeys:NULL count:0];
-}
-
-- (instancetype)initWithInt64s:(const int64_t [])values
- forKeys:(const uint64_t [])keys
- count:(NSUInteger)count {
- self = [super init];
- if (self) {
- _dictionary = [[NSMutableDictionary alloc] init];
- if (count && values && keys) {
- for (NSUInteger i = 0; i < count; ++i) {
- [_dictionary setObject:@(values[i]) forKey:@(keys[i])];
- }
- }
- }
- return self;
-}
-
-- (instancetype)initWithDictionary:(GPBUInt64Int64Dictionary *)dictionary {
- self = [self initWithInt64s:NULL forKeys:NULL count:0];
- if (self) {
- if (dictionary) {
- [_dictionary addEntriesFromDictionary:dictionary->_dictionary];
- }
- }
- return self;
-}
-
-- (instancetype)initWithCapacity:(NSUInteger)numItems {
- #pragma unused(numItems)
- return [self initWithInt64s:NULL forKeys:NULL count:0];
-}
-
-- (void)dealloc {
- NSAssert(!_autocreator,
- @"%@: Autocreator must be cleared before release, autocreator: %@",
- [self class], _autocreator);
- [_dictionary release];
- [super dealloc];
-}
-
-- (instancetype)copyWithZone:(NSZone *)zone {
- return [[GPBUInt64Int64Dictionary allocWithZone:zone] initWithDictionary:self];
-}
-
-- (BOOL)isEqual:(id)other {
- if (self == other) {
- return YES;
- }
- if (![other isKindOfClass:[GPBUInt64Int64Dictionary class]]) {
- return NO;
- }
- GPBUInt64Int64Dictionary *otherDictionary = other;
- return [_dictionary isEqual:otherDictionary->_dictionary];
-}
-
-- (NSUInteger)hash {
- return _dictionary.count;
-}
-
-- (NSString *)description {
- return [NSString stringWithFormat:@"<%@ %p> { %@ }", [self class], self, _dictionary];
-}
-
-- (NSUInteger)count {
- return _dictionary.count;
-}
-
-- (void)enumerateKeysAndInt64sUsingBlock:
- (void (^)(uint64_t key, int64_t value, BOOL *stop))block {
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- block([aKey unsignedLongLongValue], [aValue longLongValue], stop);
- }];
-}
-
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field {
- NSUInteger count = _dictionary.count;
- if (count == 0) {
- return 0;
- }
-
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- __block size_t result = 0;
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- size_t msgSize = ComputeDictUInt64FieldSize([aKey unsignedLongLongValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictInt64FieldSize([aValue longLongValue], kMapValueFieldNumber, valueDataType);
- result += GPBComputeRawVarint32SizeForInteger(msgSize) + msgSize;
- }];
- size_t tagSize = GPBComputeWireFormatTagSize(GPBFieldNumber(field), GPBDataTypeMessage);
- result += tagSize * count;
- return result;
-}
-
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field {
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- uint32_t tag = GPBWireFormatMakeTag(GPBFieldNumber(field), GPBWireFormatLengthDelimited);
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- // Write the tag.
- [outputStream writeInt32NoTag:tag];
- // Write the size of the message.
- size_t msgSize = ComputeDictUInt64FieldSize([aKey unsignedLongLongValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictInt64FieldSize([aValue longLongValue], kMapValueFieldNumber, valueDataType);
- [outputStream writeInt32NoTag:(int32_t)msgSize];
- // Write the fields.
- WriteDictUInt64Field(outputStream, [aKey unsignedLongLongValue], kMapKeyFieldNumber, keyDataType);
- WriteDictInt64Field(outputStream, [aValue longLongValue], kMapValueFieldNumber, valueDataType);
- }];
-}
-
-- (void)setGPBGenericValue:(GPBGenericValue *)value
- forGPBGenericValueKey:(GPBGenericValue *)key {
- [_dictionary setObject:@(value->valueInt64) forKey:@(key->valueUInt64)];
-}
-
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block {
- [self enumerateKeysAndInt64sUsingBlock:^(uint64_t key, int64_t value, BOOL *stop) {
- #pragma unused(stop)
- block([NSString stringWithFormat:@"%llu", key], [NSString stringWithFormat:@"%lld", value]);
- }];
-}
-
-- (BOOL)getInt64:(nullable int64_t *)value forKey:(uint64_t)key {
- NSNumber *wrapped = [_dictionary objectForKey:@(key)];
- if (wrapped && value) {
- *value = [wrapped longLongValue];
- }
- return (wrapped != NULL);
-}
-
-- (void)addEntriesFromDictionary:(GPBUInt64Int64Dictionary *)otherDictionary {
- if (otherDictionary) {
- [_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
- }
-}
-
-- (void)setInt64:(int64_t)value forKey:(uint64_t)key {
- [_dictionary setObject:@(value) forKey:@(key)];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
-}
-
-- (void)removeInt64ForKey:(uint64_t)aKey {
- [_dictionary removeObjectForKey:@(aKey)];
-}
-
-- (void)removeAll {
- [_dictionary removeAllObjects];
-}
-
-@end
-
-#pragma mark - UInt64 -> Bool
-
-@implementation GPBUInt64BoolDictionary {
- @package
- NSMutableDictionary *_dictionary;
-}
-
-+ (instancetype)dictionary {
- return [[[self alloc] initWithBools:NULL forKeys:NULL count:0] autorelease];
-}
-
-+ (instancetype)dictionaryWithBool:(BOOL)value
- forKey:(uint64_t)key {
- // Cast is needed so the compiler knows what class we are invoking initWithBools:forKeys:count:
- // on to get the type correct.
- return [[(GPBUInt64BoolDictionary*)[self alloc] initWithBools:&value
- forKeys:&key
- count:1] autorelease];
-}
-
-+ (instancetype)dictionaryWithBools:(const BOOL [])values
- forKeys:(const uint64_t [])keys
- count:(NSUInteger)count {
- // Cast is needed so the compiler knows what class we are invoking initWithBools:forKeys:count:
- // on to get the type correct.
- return [[(GPBUInt64BoolDictionary*)[self alloc] initWithBools:values
- forKeys:keys
- count:count] autorelease];
-}
-
-+ (instancetype)dictionaryWithDictionary:(GPBUInt64BoolDictionary *)dictionary {
- // Cast is needed so the compiler knows what class we are invoking initWithDictionary:
- // on to get the type correct.
- return [[(GPBUInt64BoolDictionary*)[self alloc] initWithDictionary:dictionary] autorelease];
-}
-
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems {
- return [[[self alloc] initWithCapacity:numItems] autorelease];
-}
-
-- (instancetype)init {
- return [self initWithBools:NULL forKeys:NULL count:0];
-}
-
-- (instancetype)initWithBools:(const BOOL [])values
- forKeys:(const uint64_t [])keys
- count:(NSUInteger)count {
- self = [super init];
- if (self) {
- _dictionary = [[NSMutableDictionary alloc] init];
- if (count && values && keys) {
- for (NSUInteger i = 0; i < count; ++i) {
- [_dictionary setObject:@(values[i]) forKey:@(keys[i])];
- }
- }
- }
- return self;
-}
-
-- (instancetype)initWithDictionary:(GPBUInt64BoolDictionary *)dictionary {
- self = [self initWithBools:NULL forKeys:NULL count:0];
- if (self) {
- if (dictionary) {
- [_dictionary addEntriesFromDictionary:dictionary->_dictionary];
- }
- }
- return self;
-}
-
-- (instancetype)initWithCapacity:(NSUInteger)numItems {
- #pragma unused(numItems)
- return [self initWithBools:NULL forKeys:NULL count:0];
-}
-
-- (void)dealloc {
- NSAssert(!_autocreator,
- @"%@: Autocreator must be cleared before release, autocreator: %@",
- [self class], _autocreator);
- [_dictionary release];
- [super dealloc];
-}
-
-- (instancetype)copyWithZone:(NSZone *)zone {
- return [[GPBUInt64BoolDictionary allocWithZone:zone] initWithDictionary:self];
-}
-
-- (BOOL)isEqual:(id)other {
- if (self == other) {
- return YES;
- }
- if (![other isKindOfClass:[GPBUInt64BoolDictionary class]]) {
- return NO;
- }
- GPBUInt64BoolDictionary *otherDictionary = other;
- return [_dictionary isEqual:otherDictionary->_dictionary];
-}
-
-- (NSUInteger)hash {
- return _dictionary.count;
-}
-
-- (NSString *)description {
- return [NSString stringWithFormat:@"<%@ %p> { %@ }", [self class], self, _dictionary];
-}
-
-- (NSUInteger)count {
- return _dictionary.count;
-}
-
-- (void)enumerateKeysAndBoolsUsingBlock:
- (void (^)(uint64_t key, BOOL value, BOOL *stop))block {
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- block([aKey unsignedLongLongValue], [aValue boolValue], stop);
- }];
-}
-
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field {
- NSUInteger count = _dictionary.count;
- if (count == 0) {
- return 0;
- }
-
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- __block size_t result = 0;
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- size_t msgSize = ComputeDictUInt64FieldSize([aKey unsignedLongLongValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictBoolFieldSize([aValue boolValue], kMapValueFieldNumber, valueDataType);
- result += GPBComputeRawVarint32SizeForInteger(msgSize) + msgSize;
- }];
- size_t tagSize = GPBComputeWireFormatTagSize(GPBFieldNumber(field), GPBDataTypeMessage);
- result += tagSize * count;
- return result;
-}
-
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field {
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- uint32_t tag = GPBWireFormatMakeTag(GPBFieldNumber(field), GPBWireFormatLengthDelimited);
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- // Write the tag.
- [outputStream writeInt32NoTag:tag];
- // Write the size of the message.
- size_t msgSize = ComputeDictUInt64FieldSize([aKey unsignedLongLongValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictBoolFieldSize([aValue boolValue], kMapValueFieldNumber, valueDataType);
- [outputStream writeInt32NoTag:(int32_t)msgSize];
- // Write the fields.
- WriteDictUInt64Field(outputStream, [aKey unsignedLongLongValue], kMapKeyFieldNumber, keyDataType);
- WriteDictBoolField(outputStream, [aValue boolValue], kMapValueFieldNumber, valueDataType);
- }];
-}
-
-- (void)setGPBGenericValue:(GPBGenericValue *)value
- forGPBGenericValueKey:(GPBGenericValue *)key {
- [_dictionary setObject:@(value->valueBool) forKey:@(key->valueUInt64)];
-}
-
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block {
- [self enumerateKeysAndBoolsUsingBlock:^(uint64_t key, BOOL value, BOOL *stop) {
- #pragma unused(stop)
- block([NSString stringWithFormat:@"%llu", key], (value ? @"true" : @"false"));
- }];
-}
-
-- (BOOL)getBool:(nullable BOOL *)value forKey:(uint64_t)key {
- NSNumber *wrapped = [_dictionary objectForKey:@(key)];
- if (wrapped && value) {
- *value = [wrapped boolValue];
- }
- return (wrapped != NULL);
-}
-
-- (void)addEntriesFromDictionary:(GPBUInt64BoolDictionary *)otherDictionary {
- if (otherDictionary) {
- [_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
- }
-}
-
-- (void)setBool:(BOOL)value forKey:(uint64_t)key {
- [_dictionary setObject:@(value) forKey:@(key)];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
-}
-
-- (void)removeBoolForKey:(uint64_t)aKey {
- [_dictionary removeObjectForKey:@(aKey)];
-}
-
-- (void)removeAll {
- [_dictionary removeAllObjects];
-}
-
-@end
-
-#pragma mark - UInt64 -> Float
-
-@implementation GPBUInt64FloatDictionary {
- @package
- NSMutableDictionary *_dictionary;
-}
-
-+ (instancetype)dictionary {
- return [[[self alloc] initWithFloats:NULL forKeys:NULL count:0] autorelease];
-}
-
-+ (instancetype)dictionaryWithFloat:(float)value
- forKey:(uint64_t)key {
- // Cast is needed so the compiler knows what class we are invoking initWithFloats:forKeys:count:
- // on to get the type correct.
- return [[(GPBUInt64FloatDictionary*)[self alloc] initWithFloats:&value
- forKeys:&key
- count:1] autorelease];
-}
-
-+ (instancetype)dictionaryWithFloats:(const float [])values
- forKeys:(const uint64_t [])keys
- count:(NSUInteger)count {
- // Cast is needed so the compiler knows what class we are invoking initWithFloats:forKeys:count:
- // on to get the type correct.
- return [[(GPBUInt64FloatDictionary*)[self alloc] initWithFloats:values
- forKeys:keys
- count:count] autorelease];
-}
-
-+ (instancetype)dictionaryWithDictionary:(GPBUInt64FloatDictionary *)dictionary {
- // Cast is needed so the compiler knows what class we are invoking initWithDictionary:
- // on to get the type correct.
- return [[(GPBUInt64FloatDictionary*)[self alloc] initWithDictionary:dictionary] autorelease];
-}
-
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems {
- return [[[self alloc] initWithCapacity:numItems] autorelease];
-}
-
-- (instancetype)init {
- return [self initWithFloats:NULL forKeys:NULL count:0];
-}
-
-- (instancetype)initWithFloats:(const float [])values
- forKeys:(const uint64_t [])keys
- count:(NSUInteger)count {
- self = [super init];
- if (self) {
- _dictionary = [[NSMutableDictionary alloc] init];
- if (count && values && keys) {
- for (NSUInteger i = 0; i < count; ++i) {
- [_dictionary setObject:@(values[i]) forKey:@(keys[i])];
- }
- }
- }
- return self;
-}
-
-- (instancetype)initWithDictionary:(GPBUInt64FloatDictionary *)dictionary {
- self = [self initWithFloats:NULL forKeys:NULL count:0];
- if (self) {
- if (dictionary) {
- [_dictionary addEntriesFromDictionary:dictionary->_dictionary];
- }
- }
- return self;
-}
-
-- (instancetype)initWithCapacity:(NSUInteger)numItems {
- #pragma unused(numItems)
- return [self initWithFloats:NULL forKeys:NULL count:0];
-}
-
-- (void)dealloc {
- NSAssert(!_autocreator,
- @"%@: Autocreator must be cleared before release, autocreator: %@",
- [self class], _autocreator);
- [_dictionary release];
- [super dealloc];
-}
-
-- (instancetype)copyWithZone:(NSZone *)zone {
- return [[GPBUInt64FloatDictionary allocWithZone:zone] initWithDictionary:self];
-}
-
-- (BOOL)isEqual:(id)other {
- if (self == other) {
- return YES;
- }
- if (![other isKindOfClass:[GPBUInt64FloatDictionary class]]) {
- return NO;
- }
- GPBUInt64FloatDictionary *otherDictionary = other;
- return [_dictionary isEqual:otherDictionary->_dictionary];
-}
-
-- (NSUInteger)hash {
- return _dictionary.count;
-}
-
-- (NSString *)description {
- return [NSString stringWithFormat:@"<%@ %p> { %@ }", [self class], self, _dictionary];
-}
-
-- (NSUInteger)count {
- return _dictionary.count;
-}
-
-- (void)enumerateKeysAndFloatsUsingBlock:
- (void (^)(uint64_t key, float value, BOOL *stop))block {
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- block([aKey unsignedLongLongValue], [aValue floatValue], stop);
- }];
-}
-
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field {
- NSUInteger count = _dictionary.count;
- if (count == 0) {
- return 0;
- }
-
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- __block size_t result = 0;
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- size_t msgSize = ComputeDictUInt64FieldSize([aKey unsignedLongLongValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictFloatFieldSize([aValue floatValue], kMapValueFieldNumber, valueDataType);
- result += GPBComputeRawVarint32SizeForInteger(msgSize) + msgSize;
- }];
- size_t tagSize = GPBComputeWireFormatTagSize(GPBFieldNumber(field), GPBDataTypeMessage);
- result += tagSize * count;
- return result;
-}
-
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field {
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- uint32_t tag = GPBWireFormatMakeTag(GPBFieldNumber(field), GPBWireFormatLengthDelimited);
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- // Write the tag.
- [outputStream writeInt32NoTag:tag];
- // Write the size of the message.
- size_t msgSize = ComputeDictUInt64FieldSize([aKey unsignedLongLongValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictFloatFieldSize([aValue floatValue], kMapValueFieldNumber, valueDataType);
- [outputStream writeInt32NoTag:(int32_t)msgSize];
- // Write the fields.
- WriteDictUInt64Field(outputStream, [aKey unsignedLongLongValue], kMapKeyFieldNumber, keyDataType);
- WriteDictFloatField(outputStream, [aValue floatValue], kMapValueFieldNumber, valueDataType);
- }];
-}
-
-- (void)setGPBGenericValue:(GPBGenericValue *)value
- forGPBGenericValueKey:(GPBGenericValue *)key {
- [_dictionary setObject:@(value->valueFloat) forKey:@(key->valueUInt64)];
-}
-
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block {
- [self enumerateKeysAndFloatsUsingBlock:^(uint64_t key, float value, BOOL *stop) {
- #pragma unused(stop)
- block([NSString stringWithFormat:@"%llu", key], [NSString stringWithFormat:@"%.*g", FLT_DIG, value]);
- }];
-}
-
-- (BOOL)getFloat:(nullable float *)value forKey:(uint64_t)key {
- NSNumber *wrapped = [_dictionary objectForKey:@(key)];
- if (wrapped && value) {
- *value = [wrapped floatValue];
- }
- return (wrapped != NULL);
-}
-
-- (void)addEntriesFromDictionary:(GPBUInt64FloatDictionary *)otherDictionary {
- if (otherDictionary) {
- [_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
- }
-}
-
-- (void)setFloat:(float)value forKey:(uint64_t)key {
- [_dictionary setObject:@(value) forKey:@(key)];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
-}
-
-- (void)removeFloatForKey:(uint64_t)aKey {
- [_dictionary removeObjectForKey:@(aKey)];
-}
-
-- (void)removeAll {
- [_dictionary removeAllObjects];
-}
-
-@end
-
-#pragma mark - UInt64 -> Double
-
-@implementation GPBUInt64DoubleDictionary {
- @package
- NSMutableDictionary *_dictionary;
-}
-
-+ (instancetype)dictionary {
- return [[[self alloc] initWithDoubles:NULL forKeys:NULL count:0] autorelease];
-}
-
-+ (instancetype)dictionaryWithDouble:(double)value
- forKey:(uint64_t)key {
- // Cast is needed so the compiler knows what class we are invoking initWithDoubles:forKeys:count:
- // on to get the type correct.
- return [[(GPBUInt64DoubleDictionary*)[self alloc] initWithDoubles:&value
- forKeys:&key
- count:1] autorelease];
-}
-
-+ (instancetype)dictionaryWithDoubles:(const double [])values
- forKeys:(const uint64_t [])keys
- count:(NSUInteger)count {
- // Cast is needed so the compiler knows what class we are invoking initWithDoubles:forKeys:count:
- // on to get the type correct.
- return [[(GPBUInt64DoubleDictionary*)[self alloc] initWithDoubles:values
- forKeys:keys
- count:count] autorelease];
-}
-
-+ (instancetype)dictionaryWithDictionary:(GPBUInt64DoubleDictionary *)dictionary {
- // Cast is needed so the compiler knows what class we are invoking initWithDictionary:
- // on to get the type correct.
- return [[(GPBUInt64DoubleDictionary*)[self alloc] initWithDictionary:dictionary] autorelease];
-}
-
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems {
- return [[[self alloc] initWithCapacity:numItems] autorelease];
-}
-
-- (instancetype)init {
- return [self initWithDoubles:NULL forKeys:NULL count:0];
-}
-
-- (instancetype)initWithDoubles:(const double [])values
- forKeys:(const uint64_t [])keys
- count:(NSUInteger)count {
- self = [super init];
- if (self) {
- _dictionary = [[NSMutableDictionary alloc] init];
- if (count && values && keys) {
- for (NSUInteger i = 0; i < count; ++i) {
- [_dictionary setObject:@(values[i]) forKey:@(keys[i])];
- }
- }
- }
- return self;
-}
-
-- (instancetype)initWithDictionary:(GPBUInt64DoubleDictionary *)dictionary {
- self = [self initWithDoubles:NULL forKeys:NULL count:0];
- if (self) {
- if (dictionary) {
- [_dictionary addEntriesFromDictionary:dictionary->_dictionary];
- }
- }
- return self;
-}
-
-- (instancetype)initWithCapacity:(NSUInteger)numItems {
- #pragma unused(numItems)
- return [self initWithDoubles:NULL forKeys:NULL count:0];
-}
-
-- (void)dealloc {
- NSAssert(!_autocreator,
- @"%@: Autocreator must be cleared before release, autocreator: %@",
- [self class], _autocreator);
- [_dictionary release];
- [super dealloc];
-}
-
-- (instancetype)copyWithZone:(NSZone *)zone {
- return [[GPBUInt64DoubleDictionary allocWithZone:zone] initWithDictionary:self];
-}
-
-- (BOOL)isEqual:(id)other {
- if (self == other) {
- return YES;
- }
- if (![other isKindOfClass:[GPBUInt64DoubleDictionary class]]) {
- return NO;
- }
- GPBUInt64DoubleDictionary *otherDictionary = other;
- return [_dictionary isEqual:otherDictionary->_dictionary];
-}
-
-- (NSUInteger)hash {
- return _dictionary.count;
-}
-
-- (NSString *)description {
- return [NSString stringWithFormat:@"<%@ %p> { %@ }", [self class], self, _dictionary];
-}
-
-- (NSUInteger)count {
- return _dictionary.count;
-}
-
-- (void)enumerateKeysAndDoublesUsingBlock:
- (void (^)(uint64_t key, double value, BOOL *stop))block {
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- block([aKey unsignedLongLongValue], [aValue doubleValue], stop);
- }];
-}
-
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field {
- NSUInteger count = _dictionary.count;
- if (count == 0) {
- return 0;
- }
-
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- __block size_t result = 0;
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- size_t msgSize = ComputeDictUInt64FieldSize([aKey unsignedLongLongValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictDoubleFieldSize([aValue doubleValue], kMapValueFieldNumber, valueDataType);
- result += GPBComputeRawVarint32SizeForInteger(msgSize) + msgSize;
- }];
- size_t tagSize = GPBComputeWireFormatTagSize(GPBFieldNumber(field), GPBDataTypeMessage);
- result += tagSize * count;
- return result;
-}
-
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field {
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- uint32_t tag = GPBWireFormatMakeTag(GPBFieldNumber(field), GPBWireFormatLengthDelimited);
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- // Write the tag.
- [outputStream writeInt32NoTag:tag];
- // Write the size of the message.
- size_t msgSize = ComputeDictUInt64FieldSize([aKey unsignedLongLongValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictDoubleFieldSize([aValue doubleValue], kMapValueFieldNumber, valueDataType);
- [outputStream writeInt32NoTag:(int32_t)msgSize];
- // Write the fields.
- WriteDictUInt64Field(outputStream, [aKey unsignedLongLongValue], kMapKeyFieldNumber, keyDataType);
- WriteDictDoubleField(outputStream, [aValue doubleValue], kMapValueFieldNumber, valueDataType);
- }];
-}
-
-- (void)setGPBGenericValue:(GPBGenericValue *)value
- forGPBGenericValueKey:(GPBGenericValue *)key {
- [_dictionary setObject:@(value->valueDouble) forKey:@(key->valueUInt64)];
-}
-
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block {
- [self enumerateKeysAndDoublesUsingBlock:^(uint64_t key, double value, BOOL *stop) {
- #pragma unused(stop)
- block([NSString stringWithFormat:@"%llu", key], [NSString stringWithFormat:@"%.*lg", DBL_DIG, value]);
- }];
-}
-
-- (BOOL)getDouble:(nullable double *)value forKey:(uint64_t)key {
- NSNumber *wrapped = [_dictionary objectForKey:@(key)];
- if (wrapped && value) {
- *value = [wrapped doubleValue];
- }
- return (wrapped != NULL);
-}
-
-- (void)addEntriesFromDictionary:(GPBUInt64DoubleDictionary *)otherDictionary {
- if (otherDictionary) {
- [_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
- }
-}
-
-- (void)setDouble:(double)value forKey:(uint64_t)key {
- [_dictionary setObject:@(value) forKey:@(key)];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
-}
-
-- (void)removeDoubleForKey:(uint64_t)aKey {
- [_dictionary removeObjectForKey:@(aKey)];
-}
-
-- (void)removeAll {
- [_dictionary removeAllObjects];
-}
-
-@end
-
-#pragma mark - UInt64 -> Enum
-
-@implementation GPBUInt64EnumDictionary {
- @package
- NSMutableDictionary *_dictionary;
- GPBEnumValidationFunc _validationFunc;
-}
-
-@synthesize validationFunc = _validationFunc;
-
-+ (instancetype)dictionary {
- return [[[self alloc] initWithValidationFunction:NULL
- rawValues:NULL
- forKeys:NULL
- count:0] autorelease];
-}
-
-+ (instancetype)dictionaryWithValidationFunction:(GPBEnumValidationFunc)func {
- return [[[self alloc] initWithValidationFunction:func
- rawValues:NULL
- forKeys:NULL
- count:0] autorelease];
-}
-
-+ (instancetype)dictionaryWithValidationFunction:(GPBEnumValidationFunc)func
- rawValue:(int32_t)rawValue
- forKey:(uint64_t)key {
- // Cast is needed so the compiler knows what class we are invoking initWithValues:forKeys:count:
- // on to get the type correct.
- return [[(GPBUInt64EnumDictionary*)[self alloc] initWithValidationFunction:func
- rawValues:&rawValue
- forKeys:&key
- count:1] autorelease];
-}
-
-+ (instancetype)dictionaryWithValidationFunction:(GPBEnumValidationFunc)func
- rawValues:(const int32_t [])rawValues
- forKeys:(const uint64_t [])keys
- count:(NSUInteger)count {
- // Cast is needed so the compiler knows what class we are invoking initWithValues:forKeys:count:
- // on to get the type correct.
- return [[(GPBUInt64EnumDictionary*)[self alloc] initWithValidationFunction:func
- rawValues:rawValues
- forKeys:keys
- count:count] autorelease];
-}
-
-+ (instancetype)dictionaryWithDictionary:(GPBUInt64EnumDictionary *)dictionary {
- // Cast is needed so the compiler knows what class we are invoking initWithValues:forKeys:count:
- // on to get the type correct.
- return [[(GPBUInt64EnumDictionary*)[self alloc] initWithDictionary:dictionary] autorelease];
-}
-
-+ (instancetype)dictionaryWithValidationFunction:(GPBEnumValidationFunc)func
- capacity:(NSUInteger)numItems {
- return [[[self alloc] initWithValidationFunction:func capacity:numItems] autorelease];
-}
-
-- (instancetype)init {
- return [self initWithValidationFunction:NULL rawValues:NULL forKeys:NULL count:0];
-}
-
-- (instancetype)initWithValidationFunction:(GPBEnumValidationFunc)func {
- return [self initWithValidationFunction:func rawValues:NULL forKeys:NULL count:0];
-}
-
-- (instancetype)initWithValidationFunction:(GPBEnumValidationFunc)func
- rawValues:(const int32_t [])rawValues
- forKeys:(const uint64_t [])keys
- count:(NSUInteger)count {
- self = [super init];
- if (self) {
- _dictionary = [[NSMutableDictionary alloc] init];
- _validationFunc = (func != NULL ? func : DictDefault_IsValidValue);
- if (count && rawValues && keys) {
- for (NSUInteger i = 0; i < count; ++i) {
- [_dictionary setObject:@(rawValues[i]) forKey:@(keys[i])];
- }
- }
- }
- return self;
-}
-
-- (instancetype)initWithDictionary:(GPBUInt64EnumDictionary *)dictionary {
- self = [self initWithValidationFunction:dictionary.validationFunc
- rawValues:NULL
- forKeys:NULL
- count:0];
- if (self) {
- if (dictionary) {
- [_dictionary addEntriesFromDictionary:dictionary->_dictionary];
- }
- }
- return self;
-}
-
-- (instancetype)initWithValidationFunction:(GPBEnumValidationFunc)func
- capacity:(NSUInteger)numItems {
- #pragma unused(numItems)
- return [self initWithValidationFunction:func rawValues:NULL forKeys:NULL count:0];
-}
-
-- (void)dealloc {
- NSAssert(!_autocreator,
- @"%@: Autocreator must be cleared before release, autocreator: %@",
- [self class], _autocreator);
- [_dictionary release];
- [super dealloc];
-}
-
-- (instancetype)copyWithZone:(NSZone *)zone {
- return [[GPBUInt64EnumDictionary allocWithZone:zone] initWithDictionary:self];
-}
-
-- (BOOL)isEqual:(id)other {
- if (self == other) {
- return YES;
- }
- if (![other isKindOfClass:[GPBUInt64EnumDictionary class]]) {
- return NO;
- }
- GPBUInt64EnumDictionary *otherDictionary = other;
- return [_dictionary isEqual:otherDictionary->_dictionary];
-}
-
-- (NSUInteger)hash {
- return _dictionary.count;
-}
-
-- (NSString *)description {
- return [NSString stringWithFormat:@"<%@ %p> { %@ }", [self class], self, _dictionary];
-}
-
-- (NSUInteger)count {
- return _dictionary.count;
-}
-
-- (void)enumerateKeysAndRawValuesUsingBlock:
- (void (^)(uint64_t key, int32_t value, BOOL *stop))block {
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- block([aKey unsignedLongLongValue], [aValue intValue], stop);
- }];
-}
-
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field {
- NSUInteger count = _dictionary.count;
- if (count == 0) {
- return 0;
- }
-
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- __block size_t result = 0;
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- size_t msgSize = ComputeDictUInt64FieldSize([aKey unsignedLongLongValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictEnumFieldSize([aValue intValue], kMapValueFieldNumber, valueDataType);
- result += GPBComputeRawVarint32SizeForInteger(msgSize) + msgSize;
- }];
- size_t tagSize = GPBComputeWireFormatTagSize(GPBFieldNumber(field), GPBDataTypeMessage);
- result += tagSize * count;
- return result;
-}
-
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field {
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- uint32_t tag = GPBWireFormatMakeTag(GPBFieldNumber(field), GPBWireFormatLengthDelimited);
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- // Write the tag.
- [outputStream writeInt32NoTag:tag];
- // Write the size of the message.
- size_t msgSize = ComputeDictUInt64FieldSize([aKey unsignedLongLongValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictEnumFieldSize([aValue intValue], kMapValueFieldNumber, valueDataType);
- [outputStream writeInt32NoTag:(int32_t)msgSize];
- // Write the fields.
- WriteDictUInt64Field(outputStream, [aKey unsignedLongLongValue], kMapKeyFieldNumber, keyDataType);
- WriteDictEnumField(outputStream, [aValue intValue], kMapValueFieldNumber, valueDataType);
- }];
-}
-
-- (NSData *)serializedDataForUnknownValue:(int32_t)value
- forKey:(GPBGenericValue *)key
- keyDataType:(GPBDataType)keyDataType {
- size_t msgSize = ComputeDictUInt64FieldSize(key->valueUInt64, kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictEnumFieldSize(value, kMapValueFieldNumber, GPBDataTypeEnum);
- NSMutableData *data = [NSMutableData dataWithLength:msgSize];
- GPBCodedOutputStream *outputStream = [[GPBCodedOutputStream alloc] initWithData:data];
- WriteDictUInt64Field(outputStream, key->valueUInt64, kMapKeyFieldNumber, keyDataType);
- WriteDictEnumField(outputStream, value, kMapValueFieldNumber, GPBDataTypeEnum);
- [outputStream release];
- return data;
-}
-- (void)setGPBGenericValue:(GPBGenericValue *)value
- forGPBGenericValueKey:(GPBGenericValue *)key {
- [_dictionary setObject:@(value->valueEnum) forKey:@(key->valueUInt64)];
-}
-
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block {
- [self enumerateKeysAndRawValuesUsingBlock:^(uint64_t key, int32_t value, BOOL *stop) {
- #pragma unused(stop)
- block([NSString stringWithFormat:@"%llu", key], @(value));
- }];
-}
-
-- (BOOL)getEnum:(int32_t *)value forKey:(uint64_t)key {
- NSNumber *wrapped = [_dictionary objectForKey:@(key)];
- if (wrapped && value) {
- int32_t result = [wrapped intValue];
- if (!_validationFunc(result)) {
- result = kGPBUnrecognizedEnumeratorValue;
- }
- *value = result;
- }
- return (wrapped != NULL);
-}
-
-- (BOOL)getRawValue:(int32_t *)rawValue forKey:(uint64_t)key {
- NSNumber *wrapped = [_dictionary objectForKey:@(key)];
- if (wrapped && rawValue) {
- *rawValue = [wrapped intValue];
- }
- return (wrapped != NULL);
-}
-
-- (void)enumerateKeysAndEnumsUsingBlock:
- (void (^)(uint64_t key, int32_t value, BOOL *stop))block {
- GPBEnumValidationFunc func = _validationFunc;
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- int32_t unwrapped = [aValue intValue];
- if (!func(unwrapped)) {
- unwrapped = kGPBUnrecognizedEnumeratorValue;
- }
- block([aKey unsignedLongLongValue], unwrapped, stop);
- }];
-}
-
-- (void)addRawEntriesFromDictionary:(GPBUInt64EnumDictionary *)otherDictionary {
- if (otherDictionary) {
- [_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
- }
-}
-
-- (void)setRawValue:(int32_t)value forKey:(uint64_t)key {
- [_dictionary setObject:@(value) forKey:@(key)];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
-}
-
-- (void)removeEnumForKey:(uint64_t)aKey {
- [_dictionary removeObjectForKey:@(aKey)];
-}
-
-- (void)removeAll {
- [_dictionary removeAllObjects];
-}
-
-- (void)setEnum:(int32_t)value forKey:(uint64_t)key {
- if (!_validationFunc(value)) {
- [NSException raise:NSInvalidArgumentException
- format:@"GPBUInt64EnumDictionary: Attempt to set an unknown enum value (%d)",
- value];
- }
-
- [_dictionary setObject:@(value) forKey:@(key)];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
-}
-
-@end
-
-#pragma mark - UInt64 -> Object
-
-@implementation GPBUInt64ObjectDictionary {
- @package
- NSMutableDictionary *_dictionary;
-}
-
-+ (instancetype)dictionary {
- return [[[self alloc] initWithObjects:NULL forKeys:NULL count:0] autorelease];
-}
-
-+ (instancetype)dictionaryWithObject:(id)object
- forKey:(uint64_t)key {
- // Cast is needed so the compiler knows what class we are invoking initWithObjects:forKeys:count:
- // on to get the type correct.
- return [[(GPBUInt64ObjectDictionary*)[self alloc] initWithObjects:&object
- forKeys:&key
- count:1] autorelease];
-}
-
-+ (instancetype)dictionaryWithObjects:(const id [])objects
- forKeys:(const uint64_t [])keys
- count:(NSUInteger)count {
- // Cast is needed so the compiler knows what class we are invoking initWithObjects:forKeys:count:
- // on to get the type correct.
- return [[(GPBUInt64ObjectDictionary*)[self alloc] initWithObjects:objects
- forKeys:keys
- count:count] autorelease];
-}
-
-+ (instancetype)dictionaryWithDictionary:(GPBUInt64ObjectDictionary *)dictionary {
- // Cast is needed so the compiler knows what class we are invoking initWithDictionary:
- // on to get the type correct.
- return [[(GPBUInt64ObjectDictionary*)[self alloc] initWithDictionary:dictionary] autorelease];
-}
-
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems {
- return [[[self alloc] initWithCapacity:numItems] autorelease];
-}
-
-- (instancetype)init {
- return [self initWithObjects:NULL forKeys:NULL count:0];
-}
-
-- (instancetype)initWithObjects:(const id [])objects
- forKeys:(const uint64_t [])keys
- count:(NSUInteger)count {
- self = [super init];
- if (self) {
- _dictionary = [[NSMutableDictionary alloc] init];
- if (count && objects && keys) {
- for (NSUInteger i = 0; i < count; ++i) {
- if (!objects[i]) {
- [NSException raise:NSInvalidArgumentException
- format:@"Attempting to add nil object to a Dictionary"];
- }
- [_dictionary setObject:objects[i] forKey:@(keys[i])];
- }
- }
- }
- return self;
-}
-
-- (instancetype)initWithDictionary:(GPBUInt64ObjectDictionary *)dictionary {
- self = [self initWithObjects:NULL forKeys:NULL count:0];
- if (self) {
- if (dictionary) {
- [_dictionary addEntriesFromDictionary:dictionary->_dictionary];
- }
- }
- return self;
-}
-
-- (instancetype)initWithCapacity:(NSUInteger)numItems {
- #pragma unused(numItems)
- return [self initWithObjects:NULL forKeys:NULL count:0];
-}
-
-- (void)dealloc {
- NSAssert(!_autocreator,
- @"%@: Autocreator must be cleared before release, autocreator: %@",
- [self class], _autocreator);
- [_dictionary release];
- [super dealloc];
-}
-
-- (instancetype)copyWithZone:(NSZone *)zone {
- return [[GPBUInt64ObjectDictionary allocWithZone:zone] initWithDictionary:self];
-}
-
-- (BOOL)isEqual:(id)other {
- if (self == other) {
- return YES;
- }
- if (![other isKindOfClass:[GPBUInt64ObjectDictionary class]]) {
- return NO;
- }
- GPBUInt64ObjectDictionary *otherDictionary = other;
- return [_dictionary isEqual:otherDictionary->_dictionary];
-}
-
-- (NSUInteger)hash {
- return _dictionary.count;
-}
-
-- (NSString *)description {
- return [NSString stringWithFormat:@"<%@ %p> { %@ }", [self class], self, _dictionary];
-}
-
-- (NSUInteger)count {
- return _dictionary.count;
-}
-
-- (void)enumerateKeysAndObjectsUsingBlock:
- (void (^)(uint64_t key, id object, BOOL *stop))block {
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- id aObject,
- BOOL *stop) {
- block([aKey unsignedLongLongValue], aObject, stop);
- }];
-}
-
-- (BOOL)isInitialized {
- for (GPBMessage *msg in [_dictionary objectEnumerator]) {
- if (!msg.initialized) {
- return NO;
- }
- }
- return YES;
-}
-
-- (instancetype)deepCopyWithZone:(NSZone *)zone {
- GPBUInt64ObjectDictionary *newDict =
- [[GPBUInt64ObjectDictionary alloc] init];
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(id aKey,
- GPBMessage *msg,
- BOOL *stop) {
- #pragma unused(stop)
- GPBMessage *copiedMsg = [msg copyWithZone:zone];
- [newDict->_dictionary setObject:copiedMsg forKey:aKey];
- [copiedMsg release];
- }];
- return newDict;
-}
-
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field {
- NSUInteger count = _dictionary.count;
- if (count == 0) {
- return 0;
- }
-
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- __block size_t result = 0;
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- id aObject,
- BOOL *stop) {
- #pragma unused(stop)
- size_t msgSize = ComputeDictUInt64FieldSize([aKey unsignedLongLongValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictObjectFieldSize(aObject, kMapValueFieldNumber, valueDataType);
- result += GPBComputeRawVarint32SizeForInteger(msgSize) + msgSize;
- }];
- size_t tagSize = GPBComputeWireFormatTagSize(GPBFieldNumber(field), GPBDataTypeMessage);
- result += tagSize * count;
- return result;
-}
-
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field {
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- uint32_t tag = GPBWireFormatMakeTag(GPBFieldNumber(field), GPBWireFormatLengthDelimited);
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- id aObject,
- BOOL *stop) {
- #pragma unused(stop)
- // Write the tag.
- [outputStream writeInt32NoTag:tag];
- // Write the size of the message.
- size_t msgSize = ComputeDictUInt64FieldSize([aKey unsignedLongLongValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictObjectFieldSize(aObject, kMapValueFieldNumber, valueDataType);
- [outputStream writeInt32NoTag:(int32_t)msgSize];
- // Write the fields.
- WriteDictUInt64Field(outputStream, [aKey unsignedLongLongValue], kMapKeyFieldNumber, keyDataType);
- WriteDictObjectField(outputStream, aObject, kMapValueFieldNumber, valueDataType);
- }];
-}
-
-- (void)setGPBGenericValue:(GPBGenericValue *)value
- forGPBGenericValueKey:(GPBGenericValue *)key {
- [_dictionary setObject:value->valueString forKey:@(key->valueUInt64)];
-}
-
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block {
- [self enumerateKeysAndObjectsUsingBlock:^(uint64_t key, id object, BOOL *stop) {
- #pragma unused(stop)
- block([NSString stringWithFormat:@"%llu", key], object);
- }];
-}
-
-- (id)objectForKey:(uint64_t)key {
- id result = [_dictionary objectForKey:@(key)];
- return result;
-}
-
-- (void)addEntriesFromDictionary:(GPBUInt64ObjectDictionary *)otherDictionary {
- if (otherDictionary) {
- [_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
- }
-}
-
-- (void)setObject:(id)object forKey:(uint64_t)key {
- if (!object) {
- [NSException raise:NSInvalidArgumentException
- format:@"Attempting to add nil object to a Dictionary"];
- }
- [_dictionary setObject:object forKey:@(key)];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
-}
-
-- (void)removeObjectForKey:(uint64_t)aKey {
- [_dictionary removeObjectForKey:@(aKey)];
-}
-
-- (void)removeAll {
- [_dictionary removeAllObjects];
-}
-
-@end
-
-//%PDDM-EXPAND DICTIONARY_IMPL_FOR_POD_KEY(Int64, int64_t)
-// This block of code is generated, do not edit it directly.
-
-#pragma mark - Int64 -> UInt32
-
-@implementation GPBInt64UInt32Dictionary {
- @package
- NSMutableDictionary *_dictionary;
-}
-
-+ (instancetype)dictionary {
- return [[[self alloc] initWithUInt32s:NULL forKeys:NULL count:0] autorelease];
-}
-
-+ (instancetype)dictionaryWithUInt32:(uint32_t)value
- forKey:(int64_t)key {
- // Cast is needed so the compiler knows what class we are invoking initWithUInt32s:forKeys:count:
- // on to get the type correct.
- return [[(GPBInt64UInt32Dictionary*)[self alloc] initWithUInt32s:&value
- forKeys:&key
- count:1] autorelease];
-}
-
-+ (instancetype)dictionaryWithUInt32s:(const uint32_t [])values
- forKeys:(const int64_t [])keys
- count:(NSUInteger)count {
- // Cast is needed so the compiler knows what class we are invoking initWithUInt32s:forKeys:count:
- // on to get the type correct.
- return [[(GPBInt64UInt32Dictionary*)[self alloc] initWithUInt32s:values
- forKeys:keys
- count:count] autorelease];
-}
-
-+ (instancetype)dictionaryWithDictionary:(GPBInt64UInt32Dictionary *)dictionary {
- // Cast is needed so the compiler knows what class we are invoking initWithDictionary:
- // on to get the type correct.
- return [[(GPBInt64UInt32Dictionary*)[self alloc] initWithDictionary:dictionary] autorelease];
-}
-
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems {
- return [[[self alloc] initWithCapacity:numItems] autorelease];
-}
-
-- (instancetype)init {
- return [self initWithUInt32s:NULL forKeys:NULL count:0];
-}
-
-- (instancetype)initWithUInt32s:(const uint32_t [])values
- forKeys:(const int64_t [])keys
- count:(NSUInteger)count {
- self = [super init];
- if (self) {
- _dictionary = [[NSMutableDictionary alloc] init];
- if (count && values && keys) {
- for (NSUInteger i = 0; i < count; ++i) {
- [_dictionary setObject:@(values[i]) forKey:@(keys[i])];
- }
- }
- }
- return self;
-}
-
-- (instancetype)initWithDictionary:(GPBInt64UInt32Dictionary *)dictionary {
- self = [self initWithUInt32s:NULL forKeys:NULL count:0];
- if (self) {
- if (dictionary) {
- [_dictionary addEntriesFromDictionary:dictionary->_dictionary];
- }
- }
- return self;
-}
-
-- (instancetype)initWithCapacity:(NSUInteger)numItems {
- #pragma unused(numItems)
- return [self initWithUInt32s:NULL forKeys:NULL count:0];
-}
-
-- (void)dealloc {
- NSAssert(!_autocreator,
- @"%@: Autocreator must be cleared before release, autocreator: %@",
- [self class], _autocreator);
- [_dictionary release];
- [super dealloc];
-}
-
-- (instancetype)copyWithZone:(NSZone *)zone {
- return [[GPBInt64UInt32Dictionary allocWithZone:zone] initWithDictionary:self];
-}
-
-- (BOOL)isEqual:(id)other {
- if (self == other) {
- return YES;
- }
- if (![other isKindOfClass:[GPBInt64UInt32Dictionary class]]) {
- return NO;
- }
- GPBInt64UInt32Dictionary *otherDictionary = other;
- return [_dictionary isEqual:otherDictionary->_dictionary];
-}
-
-- (NSUInteger)hash {
- return _dictionary.count;
-}
-
-- (NSString *)description {
- return [NSString stringWithFormat:@"<%@ %p> { %@ }", [self class], self, _dictionary];
-}
-
-- (NSUInteger)count {
- return _dictionary.count;
-}
-
-- (void)enumerateKeysAndUInt32sUsingBlock:
- (void (^)(int64_t key, uint32_t value, BOOL *stop))block {
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- block([aKey longLongValue], [aValue unsignedIntValue], stop);
- }];
-}
-
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field {
- NSUInteger count = _dictionary.count;
- if (count == 0) {
- return 0;
- }
-
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- __block size_t result = 0;
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- size_t msgSize = ComputeDictInt64FieldSize([aKey longLongValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictUInt32FieldSize([aValue unsignedIntValue], kMapValueFieldNumber, valueDataType);
- result += GPBComputeRawVarint32SizeForInteger(msgSize) + msgSize;
- }];
- size_t tagSize = GPBComputeWireFormatTagSize(GPBFieldNumber(field), GPBDataTypeMessage);
- result += tagSize * count;
- return result;
-}
-
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field {
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- uint32_t tag = GPBWireFormatMakeTag(GPBFieldNumber(field), GPBWireFormatLengthDelimited);
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- // Write the tag.
- [outputStream writeInt32NoTag:tag];
- // Write the size of the message.
- size_t msgSize = ComputeDictInt64FieldSize([aKey longLongValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictUInt32FieldSize([aValue unsignedIntValue], kMapValueFieldNumber, valueDataType);
- [outputStream writeInt32NoTag:(int32_t)msgSize];
- // Write the fields.
- WriteDictInt64Field(outputStream, [aKey longLongValue], kMapKeyFieldNumber, keyDataType);
- WriteDictUInt32Field(outputStream, [aValue unsignedIntValue], kMapValueFieldNumber, valueDataType);
- }];
-}
-
-- (void)setGPBGenericValue:(GPBGenericValue *)value
- forGPBGenericValueKey:(GPBGenericValue *)key {
- [_dictionary setObject:@(value->valueUInt32) forKey:@(key->valueInt64)];
-}
-
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block {
- [self enumerateKeysAndUInt32sUsingBlock:^(int64_t key, uint32_t value, BOOL *stop) {
- #pragma unused(stop)
- block([NSString stringWithFormat:@"%lld", key], [NSString stringWithFormat:@"%u", value]);
- }];
-}
-
-- (BOOL)getUInt32:(nullable uint32_t *)value forKey:(int64_t)key {
- NSNumber *wrapped = [_dictionary objectForKey:@(key)];
- if (wrapped && value) {
- *value = [wrapped unsignedIntValue];
- }
- return (wrapped != NULL);
-}
-
-- (void)addEntriesFromDictionary:(GPBInt64UInt32Dictionary *)otherDictionary {
- if (otherDictionary) {
- [_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
- }
-}
-
-- (void)setUInt32:(uint32_t)value forKey:(int64_t)key {
- [_dictionary setObject:@(value) forKey:@(key)];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
-}
-
-- (void)removeUInt32ForKey:(int64_t)aKey {
- [_dictionary removeObjectForKey:@(aKey)];
-}
-
-- (void)removeAll {
- [_dictionary removeAllObjects];
-}
-
-@end
-
-#pragma mark - Int64 -> Int32
-
-@implementation GPBInt64Int32Dictionary {
- @package
- NSMutableDictionary *_dictionary;
-}
-
-+ (instancetype)dictionary {
- return [[[self alloc] initWithInt32s:NULL forKeys:NULL count:0] autorelease];
-}
-
-+ (instancetype)dictionaryWithInt32:(int32_t)value
- forKey:(int64_t)key {
- // Cast is needed so the compiler knows what class we are invoking initWithInt32s:forKeys:count:
- // on to get the type correct.
- return [[(GPBInt64Int32Dictionary*)[self alloc] initWithInt32s:&value
- forKeys:&key
- count:1] autorelease];
-}
-
-+ (instancetype)dictionaryWithInt32s:(const int32_t [])values
- forKeys:(const int64_t [])keys
- count:(NSUInteger)count {
- // Cast is needed so the compiler knows what class we are invoking initWithInt32s:forKeys:count:
- // on to get the type correct.
- return [[(GPBInt64Int32Dictionary*)[self alloc] initWithInt32s:values
- forKeys:keys
- count:count] autorelease];
-}
-
-+ (instancetype)dictionaryWithDictionary:(GPBInt64Int32Dictionary *)dictionary {
- // Cast is needed so the compiler knows what class we are invoking initWithDictionary:
- // on to get the type correct.
- return [[(GPBInt64Int32Dictionary*)[self alloc] initWithDictionary:dictionary] autorelease];
-}
-
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems {
- return [[[self alloc] initWithCapacity:numItems] autorelease];
-}
-
-- (instancetype)init {
- return [self initWithInt32s:NULL forKeys:NULL count:0];
-}
-
-- (instancetype)initWithInt32s:(const int32_t [])values
- forKeys:(const int64_t [])keys
- count:(NSUInteger)count {
- self = [super init];
- if (self) {
- _dictionary = [[NSMutableDictionary alloc] init];
- if (count && values && keys) {
- for (NSUInteger i = 0; i < count; ++i) {
- [_dictionary setObject:@(values[i]) forKey:@(keys[i])];
- }
- }
- }
- return self;
-}
-
-- (instancetype)initWithDictionary:(GPBInt64Int32Dictionary *)dictionary {
- self = [self initWithInt32s:NULL forKeys:NULL count:0];
- if (self) {
- if (dictionary) {
- [_dictionary addEntriesFromDictionary:dictionary->_dictionary];
- }
- }
- return self;
-}
-
-- (instancetype)initWithCapacity:(NSUInteger)numItems {
- #pragma unused(numItems)
- return [self initWithInt32s:NULL forKeys:NULL count:0];
-}
-
-- (void)dealloc {
- NSAssert(!_autocreator,
- @"%@: Autocreator must be cleared before release, autocreator: %@",
- [self class], _autocreator);
- [_dictionary release];
- [super dealloc];
-}
-
-- (instancetype)copyWithZone:(NSZone *)zone {
- return [[GPBInt64Int32Dictionary allocWithZone:zone] initWithDictionary:self];
-}
-
-- (BOOL)isEqual:(id)other {
- if (self == other) {
- return YES;
- }
- if (![other isKindOfClass:[GPBInt64Int32Dictionary class]]) {
- return NO;
- }
- GPBInt64Int32Dictionary *otherDictionary = other;
- return [_dictionary isEqual:otherDictionary->_dictionary];
-}
-
-- (NSUInteger)hash {
- return _dictionary.count;
-}
-
-- (NSString *)description {
- return [NSString stringWithFormat:@"<%@ %p> { %@ }", [self class], self, _dictionary];
-}
-
-- (NSUInteger)count {
- return _dictionary.count;
-}
-
-- (void)enumerateKeysAndInt32sUsingBlock:
- (void (^)(int64_t key, int32_t value, BOOL *stop))block {
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- block([aKey longLongValue], [aValue intValue], stop);
- }];
-}
-
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field {
- NSUInteger count = _dictionary.count;
- if (count == 0) {
- return 0;
- }
-
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- __block size_t result = 0;
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- size_t msgSize = ComputeDictInt64FieldSize([aKey longLongValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictInt32FieldSize([aValue intValue], kMapValueFieldNumber, valueDataType);
- result += GPBComputeRawVarint32SizeForInteger(msgSize) + msgSize;
- }];
- size_t tagSize = GPBComputeWireFormatTagSize(GPBFieldNumber(field), GPBDataTypeMessage);
- result += tagSize * count;
- return result;
-}
-
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field {
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- uint32_t tag = GPBWireFormatMakeTag(GPBFieldNumber(field), GPBWireFormatLengthDelimited);
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- // Write the tag.
- [outputStream writeInt32NoTag:tag];
- // Write the size of the message.
- size_t msgSize = ComputeDictInt64FieldSize([aKey longLongValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictInt32FieldSize([aValue intValue], kMapValueFieldNumber, valueDataType);
- [outputStream writeInt32NoTag:(int32_t)msgSize];
- // Write the fields.
- WriteDictInt64Field(outputStream, [aKey longLongValue], kMapKeyFieldNumber, keyDataType);
- WriteDictInt32Field(outputStream, [aValue intValue], kMapValueFieldNumber, valueDataType);
- }];
-}
-
-- (void)setGPBGenericValue:(GPBGenericValue *)value
- forGPBGenericValueKey:(GPBGenericValue *)key {
- [_dictionary setObject:@(value->valueInt32) forKey:@(key->valueInt64)];
-}
-
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block {
- [self enumerateKeysAndInt32sUsingBlock:^(int64_t key, int32_t value, BOOL *stop) {
- #pragma unused(stop)
- block([NSString stringWithFormat:@"%lld", key], [NSString stringWithFormat:@"%d", value]);
- }];
-}
-
-- (BOOL)getInt32:(nullable int32_t *)value forKey:(int64_t)key {
- NSNumber *wrapped = [_dictionary objectForKey:@(key)];
- if (wrapped && value) {
- *value = [wrapped intValue];
- }
- return (wrapped != NULL);
-}
-
-- (void)addEntriesFromDictionary:(GPBInt64Int32Dictionary *)otherDictionary {
- if (otherDictionary) {
- [_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
- }
-}
-
-- (void)setInt32:(int32_t)value forKey:(int64_t)key {
- [_dictionary setObject:@(value) forKey:@(key)];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
-}
-
-- (void)removeInt32ForKey:(int64_t)aKey {
- [_dictionary removeObjectForKey:@(aKey)];
-}
-
-- (void)removeAll {
- [_dictionary removeAllObjects];
-}
-
-@end
-
-#pragma mark - Int64 -> UInt64
-
-@implementation GPBInt64UInt64Dictionary {
- @package
- NSMutableDictionary *_dictionary;
-}
-
-+ (instancetype)dictionary {
- return [[[self alloc] initWithUInt64s:NULL forKeys:NULL count:0] autorelease];
-}
-
-+ (instancetype)dictionaryWithUInt64:(uint64_t)value
- forKey:(int64_t)key {
- // Cast is needed so the compiler knows what class we are invoking initWithUInt64s:forKeys:count:
- // on to get the type correct.
- return [[(GPBInt64UInt64Dictionary*)[self alloc] initWithUInt64s:&value
- forKeys:&key
- count:1] autorelease];
-}
-
-+ (instancetype)dictionaryWithUInt64s:(const uint64_t [])values
- forKeys:(const int64_t [])keys
- count:(NSUInteger)count {
- // Cast is needed so the compiler knows what class we are invoking initWithUInt64s:forKeys:count:
- // on to get the type correct.
- return [[(GPBInt64UInt64Dictionary*)[self alloc] initWithUInt64s:values
- forKeys:keys
- count:count] autorelease];
-}
-
-+ (instancetype)dictionaryWithDictionary:(GPBInt64UInt64Dictionary *)dictionary {
- // Cast is needed so the compiler knows what class we are invoking initWithDictionary:
- // on to get the type correct.
- return [[(GPBInt64UInt64Dictionary*)[self alloc] initWithDictionary:dictionary] autorelease];
-}
-
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems {
- return [[[self alloc] initWithCapacity:numItems] autorelease];
-}
-
-- (instancetype)init {
- return [self initWithUInt64s:NULL forKeys:NULL count:0];
-}
-
-- (instancetype)initWithUInt64s:(const uint64_t [])values
- forKeys:(const int64_t [])keys
- count:(NSUInteger)count {
- self = [super init];
- if (self) {
- _dictionary = [[NSMutableDictionary alloc] init];
- if (count && values && keys) {
- for (NSUInteger i = 0; i < count; ++i) {
- [_dictionary setObject:@(values[i]) forKey:@(keys[i])];
- }
- }
- }
- return self;
-}
-
-- (instancetype)initWithDictionary:(GPBInt64UInt64Dictionary *)dictionary {
- self = [self initWithUInt64s:NULL forKeys:NULL count:0];
- if (self) {
- if (dictionary) {
- [_dictionary addEntriesFromDictionary:dictionary->_dictionary];
- }
- }
- return self;
-}
-
-- (instancetype)initWithCapacity:(NSUInteger)numItems {
- #pragma unused(numItems)
- return [self initWithUInt64s:NULL forKeys:NULL count:0];
-}
-
-- (void)dealloc {
- NSAssert(!_autocreator,
- @"%@: Autocreator must be cleared before release, autocreator: %@",
- [self class], _autocreator);
- [_dictionary release];
- [super dealloc];
-}
-
-- (instancetype)copyWithZone:(NSZone *)zone {
- return [[GPBInt64UInt64Dictionary allocWithZone:zone] initWithDictionary:self];
-}
-
-- (BOOL)isEqual:(id)other {
- if (self == other) {
- return YES;
- }
- if (![other isKindOfClass:[GPBInt64UInt64Dictionary class]]) {
- return NO;
- }
- GPBInt64UInt64Dictionary *otherDictionary = other;
- return [_dictionary isEqual:otherDictionary->_dictionary];
-}
-
-- (NSUInteger)hash {
- return _dictionary.count;
-}
-
-- (NSString *)description {
- return [NSString stringWithFormat:@"<%@ %p> { %@ }", [self class], self, _dictionary];
-}
-
-- (NSUInteger)count {
- return _dictionary.count;
-}
-
-- (void)enumerateKeysAndUInt64sUsingBlock:
- (void (^)(int64_t key, uint64_t value, BOOL *stop))block {
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- block([aKey longLongValue], [aValue unsignedLongLongValue], stop);
- }];
-}
-
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field {
- NSUInteger count = _dictionary.count;
- if (count == 0) {
- return 0;
- }
-
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- __block size_t result = 0;
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- size_t msgSize = ComputeDictInt64FieldSize([aKey longLongValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictUInt64FieldSize([aValue unsignedLongLongValue], kMapValueFieldNumber, valueDataType);
- result += GPBComputeRawVarint32SizeForInteger(msgSize) + msgSize;
- }];
- size_t tagSize = GPBComputeWireFormatTagSize(GPBFieldNumber(field), GPBDataTypeMessage);
- result += tagSize * count;
- return result;
-}
-
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field {
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- uint32_t tag = GPBWireFormatMakeTag(GPBFieldNumber(field), GPBWireFormatLengthDelimited);
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- // Write the tag.
- [outputStream writeInt32NoTag:tag];
- // Write the size of the message.
- size_t msgSize = ComputeDictInt64FieldSize([aKey longLongValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictUInt64FieldSize([aValue unsignedLongLongValue], kMapValueFieldNumber, valueDataType);
- [outputStream writeInt32NoTag:(int32_t)msgSize];
- // Write the fields.
- WriteDictInt64Field(outputStream, [aKey longLongValue], kMapKeyFieldNumber, keyDataType);
- WriteDictUInt64Field(outputStream, [aValue unsignedLongLongValue], kMapValueFieldNumber, valueDataType);
- }];
-}
-
-- (void)setGPBGenericValue:(GPBGenericValue *)value
- forGPBGenericValueKey:(GPBGenericValue *)key {
- [_dictionary setObject:@(value->valueUInt64) forKey:@(key->valueInt64)];
-}
-
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block {
- [self enumerateKeysAndUInt64sUsingBlock:^(int64_t key, uint64_t value, BOOL *stop) {
- #pragma unused(stop)
- block([NSString stringWithFormat:@"%lld", key], [NSString stringWithFormat:@"%llu", value]);
- }];
-}
-
-- (BOOL)getUInt64:(nullable uint64_t *)value forKey:(int64_t)key {
- NSNumber *wrapped = [_dictionary objectForKey:@(key)];
- if (wrapped && value) {
- *value = [wrapped unsignedLongLongValue];
- }
- return (wrapped != NULL);
-}
-
-- (void)addEntriesFromDictionary:(GPBInt64UInt64Dictionary *)otherDictionary {
- if (otherDictionary) {
- [_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
- }
-}
-
-- (void)setUInt64:(uint64_t)value forKey:(int64_t)key {
- [_dictionary setObject:@(value) forKey:@(key)];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
-}
-
-- (void)removeUInt64ForKey:(int64_t)aKey {
- [_dictionary removeObjectForKey:@(aKey)];
-}
-
-- (void)removeAll {
- [_dictionary removeAllObjects];
-}
-
-@end
-
-#pragma mark - Int64 -> Int64
-
-@implementation GPBInt64Int64Dictionary {
- @package
- NSMutableDictionary *_dictionary;
-}
-
-+ (instancetype)dictionary {
- return [[[self alloc] initWithInt64s:NULL forKeys:NULL count:0] autorelease];
-}
-
-+ (instancetype)dictionaryWithInt64:(int64_t)value
- forKey:(int64_t)key {
- // Cast is needed so the compiler knows what class we are invoking initWithInt64s:forKeys:count:
- // on to get the type correct.
- return [[(GPBInt64Int64Dictionary*)[self alloc] initWithInt64s:&value
- forKeys:&key
- count:1] autorelease];
-}
-
-+ (instancetype)dictionaryWithInt64s:(const int64_t [])values
- forKeys:(const int64_t [])keys
- count:(NSUInteger)count {
- // Cast is needed so the compiler knows what class we are invoking initWithInt64s:forKeys:count:
- // on to get the type correct.
- return [[(GPBInt64Int64Dictionary*)[self alloc] initWithInt64s:values
- forKeys:keys
- count:count] autorelease];
-}
-
-+ (instancetype)dictionaryWithDictionary:(GPBInt64Int64Dictionary *)dictionary {
- // Cast is needed so the compiler knows what class we are invoking initWithDictionary:
- // on to get the type correct.
- return [[(GPBInt64Int64Dictionary*)[self alloc] initWithDictionary:dictionary] autorelease];
-}
-
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems {
- return [[[self alloc] initWithCapacity:numItems] autorelease];
-}
-
-- (instancetype)init {
- return [self initWithInt64s:NULL forKeys:NULL count:0];
-}
-
-- (instancetype)initWithInt64s:(const int64_t [])values
- forKeys:(const int64_t [])keys
- count:(NSUInteger)count {
- self = [super init];
- if (self) {
- _dictionary = [[NSMutableDictionary alloc] init];
- if (count && values && keys) {
- for (NSUInteger i = 0; i < count; ++i) {
- [_dictionary setObject:@(values[i]) forKey:@(keys[i])];
- }
- }
- }
- return self;
-}
-
-- (instancetype)initWithDictionary:(GPBInt64Int64Dictionary *)dictionary {
- self = [self initWithInt64s:NULL forKeys:NULL count:0];
- if (self) {
- if (dictionary) {
- [_dictionary addEntriesFromDictionary:dictionary->_dictionary];
- }
- }
- return self;
-}
-
-- (instancetype)initWithCapacity:(NSUInteger)numItems {
- #pragma unused(numItems)
- return [self initWithInt64s:NULL forKeys:NULL count:0];
-}
-
-- (void)dealloc {
- NSAssert(!_autocreator,
- @"%@: Autocreator must be cleared before release, autocreator: %@",
- [self class], _autocreator);
- [_dictionary release];
- [super dealloc];
-}
-
-- (instancetype)copyWithZone:(NSZone *)zone {
- return [[GPBInt64Int64Dictionary allocWithZone:zone] initWithDictionary:self];
-}
-
-- (BOOL)isEqual:(id)other {
- if (self == other) {
- return YES;
- }
- if (![other isKindOfClass:[GPBInt64Int64Dictionary class]]) {
- return NO;
- }
- GPBInt64Int64Dictionary *otherDictionary = other;
- return [_dictionary isEqual:otherDictionary->_dictionary];
-}
-
-- (NSUInteger)hash {
- return _dictionary.count;
-}
-
-- (NSString *)description {
- return [NSString stringWithFormat:@"<%@ %p> { %@ }", [self class], self, _dictionary];
-}
-
-- (NSUInteger)count {
- return _dictionary.count;
-}
-
-- (void)enumerateKeysAndInt64sUsingBlock:
- (void (^)(int64_t key, int64_t value, BOOL *stop))block {
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- block([aKey longLongValue], [aValue longLongValue], stop);
- }];
-}
-
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field {
- NSUInteger count = _dictionary.count;
- if (count == 0) {
- return 0;
- }
-
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- __block size_t result = 0;
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- size_t msgSize = ComputeDictInt64FieldSize([aKey longLongValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictInt64FieldSize([aValue longLongValue], kMapValueFieldNumber, valueDataType);
- result += GPBComputeRawVarint32SizeForInteger(msgSize) + msgSize;
- }];
- size_t tagSize = GPBComputeWireFormatTagSize(GPBFieldNumber(field), GPBDataTypeMessage);
- result += tagSize * count;
- return result;
-}
-
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field {
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- uint32_t tag = GPBWireFormatMakeTag(GPBFieldNumber(field), GPBWireFormatLengthDelimited);
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- // Write the tag.
- [outputStream writeInt32NoTag:tag];
- // Write the size of the message.
- size_t msgSize = ComputeDictInt64FieldSize([aKey longLongValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictInt64FieldSize([aValue longLongValue], kMapValueFieldNumber, valueDataType);
- [outputStream writeInt32NoTag:(int32_t)msgSize];
- // Write the fields.
- WriteDictInt64Field(outputStream, [aKey longLongValue], kMapKeyFieldNumber, keyDataType);
- WriteDictInt64Field(outputStream, [aValue longLongValue], kMapValueFieldNumber, valueDataType);
- }];
-}
-
-- (void)setGPBGenericValue:(GPBGenericValue *)value
- forGPBGenericValueKey:(GPBGenericValue *)key {
- [_dictionary setObject:@(value->valueInt64) forKey:@(key->valueInt64)];
-}
-
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block {
- [self enumerateKeysAndInt64sUsingBlock:^(int64_t key, int64_t value, BOOL *stop) {
- #pragma unused(stop)
- block([NSString stringWithFormat:@"%lld", key], [NSString stringWithFormat:@"%lld", value]);
- }];
-}
-
-- (BOOL)getInt64:(nullable int64_t *)value forKey:(int64_t)key {
- NSNumber *wrapped = [_dictionary objectForKey:@(key)];
- if (wrapped && value) {
- *value = [wrapped longLongValue];
- }
- return (wrapped != NULL);
-}
-
-- (void)addEntriesFromDictionary:(GPBInt64Int64Dictionary *)otherDictionary {
- if (otherDictionary) {
- [_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
- }
-}
-
-- (void)setInt64:(int64_t)value forKey:(int64_t)key {
- [_dictionary setObject:@(value) forKey:@(key)];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
-}
-
-- (void)removeInt64ForKey:(int64_t)aKey {
- [_dictionary removeObjectForKey:@(aKey)];
-}
-
-- (void)removeAll {
- [_dictionary removeAllObjects];
-}
-
-@end
-
-#pragma mark - Int64 -> Bool
-
-@implementation GPBInt64BoolDictionary {
- @package
- NSMutableDictionary *_dictionary;
-}
-
-+ (instancetype)dictionary {
- return [[[self alloc] initWithBools:NULL forKeys:NULL count:0] autorelease];
-}
-
-+ (instancetype)dictionaryWithBool:(BOOL)value
- forKey:(int64_t)key {
- // Cast is needed so the compiler knows what class we are invoking initWithBools:forKeys:count:
- // on to get the type correct.
- return [[(GPBInt64BoolDictionary*)[self alloc] initWithBools:&value
- forKeys:&key
- count:1] autorelease];
-}
-
-+ (instancetype)dictionaryWithBools:(const BOOL [])values
- forKeys:(const int64_t [])keys
- count:(NSUInteger)count {
- // Cast is needed so the compiler knows what class we are invoking initWithBools:forKeys:count:
- // on to get the type correct.
- return [[(GPBInt64BoolDictionary*)[self alloc] initWithBools:values
- forKeys:keys
- count:count] autorelease];
-}
-
-+ (instancetype)dictionaryWithDictionary:(GPBInt64BoolDictionary *)dictionary {
- // Cast is needed so the compiler knows what class we are invoking initWithDictionary:
- // on to get the type correct.
- return [[(GPBInt64BoolDictionary*)[self alloc] initWithDictionary:dictionary] autorelease];
-}
-
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems {
- return [[[self alloc] initWithCapacity:numItems] autorelease];
-}
-
-- (instancetype)init {
- return [self initWithBools:NULL forKeys:NULL count:0];
-}
-
-- (instancetype)initWithBools:(const BOOL [])values
- forKeys:(const int64_t [])keys
- count:(NSUInteger)count {
- self = [super init];
- if (self) {
- _dictionary = [[NSMutableDictionary alloc] init];
- if (count && values && keys) {
- for (NSUInteger i = 0; i < count; ++i) {
- [_dictionary setObject:@(values[i]) forKey:@(keys[i])];
- }
- }
- }
- return self;
-}
-
-- (instancetype)initWithDictionary:(GPBInt64BoolDictionary *)dictionary {
- self = [self initWithBools:NULL forKeys:NULL count:0];
- if (self) {
- if (dictionary) {
- [_dictionary addEntriesFromDictionary:dictionary->_dictionary];
- }
- }
- return self;
-}
-
-- (instancetype)initWithCapacity:(NSUInteger)numItems {
- #pragma unused(numItems)
- return [self initWithBools:NULL forKeys:NULL count:0];
-}
-
-- (void)dealloc {
- NSAssert(!_autocreator,
- @"%@: Autocreator must be cleared before release, autocreator: %@",
- [self class], _autocreator);
- [_dictionary release];
- [super dealloc];
-}
-
-- (instancetype)copyWithZone:(NSZone *)zone {
- return [[GPBInt64BoolDictionary allocWithZone:zone] initWithDictionary:self];
-}
-
-- (BOOL)isEqual:(id)other {
- if (self == other) {
- return YES;
- }
- if (![other isKindOfClass:[GPBInt64BoolDictionary class]]) {
- return NO;
- }
- GPBInt64BoolDictionary *otherDictionary = other;
- return [_dictionary isEqual:otherDictionary->_dictionary];
-}
-
-- (NSUInteger)hash {
- return _dictionary.count;
-}
-
-- (NSString *)description {
- return [NSString stringWithFormat:@"<%@ %p> { %@ }", [self class], self, _dictionary];
-}
-
-- (NSUInteger)count {
- return _dictionary.count;
-}
-
-- (void)enumerateKeysAndBoolsUsingBlock:
- (void (^)(int64_t key, BOOL value, BOOL *stop))block {
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- block([aKey longLongValue], [aValue boolValue], stop);
- }];
-}
-
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field {
- NSUInteger count = _dictionary.count;
- if (count == 0) {
- return 0;
- }
-
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- __block size_t result = 0;
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- size_t msgSize = ComputeDictInt64FieldSize([aKey longLongValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictBoolFieldSize([aValue boolValue], kMapValueFieldNumber, valueDataType);
- result += GPBComputeRawVarint32SizeForInteger(msgSize) + msgSize;
- }];
- size_t tagSize = GPBComputeWireFormatTagSize(GPBFieldNumber(field), GPBDataTypeMessage);
- result += tagSize * count;
- return result;
-}
-
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field {
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- uint32_t tag = GPBWireFormatMakeTag(GPBFieldNumber(field), GPBWireFormatLengthDelimited);
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- // Write the tag.
- [outputStream writeInt32NoTag:tag];
- // Write the size of the message.
- size_t msgSize = ComputeDictInt64FieldSize([aKey longLongValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictBoolFieldSize([aValue boolValue], kMapValueFieldNumber, valueDataType);
- [outputStream writeInt32NoTag:(int32_t)msgSize];
- // Write the fields.
- WriteDictInt64Field(outputStream, [aKey longLongValue], kMapKeyFieldNumber, keyDataType);
- WriteDictBoolField(outputStream, [aValue boolValue], kMapValueFieldNumber, valueDataType);
- }];
-}
-
-- (void)setGPBGenericValue:(GPBGenericValue *)value
- forGPBGenericValueKey:(GPBGenericValue *)key {
- [_dictionary setObject:@(value->valueBool) forKey:@(key->valueInt64)];
-}
-
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block {
- [self enumerateKeysAndBoolsUsingBlock:^(int64_t key, BOOL value, BOOL *stop) {
- #pragma unused(stop)
- block([NSString stringWithFormat:@"%lld", key], (value ? @"true" : @"false"));
- }];
-}
-
-- (BOOL)getBool:(nullable BOOL *)value forKey:(int64_t)key {
- NSNumber *wrapped = [_dictionary objectForKey:@(key)];
- if (wrapped && value) {
- *value = [wrapped boolValue];
- }
- return (wrapped != NULL);
-}
-
-- (void)addEntriesFromDictionary:(GPBInt64BoolDictionary *)otherDictionary {
- if (otherDictionary) {
- [_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
- }
-}
-
-- (void)setBool:(BOOL)value forKey:(int64_t)key {
- [_dictionary setObject:@(value) forKey:@(key)];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
-}
-
-- (void)removeBoolForKey:(int64_t)aKey {
- [_dictionary removeObjectForKey:@(aKey)];
-}
-
-- (void)removeAll {
- [_dictionary removeAllObjects];
-}
-
-@end
-
-#pragma mark - Int64 -> Float
-
-@implementation GPBInt64FloatDictionary {
- @package
- NSMutableDictionary *_dictionary;
-}
-
-+ (instancetype)dictionary {
- return [[[self alloc] initWithFloats:NULL forKeys:NULL count:0] autorelease];
-}
-
-+ (instancetype)dictionaryWithFloat:(float)value
- forKey:(int64_t)key {
- // Cast is needed so the compiler knows what class we are invoking initWithFloats:forKeys:count:
- // on to get the type correct.
- return [[(GPBInt64FloatDictionary*)[self alloc] initWithFloats:&value
- forKeys:&key
- count:1] autorelease];
-}
-
-+ (instancetype)dictionaryWithFloats:(const float [])values
- forKeys:(const int64_t [])keys
- count:(NSUInteger)count {
- // Cast is needed so the compiler knows what class we are invoking initWithFloats:forKeys:count:
- // on to get the type correct.
- return [[(GPBInt64FloatDictionary*)[self alloc] initWithFloats:values
- forKeys:keys
- count:count] autorelease];
-}
-
-+ (instancetype)dictionaryWithDictionary:(GPBInt64FloatDictionary *)dictionary {
- // Cast is needed so the compiler knows what class we are invoking initWithDictionary:
- // on to get the type correct.
- return [[(GPBInt64FloatDictionary*)[self alloc] initWithDictionary:dictionary] autorelease];
-}
-
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems {
- return [[[self alloc] initWithCapacity:numItems] autorelease];
-}
-
-- (instancetype)init {
- return [self initWithFloats:NULL forKeys:NULL count:0];
-}
-
-- (instancetype)initWithFloats:(const float [])values
- forKeys:(const int64_t [])keys
- count:(NSUInteger)count {
- self = [super init];
- if (self) {
- _dictionary = [[NSMutableDictionary alloc] init];
- if (count && values && keys) {
- for (NSUInteger i = 0; i < count; ++i) {
- [_dictionary setObject:@(values[i]) forKey:@(keys[i])];
- }
- }
- }
- return self;
-}
-
-- (instancetype)initWithDictionary:(GPBInt64FloatDictionary *)dictionary {
- self = [self initWithFloats:NULL forKeys:NULL count:0];
- if (self) {
- if (dictionary) {
- [_dictionary addEntriesFromDictionary:dictionary->_dictionary];
- }
- }
- return self;
-}
-
-- (instancetype)initWithCapacity:(NSUInteger)numItems {
- #pragma unused(numItems)
- return [self initWithFloats:NULL forKeys:NULL count:0];
-}
-
-- (void)dealloc {
- NSAssert(!_autocreator,
- @"%@: Autocreator must be cleared before release, autocreator: %@",
- [self class], _autocreator);
- [_dictionary release];
- [super dealloc];
-}
-
-- (instancetype)copyWithZone:(NSZone *)zone {
- return [[GPBInt64FloatDictionary allocWithZone:zone] initWithDictionary:self];
-}
-
-- (BOOL)isEqual:(id)other {
- if (self == other) {
- return YES;
- }
- if (![other isKindOfClass:[GPBInt64FloatDictionary class]]) {
- return NO;
- }
- GPBInt64FloatDictionary *otherDictionary = other;
- return [_dictionary isEqual:otherDictionary->_dictionary];
-}
-
-- (NSUInteger)hash {
- return _dictionary.count;
-}
-
-- (NSString *)description {
- return [NSString stringWithFormat:@"<%@ %p> { %@ }", [self class], self, _dictionary];
-}
-
-- (NSUInteger)count {
- return _dictionary.count;
-}
-
-- (void)enumerateKeysAndFloatsUsingBlock:
- (void (^)(int64_t key, float value, BOOL *stop))block {
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- block([aKey longLongValue], [aValue floatValue], stop);
- }];
-}
-
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field {
- NSUInteger count = _dictionary.count;
- if (count == 0) {
- return 0;
- }
-
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- __block size_t result = 0;
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- size_t msgSize = ComputeDictInt64FieldSize([aKey longLongValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictFloatFieldSize([aValue floatValue], kMapValueFieldNumber, valueDataType);
- result += GPBComputeRawVarint32SizeForInteger(msgSize) + msgSize;
- }];
- size_t tagSize = GPBComputeWireFormatTagSize(GPBFieldNumber(field), GPBDataTypeMessage);
- result += tagSize * count;
- return result;
-}
-
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field {
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- uint32_t tag = GPBWireFormatMakeTag(GPBFieldNumber(field), GPBWireFormatLengthDelimited);
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- // Write the tag.
- [outputStream writeInt32NoTag:tag];
- // Write the size of the message.
- size_t msgSize = ComputeDictInt64FieldSize([aKey longLongValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictFloatFieldSize([aValue floatValue], kMapValueFieldNumber, valueDataType);
- [outputStream writeInt32NoTag:(int32_t)msgSize];
- // Write the fields.
- WriteDictInt64Field(outputStream, [aKey longLongValue], kMapKeyFieldNumber, keyDataType);
- WriteDictFloatField(outputStream, [aValue floatValue], kMapValueFieldNumber, valueDataType);
- }];
-}
-
-- (void)setGPBGenericValue:(GPBGenericValue *)value
- forGPBGenericValueKey:(GPBGenericValue *)key {
- [_dictionary setObject:@(value->valueFloat) forKey:@(key->valueInt64)];
-}
-
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block {
- [self enumerateKeysAndFloatsUsingBlock:^(int64_t key, float value, BOOL *stop) {
- #pragma unused(stop)
- block([NSString stringWithFormat:@"%lld", key], [NSString stringWithFormat:@"%.*g", FLT_DIG, value]);
- }];
-}
-
-- (BOOL)getFloat:(nullable float *)value forKey:(int64_t)key {
- NSNumber *wrapped = [_dictionary objectForKey:@(key)];
- if (wrapped && value) {
- *value = [wrapped floatValue];
- }
- return (wrapped != NULL);
-}
-
-- (void)addEntriesFromDictionary:(GPBInt64FloatDictionary *)otherDictionary {
- if (otherDictionary) {
- [_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
- }
-}
-
-- (void)setFloat:(float)value forKey:(int64_t)key {
- [_dictionary setObject:@(value) forKey:@(key)];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
-}
-
-- (void)removeFloatForKey:(int64_t)aKey {
- [_dictionary removeObjectForKey:@(aKey)];
-}
-
-- (void)removeAll {
- [_dictionary removeAllObjects];
-}
-
-@end
-
-#pragma mark - Int64 -> Double
-
-@implementation GPBInt64DoubleDictionary {
- @package
- NSMutableDictionary *_dictionary;
-}
-
-+ (instancetype)dictionary {
- return [[[self alloc] initWithDoubles:NULL forKeys:NULL count:0] autorelease];
-}
-
-+ (instancetype)dictionaryWithDouble:(double)value
- forKey:(int64_t)key {
- // Cast is needed so the compiler knows what class we are invoking initWithDoubles:forKeys:count:
- // on to get the type correct.
- return [[(GPBInt64DoubleDictionary*)[self alloc] initWithDoubles:&value
- forKeys:&key
- count:1] autorelease];
-}
-
-+ (instancetype)dictionaryWithDoubles:(const double [])values
- forKeys:(const int64_t [])keys
- count:(NSUInteger)count {
- // Cast is needed so the compiler knows what class we are invoking initWithDoubles:forKeys:count:
- // on to get the type correct.
- return [[(GPBInt64DoubleDictionary*)[self alloc] initWithDoubles:values
- forKeys:keys
- count:count] autorelease];
-}
-
-+ (instancetype)dictionaryWithDictionary:(GPBInt64DoubleDictionary *)dictionary {
- // Cast is needed so the compiler knows what class we are invoking initWithDictionary:
- // on to get the type correct.
- return [[(GPBInt64DoubleDictionary*)[self alloc] initWithDictionary:dictionary] autorelease];
-}
-
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems {
- return [[[self alloc] initWithCapacity:numItems] autorelease];
-}
-
-- (instancetype)init {
- return [self initWithDoubles:NULL forKeys:NULL count:0];
-}
-
-- (instancetype)initWithDoubles:(const double [])values
- forKeys:(const int64_t [])keys
- count:(NSUInteger)count {
- self = [super init];
- if (self) {
- _dictionary = [[NSMutableDictionary alloc] init];
- if (count && values && keys) {
- for (NSUInteger i = 0; i < count; ++i) {
- [_dictionary setObject:@(values[i]) forKey:@(keys[i])];
- }
- }
- }
- return self;
-}
-
-- (instancetype)initWithDictionary:(GPBInt64DoubleDictionary *)dictionary {
- self = [self initWithDoubles:NULL forKeys:NULL count:0];
- if (self) {
- if (dictionary) {
- [_dictionary addEntriesFromDictionary:dictionary->_dictionary];
- }
- }
- return self;
-}
-
-- (instancetype)initWithCapacity:(NSUInteger)numItems {
- #pragma unused(numItems)
- return [self initWithDoubles:NULL forKeys:NULL count:0];
-}
-
-- (void)dealloc {
- NSAssert(!_autocreator,
- @"%@: Autocreator must be cleared before release, autocreator: %@",
- [self class], _autocreator);
- [_dictionary release];
- [super dealloc];
-}
-
-- (instancetype)copyWithZone:(NSZone *)zone {
- return [[GPBInt64DoubleDictionary allocWithZone:zone] initWithDictionary:self];
-}
-
-- (BOOL)isEqual:(id)other {
- if (self == other) {
- return YES;
- }
- if (![other isKindOfClass:[GPBInt64DoubleDictionary class]]) {
- return NO;
- }
- GPBInt64DoubleDictionary *otherDictionary = other;
- return [_dictionary isEqual:otherDictionary->_dictionary];
-}
-
-- (NSUInteger)hash {
- return _dictionary.count;
-}
-
-- (NSString *)description {
- return [NSString stringWithFormat:@"<%@ %p> { %@ }", [self class], self, _dictionary];
-}
-
-- (NSUInteger)count {
- return _dictionary.count;
-}
-
-- (void)enumerateKeysAndDoublesUsingBlock:
- (void (^)(int64_t key, double value, BOOL *stop))block {
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- block([aKey longLongValue], [aValue doubleValue], stop);
- }];
-}
-
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field {
- NSUInteger count = _dictionary.count;
- if (count == 0) {
- return 0;
- }
-
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- __block size_t result = 0;
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- size_t msgSize = ComputeDictInt64FieldSize([aKey longLongValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictDoubleFieldSize([aValue doubleValue], kMapValueFieldNumber, valueDataType);
- result += GPBComputeRawVarint32SizeForInteger(msgSize) + msgSize;
- }];
- size_t tagSize = GPBComputeWireFormatTagSize(GPBFieldNumber(field), GPBDataTypeMessage);
- result += tagSize * count;
- return result;
-}
-
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field {
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- uint32_t tag = GPBWireFormatMakeTag(GPBFieldNumber(field), GPBWireFormatLengthDelimited);
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- // Write the tag.
- [outputStream writeInt32NoTag:tag];
- // Write the size of the message.
- size_t msgSize = ComputeDictInt64FieldSize([aKey longLongValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictDoubleFieldSize([aValue doubleValue], kMapValueFieldNumber, valueDataType);
- [outputStream writeInt32NoTag:(int32_t)msgSize];
- // Write the fields.
- WriteDictInt64Field(outputStream, [aKey longLongValue], kMapKeyFieldNumber, keyDataType);
- WriteDictDoubleField(outputStream, [aValue doubleValue], kMapValueFieldNumber, valueDataType);
- }];
-}
-
-- (void)setGPBGenericValue:(GPBGenericValue *)value
- forGPBGenericValueKey:(GPBGenericValue *)key {
- [_dictionary setObject:@(value->valueDouble) forKey:@(key->valueInt64)];
-}
-
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block {
- [self enumerateKeysAndDoublesUsingBlock:^(int64_t key, double value, BOOL *stop) {
- #pragma unused(stop)
- block([NSString stringWithFormat:@"%lld", key], [NSString stringWithFormat:@"%.*lg", DBL_DIG, value]);
- }];
-}
-
-- (BOOL)getDouble:(nullable double *)value forKey:(int64_t)key {
- NSNumber *wrapped = [_dictionary objectForKey:@(key)];
- if (wrapped && value) {
- *value = [wrapped doubleValue];
- }
- return (wrapped != NULL);
-}
-
-- (void)addEntriesFromDictionary:(GPBInt64DoubleDictionary *)otherDictionary {
- if (otherDictionary) {
- [_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
- }
-}
-
-- (void)setDouble:(double)value forKey:(int64_t)key {
- [_dictionary setObject:@(value) forKey:@(key)];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
-}
-
-- (void)removeDoubleForKey:(int64_t)aKey {
- [_dictionary removeObjectForKey:@(aKey)];
-}
-
-- (void)removeAll {
- [_dictionary removeAllObjects];
-}
-
-@end
-
-#pragma mark - Int64 -> Enum
-
-@implementation GPBInt64EnumDictionary {
- @package
- NSMutableDictionary *_dictionary;
- GPBEnumValidationFunc _validationFunc;
-}
-
-@synthesize validationFunc = _validationFunc;
-
-+ (instancetype)dictionary {
- return [[[self alloc] initWithValidationFunction:NULL
- rawValues:NULL
- forKeys:NULL
- count:0] autorelease];
-}
-
-+ (instancetype)dictionaryWithValidationFunction:(GPBEnumValidationFunc)func {
- return [[[self alloc] initWithValidationFunction:func
- rawValues:NULL
- forKeys:NULL
- count:0] autorelease];
-}
-
-+ (instancetype)dictionaryWithValidationFunction:(GPBEnumValidationFunc)func
- rawValue:(int32_t)rawValue
- forKey:(int64_t)key {
- // Cast is needed so the compiler knows what class we are invoking initWithValues:forKeys:count:
- // on to get the type correct.
- return [[(GPBInt64EnumDictionary*)[self alloc] initWithValidationFunction:func
- rawValues:&rawValue
- forKeys:&key
- count:1] autorelease];
-}
-
-+ (instancetype)dictionaryWithValidationFunction:(GPBEnumValidationFunc)func
- rawValues:(const int32_t [])rawValues
- forKeys:(const int64_t [])keys
- count:(NSUInteger)count {
- // Cast is needed so the compiler knows what class we are invoking initWithValues:forKeys:count:
- // on to get the type correct.
- return [[(GPBInt64EnumDictionary*)[self alloc] initWithValidationFunction:func
- rawValues:rawValues
- forKeys:keys
- count:count] autorelease];
-}
-
-+ (instancetype)dictionaryWithDictionary:(GPBInt64EnumDictionary *)dictionary {
- // Cast is needed so the compiler knows what class we are invoking initWithValues:forKeys:count:
- // on to get the type correct.
- return [[(GPBInt64EnumDictionary*)[self alloc] initWithDictionary:dictionary] autorelease];
-}
-
-+ (instancetype)dictionaryWithValidationFunction:(GPBEnumValidationFunc)func
- capacity:(NSUInteger)numItems {
- return [[[self alloc] initWithValidationFunction:func capacity:numItems] autorelease];
-}
-
-- (instancetype)init {
- return [self initWithValidationFunction:NULL rawValues:NULL forKeys:NULL count:0];
-}
-
-- (instancetype)initWithValidationFunction:(GPBEnumValidationFunc)func {
- return [self initWithValidationFunction:func rawValues:NULL forKeys:NULL count:0];
-}
-
-- (instancetype)initWithValidationFunction:(GPBEnumValidationFunc)func
- rawValues:(const int32_t [])rawValues
- forKeys:(const int64_t [])keys
- count:(NSUInteger)count {
- self = [super init];
- if (self) {
- _dictionary = [[NSMutableDictionary alloc] init];
- _validationFunc = (func != NULL ? func : DictDefault_IsValidValue);
- if (count && rawValues && keys) {
- for (NSUInteger i = 0; i < count; ++i) {
- [_dictionary setObject:@(rawValues[i]) forKey:@(keys[i])];
- }
- }
- }
- return self;
-}
-
-- (instancetype)initWithDictionary:(GPBInt64EnumDictionary *)dictionary {
- self = [self initWithValidationFunction:dictionary.validationFunc
- rawValues:NULL
- forKeys:NULL
- count:0];
- if (self) {
- if (dictionary) {
- [_dictionary addEntriesFromDictionary:dictionary->_dictionary];
- }
- }
- return self;
-}
-
-- (instancetype)initWithValidationFunction:(GPBEnumValidationFunc)func
- capacity:(NSUInteger)numItems {
- #pragma unused(numItems)
- return [self initWithValidationFunction:func rawValues:NULL forKeys:NULL count:0];
-}
-
-- (void)dealloc {
- NSAssert(!_autocreator,
- @"%@: Autocreator must be cleared before release, autocreator: %@",
- [self class], _autocreator);
- [_dictionary release];
- [super dealloc];
-}
-
-- (instancetype)copyWithZone:(NSZone *)zone {
- return [[GPBInt64EnumDictionary allocWithZone:zone] initWithDictionary:self];
-}
-
-- (BOOL)isEqual:(id)other {
- if (self == other) {
- return YES;
- }
- if (![other isKindOfClass:[GPBInt64EnumDictionary class]]) {
- return NO;
- }
- GPBInt64EnumDictionary *otherDictionary = other;
- return [_dictionary isEqual:otherDictionary->_dictionary];
-}
-
-- (NSUInteger)hash {
- return _dictionary.count;
-}
-
-- (NSString *)description {
- return [NSString stringWithFormat:@"<%@ %p> { %@ }", [self class], self, _dictionary];
-}
-
-- (NSUInteger)count {
- return _dictionary.count;
-}
-
-- (void)enumerateKeysAndRawValuesUsingBlock:
- (void (^)(int64_t key, int32_t value, BOOL *stop))block {
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- block([aKey longLongValue], [aValue intValue], stop);
- }];
-}
-
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field {
- NSUInteger count = _dictionary.count;
- if (count == 0) {
- return 0;
- }
-
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- __block size_t result = 0;
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- size_t msgSize = ComputeDictInt64FieldSize([aKey longLongValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictEnumFieldSize([aValue intValue], kMapValueFieldNumber, valueDataType);
- result += GPBComputeRawVarint32SizeForInteger(msgSize) + msgSize;
- }];
- size_t tagSize = GPBComputeWireFormatTagSize(GPBFieldNumber(field), GPBDataTypeMessage);
- result += tagSize * count;
- return result;
-}
-
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field {
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- uint32_t tag = GPBWireFormatMakeTag(GPBFieldNumber(field), GPBWireFormatLengthDelimited);
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- // Write the tag.
- [outputStream writeInt32NoTag:tag];
- // Write the size of the message.
- size_t msgSize = ComputeDictInt64FieldSize([aKey longLongValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictEnumFieldSize([aValue intValue], kMapValueFieldNumber, valueDataType);
- [outputStream writeInt32NoTag:(int32_t)msgSize];
- // Write the fields.
- WriteDictInt64Field(outputStream, [aKey longLongValue], kMapKeyFieldNumber, keyDataType);
- WriteDictEnumField(outputStream, [aValue intValue], kMapValueFieldNumber, valueDataType);
- }];
-}
-
-- (NSData *)serializedDataForUnknownValue:(int32_t)value
- forKey:(GPBGenericValue *)key
- keyDataType:(GPBDataType)keyDataType {
- size_t msgSize = ComputeDictInt64FieldSize(key->valueInt64, kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictEnumFieldSize(value, kMapValueFieldNumber, GPBDataTypeEnum);
- NSMutableData *data = [NSMutableData dataWithLength:msgSize];
- GPBCodedOutputStream *outputStream = [[GPBCodedOutputStream alloc] initWithData:data];
- WriteDictInt64Field(outputStream, key->valueInt64, kMapKeyFieldNumber, keyDataType);
- WriteDictEnumField(outputStream, value, kMapValueFieldNumber, GPBDataTypeEnum);
- [outputStream release];
- return data;
-}
-- (void)setGPBGenericValue:(GPBGenericValue *)value
- forGPBGenericValueKey:(GPBGenericValue *)key {
- [_dictionary setObject:@(value->valueEnum) forKey:@(key->valueInt64)];
-}
-
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block {
- [self enumerateKeysAndRawValuesUsingBlock:^(int64_t key, int32_t value, BOOL *stop) {
- #pragma unused(stop)
- block([NSString stringWithFormat:@"%lld", key], @(value));
- }];
-}
-
-- (BOOL)getEnum:(int32_t *)value forKey:(int64_t)key {
- NSNumber *wrapped = [_dictionary objectForKey:@(key)];
- if (wrapped && value) {
- int32_t result = [wrapped intValue];
- if (!_validationFunc(result)) {
- result = kGPBUnrecognizedEnumeratorValue;
- }
- *value = result;
- }
- return (wrapped != NULL);
-}
-
-- (BOOL)getRawValue:(int32_t *)rawValue forKey:(int64_t)key {
- NSNumber *wrapped = [_dictionary objectForKey:@(key)];
- if (wrapped && rawValue) {
- *rawValue = [wrapped intValue];
- }
- return (wrapped != NULL);
-}
-
-- (void)enumerateKeysAndEnumsUsingBlock:
- (void (^)(int64_t key, int32_t value, BOOL *stop))block {
- GPBEnumValidationFunc func = _validationFunc;
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- int32_t unwrapped = [aValue intValue];
- if (!func(unwrapped)) {
- unwrapped = kGPBUnrecognizedEnumeratorValue;
- }
- block([aKey longLongValue], unwrapped, stop);
- }];
-}
-
-- (void)addRawEntriesFromDictionary:(GPBInt64EnumDictionary *)otherDictionary {
- if (otherDictionary) {
- [_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
- }
-}
-
-- (void)setRawValue:(int32_t)value forKey:(int64_t)key {
- [_dictionary setObject:@(value) forKey:@(key)];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
-}
-
-- (void)removeEnumForKey:(int64_t)aKey {
- [_dictionary removeObjectForKey:@(aKey)];
-}
-
-- (void)removeAll {
- [_dictionary removeAllObjects];
-}
-
-- (void)setEnum:(int32_t)value forKey:(int64_t)key {
- if (!_validationFunc(value)) {
- [NSException raise:NSInvalidArgumentException
- format:@"GPBInt64EnumDictionary: Attempt to set an unknown enum value (%d)",
- value];
- }
-
- [_dictionary setObject:@(value) forKey:@(key)];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
-}
-
-@end
-
-#pragma mark - Int64 -> Object
-
-@implementation GPBInt64ObjectDictionary {
- @package
- NSMutableDictionary *_dictionary;
-}
-
-+ (instancetype)dictionary {
- return [[[self alloc] initWithObjects:NULL forKeys:NULL count:0] autorelease];
-}
-
-+ (instancetype)dictionaryWithObject:(id)object
- forKey:(int64_t)key {
- // Cast is needed so the compiler knows what class we are invoking initWithObjects:forKeys:count:
- // on to get the type correct.
- return [[(GPBInt64ObjectDictionary*)[self alloc] initWithObjects:&object
- forKeys:&key
- count:1] autorelease];
-}
-
-+ (instancetype)dictionaryWithObjects:(const id [])objects
- forKeys:(const int64_t [])keys
- count:(NSUInteger)count {
- // Cast is needed so the compiler knows what class we are invoking initWithObjects:forKeys:count:
- // on to get the type correct.
- return [[(GPBInt64ObjectDictionary*)[self alloc] initWithObjects:objects
- forKeys:keys
- count:count] autorelease];
-}
-
-+ (instancetype)dictionaryWithDictionary:(GPBInt64ObjectDictionary *)dictionary {
- // Cast is needed so the compiler knows what class we are invoking initWithDictionary:
- // on to get the type correct.
- return [[(GPBInt64ObjectDictionary*)[self alloc] initWithDictionary:dictionary] autorelease];
-}
-
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems {
- return [[[self alloc] initWithCapacity:numItems] autorelease];
-}
-
-- (instancetype)init {
- return [self initWithObjects:NULL forKeys:NULL count:0];
-}
-
-- (instancetype)initWithObjects:(const id [])objects
- forKeys:(const int64_t [])keys
- count:(NSUInteger)count {
- self = [super init];
- if (self) {
- _dictionary = [[NSMutableDictionary alloc] init];
- if (count && objects && keys) {
- for (NSUInteger i = 0; i < count; ++i) {
- if (!objects[i]) {
- [NSException raise:NSInvalidArgumentException
- format:@"Attempting to add nil object to a Dictionary"];
- }
- [_dictionary setObject:objects[i] forKey:@(keys[i])];
- }
- }
- }
- return self;
-}
-
-- (instancetype)initWithDictionary:(GPBInt64ObjectDictionary *)dictionary {
- self = [self initWithObjects:NULL forKeys:NULL count:0];
- if (self) {
- if (dictionary) {
- [_dictionary addEntriesFromDictionary:dictionary->_dictionary];
- }
- }
- return self;
-}
-
-- (instancetype)initWithCapacity:(NSUInteger)numItems {
- #pragma unused(numItems)
- return [self initWithObjects:NULL forKeys:NULL count:0];
-}
-
-- (void)dealloc {
- NSAssert(!_autocreator,
- @"%@: Autocreator must be cleared before release, autocreator: %@",
- [self class], _autocreator);
- [_dictionary release];
- [super dealloc];
-}
-
-- (instancetype)copyWithZone:(NSZone *)zone {
- return [[GPBInt64ObjectDictionary allocWithZone:zone] initWithDictionary:self];
-}
-
-- (BOOL)isEqual:(id)other {
- if (self == other) {
- return YES;
- }
- if (![other isKindOfClass:[GPBInt64ObjectDictionary class]]) {
- return NO;
- }
- GPBInt64ObjectDictionary *otherDictionary = other;
- return [_dictionary isEqual:otherDictionary->_dictionary];
-}
-
-- (NSUInteger)hash {
- return _dictionary.count;
-}
-
-- (NSString *)description {
- return [NSString stringWithFormat:@"<%@ %p> { %@ }", [self class], self, _dictionary];
-}
-
-- (NSUInteger)count {
- return _dictionary.count;
-}
-
-- (void)enumerateKeysAndObjectsUsingBlock:
- (void (^)(int64_t key, id object, BOOL *stop))block {
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- id aObject,
- BOOL *stop) {
- block([aKey longLongValue], aObject, stop);
- }];
-}
-
-- (BOOL)isInitialized {
- for (GPBMessage *msg in [_dictionary objectEnumerator]) {
- if (!msg.initialized) {
- return NO;
- }
- }
- return YES;
-}
-
-- (instancetype)deepCopyWithZone:(NSZone *)zone {
- GPBInt64ObjectDictionary *newDict =
- [[GPBInt64ObjectDictionary alloc] init];
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(id aKey,
- GPBMessage *msg,
- BOOL *stop) {
- #pragma unused(stop)
- GPBMessage *copiedMsg = [msg copyWithZone:zone];
- [newDict->_dictionary setObject:copiedMsg forKey:aKey];
- [copiedMsg release];
- }];
- return newDict;
-}
-
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field {
- NSUInteger count = _dictionary.count;
- if (count == 0) {
- return 0;
- }
-
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- __block size_t result = 0;
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- id aObject,
- BOOL *stop) {
- #pragma unused(stop)
- size_t msgSize = ComputeDictInt64FieldSize([aKey longLongValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictObjectFieldSize(aObject, kMapValueFieldNumber, valueDataType);
- result += GPBComputeRawVarint32SizeForInteger(msgSize) + msgSize;
- }];
- size_t tagSize = GPBComputeWireFormatTagSize(GPBFieldNumber(field), GPBDataTypeMessage);
- result += tagSize * count;
- return result;
-}
-
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field {
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- uint32_t tag = GPBWireFormatMakeTag(GPBFieldNumber(field), GPBWireFormatLengthDelimited);
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSNumber *aKey,
- id aObject,
- BOOL *stop) {
- #pragma unused(stop)
- // Write the tag.
- [outputStream writeInt32NoTag:tag];
- // Write the size of the message.
- size_t msgSize = ComputeDictInt64FieldSize([aKey longLongValue], kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictObjectFieldSize(aObject, kMapValueFieldNumber, valueDataType);
- [outputStream writeInt32NoTag:(int32_t)msgSize];
- // Write the fields.
- WriteDictInt64Field(outputStream, [aKey longLongValue], kMapKeyFieldNumber, keyDataType);
- WriteDictObjectField(outputStream, aObject, kMapValueFieldNumber, valueDataType);
- }];
-}
-
-- (void)setGPBGenericValue:(GPBGenericValue *)value
- forGPBGenericValueKey:(GPBGenericValue *)key {
- [_dictionary setObject:value->valueString forKey:@(key->valueInt64)];
-}
-
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block {
- [self enumerateKeysAndObjectsUsingBlock:^(int64_t key, id object, BOOL *stop) {
- #pragma unused(stop)
- block([NSString stringWithFormat:@"%lld", key], object);
- }];
-}
-
-- (id)objectForKey:(int64_t)key {
- id result = [_dictionary objectForKey:@(key)];
- return result;
-}
-
-- (void)addEntriesFromDictionary:(GPBInt64ObjectDictionary *)otherDictionary {
- if (otherDictionary) {
- [_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
- }
-}
-
-- (void)setObject:(id)object forKey:(int64_t)key {
- if (!object) {
- [NSException raise:NSInvalidArgumentException
- format:@"Attempting to add nil object to a Dictionary"];
- }
- [_dictionary setObject:object forKey:@(key)];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
-}
-
-- (void)removeObjectForKey:(int64_t)aKey {
- [_dictionary removeObjectForKey:@(aKey)];
-}
-
-- (void)removeAll {
- [_dictionary removeAllObjects];
-}
-
-@end
-
-//%PDDM-EXPAND DICTIONARY_POD_IMPL_FOR_KEY(String, NSString, *, OBJECT)
-// This block of code is generated, do not edit it directly.
-
-#pragma mark - String -> UInt32
-
-@implementation GPBStringUInt32Dictionary {
- @package
- NSMutableDictionary *_dictionary;
-}
-
-+ (instancetype)dictionary {
- return [[[self alloc] initWithUInt32s:NULL forKeys:NULL count:0] autorelease];
-}
-
-+ (instancetype)dictionaryWithUInt32:(uint32_t)value
- forKey:(NSString *)key {
- // Cast is needed so the compiler knows what class we are invoking initWithUInt32s:forKeys:count:
- // on to get the type correct.
- return [[(GPBStringUInt32Dictionary*)[self alloc] initWithUInt32s:&value
- forKeys:&key
- count:1] autorelease];
-}
-
-+ (instancetype)dictionaryWithUInt32s:(const uint32_t [])values
- forKeys:(const NSString * [])keys
- count:(NSUInteger)count {
- // Cast is needed so the compiler knows what class we are invoking initWithUInt32s:forKeys:count:
- // on to get the type correct.
- return [[(GPBStringUInt32Dictionary*)[self alloc] initWithUInt32s:values
- forKeys:keys
- count:count] autorelease];
-}
-
-+ (instancetype)dictionaryWithDictionary:(GPBStringUInt32Dictionary *)dictionary {
- // Cast is needed so the compiler knows what class we are invoking initWithDictionary:
- // on to get the type correct.
- return [[(GPBStringUInt32Dictionary*)[self alloc] initWithDictionary:dictionary] autorelease];
-}
-
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems {
- return [[[self alloc] initWithCapacity:numItems] autorelease];
-}
-
-- (instancetype)init {
- return [self initWithUInt32s:NULL forKeys:NULL count:0];
-}
-
-- (instancetype)initWithUInt32s:(const uint32_t [])values
- forKeys:(const NSString * [])keys
- count:(NSUInteger)count {
- self = [super init];
- if (self) {
- _dictionary = [[NSMutableDictionary alloc] init];
- if (count && values && keys) {
- for (NSUInteger i = 0; i < count; ++i) {
- if (!keys[i]) {
- [NSException raise:NSInvalidArgumentException
- format:@"Attempting to add nil key to a Dictionary"];
- }
- [_dictionary setObject:@(values[i]) forKey:keys[i]];
- }
- }
- }
- return self;
-}
-
-- (instancetype)initWithDictionary:(GPBStringUInt32Dictionary *)dictionary {
- self = [self initWithUInt32s:NULL forKeys:NULL count:0];
- if (self) {
- if (dictionary) {
- [_dictionary addEntriesFromDictionary:dictionary->_dictionary];
- }
- }
- return self;
-}
-
-- (instancetype)initWithCapacity:(NSUInteger)numItems {
- #pragma unused(numItems)
- return [self initWithUInt32s:NULL forKeys:NULL count:0];
-}
-
-- (void)dealloc {
- NSAssert(!_autocreator,
- @"%@: Autocreator must be cleared before release, autocreator: %@",
- [self class], _autocreator);
- [_dictionary release];
- [super dealloc];
-}
-
-- (instancetype)copyWithZone:(NSZone *)zone {
- return [[GPBStringUInt32Dictionary allocWithZone:zone] initWithDictionary:self];
-}
-
-- (BOOL)isEqual:(id)other {
- if (self == other) {
- return YES;
- }
- if (![other isKindOfClass:[GPBStringUInt32Dictionary class]]) {
- return NO;
- }
- GPBStringUInt32Dictionary *otherDictionary = other;
- return [_dictionary isEqual:otherDictionary->_dictionary];
-}
-
-- (NSUInteger)hash {
- return _dictionary.count;
-}
-
-- (NSString *)description {
- return [NSString stringWithFormat:@"<%@ %p> { %@ }", [self class], self, _dictionary];
-}
-
-- (NSUInteger)count {
- return _dictionary.count;
-}
-
-- (void)enumerateKeysAndUInt32sUsingBlock:
- (void (^)(NSString *key, uint32_t value, BOOL *stop))block {
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSString *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- block(aKey, [aValue unsignedIntValue], stop);
- }];
-}
-
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field {
- NSUInteger count = _dictionary.count;
- if (count == 0) {
- return 0;
- }
-
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- __block size_t result = 0;
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSString *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- size_t msgSize = ComputeDictStringFieldSize(aKey, kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictUInt32FieldSize([aValue unsignedIntValue], kMapValueFieldNumber, valueDataType);
- result += GPBComputeRawVarint32SizeForInteger(msgSize) + msgSize;
- }];
- size_t tagSize = GPBComputeWireFormatTagSize(GPBFieldNumber(field), GPBDataTypeMessage);
- result += tagSize * count;
- return result;
-}
-
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field {
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- uint32_t tag = GPBWireFormatMakeTag(GPBFieldNumber(field), GPBWireFormatLengthDelimited);
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSString *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- // Write the tag.
- [outputStream writeInt32NoTag:tag];
- // Write the size of the message.
- size_t msgSize = ComputeDictStringFieldSize(aKey, kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictUInt32FieldSize([aValue unsignedIntValue], kMapValueFieldNumber, valueDataType);
- [outputStream writeInt32NoTag:(int32_t)msgSize];
- // Write the fields.
- WriteDictStringField(outputStream, aKey, kMapKeyFieldNumber, keyDataType);
- WriteDictUInt32Field(outputStream, [aValue unsignedIntValue], kMapValueFieldNumber, valueDataType);
- }];
-}
-
-- (void)setGPBGenericValue:(GPBGenericValue *)value
- forGPBGenericValueKey:(GPBGenericValue *)key {
- [_dictionary setObject:@(value->valueUInt32) forKey:key->valueString];
-}
-
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block {
- [self enumerateKeysAndUInt32sUsingBlock:^(NSString *key, uint32_t value, BOOL *stop) {
- #pragma unused(stop)
- block(key, [NSString stringWithFormat:@"%u", value]);
- }];
-}
-
-- (BOOL)getUInt32:(nullable uint32_t *)value forKey:(NSString *)key {
- NSNumber *wrapped = [_dictionary objectForKey:key];
- if (wrapped && value) {
- *value = [wrapped unsignedIntValue];
- }
- return (wrapped != NULL);
-}
-
-- (void)addEntriesFromDictionary:(GPBStringUInt32Dictionary *)otherDictionary {
- if (otherDictionary) {
- [_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
- }
-}
-
-- (void)setUInt32:(uint32_t)value forKey:(NSString *)key {
- if (!key) {
- [NSException raise:NSInvalidArgumentException
- format:@"Attempting to add nil key to a Dictionary"];
- }
- [_dictionary setObject:@(value) forKey:key];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
-}
-
-- (void)removeUInt32ForKey:(NSString *)aKey {
- [_dictionary removeObjectForKey:aKey];
-}
-
-- (void)removeAll {
- [_dictionary removeAllObjects];
-}
-
-@end
-
-#pragma mark - String -> Int32
-
-@implementation GPBStringInt32Dictionary {
- @package
- NSMutableDictionary *_dictionary;
-}
-
-+ (instancetype)dictionary {
- return [[[self alloc] initWithInt32s:NULL forKeys:NULL count:0] autorelease];
-}
-
-+ (instancetype)dictionaryWithInt32:(int32_t)value
- forKey:(NSString *)key {
- // Cast is needed so the compiler knows what class we are invoking initWithInt32s:forKeys:count:
- // on to get the type correct.
- return [[(GPBStringInt32Dictionary*)[self alloc] initWithInt32s:&value
- forKeys:&key
- count:1] autorelease];
-}
-
-+ (instancetype)dictionaryWithInt32s:(const int32_t [])values
- forKeys:(const NSString * [])keys
- count:(NSUInteger)count {
- // Cast is needed so the compiler knows what class we are invoking initWithInt32s:forKeys:count:
- // on to get the type correct.
- return [[(GPBStringInt32Dictionary*)[self alloc] initWithInt32s:values
- forKeys:keys
- count:count] autorelease];
-}
-
-+ (instancetype)dictionaryWithDictionary:(GPBStringInt32Dictionary *)dictionary {
- // Cast is needed so the compiler knows what class we are invoking initWithDictionary:
- // on to get the type correct.
- return [[(GPBStringInt32Dictionary*)[self alloc] initWithDictionary:dictionary] autorelease];
-}
-
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems {
- return [[[self alloc] initWithCapacity:numItems] autorelease];
-}
-
-- (instancetype)init {
- return [self initWithInt32s:NULL forKeys:NULL count:0];
-}
-
-- (instancetype)initWithInt32s:(const int32_t [])values
- forKeys:(const NSString * [])keys
- count:(NSUInteger)count {
- self = [super init];
- if (self) {
- _dictionary = [[NSMutableDictionary alloc] init];
- if (count && values && keys) {
- for (NSUInteger i = 0; i < count; ++i) {
- if (!keys[i]) {
- [NSException raise:NSInvalidArgumentException
- format:@"Attempting to add nil key to a Dictionary"];
- }
- [_dictionary setObject:@(values[i]) forKey:keys[i]];
- }
- }
- }
- return self;
-}
-
-- (instancetype)initWithDictionary:(GPBStringInt32Dictionary *)dictionary {
- self = [self initWithInt32s:NULL forKeys:NULL count:0];
- if (self) {
- if (dictionary) {
- [_dictionary addEntriesFromDictionary:dictionary->_dictionary];
- }
- }
- return self;
-}
-
-- (instancetype)initWithCapacity:(NSUInteger)numItems {
- #pragma unused(numItems)
- return [self initWithInt32s:NULL forKeys:NULL count:0];
-}
-
-- (void)dealloc {
- NSAssert(!_autocreator,
- @"%@: Autocreator must be cleared before release, autocreator: %@",
- [self class], _autocreator);
- [_dictionary release];
- [super dealloc];
-}
-
-- (instancetype)copyWithZone:(NSZone *)zone {
- return [[GPBStringInt32Dictionary allocWithZone:zone] initWithDictionary:self];
-}
-
-- (BOOL)isEqual:(id)other {
- if (self == other) {
- return YES;
- }
- if (![other isKindOfClass:[GPBStringInt32Dictionary class]]) {
- return NO;
- }
- GPBStringInt32Dictionary *otherDictionary = other;
- return [_dictionary isEqual:otherDictionary->_dictionary];
-}
-
-- (NSUInteger)hash {
- return _dictionary.count;
-}
-
-- (NSString *)description {
- return [NSString stringWithFormat:@"<%@ %p> { %@ }", [self class], self, _dictionary];
-}
-
-- (NSUInteger)count {
- return _dictionary.count;
-}
-
-- (void)enumerateKeysAndInt32sUsingBlock:
- (void (^)(NSString *key, int32_t value, BOOL *stop))block {
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSString *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- block(aKey, [aValue intValue], stop);
- }];
-}
-
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field {
- NSUInteger count = _dictionary.count;
- if (count == 0) {
- return 0;
- }
-
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- __block size_t result = 0;
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSString *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- size_t msgSize = ComputeDictStringFieldSize(aKey, kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictInt32FieldSize([aValue intValue], kMapValueFieldNumber, valueDataType);
- result += GPBComputeRawVarint32SizeForInteger(msgSize) + msgSize;
- }];
- size_t tagSize = GPBComputeWireFormatTagSize(GPBFieldNumber(field), GPBDataTypeMessage);
- result += tagSize * count;
- return result;
-}
-
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field {
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- uint32_t tag = GPBWireFormatMakeTag(GPBFieldNumber(field), GPBWireFormatLengthDelimited);
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSString *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- // Write the tag.
- [outputStream writeInt32NoTag:tag];
- // Write the size of the message.
- size_t msgSize = ComputeDictStringFieldSize(aKey, kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictInt32FieldSize([aValue intValue], kMapValueFieldNumber, valueDataType);
- [outputStream writeInt32NoTag:(int32_t)msgSize];
- // Write the fields.
- WriteDictStringField(outputStream, aKey, kMapKeyFieldNumber, keyDataType);
- WriteDictInt32Field(outputStream, [aValue intValue], kMapValueFieldNumber, valueDataType);
- }];
-}
-
-- (void)setGPBGenericValue:(GPBGenericValue *)value
- forGPBGenericValueKey:(GPBGenericValue *)key {
- [_dictionary setObject:@(value->valueInt32) forKey:key->valueString];
-}
-
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block {
- [self enumerateKeysAndInt32sUsingBlock:^(NSString *key, int32_t value, BOOL *stop) {
- #pragma unused(stop)
- block(key, [NSString stringWithFormat:@"%d", value]);
- }];
-}
-
-- (BOOL)getInt32:(nullable int32_t *)value forKey:(NSString *)key {
- NSNumber *wrapped = [_dictionary objectForKey:key];
- if (wrapped && value) {
- *value = [wrapped intValue];
- }
- return (wrapped != NULL);
-}
-
-- (void)addEntriesFromDictionary:(GPBStringInt32Dictionary *)otherDictionary {
- if (otherDictionary) {
- [_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
- }
-}
-
-- (void)setInt32:(int32_t)value forKey:(NSString *)key {
- if (!key) {
- [NSException raise:NSInvalidArgumentException
- format:@"Attempting to add nil key to a Dictionary"];
- }
- [_dictionary setObject:@(value) forKey:key];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
-}
-
-- (void)removeInt32ForKey:(NSString *)aKey {
- [_dictionary removeObjectForKey:aKey];
-}
-
-- (void)removeAll {
- [_dictionary removeAllObjects];
-}
-
-@end
-
-#pragma mark - String -> UInt64
-
-@implementation GPBStringUInt64Dictionary {
- @package
- NSMutableDictionary *_dictionary;
-}
-
-+ (instancetype)dictionary {
- return [[[self alloc] initWithUInt64s:NULL forKeys:NULL count:0] autorelease];
-}
-
-+ (instancetype)dictionaryWithUInt64:(uint64_t)value
- forKey:(NSString *)key {
- // Cast is needed so the compiler knows what class we are invoking initWithUInt64s:forKeys:count:
- // on to get the type correct.
- return [[(GPBStringUInt64Dictionary*)[self alloc] initWithUInt64s:&value
- forKeys:&key
- count:1] autorelease];
-}
-
-+ (instancetype)dictionaryWithUInt64s:(const uint64_t [])values
- forKeys:(const NSString * [])keys
- count:(NSUInteger)count {
- // Cast is needed so the compiler knows what class we are invoking initWithUInt64s:forKeys:count:
- // on to get the type correct.
- return [[(GPBStringUInt64Dictionary*)[self alloc] initWithUInt64s:values
- forKeys:keys
- count:count] autorelease];
-}
-
-+ (instancetype)dictionaryWithDictionary:(GPBStringUInt64Dictionary *)dictionary {
- // Cast is needed so the compiler knows what class we are invoking initWithDictionary:
- // on to get the type correct.
- return [[(GPBStringUInt64Dictionary*)[self alloc] initWithDictionary:dictionary] autorelease];
-}
-
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems {
- return [[[self alloc] initWithCapacity:numItems] autorelease];
-}
-
-- (instancetype)init {
- return [self initWithUInt64s:NULL forKeys:NULL count:0];
-}
-
-- (instancetype)initWithUInt64s:(const uint64_t [])values
- forKeys:(const NSString * [])keys
- count:(NSUInteger)count {
- self = [super init];
- if (self) {
- _dictionary = [[NSMutableDictionary alloc] init];
- if (count && values && keys) {
- for (NSUInteger i = 0; i < count; ++i) {
- if (!keys[i]) {
- [NSException raise:NSInvalidArgumentException
- format:@"Attempting to add nil key to a Dictionary"];
- }
- [_dictionary setObject:@(values[i]) forKey:keys[i]];
- }
- }
- }
- return self;
-}
-
-- (instancetype)initWithDictionary:(GPBStringUInt64Dictionary *)dictionary {
- self = [self initWithUInt64s:NULL forKeys:NULL count:0];
- if (self) {
- if (dictionary) {
- [_dictionary addEntriesFromDictionary:dictionary->_dictionary];
- }
- }
- return self;
-}
-
-- (instancetype)initWithCapacity:(NSUInteger)numItems {
- #pragma unused(numItems)
- return [self initWithUInt64s:NULL forKeys:NULL count:0];
-}
-
-- (void)dealloc {
- NSAssert(!_autocreator,
- @"%@: Autocreator must be cleared before release, autocreator: %@",
- [self class], _autocreator);
- [_dictionary release];
- [super dealloc];
-}
-
-- (instancetype)copyWithZone:(NSZone *)zone {
- return [[GPBStringUInt64Dictionary allocWithZone:zone] initWithDictionary:self];
-}
-
-- (BOOL)isEqual:(id)other {
- if (self == other) {
- return YES;
- }
- if (![other isKindOfClass:[GPBStringUInt64Dictionary class]]) {
- return NO;
- }
- GPBStringUInt64Dictionary *otherDictionary = other;
- return [_dictionary isEqual:otherDictionary->_dictionary];
-}
-
-- (NSUInteger)hash {
- return _dictionary.count;
-}
-
-- (NSString *)description {
- return [NSString stringWithFormat:@"<%@ %p> { %@ }", [self class], self, _dictionary];
-}
-
-- (NSUInteger)count {
- return _dictionary.count;
-}
-
-- (void)enumerateKeysAndUInt64sUsingBlock:
- (void (^)(NSString *key, uint64_t value, BOOL *stop))block {
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSString *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- block(aKey, [aValue unsignedLongLongValue], stop);
- }];
-}
-
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field {
- NSUInteger count = _dictionary.count;
- if (count == 0) {
- return 0;
- }
-
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- __block size_t result = 0;
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSString *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- size_t msgSize = ComputeDictStringFieldSize(aKey, kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictUInt64FieldSize([aValue unsignedLongLongValue], kMapValueFieldNumber, valueDataType);
- result += GPBComputeRawVarint32SizeForInteger(msgSize) + msgSize;
- }];
- size_t tagSize = GPBComputeWireFormatTagSize(GPBFieldNumber(field), GPBDataTypeMessage);
- result += tagSize * count;
- return result;
-}
-
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field {
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- uint32_t tag = GPBWireFormatMakeTag(GPBFieldNumber(field), GPBWireFormatLengthDelimited);
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSString *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- // Write the tag.
- [outputStream writeInt32NoTag:tag];
- // Write the size of the message.
- size_t msgSize = ComputeDictStringFieldSize(aKey, kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictUInt64FieldSize([aValue unsignedLongLongValue], kMapValueFieldNumber, valueDataType);
- [outputStream writeInt32NoTag:(int32_t)msgSize];
- // Write the fields.
- WriteDictStringField(outputStream, aKey, kMapKeyFieldNumber, keyDataType);
- WriteDictUInt64Field(outputStream, [aValue unsignedLongLongValue], kMapValueFieldNumber, valueDataType);
- }];
-}
-
-- (void)setGPBGenericValue:(GPBGenericValue *)value
- forGPBGenericValueKey:(GPBGenericValue *)key {
- [_dictionary setObject:@(value->valueUInt64) forKey:key->valueString];
-}
-
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block {
- [self enumerateKeysAndUInt64sUsingBlock:^(NSString *key, uint64_t value, BOOL *stop) {
- #pragma unused(stop)
- block(key, [NSString stringWithFormat:@"%llu", value]);
- }];
-}
-
-- (BOOL)getUInt64:(nullable uint64_t *)value forKey:(NSString *)key {
- NSNumber *wrapped = [_dictionary objectForKey:key];
- if (wrapped && value) {
- *value = [wrapped unsignedLongLongValue];
- }
- return (wrapped != NULL);
-}
-
-- (void)addEntriesFromDictionary:(GPBStringUInt64Dictionary *)otherDictionary {
- if (otherDictionary) {
- [_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
- }
-}
-
-- (void)setUInt64:(uint64_t)value forKey:(NSString *)key {
- if (!key) {
- [NSException raise:NSInvalidArgumentException
- format:@"Attempting to add nil key to a Dictionary"];
- }
- [_dictionary setObject:@(value) forKey:key];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
-}
-
-- (void)removeUInt64ForKey:(NSString *)aKey {
- [_dictionary removeObjectForKey:aKey];
-}
-
-- (void)removeAll {
- [_dictionary removeAllObjects];
-}
-
-@end
-
-#pragma mark - String -> Int64
-
-@implementation GPBStringInt64Dictionary {
- @package
- NSMutableDictionary *_dictionary;
-}
-
-+ (instancetype)dictionary {
- return [[[self alloc] initWithInt64s:NULL forKeys:NULL count:0] autorelease];
-}
-
-+ (instancetype)dictionaryWithInt64:(int64_t)value
- forKey:(NSString *)key {
- // Cast is needed so the compiler knows what class we are invoking initWithInt64s:forKeys:count:
- // on to get the type correct.
- return [[(GPBStringInt64Dictionary*)[self alloc] initWithInt64s:&value
- forKeys:&key
- count:1] autorelease];
-}
-
-+ (instancetype)dictionaryWithInt64s:(const int64_t [])values
- forKeys:(const NSString * [])keys
- count:(NSUInteger)count {
- // Cast is needed so the compiler knows what class we are invoking initWithInt64s:forKeys:count:
- // on to get the type correct.
- return [[(GPBStringInt64Dictionary*)[self alloc] initWithInt64s:values
- forKeys:keys
- count:count] autorelease];
-}
-
-+ (instancetype)dictionaryWithDictionary:(GPBStringInt64Dictionary *)dictionary {
- // Cast is needed so the compiler knows what class we are invoking initWithDictionary:
- // on to get the type correct.
- return [[(GPBStringInt64Dictionary*)[self alloc] initWithDictionary:dictionary] autorelease];
-}
-
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems {
- return [[[self alloc] initWithCapacity:numItems] autorelease];
-}
-
-- (instancetype)init {
- return [self initWithInt64s:NULL forKeys:NULL count:0];
-}
-
-- (instancetype)initWithInt64s:(const int64_t [])values
- forKeys:(const NSString * [])keys
- count:(NSUInteger)count {
- self = [super init];
- if (self) {
- _dictionary = [[NSMutableDictionary alloc] init];
- if (count && values && keys) {
- for (NSUInteger i = 0; i < count; ++i) {
- if (!keys[i]) {
- [NSException raise:NSInvalidArgumentException
- format:@"Attempting to add nil key to a Dictionary"];
- }
- [_dictionary setObject:@(values[i]) forKey:keys[i]];
- }
- }
- }
- return self;
-}
-
-- (instancetype)initWithDictionary:(GPBStringInt64Dictionary *)dictionary {
- self = [self initWithInt64s:NULL forKeys:NULL count:0];
- if (self) {
- if (dictionary) {
- [_dictionary addEntriesFromDictionary:dictionary->_dictionary];
- }
- }
- return self;
-}
-
-- (instancetype)initWithCapacity:(NSUInteger)numItems {
- #pragma unused(numItems)
- return [self initWithInt64s:NULL forKeys:NULL count:0];
-}
-
-- (void)dealloc {
- NSAssert(!_autocreator,
- @"%@: Autocreator must be cleared before release, autocreator: %@",
- [self class], _autocreator);
- [_dictionary release];
- [super dealloc];
-}
-
-- (instancetype)copyWithZone:(NSZone *)zone {
- return [[GPBStringInt64Dictionary allocWithZone:zone] initWithDictionary:self];
-}
-
-- (BOOL)isEqual:(id)other {
- if (self == other) {
- return YES;
- }
- if (![other isKindOfClass:[GPBStringInt64Dictionary class]]) {
- return NO;
- }
- GPBStringInt64Dictionary *otherDictionary = other;
- return [_dictionary isEqual:otherDictionary->_dictionary];
-}
-
-- (NSUInteger)hash {
- return _dictionary.count;
-}
-
-- (NSString *)description {
- return [NSString stringWithFormat:@"<%@ %p> { %@ }", [self class], self, _dictionary];
-}
-
-- (NSUInteger)count {
- return _dictionary.count;
-}
-
-- (void)enumerateKeysAndInt64sUsingBlock:
- (void (^)(NSString *key, int64_t value, BOOL *stop))block {
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSString *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- block(aKey, [aValue longLongValue], stop);
- }];
-}
-
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field {
- NSUInteger count = _dictionary.count;
- if (count == 0) {
- return 0;
- }
-
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- __block size_t result = 0;
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSString *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- size_t msgSize = ComputeDictStringFieldSize(aKey, kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictInt64FieldSize([aValue longLongValue], kMapValueFieldNumber, valueDataType);
- result += GPBComputeRawVarint32SizeForInteger(msgSize) + msgSize;
- }];
- size_t tagSize = GPBComputeWireFormatTagSize(GPBFieldNumber(field), GPBDataTypeMessage);
- result += tagSize * count;
- return result;
-}
-
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field {
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- uint32_t tag = GPBWireFormatMakeTag(GPBFieldNumber(field), GPBWireFormatLengthDelimited);
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSString *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- // Write the tag.
- [outputStream writeInt32NoTag:tag];
- // Write the size of the message.
- size_t msgSize = ComputeDictStringFieldSize(aKey, kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictInt64FieldSize([aValue longLongValue], kMapValueFieldNumber, valueDataType);
- [outputStream writeInt32NoTag:(int32_t)msgSize];
- // Write the fields.
- WriteDictStringField(outputStream, aKey, kMapKeyFieldNumber, keyDataType);
- WriteDictInt64Field(outputStream, [aValue longLongValue], kMapValueFieldNumber, valueDataType);
- }];
-}
-
-- (void)setGPBGenericValue:(GPBGenericValue *)value
- forGPBGenericValueKey:(GPBGenericValue *)key {
- [_dictionary setObject:@(value->valueInt64) forKey:key->valueString];
-}
-
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block {
- [self enumerateKeysAndInt64sUsingBlock:^(NSString *key, int64_t value, BOOL *stop) {
- #pragma unused(stop)
- block(key, [NSString stringWithFormat:@"%lld", value]);
- }];
-}
-
-- (BOOL)getInt64:(nullable int64_t *)value forKey:(NSString *)key {
- NSNumber *wrapped = [_dictionary objectForKey:key];
- if (wrapped && value) {
- *value = [wrapped longLongValue];
- }
- return (wrapped != NULL);
-}
-
-- (void)addEntriesFromDictionary:(GPBStringInt64Dictionary *)otherDictionary {
- if (otherDictionary) {
- [_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
- }
-}
-
-- (void)setInt64:(int64_t)value forKey:(NSString *)key {
- if (!key) {
- [NSException raise:NSInvalidArgumentException
- format:@"Attempting to add nil key to a Dictionary"];
- }
- [_dictionary setObject:@(value) forKey:key];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
-}
-
-- (void)removeInt64ForKey:(NSString *)aKey {
- [_dictionary removeObjectForKey:aKey];
-}
-
-- (void)removeAll {
- [_dictionary removeAllObjects];
-}
-
-@end
-
-#pragma mark - String -> Bool
-
-@implementation GPBStringBoolDictionary {
- @package
- NSMutableDictionary *_dictionary;
-}
-
-+ (instancetype)dictionary {
- return [[[self alloc] initWithBools:NULL forKeys:NULL count:0] autorelease];
-}
-
-+ (instancetype)dictionaryWithBool:(BOOL)value
- forKey:(NSString *)key {
- // Cast is needed so the compiler knows what class we are invoking initWithBools:forKeys:count:
- // on to get the type correct.
- return [[(GPBStringBoolDictionary*)[self alloc] initWithBools:&value
- forKeys:&key
- count:1] autorelease];
-}
-
-+ (instancetype)dictionaryWithBools:(const BOOL [])values
- forKeys:(const NSString * [])keys
- count:(NSUInteger)count {
- // Cast is needed so the compiler knows what class we are invoking initWithBools:forKeys:count:
- // on to get the type correct.
- return [[(GPBStringBoolDictionary*)[self alloc] initWithBools:values
- forKeys:keys
- count:count] autorelease];
-}
-
-+ (instancetype)dictionaryWithDictionary:(GPBStringBoolDictionary *)dictionary {
- // Cast is needed so the compiler knows what class we are invoking initWithDictionary:
- // on to get the type correct.
- return [[(GPBStringBoolDictionary*)[self alloc] initWithDictionary:dictionary] autorelease];
-}
-
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems {
- return [[[self alloc] initWithCapacity:numItems] autorelease];
-}
-
-- (instancetype)init {
- return [self initWithBools:NULL forKeys:NULL count:0];
-}
-
-- (instancetype)initWithBools:(const BOOL [])values
- forKeys:(const NSString * [])keys
- count:(NSUInteger)count {
- self = [super init];
- if (self) {
- _dictionary = [[NSMutableDictionary alloc] init];
- if (count && values && keys) {
- for (NSUInteger i = 0; i < count; ++i) {
- if (!keys[i]) {
- [NSException raise:NSInvalidArgumentException
- format:@"Attempting to add nil key to a Dictionary"];
- }
- [_dictionary setObject:@(values[i]) forKey:keys[i]];
- }
- }
- }
- return self;
-}
-
-- (instancetype)initWithDictionary:(GPBStringBoolDictionary *)dictionary {
- self = [self initWithBools:NULL forKeys:NULL count:0];
- if (self) {
- if (dictionary) {
- [_dictionary addEntriesFromDictionary:dictionary->_dictionary];
- }
- }
- return self;
-}
-
-- (instancetype)initWithCapacity:(NSUInteger)numItems {
- #pragma unused(numItems)
- return [self initWithBools:NULL forKeys:NULL count:0];
-}
-
-- (void)dealloc {
- NSAssert(!_autocreator,
- @"%@: Autocreator must be cleared before release, autocreator: %@",
- [self class], _autocreator);
- [_dictionary release];
- [super dealloc];
-}
-
-- (instancetype)copyWithZone:(NSZone *)zone {
- return [[GPBStringBoolDictionary allocWithZone:zone] initWithDictionary:self];
-}
-
-- (BOOL)isEqual:(id)other {
- if (self == other) {
- return YES;
- }
- if (![other isKindOfClass:[GPBStringBoolDictionary class]]) {
- return NO;
- }
- GPBStringBoolDictionary *otherDictionary = other;
- return [_dictionary isEqual:otherDictionary->_dictionary];
-}
-
-- (NSUInteger)hash {
- return _dictionary.count;
-}
-
-- (NSString *)description {
- return [NSString stringWithFormat:@"<%@ %p> { %@ }", [self class], self, _dictionary];
-}
-
-- (NSUInteger)count {
- return _dictionary.count;
-}
-
-- (void)enumerateKeysAndBoolsUsingBlock:
- (void (^)(NSString *key, BOOL value, BOOL *stop))block {
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSString *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- block(aKey, [aValue boolValue], stop);
- }];
-}
-
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field {
- NSUInteger count = _dictionary.count;
- if (count == 0) {
- return 0;
- }
-
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- __block size_t result = 0;
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSString *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- size_t msgSize = ComputeDictStringFieldSize(aKey, kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictBoolFieldSize([aValue boolValue], kMapValueFieldNumber, valueDataType);
- result += GPBComputeRawVarint32SizeForInteger(msgSize) + msgSize;
- }];
- size_t tagSize = GPBComputeWireFormatTagSize(GPBFieldNumber(field), GPBDataTypeMessage);
- result += tagSize * count;
- return result;
-}
-
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field {
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- uint32_t tag = GPBWireFormatMakeTag(GPBFieldNumber(field), GPBWireFormatLengthDelimited);
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSString *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- // Write the tag.
- [outputStream writeInt32NoTag:tag];
- // Write the size of the message.
- size_t msgSize = ComputeDictStringFieldSize(aKey, kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictBoolFieldSize([aValue boolValue], kMapValueFieldNumber, valueDataType);
- [outputStream writeInt32NoTag:(int32_t)msgSize];
- // Write the fields.
- WriteDictStringField(outputStream, aKey, kMapKeyFieldNumber, keyDataType);
- WriteDictBoolField(outputStream, [aValue boolValue], kMapValueFieldNumber, valueDataType);
- }];
-}
-
-- (void)setGPBGenericValue:(GPBGenericValue *)value
- forGPBGenericValueKey:(GPBGenericValue *)key {
- [_dictionary setObject:@(value->valueBool) forKey:key->valueString];
-}
-
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block {
- [self enumerateKeysAndBoolsUsingBlock:^(NSString *key, BOOL value, BOOL *stop) {
- #pragma unused(stop)
- block(key, (value ? @"true" : @"false"));
- }];
-}
-
-- (BOOL)getBool:(nullable BOOL *)value forKey:(NSString *)key {
- NSNumber *wrapped = [_dictionary objectForKey:key];
- if (wrapped && value) {
- *value = [wrapped boolValue];
- }
- return (wrapped != NULL);
-}
-
-- (void)addEntriesFromDictionary:(GPBStringBoolDictionary *)otherDictionary {
- if (otherDictionary) {
- [_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
- }
-}
-
-- (void)setBool:(BOOL)value forKey:(NSString *)key {
- if (!key) {
- [NSException raise:NSInvalidArgumentException
- format:@"Attempting to add nil key to a Dictionary"];
- }
- [_dictionary setObject:@(value) forKey:key];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
-}
-
-- (void)removeBoolForKey:(NSString *)aKey {
- [_dictionary removeObjectForKey:aKey];
-}
-
-- (void)removeAll {
- [_dictionary removeAllObjects];
-}
-
-@end
-
-#pragma mark - String -> Float
-
-@implementation GPBStringFloatDictionary {
- @package
- NSMutableDictionary *_dictionary;
-}
-
-+ (instancetype)dictionary {
- return [[[self alloc] initWithFloats:NULL forKeys:NULL count:0] autorelease];
-}
-
-+ (instancetype)dictionaryWithFloat:(float)value
- forKey:(NSString *)key {
- // Cast is needed so the compiler knows what class we are invoking initWithFloats:forKeys:count:
- // on to get the type correct.
- return [[(GPBStringFloatDictionary*)[self alloc] initWithFloats:&value
- forKeys:&key
- count:1] autorelease];
-}
-
-+ (instancetype)dictionaryWithFloats:(const float [])values
- forKeys:(const NSString * [])keys
- count:(NSUInteger)count {
- // Cast is needed so the compiler knows what class we are invoking initWithFloats:forKeys:count:
- // on to get the type correct.
- return [[(GPBStringFloatDictionary*)[self alloc] initWithFloats:values
- forKeys:keys
- count:count] autorelease];
-}
-
-+ (instancetype)dictionaryWithDictionary:(GPBStringFloatDictionary *)dictionary {
- // Cast is needed so the compiler knows what class we are invoking initWithDictionary:
- // on to get the type correct.
- return [[(GPBStringFloatDictionary*)[self alloc] initWithDictionary:dictionary] autorelease];
-}
-
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems {
- return [[[self alloc] initWithCapacity:numItems] autorelease];
-}
-
-- (instancetype)init {
- return [self initWithFloats:NULL forKeys:NULL count:0];
-}
-
-- (instancetype)initWithFloats:(const float [])values
- forKeys:(const NSString * [])keys
- count:(NSUInteger)count {
- self = [super init];
- if (self) {
- _dictionary = [[NSMutableDictionary alloc] init];
- if (count && values && keys) {
- for (NSUInteger i = 0; i < count; ++i) {
- if (!keys[i]) {
- [NSException raise:NSInvalidArgumentException
- format:@"Attempting to add nil key to a Dictionary"];
- }
- [_dictionary setObject:@(values[i]) forKey:keys[i]];
- }
- }
- }
- return self;
-}
-
-- (instancetype)initWithDictionary:(GPBStringFloatDictionary *)dictionary {
- self = [self initWithFloats:NULL forKeys:NULL count:0];
- if (self) {
- if (dictionary) {
- [_dictionary addEntriesFromDictionary:dictionary->_dictionary];
- }
- }
- return self;
-}
-
-- (instancetype)initWithCapacity:(NSUInteger)numItems {
- #pragma unused(numItems)
- return [self initWithFloats:NULL forKeys:NULL count:0];
-}
-
-- (void)dealloc {
- NSAssert(!_autocreator,
- @"%@: Autocreator must be cleared before release, autocreator: %@",
- [self class], _autocreator);
- [_dictionary release];
- [super dealloc];
-}
-
-- (instancetype)copyWithZone:(NSZone *)zone {
- return [[GPBStringFloatDictionary allocWithZone:zone] initWithDictionary:self];
-}
-
-- (BOOL)isEqual:(id)other {
- if (self == other) {
- return YES;
- }
- if (![other isKindOfClass:[GPBStringFloatDictionary class]]) {
- return NO;
- }
- GPBStringFloatDictionary *otherDictionary = other;
- return [_dictionary isEqual:otherDictionary->_dictionary];
-}
-
-- (NSUInteger)hash {
- return _dictionary.count;
-}
-
-- (NSString *)description {
- return [NSString stringWithFormat:@"<%@ %p> { %@ }", [self class], self, _dictionary];
-}
-
-- (NSUInteger)count {
- return _dictionary.count;
-}
-
-- (void)enumerateKeysAndFloatsUsingBlock:
- (void (^)(NSString *key, float value, BOOL *stop))block {
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSString *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- block(aKey, [aValue floatValue], stop);
- }];
-}
-
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field {
- NSUInteger count = _dictionary.count;
- if (count == 0) {
- return 0;
- }
-
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- __block size_t result = 0;
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSString *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- size_t msgSize = ComputeDictStringFieldSize(aKey, kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictFloatFieldSize([aValue floatValue], kMapValueFieldNumber, valueDataType);
- result += GPBComputeRawVarint32SizeForInteger(msgSize) + msgSize;
- }];
- size_t tagSize = GPBComputeWireFormatTagSize(GPBFieldNumber(field), GPBDataTypeMessage);
- result += tagSize * count;
- return result;
-}
-
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field {
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- uint32_t tag = GPBWireFormatMakeTag(GPBFieldNumber(field), GPBWireFormatLengthDelimited);
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSString *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- // Write the tag.
- [outputStream writeInt32NoTag:tag];
- // Write the size of the message.
- size_t msgSize = ComputeDictStringFieldSize(aKey, kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictFloatFieldSize([aValue floatValue], kMapValueFieldNumber, valueDataType);
- [outputStream writeInt32NoTag:(int32_t)msgSize];
- // Write the fields.
- WriteDictStringField(outputStream, aKey, kMapKeyFieldNumber, keyDataType);
- WriteDictFloatField(outputStream, [aValue floatValue], kMapValueFieldNumber, valueDataType);
- }];
-}
-
-- (void)setGPBGenericValue:(GPBGenericValue *)value
- forGPBGenericValueKey:(GPBGenericValue *)key {
- [_dictionary setObject:@(value->valueFloat) forKey:key->valueString];
-}
-
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block {
- [self enumerateKeysAndFloatsUsingBlock:^(NSString *key, float value, BOOL *stop) {
- #pragma unused(stop)
- block(key, [NSString stringWithFormat:@"%.*g", FLT_DIG, value]);
- }];
-}
-
-- (BOOL)getFloat:(nullable float *)value forKey:(NSString *)key {
- NSNumber *wrapped = [_dictionary objectForKey:key];
- if (wrapped && value) {
- *value = [wrapped floatValue];
- }
- return (wrapped != NULL);
-}
-
-- (void)addEntriesFromDictionary:(GPBStringFloatDictionary *)otherDictionary {
- if (otherDictionary) {
- [_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
- }
-}
-
-- (void)setFloat:(float)value forKey:(NSString *)key {
- if (!key) {
- [NSException raise:NSInvalidArgumentException
- format:@"Attempting to add nil key to a Dictionary"];
- }
- [_dictionary setObject:@(value) forKey:key];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
-}
-
-- (void)removeFloatForKey:(NSString *)aKey {
- [_dictionary removeObjectForKey:aKey];
-}
-
-- (void)removeAll {
- [_dictionary removeAllObjects];
-}
-
-@end
-
-#pragma mark - String -> Double
-
-@implementation GPBStringDoubleDictionary {
- @package
- NSMutableDictionary *_dictionary;
-}
-
-+ (instancetype)dictionary {
- return [[[self alloc] initWithDoubles:NULL forKeys:NULL count:0] autorelease];
-}
-
-+ (instancetype)dictionaryWithDouble:(double)value
- forKey:(NSString *)key {
- // Cast is needed so the compiler knows what class we are invoking initWithDoubles:forKeys:count:
- // on to get the type correct.
- return [[(GPBStringDoubleDictionary*)[self alloc] initWithDoubles:&value
- forKeys:&key
- count:1] autorelease];
-}
-
-+ (instancetype)dictionaryWithDoubles:(const double [])values
- forKeys:(const NSString * [])keys
- count:(NSUInteger)count {
- // Cast is needed so the compiler knows what class we are invoking initWithDoubles:forKeys:count:
- // on to get the type correct.
- return [[(GPBStringDoubleDictionary*)[self alloc] initWithDoubles:values
- forKeys:keys
- count:count] autorelease];
-}
-
-+ (instancetype)dictionaryWithDictionary:(GPBStringDoubleDictionary *)dictionary {
- // Cast is needed so the compiler knows what class we are invoking initWithDictionary:
- // on to get the type correct.
- return [[(GPBStringDoubleDictionary*)[self alloc] initWithDictionary:dictionary] autorelease];
-}
-
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems {
- return [[[self alloc] initWithCapacity:numItems] autorelease];
-}
-
-- (instancetype)init {
- return [self initWithDoubles:NULL forKeys:NULL count:0];
-}
-
-- (instancetype)initWithDoubles:(const double [])values
- forKeys:(const NSString * [])keys
- count:(NSUInteger)count {
- self = [super init];
- if (self) {
- _dictionary = [[NSMutableDictionary alloc] init];
- if (count && values && keys) {
- for (NSUInteger i = 0; i < count; ++i) {
- if (!keys[i]) {
- [NSException raise:NSInvalidArgumentException
- format:@"Attempting to add nil key to a Dictionary"];
- }
- [_dictionary setObject:@(values[i]) forKey:keys[i]];
- }
- }
- }
- return self;
-}
-
-- (instancetype)initWithDictionary:(GPBStringDoubleDictionary *)dictionary {
- self = [self initWithDoubles:NULL forKeys:NULL count:0];
- if (self) {
- if (dictionary) {
- [_dictionary addEntriesFromDictionary:dictionary->_dictionary];
- }
- }
- return self;
-}
-
-- (instancetype)initWithCapacity:(NSUInteger)numItems {
- #pragma unused(numItems)
- return [self initWithDoubles:NULL forKeys:NULL count:0];
-}
-
-- (void)dealloc {
- NSAssert(!_autocreator,
- @"%@: Autocreator must be cleared before release, autocreator: %@",
- [self class], _autocreator);
- [_dictionary release];
- [super dealloc];
-}
-
-- (instancetype)copyWithZone:(NSZone *)zone {
- return [[GPBStringDoubleDictionary allocWithZone:zone] initWithDictionary:self];
-}
-
-- (BOOL)isEqual:(id)other {
- if (self == other) {
- return YES;
- }
- if (![other isKindOfClass:[GPBStringDoubleDictionary class]]) {
- return NO;
- }
- GPBStringDoubleDictionary *otherDictionary = other;
- return [_dictionary isEqual:otherDictionary->_dictionary];
-}
-
-- (NSUInteger)hash {
- return _dictionary.count;
-}
-
-- (NSString *)description {
- return [NSString stringWithFormat:@"<%@ %p> { %@ }", [self class], self, _dictionary];
-}
-
-- (NSUInteger)count {
- return _dictionary.count;
-}
-
-- (void)enumerateKeysAndDoublesUsingBlock:
- (void (^)(NSString *key, double value, BOOL *stop))block {
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSString *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- block(aKey, [aValue doubleValue], stop);
- }];
-}
-
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field {
- NSUInteger count = _dictionary.count;
- if (count == 0) {
- return 0;
- }
-
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- __block size_t result = 0;
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSString *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- size_t msgSize = ComputeDictStringFieldSize(aKey, kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictDoubleFieldSize([aValue doubleValue], kMapValueFieldNumber, valueDataType);
- result += GPBComputeRawVarint32SizeForInteger(msgSize) + msgSize;
- }];
- size_t tagSize = GPBComputeWireFormatTagSize(GPBFieldNumber(field), GPBDataTypeMessage);
- result += tagSize * count;
- return result;
-}
-
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field {
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- uint32_t tag = GPBWireFormatMakeTag(GPBFieldNumber(field), GPBWireFormatLengthDelimited);
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSString *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- // Write the tag.
- [outputStream writeInt32NoTag:tag];
- // Write the size of the message.
- size_t msgSize = ComputeDictStringFieldSize(aKey, kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictDoubleFieldSize([aValue doubleValue], kMapValueFieldNumber, valueDataType);
- [outputStream writeInt32NoTag:(int32_t)msgSize];
- // Write the fields.
- WriteDictStringField(outputStream, aKey, kMapKeyFieldNumber, keyDataType);
- WriteDictDoubleField(outputStream, [aValue doubleValue], kMapValueFieldNumber, valueDataType);
- }];
-}
-
-- (void)setGPBGenericValue:(GPBGenericValue *)value
- forGPBGenericValueKey:(GPBGenericValue *)key {
- [_dictionary setObject:@(value->valueDouble) forKey:key->valueString];
-}
-
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block {
- [self enumerateKeysAndDoublesUsingBlock:^(NSString *key, double value, BOOL *stop) {
- #pragma unused(stop)
- block(key, [NSString stringWithFormat:@"%.*lg", DBL_DIG, value]);
- }];
-}
-
-- (BOOL)getDouble:(nullable double *)value forKey:(NSString *)key {
- NSNumber *wrapped = [_dictionary objectForKey:key];
- if (wrapped && value) {
- *value = [wrapped doubleValue];
- }
- return (wrapped != NULL);
-}
-
-- (void)addEntriesFromDictionary:(GPBStringDoubleDictionary *)otherDictionary {
- if (otherDictionary) {
- [_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
- }
-}
-
-- (void)setDouble:(double)value forKey:(NSString *)key {
- if (!key) {
- [NSException raise:NSInvalidArgumentException
- format:@"Attempting to add nil key to a Dictionary"];
- }
- [_dictionary setObject:@(value) forKey:key];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
-}
-
-- (void)removeDoubleForKey:(NSString *)aKey {
- [_dictionary removeObjectForKey:aKey];
-}
-
-- (void)removeAll {
- [_dictionary removeAllObjects];
-}
-
-@end
-
-#pragma mark - String -> Enum
-
-@implementation GPBStringEnumDictionary {
- @package
- NSMutableDictionary *_dictionary;
- GPBEnumValidationFunc _validationFunc;
-}
-
-@synthesize validationFunc = _validationFunc;
-
-+ (instancetype)dictionary {
- return [[[self alloc] initWithValidationFunction:NULL
- rawValues:NULL
- forKeys:NULL
- count:0] autorelease];
-}
-
-+ (instancetype)dictionaryWithValidationFunction:(GPBEnumValidationFunc)func {
- return [[[self alloc] initWithValidationFunction:func
- rawValues:NULL
- forKeys:NULL
- count:0] autorelease];
-}
-
-+ (instancetype)dictionaryWithValidationFunction:(GPBEnumValidationFunc)func
- rawValue:(int32_t)rawValue
- forKey:(NSString *)key {
- // Cast is needed so the compiler knows what class we are invoking initWithValues:forKeys:count:
- // on to get the type correct.
- return [[(GPBStringEnumDictionary*)[self alloc] initWithValidationFunction:func
- rawValues:&rawValue
- forKeys:&key
- count:1] autorelease];
-}
-
-+ (instancetype)dictionaryWithValidationFunction:(GPBEnumValidationFunc)func
- rawValues:(const int32_t [])rawValues
- forKeys:(const NSString * [])keys
- count:(NSUInteger)count {
- // Cast is needed so the compiler knows what class we are invoking initWithValues:forKeys:count:
- // on to get the type correct.
- return [[(GPBStringEnumDictionary*)[self alloc] initWithValidationFunction:func
- rawValues:rawValues
- forKeys:keys
- count:count] autorelease];
-}
-
-+ (instancetype)dictionaryWithDictionary:(GPBStringEnumDictionary *)dictionary {
- // Cast is needed so the compiler knows what class we are invoking initWithValues:forKeys:count:
- // on to get the type correct.
- return [[(GPBStringEnumDictionary*)[self alloc] initWithDictionary:dictionary] autorelease];
-}
-
-+ (instancetype)dictionaryWithValidationFunction:(GPBEnumValidationFunc)func
- capacity:(NSUInteger)numItems {
- return [[[self alloc] initWithValidationFunction:func capacity:numItems] autorelease];
-}
-
-- (instancetype)init {
- return [self initWithValidationFunction:NULL rawValues:NULL forKeys:NULL count:0];
-}
-
-- (instancetype)initWithValidationFunction:(GPBEnumValidationFunc)func {
- return [self initWithValidationFunction:func rawValues:NULL forKeys:NULL count:0];
-}
-
-- (instancetype)initWithValidationFunction:(GPBEnumValidationFunc)func
- rawValues:(const int32_t [])rawValues
- forKeys:(const NSString * [])keys
- count:(NSUInteger)count {
- self = [super init];
- if (self) {
- _dictionary = [[NSMutableDictionary alloc] init];
- _validationFunc = (func != NULL ? func : DictDefault_IsValidValue);
- if (count && rawValues && keys) {
- for (NSUInteger i = 0; i < count; ++i) {
- if (!keys[i]) {
- [NSException raise:NSInvalidArgumentException
- format:@"Attempting to add nil key to a Dictionary"];
- }
- [_dictionary setObject:@(rawValues[i]) forKey:keys[i]];
- }
- }
- }
- return self;
-}
-
-- (instancetype)initWithDictionary:(GPBStringEnumDictionary *)dictionary {
- self = [self initWithValidationFunction:dictionary.validationFunc
- rawValues:NULL
- forKeys:NULL
- count:0];
- if (self) {
- if (dictionary) {
- [_dictionary addEntriesFromDictionary:dictionary->_dictionary];
- }
- }
- return self;
-}
-
-- (instancetype)initWithValidationFunction:(GPBEnumValidationFunc)func
- capacity:(NSUInteger)numItems {
- #pragma unused(numItems)
- return [self initWithValidationFunction:func rawValues:NULL forKeys:NULL count:0];
-}
-
-- (void)dealloc {
- NSAssert(!_autocreator,
- @"%@: Autocreator must be cleared before release, autocreator: %@",
- [self class], _autocreator);
- [_dictionary release];
- [super dealloc];
-}
-
-- (instancetype)copyWithZone:(NSZone *)zone {
- return [[GPBStringEnumDictionary allocWithZone:zone] initWithDictionary:self];
-}
-
-- (BOOL)isEqual:(id)other {
- if (self == other) {
- return YES;
- }
- if (![other isKindOfClass:[GPBStringEnumDictionary class]]) {
- return NO;
- }
- GPBStringEnumDictionary *otherDictionary = other;
- return [_dictionary isEqual:otherDictionary->_dictionary];
-}
-
-- (NSUInteger)hash {
- return _dictionary.count;
-}
-
-- (NSString *)description {
- return [NSString stringWithFormat:@"<%@ %p> { %@ }", [self class], self, _dictionary];
-}
-
-- (NSUInteger)count {
- return _dictionary.count;
-}
-
-- (void)enumerateKeysAndRawValuesUsingBlock:
- (void (^)(NSString *key, int32_t value, BOOL *stop))block {
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSString *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- block(aKey, [aValue intValue], stop);
- }];
-}
-
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field {
- NSUInteger count = _dictionary.count;
- if (count == 0) {
- return 0;
- }
-
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- __block size_t result = 0;
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSString *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- size_t msgSize = ComputeDictStringFieldSize(aKey, kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictEnumFieldSize([aValue intValue], kMapValueFieldNumber, valueDataType);
- result += GPBComputeRawVarint32SizeForInteger(msgSize) + msgSize;
- }];
- size_t tagSize = GPBComputeWireFormatTagSize(GPBFieldNumber(field), GPBDataTypeMessage);
- result += tagSize * count;
- return result;
-}
-
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field {
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- GPBDataType keyDataType = field.mapKeyDataType;
- uint32_t tag = GPBWireFormatMakeTag(GPBFieldNumber(field), GPBWireFormatLengthDelimited);
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSString *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- #pragma unused(stop)
- // Write the tag.
- [outputStream writeInt32NoTag:tag];
- // Write the size of the message.
- size_t msgSize = ComputeDictStringFieldSize(aKey, kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictEnumFieldSize([aValue intValue], kMapValueFieldNumber, valueDataType);
- [outputStream writeInt32NoTag:(int32_t)msgSize];
- // Write the fields.
- WriteDictStringField(outputStream, aKey, kMapKeyFieldNumber, keyDataType);
- WriteDictEnumField(outputStream, [aValue intValue], kMapValueFieldNumber, valueDataType);
- }];
-}
-
-- (NSData *)serializedDataForUnknownValue:(int32_t)value
- forKey:(GPBGenericValue *)key
- keyDataType:(GPBDataType)keyDataType {
- size_t msgSize = ComputeDictStringFieldSize(key->valueString, kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictEnumFieldSize(value, kMapValueFieldNumber, GPBDataTypeEnum);
- NSMutableData *data = [NSMutableData dataWithLength:msgSize];
- GPBCodedOutputStream *outputStream = [[GPBCodedOutputStream alloc] initWithData:data];
- WriteDictStringField(outputStream, key->valueString, kMapKeyFieldNumber, keyDataType);
- WriteDictEnumField(outputStream, value, kMapValueFieldNumber, GPBDataTypeEnum);
- [outputStream release];
- return data;
-}
-- (void)setGPBGenericValue:(GPBGenericValue *)value
- forGPBGenericValueKey:(GPBGenericValue *)key {
- [_dictionary setObject:@(value->valueEnum) forKey:key->valueString];
-}
-
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block {
- [self enumerateKeysAndRawValuesUsingBlock:^(NSString *key, int32_t value, BOOL *stop) {
- #pragma unused(stop)
- block(key, @(value));
- }];
-}
-
-- (BOOL)getEnum:(int32_t *)value forKey:(NSString *)key {
- NSNumber *wrapped = [_dictionary objectForKey:key];
- if (wrapped && value) {
- int32_t result = [wrapped intValue];
- if (!_validationFunc(result)) {
- result = kGPBUnrecognizedEnumeratorValue;
- }
- *value = result;
- }
- return (wrapped != NULL);
-}
-
-- (BOOL)getRawValue:(int32_t *)rawValue forKey:(NSString *)key {
- NSNumber *wrapped = [_dictionary objectForKey:key];
- if (wrapped && rawValue) {
- *rawValue = [wrapped intValue];
- }
- return (wrapped != NULL);
-}
-
-- (void)enumerateKeysAndEnumsUsingBlock:
- (void (^)(NSString *key, int32_t value, BOOL *stop))block {
- GPBEnumValidationFunc func = _validationFunc;
- [_dictionary enumerateKeysAndObjectsUsingBlock:^(NSString *aKey,
- NSNumber *aValue,
- BOOL *stop) {
- int32_t unwrapped = [aValue intValue];
- if (!func(unwrapped)) {
- unwrapped = kGPBUnrecognizedEnumeratorValue;
- }
- block(aKey, unwrapped, stop);
- }];
-}
-
-- (void)addRawEntriesFromDictionary:(GPBStringEnumDictionary *)otherDictionary {
- if (otherDictionary) {
- [_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
- }
-}
-
-- (void)setRawValue:(int32_t)value forKey:(NSString *)key {
- if (!key) {
- [NSException raise:NSInvalidArgumentException
- format:@"Attempting to add nil key to a Dictionary"];
- }
- [_dictionary setObject:@(value) forKey:key];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
-}
-
-- (void)removeEnumForKey:(NSString *)aKey {
- [_dictionary removeObjectForKey:aKey];
-}
-
-- (void)removeAll {
- [_dictionary removeAllObjects];
-}
-
-- (void)setEnum:(int32_t)value forKey:(NSString *)key {
- if (!key) {
- [NSException raise:NSInvalidArgumentException
- format:@"Attempting to add nil key to a Dictionary"];
- }
- if (!_validationFunc(value)) {
- [NSException raise:NSInvalidArgumentException
- format:@"GPBStringEnumDictionary: Attempt to set an unknown enum value (%d)",
- value];
- }
-
- [_dictionary setObject:@(value) forKey:key];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
-}
-
-@end
-
-//%PDDM-EXPAND-END (5 expansions)
-
-
-//%PDDM-EXPAND DICTIONARY_BOOL_KEY_TO_POD_IMPL(UInt32, uint32_t)
-// This block of code is generated, do not edit it directly.
-
-#pragma mark - Bool -> UInt32
-
-@implementation GPBBoolUInt32Dictionary {
- @package
- uint32_t _values[2];
- BOOL _valueSet[2];
-}
-
-+ (instancetype)dictionary {
- return [[[self alloc] initWithUInt32s:NULL forKeys:NULL count:0] autorelease];
-}
-
-+ (instancetype)dictionaryWithUInt32:(uint32_t)value
- forKey:(BOOL)key {
- // Cast is needed so the compiler knows what class we are invoking initWithUInt32s:forKeys:count:
- // on to get the type correct.
- return [[(GPBBoolUInt32Dictionary*)[self alloc] initWithUInt32s:&value
- forKeys:&key
- count:1] autorelease];
-}
-
-+ (instancetype)dictionaryWithUInt32s:(const uint32_t [])values
- forKeys:(const BOOL [])keys
- count:(NSUInteger)count {
- // Cast is needed so the compiler knows what class we are invoking initWithUInt32s:forKeys:count:
- // on to get the type correct.
- return [[(GPBBoolUInt32Dictionary*)[self alloc] initWithUInt32s:values
- forKeys:keys
- count:count] autorelease];
-}
-
-+ (instancetype)dictionaryWithDictionary:(GPBBoolUInt32Dictionary *)dictionary {
- // Cast is needed so the compiler knows what class we are invoking initWithDictionary:
- // on to get the type correct.
- return [[(GPBBoolUInt32Dictionary*)[self alloc] initWithDictionary:dictionary] autorelease];
-}
-
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems {
- return [[[self alloc] initWithCapacity:numItems] autorelease];
-}
-
-- (instancetype)init {
- return [self initWithUInt32s:NULL forKeys:NULL count:0];
-}
-
-- (instancetype)initWithUInt32s:(const uint32_t [])values
- forKeys:(const BOOL [])keys
- count:(NSUInteger)count {
- self = [super init];
- if (self) {
- for (NSUInteger i = 0; i < count; ++i) {
- int idx = keys[i] ? 1 : 0;
- _values[idx] = values[i];
- _valueSet[idx] = YES;
- }
- }
- return self;
-}
-
-- (instancetype)initWithDictionary:(GPBBoolUInt32Dictionary *)dictionary {
- self = [self initWithUInt32s:NULL forKeys:NULL count:0];
- if (self) {
- if (dictionary) {
- for (int i = 0; i < 2; ++i) {
- if (dictionary->_valueSet[i]) {
- _values[i] = dictionary->_values[i];
- _valueSet[i] = YES;
- }
- }
- }
- }
- return self;
-}
-
-- (instancetype)initWithCapacity:(NSUInteger)numItems {
- #pragma unused(numItems)
- return [self initWithUInt32s:NULL forKeys:NULL count:0];
-}
-
-#if !defined(NS_BLOCK_ASSERTIONS)
-- (void)dealloc {
- NSAssert(!_autocreator,
- @"%@: Autocreator must be cleared before release, autocreator: %@",
- [self class], _autocreator);
- [super dealloc];
-}
-#endif // !defined(NS_BLOCK_ASSERTIONS)
-
-- (instancetype)copyWithZone:(NSZone *)zone {
- return [[GPBBoolUInt32Dictionary allocWithZone:zone] initWithDictionary:self];
-}
-
-- (BOOL)isEqual:(id)other {
- if (self == other) {
- return YES;
- }
- if (![other isKindOfClass:[GPBBoolUInt32Dictionary class]]) {
- return NO;
- }
- GPBBoolUInt32Dictionary *otherDictionary = other;
- if ((_valueSet[0] != otherDictionary->_valueSet[0]) ||
- (_valueSet[1] != otherDictionary->_valueSet[1])) {
- return NO;
- }
- if ((_valueSet[0] && (_values[0] != otherDictionary->_values[0])) ||
- (_valueSet[1] && (_values[1] != otherDictionary->_values[1]))) {
- return NO;
- }
- return YES;
-}
-
-- (NSUInteger)hash {
- return (_valueSet[0] ? 1 : 0) + (_valueSet[1] ? 1 : 0);
-}
-
-- (NSString *)description {
- NSMutableString *result = [NSMutableString stringWithFormat:@"<%@ %p> {", [self class], self];
- if (_valueSet[0]) {
- [result appendFormat:@"NO: %u", _values[0]];
- }
- if (_valueSet[1]) {
- [result appendFormat:@"YES: %u", _values[1]];
- }
- [result appendString:@" }"];
- return result;
-}
-
-- (NSUInteger)count {
- return (_valueSet[0] ? 1 : 0) + (_valueSet[1] ? 1 : 0);
-}
-
-- (BOOL)getUInt32:(uint32_t *)value forKey:(BOOL)key {
- int idx = (key ? 1 : 0);
- if (_valueSet[idx]) {
- if (value) {
- *value = _values[idx];
- }
- return YES;
- }
- return NO;
-}
-
-- (void)setGPBGenericValue:(GPBGenericValue *)value
- forGPBGenericValueKey:(GPBGenericValue *)key {
- int idx = (key->valueBool ? 1 : 0);
- _values[idx] = value->valueUInt32;
- _valueSet[idx] = YES;
-}
-
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block {
- if (_valueSet[0]) {
- block(@"false", [NSString stringWithFormat:@"%u", _values[0]]);
- }
- if (_valueSet[1]) {
- block(@"true", [NSString stringWithFormat:@"%u", _values[1]]);
- }
-}
-
-- (void)enumerateKeysAndUInt32sUsingBlock:
- (void (^)(BOOL key, uint32_t value, BOOL *stop))block {
- BOOL stop = NO;
- if (_valueSet[0]) {
- block(NO, _values[0], &stop);
- }
- if (!stop && _valueSet[1]) {
- block(YES, _values[1], &stop);
- }
-}
-
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field {
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- NSUInteger count = 0;
- size_t result = 0;
- for (int i = 0; i < 2; ++i) {
- if (_valueSet[i]) {
- ++count;
- size_t msgSize = ComputeDictBoolFieldSize((i == 1), kMapKeyFieldNumber, GPBDataTypeBool);
- msgSize += ComputeDictUInt32FieldSize(_values[i], kMapValueFieldNumber, valueDataType);
- result += GPBComputeRawVarint32SizeForInteger(msgSize) + msgSize;
- }
- }
- size_t tagSize = GPBComputeWireFormatTagSize(GPBFieldNumber(field), GPBDataTypeMessage);
- result += tagSize * count;
- return result;
-}
-
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field {
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- uint32_t tag = GPBWireFormatMakeTag(GPBFieldNumber(field), GPBWireFormatLengthDelimited);
- for (int i = 0; i < 2; ++i) {
- if (_valueSet[i]) {
- // Write the tag.
- [outputStream writeInt32NoTag:tag];
- // Write the size of the message.
- size_t msgSize = ComputeDictBoolFieldSize((i == 1), kMapKeyFieldNumber, GPBDataTypeBool);
- msgSize += ComputeDictUInt32FieldSize(_values[i], kMapValueFieldNumber, valueDataType);
- [outputStream writeInt32NoTag:(int32_t)msgSize];
- // Write the fields.
- WriteDictBoolField(outputStream, (i == 1), kMapKeyFieldNumber, GPBDataTypeBool);
- WriteDictUInt32Field(outputStream, _values[i], kMapValueFieldNumber, valueDataType);
- }
- }
-}
-
-- (void)addEntriesFromDictionary:(GPBBoolUInt32Dictionary *)otherDictionary {
- if (otherDictionary) {
- for (int i = 0; i < 2; ++i) {
- if (otherDictionary->_valueSet[i]) {
- _valueSet[i] = YES;
- _values[i] = otherDictionary->_values[i];
- }
- }
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
- }
-}
-
-- (void)setUInt32:(uint32_t)value forKey:(BOOL)key {
- int idx = (key ? 1 : 0);
- _values[idx] = value;
- _valueSet[idx] = YES;
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
-}
-
-- (void)removeUInt32ForKey:(BOOL)aKey {
- _valueSet[aKey ? 1 : 0] = NO;
-}
-
-- (void)removeAll {
- _valueSet[0] = NO;
- _valueSet[1] = NO;
-}
-
-@end
-
-//%PDDM-EXPAND DICTIONARY_BOOL_KEY_TO_POD_IMPL(Int32, int32_t)
-// This block of code is generated, do not edit it directly.
-
-#pragma mark - Bool -> Int32
-
-@implementation GPBBoolInt32Dictionary {
- @package
- int32_t _values[2];
- BOOL _valueSet[2];
-}
-
-+ (instancetype)dictionary {
- return [[[self alloc] initWithInt32s:NULL forKeys:NULL count:0] autorelease];
-}
-
-+ (instancetype)dictionaryWithInt32:(int32_t)value
- forKey:(BOOL)key {
- // Cast is needed so the compiler knows what class we are invoking initWithInt32s:forKeys:count:
- // on to get the type correct.
- return [[(GPBBoolInt32Dictionary*)[self alloc] initWithInt32s:&value
- forKeys:&key
- count:1] autorelease];
-}
-
-+ (instancetype)dictionaryWithInt32s:(const int32_t [])values
- forKeys:(const BOOL [])keys
- count:(NSUInteger)count {
- // Cast is needed so the compiler knows what class we are invoking initWithInt32s:forKeys:count:
- // on to get the type correct.
- return [[(GPBBoolInt32Dictionary*)[self alloc] initWithInt32s:values
- forKeys:keys
- count:count] autorelease];
-}
-
-+ (instancetype)dictionaryWithDictionary:(GPBBoolInt32Dictionary *)dictionary {
- // Cast is needed so the compiler knows what class we are invoking initWithDictionary:
- // on to get the type correct.
- return [[(GPBBoolInt32Dictionary*)[self alloc] initWithDictionary:dictionary] autorelease];
-}
-
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems {
- return [[[self alloc] initWithCapacity:numItems] autorelease];
-}
-
-- (instancetype)init {
- return [self initWithInt32s:NULL forKeys:NULL count:0];
-}
-
-- (instancetype)initWithInt32s:(const int32_t [])values
- forKeys:(const BOOL [])keys
- count:(NSUInteger)count {
- self = [super init];
- if (self) {
- for (NSUInteger i = 0; i < count; ++i) {
- int idx = keys[i] ? 1 : 0;
- _values[idx] = values[i];
- _valueSet[idx] = YES;
- }
- }
- return self;
-}
-
-- (instancetype)initWithDictionary:(GPBBoolInt32Dictionary *)dictionary {
- self = [self initWithInt32s:NULL forKeys:NULL count:0];
- if (self) {
- if (dictionary) {
- for (int i = 0; i < 2; ++i) {
- if (dictionary->_valueSet[i]) {
- _values[i] = dictionary->_values[i];
- _valueSet[i] = YES;
- }
- }
- }
- }
- return self;
-}
-
-- (instancetype)initWithCapacity:(NSUInteger)numItems {
- #pragma unused(numItems)
- return [self initWithInt32s:NULL forKeys:NULL count:0];
-}
-
-#if !defined(NS_BLOCK_ASSERTIONS)
-- (void)dealloc {
- NSAssert(!_autocreator,
- @"%@: Autocreator must be cleared before release, autocreator: %@",
- [self class], _autocreator);
- [super dealloc];
-}
-#endif // !defined(NS_BLOCK_ASSERTIONS)
-
-- (instancetype)copyWithZone:(NSZone *)zone {
- return [[GPBBoolInt32Dictionary allocWithZone:zone] initWithDictionary:self];
-}
-
-- (BOOL)isEqual:(id)other {
- if (self == other) {
- return YES;
- }
- if (![other isKindOfClass:[GPBBoolInt32Dictionary class]]) {
- return NO;
- }
- GPBBoolInt32Dictionary *otherDictionary = other;
- if ((_valueSet[0] != otherDictionary->_valueSet[0]) ||
- (_valueSet[1] != otherDictionary->_valueSet[1])) {
- return NO;
- }
- if ((_valueSet[0] && (_values[0] != otherDictionary->_values[0])) ||
- (_valueSet[1] && (_values[1] != otherDictionary->_values[1]))) {
- return NO;
- }
- return YES;
-}
-
-- (NSUInteger)hash {
- return (_valueSet[0] ? 1 : 0) + (_valueSet[1] ? 1 : 0);
-}
-
-- (NSString *)description {
- NSMutableString *result = [NSMutableString stringWithFormat:@"<%@ %p> {", [self class], self];
- if (_valueSet[0]) {
- [result appendFormat:@"NO: %d", _values[0]];
- }
- if (_valueSet[1]) {
- [result appendFormat:@"YES: %d", _values[1]];
- }
- [result appendString:@" }"];
- return result;
-}
-
-- (NSUInteger)count {
- return (_valueSet[0] ? 1 : 0) + (_valueSet[1] ? 1 : 0);
-}
-
-- (BOOL)getInt32:(int32_t *)value forKey:(BOOL)key {
- int idx = (key ? 1 : 0);
- if (_valueSet[idx]) {
- if (value) {
- *value = _values[idx];
- }
- return YES;
- }
- return NO;
-}
-
-- (void)setGPBGenericValue:(GPBGenericValue *)value
- forGPBGenericValueKey:(GPBGenericValue *)key {
- int idx = (key->valueBool ? 1 : 0);
- _values[idx] = value->valueInt32;
- _valueSet[idx] = YES;
-}
-
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block {
- if (_valueSet[0]) {
- block(@"false", [NSString stringWithFormat:@"%d", _values[0]]);
- }
- if (_valueSet[1]) {
- block(@"true", [NSString stringWithFormat:@"%d", _values[1]]);
- }
-}
-
-- (void)enumerateKeysAndInt32sUsingBlock:
- (void (^)(BOOL key, int32_t value, BOOL *stop))block {
- BOOL stop = NO;
- if (_valueSet[0]) {
- block(NO, _values[0], &stop);
- }
- if (!stop && _valueSet[1]) {
- block(YES, _values[1], &stop);
- }
-}
-
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field {
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- NSUInteger count = 0;
- size_t result = 0;
- for (int i = 0; i < 2; ++i) {
- if (_valueSet[i]) {
- ++count;
- size_t msgSize = ComputeDictBoolFieldSize((i == 1), kMapKeyFieldNumber, GPBDataTypeBool);
- msgSize += ComputeDictInt32FieldSize(_values[i], kMapValueFieldNumber, valueDataType);
- result += GPBComputeRawVarint32SizeForInteger(msgSize) + msgSize;
- }
- }
- size_t tagSize = GPBComputeWireFormatTagSize(GPBFieldNumber(field), GPBDataTypeMessage);
- result += tagSize * count;
- return result;
-}
-
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field {
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- uint32_t tag = GPBWireFormatMakeTag(GPBFieldNumber(field), GPBWireFormatLengthDelimited);
- for (int i = 0; i < 2; ++i) {
- if (_valueSet[i]) {
- // Write the tag.
- [outputStream writeInt32NoTag:tag];
- // Write the size of the message.
- size_t msgSize = ComputeDictBoolFieldSize((i == 1), kMapKeyFieldNumber, GPBDataTypeBool);
- msgSize += ComputeDictInt32FieldSize(_values[i], kMapValueFieldNumber, valueDataType);
- [outputStream writeInt32NoTag:(int32_t)msgSize];
- // Write the fields.
- WriteDictBoolField(outputStream, (i == 1), kMapKeyFieldNumber, GPBDataTypeBool);
- WriteDictInt32Field(outputStream, _values[i], kMapValueFieldNumber, valueDataType);
- }
- }
-}
-
-- (void)addEntriesFromDictionary:(GPBBoolInt32Dictionary *)otherDictionary {
- if (otherDictionary) {
- for (int i = 0; i < 2; ++i) {
- if (otherDictionary->_valueSet[i]) {
- _valueSet[i] = YES;
- _values[i] = otherDictionary->_values[i];
- }
- }
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
- }
-}
-
-- (void)setInt32:(int32_t)value forKey:(BOOL)key {
- int idx = (key ? 1 : 0);
- _values[idx] = value;
- _valueSet[idx] = YES;
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
-}
-
-- (void)removeInt32ForKey:(BOOL)aKey {
- _valueSet[aKey ? 1 : 0] = NO;
-}
-
-- (void)removeAll {
- _valueSet[0] = NO;
- _valueSet[1] = NO;
-}
-
-@end
-
-//%PDDM-EXPAND DICTIONARY_BOOL_KEY_TO_POD_IMPL(UInt64, uint64_t)
-// This block of code is generated, do not edit it directly.
-
-#pragma mark - Bool -> UInt64
-
-@implementation GPBBoolUInt64Dictionary {
- @package
- uint64_t _values[2];
- BOOL _valueSet[2];
-}
-
-+ (instancetype)dictionary {
- return [[[self alloc] initWithUInt64s:NULL forKeys:NULL count:0] autorelease];
-}
-
-+ (instancetype)dictionaryWithUInt64:(uint64_t)value
- forKey:(BOOL)key {
- // Cast is needed so the compiler knows what class we are invoking initWithUInt64s:forKeys:count:
- // on to get the type correct.
- return [[(GPBBoolUInt64Dictionary*)[self alloc] initWithUInt64s:&value
- forKeys:&key
- count:1] autorelease];
-}
-
-+ (instancetype)dictionaryWithUInt64s:(const uint64_t [])values
- forKeys:(const BOOL [])keys
- count:(NSUInteger)count {
- // Cast is needed so the compiler knows what class we are invoking initWithUInt64s:forKeys:count:
- // on to get the type correct.
- return [[(GPBBoolUInt64Dictionary*)[self alloc] initWithUInt64s:values
- forKeys:keys
- count:count] autorelease];
-}
-
-+ (instancetype)dictionaryWithDictionary:(GPBBoolUInt64Dictionary *)dictionary {
- // Cast is needed so the compiler knows what class we are invoking initWithDictionary:
- // on to get the type correct.
- return [[(GPBBoolUInt64Dictionary*)[self alloc] initWithDictionary:dictionary] autorelease];
-}
-
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems {
- return [[[self alloc] initWithCapacity:numItems] autorelease];
-}
-
-- (instancetype)init {
- return [self initWithUInt64s:NULL forKeys:NULL count:0];
-}
-
-- (instancetype)initWithUInt64s:(const uint64_t [])values
- forKeys:(const BOOL [])keys
- count:(NSUInteger)count {
- self = [super init];
- if (self) {
- for (NSUInteger i = 0; i < count; ++i) {
- int idx = keys[i] ? 1 : 0;
- _values[idx] = values[i];
- _valueSet[idx] = YES;
- }
- }
- return self;
-}
-
-- (instancetype)initWithDictionary:(GPBBoolUInt64Dictionary *)dictionary {
- self = [self initWithUInt64s:NULL forKeys:NULL count:0];
- if (self) {
- if (dictionary) {
- for (int i = 0; i < 2; ++i) {
- if (dictionary->_valueSet[i]) {
- _values[i] = dictionary->_values[i];
- _valueSet[i] = YES;
- }
- }
- }
- }
- return self;
-}
-
-- (instancetype)initWithCapacity:(NSUInteger)numItems {
- #pragma unused(numItems)
- return [self initWithUInt64s:NULL forKeys:NULL count:0];
-}
-
-#if !defined(NS_BLOCK_ASSERTIONS)
-- (void)dealloc {
- NSAssert(!_autocreator,
- @"%@: Autocreator must be cleared before release, autocreator: %@",
- [self class], _autocreator);
- [super dealloc];
-}
-#endif // !defined(NS_BLOCK_ASSERTIONS)
-
-- (instancetype)copyWithZone:(NSZone *)zone {
- return [[GPBBoolUInt64Dictionary allocWithZone:zone] initWithDictionary:self];
-}
-
-- (BOOL)isEqual:(id)other {
- if (self == other) {
- return YES;
- }
- if (![other isKindOfClass:[GPBBoolUInt64Dictionary class]]) {
- return NO;
- }
- GPBBoolUInt64Dictionary *otherDictionary = other;
- if ((_valueSet[0] != otherDictionary->_valueSet[0]) ||
- (_valueSet[1] != otherDictionary->_valueSet[1])) {
- return NO;
- }
- if ((_valueSet[0] && (_values[0] != otherDictionary->_values[0])) ||
- (_valueSet[1] && (_values[1] != otherDictionary->_values[1]))) {
- return NO;
- }
- return YES;
-}
-
-- (NSUInteger)hash {
- return (_valueSet[0] ? 1 : 0) + (_valueSet[1] ? 1 : 0);
-}
-
-- (NSString *)description {
- NSMutableString *result = [NSMutableString stringWithFormat:@"<%@ %p> {", [self class], self];
- if (_valueSet[0]) {
- [result appendFormat:@"NO: %llu", _values[0]];
- }
- if (_valueSet[1]) {
- [result appendFormat:@"YES: %llu", _values[1]];
- }
- [result appendString:@" }"];
- return result;
-}
-
-- (NSUInteger)count {
- return (_valueSet[0] ? 1 : 0) + (_valueSet[1] ? 1 : 0);
-}
-
-- (BOOL)getUInt64:(uint64_t *)value forKey:(BOOL)key {
- int idx = (key ? 1 : 0);
- if (_valueSet[idx]) {
- if (value) {
- *value = _values[idx];
- }
- return YES;
- }
- return NO;
-}
-
-- (void)setGPBGenericValue:(GPBGenericValue *)value
- forGPBGenericValueKey:(GPBGenericValue *)key {
- int idx = (key->valueBool ? 1 : 0);
- _values[idx] = value->valueUInt64;
- _valueSet[idx] = YES;
-}
-
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block {
- if (_valueSet[0]) {
- block(@"false", [NSString stringWithFormat:@"%llu", _values[0]]);
- }
- if (_valueSet[1]) {
- block(@"true", [NSString stringWithFormat:@"%llu", _values[1]]);
- }
-}
-
-- (void)enumerateKeysAndUInt64sUsingBlock:
- (void (^)(BOOL key, uint64_t value, BOOL *stop))block {
- BOOL stop = NO;
- if (_valueSet[0]) {
- block(NO, _values[0], &stop);
- }
- if (!stop && _valueSet[1]) {
- block(YES, _values[1], &stop);
- }
-}
-
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field {
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- NSUInteger count = 0;
- size_t result = 0;
- for (int i = 0; i < 2; ++i) {
- if (_valueSet[i]) {
- ++count;
- size_t msgSize = ComputeDictBoolFieldSize((i == 1), kMapKeyFieldNumber, GPBDataTypeBool);
- msgSize += ComputeDictUInt64FieldSize(_values[i], kMapValueFieldNumber, valueDataType);
- result += GPBComputeRawVarint32SizeForInteger(msgSize) + msgSize;
- }
- }
- size_t tagSize = GPBComputeWireFormatTagSize(GPBFieldNumber(field), GPBDataTypeMessage);
- result += tagSize * count;
- return result;
-}
-
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field {
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- uint32_t tag = GPBWireFormatMakeTag(GPBFieldNumber(field), GPBWireFormatLengthDelimited);
- for (int i = 0; i < 2; ++i) {
- if (_valueSet[i]) {
- // Write the tag.
- [outputStream writeInt32NoTag:tag];
- // Write the size of the message.
- size_t msgSize = ComputeDictBoolFieldSize((i == 1), kMapKeyFieldNumber, GPBDataTypeBool);
- msgSize += ComputeDictUInt64FieldSize(_values[i], kMapValueFieldNumber, valueDataType);
- [outputStream writeInt32NoTag:(int32_t)msgSize];
- // Write the fields.
- WriteDictBoolField(outputStream, (i == 1), kMapKeyFieldNumber, GPBDataTypeBool);
- WriteDictUInt64Field(outputStream, _values[i], kMapValueFieldNumber, valueDataType);
- }
- }
-}
-
-- (void)addEntriesFromDictionary:(GPBBoolUInt64Dictionary *)otherDictionary {
- if (otherDictionary) {
- for (int i = 0; i < 2; ++i) {
- if (otherDictionary->_valueSet[i]) {
- _valueSet[i] = YES;
- _values[i] = otherDictionary->_values[i];
- }
- }
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
- }
-}
-
-- (void)setUInt64:(uint64_t)value forKey:(BOOL)key {
- int idx = (key ? 1 : 0);
- _values[idx] = value;
- _valueSet[idx] = YES;
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
-}
-
-- (void)removeUInt64ForKey:(BOOL)aKey {
- _valueSet[aKey ? 1 : 0] = NO;
-}
-
-- (void)removeAll {
- _valueSet[0] = NO;
- _valueSet[1] = NO;
-}
-
-@end
-
-//%PDDM-EXPAND DICTIONARY_BOOL_KEY_TO_POD_IMPL(Int64, int64_t)
-// This block of code is generated, do not edit it directly.
-
-#pragma mark - Bool -> Int64
-
-@implementation GPBBoolInt64Dictionary {
- @package
- int64_t _values[2];
- BOOL _valueSet[2];
-}
-
-+ (instancetype)dictionary {
- return [[[self alloc] initWithInt64s:NULL forKeys:NULL count:0] autorelease];
-}
-
-+ (instancetype)dictionaryWithInt64:(int64_t)value
- forKey:(BOOL)key {
- // Cast is needed so the compiler knows what class we are invoking initWithInt64s:forKeys:count:
- // on to get the type correct.
- return [[(GPBBoolInt64Dictionary*)[self alloc] initWithInt64s:&value
- forKeys:&key
- count:1] autorelease];
-}
-
-+ (instancetype)dictionaryWithInt64s:(const int64_t [])values
- forKeys:(const BOOL [])keys
- count:(NSUInteger)count {
- // Cast is needed so the compiler knows what class we are invoking initWithInt64s:forKeys:count:
- // on to get the type correct.
- return [[(GPBBoolInt64Dictionary*)[self alloc] initWithInt64s:values
- forKeys:keys
- count:count] autorelease];
-}
-
-+ (instancetype)dictionaryWithDictionary:(GPBBoolInt64Dictionary *)dictionary {
- // Cast is needed so the compiler knows what class we are invoking initWithDictionary:
- // on to get the type correct.
- return [[(GPBBoolInt64Dictionary*)[self alloc] initWithDictionary:dictionary] autorelease];
-}
-
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems {
- return [[[self alloc] initWithCapacity:numItems] autorelease];
-}
-
-- (instancetype)init {
- return [self initWithInt64s:NULL forKeys:NULL count:0];
-}
-
-- (instancetype)initWithInt64s:(const int64_t [])values
- forKeys:(const BOOL [])keys
- count:(NSUInteger)count {
- self = [super init];
- if (self) {
- for (NSUInteger i = 0; i < count; ++i) {
- int idx = keys[i] ? 1 : 0;
- _values[idx] = values[i];
- _valueSet[idx] = YES;
- }
- }
- return self;
-}
-
-- (instancetype)initWithDictionary:(GPBBoolInt64Dictionary *)dictionary {
- self = [self initWithInt64s:NULL forKeys:NULL count:0];
- if (self) {
- if (dictionary) {
- for (int i = 0; i < 2; ++i) {
- if (dictionary->_valueSet[i]) {
- _values[i] = dictionary->_values[i];
- _valueSet[i] = YES;
- }
- }
- }
- }
- return self;
-}
-
-- (instancetype)initWithCapacity:(NSUInteger)numItems {
- #pragma unused(numItems)
- return [self initWithInt64s:NULL forKeys:NULL count:0];
-}
-
-#if !defined(NS_BLOCK_ASSERTIONS)
-- (void)dealloc {
- NSAssert(!_autocreator,
- @"%@: Autocreator must be cleared before release, autocreator: %@",
- [self class], _autocreator);
- [super dealloc];
-}
-#endif // !defined(NS_BLOCK_ASSERTIONS)
-
-- (instancetype)copyWithZone:(NSZone *)zone {
- return [[GPBBoolInt64Dictionary allocWithZone:zone] initWithDictionary:self];
-}
-
-- (BOOL)isEqual:(id)other {
- if (self == other) {
- return YES;
- }
- if (![other isKindOfClass:[GPBBoolInt64Dictionary class]]) {
- return NO;
- }
- GPBBoolInt64Dictionary *otherDictionary = other;
- if ((_valueSet[0] != otherDictionary->_valueSet[0]) ||
- (_valueSet[1] != otherDictionary->_valueSet[1])) {
- return NO;
- }
- if ((_valueSet[0] && (_values[0] != otherDictionary->_values[0])) ||
- (_valueSet[1] && (_values[1] != otherDictionary->_values[1]))) {
- return NO;
- }
- return YES;
-}
-
-- (NSUInteger)hash {
- return (_valueSet[0] ? 1 : 0) + (_valueSet[1] ? 1 : 0);
-}
-
-- (NSString *)description {
- NSMutableString *result = [NSMutableString stringWithFormat:@"<%@ %p> {", [self class], self];
- if (_valueSet[0]) {
- [result appendFormat:@"NO: %lld", _values[0]];
- }
- if (_valueSet[1]) {
- [result appendFormat:@"YES: %lld", _values[1]];
- }
- [result appendString:@" }"];
- return result;
-}
-
-- (NSUInteger)count {
- return (_valueSet[0] ? 1 : 0) + (_valueSet[1] ? 1 : 0);
-}
-
-- (BOOL)getInt64:(int64_t *)value forKey:(BOOL)key {
- int idx = (key ? 1 : 0);
- if (_valueSet[idx]) {
- if (value) {
- *value = _values[idx];
- }
- return YES;
- }
- return NO;
-}
-
-- (void)setGPBGenericValue:(GPBGenericValue *)value
- forGPBGenericValueKey:(GPBGenericValue *)key {
- int idx = (key->valueBool ? 1 : 0);
- _values[idx] = value->valueInt64;
- _valueSet[idx] = YES;
-}
-
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block {
- if (_valueSet[0]) {
- block(@"false", [NSString stringWithFormat:@"%lld", _values[0]]);
- }
- if (_valueSet[1]) {
- block(@"true", [NSString stringWithFormat:@"%lld", _values[1]]);
- }
-}
-
-- (void)enumerateKeysAndInt64sUsingBlock:
- (void (^)(BOOL key, int64_t value, BOOL *stop))block {
- BOOL stop = NO;
- if (_valueSet[0]) {
- block(NO, _values[0], &stop);
- }
- if (!stop && _valueSet[1]) {
- block(YES, _values[1], &stop);
- }
-}
-
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field {
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- NSUInteger count = 0;
- size_t result = 0;
- for (int i = 0; i < 2; ++i) {
- if (_valueSet[i]) {
- ++count;
- size_t msgSize = ComputeDictBoolFieldSize((i == 1), kMapKeyFieldNumber, GPBDataTypeBool);
- msgSize += ComputeDictInt64FieldSize(_values[i], kMapValueFieldNumber, valueDataType);
- result += GPBComputeRawVarint32SizeForInteger(msgSize) + msgSize;
- }
- }
- size_t tagSize = GPBComputeWireFormatTagSize(GPBFieldNumber(field), GPBDataTypeMessage);
- result += tagSize * count;
- return result;
-}
-
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field {
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- uint32_t tag = GPBWireFormatMakeTag(GPBFieldNumber(field), GPBWireFormatLengthDelimited);
- for (int i = 0; i < 2; ++i) {
- if (_valueSet[i]) {
- // Write the tag.
- [outputStream writeInt32NoTag:tag];
- // Write the size of the message.
- size_t msgSize = ComputeDictBoolFieldSize((i == 1), kMapKeyFieldNumber, GPBDataTypeBool);
- msgSize += ComputeDictInt64FieldSize(_values[i], kMapValueFieldNumber, valueDataType);
- [outputStream writeInt32NoTag:(int32_t)msgSize];
- // Write the fields.
- WriteDictBoolField(outputStream, (i == 1), kMapKeyFieldNumber, GPBDataTypeBool);
- WriteDictInt64Field(outputStream, _values[i], kMapValueFieldNumber, valueDataType);
- }
- }
-}
-
-- (void)addEntriesFromDictionary:(GPBBoolInt64Dictionary *)otherDictionary {
- if (otherDictionary) {
- for (int i = 0; i < 2; ++i) {
- if (otherDictionary->_valueSet[i]) {
- _valueSet[i] = YES;
- _values[i] = otherDictionary->_values[i];
- }
- }
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
- }
-}
-
-- (void)setInt64:(int64_t)value forKey:(BOOL)key {
- int idx = (key ? 1 : 0);
- _values[idx] = value;
- _valueSet[idx] = YES;
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
-}
-
-- (void)removeInt64ForKey:(BOOL)aKey {
- _valueSet[aKey ? 1 : 0] = NO;
-}
-
-- (void)removeAll {
- _valueSet[0] = NO;
- _valueSet[1] = NO;
-}
-
-@end
-
-//%PDDM-EXPAND DICTIONARY_BOOL_KEY_TO_POD_IMPL(Bool, BOOL)
-// This block of code is generated, do not edit it directly.
-
-#pragma mark - Bool -> Bool
-
-@implementation GPBBoolBoolDictionary {
- @package
- BOOL _values[2];
- BOOL _valueSet[2];
-}
-
-+ (instancetype)dictionary {
- return [[[self alloc] initWithBools:NULL forKeys:NULL count:0] autorelease];
-}
-
-+ (instancetype)dictionaryWithBool:(BOOL)value
- forKey:(BOOL)key {
- // Cast is needed so the compiler knows what class we are invoking initWithBools:forKeys:count:
- // on to get the type correct.
- return [[(GPBBoolBoolDictionary*)[self alloc] initWithBools:&value
- forKeys:&key
- count:1] autorelease];
-}
-
-+ (instancetype)dictionaryWithBools:(const BOOL [])values
- forKeys:(const BOOL [])keys
- count:(NSUInteger)count {
- // Cast is needed so the compiler knows what class we are invoking initWithBools:forKeys:count:
- // on to get the type correct.
- return [[(GPBBoolBoolDictionary*)[self alloc] initWithBools:values
- forKeys:keys
- count:count] autorelease];
-}
-
-+ (instancetype)dictionaryWithDictionary:(GPBBoolBoolDictionary *)dictionary {
- // Cast is needed so the compiler knows what class we are invoking initWithDictionary:
- // on to get the type correct.
- return [[(GPBBoolBoolDictionary*)[self alloc] initWithDictionary:dictionary] autorelease];
-}
-
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems {
- return [[[self alloc] initWithCapacity:numItems] autorelease];
-}
-
-- (instancetype)init {
- return [self initWithBools:NULL forKeys:NULL count:0];
-}
-
-- (instancetype)initWithBools:(const BOOL [])values
- forKeys:(const BOOL [])keys
- count:(NSUInteger)count {
- self = [super init];
- if (self) {
- for (NSUInteger i = 0; i < count; ++i) {
- int idx = keys[i] ? 1 : 0;
- _values[idx] = values[i];
- _valueSet[idx] = YES;
- }
- }
- return self;
-}
-
-- (instancetype)initWithDictionary:(GPBBoolBoolDictionary *)dictionary {
- self = [self initWithBools:NULL forKeys:NULL count:0];
- if (self) {
- if (dictionary) {
- for (int i = 0; i < 2; ++i) {
- if (dictionary->_valueSet[i]) {
- _values[i] = dictionary->_values[i];
- _valueSet[i] = YES;
- }
- }
- }
- }
- return self;
-}
-
-- (instancetype)initWithCapacity:(NSUInteger)numItems {
- #pragma unused(numItems)
- return [self initWithBools:NULL forKeys:NULL count:0];
-}
-
-#if !defined(NS_BLOCK_ASSERTIONS)
-- (void)dealloc {
- NSAssert(!_autocreator,
- @"%@: Autocreator must be cleared before release, autocreator: %@",
- [self class], _autocreator);
- [super dealloc];
-}
-#endif // !defined(NS_BLOCK_ASSERTIONS)
-
-- (instancetype)copyWithZone:(NSZone *)zone {
- return [[GPBBoolBoolDictionary allocWithZone:zone] initWithDictionary:self];
-}
-
-- (BOOL)isEqual:(id)other {
- if (self == other) {
- return YES;
- }
- if (![other isKindOfClass:[GPBBoolBoolDictionary class]]) {
- return NO;
- }
- GPBBoolBoolDictionary *otherDictionary = other;
- if ((_valueSet[0] != otherDictionary->_valueSet[0]) ||
- (_valueSet[1] != otherDictionary->_valueSet[1])) {
- return NO;
- }
- if ((_valueSet[0] && (_values[0] != otherDictionary->_values[0])) ||
- (_valueSet[1] && (_values[1] != otherDictionary->_values[1]))) {
- return NO;
- }
- return YES;
-}
-
-- (NSUInteger)hash {
- return (_valueSet[0] ? 1 : 0) + (_valueSet[1] ? 1 : 0);
-}
-
-- (NSString *)description {
- NSMutableString *result = [NSMutableString stringWithFormat:@"<%@ %p> {", [self class], self];
- if (_valueSet[0]) {
- [result appendFormat:@"NO: %d", _values[0]];
- }
- if (_valueSet[1]) {
- [result appendFormat:@"YES: %d", _values[1]];
- }
- [result appendString:@" }"];
- return result;
-}
-
-- (NSUInteger)count {
- return (_valueSet[0] ? 1 : 0) + (_valueSet[1] ? 1 : 0);
-}
-
-- (BOOL)getBool:(BOOL *)value forKey:(BOOL)key {
- int idx = (key ? 1 : 0);
- if (_valueSet[idx]) {
- if (value) {
- *value = _values[idx];
- }
- return YES;
- }
- return NO;
-}
-
-- (void)setGPBGenericValue:(GPBGenericValue *)value
- forGPBGenericValueKey:(GPBGenericValue *)key {
- int idx = (key->valueBool ? 1 : 0);
- _values[idx] = value->valueBool;
- _valueSet[idx] = YES;
-}
-
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block {
- if (_valueSet[0]) {
- block(@"false", (_values[0] ? @"true" : @"false"));
- }
- if (_valueSet[1]) {
- block(@"true", (_values[1] ? @"true" : @"false"));
- }
-}
-
-- (void)enumerateKeysAndBoolsUsingBlock:
- (void (^)(BOOL key, BOOL value, BOOL *stop))block {
- BOOL stop = NO;
- if (_valueSet[0]) {
- block(NO, _values[0], &stop);
- }
- if (!stop && _valueSet[1]) {
- block(YES, _values[1], &stop);
- }
-}
-
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field {
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- NSUInteger count = 0;
- size_t result = 0;
- for (int i = 0; i < 2; ++i) {
- if (_valueSet[i]) {
- ++count;
- size_t msgSize = ComputeDictBoolFieldSize((i == 1), kMapKeyFieldNumber, GPBDataTypeBool);
- msgSize += ComputeDictBoolFieldSize(_values[i], kMapValueFieldNumber, valueDataType);
- result += GPBComputeRawVarint32SizeForInteger(msgSize) + msgSize;
- }
- }
- size_t tagSize = GPBComputeWireFormatTagSize(GPBFieldNumber(field), GPBDataTypeMessage);
- result += tagSize * count;
- return result;
-}
-
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field {
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- uint32_t tag = GPBWireFormatMakeTag(GPBFieldNumber(field), GPBWireFormatLengthDelimited);
- for (int i = 0; i < 2; ++i) {
- if (_valueSet[i]) {
- // Write the tag.
- [outputStream writeInt32NoTag:tag];
- // Write the size of the message.
- size_t msgSize = ComputeDictBoolFieldSize((i == 1), kMapKeyFieldNumber, GPBDataTypeBool);
- msgSize += ComputeDictBoolFieldSize(_values[i], kMapValueFieldNumber, valueDataType);
- [outputStream writeInt32NoTag:(int32_t)msgSize];
- // Write the fields.
- WriteDictBoolField(outputStream, (i == 1), kMapKeyFieldNumber, GPBDataTypeBool);
- WriteDictBoolField(outputStream, _values[i], kMapValueFieldNumber, valueDataType);
- }
- }
-}
-
-- (void)addEntriesFromDictionary:(GPBBoolBoolDictionary *)otherDictionary {
- if (otherDictionary) {
- for (int i = 0; i < 2; ++i) {
- if (otherDictionary->_valueSet[i]) {
- _valueSet[i] = YES;
- _values[i] = otherDictionary->_values[i];
- }
- }
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
- }
-}
-
-- (void)setBool:(BOOL)value forKey:(BOOL)key {
- int idx = (key ? 1 : 0);
- _values[idx] = value;
- _valueSet[idx] = YES;
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
-}
-
-- (void)removeBoolForKey:(BOOL)aKey {
- _valueSet[aKey ? 1 : 0] = NO;
-}
-
-- (void)removeAll {
- _valueSet[0] = NO;
- _valueSet[1] = NO;
-}
-
-@end
-
-//%PDDM-EXPAND DICTIONARY_BOOL_KEY_TO_POD_IMPL(Float, float)
-// This block of code is generated, do not edit it directly.
-
-#pragma mark - Bool -> Float
-
-@implementation GPBBoolFloatDictionary {
- @package
- float _values[2];
- BOOL _valueSet[2];
-}
-
-+ (instancetype)dictionary {
- return [[[self alloc] initWithFloats:NULL forKeys:NULL count:0] autorelease];
-}
-
-+ (instancetype)dictionaryWithFloat:(float)value
- forKey:(BOOL)key {
- // Cast is needed so the compiler knows what class we are invoking initWithFloats:forKeys:count:
- // on to get the type correct.
- return [[(GPBBoolFloatDictionary*)[self alloc] initWithFloats:&value
- forKeys:&key
- count:1] autorelease];
-}
-
-+ (instancetype)dictionaryWithFloats:(const float [])values
- forKeys:(const BOOL [])keys
- count:(NSUInteger)count {
- // Cast is needed so the compiler knows what class we are invoking initWithFloats:forKeys:count:
- // on to get the type correct.
- return [[(GPBBoolFloatDictionary*)[self alloc] initWithFloats:values
- forKeys:keys
- count:count] autorelease];
-}
-
-+ (instancetype)dictionaryWithDictionary:(GPBBoolFloatDictionary *)dictionary {
- // Cast is needed so the compiler knows what class we are invoking initWithDictionary:
- // on to get the type correct.
- return [[(GPBBoolFloatDictionary*)[self alloc] initWithDictionary:dictionary] autorelease];
-}
-
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems {
- return [[[self alloc] initWithCapacity:numItems] autorelease];
-}
-
-- (instancetype)init {
- return [self initWithFloats:NULL forKeys:NULL count:0];
-}
-
-- (instancetype)initWithFloats:(const float [])values
- forKeys:(const BOOL [])keys
- count:(NSUInteger)count {
- self = [super init];
- if (self) {
- for (NSUInteger i = 0; i < count; ++i) {
- int idx = keys[i] ? 1 : 0;
- _values[idx] = values[i];
- _valueSet[idx] = YES;
- }
- }
- return self;
-}
-
-- (instancetype)initWithDictionary:(GPBBoolFloatDictionary *)dictionary {
- self = [self initWithFloats:NULL forKeys:NULL count:0];
- if (self) {
- if (dictionary) {
- for (int i = 0; i < 2; ++i) {
- if (dictionary->_valueSet[i]) {
- _values[i] = dictionary->_values[i];
- _valueSet[i] = YES;
- }
- }
- }
- }
- return self;
-}
-
-- (instancetype)initWithCapacity:(NSUInteger)numItems {
- #pragma unused(numItems)
- return [self initWithFloats:NULL forKeys:NULL count:0];
-}
-
-#if !defined(NS_BLOCK_ASSERTIONS)
-- (void)dealloc {
- NSAssert(!_autocreator,
- @"%@: Autocreator must be cleared before release, autocreator: %@",
- [self class], _autocreator);
- [super dealloc];
-}
-#endif // !defined(NS_BLOCK_ASSERTIONS)
-
-- (instancetype)copyWithZone:(NSZone *)zone {
- return [[GPBBoolFloatDictionary allocWithZone:zone] initWithDictionary:self];
-}
-
-- (BOOL)isEqual:(id)other {
- if (self == other) {
- return YES;
- }
- if (![other isKindOfClass:[GPBBoolFloatDictionary class]]) {
- return NO;
- }
- GPBBoolFloatDictionary *otherDictionary = other;
- if ((_valueSet[0] != otherDictionary->_valueSet[0]) ||
- (_valueSet[1] != otherDictionary->_valueSet[1])) {
- return NO;
- }
- if ((_valueSet[0] && (_values[0] != otherDictionary->_values[0])) ||
- (_valueSet[1] && (_values[1] != otherDictionary->_values[1]))) {
- return NO;
- }
- return YES;
-}
-
-- (NSUInteger)hash {
- return (_valueSet[0] ? 1 : 0) + (_valueSet[1] ? 1 : 0);
-}
-
-- (NSString *)description {
- NSMutableString *result = [NSMutableString stringWithFormat:@"<%@ %p> {", [self class], self];
- if (_valueSet[0]) {
- [result appendFormat:@"NO: %f", _values[0]];
- }
- if (_valueSet[1]) {
- [result appendFormat:@"YES: %f", _values[1]];
- }
- [result appendString:@" }"];
- return result;
-}
-
-- (NSUInteger)count {
- return (_valueSet[0] ? 1 : 0) + (_valueSet[1] ? 1 : 0);
-}
-
-- (BOOL)getFloat:(float *)value forKey:(BOOL)key {
- int idx = (key ? 1 : 0);
- if (_valueSet[idx]) {
- if (value) {
- *value = _values[idx];
- }
- return YES;
- }
- return NO;
-}
-
-- (void)setGPBGenericValue:(GPBGenericValue *)value
- forGPBGenericValueKey:(GPBGenericValue *)key {
- int idx = (key->valueBool ? 1 : 0);
- _values[idx] = value->valueFloat;
- _valueSet[idx] = YES;
-}
-
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block {
- if (_valueSet[0]) {
- block(@"false", [NSString stringWithFormat:@"%.*g", FLT_DIG, _values[0]]);
- }
- if (_valueSet[1]) {
- block(@"true", [NSString stringWithFormat:@"%.*g", FLT_DIG, _values[1]]);
- }
-}
-
-- (void)enumerateKeysAndFloatsUsingBlock:
- (void (^)(BOOL key, float value, BOOL *stop))block {
- BOOL stop = NO;
- if (_valueSet[0]) {
- block(NO, _values[0], &stop);
- }
- if (!stop && _valueSet[1]) {
- block(YES, _values[1], &stop);
- }
-}
-
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field {
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- NSUInteger count = 0;
- size_t result = 0;
- for (int i = 0; i < 2; ++i) {
- if (_valueSet[i]) {
- ++count;
- size_t msgSize = ComputeDictBoolFieldSize((i == 1), kMapKeyFieldNumber, GPBDataTypeBool);
- msgSize += ComputeDictFloatFieldSize(_values[i], kMapValueFieldNumber, valueDataType);
- result += GPBComputeRawVarint32SizeForInteger(msgSize) + msgSize;
- }
- }
- size_t tagSize = GPBComputeWireFormatTagSize(GPBFieldNumber(field), GPBDataTypeMessage);
- result += tagSize * count;
- return result;
-}
-
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field {
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- uint32_t tag = GPBWireFormatMakeTag(GPBFieldNumber(field), GPBWireFormatLengthDelimited);
- for (int i = 0; i < 2; ++i) {
- if (_valueSet[i]) {
- // Write the tag.
- [outputStream writeInt32NoTag:tag];
- // Write the size of the message.
- size_t msgSize = ComputeDictBoolFieldSize((i == 1), kMapKeyFieldNumber, GPBDataTypeBool);
- msgSize += ComputeDictFloatFieldSize(_values[i], kMapValueFieldNumber, valueDataType);
- [outputStream writeInt32NoTag:(int32_t)msgSize];
- // Write the fields.
- WriteDictBoolField(outputStream, (i == 1), kMapKeyFieldNumber, GPBDataTypeBool);
- WriteDictFloatField(outputStream, _values[i], kMapValueFieldNumber, valueDataType);
- }
- }
-}
-
-- (void)addEntriesFromDictionary:(GPBBoolFloatDictionary *)otherDictionary {
- if (otherDictionary) {
- for (int i = 0; i < 2; ++i) {
- if (otherDictionary->_valueSet[i]) {
- _valueSet[i] = YES;
- _values[i] = otherDictionary->_values[i];
- }
- }
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
- }
-}
-
-- (void)setFloat:(float)value forKey:(BOOL)key {
- int idx = (key ? 1 : 0);
- _values[idx] = value;
- _valueSet[idx] = YES;
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
-}
-
-- (void)removeFloatForKey:(BOOL)aKey {
- _valueSet[aKey ? 1 : 0] = NO;
-}
-
-- (void)removeAll {
- _valueSet[0] = NO;
- _valueSet[1] = NO;
-}
-
-@end
-
-//%PDDM-EXPAND DICTIONARY_BOOL_KEY_TO_POD_IMPL(Double, double)
-// This block of code is generated, do not edit it directly.
-
-#pragma mark - Bool -> Double
-
-@implementation GPBBoolDoubleDictionary {
- @package
- double _values[2];
- BOOL _valueSet[2];
-}
-
-+ (instancetype)dictionary {
- return [[[self alloc] initWithDoubles:NULL forKeys:NULL count:0] autorelease];
-}
-
-+ (instancetype)dictionaryWithDouble:(double)value
- forKey:(BOOL)key {
- // Cast is needed so the compiler knows what class we are invoking initWithDoubles:forKeys:count:
- // on to get the type correct.
- return [[(GPBBoolDoubleDictionary*)[self alloc] initWithDoubles:&value
- forKeys:&key
- count:1] autorelease];
-}
-
-+ (instancetype)dictionaryWithDoubles:(const double [])values
- forKeys:(const BOOL [])keys
- count:(NSUInteger)count {
- // Cast is needed so the compiler knows what class we are invoking initWithDoubles:forKeys:count:
- // on to get the type correct.
- return [[(GPBBoolDoubleDictionary*)[self alloc] initWithDoubles:values
- forKeys:keys
- count:count] autorelease];
-}
-
-+ (instancetype)dictionaryWithDictionary:(GPBBoolDoubleDictionary *)dictionary {
- // Cast is needed so the compiler knows what class we are invoking initWithDictionary:
- // on to get the type correct.
- return [[(GPBBoolDoubleDictionary*)[self alloc] initWithDictionary:dictionary] autorelease];
-}
-
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems {
- return [[[self alloc] initWithCapacity:numItems] autorelease];
-}
-
-- (instancetype)init {
- return [self initWithDoubles:NULL forKeys:NULL count:0];
-}
-
-- (instancetype)initWithDoubles:(const double [])values
- forKeys:(const BOOL [])keys
- count:(NSUInteger)count {
- self = [super init];
- if (self) {
- for (NSUInteger i = 0; i < count; ++i) {
- int idx = keys[i] ? 1 : 0;
- _values[idx] = values[i];
- _valueSet[idx] = YES;
- }
- }
- return self;
-}
-
-- (instancetype)initWithDictionary:(GPBBoolDoubleDictionary *)dictionary {
- self = [self initWithDoubles:NULL forKeys:NULL count:0];
- if (self) {
- if (dictionary) {
- for (int i = 0; i < 2; ++i) {
- if (dictionary->_valueSet[i]) {
- _values[i] = dictionary->_values[i];
- _valueSet[i] = YES;
- }
- }
- }
- }
- return self;
-}
-
-- (instancetype)initWithCapacity:(NSUInteger)numItems {
- #pragma unused(numItems)
- return [self initWithDoubles:NULL forKeys:NULL count:0];
-}
-
-#if !defined(NS_BLOCK_ASSERTIONS)
-- (void)dealloc {
- NSAssert(!_autocreator,
- @"%@: Autocreator must be cleared before release, autocreator: %@",
- [self class], _autocreator);
- [super dealloc];
-}
-#endif // !defined(NS_BLOCK_ASSERTIONS)
-
-- (instancetype)copyWithZone:(NSZone *)zone {
- return [[GPBBoolDoubleDictionary allocWithZone:zone] initWithDictionary:self];
-}
-
-- (BOOL)isEqual:(id)other {
- if (self == other) {
- return YES;
- }
- if (![other isKindOfClass:[GPBBoolDoubleDictionary class]]) {
- return NO;
- }
- GPBBoolDoubleDictionary *otherDictionary = other;
- if ((_valueSet[0] != otherDictionary->_valueSet[0]) ||
- (_valueSet[1] != otherDictionary->_valueSet[1])) {
- return NO;
- }
- if ((_valueSet[0] && (_values[0] != otherDictionary->_values[0])) ||
- (_valueSet[1] && (_values[1] != otherDictionary->_values[1]))) {
- return NO;
- }
- return YES;
-}
-
-- (NSUInteger)hash {
- return (_valueSet[0] ? 1 : 0) + (_valueSet[1] ? 1 : 0);
-}
-
-- (NSString *)description {
- NSMutableString *result = [NSMutableString stringWithFormat:@"<%@ %p> {", [self class], self];
- if (_valueSet[0]) {
- [result appendFormat:@"NO: %lf", _values[0]];
- }
- if (_valueSet[1]) {
- [result appendFormat:@"YES: %lf", _values[1]];
- }
- [result appendString:@" }"];
- return result;
-}
-
-- (NSUInteger)count {
- return (_valueSet[0] ? 1 : 0) + (_valueSet[1] ? 1 : 0);
-}
-
-- (BOOL)getDouble:(double *)value forKey:(BOOL)key {
- int idx = (key ? 1 : 0);
- if (_valueSet[idx]) {
- if (value) {
- *value = _values[idx];
- }
- return YES;
- }
- return NO;
-}
-
-- (void)setGPBGenericValue:(GPBGenericValue *)value
- forGPBGenericValueKey:(GPBGenericValue *)key {
- int idx = (key->valueBool ? 1 : 0);
- _values[idx] = value->valueDouble;
- _valueSet[idx] = YES;
-}
-
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block {
- if (_valueSet[0]) {
- block(@"false", [NSString stringWithFormat:@"%.*lg", DBL_DIG, _values[0]]);
- }
- if (_valueSet[1]) {
- block(@"true", [NSString stringWithFormat:@"%.*lg", DBL_DIG, _values[1]]);
- }
-}
-
-- (void)enumerateKeysAndDoublesUsingBlock:
- (void (^)(BOOL key, double value, BOOL *stop))block {
- BOOL stop = NO;
- if (_valueSet[0]) {
- block(NO, _values[0], &stop);
- }
- if (!stop && _valueSet[1]) {
- block(YES, _values[1], &stop);
- }
-}
-
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field {
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- NSUInteger count = 0;
- size_t result = 0;
- for (int i = 0; i < 2; ++i) {
- if (_valueSet[i]) {
- ++count;
- size_t msgSize = ComputeDictBoolFieldSize((i == 1), kMapKeyFieldNumber, GPBDataTypeBool);
- msgSize += ComputeDictDoubleFieldSize(_values[i], kMapValueFieldNumber, valueDataType);
- result += GPBComputeRawVarint32SizeForInteger(msgSize) + msgSize;
- }
- }
- size_t tagSize = GPBComputeWireFormatTagSize(GPBFieldNumber(field), GPBDataTypeMessage);
- result += tagSize * count;
- return result;
-}
-
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field {
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- uint32_t tag = GPBWireFormatMakeTag(GPBFieldNumber(field), GPBWireFormatLengthDelimited);
- for (int i = 0; i < 2; ++i) {
- if (_valueSet[i]) {
- // Write the tag.
- [outputStream writeInt32NoTag:tag];
- // Write the size of the message.
- size_t msgSize = ComputeDictBoolFieldSize((i == 1), kMapKeyFieldNumber, GPBDataTypeBool);
- msgSize += ComputeDictDoubleFieldSize(_values[i], kMapValueFieldNumber, valueDataType);
- [outputStream writeInt32NoTag:(int32_t)msgSize];
- // Write the fields.
- WriteDictBoolField(outputStream, (i == 1), kMapKeyFieldNumber, GPBDataTypeBool);
- WriteDictDoubleField(outputStream, _values[i], kMapValueFieldNumber, valueDataType);
- }
- }
-}
-
-- (void)addEntriesFromDictionary:(GPBBoolDoubleDictionary *)otherDictionary {
- if (otherDictionary) {
- for (int i = 0; i < 2; ++i) {
- if (otherDictionary->_valueSet[i]) {
- _valueSet[i] = YES;
- _values[i] = otherDictionary->_values[i];
- }
- }
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
- }
-}
-
-- (void)setDouble:(double)value forKey:(BOOL)key {
- int idx = (key ? 1 : 0);
- _values[idx] = value;
- _valueSet[idx] = YES;
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
-}
-
-- (void)removeDoubleForKey:(BOOL)aKey {
- _valueSet[aKey ? 1 : 0] = NO;
-}
-
-- (void)removeAll {
- _valueSet[0] = NO;
- _valueSet[1] = NO;
-}
-
-@end
-
-//%PDDM-EXPAND DICTIONARY_BOOL_KEY_TO_OBJECT_IMPL(Object, id)
-// This block of code is generated, do not edit it directly.
-
-#pragma mark - Bool -> Object
-
-@implementation GPBBoolObjectDictionary {
- @package
- id _values[2];
-}
-
-+ (instancetype)dictionary {
- return [[[self alloc] initWithObjects:NULL forKeys:NULL count:0] autorelease];
-}
-
-+ (instancetype)dictionaryWithObject:(id)object
- forKey:(BOOL)key {
- // Cast is needed so the compiler knows what class we are invoking initWithObjects:forKeys:count:
- // on to get the type correct.
- return [[(GPBBoolObjectDictionary*)[self alloc] initWithObjects:&object
- forKeys:&key
- count:1] autorelease];
-}
-
-+ (instancetype)dictionaryWithObjects:(const id [])objects
- forKeys:(const BOOL [])keys
- count:(NSUInteger)count {
- // Cast is needed so the compiler knows what class we are invoking initWithObjects:forKeys:count:
- // on to get the type correct.
- return [[(GPBBoolObjectDictionary*)[self alloc] initWithObjects:objects
- forKeys:keys
- count:count] autorelease];
-}
-
-+ (instancetype)dictionaryWithDictionary:(GPBBoolObjectDictionary *)dictionary {
- // Cast is needed so the compiler knows what class we are invoking initWithDictionary:
- // on to get the type correct.
- return [[(GPBBoolObjectDictionary*)[self alloc] initWithDictionary:dictionary] autorelease];
-}
-
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems {
- return [[[self alloc] initWithCapacity:numItems] autorelease];
-}
-
-- (instancetype)init {
- return [self initWithObjects:NULL forKeys:NULL count:0];
-}
-
-- (instancetype)initWithObjects:(const id [])objects
- forKeys:(const BOOL [])keys
- count:(NSUInteger)count {
- self = [super init];
- if (self) {
- for (NSUInteger i = 0; i < count; ++i) {
- if (!objects[i]) {
- [NSException raise:NSInvalidArgumentException
- format:@"Attempting to add nil object to a Dictionary"];
- }
- int idx = keys[i] ? 1 : 0;
- [_values[idx] release];
- _values[idx] = (id)[objects[i] retain];
- }
- }
- return self;
-}
-
-- (instancetype)initWithDictionary:(GPBBoolObjectDictionary *)dictionary {
- self = [self initWithObjects:NULL forKeys:NULL count:0];
- if (self) {
- if (dictionary) {
- _values[0] = [dictionary->_values[0] retain];
- _values[1] = [dictionary->_values[1] retain];
- }
- }
- return self;
-}
-
-- (instancetype)initWithCapacity:(NSUInteger)numItems {
- #pragma unused(numItems)
- return [self initWithObjects:NULL forKeys:NULL count:0];
-}
-
-- (void)dealloc {
- NSAssert(!_autocreator,
- @"%@: Autocreator must be cleared before release, autocreator: %@",
- [self class], _autocreator);
- [_values[0] release];
- [_values[1] release];
- [super dealloc];
-}
-
-- (instancetype)copyWithZone:(NSZone *)zone {
- return [[GPBBoolObjectDictionary allocWithZone:zone] initWithDictionary:self];
-}
-
-- (BOOL)isEqual:(id)other {
- if (self == other) {
- return YES;
- }
- if (![other isKindOfClass:[GPBBoolObjectDictionary class]]) {
- return NO;
- }
- GPBBoolObjectDictionary *otherDictionary = other;
- if (((_values[0] != nil) != (otherDictionary->_values[0] != nil)) ||
- ((_values[1] != nil) != (otherDictionary->_values[1] != nil))) {
- return NO;
- }
- if (((_values[0] != nil) && (![_values[0] isEqual:otherDictionary->_values[0]])) ||
- ((_values[1] != nil) && (![_values[1] isEqual:otherDictionary->_values[1]]))) {
- return NO;
- }
- return YES;
-}
-
-- (NSUInteger)hash {
- return ((_values[0] != nil) ? 1 : 0) + ((_values[1] != nil) ? 1 : 0);
-}
-
-- (NSString *)description {
- NSMutableString *result = [NSMutableString stringWithFormat:@"<%@ %p> {", [self class], self];
- if ((_values[0] != nil)) {
- [result appendFormat:@"NO: %@", _values[0]];
- }
- if ((_values[1] != nil)) {
- [result appendFormat:@"YES: %@", _values[1]];
- }
- [result appendString:@" }"];
- return result;
-}
-
-- (NSUInteger)count {
- return ((_values[0] != nil) ? 1 : 0) + ((_values[1] != nil) ? 1 : 0);
-}
-
-- (id)objectForKey:(BOOL)key {
- return _values[key ? 1 : 0];
-}
-
-- (void)setGPBGenericValue:(GPBGenericValue *)value
- forGPBGenericValueKey:(GPBGenericValue *)key {
- int idx = (key->valueBool ? 1 : 0);
- [_values[idx] release];
- _values[idx] = [value->valueString retain];
-}
-
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block {
- if (_values[0] != nil) {
- block(@"false", _values[0]);
- }
- if ((_values[1] != nil)) {
- block(@"true", _values[1]);
- }
-}
-
-- (void)enumerateKeysAndObjectsUsingBlock:
- (void (^)(BOOL key, id object, BOOL *stop))block {
- BOOL stop = NO;
- if (_values[0] != nil) {
- block(NO, _values[0], &stop);
- }
- if (!stop && (_values[1] != nil)) {
- block(YES, _values[1], &stop);
- }
-}
-
-- (BOOL)isInitialized {
- if (_values[0] && ![_values[0] isInitialized]) {
- return NO;
- }
- if (_values[1] && ![_values[1] isInitialized]) {
- return NO;
- }
- return YES;
-}
-
-- (instancetype)deepCopyWithZone:(NSZone *)zone {
- GPBBoolObjectDictionary *newDict =
- [[GPBBoolObjectDictionary alloc] init];
- for (int i = 0; i < 2; ++i) {
- if (_values[i] != nil) {
- newDict->_values[i] = [_values[i] copyWithZone:zone];
- }
- }
- return newDict;
-}
-
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field {
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- NSUInteger count = 0;
- size_t result = 0;
- for (int i = 0; i < 2; ++i) {
- if (_values[i] != nil) {
- ++count;
- size_t msgSize = ComputeDictBoolFieldSize((i == 1), kMapKeyFieldNumber, GPBDataTypeBool);
- msgSize += ComputeDictObjectFieldSize(_values[i], kMapValueFieldNumber, valueDataType);
- result += GPBComputeRawVarint32SizeForInteger(msgSize) + msgSize;
- }
- }
- size_t tagSize = GPBComputeWireFormatTagSize(GPBFieldNumber(field), GPBDataTypeMessage);
- result += tagSize * count;
- return result;
-}
-
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field {
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- uint32_t tag = GPBWireFormatMakeTag(GPBFieldNumber(field), GPBWireFormatLengthDelimited);
- for (int i = 0; i < 2; ++i) {
- if (_values[i] != nil) {
- // Write the tag.
- [outputStream writeInt32NoTag:tag];
- // Write the size of the message.
- size_t msgSize = ComputeDictBoolFieldSize((i == 1), kMapKeyFieldNumber, GPBDataTypeBool);
- msgSize += ComputeDictObjectFieldSize(_values[i], kMapValueFieldNumber, valueDataType);
- [outputStream writeInt32NoTag:(int32_t)msgSize];
- // Write the fields.
- WriteDictBoolField(outputStream, (i == 1), kMapKeyFieldNumber, GPBDataTypeBool);
- WriteDictObjectField(outputStream, _values[i], kMapValueFieldNumber, valueDataType);
- }
- }
-}
-
-- (void)addEntriesFromDictionary:(GPBBoolObjectDictionary *)otherDictionary {
- if (otherDictionary) {
- for (int i = 0; i < 2; ++i) {
- if (otherDictionary->_values[i] != nil) {
- [_values[i] release];
- _values[i] = [otherDictionary->_values[i] retain];
- }
- }
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
- }
-}
-
-- (void)setObject:(id)object forKey:(BOOL)key {
- if (!object) {
- [NSException raise:NSInvalidArgumentException
- format:@"Attempting to add nil object to a Dictionary"];
- }
- int idx = (key ? 1 : 0);
- [_values[idx] release];
- _values[idx] = [object retain];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
-}
-
-- (void)removeObjectForKey:(BOOL)aKey {
- int idx = (aKey ? 1 : 0);
- [_values[idx] release];
- _values[idx] = nil;
-}
-
-- (void)removeAll {
- for (int i = 0; i < 2; ++i) {
- [_values[i] release];
- _values[i] = nil;
- }
-}
-
-@end
-
-//%PDDM-EXPAND-END (8 expansions)
-
-#pragma mark - Bool -> Enum
-
-@implementation GPBBoolEnumDictionary {
- @package
- GPBEnumValidationFunc _validationFunc;
- int32_t _values[2];
- BOOL _valueSet[2];
-}
-
-@synthesize validationFunc = _validationFunc;
-
-+ (instancetype)dictionary {
- return [[[self alloc] initWithValidationFunction:NULL
- rawValues:NULL
- forKeys:NULL
- count:0] autorelease];
-}
-
-+ (instancetype)dictionaryWithValidationFunction:(GPBEnumValidationFunc)func {
- return [[[self alloc] initWithValidationFunction:func
- rawValues:NULL
- forKeys:NULL
- count:0] autorelease];
-}
-
-+ (instancetype)dictionaryWithValidationFunction:(GPBEnumValidationFunc)func
- rawValue:(int32_t)rawValue
- forKey:(BOOL)key {
- // Cast is needed so the compiler knows what class we are invoking initWithValues:forKeys:count:
- // on to get the type correct.
- return [[(GPBBoolEnumDictionary*)[self alloc] initWithValidationFunction:func
- rawValues:&rawValue
- forKeys:&key
- count:1] autorelease];
-}
-
-+ (instancetype)dictionaryWithValidationFunction:(GPBEnumValidationFunc)func
- rawValues:(const int32_t [])values
- forKeys:(const BOOL [])keys
- count:(NSUInteger)count {
- // Cast is needed so the compiler knows what class we are invoking initWithValues:forKeys:count:
- // on to get the type correct.
- return [[(GPBBoolEnumDictionary*)[self alloc] initWithValidationFunction:func
- rawValues:values
- forKeys:keys
- count:count] autorelease];
-}
-
-+ (instancetype)dictionaryWithDictionary:(GPBBoolEnumDictionary *)dictionary {
- // Cast is needed so the compiler knows what class we are invoking initWithValues:forKeys:count:
- // on to get the type correct.
- return [[(GPBBoolEnumDictionary*)[self alloc] initWithDictionary:dictionary] autorelease];
-}
-
-+ (instancetype)dictionaryWithValidationFunction:(GPBEnumValidationFunc)func
- capacity:(NSUInteger)numItems {
- return [[[self alloc] initWithValidationFunction:func capacity:numItems] autorelease];
-}
-
-- (instancetype)init {
- return [self initWithValidationFunction:NULL rawValues:NULL forKeys:NULL count:0];
-}
-
-- (instancetype)initWithValidationFunction:(GPBEnumValidationFunc)func {
- return [self initWithValidationFunction:func rawValues:NULL forKeys:NULL count:0];
-}
-
-- (instancetype)initWithValidationFunction:(GPBEnumValidationFunc)func
- rawValues:(const int32_t [])rawValues
- forKeys:(const BOOL [])keys
- count:(NSUInteger)count {
- self = [super init];
- if (self) {
- _validationFunc = (func != NULL ? func : DictDefault_IsValidValue);
- for (NSUInteger i = 0; i < count; ++i) {
- int idx = keys[i] ? 1 : 0;
- _values[idx] = rawValues[i];
- _valueSet[idx] = YES;
- }
- }
- return self;
-}
-
-- (instancetype)initWithDictionary:(GPBBoolEnumDictionary *)dictionary {
- self = [self initWithValidationFunction:dictionary.validationFunc
- rawValues:NULL
- forKeys:NULL
- count:0];
- if (self) {
- if (dictionary) {
- for (int i = 0; i < 2; ++i) {
- if (dictionary->_valueSet[i]) {
- _values[i] = dictionary->_values[i];
- _valueSet[i] = YES;
- }
- }
- }
- }
- return self;
-}
-
-- (instancetype)initWithValidationFunction:(GPBEnumValidationFunc)func
- capacity:(NSUInteger)numItems {
-#pragma unused(numItems)
- return [self initWithValidationFunction:func rawValues:NULL forKeys:NULL count:0];
-}
-
-#if !defined(NS_BLOCK_ASSERTIONS)
-- (void)dealloc {
- NSAssert(!_autocreator,
- @"%@: Autocreator must be cleared before release, autocreator: %@",
- [self class], _autocreator);
- [super dealloc];
-}
-#endif // !defined(NS_BLOCK_ASSERTIONS)
-
-- (instancetype)copyWithZone:(NSZone *)zone {
- return [[GPBBoolEnumDictionary allocWithZone:zone] initWithDictionary:self];
-}
-
-- (BOOL)isEqual:(id)other {
- if (self == other) {
- return YES;
- }
- if (![other isKindOfClass:[GPBBoolEnumDictionary class]]) {
- return NO;
- }
- GPBBoolEnumDictionary *otherDictionary = other;
- if ((_valueSet[0] != otherDictionary->_valueSet[0]) ||
- (_valueSet[1] != otherDictionary->_valueSet[1])) {
- return NO;
- }
- if ((_valueSet[0] && (_values[0] != otherDictionary->_values[0])) ||
- (_valueSet[1] && (_values[1] != otherDictionary->_values[1]))) {
- return NO;
- }
- return YES;
-}
-
-- (NSUInteger)hash {
- return (_valueSet[0] ? 1 : 0) + (_valueSet[1] ? 1 : 0);
-}
-
-- (NSString *)description {
- NSMutableString *result = [NSMutableString stringWithFormat:@"<%@ %p> {", [self class], self];
- if (_valueSet[0]) {
- [result appendFormat:@"NO: %d", _values[0]];
- }
- if (_valueSet[1]) {
- [result appendFormat:@"YES: %d", _values[1]];
- }
- [result appendString:@" }"];
- return result;
-}
-
-- (NSUInteger)count {
- return (_valueSet[0] ? 1 : 0) + (_valueSet[1] ? 1 : 0);
-}
-
-- (BOOL)getEnum:(int32_t*)value forKey:(BOOL)key {
- int idx = (key ? 1 : 0);
- if (_valueSet[idx]) {
- if (value) {
- int32_t result = _values[idx];
- if (!_validationFunc(result)) {
- result = kGPBUnrecognizedEnumeratorValue;
- }
- *value = result;
- }
- return YES;
- }
- return NO;
-}
-
-- (BOOL)getRawValue:(int32_t*)rawValue forKey:(BOOL)key {
- int idx = (key ? 1 : 0);
- if (_valueSet[idx]) {
- if (rawValue) {
- *rawValue = _values[idx];
- }
- return YES;
- }
- return NO;
-}
-
-- (void)enumerateKeysAndRawValuesUsingBlock:
- (void (^)(BOOL key, int32_t value, BOOL *stop))block {
- BOOL stop = NO;
- if (_valueSet[0]) {
- block(NO, _values[0], &stop);
- }
- if (!stop && _valueSet[1]) {
- block(YES, _values[1], &stop);
- }
-}
-
-- (void)enumerateKeysAndEnumsUsingBlock:
- (void (^)(BOOL key, int32_t rawValue, BOOL *stop))block {
- BOOL stop = NO;
- GPBEnumValidationFunc func = _validationFunc;
- int32_t validatedValue;
- if (_valueSet[0]) {
- validatedValue = _values[0];
- if (!func(validatedValue)) {
- validatedValue = kGPBUnrecognizedEnumeratorValue;
- }
- block(NO, validatedValue, &stop);
- }
- if (!stop && _valueSet[1]) {
- validatedValue = _values[1];
- if (!func(validatedValue)) {
- validatedValue = kGPBUnrecognizedEnumeratorValue;
- }
- block(YES, validatedValue, &stop);
- }
-}
-
-//%PDDM-EXPAND SERIAL_DATA_FOR_ENTRY_POD_Enum(Bool)
-// This block of code is generated, do not edit it directly.
-
-- (NSData *)serializedDataForUnknownValue:(int32_t)value
- forKey:(GPBGenericValue *)key
- keyDataType:(GPBDataType)keyDataType {
- size_t msgSize = ComputeDictBoolFieldSize(key->valueBool, kMapKeyFieldNumber, keyDataType);
- msgSize += ComputeDictEnumFieldSize(value, kMapValueFieldNumber, GPBDataTypeEnum);
- NSMutableData *data = [NSMutableData dataWithLength:msgSize];
- GPBCodedOutputStream *outputStream = [[GPBCodedOutputStream alloc] initWithData:data];
- WriteDictBoolField(outputStream, key->valueBool, kMapKeyFieldNumber, keyDataType);
- WriteDictEnumField(outputStream, value, kMapValueFieldNumber, GPBDataTypeEnum);
- [outputStream release];
- return data;
-}
-
-//%PDDM-EXPAND-END SERIAL_DATA_FOR_ENTRY_POD_Enum(Bool)
-
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field {
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- NSUInteger count = 0;
- size_t result = 0;
- for (int i = 0; i < 2; ++i) {
- if (_valueSet[i]) {
- ++count;
- size_t msgSize = ComputeDictBoolFieldSize((i == 1), kMapKeyFieldNumber, GPBDataTypeBool);
- msgSize += ComputeDictInt32FieldSize(_values[i], kMapValueFieldNumber, valueDataType);
- result += GPBComputeRawVarint32SizeForInteger(msgSize) + msgSize;
- }
- }
- size_t tagSize = GPBComputeWireFormatTagSize(GPBFieldNumber(field), GPBDataTypeMessage);
- result += tagSize * count;
- return result;
-}
-
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field {
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- uint32_t tag = GPBWireFormatMakeTag(GPBFieldNumber(field), GPBWireFormatLengthDelimited);
- for (int i = 0; i < 2; ++i) {
- if (_valueSet[i]) {
- // Write the tag.
- [outputStream writeInt32NoTag:tag];
- // Write the size of the message.
- size_t msgSize = ComputeDictBoolFieldSize((i == 1), kMapKeyFieldNumber, GPBDataTypeBool);
- msgSize += ComputeDictInt32FieldSize(_values[i], kMapValueFieldNumber, valueDataType);
- [outputStream writeInt32NoTag:(int32_t)msgSize];
- // Write the fields.
- WriteDictBoolField(outputStream, (i == 1), kMapKeyFieldNumber, GPBDataTypeBool);
- WriteDictInt32Field(outputStream, _values[i], kMapValueFieldNumber, valueDataType);
- }
- }
-}
-
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block {
- if (_valueSet[0]) {
- block(@"false", @(_values[0]));
- }
- if (_valueSet[1]) {
- block(@"true", @(_values[1]));
- }
-}
-
-- (void)setGPBGenericValue:(GPBGenericValue *)value
- forGPBGenericValueKey:(GPBGenericValue *)key {
- int idx = (key->valueBool ? 1 : 0);
- _values[idx] = value->valueInt32;
- _valueSet[idx] = YES;
-}
-
-- (void)addRawEntriesFromDictionary:(GPBBoolEnumDictionary *)otherDictionary {
- if (otherDictionary) {
- for (int i = 0; i < 2; ++i) {
- if (otherDictionary->_valueSet[i]) {
- _valueSet[i] = YES;
- _values[i] = otherDictionary->_values[i];
- }
- }
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
- }
-}
-
-- (void)setEnum:(int32_t)value forKey:(BOOL)key {
- if (!_validationFunc(value)) {
- [NSException raise:NSInvalidArgumentException
- format:@"GPBBoolEnumDictionary: Attempt to set an unknown enum value (%d)",
- value];
- }
- int idx = (key ? 1 : 0);
- _values[idx] = value;
- _valueSet[idx] = YES;
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
-}
-
-- (void)setRawValue:(int32_t)rawValue forKey:(BOOL)key {
- int idx = (key ? 1 : 0);
- _values[idx] = rawValue;
- _valueSet[idx] = YES;
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
-}
-
-- (void)removeEnumForKey:(BOOL)aKey {
- _valueSet[aKey ? 1 : 0] = NO;
-}
-
-- (void)removeAll {
- _valueSet[0] = NO;
- _valueSet[1] = NO;
-}
-
-@end
-
-#pragma mark - NSDictionary Subclass
-
-@implementation GPBAutocreatedDictionary {
- NSMutableDictionary *_dictionary;
-}
-
-- (void)dealloc {
- NSAssert(!_autocreator,
- @"%@: Autocreator must be cleared before release, autocreator: %@",
- [self class], _autocreator);
- [_dictionary release];
- [super dealloc];
-}
-
-#pragma mark Required NSDictionary overrides
-
-- (instancetype)initWithObjects:(const id [])objects
- forKeys:(const id<NSCopying> [])keys
- count:(NSUInteger)count {
- self = [super init];
- if (self) {
- _dictionary = [[NSMutableDictionary alloc] initWithObjects:objects
- forKeys:keys
- count:count];
- }
- return self;
-}
-
-- (NSUInteger)count {
- return [_dictionary count];
-}
-
-- (id)objectForKey:(id)aKey {
- return [_dictionary objectForKey:aKey];
-}
-
-- (NSEnumerator *)keyEnumerator {
- if (_dictionary == nil) {
- _dictionary = [[NSMutableDictionary alloc] init];
- }
- return [_dictionary keyEnumerator];
-}
-
-#pragma mark Required NSMutableDictionary overrides
-
-// Only need to call GPBAutocreatedDictionaryModified() when adding things
-// since we only autocreate empty dictionaries.
-
-- (void)setObject:(id)anObject forKey:(id<NSCopying>)aKey {
- if (_dictionary == nil) {
- _dictionary = [[NSMutableDictionary alloc] init];
- }
- [_dictionary setObject:anObject forKey:aKey];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
-}
-
-- (void)removeObjectForKey:(id)aKey {
- [_dictionary removeObjectForKey:aKey];
-}
-
-#pragma mark Extra things hooked
-
-- (id)copyWithZone:(NSZone *)zone {
- if (_dictionary == nil) {
- return [[NSMutableDictionary allocWithZone:zone] init];
- }
- return [_dictionary copyWithZone:zone];
-}
-
-- (id)mutableCopyWithZone:(NSZone *)zone {
- if (_dictionary == nil) {
- return [[NSMutableDictionary allocWithZone:zone] init];
- }
- return [_dictionary mutableCopyWithZone:zone];
-}
-
-// Not really needed, but subscripting is likely common enough it doesn't hurt
-// to ensure it goes directly to the real NSMutableDictionary.
-- (id)objectForKeyedSubscript:(id)key {
- return [_dictionary objectForKeyedSubscript:key];
-}
-
-// Not really needed, but subscripting is likely common enough it doesn't hurt
-// to ensure it goes directly to the real NSMutableDictionary.
-- (void)setObject:(id)obj forKeyedSubscript:(id<NSCopying>)key {
- if (_dictionary == nil) {
- _dictionary = [[NSMutableDictionary alloc] init];
- }
- [_dictionary setObject:obj forKeyedSubscript:key];
- if (_autocreator) {
- GPBAutocreatedDictionaryModified(_autocreator, self);
- }
-}
-
-- (void)enumerateKeysAndObjectsUsingBlock:(void (^)(id key,
- id obj,
- BOOL *stop))block {
- [_dictionary enumerateKeysAndObjectsUsingBlock:block];
-}
-
-- (void)enumerateKeysAndObjectsWithOptions:(NSEnumerationOptions)opts
- usingBlock:(void (^)(id key,
- id obj,
- BOOL *stop))block {
- [_dictionary enumerateKeysAndObjectsWithOptions:opts usingBlock:block];
-}
-
-@end
-
-#pragma clang diagnostic pop
diff --git a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBDictionary_PackagePrivate.h b/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBDictionary_PackagePrivate.h
deleted file mode 100644
index 7b921e8e..00000000
--- a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBDictionary_PackagePrivate.h
+++ /dev/null
@@ -1,488 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// https://developers.google.com/protocol-buffers/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#import <Foundation/Foundation.h>
-
-#import "GPBDictionary.h"
-
-@class GPBCodedInputStream;
-@class GPBCodedOutputStream;
-@class GPBExtensionRegistry;
-@class GPBFieldDescriptor;
-
-@protocol GPBDictionaryInternalsProtocol
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field;
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field;
-- (void)setGPBGenericValue:(GPBGenericValue *)value
- forGPBGenericValueKey:(GPBGenericValue *)key;
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block;
-@end
-
-//%PDDM-DEFINE DICTIONARY_PRIV_INTERFACES_FOR_POD_KEY(KEY_NAME)
-//%DICTIONARY_POD_PRIV_INTERFACES_FOR_KEY(KEY_NAME)
-//%DICTIONARY_PRIVATE_INTERFACES(KEY_NAME, Object, Object)
-//%PDDM-DEFINE DICTIONARY_POD_PRIV_INTERFACES_FOR_KEY(KEY_NAME)
-//%DICTIONARY_PRIVATE_INTERFACES(KEY_NAME, UInt32, Basic)
-//%DICTIONARY_PRIVATE_INTERFACES(KEY_NAME, Int32, Basic)
-//%DICTIONARY_PRIVATE_INTERFACES(KEY_NAME, UInt64, Basic)
-//%DICTIONARY_PRIVATE_INTERFACES(KEY_NAME, Int64, Basic)
-//%DICTIONARY_PRIVATE_INTERFACES(KEY_NAME, Bool, Basic)
-//%DICTIONARY_PRIVATE_INTERFACES(KEY_NAME, Float, Basic)
-//%DICTIONARY_PRIVATE_INTERFACES(KEY_NAME, Double, Basic)
-//%DICTIONARY_PRIVATE_INTERFACES(KEY_NAME, Enum, Enum)
-
-//%PDDM-DEFINE DICTIONARY_PRIVATE_INTERFACES(KEY_NAME, VALUE_NAME, HELPER)
-//%@interface GPB##KEY_NAME##VALUE_NAME##Dictionary () <GPBDictionaryInternalsProtocol> {
-//% @package
-//% GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
-//%}
-//%EXTRA_DICTIONARY_PRIVATE_INTERFACES_##HELPER()@end
-//%
-
-//%PDDM-DEFINE EXTRA_DICTIONARY_PRIVATE_INTERFACES_Basic()
-// Empty
-//%PDDM-DEFINE EXTRA_DICTIONARY_PRIVATE_INTERFACES_Object()
-//%- (BOOL)isInitialized;
-//%- (instancetype)deepCopyWithZone:(NSZone *)zone
-//% __attribute__((ns_returns_retained));
-//%
-//%PDDM-DEFINE EXTRA_DICTIONARY_PRIVATE_INTERFACES_Enum()
-//%- (NSData *)serializedDataForUnknownValue:(int32_t)value
-//% forKey:(GPBGenericValue *)key
-//% keyDataType:(GPBDataType)keyDataType;
-//%
-
-//%PDDM-EXPAND DICTIONARY_PRIV_INTERFACES_FOR_POD_KEY(UInt32)
-// This block of code is generated, do not edit it directly.
-
-@interface GPBUInt32UInt32Dictionary () <GPBDictionaryInternalsProtocol> {
- @package
- GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
-}
-@end
-
-@interface GPBUInt32Int32Dictionary () <GPBDictionaryInternalsProtocol> {
- @package
- GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
-}
-@end
-
-@interface GPBUInt32UInt64Dictionary () <GPBDictionaryInternalsProtocol> {
- @package
- GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
-}
-@end
-
-@interface GPBUInt32Int64Dictionary () <GPBDictionaryInternalsProtocol> {
- @package
- GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
-}
-@end
-
-@interface GPBUInt32BoolDictionary () <GPBDictionaryInternalsProtocol> {
- @package
- GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
-}
-@end
-
-@interface GPBUInt32FloatDictionary () <GPBDictionaryInternalsProtocol> {
- @package
- GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
-}
-@end
-
-@interface GPBUInt32DoubleDictionary () <GPBDictionaryInternalsProtocol> {
- @package
- GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
-}
-@end
-
-@interface GPBUInt32EnumDictionary () <GPBDictionaryInternalsProtocol> {
- @package
- GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
-}
-- (NSData *)serializedDataForUnknownValue:(int32_t)value
- forKey:(GPBGenericValue *)key
- keyDataType:(GPBDataType)keyDataType;
-@end
-
-@interface GPBUInt32ObjectDictionary () <GPBDictionaryInternalsProtocol> {
- @package
- GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
-}
-- (BOOL)isInitialized;
-- (instancetype)deepCopyWithZone:(NSZone *)zone
- __attribute__((ns_returns_retained));
-@end
-
-//%PDDM-EXPAND DICTIONARY_PRIV_INTERFACES_FOR_POD_KEY(Int32)
-// This block of code is generated, do not edit it directly.
-
-@interface GPBInt32UInt32Dictionary () <GPBDictionaryInternalsProtocol> {
- @package
- GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
-}
-@end
-
-@interface GPBInt32Int32Dictionary () <GPBDictionaryInternalsProtocol> {
- @package
- GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
-}
-@end
-
-@interface GPBInt32UInt64Dictionary () <GPBDictionaryInternalsProtocol> {
- @package
- GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
-}
-@end
-
-@interface GPBInt32Int64Dictionary () <GPBDictionaryInternalsProtocol> {
- @package
- GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
-}
-@end
-
-@interface GPBInt32BoolDictionary () <GPBDictionaryInternalsProtocol> {
- @package
- GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
-}
-@end
-
-@interface GPBInt32FloatDictionary () <GPBDictionaryInternalsProtocol> {
- @package
- GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
-}
-@end
-
-@interface GPBInt32DoubleDictionary () <GPBDictionaryInternalsProtocol> {
- @package
- GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
-}
-@end
-
-@interface GPBInt32EnumDictionary () <GPBDictionaryInternalsProtocol> {
- @package
- GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
-}
-- (NSData *)serializedDataForUnknownValue:(int32_t)value
- forKey:(GPBGenericValue *)key
- keyDataType:(GPBDataType)keyDataType;
-@end
-
-@interface GPBInt32ObjectDictionary () <GPBDictionaryInternalsProtocol> {
- @package
- GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
-}
-- (BOOL)isInitialized;
-- (instancetype)deepCopyWithZone:(NSZone *)zone
- __attribute__((ns_returns_retained));
-@end
-
-//%PDDM-EXPAND DICTIONARY_PRIV_INTERFACES_FOR_POD_KEY(UInt64)
-// This block of code is generated, do not edit it directly.
-
-@interface GPBUInt64UInt32Dictionary () <GPBDictionaryInternalsProtocol> {
- @package
- GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
-}
-@end
-
-@interface GPBUInt64Int32Dictionary () <GPBDictionaryInternalsProtocol> {
- @package
- GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
-}
-@end
-
-@interface GPBUInt64UInt64Dictionary () <GPBDictionaryInternalsProtocol> {
- @package
- GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
-}
-@end
-
-@interface GPBUInt64Int64Dictionary () <GPBDictionaryInternalsProtocol> {
- @package
- GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
-}
-@end
-
-@interface GPBUInt64BoolDictionary () <GPBDictionaryInternalsProtocol> {
- @package
- GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
-}
-@end
-
-@interface GPBUInt64FloatDictionary () <GPBDictionaryInternalsProtocol> {
- @package
- GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
-}
-@end
-
-@interface GPBUInt64DoubleDictionary () <GPBDictionaryInternalsProtocol> {
- @package
- GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
-}
-@end
-
-@interface GPBUInt64EnumDictionary () <GPBDictionaryInternalsProtocol> {
- @package
- GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
-}
-- (NSData *)serializedDataForUnknownValue:(int32_t)value
- forKey:(GPBGenericValue *)key
- keyDataType:(GPBDataType)keyDataType;
-@end
-
-@interface GPBUInt64ObjectDictionary () <GPBDictionaryInternalsProtocol> {
- @package
- GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
-}
-- (BOOL)isInitialized;
-- (instancetype)deepCopyWithZone:(NSZone *)zone
- __attribute__((ns_returns_retained));
-@end
-
-//%PDDM-EXPAND DICTIONARY_PRIV_INTERFACES_FOR_POD_KEY(Int64)
-// This block of code is generated, do not edit it directly.
-
-@interface GPBInt64UInt32Dictionary () <GPBDictionaryInternalsProtocol> {
- @package
- GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
-}
-@end
-
-@interface GPBInt64Int32Dictionary () <GPBDictionaryInternalsProtocol> {
- @package
- GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
-}
-@end
-
-@interface GPBInt64UInt64Dictionary () <GPBDictionaryInternalsProtocol> {
- @package
- GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
-}
-@end
-
-@interface GPBInt64Int64Dictionary () <GPBDictionaryInternalsProtocol> {
- @package
- GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
-}
-@end
-
-@interface GPBInt64BoolDictionary () <GPBDictionaryInternalsProtocol> {
- @package
- GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
-}
-@end
-
-@interface GPBInt64FloatDictionary () <GPBDictionaryInternalsProtocol> {
- @package
- GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
-}
-@end
-
-@interface GPBInt64DoubleDictionary () <GPBDictionaryInternalsProtocol> {
- @package
- GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
-}
-@end
-
-@interface GPBInt64EnumDictionary () <GPBDictionaryInternalsProtocol> {
- @package
- GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
-}
-- (NSData *)serializedDataForUnknownValue:(int32_t)value
- forKey:(GPBGenericValue *)key
- keyDataType:(GPBDataType)keyDataType;
-@end
-
-@interface GPBInt64ObjectDictionary () <GPBDictionaryInternalsProtocol> {
- @package
- GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
-}
-- (BOOL)isInitialized;
-- (instancetype)deepCopyWithZone:(NSZone *)zone
- __attribute__((ns_returns_retained));
-@end
-
-//%PDDM-EXPAND DICTIONARY_PRIV_INTERFACES_FOR_POD_KEY(Bool)
-// This block of code is generated, do not edit it directly.
-
-@interface GPBBoolUInt32Dictionary () <GPBDictionaryInternalsProtocol> {
- @package
- GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
-}
-@end
-
-@interface GPBBoolInt32Dictionary () <GPBDictionaryInternalsProtocol> {
- @package
- GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
-}
-@end
-
-@interface GPBBoolUInt64Dictionary () <GPBDictionaryInternalsProtocol> {
- @package
- GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
-}
-@end
-
-@interface GPBBoolInt64Dictionary () <GPBDictionaryInternalsProtocol> {
- @package
- GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
-}
-@end
-
-@interface GPBBoolBoolDictionary () <GPBDictionaryInternalsProtocol> {
- @package
- GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
-}
-@end
-
-@interface GPBBoolFloatDictionary () <GPBDictionaryInternalsProtocol> {
- @package
- GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
-}
-@end
-
-@interface GPBBoolDoubleDictionary () <GPBDictionaryInternalsProtocol> {
- @package
- GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
-}
-@end
-
-@interface GPBBoolEnumDictionary () <GPBDictionaryInternalsProtocol> {
- @package
- GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
-}
-- (NSData *)serializedDataForUnknownValue:(int32_t)value
- forKey:(GPBGenericValue *)key
- keyDataType:(GPBDataType)keyDataType;
-@end
-
-@interface GPBBoolObjectDictionary () <GPBDictionaryInternalsProtocol> {
- @package
- GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
-}
-- (BOOL)isInitialized;
-- (instancetype)deepCopyWithZone:(NSZone *)zone
- __attribute__((ns_returns_retained));
-@end
-
-//%PDDM-EXPAND DICTIONARY_POD_PRIV_INTERFACES_FOR_KEY(String)
-// This block of code is generated, do not edit it directly.
-
-@interface GPBStringUInt32Dictionary () <GPBDictionaryInternalsProtocol> {
- @package
- GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
-}
-@end
-
-@interface GPBStringInt32Dictionary () <GPBDictionaryInternalsProtocol> {
- @package
- GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
-}
-@end
-
-@interface GPBStringUInt64Dictionary () <GPBDictionaryInternalsProtocol> {
- @package
- GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
-}
-@end
-
-@interface GPBStringInt64Dictionary () <GPBDictionaryInternalsProtocol> {
- @package
- GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
-}
-@end
-
-@interface GPBStringBoolDictionary () <GPBDictionaryInternalsProtocol> {
- @package
- GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
-}
-@end
-
-@interface GPBStringFloatDictionary () <GPBDictionaryInternalsProtocol> {
- @package
- GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
-}
-@end
-
-@interface GPBStringDoubleDictionary () <GPBDictionaryInternalsProtocol> {
- @package
- GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
-}
-@end
-
-@interface GPBStringEnumDictionary () <GPBDictionaryInternalsProtocol> {
- @package
- GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
-}
-- (NSData *)serializedDataForUnknownValue:(int32_t)value
- forKey:(GPBGenericValue *)key
- keyDataType:(GPBDataType)keyDataType;
-@end
-
-//%PDDM-EXPAND-END (6 expansions)
-
-#pragma mark - NSDictionary Subclass
-
-@interface GPBAutocreatedDictionary : NSMutableDictionary {
- @package
- GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
-}
-@end
-
-#pragma mark - Helpers
-
-CF_EXTERN_C_BEGIN
-
-// Helper to compute size when an NSDictionary is used for the map instead
-// of a custom type.
-size_t GPBDictionaryComputeSizeInternalHelper(NSDictionary *dict,
- GPBFieldDescriptor *field);
-
-// Helper to write out when an NSDictionary is used for the map instead
-// of a custom type.
-void GPBDictionaryWriteToStreamInternalHelper(
- GPBCodedOutputStream *outputStream, NSDictionary *dict,
- GPBFieldDescriptor *field);
-
-// Helper to check message initialization when an NSDictionary is used for
-// the map instead of a custom type.
-BOOL GPBDictionaryIsInitializedInternalHelper(NSDictionary *dict,
- GPBFieldDescriptor *field);
-
-// Helper to read a map instead.
-void GPBDictionaryReadEntry(id mapDictionary, GPBCodedInputStream *stream,
- GPBExtensionRegistry *registry,
- GPBFieldDescriptor *field,
- GPBMessage *parentMessage);
-
-CF_EXTERN_C_END
diff --git a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBExtensionInternals.h b/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBExtensionInternals.h
deleted file mode 100644
index 2b980aef..00000000
--- a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBExtensionInternals.h
+++ /dev/null
@@ -1,50 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// https://developers.google.com/protocol-buffers/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#import <Foundation/Foundation.h>
-
-#import "GPBDescriptor.h"
-
-@class GPBCodedInputStream;
-@class GPBCodedOutputStream;
-@class GPBExtensionRegistry;
-
-void GPBExtensionMergeFromInputStream(GPBExtensionDescriptor *extension,
- BOOL isPackedOnStream,
- GPBCodedInputStream *input,
- GPBExtensionRegistry *extensionRegistry,
- GPBMessage *message);
-
-size_t GPBComputeExtensionSerializedSizeIncludingTag(
- GPBExtensionDescriptor *extension, id value);
-
-void GPBWriteExtensionValueToOutputStream(GPBExtensionDescriptor *extension,
- id value,
- GPBCodedOutputStream *output);
diff --git a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBExtensionInternals.m b/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBExtensionInternals.m
deleted file mode 100644
index 290c82a1..00000000
--- a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBExtensionInternals.m
+++ /dev/null
@@ -1,391 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// https://developers.google.com/protocol-buffers/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#import "GPBExtensionInternals.h"
-
-#import <objc/runtime.h>
-
-#import "GPBCodedInputStream_PackagePrivate.h"
-#import "GPBCodedOutputStream_PackagePrivate.h"
-#import "GPBDescriptor_PackagePrivate.h"
-#import "GPBMessage_PackagePrivate.h"
-#import "GPBUtilities_PackagePrivate.h"
-
-static id NewSingleValueFromInputStream(GPBExtensionDescriptor *extension,
- GPBCodedInputStream *input,
- GPBExtensionRegistry *extensionRegistry,
- GPBMessage *existingValue)
- __attribute__((ns_returns_retained));
-
-GPB_INLINE size_t DataTypeSize(GPBDataType dataType) {
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wswitch-enum"
- switch (dataType) {
- case GPBDataTypeBool:
- return 1;
- case GPBDataTypeFixed32:
- case GPBDataTypeSFixed32:
- case GPBDataTypeFloat:
- return 4;
- case GPBDataTypeFixed64:
- case GPBDataTypeSFixed64:
- case GPBDataTypeDouble:
- return 8;
- default:
- return 0;
- }
-#pragma clang diagnostic pop
-}
-
-static size_t ComputePBSerializedSizeNoTagOfObject(GPBDataType dataType, id object) {
-#define FIELD_CASE(TYPE, ACCESSOR) \
- case GPBDataType##TYPE: \
- return GPBCompute##TYPE##SizeNoTag([(NSNumber *)object ACCESSOR]);
-#define FIELD_CASE2(TYPE) \
- case GPBDataType##TYPE: \
- return GPBCompute##TYPE##SizeNoTag(object);
- switch (dataType) {
- FIELD_CASE(Bool, boolValue)
- FIELD_CASE(Float, floatValue)
- FIELD_CASE(Double, doubleValue)
- FIELD_CASE(Int32, intValue)
- FIELD_CASE(SFixed32, intValue)
- FIELD_CASE(SInt32, intValue)
- FIELD_CASE(Enum, intValue)
- FIELD_CASE(Int64, longLongValue)
- FIELD_CASE(SInt64, longLongValue)
- FIELD_CASE(SFixed64, longLongValue)
- FIELD_CASE(UInt32, unsignedIntValue)
- FIELD_CASE(Fixed32, unsignedIntValue)
- FIELD_CASE(UInt64, unsignedLongLongValue)
- FIELD_CASE(Fixed64, unsignedLongLongValue)
- FIELD_CASE2(Bytes)
- FIELD_CASE2(String)
- FIELD_CASE2(Message)
- FIELD_CASE2(Group)
- }
-#undef FIELD_CASE
-#undef FIELD_CASE2
-}
-
-static size_t ComputeSerializedSizeIncludingTagOfObject(
- GPBExtensionDescription *description, id object) {
-#define FIELD_CASE(TYPE, ACCESSOR) \
- case GPBDataType##TYPE: \
- return GPBCompute##TYPE##Size(description->fieldNumber, \
- [(NSNumber *)object ACCESSOR]);
-#define FIELD_CASE2(TYPE) \
- case GPBDataType##TYPE: \
- return GPBCompute##TYPE##Size(description->fieldNumber, object);
- switch (description->dataType) {
- FIELD_CASE(Bool, boolValue)
- FIELD_CASE(Float, floatValue)
- FIELD_CASE(Double, doubleValue)
- FIELD_CASE(Int32, intValue)
- FIELD_CASE(SFixed32, intValue)
- FIELD_CASE(SInt32, intValue)
- FIELD_CASE(Enum, intValue)
- FIELD_CASE(Int64, longLongValue)
- FIELD_CASE(SInt64, longLongValue)
- FIELD_CASE(SFixed64, longLongValue)
- FIELD_CASE(UInt32, unsignedIntValue)
- FIELD_CASE(Fixed32, unsignedIntValue)
- FIELD_CASE(UInt64, unsignedLongLongValue)
- FIELD_CASE(Fixed64, unsignedLongLongValue)
- FIELD_CASE2(Bytes)
- FIELD_CASE2(String)
- FIELD_CASE2(Group)
- case GPBDataTypeMessage:
- if (GPBExtensionIsWireFormat(description)) {
- return GPBComputeMessageSetExtensionSize(description->fieldNumber,
- object);
- } else {
- return GPBComputeMessageSize(description->fieldNumber, object);
- }
- }
-#undef FIELD_CASE
-#undef FIELD_CASE2
-}
-
-static size_t ComputeSerializedSizeIncludingTagOfArray(
- GPBExtensionDescription *description, NSArray *values) {
- if (GPBExtensionIsPacked(description)) {
- size_t size = 0;
- size_t typeSize = DataTypeSize(description->dataType);
- if (typeSize != 0) {
- size = values.count * typeSize;
- } else {
- for (id value in values) {
- size +=
- ComputePBSerializedSizeNoTagOfObject(description->dataType, value);
- }
- }
- return size + GPBComputeTagSize(description->fieldNumber) +
- GPBComputeRawVarint32SizeForInteger(size);
- } else {
- size_t size = 0;
- for (id value in values) {
- size += ComputeSerializedSizeIncludingTagOfObject(description, value);
- }
- return size;
- }
-}
-
-static void WriteObjectIncludingTagToCodedOutputStream(
- id object, GPBExtensionDescription *description,
- GPBCodedOutputStream *output) {
-#define FIELD_CASE(TYPE, ACCESSOR) \
- case GPBDataType##TYPE: \
- [output write##TYPE:description->fieldNumber \
- value:[(NSNumber *)object ACCESSOR]]; \
- return;
-#define FIELD_CASE2(TYPE) \
- case GPBDataType##TYPE: \
- [output write##TYPE:description->fieldNumber value:object]; \
- return;
- switch (description->dataType) {
- FIELD_CASE(Bool, boolValue)
- FIELD_CASE(Float, floatValue)
- FIELD_CASE(Double, doubleValue)
- FIELD_CASE(Int32, intValue)
- FIELD_CASE(SFixed32, intValue)
- FIELD_CASE(SInt32, intValue)
- FIELD_CASE(Enum, intValue)
- FIELD_CASE(Int64, longLongValue)
- FIELD_CASE(SInt64, longLongValue)
- FIELD_CASE(SFixed64, longLongValue)
- FIELD_CASE(UInt32, unsignedIntValue)
- FIELD_CASE(Fixed32, unsignedIntValue)
- FIELD_CASE(UInt64, unsignedLongLongValue)
- FIELD_CASE(Fixed64, unsignedLongLongValue)
- FIELD_CASE2(Bytes)
- FIELD_CASE2(String)
- FIELD_CASE2(Group)
- case GPBDataTypeMessage:
- if (GPBExtensionIsWireFormat(description)) {
- [output writeMessageSetExtension:description->fieldNumber value:object];
- } else {
- [output writeMessage:description->fieldNumber value:object];
- }
- return;
- }
-#undef FIELD_CASE
-#undef FIELD_CASE2
-}
-
-static void WriteObjectNoTagToCodedOutputStream(
- id object, GPBExtensionDescription *description,
- GPBCodedOutputStream *output) {
-#define FIELD_CASE(TYPE, ACCESSOR) \
- case GPBDataType##TYPE: \
- [output write##TYPE##NoTag:[(NSNumber *)object ACCESSOR]]; \
- return;
-#define FIELD_CASE2(TYPE) \
- case GPBDataType##TYPE: \
- [output write##TYPE##NoTag:object]; \
- return;
- switch (description->dataType) {
- FIELD_CASE(Bool, boolValue)
- FIELD_CASE(Float, floatValue)
- FIELD_CASE(Double, doubleValue)
- FIELD_CASE(Int32, intValue)
- FIELD_CASE(SFixed32, intValue)
- FIELD_CASE(SInt32, intValue)
- FIELD_CASE(Enum, intValue)
- FIELD_CASE(Int64, longLongValue)
- FIELD_CASE(SInt64, longLongValue)
- FIELD_CASE(SFixed64, longLongValue)
- FIELD_CASE(UInt32, unsignedIntValue)
- FIELD_CASE(Fixed32, unsignedIntValue)
- FIELD_CASE(UInt64, unsignedLongLongValue)
- FIELD_CASE(Fixed64, unsignedLongLongValue)
- FIELD_CASE2(Bytes)
- FIELD_CASE2(String)
- FIELD_CASE2(Message)
- case GPBDataTypeGroup:
- [output writeGroupNoTag:description->fieldNumber value:object];
- return;
- }
-#undef FIELD_CASE
-#undef FIELD_CASE2
-}
-
-static void WriteArrayIncludingTagsToCodedOutputStream(
- NSArray *values, GPBExtensionDescription *description,
- GPBCodedOutputStream *output) {
- if (GPBExtensionIsPacked(description)) {
- [output writeTag:description->fieldNumber
- format:GPBWireFormatLengthDelimited];
- size_t dataSize = 0;
- size_t typeSize = DataTypeSize(description->dataType);
- if (typeSize != 0) {
- dataSize = values.count * typeSize;
- } else {
- for (id value in values) {
- dataSize +=
- ComputePBSerializedSizeNoTagOfObject(description->dataType, value);
- }
- }
- [output writeRawVarintSizeTAs32:dataSize];
- for (id value in values) {
- WriteObjectNoTagToCodedOutputStream(value, description, output);
- }
- } else {
- for (id value in values) {
- WriteObjectIncludingTagToCodedOutputStream(value, description, output);
- }
- }
-}
-
-// Direct access is use for speed, to avoid even internally declaring things
-// read/write, etc. The warning is enabled in the project to ensure code calling
-// protos can turn on -Wdirect-ivar-access without issues.
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wdirect-ivar-access"
-
-void GPBExtensionMergeFromInputStream(GPBExtensionDescriptor *extension,
- BOOL isPackedOnStream,
- GPBCodedInputStream *input,
- GPBExtensionRegistry *extensionRegistry,
- GPBMessage *message) {
- GPBExtensionDescription *description = extension->description_;
- GPBCodedInputStreamState *state = &input->state_;
- if (isPackedOnStream) {
- NSCAssert(GPBExtensionIsRepeated(description),
- @"How was it packed if it isn't repeated?");
- int32_t length = GPBCodedInputStreamReadInt32(state);
- size_t limit = GPBCodedInputStreamPushLimit(state, length);
- while (GPBCodedInputStreamBytesUntilLimit(state) > 0) {
- id value = NewSingleValueFromInputStream(extension,
- input,
- extensionRegistry,
- nil);
- [message addExtension:extension value:value];
- [value release];
- }
- GPBCodedInputStreamPopLimit(state, limit);
- } else {
- id existingValue = nil;
- BOOL isRepeated = GPBExtensionIsRepeated(description);
- if (!isRepeated && GPBDataTypeIsMessage(description->dataType)) {
- existingValue = [message getExistingExtension:extension];
- }
- id value = NewSingleValueFromInputStream(extension,
- input,
- extensionRegistry,
- existingValue);
- if (isRepeated) {
- [message addExtension:extension value:value];
- } else {
- [message setExtension:extension value:value];
- }
- [value release];
- }
-}
-
-void GPBWriteExtensionValueToOutputStream(GPBExtensionDescriptor *extension,
- id value,
- GPBCodedOutputStream *output) {
- GPBExtensionDescription *description = extension->description_;
- if (GPBExtensionIsRepeated(description)) {
- WriteArrayIncludingTagsToCodedOutputStream(value, description, output);
- } else {
- WriteObjectIncludingTagToCodedOutputStream(value, description, output);
- }
-}
-
-size_t GPBComputeExtensionSerializedSizeIncludingTag(
- GPBExtensionDescriptor *extension, id value) {
- GPBExtensionDescription *description = extension->description_;
- if (GPBExtensionIsRepeated(description)) {
- return ComputeSerializedSizeIncludingTagOfArray(description, value);
- } else {
- return ComputeSerializedSizeIncludingTagOfObject(description, value);
- }
-}
-
-// Note that this returns a retained value intentionally.
-static id NewSingleValueFromInputStream(GPBExtensionDescriptor *extension,
- GPBCodedInputStream *input,
- GPBExtensionRegistry *extensionRegistry,
- GPBMessage *existingValue) {
- GPBExtensionDescription *description = extension->description_;
- GPBCodedInputStreamState *state = &input->state_;
- switch (description->dataType) {
- case GPBDataTypeBool: return [[NSNumber alloc] initWithBool:GPBCodedInputStreamReadBool(state)];
- case GPBDataTypeFixed32: return [[NSNumber alloc] initWithUnsignedInt:GPBCodedInputStreamReadFixed32(state)];
- case GPBDataTypeSFixed32: return [[NSNumber alloc] initWithInt:GPBCodedInputStreamReadSFixed32(state)];
- case GPBDataTypeFloat: return [[NSNumber alloc] initWithFloat:GPBCodedInputStreamReadFloat(state)];
- case GPBDataTypeFixed64: return [[NSNumber alloc] initWithUnsignedLongLong:GPBCodedInputStreamReadFixed64(state)];
- case GPBDataTypeSFixed64: return [[NSNumber alloc] initWithLongLong:GPBCodedInputStreamReadSFixed64(state)];
- case GPBDataTypeDouble: return [[NSNumber alloc] initWithDouble:GPBCodedInputStreamReadDouble(state)];
- case GPBDataTypeInt32: return [[NSNumber alloc] initWithInt:GPBCodedInputStreamReadInt32(state)];
- case GPBDataTypeInt64: return [[NSNumber alloc] initWithLongLong:GPBCodedInputStreamReadInt64(state)];
- case GPBDataTypeSInt32: return [[NSNumber alloc] initWithInt:GPBCodedInputStreamReadSInt32(state)];
- case GPBDataTypeSInt64: return [[NSNumber alloc] initWithLongLong:GPBCodedInputStreamReadSInt64(state)];
- case GPBDataTypeUInt32: return [[NSNumber alloc] initWithUnsignedInt:GPBCodedInputStreamReadUInt32(state)];
- case GPBDataTypeUInt64: return [[NSNumber alloc] initWithUnsignedLongLong:GPBCodedInputStreamReadUInt64(state)];
- case GPBDataTypeBytes: return GPBCodedInputStreamReadRetainedBytes(state);
- case GPBDataTypeString: return GPBCodedInputStreamReadRetainedString(state);
- case GPBDataTypeEnum: return [[NSNumber alloc] initWithInt:GPBCodedInputStreamReadEnum(state)];
- case GPBDataTypeGroup:
- case GPBDataTypeMessage: {
- GPBMessage *message;
- if (existingValue) {
- message = [existingValue retain];
- } else {
- GPBDescriptor *decriptor = [extension.msgClass descriptor];
- message = [[decriptor.messageClass alloc] init];
- }
-
- if (description->dataType == GPBDataTypeGroup) {
- [input readGroup:description->fieldNumber
- message:message
- extensionRegistry:extensionRegistry];
- } else {
- // description->dataType == GPBDataTypeMessage
- if (GPBExtensionIsWireFormat(description)) {
- // For MessageSet fields the message length will have already been
- // read.
- [message mergeFromCodedInputStream:input
- extensionRegistry:extensionRegistry];
- } else {
- [input readMessage:message extensionRegistry:extensionRegistry];
- }
- }
-
- return message;
- }
- }
-
- return nil;
-}
-
-#pragma clang diagnostic pop
diff --git a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBExtensionRegistry.h b/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBExtensionRegistry.h
deleted file mode 100644
index d79632d2..00000000
--- a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBExtensionRegistry.h
+++ /dev/null
@@ -1,87 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// https://developers.google.com/protocol-buffers/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#import <Foundation/Foundation.h>
-
-@class GPBDescriptor;
-@class GPBExtensionDescriptor;
-
-NS_ASSUME_NONNULL_BEGIN
-
-/**
- * A table of known extensions, searchable by name or field number. When
- * parsing a protocol message that might have extensions, you must provide a
- * GPBExtensionRegistry in which you have registered any extensions that you
- * want to be able to parse. Otherwise, those extensions will just be treated
- * like unknown fields.
- *
- * The *Root classes provide `+extensionRegistry` for the extensions defined
- * in a given file *and* all files it imports. You can also create a
- * GPBExtensionRegistry, and merge those registries to handle parsing
- * extensions defined from non overlapping files.
- *
- * ```
- * GPBExtensionRegistry *registry = [[MyProtoFileRoot extensionRegistry] copy];
- * [registry addExtension:[OtherMessage neededExtension]]; // Not in MyProtoFile
- * NSError *parseError;
- * MyMessage *msg = [MyMessage parseData:data extensionRegistry:registry error:&parseError];
- * ```
- **/
-@interface GPBExtensionRegistry : NSObject<NSCopying>
-
-/**
- * Adds the given GPBExtensionDescriptor to this registry.
- *
- * @param extension The extension description to add.
- **/
-- (void)addExtension:(GPBExtensionDescriptor *)extension;
-
-/**
- * Adds all the extensions from another registry to this registry.
- *
- * @param registry The registry to merge into this registry.
- **/
-- (void)addExtensions:(GPBExtensionRegistry *)registry;
-
-/**
- * Looks for the extension registered for the given field number on a given
- * GPBDescriptor.
- *
- * @param descriptor The descriptor to look for a registered extension on.
- * @param fieldNumber The field number of the extension to look for.
- *
- * @return The registered GPBExtensionDescriptor or nil if none was found.
- **/
-- (nullable GPBExtensionDescriptor *)extensionForDescriptor:(GPBDescriptor *)descriptor
- fieldNumber:(NSInteger)fieldNumber;
-
-@end
-
-NS_ASSUME_NONNULL_END
diff --git a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBExtensionRegistry.m b/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBExtensionRegistry.m
deleted file mode 100644
index 65534b67..00000000
--- a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBExtensionRegistry.m
+++ /dev/null
@@ -1,131 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// https://developers.google.com/protocol-buffers/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#import "GPBExtensionRegistry.h"
-
-#import "GPBBootstrap.h"
-#import "GPBDescriptor.h"
-
-@implementation GPBExtensionRegistry {
- NSMutableDictionary *mutableClassMap_;
-}
-
-- (instancetype)init {
- if ((self = [super init])) {
- mutableClassMap_ = [[NSMutableDictionary alloc] init];
- }
- return self;
-}
-
-- (void)dealloc {
- [mutableClassMap_ release];
- [super dealloc];
-}
-
-// Direct access is use for speed, to avoid even internally declaring things
-// read/write, etc. The warning is enabled in the project to ensure code calling
-// protos can turn on -Wdirect-ivar-access without issues.
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wdirect-ivar-access"
-
-- (instancetype)copyWithZone:(NSZone *)zone {
- GPBExtensionRegistry *result = [[[self class] allocWithZone:zone] init];
- if (result && mutableClassMap_.count) {
- [result->mutableClassMap_ addEntriesFromDictionary:mutableClassMap_];
- }
- return result;
-}
-
-- (CFMutableDictionaryRef)extensionMapForContainingMessageClass:
- (Class)containingMessageClass {
- CFMutableDictionaryRef extensionMap = (CFMutableDictionaryRef)
- [mutableClassMap_ objectForKey:containingMessageClass];
- if (extensionMap == nil) {
- // Use a custom dictionary here because the keys are numbers and conversion
- // back and forth from NSNumber isn't worth the cost.
- extensionMap = CFDictionaryCreateMutable(kCFAllocatorDefault, 0, NULL,
- &kCFTypeDictionaryValueCallBacks);
- [mutableClassMap_ setObject:(id)extensionMap
- forKey:(id<NSCopying>)containingMessageClass];
- }
- return extensionMap;
-}
-
-- (void)addExtension:(GPBExtensionDescriptor *)extension {
- if (extension == nil) {
- return;
- }
-
- Class containingMessageClass = extension.containingMessageClass;
- CFMutableDictionaryRef extensionMap =
- [self extensionMapForContainingMessageClass:containingMessageClass];
- ssize_t key = extension.fieldNumber;
- CFDictionarySetValue(extensionMap, (const void *)key, extension);
-}
-
-- (GPBExtensionDescriptor *)extensionForDescriptor:(GPBDescriptor *)descriptor
- fieldNumber:(NSInteger)fieldNumber {
- Class messageClass = descriptor.messageClass;
- CFMutableDictionaryRef extensionMap = (CFMutableDictionaryRef)
- [mutableClassMap_ objectForKey:messageClass];
- ssize_t key = fieldNumber;
- GPBExtensionDescriptor *result =
- (extensionMap
- ? CFDictionaryGetValue(extensionMap, (const void *)key)
- : nil);
- return result;
-}
-
-static void CopyKeyValue(const void *key, const void *value, void *context) {
- CFMutableDictionaryRef extensionMap = (CFMutableDictionaryRef)context;
- CFDictionarySetValue(extensionMap, key, value);
-}
-
-- (void)addExtensions:(GPBExtensionRegistry *)registry {
- if (registry == nil) {
- // In the case where there are no extensions just ignore.
- return;
- }
- NSMutableDictionary *otherClassMap = registry->mutableClassMap_;
- [otherClassMap enumerateKeysAndObjectsUsingBlock:^(id key, id value, BOOL * stop) {
-#pragma unused(stop)
- Class containingMessageClass = key;
- CFMutableDictionaryRef otherExtensionMap = (CFMutableDictionaryRef)value;
-
- CFMutableDictionaryRef extensionMap =
- [self extensionMapForContainingMessageClass:containingMessageClass];
-
- CFDictionaryApplyFunction(otherExtensionMap, CopyKeyValue, extensionMap);
- }];
-}
-
-#pragma clang diagnostic pop
-
-@end
diff --git a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBMessage.h b/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBMessage.h
deleted file mode 100644
index 2c325ba8..00000000
--- a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBMessage.h
+++ /dev/null
@@ -1,461 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// https://developers.google.com/protocol-buffers/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#import <Foundation/Foundation.h>
-
-#import "GPBBootstrap.h"
-
-@class GPBDescriptor;
-@class GPBCodedInputStream;
-@class GPBCodedOutputStream;
-@class GPBExtensionDescriptor;
-@class GPBExtensionRegistry;
-@class GPBFieldDescriptor;
-@class GPBUnknownFieldSet;
-
-NS_ASSUME_NONNULL_BEGIN
-
-CF_EXTERN_C_BEGIN
-
-/** NSError domain used for errors. */
-extern NSString *const GPBMessageErrorDomain;
-
-/** Error codes for NSErrors originated in GPBMessage. */
-typedef NS_ENUM(NSInteger, GPBMessageErrorCode) {
- /** Uncategorized error. */
- GPBMessageErrorCodeOther = -100,
- /** Message couldn't be serialized because it is missing required fields. */
- GPBMessageErrorCodeMissingRequiredField = -101,
-};
-
-/**
- * Key under which the GPBMessage error's reason is stored inside the userInfo
- * dictionary.
- **/
-extern NSString *const GPBErrorReasonKey;
-
-CF_EXTERN_C_END
-
-/**
- * Base class that each generated message subclasses from.
- *
- * @note @c NSCopying support is a "deep copy", in that all sub objects are
- * copied. Just like you wouldn't want a UIView/NSView trying to
- * exist in two places, you don't want a sub message to be a property
- * property of two other messages.
- *
- * @note While the class support NSSecureCoding, if the message has any
- * extensions, they will end up reloaded in @c unknownFields as there is
- * no way for the @c NSCoding plumbing to pass through a
- * @c GPBExtensionRegistry. To support extensions, instead of passing the
- * calls off to the Message, simple store the result of @c data, and then
- * when loading, fetch the data and use
- * @c +parseFromData:extensionRegistry:error: to provide an extension
- * registry.
- **/
-@interface GPBMessage : NSObject<NSSecureCoding, NSCopying>
-
-// If you add an instance method/property to this class that may conflict with
-// fields declared in protos, you need to update objective_helpers.cc. The main
-// cases are methods that take no arguments, or setFoo:/hasFoo: type methods.
-
-/**
- * The set of unknown fields for this message.
- *
- * Only messages from proto files declared with "proto2" syntax support unknown
- * fields. For "proto3" syntax, any unknown fields found while parsing are
- * dropped.
- **/
-@property(nonatomic, copy, nullable) GPBUnknownFieldSet *unknownFields;
-
-/**
- * Whether the message, along with all submessages, have the required fields
- * set. This is only applicable for files declared with "proto2" syntax, as
- * there are no required fields for "proto3" syntax.
- **/
-@property(nonatomic, readonly, getter=isInitialized) BOOL initialized;
-
-/**
- * @return An autoreleased message with the default values set.
- **/
-+ (instancetype)message;
-
-/**
- * Creates a new instance by parsing the provided data. This method should be
- * sent to the generated message class that the data should be interpreted as.
- * If there is an error the method returns nil and the error is returned in
- * errorPtr (when provided).
- *
- * @note In DEBUG builds, the parsed message is checked to be sure all required
- * fields were provided, and the parse will fail if some are missing.
- *
- * @note The errors returned are likely coming from the domain and codes listed
- * at the top of this file and GPBCodedInputStream.h.
- *
- * @param data The data to parse.
- * @param errorPtr An optional error pointer to fill in with a failure reason if
- * the data can not be parsed.
- *
- * @return A new instance of the generated class.
- **/
-+ (nullable instancetype)parseFromData:(NSData *)data error:(NSError **)errorPtr;
-
-/**
- * Creates a new instance by parsing the data. This method should be sent to
- * the generated message class that the data should be interpreted as. If
- * there is an error the method returns nil and the error is returned in
- * errorPtr (when provided).
- *
- * @note In DEBUG builds, the parsed message is checked to be sure all required
- * fields were provided, and the parse will fail if some are missing.
- *
- * @note The errors returned are likely coming from the domain and codes listed
- * at the top of this file and GPBCodedInputStream.h.
- *
- * @param data The data to parse.
- * @param extensionRegistry The extension registry to use to look up extensions.
- * @param errorPtr An optional error pointer to fill in with a failure
- * reason if the data can not be parsed.
- *
- * @return A new instance of the generated class.
- **/
-+ (nullable instancetype)parseFromData:(NSData *)data
- extensionRegistry:(nullable GPBExtensionRegistry *)extensionRegistry
- error:(NSError **)errorPtr;
-
-/**
- * Creates a new instance by parsing the data from the given input stream. This
- * method should be sent to the generated message class that the data should
- * be interpreted as. If there is an error the method returns nil and the error
- * is returned in errorPtr (when provided).
- *
- * @note In DEBUG builds, the parsed message is checked to be sure all required
- * fields were provided, and the parse will fail if some are missing.
- *
- * @note The errors returned are likely coming from the domain and codes listed
- * at the top of this file and GPBCodedInputStream.h.
- *
- * @param input The stream to read data from.
- * @param extensionRegistry The extension registry to use to look up extensions.
- * @param errorPtr An optional error pointer to fill in with a failure
- * reason if the data can not be parsed.
- *
- * @return A new instance of the generated class.
- **/
-+ (nullable instancetype)parseFromCodedInputStream:(GPBCodedInputStream *)input
- extensionRegistry:
- (nullable GPBExtensionRegistry *)extensionRegistry
- error:(NSError **)errorPtr;
-
-/**
- * Creates a new instance by parsing the data from the given input stream. This
- * method should be sent to the generated message class that the data should
- * be interpreted as. If there is an error the method returns nil and the error
- * is returned in errorPtr (when provided).
- *
- * @note Unlike the parseFrom... methods, this never checks to see if all of
- * the required fields are set. So this method can be used to reload
- * messages that may not be complete.
- *
- * @note The errors returned are likely coming from the domain and codes listed
- * at the top of this file and GPBCodedInputStream.h.
- *
- * @param input The stream to read data from.
- * @param extensionRegistry The extension registry to use to look up extensions.
- * @param errorPtr An optional error pointer to fill in with a failure
- * reason if the data can not be parsed.
- *
- * @return A new instance of the generated class.
- **/
-+ (nullable instancetype)parseDelimitedFromCodedInputStream:(GPBCodedInputStream *)input
- extensionRegistry:
- (nullable GPBExtensionRegistry *)extensionRegistry
- error:(NSError **)errorPtr;
-
-/**
- * Initializes an instance by parsing the data. This method should be sent to
- * the generated message class that the data should be interpreted as. If
- * there is an error the method returns nil and the error is returned in
- * errorPtr (when provided).
- *
- * @note In DEBUG builds, the parsed message is checked to be sure all required
- * fields were provided, and the parse will fail if some are missing.
- *
- * @note The errors returned are likely coming from the domain and codes listed
- * at the top of this file and GPBCodedInputStream.h.
- *
- * @param data The data to parse.
- * @param errorPtr An optional error pointer to fill in with a failure reason if
- * the data can not be parsed.
- *
- * @return An initialized instance of the generated class.
- **/
-- (nullable instancetype)initWithData:(NSData *)data error:(NSError **)errorPtr;
-
-/**
- * Initializes an instance by parsing the data. This method should be sent to
- * the generated message class that the data should be interpreted as. If
- * there is an error the method returns nil and the error is returned in
- * errorPtr (when provided).
- *
- * @note In DEBUG builds, the parsed message is checked to be sure all required
- * fields were provided, and the parse will fail if some are missing.
- *
- * @note The errors returned are likely coming from the domain and codes listed
- * at the top of this file and GPBCodedInputStream.h.
- *
- * @param data The data to parse.
- * @param extensionRegistry The extension registry to use to look up extensions.
- * @param errorPtr An optional error pointer to fill in with a failure
- * reason if the data can not be parsed.
- *
- * @return An initialized instance of the generated class.
- **/
-- (nullable instancetype)initWithData:(NSData *)data
- extensionRegistry:(nullable GPBExtensionRegistry *)extensionRegistry
- error:(NSError **)errorPtr;
-
-/**
- * Initializes an instance by parsing the data from the given input stream. This
- * method should be sent to the generated message class that the data should
- * be interpreted as. If there is an error the method returns nil and the error
- * is returned in errorPtr (when provided).
- *
- * @note Unlike the parseFrom... methods, this never checks to see if all of
- * the required fields are set. So this method can be used to reload
- * messages that may not be complete.
- *
- * @note The errors returned are likely coming from the domain and codes listed
- * at the top of this file and GPBCodedInputStream.h.
- *
- * @param input The stream to read data from.
- * @param extensionRegistry The extension registry to use to look up extensions.
- * @param errorPtr An optional error pointer to fill in with a failure
- * reason if the data can not be parsed.
- *
- * @return An initialized instance of the generated class.
- **/
-- (nullable instancetype)initWithCodedInputStream:(GPBCodedInputStream *)input
- extensionRegistry:
- (nullable GPBExtensionRegistry *)extensionRegistry
- error:(NSError **)errorPtr;
-
-/**
- * Parses the given data as this message's class, and merges those values into
- * this message.
- *
- * @param data The binary representation of the message to merge.
- * @param extensionRegistry The extension registry to use to look up extensions.
- *
- * @exception GPBCodedInputStreamException Exception thrown when parsing was
- * unsuccessful.
- **/
-- (void)mergeFromData:(NSData *)data
- extensionRegistry:(nullable GPBExtensionRegistry *)extensionRegistry;
-
-/**
- * Merges the fields from another message (of the same type) into this
- * message.
- *
- * @param other Message to merge into this message.
- **/
-- (void)mergeFrom:(GPBMessage *)other;
-
-/**
- * Writes out the message to the given coded output stream.
- *
- * @param output The coded output stream into which to write the message.
- **/
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)output;
-
-/**
- * Writes out the message to the given output stream.
- *
- * @param output The output stream into which to write the message.
- **/
-- (void)writeToOutputStream:(NSOutputStream *)output;
-
-/**
- * Writes out a varint for the message size followed by the the message to
- * the given output stream.
- *
- * @param output The coded output stream into which to write the message.
- **/
-- (void)writeDelimitedToCodedOutputStream:(GPBCodedOutputStream *)output;
-
-/**
- * Writes out a varint for the message size followed by the the message to
- * the given output stream.
- *
- * @param output The output stream into which to write the message.
- **/
-- (void)writeDelimitedToOutputStream:(NSOutputStream *)output;
-
-/**
- * Serializes the message to an NSData.
- *
- * If there is an error while generating the data, nil is returned.
- *
- * @note This value is not cached, so if you are using it repeatedly, cache
- * it yourself.
- *
- * @note In DEBUG ONLY, the message is also checked for all required field,
- * if one is missing, nil will be returned.
- *
- * @return The binary representation of the message.
- **/
-- (nullable NSData *)data;
-
-/**
- * Serializes a varint with the message size followed by the message data,
- * returning that as an NSData.
- *
- * @note This value is not cached, so if you are using it repeatedly, it is
- * recommended to keep a local copy.
- *
- * @return The binary representation of the size along with the message.
- **/
-- (NSData *)delimitedData;
-
-/**
- * Calculates the size of the object if it were serialized.
- *
- * This is not a cached value. If you are following a pattern like this:
- *
- * ```
- * size_t size = [aMsg serializedSize];
- * NSMutableData *foo = [NSMutableData dataWithCapacity:size + sizeof(size)];
- * [foo writeSize:size];
- * [foo appendData:[aMsg data]];
- * ```
- *
- * you would be better doing:
- *
- * ```
- * NSData *data = [aMsg data];
- * NSUInteger size = [aMsg length];
- * NSMutableData *foo = [NSMutableData dataWithCapacity:size + sizeof(size)];
- * [foo writeSize:size];
- * [foo appendData:data];
- * ```
- *
- * @return The size of the message in it's binary representation.
- **/
-- (size_t)serializedSize;
-
-/**
- * @return The descriptor for the message class.
- **/
-+ (GPBDescriptor *)descriptor;
-
-/**
- * Return the descriptor for the message.
- **/
-- (GPBDescriptor *)descriptor;
-
-/**
- * @return An array with the extension descriptors that are currently set on the
- * message.
- **/
-- (NSArray *)extensionsCurrentlySet;
-
-/**
- * Checks whether there is an extension set on the message which matches the
- * given extension descriptor.
- *
- * @param extension Extension descriptor to check if it's set on the message.
- *
- * @return Whether the extension is currently set on the message.
- **/
-- (BOOL)hasExtension:(GPBExtensionDescriptor *)extension;
-
-/*
- * Fetches the given extension's value for this message.
- *
- * Extensions use boxed values (NSNumbers) for PODs and NSMutableArrays for
- * repeated fields. If the extension is a Message one will be auto created for
- * you and returned similar to fields.
- *
- * @param extension The extension descriptor of the extension to fetch.
- *
- * @return The extension matching the given descriptor, or nil if none found.
- **/
-- (nullable id)getExtension:(GPBExtensionDescriptor *)extension;
-
-/**
- * Sets the given extension's value for this message. This only applies for
- * single field extensions (i.e. - not repeated fields).
- *
- * Extensions use boxed values (NSNumbers).
- *
- * @param extension The extension descriptor under which to set the value.
- * @param value The value to be set as the extension.
- **/
-- (void)setExtension:(GPBExtensionDescriptor *)extension
- value:(nullable id)value;
-
-/**
- * Adds the given value to the extension for this message. This only applies
- * to repeated field extensions. If the field is a repeated POD type, the value
- * should be an NSNumber.
- *
- * @param extension The extension descriptor under which to add the value.
- * @param value The value to be added to the repeated extension.
- **/
-- (void)addExtension:(GPBExtensionDescriptor *)extension value:(id)value;
-
-/**
- * Replaces the value at the given index with the given value for the extension
- * on this message. This only applies to repeated field extensions. If the field
- * is a repeated POD type, the value is should be an NSNumber.
- *
- * @param extension The extension descriptor under which to replace the value.
- * @param index The index of the extension to be replaced.
- * @param value The value to be replaced in the repeated extension.
- **/
-- (void)setExtension:(GPBExtensionDescriptor *)extension
- index:(NSUInteger)index
- value:(id)value;
-
-/**
- * Clears the given extension for this message.
- *
- * @param extension The extension descriptor to be cleared from this message.
- **/
-- (void)clearExtension:(GPBExtensionDescriptor *)extension;
-
-/**
- * Resets all of the fields of this message to their default values.
- **/
-- (void)clear;
-
-@end
-
-NS_ASSUME_NONNULL_END
diff --git a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBMessage.m b/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBMessage.m
deleted file mode 100644
index 78935b19..00000000
--- a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBMessage.m
+++ /dev/null
@@ -1,3262 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// https://developers.google.com/protocol-buffers/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#import "GPBMessage_PackagePrivate.h"
-
-#import <objc/runtime.h>
-#import <objc/message.h>
-
-#import "GPBArray_PackagePrivate.h"
-#import "GPBCodedInputStream_PackagePrivate.h"
-#import "GPBCodedOutputStream_PackagePrivate.h"
-#import "GPBDescriptor_PackagePrivate.h"
-#import "GPBDictionary_PackagePrivate.h"
-#import "GPBExtensionInternals.h"
-#import "GPBExtensionRegistry.h"
-#import "GPBRootObject_PackagePrivate.h"
-#import "GPBUnknownFieldSet_PackagePrivate.h"
-#import "GPBUtilities_PackagePrivate.h"
-
-// Direct access is use for speed, to avoid even internally declaring things
-// read/write, etc. The warning is enabled in the project to ensure code calling
-// protos can turn on -Wdirect-ivar-access without issues.
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wdirect-ivar-access"
-
-NSString *const GPBMessageErrorDomain =
- GPBNSStringifySymbol(GPBMessageErrorDomain);
-
-NSString *const GPBErrorReasonKey = @"Reason";
-
-static NSString *const kGPBDataCoderKey = @"GPBData";
-
-//
-// PLEASE REMEMBER:
-//
-// This is the base class for *all* messages generated, so any selector defined,
-// *public* or *private* could end up colliding with a proto message field. So
-// avoid using selectors that could match a property, use C functions to hide
-// them, etc.
-//
-
-@interface GPBMessage () {
- @package
- GPBUnknownFieldSet *unknownFields_;
- NSMutableDictionary *extensionMap_;
- NSMutableDictionary *autocreatedExtensionMap_;
-
- // If the object was autocreated, we remember the creator so that if we get
- // mutated, we can inform the creator to make our field visible.
- GPBMessage *autocreator_;
- GPBFieldDescriptor *autocreatorField_;
- GPBExtensionDescriptor *autocreatorExtension_;
-}
-@end
-
-static id CreateArrayForField(GPBFieldDescriptor *field,
- GPBMessage *autocreator)
- __attribute__((ns_returns_retained));
-static id GetOrCreateArrayIvarWithField(GPBMessage *self,
- GPBFieldDescriptor *field,
- GPBFileSyntax syntax);
-static id GetArrayIvarWithField(GPBMessage *self, GPBFieldDescriptor *field);
-static id CreateMapForField(GPBFieldDescriptor *field,
- GPBMessage *autocreator)
- __attribute__((ns_returns_retained));
-static id GetOrCreateMapIvarWithField(GPBMessage *self,
- GPBFieldDescriptor *field,
- GPBFileSyntax syntax);
-static id GetMapIvarWithField(GPBMessage *self, GPBFieldDescriptor *field);
-static NSMutableDictionary *CloneExtensionMap(NSDictionary *extensionMap,
- NSZone *zone)
- __attribute__((ns_returns_retained));
-
-#ifdef DEBUG
-static NSError *MessageError(NSInteger code, NSDictionary *userInfo) {
- return [NSError errorWithDomain:GPBMessageErrorDomain
- code:code
- userInfo:userInfo];
-}
-#endif
-
-static NSError *ErrorFromException(NSException *exception) {
- NSError *error = nil;
-
- if ([exception.name isEqual:GPBCodedInputStreamException]) {
- NSDictionary *exceptionInfo = exception.userInfo;
- error = exceptionInfo[GPBCodedInputStreamUnderlyingErrorKey];
- }
-
- if (!error) {
- NSString *reason = exception.reason;
- NSDictionary *userInfo = nil;
- if ([reason length]) {
- userInfo = @{ GPBErrorReasonKey : reason };
- }
-
- error = [NSError errorWithDomain:GPBMessageErrorDomain
- code:GPBMessageErrorCodeOther
- userInfo:userInfo];
- }
- return error;
-}
-
-static void CheckExtension(GPBMessage *self,
- GPBExtensionDescriptor *extension) {
- if ([self class] != extension.containingMessageClass) {
- [NSException
- raise:NSInvalidArgumentException
- format:@"Extension %@ used on wrong class (%@ instead of %@)",
- extension.singletonName,
- [self class], extension.containingMessageClass];
- }
-}
-
-static NSMutableDictionary *CloneExtensionMap(NSDictionary *extensionMap,
- NSZone *zone) {
- if (extensionMap.count == 0) {
- return nil;
- }
- NSMutableDictionary *result = [[NSMutableDictionary allocWithZone:zone]
- initWithCapacity:extensionMap.count];
-
- for (GPBExtensionDescriptor *extension in extensionMap) {
- id value = [extensionMap objectForKey:extension];
- BOOL isMessageExtension = GPBExtensionIsMessage(extension);
-
- if (extension.repeated) {
- if (isMessageExtension) {
- NSMutableArray *list =
- [[NSMutableArray alloc] initWithCapacity:[value count]];
- for (GPBMessage *listValue in value) {
- GPBMessage *copiedValue = [listValue copyWithZone:zone];
- [list addObject:copiedValue];
- [copiedValue release];
- }
- [result setObject:list forKey:extension];
- [list release];
- } else {
- NSMutableArray *copiedValue = [value mutableCopyWithZone:zone];
- [result setObject:copiedValue forKey:extension];
- [copiedValue release];
- }
- } else {
- if (isMessageExtension) {
- GPBMessage *copiedValue = [value copyWithZone:zone];
- [result setObject:copiedValue forKey:extension];
- [copiedValue release];
- } else {
- [result setObject:value forKey:extension];
- }
- }
- }
-
- return result;
-}
-
-static id CreateArrayForField(GPBFieldDescriptor *field,
- GPBMessage *autocreator) {
- id result;
- GPBDataType fieldDataType = GPBGetFieldDataType(field);
- switch (fieldDataType) {
- case GPBDataTypeBool:
- result = [[GPBBoolArray alloc] init];
- break;
- case GPBDataTypeFixed32:
- case GPBDataTypeUInt32:
- result = [[GPBUInt32Array alloc] init];
- break;
- case GPBDataTypeInt32:
- case GPBDataTypeSFixed32:
- case GPBDataTypeSInt32:
- result = [[GPBInt32Array alloc] init];
- break;
- case GPBDataTypeFixed64:
- case GPBDataTypeUInt64:
- result = [[GPBUInt64Array alloc] init];
- break;
- case GPBDataTypeInt64:
- case GPBDataTypeSFixed64:
- case GPBDataTypeSInt64:
- result = [[GPBInt64Array alloc] init];
- break;
- case GPBDataTypeFloat:
- result = [[GPBFloatArray alloc] init];
- break;
- case GPBDataTypeDouble:
- result = [[GPBDoubleArray alloc] init];
- break;
-
- case GPBDataTypeEnum:
- result = [[GPBEnumArray alloc]
- initWithValidationFunction:field.enumDescriptor.enumVerifier];
- break;
-
- case GPBDataTypeBytes:
- case GPBDataTypeGroup:
- case GPBDataTypeMessage:
- case GPBDataTypeString:
- if (autocreator) {
- result = [[GPBAutocreatedArray alloc] init];
- } else {
- result = [[NSMutableArray alloc] init];
- }
- break;
- }
-
- if (autocreator) {
- if (GPBDataTypeIsObject(fieldDataType)) {
- GPBAutocreatedArray *autoArray = result;
- autoArray->_autocreator = autocreator;
- } else {
- GPBInt32Array *gpbArray = result;
- gpbArray->_autocreator = autocreator;
- }
- }
-
- return result;
-}
-
-static id CreateMapForField(GPBFieldDescriptor *field,
- GPBMessage *autocreator) {
- id result;
- GPBDataType keyDataType = field.mapKeyDataType;
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- switch (keyDataType) {
- case GPBDataTypeBool:
- switch (valueDataType) {
- case GPBDataTypeBool:
- result = [[GPBBoolBoolDictionary alloc] init];
- break;
- case GPBDataTypeFixed32:
- case GPBDataTypeUInt32:
- result = [[GPBBoolUInt32Dictionary alloc] init];
- break;
- case GPBDataTypeInt32:
- case GPBDataTypeSFixed32:
- case GPBDataTypeSInt32:
- result = [[GPBBoolInt32Dictionary alloc] init];
- break;
- case GPBDataTypeFixed64:
- case GPBDataTypeUInt64:
- result = [[GPBBoolUInt64Dictionary alloc] init];
- break;
- case GPBDataTypeInt64:
- case GPBDataTypeSFixed64:
- case GPBDataTypeSInt64:
- result = [[GPBBoolInt64Dictionary alloc] init];
- break;
- case GPBDataTypeFloat:
- result = [[GPBBoolFloatDictionary alloc] init];
- break;
- case GPBDataTypeDouble:
- result = [[GPBBoolDoubleDictionary alloc] init];
- break;
- case GPBDataTypeEnum:
- result = [[GPBBoolEnumDictionary alloc]
- initWithValidationFunction:field.enumDescriptor.enumVerifier];
- break;
- case GPBDataTypeBytes:
- case GPBDataTypeMessage:
- case GPBDataTypeString:
- result = [[GPBBoolObjectDictionary alloc] init];
- break;
- case GPBDataTypeGroup:
- NSCAssert(NO, @"shouldn't happen");
- return nil;
- }
- break;
- case GPBDataTypeFixed32:
- case GPBDataTypeUInt32:
- switch (valueDataType) {
- case GPBDataTypeBool:
- result = [[GPBUInt32BoolDictionary alloc] init];
- break;
- case GPBDataTypeFixed32:
- case GPBDataTypeUInt32:
- result = [[GPBUInt32UInt32Dictionary alloc] init];
- break;
- case GPBDataTypeInt32:
- case GPBDataTypeSFixed32:
- case GPBDataTypeSInt32:
- result = [[GPBUInt32Int32Dictionary alloc] init];
- break;
- case GPBDataTypeFixed64:
- case GPBDataTypeUInt64:
- result = [[GPBUInt32UInt64Dictionary alloc] init];
- break;
- case GPBDataTypeInt64:
- case GPBDataTypeSFixed64:
- case GPBDataTypeSInt64:
- result = [[GPBUInt32Int64Dictionary alloc] init];
- break;
- case GPBDataTypeFloat:
- result = [[GPBUInt32FloatDictionary alloc] init];
- break;
- case GPBDataTypeDouble:
- result = [[GPBUInt32DoubleDictionary alloc] init];
- break;
- case GPBDataTypeEnum:
- result = [[GPBUInt32EnumDictionary alloc]
- initWithValidationFunction:field.enumDescriptor.enumVerifier];
- break;
- case GPBDataTypeBytes:
- case GPBDataTypeMessage:
- case GPBDataTypeString:
- result = [[GPBUInt32ObjectDictionary alloc] init];
- break;
- case GPBDataTypeGroup:
- NSCAssert(NO, @"shouldn't happen");
- return nil;
- }
- break;
- case GPBDataTypeInt32:
- case GPBDataTypeSFixed32:
- case GPBDataTypeSInt32:
- switch (valueDataType) {
- case GPBDataTypeBool:
- result = [[GPBInt32BoolDictionary alloc] init];
- break;
- case GPBDataTypeFixed32:
- case GPBDataTypeUInt32:
- result = [[GPBInt32UInt32Dictionary alloc] init];
- break;
- case GPBDataTypeInt32:
- case GPBDataTypeSFixed32:
- case GPBDataTypeSInt32:
- result = [[GPBInt32Int32Dictionary alloc] init];
- break;
- case GPBDataTypeFixed64:
- case GPBDataTypeUInt64:
- result = [[GPBInt32UInt64Dictionary alloc] init];
- break;
- case GPBDataTypeInt64:
- case GPBDataTypeSFixed64:
- case GPBDataTypeSInt64:
- result = [[GPBInt32Int64Dictionary alloc] init];
- break;
- case GPBDataTypeFloat:
- result = [[GPBInt32FloatDictionary alloc] init];
- break;
- case GPBDataTypeDouble:
- result = [[GPBInt32DoubleDictionary alloc] init];
- break;
- case GPBDataTypeEnum:
- result = [[GPBInt32EnumDictionary alloc]
- initWithValidationFunction:field.enumDescriptor.enumVerifier];
- break;
- case GPBDataTypeBytes:
- case GPBDataTypeMessage:
- case GPBDataTypeString:
- result = [[GPBInt32ObjectDictionary alloc] init];
- break;
- case GPBDataTypeGroup:
- NSCAssert(NO, @"shouldn't happen");
- return nil;
- }
- break;
- case GPBDataTypeFixed64:
- case GPBDataTypeUInt64:
- switch (valueDataType) {
- case GPBDataTypeBool:
- result = [[GPBUInt64BoolDictionary alloc] init];
- break;
- case GPBDataTypeFixed32:
- case GPBDataTypeUInt32:
- result = [[GPBUInt64UInt32Dictionary alloc] init];
- break;
- case GPBDataTypeInt32:
- case GPBDataTypeSFixed32:
- case GPBDataTypeSInt32:
- result = [[GPBUInt64Int32Dictionary alloc] init];
- break;
- case GPBDataTypeFixed64:
- case GPBDataTypeUInt64:
- result = [[GPBUInt64UInt64Dictionary alloc] init];
- break;
- case GPBDataTypeInt64:
- case GPBDataTypeSFixed64:
- case GPBDataTypeSInt64:
- result = [[GPBUInt64Int64Dictionary alloc] init];
- break;
- case GPBDataTypeFloat:
- result = [[GPBUInt64FloatDictionary alloc] init];
- break;
- case GPBDataTypeDouble:
- result = [[GPBUInt64DoubleDictionary alloc] init];
- break;
- case GPBDataTypeEnum:
- result = [[GPBUInt64EnumDictionary alloc]
- initWithValidationFunction:field.enumDescriptor.enumVerifier];
- break;
- case GPBDataTypeBytes:
- case GPBDataTypeMessage:
- case GPBDataTypeString:
- result = [[GPBUInt64ObjectDictionary alloc] init];
- break;
- case GPBDataTypeGroup:
- NSCAssert(NO, @"shouldn't happen");
- return nil;
- }
- break;
- case GPBDataTypeInt64:
- case GPBDataTypeSFixed64:
- case GPBDataTypeSInt64:
- switch (valueDataType) {
- case GPBDataTypeBool:
- result = [[GPBInt64BoolDictionary alloc] init];
- break;
- case GPBDataTypeFixed32:
- case GPBDataTypeUInt32:
- result = [[GPBInt64UInt32Dictionary alloc] init];
- break;
- case GPBDataTypeInt32:
- case GPBDataTypeSFixed32:
- case GPBDataTypeSInt32:
- result = [[GPBInt64Int32Dictionary alloc] init];
- break;
- case GPBDataTypeFixed64:
- case GPBDataTypeUInt64:
- result = [[GPBInt64UInt64Dictionary alloc] init];
- break;
- case GPBDataTypeInt64:
- case GPBDataTypeSFixed64:
- case GPBDataTypeSInt64:
- result = [[GPBInt64Int64Dictionary alloc] init];
- break;
- case GPBDataTypeFloat:
- result = [[GPBInt64FloatDictionary alloc] init];
- break;
- case GPBDataTypeDouble:
- result = [[GPBInt64DoubleDictionary alloc] init];
- break;
- case GPBDataTypeEnum:
- result = [[GPBInt64EnumDictionary alloc]
- initWithValidationFunction:field.enumDescriptor.enumVerifier];
- break;
- case GPBDataTypeBytes:
- case GPBDataTypeMessage:
- case GPBDataTypeString:
- result = [[GPBInt64ObjectDictionary alloc] init];
- break;
- case GPBDataTypeGroup:
- NSCAssert(NO, @"shouldn't happen");
- return nil;
- }
- break;
- case GPBDataTypeString:
- switch (valueDataType) {
- case GPBDataTypeBool:
- result = [[GPBStringBoolDictionary alloc] init];
- break;
- case GPBDataTypeFixed32:
- case GPBDataTypeUInt32:
- result = [[GPBStringUInt32Dictionary alloc] init];
- break;
- case GPBDataTypeInt32:
- case GPBDataTypeSFixed32:
- case GPBDataTypeSInt32:
- result = [[GPBStringInt32Dictionary alloc] init];
- break;
- case GPBDataTypeFixed64:
- case GPBDataTypeUInt64:
- result = [[GPBStringUInt64Dictionary alloc] init];
- break;
- case GPBDataTypeInt64:
- case GPBDataTypeSFixed64:
- case GPBDataTypeSInt64:
- result = [[GPBStringInt64Dictionary alloc] init];
- break;
- case GPBDataTypeFloat:
- result = [[GPBStringFloatDictionary alloc] init];
- break;
- case GPBDataTypeDouble:
- result = [[GPBStringDoubleDictionary alloc] init];
- break;
- case GPBDataTypeEnum:
- result = [[GPBStringEnumDictionary alloc]
- initWithValidationFunction:field.enumDescriptor.enumVerifier];
- break;
- case GPBDataTypeBytes:
- case GPBDataTypeMessage:
- case GPBDataTypeString:
- if (autocreator) {
- result = [[GPBAutocreatedDictionary alloc] init];
- } else {
- result = [[NSMutableDictionary alloc] init];
- }
- break;
- case GPBDataTypeGroup:
- NSCAssert(NO, @"shouldn't happen");
- return nil;
- }
- break;
-
- case GPBDataTypeFloat:
- case GPBDataTypeDouble:
- case GPBDataTypeEnum:
- case GPBDataTypeBytes:
- case GPBDataTypeGroup:
- case GPBDataTypeMessage:
- NSCAssert(NO, @"shouldn't happen");
- return nil;
- }
-
- if (autocreator) {
- if ((keyDataType == GPBDataTypeString) &&
- GPBDataTypeIsObject(valueDataType)) {
- GPBAutocreatedDictionary *autoDict = result;
- autoDict->_autocreator = autocreator;
- } else {
- GPBInt32Int32Dictionary *gpbDict = result;
- gpbDict->_autocreator = autocreator;
- }
- }
-
- return result;
-}
-
-#if !defined(__clang_analyzer__)
-// These functions are blocked from the analyzer because the analyzer sees the
-// GPBSetRetainedObjectIvarWithFieldInternal() call as consuming the array/map,
-// so use of the array/map after the call returns is flagged as a use after
-// free.
-// But GPBSetRetainedObjectIvarWithFieldInternal() is "consuming" the retain
-// count be holding onto the object (it is transfering it), the object is
-// still valid after returning from the call. The other way to avoid this
-// would be to add a -retain/-autorelease, but that would force every
-// repeated/map field parsed into the autorelease pool which is both a memory
-// and performance hit.
-
-static id GetOrCreateArrayIvarWithField(GPBMessage *self,
- GPBFieldDescriptor *field,
- GPBFileSyntax syntax) {
- id array = GPBGetObjectIvarWithFieldNoAutocreate(self, field);
- if (!array) {
- // No lock needed, this is called from places expecting to mutate
- // so no threading protection is needed.
- array = CreateArrayForField(field, nil);
- GPBSetRetainedObjectIvarWithFieldInternal(self, field, array, syntax);
- }
- return array;
-}
-
-// This is like GPBGetObjectIvarWithField(), but for arrays, it should
-// only be used to wire the method into the class.
-static id GetArrayIvarWithField(GPBMessage *self, GPBFieldDescriptor *field) {
- id array = GPBGetObjectIvarWithFieldNoAutocreate(self, field);
- if (!array) {
- // Check again after getting the lock.
- GPBPrepareReadOnlySemaphore(self);
- dispatch_semaphore_wait(self->readOnlySemaphore_, DISPATCH_TIME_FOREVER);
- array = GPBGetObjectIvarWithFieldNoAutocreate(self, field);
- if (!array) {
- array = CreateArrayForField(field, self);
- GPBSetAutocreatedRetainedObjectIvarWithField(self, field, array);
- }
- dispatch_semaphore_signal(self->readOnlySemaphore_);
- }
- return array;
-}
-
-static id GetOrCreateMapIvarWithField(GPBMessage *self,
- GPBFieldDescriptor *field,
- GPBFileSyntax syntax) {
- id dict = GPBGetObjectIvarWithFieldNoAutocreate(self, field);
- if (!dict) {
- // No lock needed, this is called from places expecting to mutate
- // so no threading protection is needed.
- dict = CreateMapForField(field, nil);
- GPBSetRetainedObjectIvarWithFieldInternal(self, field, dict, syntax);
- }
- return dict;
-}
-
-// This is like GPBGetObjectIvarWithField(), but for maps, it should
-// only be used to wire the method into the class.
-static id GetMapIvarWithField(GPBMessage *self, GPBFieldDescriptor *field) {
- id dict = GPBGetObjectIvarWithFieldNoAutocreate(self, field);
- if (!dict) {
- // Check again after getting the lock.
- GPBPrepareReadOnlySemaphore(self);
- dispatch_semaphore_wait(self->readOnlySemaphore_, DISPATCH_TIME_FOREVER);
- dict = GPBGetObjectIvarWithFieldNoAutocreate(self, field);
- if (!dict) {
- dict = CreateMapForField(field, self);
- GPBSetAutocreatedRetainedObjectIvarWithField(self, field, dict);
- }
- dispatch_semaphore_signal(self->readOnlySemaphore_);
- }
- return dict;
-}
-
-#endif // !defined(__clang_analyzer__)
-
-GPBMessage *GPBCreateMessageWithAutocreator(Class msgClass,
- GPBMessage *autocreator,
- GPBFieldDescriptor *field) {
- GPBMessage *message = [[msgClass alloc] init];
- message->autocreator_ = autocreator;
- message->autocreatorField_ = [field retain];
- return message;
-}
-
-static GPBMessage *CreateMessageWithAutocreatorForExtension(
- Class msgClass, GPBMessage *autocreator, GPBExtensionDescriptor *extension)
- __attribute__((ns_returns_retained));
-
-static GPBMessage *CreateMessageWithAutocreatorForExtension(
- Class msgClass, GPBMessage *autocreator,
- GPBExtensionDescriptor *extension) {
- GPBMessage *message = [[msgClass alloc] init];
- message->autocreator_ = autocreator;
- message->autocreatorExtension_ = [extension retain];
- return message;
-}
-
-BOOL GPBWasMessageAutocreatedBy(GPBMessage *message, GPBMessage *parent) {
- return (message->autocreator_ == parent);
-}
-
-void GPBBecomeVisibleToAutocreator(GPBMessage *self) {
- // Message objects that are implicitly created by accessing a message field
- // are initially not visible via the hasX selector. This method makes them
- // visible.
- if (self->autocreator_) {
- // This will recursively make all parent messages visible until it reaches a
- // super-creator that's visible.
- if (self->autocreatorField_) {
- GPBFileSyntax syntax = [self->autocreator_ descriptor].file.syntax;
- GPBSetObjectIvarWithFieldInternal(self->autocreator_,
- self->autocreatorField_, self, syntax);
- } else {
- [self->autocreator_ setExtension:self->autocreatorExtension_ value:self];
- }
- }
-}
-
-void GPBAutocreatedArrayModified(GPBMessage *self, id array) {
- // When one of our autocreated arrays adds elements, make it visible.
- GPBDescriptor *descriptor = [[self class] descriptor];
- for (GPBFieldDescriptor *field in descriptor->fields_) {
- if (field.fieldType == GPBFieldTypeRepeated) {
- id curArray = GPBGetObjectIvarWithFieldNoAutocreate(self, field);
- if (curArray == array) {
- if (GPBFieldDataTypeIsObject(field)) {
- GPBAutocreatedArray *autoArray = array;
- autoArray->_autocreator = nil;
- } else {
- GPBInt32Array *gpbArray = array;
- gpbArray->_autocreator = nil;
- }
- GPBBecomeVisibleToAutocreator(self);
- return;
- }
- }
- }
- NSCAssert(NO, @"Unknown autocreated %@ for %@.", [array class], self);
-}
-
-void GPBAutocreatedDictionaryModified(GPBMessage *self, id dictionary) {
- // When one of our autocreated dicts adds elements, make it visible.
- GPBDescriptor *descriptor = [[self class] descriptor];
- for (GPBFieldDescriptor *field in descriptor->fields_) {
- if (field.fieldType == GPBFieldTypeMap) {
- id curDict = GPBGetObjectIvarWithFieldNoAutocreate(self, field);
- if (curDict == dictionary) {
- if ((field.mapKeyDataType == GPBDataTypeString) &&
- GPBFieldDataTypeIsObject(field)) {
- GPBAutocreatedDictionary *autoDict = dictionary;
- autoDict->_autocreator = nil;
- } else {
- GPBInt32Int32Dictionary *gpbDict = dictionary;
- gpbDict->_autocreator = nil;
- }
- GPBBecomeVisibleToAutocreator(self);
- return;
- }
- }
- }
- NSCAssert(NO, @"Unknown autocreated %@ for %@.", [dictionary class], self);
-}
-
-void GPBClearMessageAutocreator(GPBMessage *self) {
- if ((self == nil) || !self->autocreator_) {
- return;
- }
-
-#if defined(DEBUG) && DEBUG && !defined(NS_BLOCK_ASSERTIONS)
- // Either the autocreator must have its "has" flag set to YES, or it must be
- // NO and not equal to ourselves.
- BOOL autocreatorHas =
- (self->autocreatorField_
- ? GPBGetHasIvarField(self->autocreator_, self->autocreatorField_)
- : [self->autocreator_ hasExtension:self->autocreatorExtension_]);
- GPBMessage *autocreatorFieldValue =
- (self->autocreatorField_
- ? GPBGetObjectIvarWithFieldNoAutocreate(self->autocreator_,
- self->autocreatorField_)
- : [self->autocreator_->autocreatedExtensionMap_
- objectForKey:self->autocreatorExtension_]);
- NSCAssert(autocreatorHas || autocreatorFieldValue != self,
- @"Cannot clear autocreator because it still refers to self, self: %@.",
- self);
-
-#endif // DEBUG && !defined(NS_BLOCK_ASSERTIONS)
-
- self->autocreator_ = nil;
- [self->autocreatorField_ release];
- self->autocreatorField_ = nil;
- [self->autocreatorExtension_ release];
- self->autocreatorExtension_ = nil;
-}
-
-// Call this before using the readOnlySemaphore_. This ensures it is created only once.
-void GPBPrepareReadOnlySemaphore(GPBMessage *self) {
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wdirect-ivar-access"
-#pragma clang diagnostic ignored "-Wdeprecated-declarations"
-
- // Create the semaphore on demand (rather than init) as developers might not cause them
- // to be needed, and the heap usage can add up. The atomic swap is used to avoid needing
- // another lock around creating it.
- if (self->readOnlySemaphore_ == nil) {
- dispatch_semaphore_t worker = dispatch_semaphore_create(1);
- if (!OSAtomicCompareAndSwapPtrBarrier(NULL, worker, (void * volatile *)&(self->readOnlySemaphore_))) {
- dispatch_release(worker);
- }
- }
-
-#pragma clang diagnostic pop
-}
-
-static GPBUnknownFieldSet *GetOrMakeUnknownFields(GPBMessage *self) {
- if (!self->unknownFields_) {
- self->unknownFields_ = [[GPBUnknownFieldSet alloc] init];
- GPBBecomeVisibleToAutocreator(self);
- }
- return self->unknownFields_;
-}
-
-@implementation GPBMessage
-
-+ (void)initialize {
- Class pbMessageClass = [GPBMessage class];
- if ([self class] == pbMessageClass) {
- // This is here to start up the "base" class descriptor.
- [self descriptor];
- // Message shares extension method resolving with GPBRootObject so insure
- // it is started up at the same time.
- (void)[GPBRootObject class];
- } else if ([self superclass] == pbMessageClass) {
- // This is here to start up all the "message" subclasses. Just needs to be
- // done for the messages, not any of the subclasses.
- // This must be done in initialize to enforce thread safety of start up of
- // the protocol buffer library.
- // Note: The generated code for -descriptor calls
- // +[GPBDescriptor allocDescriptorForClass:...], passing the GPBRootObject
- // subclass for the file. That call chain is what ensures that *Root class
- // is started up to support extension resolution off the message class
- // (+resolveClassMethod: below) in a thread safe manner.
- [self descriptor];
- }
-}
-
-+ (instancetype)allocWithZone:(NSZone *)zone {
- // Override alloc to allocate our classes with the additional storage
- // required for the instance variables.
- GPBDescriptor *descriptor = [self descriptor];
- return NSAllocateObject(self, descriptor->storageSize_, zone);
-}
-
-+ (instancetype)alloc {
- return [self allocWithZone:nil];
-}
-
-+ (GPBDescriptor *)descriptor {
- // This is thread safe because it is called from +initialize.
- static GPBDescriptor *descriptor = NULL;
- static GPBFileDescriptor *fileDescriptor = NULL;
- if (!descriptor) {
- // Use a dummy file that marks it as proto2 syntax so when used generically
- // it supports unknowns/etc.
- fileDescriptor =
- [[GPBFileDescriptor alloc] initWithPackage:@"internal"
- syntax:GPBFileSyntaxProto2];
-
- descriptor = [GPBDescriptor allocDescriptorForClass:[GPBMessage class]
- rootClass:Nil
- file:fileDescriptor
- fields:NULL
- fieldCount:0
- storageSize:0
- flags:0];
- }
- return descriptor;
-}
-
-+ (instancetype)message {
- return [[[self alloc] init] autorelease];
-}
-
-- (instancetype)init {
- if ((self = [super init])) {
- messageStorage_ = (GPBMessage_StoragePtr)(
- ((uint8_t *)self) + class_getInstanceSize([self class]));
- }
-
- return self;
-}
-
-- (instancetype)initWithData:(NSData *)data error:(NSError **)errorPtr {
- return [self initWithData:data extensionRegistry:nil error:errorPtr];
-}
-
-- (instancetype)initWithData:(NSData *)data
- extensionRegistry:(GPBExtensionRegistry *)extensionRegistry
- error:(NSError **)errorPtr {
- if ((self = [self init])) {
- @try {
- [self mergeFromData:data extensionRegistry:extensionRegistry];
- if (errorPtr) {
- *errorPtr = nil;
- }
- }
- @catch (NSException *exception) {
- [self release];
- self = nil;
- if (errorPtr) {
- *errorPtr = ErrorFromException(exception);
- }
- }
-#ifdef DEBUG
- if (self && !self.initialized) {
- [self release];
- self = nil;
- if (errorPtr) {
- *errorPtr = MessageError(GPBMessageErrorCodeMissingRequiredField, nil);
- }
- }
-#endif
- }
- return self;
-}
-
-- (instancetype)initWithCodedInputStream:(GPBCodedInputStream *)input
- extensionRegistry:
- (GPBExtensionRegistry *)extensionRegistry
- error:(NSError **)errorPtr {
- if ((self = [self init])) {
- @try {
- [self mergeFromCodedInputStream:input extensionRegistry:extensionRegistry];
- if (errorPtr) {
- *errorPtr = nil;
- }
- }
- @catch (NSException *exception) {
- [self release];
- self = nil;
- if (errorPtr) {
- *errorPtr = ErrorFromException(exception);
- }
- }
-#ifdef DEBUG
- if (self && !self.initialized) {
- [self release];
- self = nil;
- if (errorPtr) {
- *errorPtr = MessageError(GPBMessageErrorCodeMissingRequiredField, nil);
- }
- }
-#endif
- }
- return self;
-}
-
-- (void)dealloc {
- [self internalClear:NO];
- NSCAssert(!autocreator_, @"Autocreator was not cleared before dealloc.");
- if (readOnlySemaphore_) {
- dispatch_release(readOnlySemaphore_);
- }
- [super dealloc];
-}
-
-- (void)copyFieldsInto:(GPBMessage *)message
- zone:(NSZone *)zone
- descriptor:(GPBDescriptor *)descriptor {
- // Copy all the storage...
- memcpy(message->messageStorage_, messageStorage_, descriptor->storageSize_);
-
- GPBFileSyntax syntax = descriptor.file.syntax;
-
- // Loop over the fields doing fixup...
- for (GPBFieldDescriptor *field in descriptor->fields_) {
- if (GPBFieldIsMapOrArray(field)) {
- id value = GPBGetObjectIvarWithFieldNoAutocreate(self, field);
- if (value) {
- // We need to copy the array/map, but the catch is for message fields,
- // we also need to ensure all the messages as those need copying also.
- id newValue;
- if (GPBFieldDataTypeIsMessage(field)) {
- if (field.fieldType == GPBFieldTypeRepeated) {
- NSArray *existingArray = (NSArray *)value;
- NSMutableArray *newArray =
- [[NSMutableArray alloc] initWithCapacity:existingArray.count];
- newValue = newArray;
- for (GPBMessage *msg in existingArray) {
- GPBMessage *copiedMsg = [msg copyWithZone:zone];
- [newArray addObject:copiedMsg];
- [copiedMsg release];
- }
- } else {
- if (field.mapKeyDataType == GPBDataTypeString) {
- // Map is an NSDictionary.
- NSDictionary *existingDict = value;
- NSMutableDictionary *newDict = [[NSMutableDictionary alloc]
- initWithCapacity:existingDict.count];
- newValue = newDict;
- [existingDict enumerateKeysAndObjectsUsingBlock:^(NSString *key,
- GPBMessage *msg,
- BOOL *stop) {
-#pragma unused(stop)
- GPBMessage *copiedMsg = [msg copyWithZone:zone];
- [newDict setObject:copiedMsg forKey:key];
- [copiedMsg release];
- }];
- } else {
- // Is one of the GPB*ObjectDictionary classes. Type doesn't
- // matter, just need one to invoke the selector.
- GPBInt32ObjectDictionary *existingDict = value;
- newValue = [existingDict deepCopyWithZone:zone];
- }
- }
- } else {
- // Not messages (but is a map/array)...
- if (field.fieldType == GPBFieldTypeRepeated) {
- if (GPBFieldDataTypeIsObject(field)) {
- // NSArray
- newValue = [value mutableCopyWithZone:zone];
- } else {
- // GPB*Array
- newValue = [value copyWithZone:zone];
- }
- } else {
- if (field.mapKeyDataType == GPBDataTypeString) {
- // NSDictionary
- newValue = [value mutableCopyWithZone:zone];
- } else {
- // Is one of the GPB*Dictionary classes. Type doesn't matter,
- // just need one to invoke the selector.
- GPBInt32Int32Dictionary *existingDict = value;
- newValue = [existingDict copyWithZone:zone];
- }
- }
- }
- // We retain here because the memcpy picked up the pointer value and
- // the next call to SetRetainedObject... will release the current value.
- [value retain];
- GPBSetRetainedObjectIvarWithFieldInternal(message, field, newValue,
- syntax);
- }
- } else if (GPBFieldDataTypeIsMessage(field)) {
- // For object types, if we have a value, copy it. If we don't,
- // zero it to remove the pointer to something that was autocreated
- // (and the ptr just got memcpyed).
- if (GPBGetHasIvarField(self, field)) {
- GPBMessage *value = GPBGetObjectIvarWithFieldNoAutocreate(self, field);
- GPBMessage *newValue = [value copyWithZone:zone];
- // We retain here because the memcpy picked up the pointer value and
- // the next call to SetRetainedObject... will release the current value.
- [value retain];
- GPBSetRetainedObjectIvarWithFieldInternal(message, field, newValue,
- syntax);
- } else {
- uint8_t *storage = (uint8_t *)message->messageStorage_;
- id *typePtr = (id *)&storage[field->description_->offset];
- *typePtr = NULL;
- }
- } else if (GPBFieldDataTypeIsObject(field) &&
- GPBGetHasIvarField(self, field)) {
- // A set string/data value (message picked off above), copy it.
- id value = GPBGetObjectIvarWithFieldNoAutocreate(self, field);
- id newValue = [value copyWithZone:zone];
- // We retain here because the memcpy picked up the pointer value and
- // the next call to SetRetainedObject... will release the current value.
- [value retain];
- GPBSetRetainedObjectIvarWithFieldInternal(message, field, newValue,
- syntax);
- } else {
- // memcpy took care of the rest of the primitive fields if they were set.
- }
- } // for (field in descriptor->fields_)
-}
-
-- (id)copyWithZone:(NSZone *)zone {
- GPBDescriptor *descriptor = [self descriptor];
- GPBMessage *result = [[descriptor.messageClass allocWithZone:zone] init];
-
- [self copyFieldsInto:result zone:zone descriptor:descriptor];
- // Make immutable copies of the extra bits.
- result->unknownFields_ = [unknownFields_ copyWithZone:zone];
- result->extensionMap_ = CloneExtensionMap(extensionMap_, zone);
- return result;
-}
-
-- (void)clear {
- [self internalClear:YES];
-}
-
-- (void)internalClear:(BOOL)zeroStorage {
- GPBDescriptor *descriptor = [self descriptor];
- for (GPBFieldDescriptor *field in descriptor->fields_) {
- if (GPBFieldIsMapOrArray(field)) {
- id arrayOrMap = GPBGetObjectIvarWithFieldNoAutocreate(self, field);
- if (arrayOrMap) {
- if (field.fieldType == GPBFieldTypeRepeated) {
- if (GPBFieldDataTypeIsObject(field)) {
- if ([arrayOrMap isKindOfClass:[GPBAutocreatedArray class]]) {
- GPBAutocreatedArray *autoArray = arrayOrMap;
- if (autoArray->_autocreator == self) {
- autoArray->_autocreator = nil;
- }
- }
- } else {
- // Type doesn't matter, it is a GPB*Array.
- GPBInt32Array *gpbArray = arrayOrMap;
- if (gpbArray->_autocreator == self) {
- gpbArray->_autocreator = nil;
- }
- }
- } else {
- if ((field.mapKeyDataType == GPBDataTypeString) &&
- GPBFieldDataTypeIsObject(field)) {
- if ([arrayOrMap isKindOfClass:[GPBAutocreatedDictionary class]]) {
- GPBAutocreatedDictionary *autoDict = arrayOrMap;
- if (autoDict->_autocreator == self) {
- autoDict->_autocreator = nil;
- }
- }
- } else {
- // Type doesn't matter, it is a GPB*Dictionary.
- GPBInt32Int32Dictionary *gpbDict = arrayOrMap;
- if (gpbDict->_autocreator == self) {
- gpbDict->_autocreator = nil;
- }
- }
- }
- [arrayOrMap release];
- }
- } else if (GPBFieldDataTypeIsMessage(field)) {
- GPBClearAutocreatedMessageIvarWithField(self, field);
- GPBMessage *value = GPBGetObjectIvarWithFieldNoAutocreate(self, field);
- [value release];
- } else if (GPBFieldDataTypeIsObject(field) &&
- GPBGetHasIvarField(self, field)) {
- id value = GPBGetObjectIvarWithField(self, field);
- [value release];
- }
- }
-
- // GPBClearMessageAutocreator() expects that its caller has already been
- // removed from autocreatedExtensionMap_ so we set to nil first.
- NSArray *autocreatedValues = [autocreatedExtensionMap_ allValues];
- [autocreatedExtensionMap_ release];
- autocreatedExtensionMap_ = nil;
-
- // Since we're clearing all of our extensions, make sure that we clear the
- // autocreator on any that we've created so they no longer refer to us.
- for (GPBMessage *value in autocreatedValues) {
- NSCAssert(GPBWasMessageAutocreatedBy(value, self),
- @"Autocreated extension does not refer back to self.");
- GPBClearMessageAutocreator(value);
- }
-
- [extensionMap_ release];
- extensionMap_ = nil;
- [unknownFields_ release];
- unknownFields_ = nil;
-
- // Note that clearing does not affect autocreator_. If we are being cleared
- // because of a dealloc, then autocreator_ should be nil anyway. If we are
- // being cleared because someone explicitly clears us, we don't want to
- // sever our relationship with our autocreator.
-
- if (zeroStorage) {
- memset(messageStorage_, 0, descriptor->storageSize_);
- }
-}
-
-- (BOOL)isInitialized {
- GPBDescriptor *descriptor = [self descriptor];
- for (GPBFieldDescriptor *field in descriptor->fields_) {
- if (field.isRequired) {
- if (!GPBGetHasIvarField(self, field)) {
- return NO;
- }
- }
- if (GPBFieldDataTypeIsMessage(field)) {
- GPBFieldType fieldType = field.fieldType;
- if (fieldType == GPBFieldTypeSingle) {
- if (field.isRequired) {
- GPBMessage *message = GPBGetMessageMessageField(self, field);
- if (!message.initialized) {
- return NO;
- }
- } else {
- NSAssert(field.isOptional,
- @"%@: Single message field %@ not required or optional?",
- [self class], field.name);
- if (GPBGetHasIvarField(self, field)) {
- GPBMessage *message = GPBGetMessageMessageField(self, field);
- if (!message.initialized) {
- return NO;
- }
- }
- }
- } else if (fieldType == GPBFieldTypeRepeated) {
- NSArray *array = GPBGetObjectIvarWithFieldNoAutocreate(self, field);
- for (GPBMessage *message in array) {
- if (!message.initialized) {
- return NO;
- }
- }
- } else { // fieldType == GPBFieldTypeMap
- if (field.mapKeyDataType == GPBDataTypeString) {
- NSDictionary *map =
- GPBGetObjectIvarWithFieldNoAutocreate(self, field);
- if (map && !GPBDictionaryIsInitializedInternalHelper(map, field)) {
- return NO;
- }
- } else {
- // Real type is GPB*ObjectDictionary, exact type doesn't matter.
- GPBInt32ObjectDictionary *map =
- GPBGetObjectIvarWithFieldNoAutocreate(self, field);
- if (map && ![map isInitialized]) {
- return NO;
- }
- }
- }
- }
- }
-
- __block BOOL result = YES;
- [extensionMap_
- enumerateKeysAndObjectsUsingBlock:^(GPBExtensionDescriptor *extension,
- id obj,
- BOOL *stop) {
- if (GPBExtensionIsMessage(extension)) {
- if (extension.isRepeated) {
- for (GPBMessage *msg in obj) {
- if (!msg.initialized) {
- result = NO;
- *stop = YES;
- break;
- }
- }
- } else {
- GPBMessage *asMsg = obj;
- if (!asMsg.initialized) {
- result = NO;
- *stop = YES;
- }
- }
- }
- }];
- return result;
-}
-
-- (GPBDescriptor *)descriptor {
- return [[self class] descriptor];
-}
-
-- (NSData *)data {
-#ifdef DEBUG
- if (!self.initialized) {
- return nil;
- }
-#endif
- NSMutableData *data = [NSMutableData dataWithLength:[self serializedSize]];
- GPBCodedOutputStream *stream =
- [[GPBCodedOutputStream alloc] initWithData:data];
- @try {
- [self writeToCodedOutputStream:stream];
- }
- @catch (NSException *exception) {
- // This really shouldn't happen. The only way writeToCodedOutputStream:
- // could throw is if something in the library has a bug and the
- // serializedSize was wrong.
-#ifdef DEBUG
- NSLog(@"%@: Internal exception while building message data: %@",
- [self class], exception);
-#endif
- data = nil;
- }
- [stream release];
- return data;
-}
-
-- (NSData *)delimitedData {
- size_t serializedSize = [self serializedSize];
- size_t varintSize = GPBComputeRawVarint32SizeForInteger(serializedSize);
- NSMutableData *data =
- [NSMutableData dataWithLength:(serializedSize + varintSize)];
- GPBCodedOutputStream *stream =
- [[GPBCodedOutputStream alloc] initWithData:data];
- @try {
- [self writeDelimitedToCodedOutputStream:stream];
- }
- @catch (NSException *exception) {
- // This really shouldn't happen. The only way writeToCodedOutputStream:
- // could throw is if something in the library has a bug and the
- // serializedSize was wrong.
-#ifdef DEBUG
- NSLog(@"%@: Internal exception while building message delimitedData: %@",
- [self class], exception);
-#endif
- // If it happens, truncate.
- data.length = 0;
- }
- [stream release];
- return data;
-}
-
-- (void)writeToOutputStream:(NSOutputStream *)output {
- GPBCodedOutputStream *stream =
- [[GPBCodedOutputStream alloc] initWithOutputStream:output];
- [self writeToCodedOutputStream:stream];
- [stream release];
-}
-
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)output {
- GPBDescriptor *descriptor = [self descriptor];
- NSArray *fieldsArray = descriptor->fields_;
- NSUInteger fieldCount = fieldsArray.count;
- const GPBExtensionRange *extensionRanges = descriptor.extensionRanges;
- NSUInteger extensionRangesCount = descriptor.extensionRangesCount;
- for (NSUInteger i = 0, j = 0; i < fieldCount || j < extensionRangesCount;) {
- if (i == fieldCount) {
- [self writeExtensionsToCodedOutputStream:output
- range:extensionRanges[j++]];
- } else if (j == extensionRangesCount ||
- GPBFieldNumber(fieldsArray[i]) < extensionRanges[j].start) {
- [self writeField:fieldsArray[i++] toCodedOutputStream:output];
- } else {
- [self writeExtensionsToCodedOutputStream:output
- range:extensionRanges[j++]];
- }
- }
- if (descriptor.isWireFormat) {
- [unknownFields_ writeAsMessageSetTo:output];
- } else {
- [unknownFields_ writeToCodedOutputStream:output];
- }
-}
-
-- (void)writeDelimitedToOutputStream:(NSOutputStream *)output {
- GPBCodedOutputStream *codedOutput =
- [[GPBCodedOutputStream alloc] initWithOutputStream:output];
- [self writeDelimitedToCodedOutputStream:codedOutput];
- [codedOutput release];
-}
-
-- (void)writeDelimitedToCodedOutputStream:(GPBCodedOutputStream *)output {
- [output writeRawVarintSizeTAs32:[self serializedSize]];
- [self writeToCodedOutputStream:output];
-}
-
-- (void)writeField:(GPBFieldDescriptor *)field
- toCodedOutputStream:(GPBCodedOutputStream *)output {
- GPBFieldType fieldType = field.fieldType;
- if (fieldType == GPBFieldTypeSingle) {
- BOOL has = GPBGetHasIvarField(self, field);
- if (!has) {
- return;
- }
- }
- uint32_t fieldNumber = GPBFieldNumber(field);
-
-//%PDDM-DEFINE FIELD_CASE(TYPE, REAL_TYPE)
-//%FIELD_CASE_FULL(TYPE, REAL_TYPE, REAL_TYPE)
-//%PDDM-DEFINE FIELD_CASE_FULL(TYPE, REAL_TYPE, ARRAY_TYPE)
-//% case GPBDataType##TYPE:
-//% if (fieldType == GPBFieldTypeRepeated) {
-//% uint32_t tag = field.isPackable ? GPBFieldTag(field) : 0;
-//% GPB##ARRAY_TYPE##Array *array =
-//% GPBGetObjectIvarWithFieldNoAutocreate(self, field);
-//% [output write##TYPE##Array:fieldNumber values:array tag:tag];
-//% } else if (fieldType == GPBFieldTypeSingle) {
-//% [output write##TYPE:fieldNumber
-//% TYPE$S value:GPBGetMessage##REAL_TYPE##Field(self, field)];
-//% } else { // fieldType == GPBFieldTypeMap
-//% // Exact type here doesn't matter.
-//% GPBInt32##ARRAY_TYPE##Dictionary *dict =
-//% GPBGetObjectIvarWithFieldNoAutocreate(self, field);
-//% [dict writeToCodedOutputStream:output asField:field];
-//% }
-//% break;
-//%
-//%PDDM-DEFINE FIELD_CASE2(TYPE)
-//% case GPBDataType##TYPE:
-//% if (fieldType == GPBFieldTypeRepeated) {
-//% NSArray *array = GPBGetObjectIvarWithFieldNoAutocreate(self, field);
-//% [output write##TYPE##Array:fieldNumber values:array];
-//% } else if (fieldType == GPBFieldTypeSingle) {
-//% // GPBGetObjectIvarWithFieldNoAutocreate() avoids doing the has check
-//% // again.
-//% [output write##TYPE:fieldNumber
-//% TYPE$S value:GPBGetObjectIvarWithFieldNoAutocreate(self, field)];
-//% } else { // fieldType == GPBFieldTypeMap
-//% // Exact type here doesn't matter.
-//% id dict = GPBGetObjectIvarWithFieldNoAutocreate(self, field);
-//% GPBDataType mapKeyDataType = field.mapKeyDataType;
-//% if (mapKeyDataType == GPBDataTypeString) {
-//% GPBDictionaryWriteToStreamInternalHelper(output, dict, field);
-//% } else {
-//% [dict writeToCodedOutputStream:output asField:field];
-//% }
-//% }
-//% break;
-//%
-
- switch (GPBGetFieldDataType(field)) {
-
-//%PDDM-EXPAND FIELD_CASE(Bool, Bool)
-// This block of code is generated, do not edit it directly.
-
- case GPBDataTypeBool:
- if (fieldType == GPBFieldTypeRepeated) {
- uint32_t tag = field.isPackable ? GPBFieldTag(field) : 0;
- GPBBoolArray *array =
- GPBGetObjectIvarWithFieldNoAutocreate(self, field);
- [output writeBoolArray:fieldNumber values:array tag:tag];
- } else if (fieldType == GPBFieldTypeSingle) {
- [output writeBool:fieldNumber
- value:GPBGetMessageBoolField(self, field)];
- } else { // fieldType == GPBFieldTypeMap
- // Exact type here doesn't matter.
- GPBInt32BoolDictionary *dict =
- GPBGetObjectIvarWithFieldNoAutocreate(self, field);
- [dict writeToCodedOutputStream:output asField:field];
- }
- break;
-
-//%PDDM-EXPAND FIELD_CASE(Fixed32, UInt32)
-// This block of code is generated, do not edit it directly.
-
- case GPBDataTypeFixed32:
- if (fieldType == GPBFieldTypeRepeated) {
- uint32_t tag = field.isPackable ? GPBFieldTag(field) : 0;
- GPBUInt32Array *array =
- GPBGetObjectIvarWithFieldNoAutocreate(self, field);
- [output writeFixed32Array:fieldNumber values:array tag:tag];
- } else if (fieldType == GPBFieldTypeSingle) {
- [output writeFixed32:fieldNumber
- value:GPBGetMessageUInt32Field(self, field)];
- } else { // fieldType == GPBFieldTypeMap
- // Exact type here doesn't matter.
- GPBInt32UInt32Dictionary *dict =
- GPBGetObjectIvarWithFieldNoAutocreate(self, field);
- [dict writeToCodedOutputStream:output asField:field];
- }
- break;
-
-//%PDDM-EXPAND FIELD_CASE(SFixed32, Int32)
-// This block of code is generated, do not edit it directly.
-
- case GPBDataTypeSFixed32:
- if (fieldType == GPBFieldTypeRepeated) {
- uint32_t tag = field.isPackable ? GPBFieldTag(field) : 0;
- GPBInt32Array *array =
- GPBGetObjectIvarWithFieldNoAutocreate(self, field);
- [output writeSFixed32Array:fieldNumber values:array tag:tag];
- } else if (fieldType == GPBFieldTypeSingle) {
- [output writeSFixed32:fieldNumber
- value:GPBGetMessageInt32Field(self, field)];
- } else { // fieldType == GPBFieldTypeMap
- // Exact type here doesn't matter.
- GPBInt32Int32Dictionary *dict =
- GPBGetObjectIvarWithFieldNoAutocreate(self, field);
- [dict writeToCodedOutputStream:output asField:field];
- }
- break;
-
-//%PDDM-EXPAND FIELD_CASE(Float, Float)
-// This block of code is generated, do not edit it directly.
-
- case GPBDataTypeFloat:
- if (fieldType == GPBFieldTypeRepeated) {
- uint32_t tag = field.isPackable ? GPBFieldTag(field) : 0;
- GPBFloatArray *array =
- GPBGetObjectIvarWithFieldNoAutocreate(self, field);
- [output writeFloatArray:fieldNumber values:array tag:tag];
- } else if (fieldType == GPBFieldTypeSingle) {
- [output writeFloat:fieldNumber
- value:GPBGetMessageFloatField(self, field)];
- } else { // fieldType == GPBFieldTypeMap
- // Exact type here doesn't matter.
- GPBInt32FloatDictionary *dict =
- GPBGetObjectIvarWithFieldNoAutocreate(self, field);
- [dict writeToCodedOutputStream:output asField:field];
- }
- break;
-
-//%PDDM-EXPAND FIELD_CASE(Fixed64, UInt64)
-// This block of code is generated, do not edit it directly.
-
- case GPBDataTypeFixed64:
- if (fieldType == GPBFieldTypeRepeated) {
- uint32_t tag = field.isPackable ? GPBFieldTag(field) : 0;
- GPBUInt64Array *array =
- GPBGetObjectIvarWithFieldNoAutocreate(self, field);
- [output writeFixed64Array:fieldNumber values:array tag:tag];
- } else if (fieldType == GPBFieldTypeSingle) {
- [output writeFixed64:fieldNumber
- value:GPBGetMessageUInt64Field(self, field)];
- } else { // fieldType == GPBFieldTypeMap
- // Exact type here doesn't matter.
- GPBInt32UInt64Dictionary *dict =
- GPBGetObjectIvarWithFieldNoAutocreate(self, field);
- [dict writeToCodedOutputStream:output asField:field];
- }
- break;
-
-//%PDDM-EXPAND FIELD_CASE(SFixed64, Int64)
-// This block of code is generated, do not edit it directly.
-
- case GPBDataTypeSFixed64:
- if (fieldType == GPBFieldTypeRepeated) {
- uint32_t tag = field.isPackable ? GPBFieldTag(field) : 0;
- GPBInt64Array *array =
- GPBGetObjectIvarWithFieldNoAutocreate(self, field);
- [output writeSFixed64Array:fieldNumber values:array tag:tag];
- } else if (fieldType == GPBFieldTypeSingle) {
- [output writeSFixed64:fieldNumber
- value:GPBGetMessageInt64Field(self, field)];
- } else { // fieldType == GPBFieldTypeMap
- // Exact type here doesn't matter.
- GPBInt32Int64Dictionary *dict =
- GPBGetObjectIvarWithFieldNoAutocreate(self, field);
- [dict writeToCodedOutputStream:output asField:field];
- }
- break;
-
-//%PDDM-EXPAND FIELD_CASE(Double, Double)
-// This block of code is generated, do not edit it directly.
-
- case GPBDataTypeDouble:
- if (fieldType == GPBFieldTypeRepeated) {
- uint32_t tag = field.isPackable ? GPBFieldTag(field) : 0;
- GPBDoubleArray *array =
- GPBGetObjectIvarWithFieldNoAutocreate(self, field);
- [output writeDoubleArray:fieldNumber values:array tag:tag];
- } else if (fieldType == GPBFieldTypeSingle) {
- [output writeDouble:fieldNumber
- value:GPBGetMessageDoubleField(self, field)];
- } else { // fieldType == GPBFieldTypeMap
- // Exact type here doesn't matter.
- GPBInt32DoubleDictionary *dict =
- GPBGetObjectIvarWithFieldNoAutocreate(self, field);
- [dict writeToCodedOutputStream:output asField:field];
- }
- break;
-
-//%PDDM-EXPAND FIELD_CASE(Int32, Int32)
-// This block of code is generated, do not edit it directly.
-
- case GPBDataTypeInt32:
- if (fieldType == GPBFieldTypeRepeated) {
- uint32_t tag = field.isPackable ? GPBFieldTag(field) : 0;
- GPBInt32Array *array =
- GPBGetObjectIvarWithFieldNoAutocreate(self, field);
- [output writeInt32Array:fieldNumber values:array tag:tag];
- } else if (fieldType == GPBFieldTypeSingle) {
- [output writeInt32:fieldNumber
- value:GPBGetMessageInt32Field(self, field)];
- } else { // fieldType == GPBFieldTypeMap
- // Exact type here doesn't matter.
- GPBInt32Int32Dictionary *dict =
- GPBGetObjectIvarWithFieldNoAutocreate(self, field);
- [dict writeToCodedOutputStream:output asField:field];
- }
- break;
-
-//%PDDM-EXPAND FIELD_CASE(Int64, Int64)
-// This block of code is generated, do not edit it directly.
-
- case GPBDataTypeInt64:
- if (fieldType == GPBFieldTypeRepeated) {
- uint32_t tag = field.isPackable ? GPBFieldTag(field) : 0;
- GPBInt64Array *array =
- GPBGetObjectIvarWithFieldNoAutocreate(self, field);
- [output writeInt64Array:fieldNumber values:array tag:tag];
- } else if (fieldType == GPBFieldTypeSingle) {
- [output writeInt64:fieldNumber
- value:GPBGetMessageInt64Field(self, field)];
- } else { // fieldType == GPBFieldTypeMap
- // Exact type here doesn't matter.
- GPBInt32Int64Dictionary *dict =
- GPBGetObjectIvarWithFieldNoAutocreate(self, field);
- [dict writeToCodedOutputStream:output asField:field];
- }
- break;
-
-//%PDDM-EXPAND FIELD_CASE(SInt32, Int32)
-// This block of code is generated, do not edit it directly.
-
- case GPBDataTypeSInt32:
- if (fieldType == GPBFieldTypeRepeated) {
- uint32_t tag = field.isPackable ? GPBFieldTag(field) : 0;
- GPBInt32Array *array =
- GPBGetObjectIvarWithFieldNoAutocreate(self, field);
- [output writeSInt32Array:fieldNumber values:array tag:tag];
- } else if (fieldType == GPBFieldTypeSingle) {
- [output writeSInt32:fieldNumber
- value:GPBGetMessageInt32Field(self, field)];
- } else { // fieldType == GPBFieldTypeMap
- // Exact type here doesn't matter.
- GPBInt32Int32Dictionary *dict =
- GPBGetObjectIvarWithFieldNoAutocreate(self, field);
- [dict writeToCodedOutputStream:output asField:field];
- }
- break;
-
-//%PDDM-EXPAND FIELD_CASE(SInt64, Int64)
-// This block of code is generated, do not edit it directly.
-
- case GPBDataTypeSInt64:
- if (fieldType == GPBFieldTypeRepeated) {
- uint32_t tag = field.isPackable ? GPBFieldTag(field) : 0;
- GPBInt64Array *array =
- GPBGetObjectIvarWithFieldNoAutocreate(self, field);
- [output writeSInt64Array:fieldNumber values:array tag:tag];
- } else if (fieldType == GPBFieldTypeSingle) {
- [output writeSInt64:fieldNumber
- value:GPBGetMessageInt64Field(self, field)];
- } else { // fieldType == GPBFieldTypeMap
- // Exact type here doesn't matter.
- GPBInt32Int64Dictionary *dict =
- GPBGetObjectIvarWithFieldNoAutocreate(self, field);
- [dict writeToCodedOutputStream:output asField:field];
- }
- break;
-
-//%PDDM-EXPAND FIELD_CASE(UInt32, UInt32)
-// This block of code is generated, do not edit it directly.
-
- case GPBDataTypeUInt32:
- if (fieldType == GPBFieldTypeRepeated) {
- uint32_t tag = field.isPackable ? GPBFieldTag(field) : 0;
- GPBUInt32Array *array =
- GPBGetObjectIvarWithFieldNoAutocreate(self, field);
- [output writeUInt32Array:fieldNumber values:array tag:tag];
- } else if (fieldType == GPBFieldTypeSingle) {
- [output writeUInt32:fieldNumber
- value:GPBGetMessageUInt32Field(self, field)];
- } else { // fieldType == GPBFieldTypeMap
- // Exact type here doesn't matter.
- GPBInt32UInt32Dictionary *dict =
- GPBGetObjectIvarWithFieldNoAutocreate(self, field);
- [dict writeToCodedOutputStream:output asField:field];
- }
- break;
-
-//%PDDM-EXPAND FIELD_CASE(UInt64, UInt64)
-// This block of code is generated, do not edit it directly.
-
- case GPBDataTypeUInt64:
- if (fieldType == GPBFieldTypeRepeated) {
- uint32_t tag = field.isPackable ? GPBFieldTag(field) : 0;
- GPBUInt64Array *array =
- GPBGetObjectIvarWithFieldNoAutocreate(self, field);
- [output writeUInt64Array:fieldNumber values:array tag:tag];
- } else if (fieldType == GPBFieldTypeSingle) {
- [output writeUInt64:fieldNumber
- value:GPBGetMessageUInt64Field(self, field)];
- } else { // fieldType == GPBFieldTypeMap
- // Exact type here doesn't matter.
- GPBInt32UInt64Dictionary *dict =
- GPBGetObjectIvarWithFieldNoAutocreate(self, field);
- [dict writeToCodedOutputStream:output asField:field];
- }
- break;
-
-//%PDDM-EXPAND FIELD_CASE_FULL(Enum, Int32, Enum)
-// This block of code is generated, do not edit it directly.
-
- case GPBDataTypeEnum:
- if (fieldType == GPBFieldTypeRepeated) {
- uint32_t tag = field.isPackable ? GPBFieldTag(field) : 0;
- GPBEnumArray *array =
- GPBGetObjectIvarWithFieldNoAutocreate(self, field);
- [output writeEnumArray:fieldNumber values:array tag:tag];
- } else if (fieldType == GPBFieldTypeSingle) {
- [output writeEnum:fieldNumber
- value:GPBGetMessageInt32Field(self, field)];
- } else { // fieldType == GPBFieldTypeMap
- // Exact type here doesn't matter.
- GPBInt32EnumDictionary *dict =
- GPBGetObjectIvarWithFieldNoAutocreate(self, field);
- [dict writeToCodedOutputStream:output asField:field];
- }
- break;
-
-//%PDDM-EXPAND FIELD_CASE2(Bytes)
-// This block of code is generated, do not edit it directly.
-
- case GPBDataTypeBytes:
- if (fieldType == GPBFieldTypeRepeated) {
- NSArray *array = GPBGetObjectIvarWithFieldNoAutocreate(self, field);
- [output writeBytesArray:fieldNumber values:array];
- } else if (fieldType == GPBFieldTypeSingle) {
- // GPBGetObjectIvarWithFieldNoAutocreate() avoids doing the has check
- // again.
- [output writeBytes:fieldNumber
- value:GPBGetObjectIvarWithFieldNoAutocreate(self, field)];
- } else { // fieldType == GPBFieldTypeMap
- // Exact type here doesn't matter.
- id dict = GPBGetObjectIvarWithFieldNoAutocreate(self, field);
- GPBDataType mapKeyDataType = field.mapKeyDataType;
- if (mapKeyDataType == GPBDataTypeString) {
- GPBDictionaryWriteToStreamInternalHelper(output, dict, field);
- } else {
- [dict writeToCodedOutputStream:output asField:field];
- }
- }
- break;
-
-//%PDDM-EXPAND FIELD_CASE2(String)
-// This block of code is generated, do not edit it directly.
-
- case GPBDataTypeString:
- if (fieldType == GPBFieldTypeRepeated) {
- NSArray *array = GPBGetObjectIvarWithFieldNoAutocreate(self, field);
- [output writeStringArray:fieldNumber values:array];
- } else if (fieldType == GPBFieldTypeSingle) {
- // GPBGetObjectIvarWithFieldNoAutocreate() avoids doing the has check
- // again.
- [output writeString:fieldNumber
- value:GPBGetObjectIvarWithFieldNoAutocreate(self, field)];
- } else { // fieldType == GPBFieldTypeMap
- // Exact type here doesn't matter.
- id dict = GPBGetObjectIvarWithFieldNoAutocreate(self, field);
- GPBDataType mapKeyDataType = field.mapKeyDataType;
- if (mapKeyDataType == GPBDataTypeString) {
- GPBDictionaryWriteToStreamInternalHelper(output, dict, field);
- } else {
- [dict writeToCodedOutputStream:output asField:field];
- }
- }
- break;
-
-//%PDDM-EXPAND FIELD_CASE2(Message)
-// This block of code is generated, do not edit it directly.
-
- case GPBDataTypeMessage:
- if (fieldType == GPBFieldTypeRepeated) {
- NSArray *array = GPBGetObjectIvarWithFieldNoAutocreate(self, field);
- [output writeMessageArray:fieldNumber values:array];
- } else if (fieldType == GPBFieldTypeSingle) {
- // GPBGetObjectIvarWithFieldNoAutocreate() avoids doing the has check
- // again.
- [output writeMessage:fieldNumber
- value:GPBGetObjectIvarWithFieldNoAutocreate(self, field)];
- } else { // fieldType == GPBFieldTypeMap
- // Exact type here doesn't matter.
- id dict = GPBGetObjectIvarWithFieldNoAutocreate(self, field);
- GPBDataType mapKeyDataType = field.mapKeyDataType;
- if (mapKeyDataType == GPBDataTypeString) {
- GPBDictionaryWriteToStreamInternalHelper(output, dict, field);
- } else {
- [dict writeToCodedOutputStream:output asField:field];
- }
- }
- break;
-
-//%PDDM-EXPAND FIELD_CASE2(Group)
-// This block of code is generated, do not edit it directly.
-
- case GPBDataTypeGroup:
- if (fieldType == GPBFieldTypeRepeated) {
- NSArray *array = GPBGetObjectIvarWithFieldNoAutocreate(self, field);
- [output writeGroupArray:fieldNumber values:array];
- } else if (fieldType == GPBFieldTypeSingle) {
- // GPBGetObjectIvarWithFieldNoAutocreate() avoids doing the has check
- // again.
- [output writeGroup:fieldNumber
- value:GPBGetObjectIvarWithFieldNoAutocreate(self, field)];
- } else { // fieldType == GPBFieldTypeMap
- // Exact type here doesn't matter.
- id dict = GPBGetObjectIvarWithFieldNoAutocreate(self, field);
- GPBDataType mapKeyDataType = field.mapKeyDataType;
- if (mapKeyDataType == GPBDataTypeString) {
- GPBDictionaryWriteToStreamInternalHelper(output, dict, field);
- } else {
- [dict writeToCodedOutputStream:output asField:field];
- }
- }
- break;
-
-//%PDDM-EXPAND-END (18 expansions)
- }
-}
-
-#pragma mark - Extensions
-
-- (id)getExtension:(GPBExtensionDescriptor *)extension {
- CheckExtension(self, extension);
- id value = [extensionMap_ objectForKey:extension];
- if (value != nil) {
- return value;
- }
-
- // No default for repeated.
- if (extension.isRepeated) {
- return nil;
- }
- // Non messages get their default.
- if (!GPBExtensionIsMessage(extension)) {
- return extension.defaultValue;
- }
-
- // Check for an autocreated value.
- GPBPrepareReadOnlySemaphore(self);
- dispatch_semaphore_wait(readOnlySemaphore_, DISPATCH_TIME_FOREVER);
- value = [autocreatedExtensionMap_ objectForKey:extension];
- if (!value) {
- // Auto create the message extensions to match normal fields.
- value = CreateMessageWithAutocreatorForExtension(extension.msgClass, self,
- extension);
-
- if (autocreatedExtensionMap_ == nil) {
- autocreatedExtensionMap_ = [[NSMutableDictionary alloc] init];
- }
-
- // We can't simply call setExtension here because that would clear the new
- // value's autocreator.
- [autocreatedExtensionMap_ setObject:value forKey:extension];
- [value release];
- }
-
- dispatch_semaphore_signal(readOnlySemaphore_);
- return value;
-}
-
-- (id)getExistingExtension:(GPBExtensionDescriptor *)extension {
- // This is an internal method so we don't need to call CheckExtension().
- return [extensionMap_ objectForKey:extension];
-}
-
-- (BOOL)hasExtension:(GPBExtensionDescriptor *)extension {
-#if defined(DEBUG) && DEBUG
- CheckExtension(self, extension);
-#endif // DEBUG
- return nil != [extensionMap_ objectForKey:extension];
-}
-
-- (NSArray *)extensionsCurrentlySet {
- return [extensionMap_ allKeys];
-}
-
-- (void)writeExtensionsToCodedOutputStream:(GPBCodedOutputStream *)output
- range:(GPBExtensionRange)range {
- NSArray *sortedExtensions = [[extensionMap_ allKeys]
- sortedArrayUsingSelector:@selector(compareByFieldNumber:)];
- uint32_t start = range.start;
- uint32_t end = range.end;
- for (GPBExtensionDescriptor *extension in sortedExtensions) {
- uint32_t fieldNumber = extension.fieldNumber;
- if (fieldNumber >= start && fieldNumber < end) {
- id value = [extensionMap_ objectForKey:extension];
- GPBWriteExtensionValueToOutputStream(extension, value, output);
- }
- }
-}
-
-- (void)setExtension:(GPBExtensionDescriptor *)extension value:(id)value {
- if (!value) {
- [self clearExtension:extension];
- return;
- }
-
- CheckExtension(self, extension);
-
- if (extension.repeated) {
- [NSException raise:NSInvalidArgumentException
- format:@"Must call addExtension() for repeated types."];
- }
-
- if (extensionMap_ == nil) {
- extensionMap_ = [[NSMutableDictionary alloc] init];
- }
-
- // This pointless cast is for CLANG_WARN_NULLABLE_TO_NONNULL_CONVERSION.
- // Without it, the compiler complains we're passing an id nullable when
- // setObject:forKey: requires a id nonnull for the value. The check for
- // !value at the start of the method ensures it isn't nil, but the check
- // isn't smart enough to realize that.
- [extensionMap_ setObject:(id)value forKey:extension];
-
- GPBExtensionDescriptor *descriptor = extension;
-
- if (GPBExtensionIsMessage(descriptor) && !descriptor.isRepeated) {
- GPBMessage *autocreatedValue =
- [[autocreatedExtensionMap_ objectForKey:extension] retain];
- // Must remove from the map before calling GPBClearMessageAutocreator() so
- // that GPBClearMessageAutocreator() knows its safe to clear.
- [autocreatedExtensionMap_ removeObjectForKey:extension];
- GPBClearMessageAutocreator(autocreatedValue);
- [autocreatedValue release];
- }
-
- GPBBecomeVisibleToAutocreator(self);
-}
-
-- (void)addExtension:(GPBExtensionDescriptor *)extension value:(id)value {
- CheckExtension(self, extension);
-
- if (!extension.repeated) {
- [NSException raise:NSInvalidArgumentException
- format:@"Must call setExtension() for singular types."];
- }
-
- if (extensionMap_ == nil) {
- extensionMap_ = [[NSMutableDictionary alloc] init];
- }
- NSMutableArray *list = [extensionMap_ objectForKey:extension];
- if (list == nil) {
- list = [NSMutableArray array];
- [extensionMap_ setObject:list forKey:extension];
- }
-
- [list addObject:value];
- GPBBecomeVisibleToAutocreator(self);
-}
-
-- (void)setExtension:(GPBExtensionDescriptor *)extension
- index:(NSUInteger)idx
- value:(id)value {
- CheckExtension(self, extension);
-
- if (!extension.repeated) {
- [NSException raise:NSInvalidArgumentException
- format:@"Must call setExtension() for singular types."];
- }
-
- if (extensionMap_ == nil) {
- extensionMap_ = [[NSMutableDictionary alloc] init];
- }
-
- NSMutableArray *list = [extensionMap_ objectForKey:extension];
-
- [list replaceObjectAtIndex:idx withObject:value];
- GPBBecomeVisibleToAutocreator(self);
-}
-
-- (void)clearExtension:(GPBExtensionDescriptor *)extension {
- CheckExtension(self, extension);
-
- // Only become visible if there was actually a value to clear.
- if ([extensionMap_ objectForKey:extension]) {
- [extensionMap_ removeObjectForKey:extension];
- GPBBecomeVisibleToAutocreator(self);
- }
-}
-
-#pragma mark - mergeFrom
-
-- (void)mergeFromData:(NSData *)data
- extensionRegistry:(GPBExtensionRegistry *)extensionRegistry {
- GPBCodedInputStream *input = [[GPBCodedInputStream alloc] initWithData:data];
- [self mergeFromCodedInputStream:input extensionRegistry:extensionRegistry];
- [input checkLastTagWas:0];
- [input release];
-}
-
-#pragma mark - mergeDelimitedFrom
-
-- (void)mergeDelimitedFromCodedInputStream:(GPBCodedInputStream *)input
- extensionRegistry:(GPBExtensionRegistry *)extensionRegistry {
- GPBCodedInputStreamState *state = &input->state_;
- if (GPBCodedInputStreamIsAtEnd(state)) {
- return;
- }
- NSData *data = GPBCodedInputStreamReadRetainedBytesNoCopy(state);
- if (data == nil) {
- return;
- }
- [self mergeFromData:data extensionRegistry:extensionRegistry];
- [data release];
-}
-
-#pragma mark - Parse From Data Support
-
-+ (instancetype)parseFromData:(NSData *)data error:(NSError **)errorPtr {
- return [self parseFromData:data extensionRegistry:nil error:errorPtr];
-}
-
-+ (instancetype)parseFromData:(NSData *)data
- extensionRegistry:(GPBExtensionRegistry *)extensionRegistry
- error:(NSError **)errorPtr {
- return [[[self alloc] initWithData:data
- extensionRegistry:extensionRegistry
- error:errorPtr] autorelease];
-}
-
-+ (instancetype)parseFromCodedInputStream:(GPBCodedInputStream *)input
- extensionRegistry:(GPBExtensionRegistry *)extensionRegistry
- error:(NSError **)errorPtr {
- return
- [[[self alloc] initWithCodedInputStream:input
- extensionRegistry:extensionRegistry
- error:errorPtr] autorelease];
-}
-
-#pragma mark - Parse Delimited From Data Support
-
-+ (instancetype)parseDelimitedFromCodedInputStream:(GPBCodedInputStream *)input
- extensionRegistry:
- (GPBExtensionRegistry *)extensionRegistry
- error:(NSError **)errorPtr {
- GPBMessage *message = [[[self alloc] init] autorelease];
- @try {
- [message mergeDelimitedFromCodedInputStream:input
- extensionRegistry:extensionRegistry];
- if (errorPtr) {
- *errorPtr = nil;
- }
- }
- @catch (NSException *exception) {
- message = nil;
- if (errorPtr) {
- *errorPtr = ErrorFromException(exception);
- }
- }
-#ifdef DEBUG
- if (message && !message.initialized) {
- message = nil;
- if (errorPtr) {
- *errorPtr = MessageError(GPBMessageErrorCodeMissingRequiredField, nil);
- }
- }
-#endif
- return message;
-}
-
-#pragma mark - Unknown Field Support
-
-- (GPBUnknownFieldSet *)unknownFields {
- return unknownFields_;
-}
-
-- (void)setUnknownFields:(GPBUnknownFieldSet *)unknownFields {
- if (unknownFields != unknownFields_) {
- [unknownFields_ release];
- unknownFields_ = [unknownFields copy];
- GPBBecomeVisibleToAutocreator(self);
- }
-}
-
-- (void)parseMessageSet:(GPBCodedInputStream *)input
- extensionRegistry:(GPBExtensionRegistry *)extensionRegistry {
- uint32_t typeId = 0;
- NSData *rawBytes = nil;
- GPBExtensionDescriptor *extension = nil;
- GPBCodedInputStreamState *state = &input->state_;
- while (true) {
- uint32_t tag = GPBCodedInputStreamReadTag(state);
- if (tag == 0) {
- break;
- }
-
- if (tag == GPBWireFormatMessageSetTypeIdTag) {
- typeId = GPBCodedInputStreamReadUInt32(state);
- if (typeId != 0) {
- extension = [extensionRegistry extensionForDescriptor:[self descriptor]
- fieldNumber:typeId];
- }
- } else if (tag == GPBWireFormatMessageSetMessageTag) {
- rawBytes =
- [GPBCodedInputStreamReadRetainedBytesNoCopy(state) autorelease];
- } else {
- if (![input skipField:tag]) {
- break;
- }
- }
- }
-
- [input checkLastTagWas:GPBWireFormatMessageSetItemEndTag];
-
- if (rawBytes != nil && typeId != 0) {
- if (extension != nil) {
- GPBCodedInputStream *newInput =
- [[GPBCodedInputStream alloc] initWithData:rawBytes];
- GPBExtensionMergeFromInputStream(extension,
- extension.packable,
- newInput,
- extensionRegistry,
- self);
- [newInput release];
- } else {
- GPBUnknownFieldSet *unknownFields = GetOrMakeUnknownFields(self);
- [unknownFields mergeMessageSetMessage:typeId data:rawBytes];
- }
- }
-}
-
-- (BOOL)parseUnknownField:(GPBCodedInputStream *)input
- extensionRegistry:(GPBExtensionRegistry *)extensionRegistry
- tag:(uint32_t)tag {
- GPBWireFormat wireType = GPBWireFormatGetTagWireType(tag);
- int32_t fieldNumber = GPBWireFormatGetTagFieldNumber(tag);
-
- GPBDescriptor *descriptor = [self descriptor];
- GPBExtensionDescriptor *extension =
- [extensionRegistry extensionForDescriptor:descriptor
- fieldNumber:fieldNumber];
- if (extension == nil) {
- if (descriptor.wireFormat && GPBWireFormatMessageSetItemTag == tag) {
- [self parseMessageSet:input extensionRegistry:extensionRegistry];
- return YES;
- }
- } else {
- if (extension.wireType == wireType) {
- GPBExtensionMergeFromInputStream(extension,
- extension.packable,
- input,
- extensionRegistry,
- self);
- return YES;
- }
- // Primitive, repeated types can be packed on unpacked on the wire, and are
- // parsed either way.
- if ([extension isRepeated] &&
- !GPBDataTypeIsObject(extension->description_->dataType) &&
- (extension.alternateWireType == wireType)) {
- GPBExtensionMergeFromInputStream(extension,
- !extension.packable,
- input,
- extensionRegistry,
- self);
- return YES;
- }
- }
- if ([GPBUnknownFieldSet isFieldTag:tag]) {
- GPBUnknownFieldSet *unknownFields = GetOrMakeUnknownFields(self);
- return [unknownFields mergeFieldFrom:tag input:input];
- } else {
- return NO;
- }
-}
-
-- (void)addUnknownMapEntry:(int32_t)fieldNum value:(NSData *)data {
- GPBUnknownFieldSet *unknownFields = GetOrMakeUnknownFields(self);
- [unknownFields addUnknownMapEntry:fieldNum value:data];
-}
-
-#pragma mark - MergeFromCodedInputStream Support
-
-static void MergeSingleFieldFromCodedInputStream(
- GPBMessage *self, GPBFieldDescriptor *field, GPBFileSyntax syntax,
- GPBCodedInputStream *input, GPBExtensionRegistry *extensionRegistry) {
- GPBDataType fieldDataType = GPBGetFieldDataType(field);
- switch (fieldDataType) {
-#define CASE_SINGLE_POD(NAME, TYPE, FUNC_TYPE) \
- case GPBDataType##NAME: { \
- TYPE val = GPBCodedInputStreamRead##NAME(&input->state_); \
- GPBSet##FUNC_TYPE##IvarWithFieldInternal(self, field, val, syntax); \
- break; \
- }
-#define CASE_SINGLE_OBJECT(NAME) \
- case GPBDataType##NAME: { \
- id val = GPBCodedInputStreamReadRetained##NAME(&input->state_); \
- GPBSetRetainedObjectIvarWithFieldInternal(self, field, val, syntax); \
- break; \
- }
- CASE_SINGLE_POD(Bool, BOOL, Bool)
- CASE_SINGLE_POD(Fixed32, uint32_t, UInt32)
- CASE_SINGLE_POD(SFixed32, int32_t, Int32)
- CASE_SINGLE_POD(Float, float, Float)
- CASE_SINGLE_POD(Fixed64, uint64_t, UInt64)
- CASE_SINGLE_POD(SFixed64, int64_t, Int64)
- CASE_SINGLE_POD(Double, double, Double)
- CASE_SINGLE_POD(Int32, int32_t, Int32)
- CASE_SINGLE_POD(Int64, int64_t, Int64)
- CASE_SINGLE_POD(SInt32, int32_t, Int32)
- CASE_SINGLE_POD(SInt64, int64_t, Int64)
- CASE_SINGLE_POD(UInt32, uint32_t, UInt32)
- CASE_SINGLE_POD(UInt64, uint64_t, UInt64)
- CASE_SINGLE_OBJECT(Bytes)
- CASE_SINGLE_OBJECT(String)
-#undef CASE_SINGLE_POD
-#undef CASE_SINGLE_OBJECT
-
- case GPBDataTypeMessage: {
- if (GPBGetHasIvarField(self, field)) {
- // GPBGetObjectIvarWithFieldNoAutocreate() avoids doing the has
- // check again.
- GPBMessage *message =
- GPBGetObjectIvarWithFieldNoAutocreate(self, field);
- [input readMessage:message extensionRegistry:extensionRegistry];
- } else {
- GPBMessage *message = [[field.msgClass alloc] init];
- [input readMessage:message extensionRegistry:extensionRegistry];
- GPBSetRetainedObjectIvarWithFieldInternal(self, field, message, syntax);
- }
- break;
- }
-
- case GPBDataTypeGroup: {
- if (GPBGetHasIvarField(self, field)) {
- // GPBGetObjectIvarWithFieldNoAutocreate() avoids doing the has
- // check again.
- GPBMessage *message =
- GPBGetObjectIvarWithFieldNoAutocreate(self, field);
- [input readGroup:GPBFieldNumber(field)
- message:message
- extensionRegistry:extensionRegistry];
- } else {
- GPBMessage *message = [[field.msgClass alloc] init];
- [input readGroup:GPBFieldNumber(field)
- message:message
- extensionRegistry:extensionRegistry];
- GPBSetRetainedObjectIvarWithFieldInternal(self, field, message, syntax);
- }
- break;
- }
-
- case GPBDataTypeEnum: {
- int32_t val = GPBCodedInputStreamReadEnum(&input->state_);
- if (GPBHasPreservingUnknownEnumSemantics(syntax) ||
- [field isValidEnumValue:val]) {
- GPBSetInt32IvarWithFieldInternal(self, field, val, syntax);
- } else {
- GPBUnknownFieldSet *unknownFields = GetOrMakeUnknownFields(self);
- [unknownFields mergeVarintField:GPBFieldNumber(field) value:val];
- }
- }
- } // switch
-}
-
-static void MergeRepeatedPackedFieldFromCodedInputStream(
- GPBMessage *self, GPBFieldDescriptor *field, GPBFileSyntax syntax,
- GPBCodedInputStream *input) {
- GPBDataType fieldDataType = GPBGetFieldDataType(field);
- GPBCodedInputStreamState *state = &input->state_;
- id genericArray = GetOrCreateArrayIvarWithField(self, field, syntax);
- int32_t length = GPBCodedInputStreamReadInt32(state);
- size_t limit = GPBCodedInputStreamPushLimit(state, length);
- while (GPBCodedInputStreamBytesUntilLimit(state) > 0) {
- switch (fieldDataType) {
-#define CASE_REPEATED_PACKED_POD(NAME, TYPE, ARRAY_TYPE) \
- case GPBDataType##NAME: { \
- TYPE val = GPBCodedInputStreamRead##NAME(state); \
- [(GPB##ARRAY_TYPE##Array *)genericArray addValue:val]; \
- break; \
- }
- CASE_REPEATED_PACKED_POD(Bool, BOOL, Bool)
- CASE_REPEATED_PACKED_POD(Fixed32, uint32_t, UInt32)
- CASE_REPEATED_PACKED_POD(SFixed32, int32_t, Int32)
- CASE_REPEATED_PACKED_POD(Float, float, Float)
- CASE_REPEATED_PACKED_POD(Fixed64, uint64_t, UInt64)
- CASE_REPEATED_PACKED_POD(SFixed64, int64_t, Int64)
- CASE_REPEATED_PACKED_POD(Double, double, Double)
- CASE_REPEATED_PACKED_POD(Int32, int32_t, Int32)
- CASE_REPEATED_PACKED_POD(Int64, int64_t, Int64)
- CASE_REPEATED_PACKED_POD(SInt32, int32_t, Int32)
- CASE_REPEATED_PACKED_POD(SInt64, int64_t, Int64)
- CASE_REPEATED_PACKED_POD(UInt32, uint32_t, UInt32)
- CASE_REPEATED_PACKED_POD(UInt64, uint64_t, UInt64)
-#undef CASE_REPEATED_PACKED_POD
-
- case GPBDataTypeBytes:
- case GPBDataTypeString:
- case GPBDataTypeMessage:
- case GPBDataTypeGroup:
- NSCAssert(NO, @"Non primitive types can't be packed");
- break;
-
- case GPBDataTypeEnum: {
- int32_t val = GPBCodedInputStreamReadEnum(state);
- if (GPBHasPreservingUnknownEnumSemantics(syntax) ||
- [field isValidEnumValue:val]) {
- [(GPBEnumArray*)genericArray addRawValue:val];
- } else {
- GPBUnknownFieldSet *unknownFields = GetOrMakeUnknownFields(self);
- [unknownFields mergeVarintField:GPBFieldNumber(field) value:val];
- }
- break;
- }
- } // switch
- } // while(BytesUntilLimit() > 0)
- GPBCodedInputStreamPopLimit(state, limit);
-}
-
-static void MergeRepeatedNotPackedFieldFromCodedInputStream(
- GPBMessage *self, GPBFieldDescriptor *field, GPBFileSyntax syntax,
- GPBCodedInputStream *input, GPBExtensionRegistry *extensionRegistry) {
- GPBCodedInputStreamState *state = &input->state_;
- id genericArray = GetOrCreateArrayIvarWithField(self, field, syntax);
- switch (GPBGetFieldDataType(field)) {
-#define CASE_REPEATED_NOT_PACKED_POD(NAME, TYPE, ARRAY_TYPE) \
- case GPBDataType##NAME: { \
- TYPE val = GPBCodedInputStreamRead##NAME(state); \
- [(GPB##ARRAY_TYPE##Array *)genericArray addValue:val]; \
- break; \
- }
-#define CASE_REPEATED_NOT_PACKED_OBJECT(NAME) \
- case GPBDataType##NAME: { \
- id val = GPBCodedInputStreamReadRetained##NAME(state); \
- [(NSMutableArray*)genericArray addObject:val]; \
- [val release]; \
- break; \
- }
- CASE_REPEATED_NOT_PACKED_POD(Bool, BOOL, Bool)
- CASE_REPEATED_NOT_PACKED_POD(Fixed32, uint32_t, UInt32)
- CASE_REPEATED_NOT_PACKED_POD(SFixed32, int32_t, Int32)
- CASE_REPEATED_NOT_PACKED_POD(Float, float, Float)
- CASE_REPEATED_NOT_PACKED_POD(Fixed64, uint64_t, UInt64)
- CASE_REPEATED_NOT_PACKED_POD(SFixed64, int64_t, Int64)
- CASE_REPEATED_NOT_PACKED_POD(Double, double, Double)
- CASE_REPEATED_NOT_PACKED_POD(Int32, int32_t, Int32)
- CASE_REPEATED_NOT_PACKED_POD(Int64, int64_t, Int64)
- CASE_REPEATED_NOT_PACKED_POD(SInt32, int32_t, Int32)
- CASE_REPEATED_NOT_PACKED_POD(SInt64, int64_t, Int64)
- CASE_REPEATED_NOT_PACKED_POD(UInt32, uint32_t, UInt32)
- CASE_REPEATED_NOT_PACKED_POD(UInt64, uint64_t, UInt64)
- CASE_REPEATED_NOT_PACKED_OBJECT(Bytes)
- CASE_REPEATED_NOT_PACKED_OBJECT(String)
-#undef CASE_REPEATED_NOT_PACKED_POD
-#undef CASE_NOT_PACKED_OBJECT
- case GPBDataTypeMessage: {
- GPBMessage *message = [[field.msgClass alloc] init];
- [input readMessage:message extensionRegistry:extensionRegistry];
- [(NSMutableArray*)genericArray addObject:message];
- [message release];
- break;
- }
- case GPBDataTypeGroup: {
- GPBMessage *message = [[field.msgClass alloc] init];
- [input readGroup:GPBFieldNumber(field)
- message:message
- extensionRegistry:extensionRegistry];
- [(NSMutableArray*)genericArray addObject:message];
- [message release];
- break;
- }
- case GPBDataTypeEnum: {
- int32_t val = GPBCodedInputStreamReadEnum(state);
- if (GPBHasPreservingUnknownEnumSemantics(syntax) ||
- [field isValidEnumValue:val]) {
- [(GPBEnumArray*)genericArray addRawValue:val];
- } else {
- GPBUnknownFieldSet *unknownFields = GetOrMakeUnknownFields(self);
- [unknownFields mergeVarintField:GPBFieldNumber(field) value:val];
- }
- break;
- }
- } // switch
-}
-
-- (void)mergeFromCodedInputStream:(GPBCodedInputStream *)input
- extensionRegistry:(GPBExtensionRegistry *)extensionRegistry {
- GPBDescriptor *descriptor = [self descriptor];
- GPBFileSyntax syntax = descriptor.file.syntax;
- GPBCodedInputStreamState *state = &input->state_;
- uint32_t tag = 0;
- NSUInteger startingIndex = 0;
- NSArray *fields = descriptor->fields_;
- NSUInteger numFields = fields.count;
- while (YES) {
- BOOL merged = NO;
- tag = GPBCodedInputStreamReadTag(state);
- if (tag == 0) {
- break; // Reached end.
- }
- for (NSUInteger i = 0; i < numFields; ++i) {
- if (startingIndex >= numFields) startingIndex = 0;
- GPBFieldDescriptor *fieldDescriptor = fields[startingIndex];
- if (GPBFieldTag(fieldDescriptor) == tag) {
- GPBFieldType fieldType = fieldDescriptor.fieldType;
- if (fieldType == GPBFieldTypeSingle) {
- MergeSingleFieldFromCodedInputStream(self, fieldDescriptor, syntax,
- input, extensionRegistry);
- // Well formed protos will only have a single field once, advance
- // the starting index to the next field.
- startingIndex += 1;
- } else if (fieldType == GPBFieldTypeRepeated) {
- if (fieldDescriptor.isPackable) {
- MergeRepeatedPackedFieldFromCodedInputStream(
- self, fieldDescriptor, syntax, input);
- // Well formed protos will only have a repeated field that is
- // packed once, advance the starting index to the next field.
- startingIndex += 1;
- } else {
- MergeRepeatedNotPackedFieldFromCodedInputStream(
- self, fieldDescriptor, syntax, input, extensionRegistry);
- }
- } else { // fieldType == GPBFieldTypeMap
- // GPB*Dictionary or NSDictionary, exact type doesn't matter at this
- // point.
- id map = GetOrCreateMapIvarWithField(self, fieldDescriptor, syntax);
- [input readMapEntry:map
- extensionRegistry:extensionRegistry
- field:fieldDescriptor
- parentMessage:self];
- }
- merged = YES;
- break;
- } else {
- startingIndex += 1;
- }
- } // for(i < numFields)
-
- if (!merged && (tag != 0)) {
- // Primitive, repeated types can be packed on unpacked on the wire, and
- // are parsed either way. The above loop covered tag in the preferred
- // for, so this need to check the alternate form.
- for (NSUInteger i = 0; i < numFields; ++i) {
- if (startingIndex >= numFields) startingIndex = 0;
- GPBFieldDescriptor *fieldDescriptor = fields[startingIndex];
- if ((fieldDescriptor.fieldType == GPBFieldTypeRepeated) &&
- !GPBFieldDataTypeIsObject(fieldDescriptor) &&
- (GPBFieldAlternateTag(fieldDescriptor) == tag)) {
- BOOL alternateIsPacked = !fieldDescriptor.isPackable;
- if (alternateIsPacked) {
- MergeRepeatedPackedFieldFromCodedInputStream(
- self, fieldDescriptor, syntax, input);
- // Well formed protos will only have a repeated field that is
- // packed once, advance the starting index to the next field.
- startingIndex += 1;
- } else {
- MergeRepeatedNotPackedFieldFromCodedInputStream(
- self, fieldDescriptor, syntax, input, extensionRegistry);
- }
- merged = YES;
- break;
- } else {
- startingIndex += 1;
- }
- }
- }
-
- if (!merged) {
- if (tag == 0) {
- // zero signals EOF / limit reached
- return;
- } else {
- if (GPBPreserveUnknownFields(syntax)) {
- if (![self parseUnknownField:input
- extensionRegistry:extensionRegistry
- tag:tag]) {
- // it's an endgroup tag
- return;
- }
- } else {
- if (![input skipField:tag]) {
- return;
- }
- }
- }
- } // if(!merged)
-
- } // while(YES)
-}
-
-#pragma mark - MergeFrom Support
-
-- (void)mergeFrom:(GPBMessage *)other {
- Class selfClass = [self class];
- Class otherClass = [other class];
- if (!([selfClass isSubclassOfClass:otherClass] ||
- [otherClass isSubclassOfClass:selfClass])) {
- [NSException raise:NSInvalidArgumentException
- format:@"Classes must match %@ != %@", selfClass, otherClass];
- }
-
- // We assume something will be done and become visible.
- GPBBecomeVisibleToAutocreator(self);
-
- GPBDescriptor *descriptor = [[self class] descriptor];
- GPBFileSyntax syntax = descriptor.file.syntax;
-
- for (GPBFieldDescriptor *field in descriptor->fields_) {
- GPBFieldType fieldType = field.fieldType;
- if (fieldType == GPBFieldTypeSingle) {
- int32_t hasIndex = GPBFieldHasIndex(field);
- uint32_t fieldNumber = GPBFieldNumber(field);
- if (!GPBGetHasIvar(other, hasIndex, fieldNumber)) {
- // Other doesn't have the field set, on to the next.
- continue;
- }
- GPBDataType fieldDataType = GPBGetFieldDataType(field);
- switch (fieldDataType) {
- case GPBDataTypeBool:
- GPBSetBoolIvarWithFieldInternal(
- self, field, GPBGetMessageBoolField(other, field), syntax);
- break;
- case GPBDataTypeSFixed32:
- case GPBDataTypeEnum:
- case GPBDataTypeInt32:
- case GPBDataTypeSInt32:
- GPBSetInt32IvarWithFieldInternal(
- self, field, GPBGetMessageInt32Field(other, field), syntax);
- break;
- case GPBDataTypeFixed32:
- case GPBDataTypeUInt32:
- GPBSetUInt32IvarWithFieldInternal(
- self, field, GPBGetMessageUInt32Field(other, field), syntax);
- break;
- case GPBDataTypeSFixed64:
- case GPBDataTypeInt64:
- case GPBDataTypeSInt64:
- GPBSetInt64IvarWithFieldInternal(
- self, field, GPBGetMessageInt64Field(other, field), syntax);
- break;
- case GPBDataTypeFixed64:
- case GPBDataTypeUInt64:
- GPBSetUInt64IvarWithFieldInternal(
- self, field, GPBGetMessageUInt64Field(other, field), syntax);
- break;
- case GPBDataTypeFloat:
- GPBSetFloatIvarWithFieldInternal(
- self, field, GPBGetMessageFloatField(other, field), syntax);
- break;
- case GPBDataTypeDouble:
- GPBSetDoubleIvarWithFieldInternal(
- self, field, GPBGetMessageDoubleField(other, field), syntax);
- break;
- case GPBDataTypeBytes:
- case GPBDataTypeString: {
- id otherVal = GPBGetObjectIvarWithFieldNoAutocreate(other, field);
- GPBSetObjectIvarWithFieldInternal(self, field, otherVal, syntax);
- break;
- }
- case GPBDataTypeMessage:
- case GPBDataTypeGroup: {
- id otherVal = GPBGetObjectIvarWithFieldNoAutocreate(other, field);
- if (GPBGetHasIvar(self, hasIndex, fieldNumber)) {
- GPBMessage *message =
- GPBGetObjectIvarWithFieldNoAutocreate(self, field);
- [message mergeFrom:otherVal];
- } else {
- GPBMessage *message = [otherVal copy];
- GPBSetRetainedObjectIvarWithFieldInternal(self, field, message,
- syntax);
- }
- break;
- }
- } // switch()
- } else if (fieldType == GPBFieldTypeRepeated) {
- // In the case of a list, they need to be appended, and there is no
- // _hasIvar to worry about setting.
- id otherArray =
- GPBGetObjectIvarWithFieldNoAutocreate(other, field);
- if (otherArray) {
- GPBDataType fieldDataType = field->description_->dataType;
- if (GPBDataTypeIsObject(fieldDataType)) {
- NSMutableArray *resultArray =
- GetOrCreateArrayIvarWithField(self, field, syntax);
- [resultArray addObjectsFromArray:otherArray];
- } else if (fieldDataType == GPBDataTypeEnum) {
- GPBEnumArray *resultArray =
- GetOrCreateArrayIvarWithField(self, field, syntax);
- [resultArray addRawValuesFromArray:otherArray];
- } else {
- // The array type doesn't matter, that all implment
- // -addValuesFromArray:.
- GPBInt32Array *resultArray =
- GetOrCreateArrayIvarWithField(self, field, syntax);
- [resultArray addValuesFromArray:otherArray];
- }
- }
- } else { // fieldType = GPBFieldTypeMap
- // In the case of a map, they need to be merged, and there is no
- // _hasIvar to worry about setting.
- id otherDict = GPBGetObjectIvarWithFieldNoAutocreate(other, field);
- if (otherDict) {
- GPBDataType keyDataType = field.mapKeyDataType;
- GPBDataType valueDataType = field->description_->dataType;
- if (GPBDataTypeIsObject(keyDataType) &&
- GPBDataTypeIsObject(valueDataType)) {
- NSMutableDictionary *resultDict =
- GetOrCreateMapIvarWithField(self, field, syntax);
- [resultDict addEntriesFromDictionary:otherDict];
- } else if (valueDataType == GPBDataTypeEnum) {
- // The exact type doesn't matter, just need to know it is a
- // GPB*EnumDictionary.
- GPBInt32EnumDictionary *resultDict =
- GetOrCreateMapIvarWithField(self, field, syntax);
- [resultDict addRawEntriesFromDictionary:otherDict];
- } else {
- // The exact type doesn't matter, they all implement
- // -addEntriesFromDictionary:.
- GPBInt32Int32Dictionary *resultDict =
- GetOrCreateMapIvarWithField(self, field, syntax);
- [resultDict addEntriesFromDictionary:otherDict];
- }
- }
- } // if (fieldType)..else if...else
- } // for(fields)
-
- // Unknown fields.
- if (!unknownFields_) {
- [self setUnknownFields:other.unknownFields];
- } else {
- [unknownFields_ mergeUnknownFields:other.unknownFields];
- }
-
- // Extensions
-
- if (other->extensionMap_.count == 0) {
- return;
- }
-
- if (extensionMap_ == nil) {
- extensionMap_ =
- CloneExtensionMap(other->extensionMap_, NSZoneFromPointer(self));
- } else {
- for (GPBExtensionDescriptor *extension in other->extensionMap_) {
- id otherValue = [other->extensionMap_ objectForKey:extension];
- id value = [extensionMap_ objectForKey:extension];
- BOOL isMessageExtension = GPBExtensionIsMessage(extension);
-
- if (extension.repeated) {
- NSMutableArray *list = value;
- if (list == nil) {
- list = [[NSMutableArray alloc] init];
- [extensionMap_ setObject:list forKey:extension];
- [list release];
- }
- if (isMessageExtension) {
- for (GPBMessage *otherListValue in otherValue) {
- GPBMessage *copiedValue = [otherListValue copy];
- [list addObject:copiedValue];
- [copiedValue release];
- }
- } else {
- [list addObjectsFromArray:otherValue];
- }
- } else {
- if (isMessageExtension) {
- if (value) {
- [(GPBMessage *)value mergeFrom:(GPBMessage *)otherValue];
- } else {
- GPBMessage *copiedValue = [otherValue copy];
- [extensionMap_ setObject:copiedValue forKey:extension];
- [copiedValue release];
- }
- } else {
- [extensionMap_ setObject:otherValue forKey:extension];
- }
- }
-
- if (isMessageExtension && !extension.isRepeated) {
- GPBMessage *autocreatedValue =
- [[autocreatedExtensionMap_ objectForKey:extension] retain];
- // Must remove from the map before calling GPBClearMessageAutocreator()
- // so that GPBClearMessageAutocreator() knows its safe to clear.
- [autocreatedExtensionMap_ removeObjectForKey:extension];
- GPBClearMessageAutocreator(autocreatedValue);
- [autocreatedValue release];
- }
- }
- }
-}
-
-#pragma mark - isEqual: & hash Support
-
-- (BOOL)isEqual:(id)other {
- if (other == self) {
- return YES;
- }
- if (![other isKindOfClass:[self class]] &&
- ![self isKindOfClass:[other class]]) {
- return NO;
- }
-
- GPBMessage *otherMsg = other;
- GPBDescriptor *descriptor = [[self class] descriptor];
- uint8_t *selfStorage = (uint8_t *)messageStorage_;
- uint8_t *otherStorage = (uint8_t *)otherMsg->messageStorage_;
-
- for (GPBFieldDescriptor *field in descriptor->fields_) {
- if (GPBFieldIsMapOrArray(field)) {
- // In the case of a list or map, there is no _hasIvar to worry about.
- // NOTE: These are NSArray/GPB*Array or NSDictionary/GPB*Dictionary, but
- // the type doesn't really matter as the objects all support -count and
- // -isEqual:.
- NSArray *resultMapOrArray =
- GPBGetObjectIvarWithFieldNoAutocreate(self, field);
- NSArray *otherMapOrArray =
- GPBGetObjectIvarWithFieldNoAutocreate(other, field);
- // nil and empty are equal
- if (resultMapOrArray.count != 0 || otherMapOrArray.count != 0) {
- if (![resultMapOrArray isEqual:otherMapOrArray]) {
- return NO;
- }
- }
- } else { // Single field
- int32_t hasIndex = GPBFieldHasIndex(field);
- uint32_t fieldNum = GPBFieldNumber(field);
- BOOL selfHas = GPBGetHasIvar(self, hasIndex, fieldNum);
- BOOL otherHas = GPBGetHasIvar(other, hasIndex, fieldNum);
- if (selfHas != otherHas) {
- return NO; // Differing has values, not equal.
- }
- if (!selfHas) {
- // Same has values, was no, nothing else to check for this field.
- continue;
- }
- // Now compare the values.
- GPBDataType fieldDataType = GPBGetFieldDataType(field);
- size_t fieldOffset = field->description_->offset;
- switch (fieldDataType) {
- case GPBDataTypeBool: {
- // Bools are stored in has_bits to avoid needing explicit space in
- // the storage structure.
- // (the field number passed to the HasIvar helper doesn't really
- // matter since the offset is never negative)
- BOOL selfValue = GPBGetHasIvar(self, (int32_t)(fieldOffset), 0);
- BOOL otherValue = GPBGetHasIvar(other, (int32_t)(fieldOffset), 0);
- if (selfValue != otherValue) {
- return NO;
- }
- break;
- }
- case GPBDataTypeSFixed32:
- case GPBDataTypeInt32:
- case GPBDataTypeSInt32:
- case GPBDataTypeEnum:
- case GPBDataTypeFixed32:
- case GPBDataTypeUInt32:
- case GPBDataTypeFloat: {
- GPBInternalCompileAssert(sizeof(float) == sizeof(uint32_t), float_not_32_bits);
- // These are all 32bit, signed/unsigned doesn't matter for equality.
- uint32_t *selfValPtr = (uint32_t *)&selfStorage[fieldOffset];
- uint32_t *otherValPtr = (uint32_t *)&otherStorage[fieldOffset];
- if (*selfValPtr != *otherValPtr) {
- return NO;
- }
- break;
- }
- case GPBDataTypeSFixed64:
- case GPBDataTypeInt64:
- case GPBDataTypeSInt64:
- case GPBDataTypeFixed64:
- case GPBDataTypeUInt64:
- case GPBDataTypeDouble: {
- GPBInternalCompileAssert(sizeof(double) == sizeof(uint64_t), double_not_64_bits);
- // These are all 64bit, signed/unsigned doesn't matter for equality.
- uint64_t *selfValPtr = (uint64_t *)&selfStorage[fieldOffset];
- uint64_t *otherValPtr = (uint64_t *)&otherStorage[fieldOffset];
- if (*selfValPtr != *otherValPtr) {
- return NO;
- }
- break;
- }
- case GPBDataTypeBytes:
- case GPBDataTypeString:
- case GPBDataTypeMessage:
- case GPBDataTypeGroup: {
- // Type doesn't matter here, they all implement -isEqual:.
- id *selfValPtr = (id *)&selfStorage[fieldOffset];
- id *otherValPtr = (id *)&otherStorage[fieldOffset];
- if (![*selfValPtr isEqual:*otherValPtr]) {
- return NO;
- }
- break;
- }
- } // switch()
- } // if(mapOrArray)...else
- } // for(fields)
-
- // nil and empty are equal
- if (extensionMap_.count != 0 || otherMsg->extensionMap_.count != 0) {
- if (![extensionMap_ isEqual:otherMsg->extensionMap_]) {
- return NO;
- }
- }
-
- // nil and empty are equal
- GPBUnknownFieldSet *otherUnknowns = otherMsg->unknownFields_;
- if ([unknownFields_ countOfFields] != 0 ||
- [otherUnknowns countOfFields] != 0) {
- if (![unknownFields_ isEqual:otherUnknowns]) {
- return NO;
- }
- }
-
- return YES;
-}
-
-// It is very difficult to implement a generic hash for ProtoBuf messages that
-// will perform well. If you need hashing on your ProtoBufs (eg you are using
-// them as dictionary keys) you will probably want to implement a ProtoBuf
-// message specific hash as a category on your protobuf class. Do not make it a
-// category on GPBMessage as you will conflict with this hash, and will possibly
-// override hash for all generated protobufs. A good implementation of hash will
-// be really fast, so we would recommend only hashing protobufs that have an
-// identifier field of some kind that you can easily hash. If you implement
-// hash, we would strongly recommend overriding isEqual: in your category as
-// well, as the default implementation of isEqual: is extremely slow, and may
-// drastically affect performance in large sets.
-- (NSUInteger)hash {
- GPBDescriptor *descriptor = [[self class] descriptor];
- const NSUInteger prime = 19;
- uint8_t *storage = (uint8_t *)messageStorage_;
-
- // Start with the descriptor and then mix it with some instance info.
- // Hopefully that will give a spread based on classes and what fields are set.
- NSUInteger result = (NSUInteger)descriptor;
-
- for (GPBFieldDescriptor *field in descriptor->fields_) {
- if (GPBFieldIsMapOrArray(field)) {
- // Exact type doesn't matter, just check if there are any elements.
- NSArray *mapOrArray = GPBGetObjectIvarWithFieldNoAutocreate(self, field);
- NSUInteger count = mapOrArray.count;
- if (count) {
- // NSArray/NSDictionary use count, use the field number and the count.
- result = prime * result + GPBFieldNumber(field);
- result = prime * result + count;
- }
- } else if (GPBGetHasIvarField(self, field)) {
- // Just using the field number seemed simple/fast, but then a small
- // message class where all the same fields are always set (to different
- // things would end up all with the same hash, so pull in some data).
- GPBDataType fieldDataType = GPBGetFieldDataType(field);
- size_t fieldOffset = field->description_->offset;
- switch (fieldDataType) {
- case GPBDataTypeBool: {
- // Bools are stored in has_bits to avoid needing explicit space in
- // the storage structure.
- // (the field number passed to the HasIvar helper doesn't really
- // matter since the offset is never negative)
- BOOL value = GPBGetHasIvar(self, (int32_t)(fieldOffset), 0);
- result = prime * result + value;
- break;
- }
- case GPBDataTypeSFixed32:
- case GPBDataTypeInt32:
- case GPBDataTypeSInt32:
- case GPBDataTypeEnum:
- case GPBDataTypeFixed32:
- case GPBDataTypeUInt32:
- case GPBDataTypeFloat: {
- GPBInternalCompileAssert(sizeof(float) == sizeof(uint32_t), float_not_32_bits);
- // These are all 32bit, just mix it in.
- uint32_t *valPtr = (uint32_t *)&storage[fieldOffset];
- result = prime * result + *valPtr;
- break;
- }
- case GPBDataTypeSFixed64:
- case GPBDataTypeInt64:
- case GPBDataTypeSInt64:
- case GPBDataTypeFixed64:
- case GPBDataTypeUInt64:
- case GPBDataTypeDouble: {
- GPBInternalCompileAssert(sizeof(double) == sizeof(uint64_t), double_not_64_bits);
- // These are all 64bit, just mix what fits into an NSUInteger in.
- uint64_t *valPtr = (uint64_t *)&storage[fieldOffset];
- result = prime * result + (NSUInteger)(*valPtr);
- break;
- }
- case GPBDataTypeBytes:
- case GPBDataTypeString: {
- // Type doesn't matter here, they both implement -hash:.
- id *valPtr = (id *)&storage[fieldOffset];
- result = prime * result + [*valPtr hash];
- break;
- }
-
- case GPBDataTypeMessage:
- case GPBDataTypeGroup: {
- GPBMessage **valPtr = (GPBMessage **)&storage[fieldOffset];
- // Could call -hash on the sub message, but that could recurse pretty
- // deep; follow the lead of NSArray/NSDictionary and don't really
- // recurse for hash, instead use the field number and the descriptor
- // of the sub message. Yes, this could suck for a bunch of messages
- // where they all only differ in the sub messages, but if you are
- // using a message with sub messages for something that needs -hash,
- // odds are you are also copying them as keys, and that deep copy
- // will also suck.
- result = prime * result + GPBFieldNumber(field);
- result = prime * result + (NSUInteger)[[*valPtr class] descriptor];
- break;
- }
- } // switch()
- }
- }
-
- // Unknowns and extensions are not included.
-
- return result;
-}
-
-#pragma mark - Description Support
-
-- (NSString *)description {
- NSString *textFormat = GPBTextFormatForMessage(self, @" ");
- NSString *description = [NSString
- stringWithFormat:@"<%@ %p>: {\n%@}", [self class], self, textFormat];
- return description;
-}
-
-#if defined(DEBUG) && DEBUG
-
-// Xcode 5.1 added support for custom quick look info.
-// https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/CustomClassDisplay_in_QuickLook/CH01-quick_look_for_custom_objects/CH01-quick_look_for_custom_objects.html#//apple_ref/doc/uid/TP40014001-CH2-SW1
-- (id)debugQuickLookObject {
- return GPBTextFormatForMessage(self, nil);
-}
-
-#endif // DEBUG
-
-#pragma mark - SerializedSize
-
-- (size_t)serializedSize {
- GPBDescriptor *descriptor = [[self class] descriptor];
- size_t result = 0;
-
- // Has check is done explicitly, so GPBGetObjectIvarWithFieldNoAutocreate()
- // avoids doing the has check again.
-
- // Fields.
- for (GPBFieldDescriptor *fieldDescriptor in descriptor->fields_) {
- GPBFieldType fieldType = fieldDescriptor.fieldType;
- GPBDataType fieldDataType = GPBGetFieldDataType(fieldDescriptor);
-
- // Single Fields
- if (fieldType == GPBFieldTypeSingle) {
- BOOL selfHas = GPBGetHasIvarField(self, fieldDescriptor);
- if (!selfHas) {
- continue; // Nothing to do.
- }
-
- uint32_t fieldNumber = GPBFieldNumber(fieldDescriptor);
-
- switch (fieldDataType) {
-#define CASE_SINGLE_POD(NAME, TYPE, FUNC_TYPE) \
- case GPBDataType##NAME: { \
- TYPE fieldVal = GPBGetMessage##FUNC_TYPE##Field(self, fieldDescriptor); \
- result += GPBCompute##NAME##Size(fieldNumber, fieldVal); \
- break; \
- }
-#define CASE_SINGLE_OBJECT(NAME) \
- case GPBDataType##NAME: { \
- id fieldVal = GPBGetObjectIvarWithFieldNoAutocreate(self, fieldDescriptor); \
- result += GPBCompute##NAME##Size(fieldNumber, fieldVal); \
- break; \
- }
- CASE_SINGLE_POD(Bool, BOOL, Bool)
- CASE_SINGLE_POD(Fixed32, uint32_t, UInt32)
- CASE_SINGLE_POD(SFixed32, int32_t, Int32)
- CASE_SINGLE_POD(Float, float, Float)
- CASE_SINGLE_POD(Fixed64, uint64_t, UInt64)
- CASE_SINGLE_POD(SFixed64, int64_t, Int64)
- CASE_SINGLE_POD(Double, double, Double)
- CASE_SINGLE_POD(Int32, int32_t, Int32)
- CASE_SINGLE_POD(Int64, int64_t, Int64)
- CASE_SINGLE_POD(SInt32, int32_t, Int32)
- CASE_SINGLE_POD(SInt64, int64_t, Int64)
- CASE_SINGLE_POD(UInt32, uint32_t, UInt32)
- CASE_SINGLE_POD(UInt64, uint64_t, UInt64)
- CASE_SINGLE_OBJECT(Bytes)
- CASE_SINGLE_OBJECT(String)
- CASE_SINGLE_OBJECT(Message)
- CASE_SINGLE_OBJECT(Group)
- CASE_SINGLE_POD(Enum, int32_t, Int32)
-#undef CASE_SINGLE_POD
-#undef CASE_SINGLE_OBJECT
- }
-
- // Repeated Fields
- } else if (fieldType == GPBFieldTypeRepeated) {
- id genericArray =
- GPBGetObjectIvarWithFieldNoAutocreate(self, fieldDescriptor);
- NSUInteger count = [genericArray count];
- if (count == 0) {
- continue; // Nothing to add.
- }
- __block size_t dataSize = 0;
-
- switch (fieldDataType) {
-#define CASE_REPEATED_POD(NAME, TYPE, ARRAY_TYPE) \
- CASE_REPEATED_POD_EXTRA(NAME, TYPE, ARRAY_TYPE, )
-#define CASE_REPEATED_POD_EXTRA(NAME, TYPE, ARRAY_TYPE, ARRAY_ACCESSOR_NAME) \
- case GPBDataType##NAME: { \
- GPB##ARRAY_TYPE##Array *array = genericArray; \
- [array enumerate##ARRAY_ACCESSOR_NAME##ValuesWithBlock:^(TYPE value, NSUInteger idx, BOOL *stop) { \
- _Pragma("unused(idx, stop)"); \
- dataSize += GPBCompute##NAME##SizeNoTag(value); \
- }]; \
- break; \
- }
-#define CASE_REPEATED_OBJECT(NAME) \
- case GPBDataType##NAME: { \
- for (id value in genericArray) { \
- dataSize += GPBCompute##NAME##SizeNoTag(value); \
- } \
- break; \
- }
- CASE_REPEATED_POD(Bool, BOOL, Bool)
- CASE_REPEATED_POD(Fixed32, uint32_t, UInt32)
- CASE_REPEATED_POD(SFixed32, int32_t, Int32)
- CASE_REPEATED_POD(Float, float, Float)
- CASE_REPEATED_POD(Fixed64, uint64_t, UInt64)
- CASE_REPEATED_POD(SFixed64, int64_t, Int64)
- CASE_REPEATED_POD(Double, double, Double)
- CASE_REPEATED_POD(Int32, int32_t, Int32)
- CASE_REPEATED_POD(Int64, int64_t, Int64)
- CASE_REPEATED_POD(SInt32, int32_t, Int32)
- CASE_REPEATED_POD(SInt64, int64_t, Int64)
- CASE_REPEATED_POD(UInt32, uint32_t, UInt32)
- CASE_REPEATED_POD(UInt64, uint64_t, UInt64)
- CASE_REPEATED_OBJECT(Bytes)
- CASE_REPEATED_OBJECT(String)
- CASE_REPEATED_OBJECT(Message)
- CASE_REPEATED_OBJECT(Group)
- CASE_REPEATED_POD_EXTRA(Enum, int32_t, Enum, Raw)
-#undef CASE_REPEATED_POD
-#undef CASE_REPEATED_POD_EXTRA
-#undef CASE_REPEATED_OBJECT
- } // switch
- result += dataSize;
- size_t tagSize = GPBComputeTagSize(GPBFieldNumber(fieldDescriptor));
- if (fieldDataType == GPBDataTypeGroup) {
- // Groups have both a start and an end tag.
- tagSize *= 2;
- }
- if (fieldDescriptor.isPackable) {
- result += tagSize;
- result += GPBComputeSizeTSizeAsInt32NoTag(dataSize);
- } else {
- result += count * tagSize;
- }
-
- // Map<> Fields
- } else { // fieldType == GPBFieldTypeMap
- if (GPBDataTypeIsObject(fieldDataType) &&
- (fieldDescriptor.mapKeyDataType == GPBDataTypeString)) {
- // If key type was string, then the map is an NSDictionary.
- NSDictionary *map =
- GPBGetObjectIvarWithFieldNoAutocreate(self, fieldDescriptor);
- if (map) {
- result += GPBDictionaryComputeSizeInternalHelper(map, fieldDescriptor);
- }
- } else {
- // Type will be GPB*GroupDictionary, exact type doesn't matter.
- GPBInt32Int32Dictionary *map =
- GPBGetObjectIvarWithFieldNoAutocreate(self, fieldDescriptor);
- result += [map computeSerializedSizeAsField:fieldDescriptor];
- }
- }
- } // for(fields)
-
- // Add any unknown fields.
- if (descriptor.wireFormat) {
- result += [unknownFields_ serializedSizeAsMessageSet];
- } else {
- result += [unknownFields_ serializedSize];
- }
-
- // Add any extensions.
- for (GPBExtensionDescriptor *extension in extensionMap_) {
- id value = [extensionMap_ objectForKey:extension];
- result += GPBComputeExtensionSerializedSizeIncludingTag(extension, value);
- }
-
- return result;
-}
-
-#pragma mark - Resolve Methods Support
-
-typedef struct ResolveIvarAccessorMethodResult {
- IMP impToAdd;
- SEL encodingSelector;
-} ResolveIvarAccessorMethodResult;
-
-static void ResolveIvarGet(GPBFieldDescriptor *field,
- ResolveIvarAccessorMethodResult *result) {
- GPBDataType fieldDataType = GPBGetFieldDataType(field);
- switch (fieldDataType) {
-#define CASE_GET(NAME, TYPE, TRUE_NAME) \
- case GPBDataType##NAME: { \
- result->impToAdd = imp_implementationWithBlock(^(id obj) { \
- return GPBGetMessage##TRUE_NAME##Field(obj, field); \
- }); \
- result->encodingSelector = @selector(get##NAME); \
- break; \
- }
-#define CASE_GET_OBJECT(NAME, TYPE, TRUE_NAME) \
- case GPBDataType##NAME: { \
- result->impToAdd = imp_implementationWithBlock(^(id obj) { \
- return GPBGetObjectIvarWithField(obj, field); \
- }); \
- result->encodingSelector = @selector(get##NAME); \
- break; \
- }
- CASE_GET(Bool, BOOL, Bool)
- CASE_GET(Fixed32, uint32_t, UInt32)
- CASE_GET(SFixed32, int32_t, Int32)
- CASE_GET(Float, float, Float)
- CASE_GET(Fixed64, uint64_t, UInt64)
- CASE_GET(SFixed64, int64_t, Int64)
- CASE_GET(Double, double, Double)
- CASE_GET(Int32, int32_t, Int32)
- CASE_GET(Int64, int64_t, Int64)
- CASE_GET(SInt32, int32_t, Int32)
- CASE_GET(SInt64, int64_t, Int64)
- CASE_GET(UInt32, uint32_t, UInt32)
- CASE_GET(UInt64, uint64_t, UInt64)
- CASE_GET_OBJECT(Bytes, id, Object)
- CASE_GET_OBJECT(String, id, Object)
- CASE_GET_OBJECT(Message, id, Object)
- CASE_GET_OBJECT(Group, id, Object)
- CASE_GET(Enum, int32_t, Enum)
-#undef CASE_GET
- }
-}
-
-static void ResolveIvarSet(GPBFieldDescriptor *field,
- GPBFileSyntax syntax,
- ResolveIvarAccessorMethodResult *result) {
- GPBDataType fieldDataType = GPBGetFieldDataType(field);
- switch (fieldDataType) {
-#define CASE_SET(NAME, TYPE, TRUE_NAME) \
- case GPBDataType##NAME: { \
- result->impToAdd = imp_implementationWithBlock(^(id obj, TYPE value) { \
- return GPBSet##TRUE_NAME##IvarWithFieldInternal(obj, field, value, syntax); \
- }); \
- result->encodingSelector = @selector(set##NAME:); \
- break; \
- }
- CASE_SET(Bool, BOOL, Bool)
- CASE_SET(Fixed32, uint32_t, UInt32)
- CASE_SET(SFixed32, int32_t, Int32)
- CASE_SET(Float, float, Float)
- CASE_SET(Fixed64, uint64_t, UInt64)
- CASE_SET(SFixed64, int64_t, Int64)
- CASE_SET(Double, double, Double)
- CASE_SET(Int32, int32_t, Int32)
- CASE_SET(Int64, int64_t, Int64)
- CASE_SET(SInt32, int32_t, Int32)
- CASE_SET(SInt64, int64_t, Int64)
- CASE_SET(UInt32, uint32_t, UInt32)
- CASE_SET(UInt64, uint64_t, UInt64)
- CASE_SET(Bytes, id, Object)
- CASE_SET(String, id, Object)
- CASE_SET(Message, id, Object)
- CASE_SET(Group, id, Object)
- CASE_SET(Enum, int32_t, Enum)
-#undef CASE_SET
- }
-}
-
-+ (BOOL)resolveInstanceMethod:(SEL)sel {
- const GPBDescriptor *descriptor = [self descriptor];
- if (!descriptor) {
- return NO;
- }
-
- // NOTE: hasOrCountSel_/setHasSel_ will be NULL if the field for the given
- // message should not have has support (done in GPBDescriptor.m), so there is
- // no need for checks here to see if has*/setHas* are allowed.
-
- ResolveIvarAccessorMethodResult result = {NULL, NULL};
- for (GPBFieldDescriptor *field in descriptor->fields_) {
- BOOL isMapOrArray = GPBFieldIsMapOrArray(field);
- if (!isMapOrArray) {
- // Single fields.
- if (sel == field->getSel_) {
- ResolveIvarGet(field, &result);
- break;
- } else if (sel == field->setSel_) {
- ResolveIvarSet(field, descriptor.file.syntax, &result);
- break;
- } else if (sel == field->hasOrCountSel_) {
- int32_t index = GPBFieldHasIndex(field);
- uint32_t fieldNum = GPBFieldNumber(field);
- result.impToAdd = imp_implementationWithBlock(^(id obj) {
- return GPBGetHasIvar(obj, index, fieldNum);
- });
- result.encodingSelector = @selector(getBool);
- break;
- } else if (sel == field->setHasSel_) {
- result.impToAdd = imp_implementationWithBlock(^(id obj, BOOL value) {
- if (value) {
- [NSException raise:NSInvalidArgumentException
- format:@"%@: %@ can only be set to NO (to clear field).",
- [obj class],
- NSStringFromSelector(field->setHasSel_)];
- }
- GPBClearMessageField(obj, field);
- });
- result.encodingSelector = @selector(setBool:);
- break;
- } else {
- GPBOneofDescriptor *oneof = field->containingOneof_;
- if (oneof && (sel == oneof->caseSel_)) {
- int32_t index = GPBFieldHasIndex(field);
- result.impToAdd = imp_implementationWithBlock(^(id obj) {
- return GPBGetHasOneof(obj, index);
- });
- result.encodingSelector = @selector(getEnum);
- break;
- }
- }
- } else {
- // map<>/repeated fields.
- if (sel == field->getSel_) {
- if (field.fieldType == GPBFieldTypeRepeated) {
- result.impToAdd = imp_implementationWithBlock(^(id obj) {
- return GetArrayIvarWithField(obj, field);
- });
- } else {
- result.impToAdd = imp_implementationWithBlock(^(id obj) {
- return GetMapIvarWithField(obj, field);
- });
- }
- result.encodingSelector = @selector(getArray);
- break;
- } else if (sel == field->setSel_) {
- // Local for syntax so the block can directly capture it and not the
- // full lookup.
- const GPBFileSyntax syntax = descriptor.file.syntax;
- result.impToAdd = imp_implementationWithBlock(^(id obj, id value) {
- return GPBSetObjectIvarWithFieldInternal(obj, field, value, syntax);
- });
- result.encodingSelector = @selector(setArray:);
- break;
- } else if (sel == field->hasOrCountSel_) {
- result.impToAdd = imp_implementationWithBlock(^(id obj) {
- // Type doesn't matter, all *Array and *Dictionary types support
- // -count.
- NSArray *arrayOrMap =
- GPBGetObjectIvarWithFieldNoAutocreate(obj, field);
- return [arrayOrMap count];
- });
- result.encodingSelector = @selector(getArrayCount);
- break;
- }
- }
- }
- if (result.impToAdd) {
- const char *encoding =
- GPBMessageEncodingForSelector(result.encodingSelector, YES);
- Class msgClass = descriptor.messageClass;
- BOOL methodAdded = class_addMethod(msgClass, sel, result.impToAdd, encoding);
- // class_addMethod() is documented as also failing if the method was already
- // added; so we check if the method is already there and return success so
- // the method dispatch will still happen. Why would it already be added?
- // Two threads could cause the same method to be bound at the same time,
- // but only one will actually bind it; the other still needs to return true
- // so things will dispatch.
- if (!methodAdded) {
- methodAdded = GPBClassHasSel(msgClass, sel);
- }
- return methodAdded;
- }
- return [super resolveInstanceMethod:sel];
-}
-
-+ (BOOL)resolveClassMethod:(SEL)sel {
- // Extensions scoped to a Message and looked up via class methods.
- if (GPBResolveExtensionClassMethod(self, sel)) {
- return YES;
- }
- return [super resolveClassMethod:sel];
-}
-
-#pragma mark - NSCoding Support
-
-+ (BOOL)supportsSecureCoding {
- return YES;
-}
-
-- (instancetype)initWithCoder:(NSCoder *)aDecoder {
- self = [self init];
- if (self) {
- NSData *data =
- [aDecoder decodeObjectOfClass:[NSData class] forKey:kGPBDataCoderKey];
- if (data.length) {
- [self mergeFromData:data extensionRegistry:nil];
- }
- }
- return self;
-}
-
-- (void)encodeWithCoder:(NSCoder *)aCoder {
- NSData *data = [self data];
- if (data.length) {
- [aCoder encodeObject:data forKey:kGPBDataCoderKey];
- }
-}
-
-#pragma mark - KVC Support
-
-+ (BOOL)accessInstanceVariablesDirectly {
- // Make sure KVC doesn't use instance variables.
- return NO;
-}
-
-@end
-
-#pragma mark - Messages from GPBUtilities.h but defined here for access to helpers.
-
-// Only exists for public api, no core code should use this.
-id GPBGetMessageRepeatedField(GPBMessage *self, GPBFieldDescriptor *field) {
-#if defined(DEBUG) && DEBUG
- if (field.fieldType != GPBFieldTypeRepeated) {
- [NSException raise:NSInvalidArgumentException
- format:@"%@.%@ is not a repeated field.",
- [self class], field.name];
- }
-#endif
- GPBDescriptor *descriptor = [[self class] descriptor];
- GPBFileSyntax syntax = descriptor.file.syntax;
- return GetOrCreateArrayIvarWithField(self, field, syntax);
-}
-
-// Only exists for public api, no core code should use this.
-id GPBGetMessageMapField(GPBMessage *self, GPBFieldDescriptor *field) {
-#if defined(DEBUG) && DEBUG
- if (field.fieldType != GPBFieldTypeMap) {
- [NSException raise:NSInvalidArgumentException
- format:@"%@.%@ is not a map<> field.",
- [self class], field.name];
- }
-#endif
- GPBDescriptor *descriptor = [[self class] descriptor];
- GPBFileSyntax syntax = descriptor.file.syntax;
- return GetOrCreateMapIvarWithField(self, field, syntax);
-}
-
-#pragma clang diagnostic pop
diff --git a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBMessage_PackagePrivate.h b/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBMessage_PackagePrivate.h
deleted file mode 100644
index 90834d40..00000000
--- a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBMessage_PackagePrivate.h
+++ /dev/null
@@ -1,134 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// https://developers.google.com/protocol-buffers/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// This header is private to the ProtobolBuffers library and must NOT be
-// included by any sources outside this library. The contents of this file are
-// subject to change at any time without notice.
-
-#import "GPBMessage.h"
-
-#import <libkern/OSAtomic.h>
-
-#import "GPBBootstrap.h"
-
-typedef struct GPBMessage_Storage {
- uint32_t _has_storage_[0];
-} GPBMessage_Storage;
-
-typedef struct GPBMessage_Storage *GPBMessage_StoragePtr;
-
-@interface GPBMessage () {
- @package
- // NOTE: Because of the +allocWithZone code using NSAllocateObject(),
- // this structure should ideally always be kept pointer aligned where the
- // real storage starts is also pointer aligned. The compiler/runtime already
- // do this, but it may not be documented.
-
- // A pointer to the actual fields of the subclasses. The actual structure
- // pointed to by this pointer will depend on the subclass.
- // All of the actual structures will start the same as
- // GPBMessage_Storage with _has_storage__ as the first field.
- // Kept public because static functions need to access it.
- GPBMessage_StoragePtr messageStorage_;
-
- // A lock to provide mutual exclusion from internal data that can be modified
- // by *read* operations such as getters (autocreation of message fields and
- // message extensions, not setting of values). Used to guarantee thread safety
- // for concurrent reads on the message.
- // NOTE: OSSpinLock may seem like a good fit here but Apple engineers have
- // pointed out that they are vulnerable to live locking on iOS in cases of
- // priority inversion:
- // http://mjtsai.com/blog/2015/12/16/osspinlock-is-unsafe/
- // https://lists.swift.org/pipermail/swift-dev/Week-of-Mon-20151214/000372.html
- // Use of readOnlySemaphore_ must be prefaced by a call to
- // GPBPrepareReadOnlySemaphore to ensure it has been created. This allows
- // readOnlySemaphore_ to be only created when actually needed.
- dispatch_semaphore_t readOnlySemaphore_;
-}
-
-// Gets an extension value without autocreating the result if not found. (i.e.
-// returns nil if the extension is not set)
-- (id)getExistingExtension:(GPBExtensionDescriptor *)extension;
-
-// Parses a message of this type from the input and merges it with this
-// message.
-//
-// Warning: This does not verify that all required fields are present in
-// the input message.
-// Note: The caller should call
-// -[CodedInputStream checkLastTagWas:] after calling this to
-// verify that the last tag seen was the appropriate end-group tag,
-// or zero for EOF.
-// NOTE: This will throw if there is an error while parsing.
-- (void)mergeFromCodedInputStream:(GPBCodedInputStream *)input
- extensionRegistry:(GPBExtensionRegistry *)extensionRegistry;
-
-// Parses the next delimited message of this type from the input and merges it
-// with this message.
-- (void)mergeDelimitedFromCodedInputStream:(GPBCodedInputStream *)input
- extensionRegistry:
- (GPBExtensionRegistry *)extensionRegistry;
-
-- (void)addUnknownMapEntry:(int32_t)fieldNum value:(NSData *)data;
-
-@end
-
-CF_EXTERN_C_BEGIN
-
-
-// Call this before using the readOnlySemaphore_. This ensures it is created only once.
-void GPBPrepareReadOnlySemaphore(GPBMessage *self);
-
-// Returns a new instance that was automatically created by |autocreator| for
-// its field |field|.
-GPBMessage *GPBCreateMessageWithAutocreator(Class msgClass,
- GPBMessage *autocreator,
- GPBFieldDescriptor *field)
- __attribute__((ns_returns_retained));
-
-// Returns whether |message| autocreated this message. This is NO if the message
-// was not autocreated by |message| or if it has been mutated since
-// autocreation.
-BOOL GPBWasMessageAutocreatedBy(GPBMessage *message, GPBMessage *parent);
-
-// Call this when you mutate a message. It will cause the message to become
-// visible to its autocreator.
-void GPBBecomeVisibleToAutocreator(GPBMessage *self);
-
-// Call this when an array/dictionary is mutated so the parent message that
-// autocreated it can react.
-void GPBAutocreatedArrayModified(GPBMessage *self, id array);
-void GPBAutocreatedDictionaryModified(GPBMessage *self, id dictionary);
-
-// Clear the autocreator, if any. Asserts if the autocreator still has an
-// autocreated reference to this message.
-void GPBClearMessageAutocreator(GPBMessage *self);
-
-CF_EXTERN_C_END
diff --git a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBProtocolBuffers.h b/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBProtocolBuffers.h
deleted file mode 100644
index 68d8854e..00000000
--- a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBProtocolBuffers.h
+++ /dev/null
@@ -1,76 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// https://developers.google.com/protocol-buffers/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#import "GPBBootstrap.h"
-
-#import "GPBArray.h"
-#import "GPBCodedInputStream.h"
-#import "GPBCodedOutputStream.h"
-#import "GPBDescriptor.h"
-#import "GPBDictionary.h"
-#import "GPBExtensionRegistry.h"
-#import "GPBMessage.h"
-#import "GPBRootObject.h"
-#import "GPBUnknownField.h"
-#import "GPBUnknownFieldSet.h"
-#import "GPBUtilities.h"
-#import "GPBWellKnownTypes.h"
-#import "GPBWireFormat.h"
-
-// This CPP symbol can be defined to use imports that match up to the framework
-// imports needed when using CocoaPods.
-#if !defined(GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS)
- #define GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS 0
-#endif
-
-// Well-known proto types
-#if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS
- #import <Protobuf/Any.pbobjc.h>
- #import <Protobuf/Api.pbobjc.h>
- #import <Protobuf/Duration.pbobjc.h>
- #import <Protobuf/Empty.pbobjc.h>
- #import <Protobuf/FieldMask.pbobjc.h>
- #import <Protobuf/SourceContext.pbobjc.h>
- #import <Protobuf/Struct.pbobjc.h>
- #import <Protobuf/Timestamp.pbobjc.h>
- #import <Protobuf/Type.pbobjc.h>
- #import <Protobuf/Wrappers.pbobjc.h>
-#else
- #import "google/protobuf/Any.pbobjc.h"
- #import "google/protobuf/Api.pbobjc.h"
- #import "google/protobuf/Duration.pbobjc.h"
- #import "google/protobuf/Empty.pbobjc.h"
- #import "google/protobuf/FieldMask.pbobjc.h"
- #import "google/protobuf/SourceContext.pbobjc.h"
- #import "google/protobuf/Struct.pbobjc.h"
- #import "google/protobuf/Timestamp.pbobjc.h"
- #import "google/protobuf/Type.pbobjc.h"
- #import "google/protobuf/Wrappers.pbobjc.h"
-#endif
diff --git a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBProtocolBuffers_RuntimeSupport.h b/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBProtocolBuffers_RuntimeSupport.h
deleted file mode 100644
index fea75b93..00000000
--- a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBProtocolBuffers_RuntimeSupport.h
+++ /dev/null
@@ -1,40 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// https://developers.google.com/protocol-buffers/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// This header is meant to only be used by the generated source, it should not
-// be included in code using protocol buffers.
-
-#import "GPBProtocolBuffers.h"
-
-#import "GPBDescriptor_PackagePrivate.h"
-#import "GPBExtensionInternals.h"
-#import "GPBMessage_PackagePrivate.h"
-#import "GPBRootObject_PackagePrivate.h"
-#import "GPBUtilities_PackagePrivate.h"
diff --git a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBRootObject.h b/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBRootObject.h
deleted file mode 100644
index d2e2aebf..00000000
--- a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBRootObject.h
+++ /dev/null
@@ -1,52 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// https://developers.google.com/protocol-buffers/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#import <Foundation/Foundation.h>
-
-@class GPBExtensionRegistry;
-
-NS_ASSUME_NONNULL_BEGIN
-
-/**
- * Every generated proto file defines a local "Root" class that exposes a
- * GPBExtensionRegistry for all the extensions defined by that file and
- * the files it depends on.
- **/
-@interface GPBRootObject : NSObject
-
-/**
- * @return An extension registry for the given file and all the files it depends
- * on.
- **/
-+ (GPBExtensionRegistry *)extensionRegistry;
-
-@end
-
-NS_ASSUME_NONNULL_END
diff --git a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBRootObject.m b/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBRootObject.m
deleted file mode 100644
index 585d205a..00000000
--- a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBRootObject.m
+++ /dev/null
@@ -1,237 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// https://developers.google.com/protocol-buffers/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#import "GPBRootObject_PackagePrivate.h"
-
-#import <objc/runtime.h>
-
-#import <CoreFoundation/CoreFoundation.h>
-
-#import "GPBDescriptor.h"
-#import "GPBExtensionRegistry.h"
-#import "GPBUtilities_PackagePrivate.h"
-
-@interface GPBExtensionDescriptor (GPBRootObject)
-// Get singletonName as a c string.
-- (const char *)singletonNameC;
-@end
-
-@implementation GPBRootObject
-
-// Taken from http://www.burtleburtle.net/bob/hash/doobs.html
-// Public Domain
-static uint32_t jenkins_one_at_a_time_hash(const char *key) {
- uint32_t hash = 0;
- for (uint32_t i = 0; key[i] != '\0'; ++i) {
- hash += key[i];
- hash += (hash << 10);
- hash ^= (hash >> 6);
- }
- hash += (hash << 3);
- hash ^= (hash >> 11);
- hash += (hash << 15);
- return hash;
-}
-
-// Key methods for our custom CFDictionary.
-// Note that the dictionary lasts for the lifetime of our app, so no need
-// to worry about deallocation. All of the items are added to it at
-// startup, and so the keys don't need to be retained/released.
-// Keys are NULL terminated char *.
-static const void *GPBRootExtensionKeyRetain(CFAllocatorRef allocator,
- const void *value) {
-#pragma unused(allocator)
- return value;
-}
-
-static void GPBRootExtensionKeyRelease(CFAllocatorRef allocator,
- const void *value) {
-#pragma unused(allocator)
-#pragma unused(value)
-}
-
-static CFStringRef GPBRootExtensionCopyKeyDescription(const void *value) {
- const char *key = (const char *)value;
- return CFStringCreateWithCString(kCFAllocatorDefault, key,
- kCFStringEncodingUTF8);
-}
-
-static Boolean GPBRootExtensionKeyEqual(const void *value1,
- const void *value2) {
- const char *key1 = (const char *)value1;
- const char *key2 = (const char *)value2;
- return strcmp(key1, key2) == 0;
-}
-
-static CFHashCode GPBRootExtensionKeyHash(const void *value) {
- const char *key = (const char *)value;
- return jenkins_one_at_a_time_hash(key);
-}
-
-// NOTE: OSSpinLock may seem like a good fit here but Apple engineers have
-// pointed out that they are vulnerable to live locking on iOS in cases of
-// priority inversion:
-// http://mjtsai.com/blog/2015/12/16/osspinlock-is-unsafe/
-// https://lists.swift.org/pipermail/swift-dev/Week-of-Mon-20151214/000372.html
-static dispatch_semaphore_t gExtensionSingletonDictionarySemaphore;
-static CFMutableDictionaryRef gExtensionSingletonDictionary = NULL;
-static GPBExtensionRegistry *gDefaultExtensionRegistry = NULL;
-
-+ (void)initialize {
- // Ensure the global is started up.
- if (!gExtensionSingletonDictionary) {
- gExtensionSingletonDictionarySemaphore = dispatch_semaphore_create(1);
- CFDictionaryKeyCallBacks keyCallBacks = {
- // See description above for reason for using custom dictionary.
- 0,
- GPBRootExtensionKeyRetain,
- GPBRootExtensionKeyRelease,
- GPBRootExtensionCopyKeyDescription,
- GPBRootExtensionKeyEqual,
- GPBRootExtensionKeyHash,
- };
- gExtensionSingletonDictionary =
- CFDictionaryCreateMutable(kCFAllocatorDefault, 0, &keyCallBacks,
- &kCFTypeDictionaryValueCallBacks);
- gDefaultExtensionRegistry = [[GPBExtensionRegistry alloc] init];
- }
-
- if ([self superclass] == [GPBRootObject class]) {
- // This is here to start up all the per file "Root" subclasses.
- // This must be done in initialize to enforce thread safety of start up of
- // the protocol buffer library.
- [self extensionRegistry];
- }
-}
-
-+ (GPBExtensionRegistry *)extensionRegistry {
- // Is overridden in all the subclasses that provide extensions to provide the
- // per class one.
- return gDefaultExtensionRegistry;
-}
-
-+ (void)globallyRegisterExtension:(GPBExtensionDescriptor *)field {
- const char *key = [field singletonNameC];
- dispatch_semaphore_wait(gExtensionSingletonDictionarySemaphore,
- DISPATCH_TIME_FOREVER);
- CFDictionarySetValue(gExtensionSingletonDictionary, key, field);
- dispatch_semaphore_signal(gExtensionSingletonDictionarySemaphore);
-}
-
-static id ExtensionForName(id self, SEL _cmd) {
- // Really fast way of doing "classname_selName".
- // This came up as a hotspot (creation of NSString *) when accessing a
- // lot of extensions.
- const char *selName = sel_getName(_cmd);
- if (selName[0] == '_') {
- return nil; // Apple internal selector.
- }
- size_t selNameLen = 0;
- while (1) {
- char c = selName[selNameLen];
- if (c == '\0') { // String end.
- break;
- }
- if (c == ':') {
- return nil; // Selector took an arg, not one of the runtime methods.
- }
- ++selNameLen;
- }
-
- const char *className = class_getName(self);
- size_t classNameLen = strlen(className);
- char key[classNameLen + selNameLen + 2];
- memcpy(key, className, classNameLen);
- key[classNameLen] = '_';
- memcpy(&key[classNameLen + 1], selName, selNameLen);
- key[classNameLen + 1 + selNameLen] = '\0';
-
- // NOTE: Even though this method is called from another C function,
- // gExtensionSingletonDictionarySemaphore and gExtensionSingletonDictionary
- // will always be initialized. This is because this call flow is just to
- // lookup the Extension, meaning the code is calling an Extension class
- // message on a Message or Root class. This guarantees that the class was
- // initialized and Message classes ensure their Root was also initialized.
- NSAssert(gExtensionSingletonDictionary, @"Startup order broken!");
-
- dispatch_semaphore_wait(gExtensionSingletonDictionarySemaphore,
- DISPATCH_TIME_FOREVER);
- id extension = (id)CFDictionaryGetValue(gExtensionSingletonDictionary, key);
- // We can't remove the key from the dictionary here (as an optimization),
- // two threads could have gone into +resolveClassMethod: for the same method,
- // and ended up here; there's no way to ensure both return YES without letting
- // both try to wire in the method.
- dispatch_semaphore_signal(gExtensionSingletonDictionarySemaphore);
- return extension;
-}
-
-BOOL GPBResolveExtensionClassMethod(Class self, SEL sel) {
- // Another option would be to register the extensions with the class at
- // globallyRegisterExtension:
- // Timing the two solutions, this solution turned out to be much faster
- // and reduced startup time, and runtime memory.
- // The advantage to globallyRegisterExtension is that it would reduce the
- // size of the protos somewhat because the singletonNameC wouldn't need
- // to include the class name. For a class with a lot of extensions it
- // can add up. You could also significantly reduce the code complexity of this
- // file.
- id extension = ExtensionForName(self, sel);
- if (extension != nil) {
- const char *encoding =
- GPBMessageEncodingForSelector(@selector(getClassValue), NO);
- Class metaClass = objc_getMetaClass(class_getName(self));
- IMP imp = imp_implementationWithBlock(^(id obj) {
-#pragma unused(obj)
- return extension;
- });
- BOOL methodAdded = class_addMethod(metaClass, sel, imp, encoding);
- // class_addMethod() is documented as also failing if the method was already
- // added; so we check if the method is already there and return success so
- // the method dispatch will still happen. Why would it already be added?
- // Two threads could cause the same method to be bound at the same time,
- // but only one will actually bind it; the other still needs to return true
- // so things will dispatch.
- if (!methodAdded) {
- methodAdded = GPBClassHasSel(metaClass, sel);
- }
- return methodAdded;
- }
- return NO;
-}
-
-
-+ (BOOL)resolveClassMethod:(SEL)sel {
- if (GPBResolveExtensionClassMethod(self, sel)) {
- return YES;
- }
- return [super resolveClassMethod:sel];
-}
-
-@end
diff --git a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBRootObject_PackagePrivate.h b/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBRootObject_PackagePrivate.h
deleted file mode 100644
index 3c8f09c8..00000000
--- a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBRootObject_PackagePrivate.h
+++ /dev/null
@@ -1,46 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// https://developers.google.com/protocol-buffers/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#import <Foundation/Foundation.h>
-
-#import "GPBRootObject.h"
-
-@class GPBExtensionDescriptor;
-
-@interface GPBRootObject ()
-
-// Globally register.
-+ (void)globallyRegisterExtension:(GPBExtensionDescriptor *)field;
-
-@end
-
-// Returns YES if the selector was resolved and added to the class,
-// NO otherwise.
-BOOL GPBResolveExtensionClassMethod(Class self, SEL sel);
diff --git a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBRuntimeTypes.h b/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBRuntimeTypes.h
deleted file mode 100644
index 4d552060..00000000
--- a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBRuntimeTypes.h
+++ /dev/null
@@ -1,144 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// https://developers.google.com/protocol-buffers/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#import <Foundation/Foundation.h>
-
-#import "GPBBootstrap.h"
-
-@class GPBEnumDescriptor;
-@class GPBMessage;
-@class GPBInt32Array;
-
-/**
- * Verifies that a given value can be represented by an enum type.
- * */
-typedef BOOL (*GPBEnumValidationFunc)(int32_t);
-
-/**
- * Fetches an EnumDescriptor.
- * */
-typedef GPBEnumDescriptor *(*GPBEnumDescriptorFunc)(void);
-
-/**
- * Magic value used at runtime to indicate an enum value that wasn't know at
- * compile time.
- * */
-enum {
- kGPBUnrecognizedEnumeratorValue = (int32_t)0xFBADBEEF,
-};
-
-/**
- * A union for storing all possible Protobuf values. Note that owner is
- * responsible for memory management of object types.
- * */
-typedef union {
- BOOL valueBool;
- int32_t valueInt32;
- int64_t valueInt64;
- uint32_t valueUInt32;
- uint64_t valueUInt64;
- float valueFloat;
- double valueDouble;
- GPB_UNSAFE_UNRETAINED NSData *valueData;
- GPB_UNSAFE_UNRETAINED NSString *valueString;
- GPB_UNSAFE_UNRETAINED GPBMessage *valueMessage;
- int32_t valueEnum;
-} GPBGenericValue;
-
-/**
- * Enum listing the possible data types that a field can contain.
- *
- * @note Do not change the order of this enum (or add things to it) without
- * thinking about it very carefully. There are several things that depend
- * on the order.
- * */
-typedef NS_ENUM(uint8_t, GPBDataType) {
- /** Field contains boolean value(s). */
- GPBDataTypeBool = 0,
- /** Field contains unsigned 4 byte value(s). */
- GPBDataTypeFixed32,
- /** Field contains signed 4 byte value(s). */
- GPBDataTypeSFixed32,
- /** Field contains float value(s). */
- GPBDataTypeFloat,
- /** Field contains unsigned 8 byte value(s). */
- GPBDataTypeFixed64,
- /** Field contains signed 8 byte value(s). */
- GPBDataTypeSFixed64,
- /** Field contains double value(s). */
- GPBDataTypeDouble,
- /**
- * Field contains variable length value(s). Inefficient for encoding negative
- * numbers – if your field is likely to have negative values, use
- * GPBDataTypeSInt32 instead.
- **/
- GPBDataTypeInt32,
- /**
- * Field contains variable length value(s). Inefficient for encoding negative
- * numbers – if your field is likely to have negative values, use
- * GPBDataTypeSInt64 instead.
- **/
- GPBDataTypeInt64,
- /** Field contains signed variable length integer value(s). */
- GPBDataTypeSInt32,
- /** Field contains signed variable length integer value(s). */
- GPBDataTypeSInt64,
- /** Field contains unsigned variable length integer value(s). */
- GPBDataTypeUInt32,
- /** Field contains unsigned variable length integer value(s). */
- GPBDataTypeUInt64,
- /** Field contains an arbitrary sequence of bytes. */
- GPBDataTypeBytes,
- /** Field contains UTF-8 encoded or 7-bit ASCII text. */
- GPBDataTypeString,
- /** Field contains message type(s). */
- GPBDataTypeMessage,
- /** Field contains message type(s). */
- GPBDataTypeGroup,
- /** Field contains enum value(s). */
- GPBDataTypeEnum,
-};
-
-enum {
- /**
- * A count of the number of types in GPBDataType. Separated out from the
- * GPBDataType enum to avoid warnings regarding not handling GPBDataType_Count
- * in switch statements.
- **/
- GPBDataType_Count = GPBDataTypeEnum + 1
-};
-
-/** An extension range. */
-typedef struct GPBExtensionRange {
- /** Inclusive. */
- uint32_t start;
- /** Exclusive. */
- uint32_t end;
-} GPBExtensionRange;
diff --git a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBUnknownField.h b/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBUnknownField.h
deleted file mode 100644
index a135cc20..00000000
--- a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBUnknownField.h
+++ /dev/null
@@ -1,96 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// https://developers.google.com/protocol-buffers/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#import <Foundation/Foundation.h>
-
-@class GPBCodedOutputStream;
-@class GPBUInt32Array;
-@class GPBUInt64Array;
-@class GPBUnknownFieldSet;
-
-NS_ASSUME_NONNULL_BEGIN
-/**
- * Store an unknown field. These are used in conjunction with
- * GPBUnknownFieldSet.
- **/
-@interface GPBUnknownField : NSObject<NSCopying>
-
-/** The field number the data is stored under. */
-@property(nonatomic, readonly, assign) int32_t number;
-
-/** An array of varint values for this field. */
-@property(nonatomic, readonly, strong) GPBUInt64Array *varintList;
-
-/** An array of fixed32 values for this field. */
-@property(nonatomic, readonly, strong) GPBUInt32Array *fixed32List;
-
-/** An array of fixed64 values for this field. */
-@property(nonatomic, readonly, strong) GPBUInt64Array *fixed64List;
-
-/** An array of data values for this field. */
-@property(nonatomic, readonly, strong) NSArray<NSData*> *lengthDelimitedList;
-
-/** An array of groups of values for this field. */
-@property(nonatomic, readonly, strong) NSArray<GPBUnknownFieldSet*> *groupList;
-
-/**
- * Add a value to the varintList.
- *
- * @param value The value to add.
- **/
-- (void)addVarint:(uint64_t)value;
-/**
- * Add a value to the fixed32List.
- *
- * @param value The value to add.
- **/
-- (void)addFixed32:(uint32_t)value;
-/**
- * Add a value to the fixed64List.
- *
- * @param value The value to add.
- **/
-- (void)addFixed64:(uint64_t)value;
-/**
- * Add a value to the lengthDelimitedList.
- *
- * @param value The value to add.
- **/
-- (void)addLengthDelimited:(NSData *)value;
-/**
- * Add a value to the groupList.
- *
- * @param value The value to add.
- **/
-- (void)addGroup:(GPBUnknownFieldSet *)value;
-
-@end
-
-NS_ASSUME_NONNULL_END
diff --git a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBUnknownField.m b/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBUnknownField.m
deleted file mode 100644
index 30efe756..00000000
--- a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBUnknownField.m
+++ /dev/null
@@ -1,334 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// https://developers.google.com/protocol-buffers/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#import "GPBUnknownField_PackagePrivate.h"
-
-#import "GPBArray.h"
-#import "GPBCodedOutputStream_PackagePrivate.h"
-
-@implementation GPBUnknownField {
- @protected
- int32_t number_;
- GPBUInt64Array *mutableVarintList_;
- GPBUInt32Array *mutableFixed32List_;
- GPBUInt64Array *mutableFixed64List_;
- NSMutableArray<NSData*> *mutableLengthDelimitedList_;
- NSMutableArray<GPBUnknownFieldSet*> *mutableGroupList_;
-}
-
-@synthesize number = number_;
-@synthesize varintList = mutableVarintList_;
-@synthesize fixed32List = mutableFixed32List_;
-@synthesize fixed64List = mutableFixed64List_;
-@synthesize lengthDelimitedList = mutableLengthDelimitedList_;
-@synthesize groupList = mutableGroupList_;
-
-- (instancetype)initWithNumber:(int32_t)number {
- if ((self = [super init])) {
- number_ = number;
- }
- return self;
-}
-
-- (void)dealloc {
- [mutableVarintList_ release];
- [mutableFixed32List_ release];
- [mutableFixed64List_ release];
- [mutableLengthDelimitedList_ release];
- [mutableGroupList_ release];
-
- [super dealloc];
-}
-
-// Direct access is use for speed, to avoid even internally declaring things
-// read/write, etc. The warning is enabled in the project to ensure code calling
-// protos can turn on -Wdirect-ivar-access without issues.
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wdirect-ivar-access"
-
-- (id)copyWithZone:(NSZone *)zone {
- GPBUnknownField *result =
- [[GPBUnknownField allocWithZone:zone] initWithNumber:number_];
- result->mutableFixed32List_ = [mutableFixed32List_ copyWithZone:zone];
- result->mutableFixed64List_ = [mutableFixed64List_ copyWithZone:zone];
- result->mutableLengthDelimitedList_ =
- [mutableLengthDelimitedList_ copyWithZone:zone];
- result->mutableVarintList_ = [mutableVarintList_ copyWithZone:zone];
- if (mutableGroupList_.count) {
- result->mutableGroupList_ = [[NSMutableArray allocWithZone:zone]
- initWithCapacity:mutableGroupList_.count];
- for (GPBUnknownFieldSet *group in mutableGroupList_) {
- GPBUnknownFieldSet *copied = [group copyWithZone:zone];
- [result->mutableGroupList_ addObject:copied];
- [copied release];
- }
- }
- return result;
-}
-
-- (BOOL)isEqual:(id)object {
- if (self == object) return YES;
- if (![object isKindOfClass:[GPBUnknownField class]]) return NO;
- GPBUnknownField *field = (GPBUnknownField *)object;
- BOOL equalVarint =
- (mutableVarintList_.count == 0 && field->mutableVarintList_.count == 0) ||
- [mutableVarintList_ isEqual:field->mutableVarintList_];
- if (!equalVarint) return NO;
- BOOL equalFixed32 = (mutableFixed32List_.count == 0 &&
- field->mutableFixed32List_.count == 0) ||
- [mutableFixed32List_ isEqual:field->mutableFixed32List_];
- if (!equalFixed32) return NO;
- BOOL equalFixed64 = (mutableFixed64List_.count == 0 &&
- field->mutableFixed64List_.count == 0) ||
- [mutableFixed64List_ isEqual:field->mutableFixed64List_];
- if (!equalFixed64) return NO;
- BOOL equalLDList =
- (mutableLengthDelimitedList_.count == 0 &&
- field->mutableLengthDelimitedList_.count == 0) ||
- [mutableLengthDelimitedList_ isEqual:field->mutableLengthDelimitedList_];
- if (!equalLDList) return NO;
- BOOL equalGroupList =
- (mutableGroupList_.count == 0 && field->mutableGroupList_.count == 0) ||
- [mutableGroupList_ isEqual:field->mutableGroupList_];
- if (!equalGroupList) return NO;
- return YES;
-}
-
-- (NSUInteger)hash {
- // Just mix the hashes of the possible sub arrays.
- const int prime = 31;
- NSUInteger result = prime + [mutableVarintList_ hash];
- result = prime * result + [mutableFixed32List_ hash];
- result = prime * result + [mutableFixed64List_ hash];
- result = prime * result + [mutableLengthDelimitedList_ hash];
- result = prime * result + [mutableGroupList_ hash];
- return result;
-}
-
-- (void)writeToOutput:(GPBCodedOutputStream *)output {
- NSUInteger count = mutableVarintList_.count;
- if (count > 0) {
- [output writeUInt64Array:number_ values:mutableVarintList_ tag:0];
- }
- count = mutableFixed32List_.count;
- if (count > 0) {
- [output writeFixed32Array:number_ values:mutableFixed32List_ tag:0];
- }
- count = mutableFixed64List_.count;
- if (count > 0) {
- [output writeFixed64Array:number_ values:mutableFixed64List_ tag:0];
- }
- count = mutableLengthDelimitedList_.count;
- if (count > 0) {
- [output writeBytesArray:number_ values:mutableLengthDelimitedList_];
- }
- count = mutableGroupList_.count;
- if (count > 0) {
- [output writeUnknownGroupArray:number_ values:mutableGroupList_];
- }
-}
-
-- (size_t)serializedSize {
- __block size_t result = 0;
- int32_t number = number_;
- [mutableVarintList_
- enumerateValuesWithBlock:^(uint64_t value, NSUInteger idx, BOOL *stop) {
-#pragma unused(idx, stop)
- result += GPBComputeUInt64Size(number, value);
- }];
-
- [mutableFixed32List_
- enumerateValuesWithBlock:^(uint32_t value, NSUInteger idx, BOOL *stop) {
-#pragma unused(idx, stop)
- result += GPBComputeFixed32Size(number, value);
- }];
-
- [mutableFixed64List_
- enumerateValuesWithBlock:^(uint64_t value, NSUInteger idx, BOOL *stop) {
-#pragma unused(idx, stop)
- result += GPBComputeFixed64Size(number, value);
- }];
-
- for (NSData *data in mutableLengthDelimitedList_) {
- result += GPBComputeBytesSize(number, data);
- }
-
- for (GPBUnknownFieldSet *set in mutableGroupList_) {
- result += GPBComputeUnknownGroupSize(number, set);
- }
-
- return result;
-}
-
-- (void)writeAsMessageSetExtensionToOutput:(GPBCodedOutputStream *)output {
- for (NSData *data in mutableLengthDelimitedList_) {
- [output writeRawMessageSetExtension:number_ value:data];
- }
-}
-
-- (size_t)serializedSizeAsMessageSetExtension {
- size_t result = 0;
- for (NSData *data in mutableLengthDelimitedList_) {
- result += GPBComputeRawMessageSetExtensionSize(number_, data);
- }
- return result;
-}
-
-- (NSString *)description {
- NSMutableString *description = [NSMutableString
- stringWithFormat:@"<%@ %p>: Field: %d {\n", [self class], self, number_];
- [mutableVarintList_
- enumerateValuesWithBlock:^(uint64_t value, NSUInteger idx, BOOL *stop) {
-#pragma unused(idx, stop)
- [description appendFormat:@"\t%llu\n", value];
- }];
-
- [mutableFixed32List_
- enumerateValuesWithBlock:^(uint32_t value, NSUInteger idx, BOOL *stop) {
-#pragma unused(idx, stop)
- [description appendFormat:@"\t%u\n", value];
- }];
-
- [mutableFixed64List_
- enumerateValuesWithBlock:^(uint64_t value, NSUInteger idx, BOOL *stop) {
-#pragma unused(idx, stop)
- [description appendFormat:@"\t%llu\n", value];
- }];
-
- for (NSData *data in mutableLengthDelimitedList_) {
- [description appendFormat:@"\t%@\n", data];
- }
-
- for (GPBUnknownFieldSet *set in mutableGroupList_) {
- [description appendFormat:@"\t%@\n", set];
- }
- [description appendString:@"}"];
- return description;
-}
-
-- (void)mergeFromField:(GPBUnknownField *)other {
- GPBUInt64Array *otherVarintList = other.varintList;
- if (otherVarintList.count > 0) {
- if (mutableVarintList_ == nil) {
- mutableVarintList_ = [otherVarintList copy];
- } else {
- [mutableVarintList_ addValuesFromArray:otherVarintList];
- }
- }
-
- GPBUInt32Array *otherFixed32List = other.fixed32List;
- if (otherFixed32List.count > 0) {
- if (mutableFixed32List_ == nil) {
- mutableFixed32List_ = [otherFixed32List copy];
- } else {
- [mutableFixed32List_ addValuesFromArray:otherFixed32List];
- }
- }
-
- GPBUInt64Array *otherFixed64List = other.fixed64List;
- if (otherFixed64List.count > 0) {
- if (mutableFixed64List_ == nil) {
- mutableFixed64List_ = [otherFixed64List copy];
- } else {
- [mutableFixed64List_ addValuesFromArray:otherFixed64List];
- }
- }
-
- NSArray *otherLengthDelimitedList = other.lengthDelimitedList;
- if (otherLengthDelimitedList.count > 0) {
- if (mutableLengthDelimitedList_ == nil) {
- mutableLengthDelimitedList_ = [otherLengthDelimitedList mutableCopy];
- } else {
- [mutableLengthDelimitedList_
- addObjectsFromArray:otherLengthDelimitedList];
- }
- }
-
- NSArray *otherGroupList = other.groupList;
- if (otherGroupList.count > 0) {
- if (mutableGroupList_ == nil) {
- mutableGroupList_ =
- [[NSMutableArray alloc] initWithCapacity:otherGroupList.count];
- }
- // Make our own mutable copies.
- for (GPBUnknownFieldSet *group in otherGroupList) {
- GPBUnknownFieldSet *copied = [group copy];
- [mutableGroupList_ addObject:copied];
- [copied release];
- }
- }
-}
-
-- (void)addVarint:(uint64_t)value {
- if (mutableVarintList_ == nil) {
- mutableVarintList_ = [[GPBUInt64Array alloc] initWithValues:&value count:1];
- } else {
- [mutableVarintList_ addValue:value];
- }
-}
-
-- (void)addFixed32:(uint32_t)value {
- if (mutableFixed32List_ == nil) {
- mutableFixed32List_ =
- [[GPBUInt32Array alloc] initWithValues:&value count:1];
- } else {
- [mutableFixed32List_ addValue:value];
- }
-}
-
-- (void)addFixed64:(uint64_t)value {
- if (mutableFixed64List_ == nil) {
- mutableFixed64List_ =
- [[GPBUInt64Array alloc] initWithValues:&value count:1];
- } else {
- [mutableFixed64List_ addValue:value];
- }
-}
-
-- (void)addLengthDelimited:(NSData *)value {
- if (mutableLengthDelimitedList_ == nil) {
- mutableLengthDelimitedList_ =
- [[NSMutableArray alloc] initWithObjects:&value count:1];
- } else {
- [mutableLengthDelimitedList_ addObject:value];
- }
-}
-
-- (void)addGroup:(GPBUnknownFieldSet *)value {
- if (mutableGroupList_ == nil) {
- mutableGroupList_ = [[NSMutableArray alloc] initWithObjects:&value count:1];
- } else {
- [mutableGroupList_ addObject:value];
- }
-}
-
-#pragma clang diagnostic pop
-
-@end
diff --git a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBUnknownFieldSet.h b/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBUnknownFieldSet.h
deleted file mode 100644
index 1b5f24f3..00000000
--- a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBUnknownFieldSet.h
+++ /dev/null
@@ -1,82 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// https://developers.google.com/protocol-buffers/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#import <Foundation/Foundation.h>
-
-@class GPBUnknownField;
-
-NS_ASSUME_NONNULL_BEGIN
-
-/**
- * A collection of unknown fields. Fields parsed from the binary representation
- * of a message that are unknown end up in an instance of this set. This only
- * applies for files declared with the "proto2" syntax. Files declared with the
- * "proto3" syntax discard the unknown values.
- **/
-@interface GPBUnknownFieldSet : NSObject<NSCopying>
-
-/**
- * Tests to see if the given field number has a value.
- *
- * @param number The field number to check.
- *
- * @return YES if there is an unknown field for the given field number.
- **/
-- (BOOL)hasField:(int32_t)number;
-
-/**
- * Fetches the GPBUnknownField for the given field number.
- *
- * @param number The field number to look up.
- *
- * @return The GPBUnknownField or nil if none found.
- **/
-- (nullable GPBUnknownField *)getField:(int32_t)number;
-
-/**
- * @return The number of fields in this set.
- **/
-- (NSUInteger)countOfFields;
-
-/**
- * Adds the given field to the set.
- *
- * @param field The field to add to the set.
- **/
-- (void)addField:(GPBUnknownField *)field;
-
-/**
- * @return An array of the GPBUnknownFields sorted by the field numbers.
- **/
-- (NSArray<GPBUnknownField *> *)sortedFields;
-
-@end
-
-NS_ASSUME_NONNULL_END
diff --git a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBUnknownFieldSet.m b/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBUnknownFieldSet.m
deleted file mode 100644
index a7335f05..00000000
--- a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBUnknownFieldSet.m
+++ /dev/null
@@ -1,395 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// https://developers.google.com/protocol-buffers/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#import "GPBUnknownFieldSet_PackagePrivate.h"
-
-#import "GPBCodedInputStream_PackagePrivate.h"
-#import "GPBCodedOutputStream.h"
-#import "GPBUnknownField_PackagePrivate.h"
-#import "GPBUtilities.h"
-#import "GPBWireFormat.h"
-
-#pragma mark Helpers
-
-static void checkNumber(int32_t number) {
- if (number == 0) {
- [NSException raise:NSInvalidArgumentException
- format:@"Zero is not a valid field number."];
- }
-}
-
-@implementation GPBUnknownFieldSet {
- @package
- CFMutableDictionaryRef fields_;
-}
-
-static void CopyWorker(const void *key, const void *value, void *context) {
-#pragma unused(key)
- GPBUnknownField *field = value;
- GPBUnknownFieldSet *result = context;
-
- GPBUnknownField *copied = [field copy];
- [result addField:copied];
- [copied release];
-}
-
-// Direct access is use for speed, to avoid even internally declaring things
-// read/write, etc. The warning is enabled in the project to ensure code calling
-// protos can turn on -Wdirect-ivar-access without issues.
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wdirect-ivar-access"
-
-- (id)copyWithZone:(NSZone *)zone {
- GPBUnknownFieldSet *result = [[GPBUnknownFieldSet allocWithZone:zone] init];
- if (fields_) {
- CFDictionaryApplyFunction(fields_, CopyWorker, result);
- }
- return result;
-}
-
-- (void)dealloc {
- if (fields_) {
- CFRelease(fields_);
- }
- [super dealloc];
-}
-
-- (BOOL)isEqual:(id)object {
- BOOL equal = NO;
- if ([object isKindOfClass:[GPBUnknownFieldSet class]]) {
- GPBUnknownFieldSet *set = (GPBUnknownFieldSet *)object;
- if ((fields_ == NULL) && (set->fields_ == NULL)) {
- equal = YES;
- } else if ((fields_ != NULL) && (set->fields_ != NULL)) {
- equal = CFEqual(fields_, set->fields_);
- }
- }
- return equal;
-}
-
-- (NSUInteger)hash {
- // Return the hash of the fields dictionary (or just some value).
- if (fields_) {
- return CFHash(fields_);
- }
- return (NSUInteger)[GPBUnknownFieldSet class];
-}
-
-#pragma mark - Public Methods
-
-- (BOOL)hasField:(int32_t)number {
- ssize_t key = number;
- return fields_ ? (CFDictionaryGetValue(fields_, (void *)key) != nil) : NO;
-}
-
-- (GPBUnknownField *)getField:(int32_t)number {
- ssize_t key = number;
- GPBUnknownField *result =
- fields_ ? CFDictionaryGetValue(fields_, (void *)key) : nil;
- return result;
-}
-
-- (NSUInteger)countOfFields {
- return fields_ ? CFDictionaryGetCount(fields_) : 0;
-}
-
-- (NSArray *)sortedFields {
- if (!fields_) return [NSArray array];
- size_t count = CFDictionaryGetCount(fields_);
- ssize_t keys[count];
- GPBUnknownField *values[count];
- CFDictionaryGetKeysAndValues(fields_, (const void **)keys,
- (const void **)values);
- struct GPBFieldPair {
- ssize_t key;
- GPBUnknownField *value;
- } pairs[count];
- for (size_t i = 0; i < count; ++i) {
- pairs[i].key = keys[i];
- pairs[i].value = values[i];
- };
- qsort_b(pairs, count, sizeof(struct GPBFieldPair),
- ^(const void *first, const void *second) {
- const struct GPBFieldPair *a = first;
- const struct GPBFieldPair *b = second;
- return (a->key > b->key) ? 1 : ((a->key == b->key) ? 0 : -1);
- });
- for (size_t i = 0; i < count; ++i) {
- values[i] = pairs[i].value;
- };
- return [NSArray arrayWithObjects:values count:count];
-}
-
-#pragma mark - Internal Methods
-
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)output {
- if (!fields_) return;
- size_t count = CFDictionaryGetCount(fields_);
- ssize_t keys[count];
- GPBUnknownField *values[count];
- CFDictionaryGetKeysAndValues(fields_, (const void **)keys,
- (const void **)values);
- if (count > 1) {
- struct GPBFieldPair {
- ssize_t key;
- GPBUnknownField *value;
- } pairs[count];
-
- for (size_t i = 0; i < count; ++i) {
- pairs[i].key = keys[i];
- pairs[i].value = values[i];
- };
- qsort_b(pairs, count, sizeof(struct GPBFieldPair),
- ^(const void *first, const void *second) {
- const struct GPBFieldPair *a = first;
- const struct GPBFieldPair *b = second;
- return (a->key > b->key) ? 1 : ((a->key == b->key) ? 0 : -1);
- });
- for (size_t i = 0; i < count; ++i) {
- GPBUnknownField *value = pairs[i].value;
- [value writeToOutput:output];
- }
- } else {
- [values[0] writeToOutput:output];
- }
-}
-
-- (NSString *)description {
- NSMutableString *description = [NSMutableString
- stringWithFormat:@"<%@ %p>: TextFormat: {\n", [self class], self];
- NSString *textFormat = GPBTextFormatForUnknownFieldSet(self, @" ");
- [description appendString:textFormat];
- [description appendString:@"}"];
- return description;
-}
-
-static void GPBUnknownFieldSetSerializedSize(const void *key, const void *value,
- void *context) {
-#pragma unused(key)
- GPBUnknownField *field = value;
- size_t *result = context;
- *result += [field serializedSize];
-}
-
-- (size_t)serializedSize {
- size_t result = 0;
- if (fields_) {
- CFDictionaryApplyFunction(fields_, GPBUnknownFieldSetSerializedSize,
- &result);
- }
- return result;
-}
-
-static void GPBUnknownFieldSetWriteAsMessageSetTo(const void *key,
- const void *value,
- void *context) {
-#pragma unused(key)
- GPBUnknownField *field = value;
- GPBCodedOutputStream *output = context;
- [field writeAsMessageSetExtensionToOutput:output];
-}
-
-- (void)writeAsMessageSetTo:(GPBCodedOutputStream *)output {
- if (fields_) {
- CFDictionaryApplyFunction(fields_, GPBUnknownFieldSetWriteAsMessageSetTo,
- output);
- }
-}
-
-static void GPBUnknownFieldSetSerializedSizeAsMessageSet(const void *key,
- const void *value,
- void *context) {
-#pragma unused(key)
- GPBUnknownField *field = value;
- size_t *result = context;
- *result += [field serializedSizeAsMessageSetExtension];
-}
-
-- (size_t)serializedSizeAsMessageSet {
- size_t result = 0;
- if (fields_) {
- CFDictionaryApplyFunction(
- fields_, GPBUnknownFieldSetSerializedSizeAsMessageSet, &result);
- }
- return result;
-}
-
-- (NSData *)data {
- NSMutableData *data = [NSMutableData dataWithLength:self.serializedSize];
- GPBCodedOutputStream *output =
- [[GPBCodedOutputStream alloc] initWithData:data];
- [self writeToCodedOutputStream:output];
- [output release];
- return data;
-}
-
-+ (BOOL)isFieldTag:(int32_t)tag {
- return GPBWireFormatGetTagWireType(tag) != GPBWireFormatEndGroup;
-}
-
-- (void)addField:(GPBUnknownField *)field {
- int32_t number = [field number];
- checkNumber(number);
- if (!fields_) {
- // Use a custom dictionary here because the keys are numbers and conversion
- // back and forth from NSNumber isn't worth the cost.
- fields_ = CFDictionaryCreateMutable(kCFAllocatorDefault, 0, NULL,
- &kCFTypeDictionaryValueCallBacks);
- }
- ssize_t key = number;
- CFDictionarySetValue(fields_, (const void *)key, field);
-}
-
-- (GPBUnknownField *)mutableFieldForNumber:(int32_t)number create:(BOOL)create {
- ssize_t key = number;
- GPBUnknownField *existing =
- fields_ ? CFDictionaryGetValue(fields_, (const void *)key) : nil;
- if (!existing && create) {
- existing = [[GPBUnknownField alloc] initWithNumber:number];
- // This retains existing.
- [self addField:existing];
- [existing release];
- }
- return existing;
-}
-
-static void GPBUnknownFieldSetMergeUnknownFields(const void *key,
- const void *value,
- void *context) {
-#pragma unused(key)
- GPBUnknownField *field = value;
- GPBUnknownFieldSet *self = context;
-
- int32_t number = [field number];
- checkNumber(number);
- GPBUnknownField *oldField = [self mutableFieldForNumber:number create:NO];
- if (oldField) {
- [oldField mergeFromField:field];
- } else {
- // Merge only comes from GPBMessage's mergeFrom:, so it means we are on
- // mutable message and are an mutable instance, so make sure we need
- // mutable fields.
- GPBUnknownField *fieldCopy = [field copy];
- [self addField:fieldCopy];
- [fieldCopy release];
- }
-}
-
-- (void)mergeUnknownFields:(GPBUnknownFieldSet *)other {
- if (other && other->fields_) {
- CFDictionaryApplyFunction(other->fields_,
- GPBUnknownFieldSetMergeUnknownFields, self);
- }
-}
-
-- (void)mergeFromData:(NSData *)data {
- GPBCodedInputStream *input = [[GPBCodedInputStream alloc] initWithData:data];
- [self mergeFromCodedInputStream:input];
- [input checkLastTagWas:0];
- [input release];
-}
-
-- (void)mergeVarintField:(int32_t)number value:(int32_t)value {
- checkNumber(number);
- [[self mutableFieldForNumber:number create:YES] addVarint:value];
-}
-
-- (BOOL)mergeFieldFrom:(int32_t)tag input:(GPBCodedInputStream *)input {
- NSAssert(GPBWireFormatIsValidTag(tag), @"Got passed an invalid tag");
- int32_t number = GPBWireFormatGetTagFieldNumber(tag);
- GPBCodedInputStreamState *state = &input->state_;
- switch (GPBWireFormatGetTagWireType(tag)) {
- case GPBWireFormatVarint: {
- GPBUnknownField *field = [self mutableFieldForNumber:number create:YES];
- [field addVarint:GPBCodedInputStreamReadInt64(state)];
- return YES;
- }
- case GPBWireFormatFixed64: {
- GPBUnknownField *field = [self mutableFieldForNumber:number create:YES];
- [field addFixed64:GPBCodedInputStreamReadFixed64(state)];
- return YES;
- }
- case GPBWireFormatLengthDelimited: {
- NSData *data = GPBCodedInputStreamReadRetainedBytes(state);
- GPBUnknownField *field = [self mutableFieldForNumber:number create:YES];
- [field addLengthDelimited:data];
- [data release];
- return YES;
- }
- case GPBWireFormatStartGroup: {
- GPBUnknownFieldSet *unknownFieldSet = [[GPBUnknownFieldSet alloc] init];
- [input readUnknownGroup:number message:unknownFieldSet];
- GPBUnknownField *field = [self mutableFieldForNumber:number create:YES];
- [field addGroup:unknownFieldSet];
- [unknownFieldSet release];
- return YES;
- }
- case GPBWireFormatEndGroup:
- return NO;
- case GPBWireFormatFixed32: {
- GPBUnknownField *field = [self mutableFieldForNumber:number create:YES];
- [field addFixed32:GPBCodedInputStreamReadFixed32(state)];
- return YES;
- }
- }
-}
-
-- (void)mergeMessageSetMessage:(int32_t)number data:(NSData *)messageData {
- [[self mutableFieldForNumber:number create:YES]
- addLengthDelimited:messageData];
-}
-
-- (void)addUnknownMapEntry:(int32_t)fieldNum value:(NSData *)data {
- GPBUnknownField *field = [self mutableFieldForNumber:fieldNum create:YES];
- [field addLengthDelimited:data];
-}
-
-- (void)mergeFromCodedInputStream:(GPBCodedInputStream *)input {
- while (YES) {
- int32_t tag = GPBCodedInputStreamReadTag(&input->state_);
- if (tag == 0 || ![self mergeFieldFrom:tag input:input]) {
- break;
- }
- }
-}
-
-- (void)getTags:(int32_t *)tags {
- if (!fields_) return;
- size_t count = CFDictionaryGetCount(fields_);
- ssize_t keys[count];
- CFDictionaryGetKeysAndValues(fields_, (const void **)keys, NULL);
- for (size_t i = 0; i < count; ++i) {
- tags[i] = (int32_t)keys[i];
- }
-}
-
-#pragma clang diagnostic pop
-
-@end
diff --git a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBUnknownFieldSet_PackagePrivate.h b/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBUnknownFieldSet_PackagePrivate.h
deleted file mode 100644
index e27127ad..00000000
--- a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBUnknownFieldSet_PackagePrivate.h
+++ /dev/null
@@ -1,61 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// https://developers.google.com/protocol-buffers/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#import <Foundation/Foundation.h>
-
-#import "GPBUnknownFieldSet.h"
-
-@class GPBCodedOutputStream;
-@class GPBCodedInputStream;
-
-@interface GPBUnknownFieldSet ()
-
-+ (BOOL)isFieldTag:(int32_t)tag;
-
-- (NSData *)data;
-
-- (size_t)serializedSize;
-- (size_t)serializedSizeAsMessageSet;
-
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)output;
-- (void)writeAsMessageSetTo:(GPBCodedOutputStream *)output;
-
-- (void)mergeUnknownFields:(GPBUnknownFieldSet *)other;
-
-- (void)mergeFromCodedInputStream:(GPBCodedInputStream *)input;
-- (void)mergeFromData:(NSData *)data;
-
-- (void)mergeVarintField:(int32_t)number value:(int32_t)value;
-- (BOOL)mergeFieldFrom:(int32_t)tag input:(GPBCodedInputStream *)input;
-- (void)mergeMessageSetMessage:(int32_t)number data:(NSData *)messageData;
-
-- (void)addUnknownMapEntry:(int32_t)fieldNum value:(NSData *)data;
-
-@end
diff --git a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBUnknownField_PackagePrivate.h b/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBUnknownField_PackagePrivate.h
deleted file mode 100644
index 1fbce0f9..00000000
--- a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBUnknownField_PackagePrivate.h
+++ /dev/null
@@ -1,49 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// https://developers.google.com/protocol-buffers/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#import <Foundation/Foundation.h>
-
-#import "GPBUnknownField.h"
-
-@class GPBCodedOutputStream;
-
-@interface GPBUnknownField ()
-
-- (instancetype)initWithNumber:(int32_t)number;
-
-- (void)writeToOutput:(GPBCodedOutputStream *)output;
-- (size_t)serializedSize;
-
-- (void)writeAsMessageSetExtensionToOutput:(GPBCodedOutputStream *)output;
-- (size_t)serializedSizeAsMessageSetExtension;
-
-- (void)mergeFromField:(GPBUnknownField *)other;
-
-@end
diff --git a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBUtilities.h b/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBUtilities.h
deleted file mode 100644
index 5464dfb3..00000000
--- a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBUtilities.h
+++ /dev/null
@@ -1,539 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// https://developers.google.com/protocol-buffers/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#import <Foundation/Foundation.h>
-
-#import "GPBArray.h"
-#import "GPBMessage.h"
-#import "GPBRuntimeTypes.h"
-
-CF_EXTERN_C_BEGIN
-
-NS_ASSUME_NONNULL_BEGIN
-
-/**
- * Generates a string that should be a valid "TextFormat" for the C++ version
- * of Protocol Buffers.
- *
- * @param message The message to generate from.
- * @param lineIndent A string to use as the prefix for all lines generated. Can
- * be nil if no extra indent is needed.
- *
- * @return An NSString with the TextFormat of the message.
- **/
-NSString *GPBTextFormatForMessage(GPBMessage *message,
- NSString * __nullable lineIndent);
-
-/**
- * Generates a string that should be a valid "TextFormat" for the C++ version
- * of Protocol Buffers.
- *
- * @param unknownSet The unknown field set to generate from.
- * @param lineIndent A string to use as the prefix for all lines generated. Can
- * be nil if no extra indent is needed.
- *
- * @return An NSString with the TextFormat of the unknown field set.
- **/
-NSString *GPBTextFormatForUnknownFieldSet(GPBUnknownFieldSet * __nullable unknownSet,
- NSString * __nullable lineIndent);
-
-/**
- * Checks if the given field number is set on a message.
- *
- * @param self The message to check.
- * @param fieldNumber The field number to check.
- *
- * @return YES if the field number is set on the given message.
- **/
-BOOL GPBMessageHasFieldNumberSet(GPBMessage *self, uint32_t fieldNumber);
-
-/**
- * Checks if the given field is set on a message.
- *
- * @param self The message to check.
- * @param field The field to check.
- *
- * @return YES if the field is set on the given message.
- **/
-BOOL GPBMessageHasFieldSet(GPBMessage *self, GPBFieldDescriptor *field);
-
-/**
- * Clears the given field for the given message.
- *
- * @param self The message for which to clear the field.
- * @param field The field to clear.
- **/
-void GPBClearMessageField(GPBMessage *self, GPBFieldDescriptor *field);
-
-//%PDDM-EXPAND GPB_ACCESSORS()
-// This block of code is generated, do not edit it directly.
-
-
-//
-// Get/Set a given field from/to a message.
-//
-
-// Single Fields
-
-/**
- * Gets the value of a bytes field.
- *
- * @param self The message from which to get the field.
- * @param field The field to get.
- **/
-NSData *GPBGetMessageBytesField(GPBMessage *self, GPBFieldDescriptor *field);
-
-/**
- * Sets the value of a bytes field.
- *
- * @param self The message into which to set the field.
- * @param field The field to set.
- * @param value The to set in the field.
- **/
-void GPBSetMessageBytesField(GPBMessage *self, GPBFieldDescriptor *field, NSData *value);
-
-/**
- * Gets the value of a string field.
- *
- * @param self The message from which to get the field.
- * @param field The field to get.
- **/
-NSString *GPBGetMessageStringField(GPBMessage *self, GPBFieldDescriptor *field);
-
-/**
- * Sets the value of a string field.
- *
- * @param self The message into which to set the field.
- * @param field The field to set.
- * @param value The to set in the field.
- **/
-void GPBSetMessageStringField(GPBMessage *self, GPBFieldDescriptor *field, NSString *value);
-
-/**
- * Gets the value of a message field.
- *
- * @param self The message from which to get the field.
- * @param field The field to get.
- **/
-GPBMessage *GPBGetMessageMessageField(GPBMessage *self, GPBFieldDescriptor *field);
-
-/**
- * Sets the value of a message field.
- *
- * @param self The message into which to set the field.
- * @param field The field to set.
- * @param value The to set in the field.
- **/
-void GPBSetMessageMessageField(GPBMessage *self, GPBFieldDescriptor *field, GPBMessage *value);
-
-/**
- * Gets the value of a group field.
- *
- * @param self The message from which to get the field.
- * @param field The field to get.
- **/
-GPBMessage *GPBGetMessageGroupField(GPBMessage *self, GPBFieldDescriptor *field);
-
-/**
- * Sets the value of a group field.
- *
- * @param self The message into which to set the field.
- * @param field The field to set.
- * @param value The to set in the field.
- **/
-void GPBSetMessageGroupField(GPBMessage *self, GPBFieldDescriptor *field, GPBMessage *value);
-
-/**
- * Gets the value of a bool field.
- *
- * @param self The message from which to get the field.
- * @param field The field to get.
- **/
-BOOL GPBGetMessageBoolField(GPBMessage *self, GPBFieldDescriptor *field);
-
-/**
- * Sets the value of a bool field.
- *
- * @param self The message into which to set the field.
- * @param field The field to set.
- * @param value The to set in the field.
- **/
-void GPBSetMessageBoolField(GPBMessage *self, GPBFieldDescriptor *field, BOOL value);
-
-/**
- * Gets the value of an int32 field.
- *
- * @param self The message from which to get the field.
- * @param field The field to get.
- **/
-int32_t GPBGetMessageInt32Field(GPBMessage *self, GPBFieldDescriptor *field);
-
-/**
- * Sets the value of an int32 field.
- *
- * @param self The message into which to set the field.
- * @param field The field to set.
- * @param value The to set in the field.
- **/
-void GPBSetMessageInt32Field(GPBMessage *self, GPBFieldDescriptor *field, int32_t value);
-
-/**
- * Gets the value of an uint32 field.
- *
- * @param self The message from which to get the field.
- * @param field The field to get.
- **/
-uint32_t GPBGetMessageUInt32Field(GPBMessage *self, GPBFieldDescriptor *field);
-
-/**
- * Sets the value of an uint32 field.
- *
- * @param self The message into which to set the field.
- * @param field The field to set.
- * @param value The to set in the field.
- **/
-void GPBSetMessageUInt32Field(GPBMessage *self, GPBFieldDescriptor *field, uint32_t value);
-
-/**
- * Gets the value of an int64 field.
- *
- * @param self The message from which to get the field.
- * @param field The field to get.
- **/
-int64_t GPBGetMessageInt64Field(GPBMessage *self, GPBFieldDescriptor *field);
-
-/**
- * Sets the value of an int64 field.
- *
- * @param self The message into which to set the field.
- * @param field The field to set.
- * @param value The to set in the field.
- **/
-void GPBSetMessageInt64Field(GPBMessage *self, GPBFieldDescriptor *field, int64_t value);
-
-/**
- * Gets the value of an uint64 field.
- *
- * @param self The message from which to get the field.
- * @param field The field to get.
- **/
-uint64_t GPBGetMessageUInt64Field(GPBMessage *self, GPBFieldDescriptor *field);
-
-/**
- * Sets the value of an uint64 field.
- *
- * @param self The message into which to set the field.
- * @param field The field to set.
- * @param value The to set in the field.
- **/
-void GPBSetMessageUInt64Field(GPBMessage *self, GPBFieldDescriptor *field, uint64_t value);
-
-/**
- * Gets the value of a float field.
- *
- * @param self The message from which to get the field.
- * @param field The field to get.
- **/
-float GPBGetMessageFloatField(GPBMessage *self, GPBFieldDescriptor *field);
-
-/**
- * Sets the value of a float field.
- *
- * @param self The message into which to set the field.
- * @param field The field to set.
- * @param value The to set in the field.
- **/
-void GPBSetMessageFloatField(GPBMessage *self, GPBFieldDescriptor *field, float value);
-
-/**
- * Gets the value of a double field.
- *
- * @param self The message from which to get the field.
- * @param field The field to get.
- **/
-double GPBGetMessageDoubleField(GPBMessage *self, GPBFieldDescriptor *field);
-
-/**
- * Sets the value of a double field.
- *
- * @param self The message into which to set the field.
- * @param field The field to set.
- * @param value The to set in the field.
- **/
-void GPBSetMessageDoubleField(GPBMessage *self, GPBFieldDescriptor *field, double value);
-
-/**
- * Gets the given enum field of a message. For proto3, if the value isn't a
- * member of the enum, @c kGPBUnrecognizedEnumeratorValue will be returned.
- * GPBGetMessageRawEnumField will bypass the check and return whatever value
- * was set.
- *
- * @param self The message from which to get the field.
- * @param field The field to get.
- *
- * @return The enum value for the given field.
- **/
-int32_t GPBGetMessageEnumField(GPBMessage *self, GPBFieldDescriptor *field);
-
-/**
- * Set the given enum field of a message. You can only set values that are
- * members of the enum.
- *
- * @param self The message into which to set the field.
- * @param field The field to set.
- * @param value The enum value to set in the field.
- **/
-void GPBSetMessageEnumField(GPBMessage *self,
- GPBFieldDescriptor *field,
- int32_t value);
-
-/**
- * Get the given enum field of a message. No check is done to ensure the value
- * was defined in the enum.
- *
- * @param self The message from which to get the field.
- * @param field The field to get.
- *
- * @return The raw enum value for the given field.
- **/
-int32_t GPBGetMessageRawEnumField(GPBMessage *self, GPBFieldDescriptor *field);
-
-/**
- * Set the given enum field of a message. You can set the value to anything,
- * even a value that is not a member of the enum.
- *
- * @param self The message into which to set the field.
- * @param field The field to set.
- * @param value The raw enum value to set in the field.
- **/
-void GPBSetMessageRawEnumField(GPBMessage *self,
- GPBFieldDescriptor *field,
- int32_t value);
-
-// Repeated Fields
-
-/**
- * Gets the value of a repeated field.
- *
- * @param self The message from which to get the field.
- * @param field The repeated field to get.
- *
- * @return A GPB*Array or an NSMutableArray based on the field's type.
- **/
-id GPBGetMessageRepeatedField(GPBMessage *self, GPBFieldDescriptor *field);
-
-/**
- * Sets the value of a repeated field.
- *
- * @param self The message into which to set the field.
- * @param field The field to set.
- * @param array A GPB*Array or NSMutableArray based on the field's type.
- **/
-void GPBSetMessageRepeatedField(GPBMessage *self,
- GPBFieldDescriptor *field,
- id array);
-
-// Map Fields
-
-/**
- * Gets the value of a map<> field.
- *
- * @param self The message from which to get the field.
- * @param field The repeated field to get.
- *
- * @return A GPB*Dictionary or NSMutableDictionary based on the field's type.
- **/
-id GPBGetMessageMapField(GPBMessage *self, GPBFieldDescriptor *field);
-
-/**
- * Sets the value of a map<> field.
- *
- * @param self The message into which to set the field.
- * @param field The field to set.
- * @param dictionary A GPB*Dictionary or NSMutableDictionary based on the
- * field's type.
- **/
-void GPBSetMessageMapField(GPBMessage *self,
- GPBFieldDescriptor *field,
- id dictionary);
-
-//%PDDM-EXPAND-END GPB_ACCESSORS()
-
-/**
- * Returns an empty NSData to assign to byte fields when you wish to assign them
- * to empty. Prevents allocating a lot of little [NSData data] objects.
- **/
-NSData *GPBEmptyNSData(void) __attribute__((pure));
-
-/**
- * Drops the `unknownFields` from the given message and from all sub message.
- **/
-void GPBMessageDropUnknownFieldsRecursively(GPBMessage *message);
-
-NS_ASSUME_NONNULL_END
-
-CF_EXTERN_C_END
-
-
-//%PDDM-DEFINE GPB_ACCESSORS()
-//%
-//%//
-//%// Get/Set a given field from/to a message.
-//%//
-//%
-//%// Single Fields
-//%
-//%GPB_ACCESSOR_SINGLE_FULL(Bytes, NSData, , *)
-//%GPB_ACCESSOR_SINGLE_FULL(String, NSString, , *)
-//%GPB_ACCESSOR_SINGLE_FULL(Message, GPBMessage, , *)
-//%GPB_ACCESSOR_SINGLE_FULL(Group, GPBMessage, , *)
-//%GPB_ACCESSOR_SINGLE(Bool, BOOL, )
-//%GPB_ACCESSOR_SINGLE(Int32, int32_t, n)
-//%GPB_ACCESSOR_SINGLE(UInt32, uint32_t, n)
-//%GPB_ACCESSOR_SINGLE(Int64, int64_t, n)
-//%GPB_ACCESSOR_SINGLE(UInt64, uint64_t, n)
-//%GPB_ACCESSOR_SINGLE(Float, float, )
-//%GPB_ACCESSOR_SINGLE(Double, double, )
-//%/**
-//% * Gets the given enum field of a message. For proto3, if the value isn't a
-//% * member of the enum, @c kGPBUnrecognizedEnumeratorValue will be returned.
-//% * GPBGetMessageRawEnumField will bypass the check and return whatever value
-//% * was set.
-//% *
-//% * @param self The message from which to get the field.
-//% * @param field The field to get.
-//% *
-//% * @return The enum value for the given field.
-//% **/
-//%int32_t GPBGetMessageEnumField(GPBMessage *self, GPBFieldDescriptor *field);
-//%
-//%/**
-//% * Set the given enum field of a message. You can only set values that are
-//% * members of the enum.
-//% *
-//% * @param self The message into which to set the field.
-//% * @param field The field to set.
-//% * @param value The enum value to set in the field.
-//% **/
-//%void GPBSetMessageEnumField(GPBMessage *self,
-//% GPBFieldDescriptor *field,
-//% int32_t value);
-//%
-//%/**
-//% * Get the given enum field of a message. No check is done to ensure the value
-//% * was defined in the enum.
-//% *
-//% * @param self The message from which to get the field.
-//% * @param field The field to get.
-//% *
-//% * @return The raw enum value for the given field.
-//% **/
-//%int32_t GPBGetMessageRawEnumField(GPBMessage *self, GPBFieldDescriptor *field);
-//%
-//%/**
-//% * Set the given enum field of a message. You can set the value to anything,
-//% * even a value that is not a member of the enum.
-//% *
-//% * @param self The message into which to set the field.
-//% * @param field The field to set.
-//% * @param value The raw enum value to set in the field.
-//% **/
-//%void GPBSetMessageRawEnumField(GPBMessage *self,
-//% GPBFieldDescriptor *field,
-//% int32_t value);
-//%
-//%// Repeated Fields
-//%
-//%/**
-//% * Gets the value of a repeated field.
-//% *
-//% * @param self The message from which to get the field.
-//% * @param field The repeated field to get.
-//% *
-//% * @return A GPB*Array or an NSMutableArray based on the field's type.
-//% **/
-//%id GPBGetMessageRepeatedField(GPBMessage *self, GPBFieldDescriptor *field);
-//%
-//%/**
-//% * Sets the value of a repeated field.
-//% *
-//% * @param self The message into which to set the field.
-//% * @param field The field to set.
-//% * @param array A GPB*Array or NSMutableArray based on the field's type.
-//% **/
-//%void GPBSetMessageRepeatedField(GPBMessage *self,
-//% GPBFieldDescriptor *field,
-//% id array);
-//%
-//%// Map Fields
-//%
-//%/**
-//% * Gets the value of a map<> field.
-//% *
-//% * @param self The message from which to get the field.
-//% * @param field The repeated field to get.
-//% *
-//% * @return A GPB*Dictionary or NSMutableDictionary based on the field's type.
-//% **/
-//%id GPBGetMessageMapField(GPBMessage *self, GPBFieldDescriptor *field);
-//%
-//%/**
-//% * Sets the value of a map<> field.
-//% *
-//% * @param self The message into which to set the field.
-//% * @param field The field to set.
-//% * @param dictionary A GPB*Dictionary or NSMutableDictionary based on the
-//% * field's type.
-//% **/
-//%void GPBSetMessageMapField(GPBMessage *self,
-//% GPBFieldDescriptor *field,
-//% id dictionary);
-//%
-
-//%PDDM-DEFINE GPB_ACCESSOR_SINGLE(NAME, TYPE, AN)
-//%GPB_ACCESSOR_SINGLE_FULL(NAME, TYPE, AN, )
-//%PDDM-DEFINE GPB_ACCESSOR_SINGLE_FULL(NAME, TYPE, AN, TisP)
-//%/**
-//% * Gets the value of a##AN NAME$L field.
-//% *
-//% * @param self The message from which to get the field.
-//% * @param field The field to get.
-//% **/
-//%TYPE TisP##GPBGetMessage##NAME##Field(GPBMessage *self, GPBFieldDescriptor *field);
-//%
-//%/**
-//% * Sets the value of a##AN NAME$L field.
-//% *
-//% * @param self The message into which to set the field.
-//% * @param field The field to set.
-//% * @param value The to set in the field.
-//% **/
-//%void GPBSetMessage##NAME##Field(GPBMessage *self, GPBFieldDescriptor *field, TYPE TisP##value);
-//%
diff --git a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBUtilities.m b/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBUtilities.m
deleted file mode 100644
index 5029ec73..00000000
--- a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBUtilities.m
+++ /dev/null
@@ -1,1923 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// https://developers.google.com/protocol-buffers/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#import "GPBUtilities_PackagePrivate.h"
-
-#import <objc/runtime.h>
-
-#import "GPBArray_PackagePrivate.h"
-#import "GPBDescriptor_PackagePrivate.h"
-#import "GPBDictionary_PackagePrivate.h"
-#import "GPBMessage_PackagePrivate.h"
-#import "GPBUnknownField.h"
-#import "GPBUnknownFieldSet.h"
-
-// Direct access is use for speed, to avoid even internally declaring things
-// read/write, etc. The warning is enabled in the project to ensure code calling
-// protos can turn on -Wdirect-ivar-access without issues.
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wdirect-ivar-access"
-
-static void AppendTextFormatForMessage(GPBMessage *message,
- NSMutableString *toStr,
- NSString *lineIndent);
-
-NSData *GPBEmptyNSData(void) {
- static dispatch_once_t onceToken;
- static NSData *defaultNSData = nil;
- dispatch_once(&onceToken, ^{
- defaultNSData = [[NSData alloc] init];
- });
- return defaultNSData;
-}
-
-void GPBMessageDropUnknownFieldsRecursively(GPBMessage *initialMessage) {
- if (!initialMessage) {
- return;
- }
-
- // Use an array as a list to process to avoid recursion.
- NSMutableArray *todo = [NSMutableArray arrayWithObject:initialMessage];
-
- while (todo.count) {
- GPBMessage *msg = todo.lastObject;
- [todo removeLastObject];
-
- // Clear unknowns.
- msg.unknownFields = nil;
-
- // Handle the message fields.
- GPBDescriptor *descriptor = [[msg class] descriptor];
- for (GPBFieldDescriptor *field in descriptor->fields_) {
- if (!GPBFieldDataTypeIsMessage(field)) {
- continue;
- }
- switch (field.fieldType) {
- case GPBFieldTypeSingle:
- if (GPBGetHasIvarField(msg, field)) {
- GPBMessage *fieldMessage = GPBGetObjectIvarWithFieldNoAutocreate(msg, field);
- [todo addObject:fieldMessage];
- }
- break;
-
- case GPBFieldTypeRepeated: {
- NSArray *fieldMessages = GPBGetObjectIvarWithFieldNoAutocreate(msg, field);
- if (fieldMessages.count) {
- [todo addObjectsFromArray:fieldMessages];
- }
- break;
- }
-
- case GPBFieldTypeMap: {
- id rawFieldMap = GPBGetObjectIvarWithFieldNoAutocreate(msg, field);
- switch (field.mapKeyDataType) {
- case GPBDataTypeBool:
- [(GPBBoolObjectDictionary*)rawFieldMap enumerateKeysAndObjectsUsingBlock:^(
- BOOL key, id _Nonnull object, BOOL * _Nonnull stop) {
- #pragma unused(key, stop)
- [todo addObject:object];
- }];
- break;
- case GPBDataTypeFixed32:
- case GPBDataTypeUInt32:
- [(GPBUInt32ObjectDictionary*)rawFieldMap enumerateKeysAndObjectsUsingBlock:^(
- uint32_t key, id _Nonnull object, BOOL * _Nonnull stop) {
- #pragma unused(key, stop)
- [todo addObject:object];
- }];
- break;
- case GPBDataTypeInt32:
- case GPBDataTypeSFixed32:
- case GPBDataTypeSInt32:
- [(GPBInt32ObjectDictionary*)rawFieldMap enumerateKeysAndObjectsUsingBlock:^(
- int32_t key, id _Nonnull object, BOOL * _Nonnull stop) {
- #pragma unused(key, stop)
- [todo addObject:object];
- }];
- break;
- case GPBDataTypeFixed64:
- case GPBDataTypeUInt64:
- [(GPBUInt64ObjectDictionary*)rawFieldMap enumerateKeysAndObjectsUsingBlock:^(
- uint64_t key, id _Nonnull object, BOOL * _Nonnull stop) {
- #pragma unused(key, stop)
- [todo addObject:object];
- }];
- break;
- case GPBDataTypeInt64:
- case GPBDataTypeSFixed64:
- case GPBDataTypeSInt64:
- [(GPBInt64ObjectDictionary*)rawFieldMap enumerateKeysAndObjectsUsingBlock:^(
- int64_t key, id _Nonnull object, BOOL * _Nonnull stop) {
- #pragma unused(key, stop)
- [todo addObject:object];
- }];
- break;
- case GPBDataTypeString:
- [(NSDictionary*)rawFieldMap enumerateKeysAndObjectsUsingBlock:^(
- NSString * _Nonnull key, GPBMessage * _Nonnull obj, BOOL * _Nonnull stop) {
- #pragma unused(key, stop)
- [todo addObject:obj];
- }];
- break;
- case GPBDataTypeFloat:
- case GPBDataTypeDouble:
- case GPBDataTypeEnum:
- case GPBDataTypeBytes:
- case GPBDataTypeGroup:
- case GPBDataTypeMessage:
- NSCAssert(NO, @"Aren't valid key types.");
- }
- break;
- } // switch(field.mapKeyDataType)
- } // switch(field.fieldType)
- } // for(fields)
-
- // Handle any extensions holding messages.
- for (GPBExtensionDescriptor *extension in [msg extensionsCurrentlySet]) {
- if (!GPBDataTypeIsMessage(extension.dataType)) {
- continue;
- }
- if (extension.isRepeated) {
- NSArray *extMessages = [msg getExtension:extension];
- [todo addObjectsFromArray:extMessages];
- } else {
- GPBMessage *extMessage = [msg getExtension:extension];
- [todo addObject:extMessage];
- }
- } // for(extensionsCurrentlySet)
-
- } // while(todo.count)
-}
-
-
-// -- About Version Checks --
-// There's actually 3 places these checks all come into play:
-// 1. When the generated source is compile into .o files, the header check
-// happens. This is checking the protoc used matches the library being used
-// when making the .o.
-// 2. Every place a generated proto header is included in a developer's code,
-// the header check comes into play again. But this time it is checking that
-// the current library headers being used still support/match the ones for
-// the generated code.
-// 3. At runtime the final check here (GPBCheckRuntimeVersionsInternal), is
-// called from the generated code passing in values captured when the
-// generated code's .o was made. This checks that at runtime the generated
-// code and runtime library match.
-
-void GPBCheckRuntimeVersionSupport(int32_t objcRuntimeVersion) {
- // NOTE: This is passing the value captured in the compiled code to check
- // against the values captured when the runtime support was compiled. This
- // ensures the library code isn't in a different framework/library that
- // was generated with a non matching version.
- if (GOOGLE_PROTOBUF_OBJC_VERSION < objcRuntimeVersion) {
- // Library is too old for headers.
- [NSException raise:NSInternalInconsistencyException
- format:@"Linked to ProtocolBuffer runtime version %d,"
- @" but code compiled needing atleast %d!",
- GOOGLE_PROTOBUF_OBJC_VERSION, objcRuntimeVersion];
- }
- if (objcRuntimeVersion < GOOGLE_PROTOBUF_OBJC_MIN_SUPPORTED_VERSION) {
- // Headers are too old for library.
- [NSException raise:NSInternalInconsistencyException
- format:@"Proto generation source compiled against runtime"
- @" version %d, but this version of the runtime only"
- @" supports back to %d!",
- objcRuntimeVersion,
- GOOGLE_PROTOBUF_OBJC_MIN_SUPPORTED_VERSION];
- }
-}
-
-// This api is no longer used for version checks. 30001 is the last version
-// using this old versioning model. When that support is removed, this function
-// can be removed (along with the declaration in GPBUtilities_PackagePrivate.h).
-void GPBCheckRuntimeVersionInternal(int32_t version) {
- GPBInternalCompileAssert(GOOGLE_PROTOBUF_OBJC_MIN_SUPPORTED_VERSION == 30001,
- time_to_remove_this_old_version_shim);
- if (version != GOOGLE_PROTOBUF_OBJC_MIN_SUPPORTED_VERSION) {
- [NSException raise:NSInternalInconsistencyException
- format:@"Linked to ProtocolBuffer runtime version %d,"
- @" but code compiled with version %d!",
- GOOGLE_PROTOBUF_OBJC_GEN_VERSION, version];
- }
-}
-
-BOOL GPBMessageHasFieldNumberSet(GPBMessage *self, uint32_t fieldNumber) {
- GPBDescriptor *descriptor = [self descriptor];
- GPBFieldDescriptor *field = [descriptor fieldWithNumber:fieldNumber];
- return GPBMessageHasFieldSet(self, field);
-}
-
-BOOL GPBMessageHasFieldSet(GPBMessage *self, GPBFieldDescriptor *field) {
- if (self == nil || field == nil) return NO;
-
- // Repeated/Map don't use the bit, they check the count.
- if (GPBFieldIsMapOrArray(field)) {
- // Array/map type doesn't matter, since GPB*Array/NSArray and
- // GPB*Dictionary/NSDictionary all support -count;
- NSArray *arrayOrMap = GPBGetObjectIvarWithFieldNoAutocreate(self, field);
- return (arrayOrMap.count > 0);
- } else {
- return GPBGetHasIvarField(self, field);
- }
-}
-
-void GPBClearMessageField(GPBMessage *self, GPBFieldDescriptor *field) {
- // If not set, nothing to do.
- if (!GPBGetHasIvarField(self, field)) {
- return;
- }
-
- if (GPBFieldStoresObject(field)) {
- // Object types are handled slightly differently, they need to be released.
- uint8_t *storage = (uint8_t *)self->messageStorage_;
- id *typePtr = (id *)&storage[field->description_->offset];
- [*typePtr release];
- *typePtr = nil;
- } else {
- // POD types just need to clear the has bit as the Get* method will
- // fetch the default when needed.
- }
- GPBSetHasIvarField(self, field, NO);
-}
-
-BOOL GPBGetHasIvar(GPBMessage *self, int32_t idx, uint32_t fieldNumber) {
- NSCAssert(self->messageStorage_ != NULL,
- @"%@: All messages should have storage (from init)",
- [self class]);
- if (idx < 0) {
- NSCAssert(fieldNumber != 0, @"Invalid field number.");
- BOOL hasIvar = (self->messageStorage_->_has_storage_[-idx] == fieldNumber);
- return hasIvar;
- } else {
- NSCAssert(idx != GPBNoHasBit, @"Invalid has bit.");
- uint32_t byteIndex = idx / 32;
- uint32_t bitMask = (1 << (idx % 32));
- BOOL hasIvar =
- (self->messageStorage_->_has_storage_[byteIndex] & bitMask) ? YES : NO;
- return hasIvar;
- }
-}
-
-uint32_t GPBGetHasOneof(GPBMessage *self, int32_t idx) {
- NSCAssert(idx < 0, @"%@: invalid index (%d) for oneof.",
- [self class], idx);
- uint32_t result = self->messageStorage_->_has_storage_[-idx];
- return result;
-}
-
-void GPBSetHasIvar(GPBMessage *self, int32_t idx, uint32_t fieldNumber,
- BOOL value) {
- if (idx < 0) {
- NSCAssert(fieldNumber != 0, @"Invalid field number.");
- uint32_t *has_storage = self->messageStorage_->_has_storage_;
- has_storage[-idx] = (value ? fieldNumber : 0);
- } else {
- NSCAssert(idx != GPBNoHasBit, @"Invalid has bit.");
- uint32_t *has_storage = self->messageStorage_->_has_storage_;
- uint32_t byte = idx / 32;
- uint32_t bitMask = (1 << (idx % 32));
- if (value) {
- has_storage[byte] |= bitMask;
- } else {
- has_storage[byte] &= ~bitMask;
- }
- }
-}
-
-void GPBMaybeClearOneof(GPBMessage *self, GPBOneofDescriptor *oneof,
- int32_t oneofHasIndex, uint32_t fieldNumberNotToClear) {
- uint32_t fieldNumberSet = GPBGetHasOneof(self, oneofHasIndex);
- if ((fieldNumberSet == fieldNumberNotToClear) || (fieldNumberSet == 0)) {
- // Do nothing/nothing set in the oneof.
- return;
- }
-
- // Like GPBClearMessageField(), free the memory if an objecttype is set,
- // pod types don't need to do anything.
- GPBFieldDescriptor *fieldSet = [oneof fieldWithNumber:fieldNumberSet];
- NSCAssert(fieldSet,
- @"%@: oneof set to something (%u) not in the oneof?",
- [self class], fieldNumberSet);
- if (fieldSet && GPBFieldStoresObject(fieldSet)) {
- uint8_t *storage = (uint8_t *)self->messageStorage_;
- id *typePtr = (id *)&storage[fieldSet->description_->offset];
- [*typePtr release];
- *typePtr = nil;
- }
-
- // Set to nothing stored in the oneof.
- // (field number doesn't matter since setting to nothing).
- GPBSetHasIvar(self, oneofHasIndex, 1, NO);
-}
-
-#pragma mark - IVar accessors
-
-//%PDDM-DEFINE IVAR_POD_ACCESSORS_DEFN(NAME, TYPE)
-//%TYPE GPBGetMessage##NAME##Field(GPBMessage *self,
-//% TYPE$S NAME$S GPBFieldDescriptor *field) {
-//% if (GPBGetHasIvarField(self, field)) {
-//% uint8_t *storage = (uint8_t *)self->messageStorage_;
-//% TYPE *typePtr = (TYPE *)&storage[field->description_->offset];
-//% return *typePtr;
-//% } else {
-//% return field.defaultValue.value##NAME;
-//% }
-//%}
-//%
-//%// Only exists for public api, no core code should use this.
-//%void GPBSetMessage##NAME##Field(GPBMessage *self,
-//% NAME$S GPBFieldDescriptor *field,
-//% NAME$S TYPE value) {
-//% if (self == nil || field == nil) return;
-//% GPBFileSyntax syntax = [self descriptor].file.syntax;
-//% GPBSet##NAME##IvarWithFieldInternal(self, field, value, syntax);
-//%}
-//%
-//%void GPBSet##NAME##IvarWithFieldInternal(GPBMessage *self,
-//% NAME$S GPBFieldDescriptor *field,
-//% NAME$S TYPE value,
-//% NAME$S GPBFileSyntax syntax) {
-//% GPBOneofDescriptor *oneof = field->containingOneof_;
-//% if (oneof) {
-//% GPBMessageFieldDescription *fieldDesc = field->description_;
-//% GPBMaybeClearOneof(self, oneof, fieldDesc->hasIndex, fieldDesc->number);
-//% }
-//% NSCAssert(self->messageStorage_ != NULL,
-//% @"%@: All messages should have storage (from init)",
-//% [self class]);
-//%#if defined(__clang_analyzer__)
-//% if (self->messageStorage_ == NULL) return;
-//%#endif
-//% uint8_t *storage = (uint8_t *)self->messageStorage_;
-//% TYPE *typePtr = (TYPE *)&storage[field->description_->offset];
-//% *typePtr = value;
-//% // proto2: any value counts as having been set; proto3, it
-//% // has to be a non zero value or be in a oneof.
-//% BOOL hasValue = ((syntax == GPBFileSyntaxProto2)
-//% || (value != (TYPE)0)
-//% || (field->containingOneof_ != NULL));
-//% GPBSetHasIvarField(self, field, hasValue);
-//% GPBBecomeVisibleToAutocreator(self);
-//%}
-//%
-//%PDDM-DEFINE IVAR_ALIAS_DEFN_OBJECT(NAME, TYPE)
-//%// Only exists for public api, no core code should use this.
-//%TYPE *GPBGetMessage##NAME##Field(GPBMessage *self,
-//% TYPE$S NAME$S GPBFieldDescriptor *field) {
-//% return (TYPE *)GPBGetObjectIvarWithField(self, field);
-//%}
-//%
-//%// Only exists for public api, no core code should use this.
-//%void GPBSetMessage##NAME##Field(GPBMessage *self,
-//% NAME$S GPBFieldDescriptor *field,
-//% NAME$S TYPE *value) {
-//% GPBSetObjectIvarWithField(self, field, (id)value);
-//%}
-//%
-
-// Object types are handled slightly differently, they need to be released
-// and retained.
-
-void GPBSetAutocreatedRetainedObjectIvarWithField(
- GPBMessage *self, GPBFieldDescriptor *field,
- id __attribute__((ns_consumed)) value) {
- uint8_t *storage = (uint8_t *)self->messageStorage_;
- id *typePtr = (id *)&storage[field->description_->offset];
- NSCAssert(*typePtr == NULL, @"Can't set autocreated object more than once.");
- *typePtr = value;
-}
-
-void GPBClearAutocreatedMessageIvarWithField(GPBMessage *self,
- GPBFieldDescriptor *field) {
- if (GPBGetHasIvarField(self, field)) {
- return;
- }
- uint8_t *storage = (uint8_t *)self->messageStorage_;
- id *typePtr = (id *)&storage[field->description_->offset];
- GPBMessage *oldValue = *typePtr;
- *typePtr = NULL;
- GPBClearMessageAutocreator(oldValue);
- [oldValue release];
-}
-
-// This exists only for briging some aliased types, nothing else should use it.
-static void GPBSetObjectIvarWithField(GPBMessage *self,
- GPBFieldDescriptor *field, id value) {
- if (self == nil || field == nil) return;
- GPBFileSyntax syntax = [self descriptor].file.syntax;
- GPBSetRetainedObjectIvarWithFieldInternal(self, field, [value retain],
- syntax);
-}
-
-void GPBSetObjectIvarWithFieldInternal(GPBMessage *self,
- GPBFieldDescriptor *field, id value,
- GPBFileSyntax syntax) {
- GPBSetRetainedObjectIvarWithFieldInternal(self, field, [value retain],
- syntax);
-}
-
-void GPBSetRetainedObjectIvarWithFieldInternal(GPBMessage *self,
- GPBFieldDescriptor *field,
- id value, GPBFileSyntax syntax) {
- NSCAssert(self->messageStorage_ != NULL,
- @"%@: All messages should have storage (from init)",
- [self class]);
-#if defined(__clang_analyzer__)
- if (self->messageStorage_ == NULL) return;
-#endif
- GPBDataType fieldType = GPBGetFieldDataType(field);
- BOOL isMapOrArray = GPBFieldIsMapOrArray(field);
- BOOL fieldIsMessage = GPBDataTypeIsMessage(fieldType);
-#ifdef DEBUG
- if (value == nil && !isMapOrArray && !fieldIsMessage &&
- field.hasDefaultValue) {
- // Setting a message to nil is an obvious way to "clear" the value
- // as there is no way to set a non-empty default value for messages.
- //
- // For Strings and Bytes that have default values set it is not clear what
- // should be done when their value is set to nil. Is the intention just to
- // clear the set value and reset to default, or is the intention to set the
- // value to the empty string/data? Arguments can be made for both cases.
- // 'nil' has been abused as a replacement for an empty string/data in ObjC.
- // We decided to be consistent with all "object" types and clear the has
- // field, and fall back on the default value. The warning below will only
- // appear in debug, but the could should be changed so the intention is
- // clear.
- NSString *hasSel = NSStringFromSelector(field->hasOrCountSel_);
- NSString *propName = field.name;
- NSString *className = self.descriptor.name;
- NSLog(@"warning: '%@.%@ = nil;' is not clearly defined for fields with "
- @"default values. Please use '%@.%@ = %@' if you want to set it to "
- @"empty, or call '%@.%@ = NO' to reset it to it's default value of "
- @"'%@'. Defaulting to resetting default value.",
- className, propName, className, propName,
- (fieldType == GPBDataTypeString) ? @"@\"\"" : @"GPBEmptyNSData()",
- className, hasSel, field.defaultValue.valueString);
- // Note: valueString, depending on the type, it could easily be
- // valueData/valueMessage.
- }
-#endif // DEBUG
- if (!isMapOrArray) {
- // Non repeated/map can be in an oneof, clear any existing value from the
- // oneof.
- GPBOneofDescriptor *oneof = field->containingOneof_;
- if (oneof) {
- GPBMessageFieldDescription *fieldDesc = field->description_;
- GPBMaybeClearOneof(self, oneof, fieldDesc->hasIndex, fieldDesc->number);
- }
- // Clear "has" if they are being set to nil.
- BOOL setHasValue = (value != nil);
- // Under proto3, Bytes & String fields get cleared by resetting them to
- // their default (empty) values, so if they are set to something of length
- // zero, they are being cleared.
- if ((syntax == GPBFileSyntaxProto3) && !fieldIsMessage &&
- ([value length] == 0)) {
- // Except, if the field was in a oneof, then it still gets recorded as
- // having been set so the state of the oneof can be serialized back out.
- if (!oneof) {
- setHasValue = NO;
- }
- if (setHasValue) {
- NSCAssert(value != nil, @"Should never be setting has for nil");
- } else {
- // The value passed in was retained, it must be released since we
- // aren't saving anything in the field.
- [value release];
- value = nil;
- }
- }
- GPBSetHasIvarField(self, field, setHasValue);
- }
- uint8_t *storage = (uint8_t *)self->messageStorage_;
- id *typePtr = (id *)&storage[field->description_->offset];
-
- id oldValue = *typePtr;
-
- *typePtr = value;
-
- if (oldValue) {
- if (isMapOrArray) {
- if (field.fieldType == GPBFieldTypeRepeated) {
- // If the old array was autocreated by us, then clear it.
- if (GPBDataTypeIsObject(fieldType)) {
- if ([oldValue isKindOfClass:[GPBAutocreatedArray class]]) {
- GPBAutocreatedArray *autoArray = oldValue;
- if (autoArray->_autocreator == self) {
- autoArray->_autocreator = nil;
- }
- }
- } else {
- // Type doesn't matter, it is a GPB*Array.
- GPBInt32Array *gpbArray = oldValue;
- if (gpbArray->_autocreator == self) {
- gpbArray->_autocreator = nil;
- }
- }
- } else { // GPBFieldTypeMap
- // If the old map was autocreated by us, then clear it.
- if ((field.mapKeyDataType == GPBDataTypeString) &&
- GPBDataTypeIsObject(fieldType)) {
- if ([oldValue isKindOfClass:[GPBAutocreatedDictionary class]]) {
- GPBAutocreatedDictionary *autoDict = oldValue;
- if (autoDict->_autocreator == self) {
- autoDict->_autocreator = nil;
- }
- }
- } else {
- // Type doesn't matter, it is a GPB*Dictionary.
- GPBInt32Int32Dictionary *gpbDict = oldValue;
- if (gpbDict->_autocreator == self) {
- gpbDict->_autocreator = nil;
- }
- }
- }
- } else if (fieldIsMessage) {
- // If the old message value was autocreated by us, then clear it.
- GPBMessage *oldMessageValue = oldValue;
- if (GPBWasMessageAutocreatedBy(oldMessageValue, self)) {
- GPBClearMessageAutocreator(oldMessageValue);
- }
- }
- [oldValue release];
- }
-
- GPBBecomeVisibleToAutocreator(self);
-}
-
-id GPBGetObjectIvarWithFieldNoAutocreate(GPBMessage *self,
- GPBFieldDescriptor *field) {
- if (self->messageStorage_ == nil) {
- return nil;
- }
- uint8_t *storage = (uint8_t *)self->messageStorage_;
- id *typePtr = (id *)&storage[field->description_->offset];
- return *typePtr;
-}
-
-id GPBGetObjectIvarWithField(GPBMessage *self, GPBFieldDescriptor *field) {
- NSCAssert(!GPBFieldIsMapOrArray(field), @"Shouldn't get here");
- if (GPBGetHasIvarField(self, field)) {
- uint8_t *storage = (uint8_t *)self->messageStorage_;
- id *typePtr = (id *)&storage[field->description_->offset];
- return *typePtr;
- }
- // Not set...
-
- // Non messages (string/data), get their default.
- if (!GPBFieldDataTypeIsMessage(field)) {
- return field.defaultValue.valueMessage;
- }
-
- GPBPrepareReadOnlySemaphore(self);
- dispatch_semaphore_wait(self->readOnlySemaphore_, DISPATCH_TIME_FOREVER);
- GPBMessage *result = GPBGetObjectIvarWithFieldNoAutocreate(self, field);
- if (!result) {
- // For non repeated messages, create the object, set it and return it.
- // This object will not initially be visible via GPBGetHasIvar, so
- // we save its creator so it can become visible if it's mutated later.
- result = GPBCreateMessageWithAutocreator(field.msgClass, self, field);
- GPBSetAutocreatedRetainedObjectIvarWithField(self, field, result);
- }
- dispatch_semaphore_signal(self->readOnlySemaphore_);
- return result;
-}
-
-// Only exists for public api, no core code should use this.
-int32_t GPBGetMessageEnumField(GPBMessage *self, GPBFieldDescriptor *field) {
- GPBFileSyntax syntax = [self descriptor].file.syntax;
- return GPBGetEnumIvarWithFieldInternal(self, field, syntax);
-}
-
-int32_t GPBGetEnumIvarWithFieldInternal(GPBMessage *self,
- GPBFieldDescriptor *field,
- GPBFileSyntax syntax) {
- int32_t result = GPBGetMessageInt32Field(self, field);
- // If this is presevering unknown enums, make sure the value is valid before
- // returning it.
- if (GPBHasPreservingUnknownEnumSemantics(syntax) &&
- ![field isValidEnumValue:result]) {
- result = kGPBUnrecognizedEnumeratorValue;
- }
- return result;
-}
-
-// Only exists for public api, no core code should use this.
-void GPBSetMessageEnumField(GPBMessage *self, GPBFieldDescriptor *field,
- int32_t value) {
- GPBFileSyntax syntax = [self descriptor].file.syntax;
- GPBSetInt32IvarWithFieldInternal(self, field, value, syntax);
-}
-
-void GPBSetEnumIvarWithFieldInternal(GPBMessage *self,
- GPBFieldDescriptor *field, int32_t value,
- GPBFileSyntax syntax) {
- // Don't allow in unknown values. Proto3 can use the Raw method.
- if (![field isValidEnumValue:value]) {
- [NSException raise:NSInvalidArgumentException
- format:@"%@.%@: Attempt to set an unknown enum value (%d)",
- [self class], field.name, value];
- }
- GPBSetInt32IvarWithFieldInternal(self, field, value, syntax);
-}
-
-// Only exists for public api, no core code should use this.
-int32_t GPBGetMessageRawEnumField(GPBMessage *self,
- GPBFieldDescriptor *field) {
- int32_t result = GPBGetMessageInt32Field(self, field);
- return result;
-}
-
-// Only exists for public api, no core code should use this.
-void GPBSetMessageRawEnumField(GPBMessage *self, GPBFieldDescriptor *field,
- int32_t value) {
- GPBFileSyntax syntax = [self descriptor].file.syntax;
- GPBSetInt32IvarWithFieldInternal(self, field, value, syntax);
-}
-
-BOOL GPBGetMessageBoolField(GPBMessage *self,
- GPBFieldDescriptor *field) {
- if (GPBGetHasIvarField(self, field)) {
- // Bools are stored in the has bits to avoid needing explicit space in the
- // storage structure.
- // (the field number passed to the HasIvar helper doesn't really matter
- // since the offset is never negative)
- GPBMessageFieldDescription *fieldDesc = field->description_;
- return GPBGetHasIvar(self, (int32_t)(fieldDesc->offset), fieldDesc->number);
- } else {
- return field.defaultValue.valueBool;
- }
-}
-
-// Only exists for public api, no core code should use this.
-void GPBSetMessageBoolField(GPBMessage *self,
- GPBFieldDescriptor *field,
- BOOL value) {
- if (self == nil || field == nil) return;
- GPBFileSyntax syntax = [self descriptor].file.syntax;
- GPBSetBoolIvarWithFieldInternal(self, field, value, syntax);
-}
-
-void GPBSetBoolIvarWithFieldInternal(GPBMessage *self,
- GPBFieldDescriptor *field,
- BOOL value,
- GPBFileSyntax syntax) {
- GPBMessageFieldDescription *fieldDesc = field->description_;
- GPBOneofDescriptor *oneof = field->containingOneof_;
- if (oneof) {
- GPBMaybeClearOneof(self, oneof, fieldDesc->hasIndex, fieldDesc->number);
- }
-
- // Bools are stored in the has bits to avoid needing explicit space in the
- // storage structure.
- // (the field number passed to the HasIvar helper doesn't really matter since
- // the offset is never negative)
- GPBSetHasIvar(self, (int32_t)(fieldDesc->offset), fieldDesc->number, value);
-
- // proto2: any value counts as having been set; proto3, it
- // has to be a non zero value or be in a oneof.
- BOOL hasValue = ((syntax == GPBFileSyntaxProto2)
- || (value != (BOOL)0)
- || (field->containingOneof_ != NULL));
- GPBSetHasIvarField(self, field, hasValue);
- GPBBecomeVisibleToAutocreator(self);
-}
-
-//%PDDM-EXPAND IVAR_POD_ACCESSORS_DEFN(Int32, int32_t)
-// This block of code is generated, do not edit it directly.
-
-int32_t GPBGetMessageInt32Field(GPBMessage *self,
- GPBFieldDescriptor *field) {
- if (GPBGetHasIvarField(self, field)) {
- uint8_t *storage = (uint8_t *)self->messageStorage_;
- int32_t *typePtr = (int32_t *)&storage[field->description_->offset];
- return *typePtr;
- } else {
- return field.defaultValue.valueInt32;
- }
-}
-
-// Only exists for public api, no core code should use this.
-void GPBSetMessageInt32Field(GPBMessage *self,
- GPBFieldDescriptor *field,
- int32_t value) {
- if (self == nil || field == nil) return;
- GPBFileSyntax syntax = [self descriptor].file.syntax;
- GPBSetInt32IvarWithFieldInternal(self, field, value, syntax);
-}
-
-void GPBSetInt32IvarWithFieldInternal(GPBMessage *self,
- GPBFieldDescriptor *field,
- int32_t value,
- GPBFileSyntax syntax) {
- GPBOneofDescriptor *oneof = field->containingOneof_;
- if (oneof) {
- GPBMessageFieldDescription *fieldDesc = field->description_;
- GPBMaybeClearOneof(self, oneof, fieldDesc->hasIndex, fieldDesc->number);
- }
- NSCAssert(self->messageStorage_ != NULL,
- @"%@: All messages should have storage (from init)",
- [self class]);
-#if defined(__clang_analyzer__)
- if (self->messageStorage_ == NULL) return;
-#endif
- uint8_t *storage = (uint8_t *)self->messageStorage_;
- int32_t *typePtr = (int32_t *)&storage[field->description_->offset];
- *typePtr = value;
- // proto2: any value counts as having been set; proto3, it
- // has to be a non zero value or be in a oneof.
- BOOL hasValue = ((syntax == GPBFileSyntaxProto2)
- || (value != (int32_t)0)
- || (field->containingOneof_ != NULL));
- GPBSetHasIvarField(self, field, hasValue);
- GPBBecomeVisibleToAutocreator(self);
-}
-
-//%PDDM-EXPAND IVAR_POD_ACCESSORS_DEFN(UInt32, uint32_t)
-// This block of code is generated, do not edit it directly.
-
-uint32_t GPBGetMessageUInt32Field(GPBMessage *self,
- GPBFieldDescriptor *field) {
- if (GPBGetHasIvarField(self, field)) {
- uint8_t *storage = (uint8_t *)self->messageStorage_;
- uint32_t *typePtr = (uint32_t *)&storage[field->description_->offset];
- return *typePtr;
- } else {
- return field.defaultValue.valueUInt32;
- }
-}
-
-// Only exists for public api, no core code should use this.
-void GPBSetMessageUInt32Field(GPBMessage *self,
- GPBFieldDescriptor *field,
- uint32_t value) {
- if (self == nil || field == nil) return;
- GPBFileSyntax syntax = [self descriptor].file.syntax;
- GPBSetUInt32IvarWithFieldInternal(self, field, value, syntax);
-}
-
-void GPBSetUInt32IvarWithFieldInternal(GPBMessage *self,
- GPBFieldDescriptor *field,
- uint32_t value,
- GPBFileSyntax syntax) {
- GPBOneofDescriptor *oneof = field->containingOneof_;
- if (oneof) {
- GPBMessageFieldDescription *fieldDesc = field->description_;
- GPBMaybeClearOneof(self, oneof, fieldDesc->hasIndex, fieldDesc->number);
- }
- NSCAssert(self->messageStorage_ != NULL,
- @"%@: All messages should have storage (from init)",
- [self class]);
-#if defined(__clang_analyzer__)
- if (self->messageStorage_ == NULL) return;
-#endif
- uint8_t *storage = (uint8_t *)self->messageStorage_;
- uint32_t *typePtr = (uint32_t *)&storage[field->description_->offset];
- *typePtr = value;
- // proto2: any value counts as having been set; proto3, it
- // has to be a non zero value or be in a oneof.
- BOOL hasValue = ((syntax == GPBFileSyntaxProto2)
- || (value != (uint32_t)0)
- || (field->containingOneof_ != NULL));
- GPBSetHasIvarField(self, field, hasValue);
- GPBBecomeVisibleToAutocreator(self);
-}
-
-//%PDDM-EXPAND IVAR_POD_ACCESSORS_DEFN(Int64, int64_t)
-// This block of code is generated, do not edit it directly.
-
-int64_t GPBGetMessageInt64Field(GPBMessage *self,
- GPBFieldDescriptor *field) {
- if (GPBGetHasIvarField(self, field)) {
- uint8_t *storage = (uint8_t *)self->messageStorage_;
- int64_t *typePtr = (int64_t *)&storage[field->description_->offset];
- return *typePtr;
- } else {
- return field.defaultValue.valueInt64;
- }
-}
-
-// Only exists for public api, no core code should use this.
-void GPBSetMessageInt64Field(GPBMessage *self,
- GPBFieldDescriptor *field,
- int64_t value) {
- if (self == nil || field == nil) return;
- GPBFileSyntax syntax = [self descriptor].file.syntax;
- GPBSetInt64IvarWithFieldInternal(self, field, value, syntax);
-}
-
-void GPBSetInt64IvarWithFieldInternal(GPBMessage *self,
- GPBFieldDescriptor *field,
- int64_t value,
- GPBFileSyntax syntax) {
- GPBOneofDescriptor *oneof = field->containingOneof_;
- if (oneof) {
- GPBMessageFieldDescription *fieldDesc = field->description_;
- GPBMaybeClearOneof(self, oneof, fieldDesc->hasIndex, fieldDesc->number);
- }
- NSCAssert(self->messageStorage_ != NULL,
- @"%@: All messages should have storage (from init)",
- [self class]);
-#if defined(__clang_analyzer__)
- if (self->messageStorage_ == NULL) return;
-#endif
- uint8_t *storage = (uint8_t *)self->messageStorage_;
- int64_t *typePtr = (int64_t *)&storage[field->description_->offset];
- *typePtr = value;
- // proto2: any value counts as having been set; proto3, it
- // has to be a non zero value or be in a oneof.
- BOOL hasValue = ((syntax == GPBFileSyntaxProto2)
- || (value != (int64_t)0)
- || (field->containingOneof_ != NULL));
- GPBSetHasIvarField(self, field, hasValue);
- GPBBecomeVisibleToAutocreator(self);
-}
-
-//%PDDM-EXPAND IVAR_POD_ACCESSORS_DEFN(UInt64, uint64_t)
-// This block of code is generated, do not edit it directly.
-
-uint64_t GPBGetMessageUInt64Field(GPBMessage *self,
- GPBFieldDescriptor *field) {
- if (GPBGetHasIvarField(self, field)) {
- uint8_t *storage = (uint8_t *)self->messageStorage_;
- uint64_t *typePtr = (uint64_t *)&storage[field->description_->offset];
- return *typePtr;
- } else {
- return field.defaultValue.valueUInt64;
- }
-}
-
-// Only exists for public api, no core code should use this.
-void GPBSetMessageUInt64Field(GPBMessage *self,
- GPBFieldDescriptor *field,
- uint64_t value) {
- if (self == nil || field == nil) return;
- GPBFileSyntax syntax = [self descriptor].file.syntax;
- GPBSetUInt64IvarWithFieldInternal(self, field, value, syntax);
-}
-
-void GPBSetUInt64IvarWithFieldInternal(GPBMessage *self,
- GPBFieldDescriptor *field,
- uint64_t value,
- GPBFileSyntax syntax) {
- GPBOneofDescriptor *oneof = field->containingOneof_;
- if (oneof) {
- GPBMessageFieldDescription *fieldDesc = field->description_;
- GPBMaybeClearOneof(self, oneof, fieldDesc->hasIndex, fieldDesc->number);
- }
- NSCAssert(self->messageStorage_ != NULL,
- @"%@: All messages should have storage (from init)",
- [self class]);
-#if defined(__clang_analyzer__)
- if (self->messageStorage_ == NULL) return;
-#endif
- uint8_t *storage = (uint8_t *)self->messageStorage_;
- uint64_t *typePtr = (uint64_t *)&storage[field->description_->offset];
- *typePtr = value;
- // proto2: any value counts as having been set; proto3, it
- // has to be a non zero value or be in a oneof.
- BOOL hasValue = ((syntax == GPBFileSyntaxProto2)
- || (value != (uint64_t)0)
- || (field->containingOneof_ != NULL));
- GPBSetHasIvarField(self, field, hasValue);
- GPBBecomeVisibleToAutocreator(self);
-}
-
-//%PDDM-EXPAND IVAR_POD_ACCESSORS_DEFN(Float, float)
-// This block of code is generated, do not edit it directly.
-
-float GPBGetMessageFloatField(GPBMessage *self,
- GPBFieldDescriptor *field) {
- if (GPBGetHasIvarField(self, field)) {
- uint8_t *storage = (uint8_t *)self->messageStorage_;
- float *typePtr = (float *)&storage[field->description_->offset];
- return *typePtr;
- } else {
- return field.defaultValue.valueFloat;
- }
-}
-
-// Only exists for public api, no core code should use this.
-void GPBSetMessageFloatField(GPBMessage *self,
- GPBFieldDescriptor *field,
- float value) {
- if (self == nil || field == nil) return;
- GPBFileSyntax syntax = [self descriptor].file.syntax;
- GPBSetFloatIvarWithFieldInternal(self, field, value, syntax);
-}
-
-void GPBSetFloatIvarWithFieldInternal(GPBMessage *self,
- GPBFieldDescriptor *field,
- float value,
- GPBFileSyntax syntax) {
- GPBOneofDescriptor *oneof = field->containingOneof_;
- if (oneof) {
- GPBMessageFieldDescription *fieldDesc = field->description_;
- GPBMaybeClearOneof(self, oneof, fieldDesc->hasIndex, fieldDesc->number);
- }
- NSCAssert(self->messageStorage_ != NULL,
- @"%@: All messages should have storage (from init)",
- [self class]);
-#if defined(__clang_analyzer__)
- if (self->messageStorage_ == NULL) return;
-#endif
- uint8_t *storage = (uint8_t *)self->messageStorage_;
- float *typePtr = (float *)&storage[field->description_->offset];
- *typePtr = value;
- // proto2: any value counts as having been set; proto3, it
- // has to be a non zero value or be in a oneof.
- BOOL hasValue = ((syntax == GPBFileSyntaxProto2)
- || (value != (float)0)
- || (field->containingOneof_ != NULL));
- GPBSetHasIvarField(self, field, hasValue);
- GPBBecomeVisibleToAutocreator(self);
-}
-
-//%PDDM-EXPAND IVAR_POD_ACCESSORS_DEFN(Double, double)
-// This block of code is generated, do not edit it directly.
-
-double GPBGetMessageDoubleField(GPBMessage *self,
- GPBFieldDescriptor *field) {
- if (GPBGetHasIvarField(self, field)) {
- uint8_t *storage = (uint8_t *)self->messageStorage_;
- double *typePtr = (double *)&storage[field->description_->offset];
- return *typePtr;
- } else {
- return field.defaultValue.valueDouble;
- }
-}
-
-// Only exists for public api, no core code should use this.
-void GPBSetMessageDoubleField(GPBMessage *self,
- GPBFieldDescriptor *field,
- double value) {
- if (self == nil || field == nil) return;
- GPBFileSyntax syntax = [self descriptor].file.syntax;
- GPBSetDoubleIvarWithFieldInternal(self, field, value, syntax);
-}
-
-void GPBSetDoubleIvarWithFieldInternal(GPBMessage *self,
- GPBFieldDescriptor *field,
- double value,
- GPBFileSyntax syntax) {
- GPBOneofDescriptor *oneof = field->containingOneof_;
- if (oneof) {
- GPBMessageFieldDescription *fieldDesc = field->description_;
- GPBMaybeClearOneof(self, oneof, fieldDesc->hasIndex, fieldDesc->number);
- }
- NSCAssert(self->messageStorage_ != NULL,
- @"%@: All messages should have storage (from init)",
- [self class]);
-#if defined(__clang_analyzer__)
- if (self->messageStorage_ == NULL) return;
-#endif
- uint8_t *storage = (uint8_t *)self->messageStorage_;
- double *typePtr = (double *)&storage[field->description_->offset];
- *typePtr = value;
- // proto2: any value counts as having been set; proto3, it
- // has to be a non zero value or be in a oneof.
- BOOL hasValue = ((syntax == GPBFileSyntaxProto2)
- || (value != (double)0)
- || (field->containingOneof_ != NULL));
- GPBSetHasIvarField(self, field, hasValue);
- GPBBecomeVisibleToAutocreator(self);
-}
-
-//%PDDM-EXPAND-END (6 expansions)
-
-// Aliases are function calls that are virtually the same.
-
-//%PDDM-EXPAND IVAR_ALIAS_DEFN_OBJECT(String, NSString)
-// This block of code is generated, do not edit it directly.
-
-// Only exists for public api, no core code should use this.
-NSString *GPBGetMessageStringField(GPBMessage *self,
- GPBFieldDescriptor *field) {
- return (NSString *)GPBGetObjectIvarWithField(self, field);
-}
-
-// Only exists for public api, no core code should use this.
-void GPBSetMessageStringField(GPBMessage *self,
- GPBFieldDescriptor *field,
- NSString *value) {
- GPBSetObjectIvarWithField(self, field, (id)value);
-}
-
-//%PDDM-EXPAND IVAR_ALIAS_DEFN_OBJECT(Bytes, NSData)
-// This block of code is generated, do not edit it directly.
-
-// Only exists for public api, no core code should use this.
-NSData *GPBGetMessageBytesField(GPBMessage *self,
- GPBFieldDescriptor *field) {
- return (NSData *)GPBGetObjectIvarWithField(self, field);
-}
-
-// Only exists for public api, no core code should use this.
-void GPBSetMessageBytesField(GPBMessage *self,
- GPBFieldDescriptor *field,
- NSData *value) {
- GPBSetObjectIvarWithField(self, field, (id)value);
-}
-
-//%PDDM-EXPAND IVAR_ALIAS_DEFN_OBJECT(Message, GPBMessage)
-// This block of code is generated, do not edit it directly.
-
-// Only exists for public api, no core code should use this.
-GPBMessage *GPBGetMessageMessageField(GPBMessage *self,
- GPBFieldDescriptor *field) {
- return (GPBMessage *)GPBGetObjectIvarWithField(self, field);
-}
-
-// Only exists for public api, no core code should use this.
-void GPBSetMessageMessageField(GPBMessage *self,
- GPBFieldDescriptor *field,
- GPBMessage *value) {
- GPBSetObjectIvarWithField(self, field, (id)value);
-}
-
-//%PDDM-EXPAND IVAR_ALIAS_DEFN_OBJECT(Group, GPBMessage)
-// This block of code is generated, do not edit it directly.
-
-// Only exists for public api, no core code should use this.
-GPBMessage *GPBGetMessageGroupField(GPBMessage *self,
- GPBFieldDescriptor *field) {
- return (GPBMessage *)GPBGetObjectIvarWithField(self, field);
-}
-
-// Only exists for public api, no core code should use this.
-void GPBSetMessageGroupField(GPBMessage *self,
- GPBFieldDescriptor *field,
- GPBMessage *value) {
- GPBSetObjectIvarWithField(self, field, (id)value);
-}
-
-//%PDDM-EXPAND-END (4 expansions)
-
-// GPBGetMessageRepeatedField is defined in GPBMessage.m
-
-// Only exists for public api, no core code should use this.
-void GPBSetMessageRepeatedField(GPBMessage *self, GPBFieldDescriptor *field, id array) {
-#if defined(DEBUG) && DEBUG
- if (field.fieldType != GPBFieldTypeRepeated) {
- [NSException raise:NSInvalidArgumentException
- format:@"%@.%@ is not a repeated field.",
- [self class], field.name];
- }
- Class expectedClass = Nil;
- switch (GPBGetFieldDataType(field)) {
- case GPBDataTypeBool:
- expectedClass = [GPBBoolArray class];
- break;
- case GPBDataTypeSFixed32:
- case GPBDataTypeInt32:
- case GPBDataTypeSInt32:
- expectedClass = [GPBInt32Array class];
- break;
- case GPBDataTypeFixed32:
- case GPBDataTypeUInt32:
- expectedClass = [GPBUInt32Array class];
- break;
- case GPBDataTypeSFixed64:
- case GPBDataTypeInt64:
- case GPBDataTypeSInt64:
- expectedClass = [GPBInt64Array class];
- break;
- case GPBDataTypeFixed64:
- case GPBDataTypeUInt64:
- expectedClass = [GPBUInt64Array class];
- break;
- case GPBDataTypeFloat:
- expectedClass = [GPBFloatArray class];
- break;
- case GPBDataTypeDouble:
- expectedClass = [GPBDoubleArray class];
- break;
- case GPBDataTypeBytes:
- case GPBDataTypeString:
- case GPBDataTypeMessage:
- case GPBDataTypeGroup:
- expectedClass = [NSMutableArray class];
- break;
- case GPBDataTypeEnum:
- expectedClass = [GPBEnumArray class];
- break;
- }
- if (array && ![array isKindOfClass:expectedClass]) {
- [NSException raise:NSInvalidArgumentException
- format:@"%@.%@: Expected %@ object, got %@.",
- [self class], field.name, expectedClass, [array class]];
- }
-#endif
- GPBSetObjectIvarWithField(self, field, array);
-}
-
-#if defined(DEBUG) && DEBUG
-static NSString *TypeToStr(GPBDataType dataType) {
- switch (dataType) {
- case GPBDataTypeBool:
- return @"Bool";
- case GPBDataTypeSFixed32:
- case GPBDataTypeInt32:
- case GPBDataTypeSInt32:
- return @"Int32";
- case GPBDataTypeFixed32:
- case GPBDataTypeUInt32:
- return @"UInt32";
- case GPBDataTypeSFixed64:
- case GPBDataTypeInt64:
- case GPBDataTypeSInt64:
- return @"Int64";
- case GPBDataTypeFixed64:
- case GPBDataTypeUInt64:
- return @"UInt64";
- case GPBDataTypeFloat:
- return @"Float";
- case GPBDataTypeDouble:
- return @"Double";
- case GPBDataTypeBytes:
- case GPBDataTypeString:
- case GPBDataTypeMessage:
- case GPBDataTypeGroup:
- return @"Object";
- case GPBDataTypeEnum:
- return @"Bool";
- }
-}
-#endif
-
-// GPBGetMessageMapField is defined in GPBMessage.m
-
-// Only exists for public api, no core code should use this.
-void GPBSetMessageMapField(GPBMessage *self, GPBFieldDescriptor *field,
- id dictionary) {
-#if defined(DEBUG) && DEBUG
- if (field.fieldType != GPBFieldTypeMap) {
- [NSException raise:NSInvalidArgumentException
- format:@"%@.%@ is not a map<> field.",
- [self class], field.name];
- }
- if (dictionary) {
- GPBDataType keyDataType = field.mapKeyDataType;
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- NSString *keyStr = TypeToStr(keyDataType);
- NSString *valueStr = TypeToStr(valueDataType);
- if (keyDataType == GPBDataTypeString) {
- keyStr = @"String";
- }
- Class expectedClass = Nil;
- if ((keyDataType == GPBDataTypeString) &&
- GPBDataTypeIsObject(valueDataType)) {
- expectedClass = [NSMutableDictionary class];
- } else {
- NSString *className =
- [NSString stringWithFormat:@"GPB%@%@Dictionary", keyStr, valueStr];
- expectedClass = NSClassFromString(className);
- NSCAssert(expectedClass, @"Missing a class (%@)?", expectedClass);
- }
- if (![dictionary isKindOfClass:expectedClass]) {
- [NSException raise:NSInvalidArgumentException
- format:@"%@.%@: Expected %@ object, got %@.",
- [self class], field.name, expectedClass,
- [dictionary class]];
- }
- }
-#endif
- GPBSetObjectIvarWithField(self, field, dictionary);
-}
-
-#pragma mark - Misc Dynamic Runtime Utils
-
-const char *GPBMessageEncodingForSelector(SEL selector, BOOL instanceSel) {
- Protocol *protocol =
- objc_getProtocol(GPBStringifySymbol(GPBMessageSignatureProtocol));
- struct objc_method_description description =
- protocol_getMethodDescription(protocol, selector, NO, instanceSel);
- return description.types;
-}
-
-#pragma mark - Text Format Support
-
-static void AppendStringEscaped(NSString *toPrint, NSMutableString *destStr) {
- [destStr appendString:@"\""];
- NSUInteger len = [toPrint length];
- for (NSUInteger i = 0; i < len; ++i) {
- unichar aChar = [toPrint characterAtIndex:i];
- switch (aChar) {
- case '\n': [destStr appendString:@"\\n"]; break;
- case '\r': [destStr appendString:@"\\r"]; break;
- case '\t': [destStr appendString:@"\\t"]; break;
- case '\"': [destStr appendString:@"\\\""]; break;
- case '\'': [destStr appendString:@"\\\'"]; break;
- case '\\': [destStr appendString:@"\\\\"]; break;
- default:
- // This differs slightly from the C++ code in that the C++ doesn't
- // generate UTF8; it looks at the string in UTF8, but escapes every
- // byte > 0x7E.
- if (aChar < 0x20) {
- [destStr appendFormat:@"\\%d%d%d",
- (aChar / 64), ((aChar % 64) / 8), (aChar % 8)];
- } else {
- [destStr appendFormat:@"%C", aChar];
- }
- break;
- }
- }
- [destStr appendString:@"\""];
-}
-
-static void AppendBufferAsString(NSData *buffer, NSMutableString *destStr) {
- const char *src = (const char *)[buffer bytes];
- size_t srcLen = [buffer length];
- [destStr appendString:@"\""];
- for (const char *srcEnd = src + srcLen; src < srcEnd; src++) {
- switch (*src) {
- case '\n': [destStr appendString:@"\\n"]; break;
- case '\r': [destStr appendString:@"\\r"]; break;
- case '\t': [destStr appendString:@"\\t"]; break;
- case '\"': [destStr appendString:@"\\\""]; break;
- case '\'': [destStr appendString:@"\\\'"]; break;
- case '\\': [destStr appendString:@"\\\\"]; break;
- default:
- if (isprint(*src)) {
- [destStr appendFormat:@"%c", *src];
- } else {
- // NOTE: doing hex means you have to worry about the letter after
- // the hex being another hex char and forcing that to be escaped, so
- // use octal to keep it simple.
- [destStr appendFormat:@"\\%03o", (uint8_t)(*src)];
- }
- break;
- }
- }
- [destStr appendString:@"\""];
-}
-
-static void AppendTextFormatForMapMessageField(
- id map, GPBFieldDescriptor *field, NSMutableString *toStr,
- NSString *lineIndent, NSString *fieldName, NSString *lineEnding) {
- GPBDataType keyDataType = field.mapKeyDataType;
- GPBDataType valueDataType = GPBGetFieldDataType(field);
- BOOL isMessageValue = GPBDataTypeIsMessage(valueDataType);
-
- NSString *msgStartFirst =
- [NSString stringWithFormat:@"%@%@ {%@\n", lineIndent, fieldName, lineEnding];
- NSString *msgStart =
- [NSString stringWithFormat:@"%@%@ {\n", lineIndent, fieldName];
- NSString *msgEnd = [NSString stringWithFormat:@"%@}\n", lineIndent];
-
- NSString *keyLine = [NSString stringWithFormat:@"%@ key: ", lineIndent];
- NSString *valueLine = [NSString stringWithFormat:@"%@ value%s ", lineIndent,
- (isMessageValue ? "" : ":")];
-
- __block BOOL isFirst = YES;
-
- if ((keyDataType == GPBDataTypeString) &&
- GPBDataTypeIsObject(valueDataType)) {
- // map is an NSDictionary.
- NSDictionary *dict = map;
- [dict enumerateKeysAndObjectsUsingBlock:^(NSString *key, id value, BOOL *stop) {
- #pragma unused(stop)
- [toStr appendString:(isFirst ? msgStartFirst : msgStart)];
- isFirst = NO;
-
- [toStr appendString:keyLine];
- AppendStringEscaped(key, toStr);
- [toStr appendString:@"\n"];
-
- [toStr appendString:valueLine];
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wswitch-enum"
- switch (valueDataType) {
- case GPBDataTypeString:
- AppendStringEscaped(value, toStr);
- break;
-
- case GPBDataTypeBytes:
- AppendBufferAsString(value, toStr);
- break;
-
- case GPBDataTypeMessage:
- [toStr appendString:@"{\n"];
- NSString *subIndent = [lineIndent stringByAppendingString:@" "];
- AppendTextFormatForMessage(value, toStr, subIndent);
- [toStr appendFormat:@"%@ }", lineIndent];
- break;
-
- default:
- NSCAssert(NO, @"Can't happen");
- break;
- }
-#pragma clang diagnostic pop
- [toStr appendString:@"\n"];
-
- [toStr appendString:msgEnd];
- }];
- } else {
- // map is one of the GPB*Dictionary classes, type doesn't matter.
- GPBInt32Int32Dictionary *dict = map;
- [dict enumerateForTextFormat:^(id keyObj, id valueObj) {
- [toStr appendString:(isFirst ? msgStartFirst : msgStart)];
- isFirst = NO;
-
- // Key always is a NSString.
- if (keyDataType == GPBDataTypeString) {
- [toStr appendString:keyLine];
- AppendStringEscaped(keyObj, toStr);
- [toStr appendString:@"\n"];
- } else {
- [toStr appendFormat:@"%@%@\n", keyLine, keyObj];
- }
-
- [toStr appendString:valueLine];
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wswitch-enum"
- switch (valueDataType) {
- case GPBDataTypeString:
- AppendStringEscaped(valueObj, toStr);
- break;
-
- case GPBDataTypeBytes:
- AppendBufferAsString(valueObj, toStr);
- break;
-
- case GPBDataTypeMessage:
- [toStr appendString:@"{\n"];
- NSString *subIndent = [lineIndent stringByAppendingString:@" "];
- AppendTextFormatForMessage(valueObj, toStr, subIndent);
- [toStr appendFormat:@"%@ }", lineIndent];
- break;
-
- case GPBDataTypeEnum: {
- int32_t enumValue = [valueObj intValue];
- NSString *valueStr = nil;
- GPBEnumDescriptor *descriptor = field.enumDescriptor;
- if (descriptor) {
- valueStr = [descriptor textFormatNameForValue:enumValue];
- }
- if (valueStr) {
- [toStr appendString:valueStr];
- } else {
- [toStr appendFormat:@"%d", enumValue];
- }
- break;
- }
-
- default:
- NSCAssert(valueDataType != GPBDataTypeGroup, @"Can't happen");
- // Everything else is a NSString.
- [toStr appendString:valueObj];
- break;
- }
-#pragma clang diagnostic pop
- [toStr appendString:@"\n"];
-
- [toStr appendString:msgEnd];
- }];
- }
-}
-
-static void AppendTextFormatForMessageField(GPBMessage *message,
- GPBFieldDescriptor *field,
- NSMutableString *toStr,
- NSString *lineIndent) {
- id arrayOrMap;
- NSUInteger count;
- GPBFieldType fieldType = field.fieldType;
- switch (fieldType) {
- case GPBFieldTypeSingle:
- arrayOrMap = nil;
- count = (GPBGetHasIvarField(message, field) ? 1 : 0);
- break;
-
- case GPBFieldTypeRepeated:
- // Will be NSArray or GPB*Array, type doesn't matter, they both
- // implement count.
- arrayOrMap = GPBGetObjectIvarWithFieldNoAutocreate(message, field);
- count = [(NSArray *)arrayOrMap count];
- break;
-
- case GPBFieldTypeMap: {
- // Will be GPB*Dictionary or NSMutableDictionary, type doesn't matter,
- // they both implement count.
- arrayOrMap = GPBGetObjectIvarWithFieldNoAutocreate(message, field);
- count = [(NSDictionary *)arrayOrMap count];
- break;
- }
- }
-
- if (count == 0) {
- // Nothing to print, out of here.
- return;
- }
-
- NSString *lineEnding = @"";
-
- // If the name can't be reversed or support for extra info was turned off,
- // this can return nil.
- NSString *fieldName = [field textFormatName];
- if ([fieldName length] == 0) {
- fieldName = [NSString stringWithFormat:@"%u", GPBFieldNumber(field)];
- // If there is only one entry, put the objc name as a comment, other wise
- // add it before the repeated values.
- if (count > 1) {
- [toStr appendFormat:@"%@# %@\n", lineIndent, field.name];
- } else {
- lineEnding = [NSString stringWithFormat:@" # %@", field.name];
- }
- }
-
- if (fieldType == GPBFieldTypeMap) {
- AppendTextFormatForMapMessageField(arrayOrMap, field, toStr, lineIndent,
- fieldName, lineEnding);
- return;
- }
-
- id array = arrayOrMap;
- const BOOL isRepeated = (array != nil);
-
- GPBDataType fieldDataType = GPBGetFieldDataType(field);
- BOOL isMessageField = GPBDataTypeIsMessage(fieldDataType);
- for (NSUInteger j = 0; j < count; ++j) {
- // Start the line.
- [toStr appendFormat:@"%@%@%s ", lineIndent, fieldName,
- (isMessageField ? "" : ":")];
-
- // The value.
- switch (fieldDataType) {
-#define FIELD_CASE(GPBDATATYPE, CTYPE, REAL_TYPE, ...) \
- case GPBDataType##GPBDATATYPE: { \
- CTYPE v = (isRepeated ? [(GPB##REAL_TYPE##Array *)array valueAtIndex:j] \
- : GPBGetMessage##REAL_TYPE##Field(message, field)); \
- [toStr appendFormat:__VA_ARGS__, v]; \
- break; \
- }
-
- FIELD_CASE(Int32, int32_t, Int32, @"%d")
- FIELD_CASE(SInt32, int32_t, Int32, @"%d")
- FIELD_CASE(SFixed32, int32_t, Int32, @"%d")
- FIELD_CASE(UInt32, uint32_t, UInt32, @"%u")
- FIELD_CASE(Fixed32, uint32_t, UInt32, @"%u")
- FIELD_CASE(Int64, int64_t, Int64, @"%lld")
- FIELD_CASE(SInt64, int64_t, Int64, @"%lld")
- FIELD_CASE(SFixed64, int64_t, Int64, @"%lld")
- FIELD_CASE(UInt64, uint64_t, UInt64, @"%llu")
- FIELD_CASE(Fixed64, uint64_t, UInt64, @"%llu")
- FIELD_CASE(Float, float, Float, @"%.*g", FLT_DIG)
- FIELD_CASE(Double, double, Double, @"%.*lg", DBL_DIG)
-
-#undef FIELD_CASE
-
- case GPBDataTypeEnum: {
- int32_t v = (isRepeated ? [(GPBEnumArray *)array rawValueAtIndex:j]
- : GPBGetMessageInt32Field(message, field));
- NSString *valueStr = nil;
- GPBEnumDescriptor *descriptor = field.enumDescriptor;
- if (descriptor) {
- valueStr = [descriptor textFormatNameForValue:v];
- }
- if (valueStr) {
- [toStr appendString:valueStr];
- } else {
- [toStr appendFormat:@"%d", v];
- }
- break;
- }
-
- case GPBDataTypeBool: {
- BOOL v = (isRepeated ? [(GPBBoolArray *)array valueAtIndex:j]
- : GPBGetMessageBoolField(message, field));
- [toStr appendString:(v ? @"true" : @"false")];
- break;
- }
-
- case GPBDataTypeString: {
- NSString *v = (isRepeated ? [(NSArray *)array objectAtIndex:j]
- : GPBGetMessageStringField(message, field));
- AppendStringEscaped(v, toStr);
- break;
- }
-
- case GPBDataTypeBytes: {
- NSData *v = (isRepeated ? [(NSArray *)array objectAtIndex:j]
- : GPBGetMessageBytesField(message, field));
- AppendBufferAsString(v, toStr);
- break;
- }
-
- case GPBDataTypeGroup:
- case GPBDataTypeMessage: {
- GPBMessage *v =
- (isRepeated ? [(NSArray *)array objectAtIndex:j]
- : GPBGetObjectIvarWithField(message, field));
- [toStr appendFormat:@"{%@\n", lineEnding];
- NSString *subIndent = [lineIndent stringByAppendingString:@" "];
- AppendTextFormatForMessage(v, toStr, subIndent);
- [toStr appendFormat:@"%@}", lineIndent];
- lineEnding = @"";
- break;
- }
-
- } // switch(fieldDataType)
-
- // End the line.
- [toStr appendFormat:@"%@\n", lineEnding];
-
- } // for(count)
-}
-
-static void AppendTextFormatForMessageExtensionRange(GPBMessage *message,
- NSArray *activeExtensions,
- GPBExtensionRange range,
- NSMutableString *toStr,
- NSString *lineIndent) {
- uint32_t start = range.start;
- uint32_t end = range.end;
- for (GPBExtensionDescriptor *extension in activeExtensions) {
- uint32_t fieldNumber = extension.fieldNumber;
- if (fieldNumber < start) {
- // Not there yet.
- continue;
- }
- if (fieldNumber > end) {
- // Done.
- break;
- }
-
- id rawExtValue = [message getExtension:extension];
- BOOL isRepeated = extension.isRepeated;
-
- NSUInteger numValues = 1;
- NSString *lineEnding = @"";
- if (isRepeated) {
- numValues = [(NSArray *)rawExtValue count];
- }
-
- NSString *singletonName = extension.singletonName;
- if (numValues == 1) {
- lineEnding = [NSString stringWithFormat:@" # [%@]", singletonName];
- } else {
- [toStr appendFormat:@"%@# [%@]\n", lineIndent, singletonName];
- }
-
- GPBDataType extDataType = extension.dataType;
- for (NSUInteger j = 0; j < numValues; ++j) {
- id curValue = (isRepeated ? [rawExtValue objectAtIndex:j] : rawExtValue);
-
- // Start the line.
- [toStr appendFormat:@"%@%u%s ", lineIndent, fieldNumber,
- (GPBDataTypeIsMessage(extDataType) ? "" : ":")];
-
- // The value.
- switch (extDataType) {
-#define FIELD_CASE(GPBDATATYPE, CTYPE, NUMSELECTOR, ...) \
- case GPBDataType##GPBDATATYPE: { \
- CTYPE v = [(NSNumber *)curValue NUMSELECTOR]; \
- [toStr appendFormat:__VA_ARGS__, v]; \
- break; \
- }
-
- FIELD_CASE(Int32, int32_t, intValue, @"%d")
- FIELD_CASE(SInt32, int32_t, intValue, @"%d")
- FIELD_CASE(SFixed32, int32_t, unsignedIntValue, @"%d")
- FIELD_CASE(UInt32, uint32_t, unsignedIntValue, @"%u")
- FIELD_CASE(Fixed32, uint32_t, unsignedIntValue, @"%u")
- FIELD_CASE(Int64, int64_t, longLongValue, @"%lld")
- FIELD_CASE(SInt64, int64_t, longLongValue, @"%lld")
- FIELD_CASE(SFixed64, int64_t, longLongValue, @"%lld")
- FIELD_CASE(UInt64, uint64_t, unsignedLongLongValue, @"%llu")
- FIELD_CASE(Fixed64, uint64_t, unsignedLongLongValue, @"%llu")
- FIELD_CASE(Float, float, floatValue, @"%.*g", FLT_DIG)
- FIELD_CASE(Double, double, doubleValue, @"%.*lg", DBL_DIG)
- // TODO: Add a comment with the enum name from enum descriptors
- // (might not be real value, so leave it as a comment, ObjC compiler
- // name mangles differently). Doesn't look like we actually generate
- // an enum descriptor reference like we do for normal fields, so this
- // will take a compiler change.
- FIELD_CASE(Enum, int32_t, intValue, @"%d")
-
-#undef FIELD_CASE
-
- case GPBDataTypeBool:
- [toStr appendString:([(NSNumber *)curValue boolValue] ? @"true"
- : @"false")];
- break;
-
- case GPBDataTypeString:
- AppendStringEscaped(curValue, toStr);
- break;
-
- case GPBDataTypeBytes:
- AppendBufferAsString((NSData *)curValue, toStr);
- break;
-
- case GPBDataTypeGroup:
- case GPBDataTypeMessage: {
- [toStr appendFormat:@"{%@\n", lineEnding];
- NSString *subIndent = [lineIndent stringByAppendingString:@" "];
- AppendTextFormatForMessage(curValue, toStr, subIndent);
- [toStr appendFormat:@"%@}", lineIndent];
- lineEnding = @"";
- break;
- }
-
- } // switch(extDataType)
-
- } // for(numValues)
-
- // End the line.
- [toStr appendFormat:@"%@\n", lineEnding];
-
- } // for..in(activeExtensions)
-}
-
-static void AppendTextFormatForMessage(GPBMessage *message,
- NSMutableString *toStr,
- NSString *lineIndent) {
- GPBDescriptor *descriptor = [message descriptor];
- NSArray *fieldsArray = descriptor->fields_;
- NSUInteger fieldCount = fieldsArray.count;
- const GPBExtensionRange *extensionRanges = descriptor.extensionRanges;
- NSUInteger extensionRangesCount = descriptor.extensionRangesCount;
- NSArray *activeExtensions = [[message extensionsCurrentlySet]
- sortedArrayUsingSelector:@selector(compareByFieldNumber:)];
- for (NSUInteger i = 0, j = 0; i < fieldCount || j < extensionRangesCount;) {
- if (i == fieldCount) {
- AppendTextFormatForMessageExtensionRange(
- message, activeExtensions, extensionRanges[j++], toStr, lineIndent);
- } else if (j == extensionRangesCount ||
- GPBFieldNumber(fieldsArray[i]) < extensionRanges[j].start) {
- AppendTextFormatForMessageField(message, fieldsArray[i++], toStr,
- lineIndent);
- } else {
- AppendTextFormatForMessageExtensionRange(
- message, activeExtensions, extensionRanges[j++], toStr, lineIndent);
- }
- }
-
- NSString *unknownFieldsStr =
- GPBTextFormatForUnknownFieldSet(message.unknownFields, lineIndent);
- if ([unknownFieldsStr length] > 0) {
- [toStr appendFormat:@"%@# --- Unknown fields ---\n", lineIndent];
- [toStr appendString:unknownFieldsStr];
- }
-}
-
-NSString *GPBTextFormatForMessage(GPBMessage *message, NSString *lineIndent) {
- if (message == nil) return @"";
- if (lineIndent == nil) lineIndent = @"";
-
- NSMutableString *buildString = [NSMutableString string];
- AppendTextFormatForMessage(message, buildString, lineIndent);
- return buildString;
-}
-
-NSString *GPBTextFormatForUnknownFieldSet(GPBUnknownFieldSet *unknownSet,
- NSString *lineIndent) {
- if (unknownSet == nil) return @"";
- if (lineIndent == nil) lineIndent = @"";
-
- NSMutableString *result = [NSMutableString string];
- for (GPBUnknownField *field in [unknownSet sortedFields]) {
- int32_t fieldNumber = [field number];
-
-#define PRINT_LOOP(PROPNAME, CTYPE, FORMAT) \
- [field.PROPNAME \
- enumerateValuesWithBlock:^(CTYPE value, NSUInteger idx, BOOL * stop) { \
- _Pragma("unused(idx, stop)"); \
- [result \
- appendFormat:@"%@%d: " #FORMAT "\n", lineIndent, fieldNumber, value]; \
- }];
-
- PRINT_LOOP(varintList, uint64_t, %llu);
- PRINT_LOOP(fixed32List, uint32_t, 0x%X);
- PRINT_LOOP(fixed64List, uint64_t, 0x%llX);
-
-#undef PRINT_LOOP
-
- // NOTE: C++ version of TextFormat tries to parse this as a message
- // and print that if it succeeds.
- for (NSData *data in field.lengthDelimitedList) {
- [result appendFormat:@"%@%d: ", lineIndent, fieldNumber];
- AppendBufferAsString(data, result);
- [result appendString:@"\n"];
- }
-
- for (GPBUnknownFieldSet *subUnknownSet in field.groupList) {
- [result appendFormat:@"%@%d: {\n", lineIndent, fieldNumber];
- NSString *subIndent = [lineIndent stringByAppendingString:@" "];
- NSString *subUnknwonSetStr =
- GPBTextFormatForUnknownFieldSet(subUnknownSet, subIndent);
- [result appendString:subUnknwonSetStr];
- [result appendFormat:@"%@}\n", lineIndent];
- }
- }
- return result;
-}
-
-// Helpers to decode a varint. Not using GPBCodedInputStream version because
-// that needs a state object, and we don't want to create an input stream out
-// of the data.
-GPB_INLINE int8_t ReadRawByteFromData(const uint8_t **data) {
- int8_t result = *((int8_t *)(*data));
- ++(*data);
- return result;
-}
-
-static int32_t ReadRawVarint32FromData(const uint8_t **data) {
- int8_t tmp = ReadRawByteFromData(data);
- if (tmp >= 0) {
- return tmp;
- }
- int32_t result = tmp & 0x7f;
- if ((tmp = ReadRawByteFromData(data)) >= 0) {
- result |= tmp << 7;
- } else {
- result |= (tmp & 0x7f) << 7;
- if ((tmp = ReadRawByteFromData(data)) >= 0) {
- result |= tmp << 14;
- } else {
- result |= (tmp & 0x7f) << 14;
- if ((tmp = ReadRawByteFromData(data)) >= 0) {
- result |= tmp << 21;
- } else {
- result |= (tmp & 0x7f) << 21;
- result |= (tmp = ReadRawByteFromData(data)) << 28;
- if (tmp < 0) {
- // Discard upper 32 bits.
- for (int i = 0; i < 5; i++) {
- if (ReadRawByteFromData(data) >= 0) {
- return result;
- }
- }
- [NSException raise:NSParseErrorException
- format:@"Unable to read varint32"];
- }
- }
- }
- }
- return result;
-}
-
-NSString *GPBDecodeTextFormatName(const uint8_t *decodeData, int32_t key,
- NSString *inputStr) {
- // decodData form:
- // varint32: num entries
- // for each entry:
- // varint32: key
- // bytes*: decode data
- //
- // decode data one of two forms:
- // 1: a \0 followed by the string followed by an \0
- // 2: bytecodes to transform an input into the right thing, ending with \0
- //
- // the bytes codes are of the form:
- // 0xabbccccc
- // 0x0 (all zeros), end.
- // a - if set, add an underscore
- // bb - 00 ccccc bytes as is
- // bb - 10 ccccc upper first, as is on rest, ccccc byte total
- // bb - 01 ccccc lower first, as is on rest, ccccc byte total
- // bb - 11 ccccc all upper, ccccc byte total
-
- if (!decodeData || !inputStr) {
- return nil;
- }
-
- // Find key
- const uint8_t *scan = decodeData;
- int32_t numEntries = ReadRawVarint32FromData(&scan);
- BOOL foundKey = NO;
- while (!foundKey && (numEntries > 0)) {
- --numEntries;
- int32_t dataKey = ReadRawVarint32FromData(&scan);
- if (dataKey == key) {
- foundKey = YES;
- } else {
- // If it is a inlined string, it will start with \0; if it is bytecode it
- // will start with a code. So advance one (skipping the inline string
- // marker), and then loop until reaching the end marker (\0).
- ++scan;
- while (*scan != 0) ++scan;
- // Now move past the end marker.
- ++scan;
- }
- }
-
- if (!foundKey) {
- return nil;
- }
-
- // Decode
-
- if (*scan == 0) {
- // Inline string. Move over the marker, and NSString can take it as
- // UTF8.
- ++scan;
- NSString *result = [NSString stringWithUTF8String:(const char *)scan];
- return result;
- }
-
- NSMutableString *result =
- [NSMutableString stringWithCapacity:[inputStr length]];
-
- const uint8_t kAddUnderscore = 0b10000000;
- const uint8_t kOpMask = 0b01100000;
- // const uint8_t kOpAsIs = 0b00000000;
- const uint8_t kOpFirstUpper = 0b01000000;
- const uint8_t kOpFirstLower = 0b00100000;
- const uint8_t kOpAllUpper = 0b01100000;
- const uint8_t kSegmentLenMask = 0b00011111;
-
- NSInteger i = 0;
- for (; *scan != 0; ++scan) {
- if (*scan & kAddUnderscore) {
- [result appendString:@"_"];
- }
- int segmentLen = *scan & kSegmentLenMask;
- uint8_t decodeOp = *scan & kOpMask;
-
- // Do op specific handling of the first character.
- if (decodeOp == kOpFirstUpper) {
- unichar c = [inputStr characterAtIndex:i];
- [result appendFormat:@"%c", toupper((char)c)];
- ++i;
- --segmentLen;
- } else if (decodeOp == kOpFirstLower) {
- unichar c = [inputStr characterAtIndex:i];
- [result appendFormat:@"%c", tolower((char)c)];
- ++i;
- --segmentLen;
- }
- // else op == kOpAsIs || op == kOpAllUpper
-
- // Now pull over the rest of the length for this segment.
- for (int x = 0; x < segmentLen; ++x) {
- unichar c = [inputStr characterAtIndex:(i + x)];
- if (decodeOp == kOpAllUpper) {
- [result appendFormat:@"%c", toupper((char)c)];
- } else {
- [result appendFormat:@"%C", c];
- }
- }
- i += segmentLen;
- }
-
- return result;
-}
-
-#pragma clang diagnostic pop
-
-BOOL GPBClassHasSel(Class aClass, SEL sel) {
- // NOTE: We have to use class_copyMethodList, all other runtime method
- // lookups actually also resolve the method implementation and this
- // is called from within those methods.
-
- BOOL result = NO;
- unsigned int methodCount = 0;
- Method *methodList = class_copyMethodList(aClass, &methodCount);
- for (unsigned int i = 0; i < methodCount; ++i) {
- SEL methodSelector = method_getName(methodList[i]);
- if (methodSelector == sel) {
- result = YES;
- break;
- }
- }
- free(methodList);
- return result;
-}
-
-#pragma mark - GPBMessageSignatureProtocol
-
-// A series of selectors that are used solely to get @encoding values
-// for them by the dynamic protobuf runtime code. An object using the protocol
-// needs to be declared for the protocol to be valid at runtime.
-@interface GPBMessageSignatureProtocol : NSObject<GPBMessageSignatureProtocol>
-@end
-@implementation GPBMessageSignatureProtocol
-@end
diff --git a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBUtilities_PackagePrivate.h b/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBUtilities_PackagePrivate.h
deleted file mode 100644
index 16859d48..00000000
--- a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBUtilities_PackagePrivate.h
+++ /dev/null
@@ -1,350 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// https://developers.google.com/protocol-buffers/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#import <Foundation/Foundation.h>
-
-#import "GPBUtilities.h"
-
-#import "GPBDescriptor_PackagePrivate.h"
-
-// Macros for stringifying library symbols. These are used in the generated
-// PB descriptor classes wherever a library symbol name is represented as a
-// string. See README.google for more information.
-#define GPBStringify(S) #S
-#define GPBStringifySymbol(S) GPBStringify(S)
-
-#define GPBNSStringify(S) @#S
-#define GPBNSStringifySymbol(S) GPBNSStringify(S)
-
-// Constant to internally mark when there is no has bit.
-#define GPBNoHasBit INT32_MAX
-
-CF_EXTERN_C_BEGIN
-
-// These two are used to inject a runtime check for version mismatch into the
-// generated sources to make sure they are linked with a supporting runtime.
-void GPBCheckRuntimeVersionSupport(int32_t objcRuntimeVersion);
-GPB_INLINE void GPB_DEBUG_CHECK_RUNTIME_VERSIONS() {
- // NOTE: By being inline here, this captures the value from the library's
- // headers at the time the generated code was compiled.
-#if defined(DEBUG) && DEBUG
- GPBCheckRuntimeVersionSupport(GOOGLE_PROTOBUF_OBJC_VERSION);
-#endif
-}
-
-// Legacy version of the checks, remove when GOOGLE_PROTOBUF_OBJC_GEN_VERSION
-// goes away (see more info in GPBBootstrap.h).
-void GPBCheckRuntimeVersionInternal(int32_t version);
-GPB_INLINE void GPBDebugCheckRuntimeVersion() {
-#if defined(DEBUG) && DEBUG
- GPBCheckRuntimeVersionInternal(GOOGLE_PROTOBUF_OBJC_GEN_VERSION);
-#endif
-}
-
-// Conversion functions for de/serializing floating point types.
-
-GPB_INLINE int64_t GPBConvertDoubleToInt64(double v) {
- union { double f; int64_t i; } u;
- u.f = v;
- return u.i;
-}
-
-GPB_INLINE int32_t GPBConvertFloatToInt32(float v) {
- union { float f; int32_t i; } u;
- u.f = v;
- return u.i;
-}
-
-GPB_INLINE double GPBConvertInt64ToDouble(int64_t v) {
- union { double f; int64_t i; } u;
- u.i = v;
- return u.f;
-}
-
-GPB_INLINE float GPBConvertInt32ToFloat(int32_t v) {
- union { float f; int32_t i; } u;
- u.i = v;
- return u.f;
-}
-
-GPB_INLINE int32_t GPBLogicalRightShift32(int32_t value, int32_t spaces) {
- return (int32_t)((uint32_t)(value) >> spaces);
-}
-
-GPB_INLINE int64_t GPBLogicalRightShift64(int64_t value, int32_t spaces) {
- return (int64_t)((uint64_t)(value) >> spaces);
-}
-
-// Decode a ZigZag-encoded 32-bit value. ZigZag encodes signed integers
-// into values that can be efficiently encoded with varint. (Otherwise,
-// negative values must be sign-extended to 64 bits to be varint encoded,
-// thus always taking 10 bytes on the wire.)
-GPB_INLINE int32_t GPBDecodeZigZag32(uint32_t n) {
- return (int32_t)(GPBLogicalRightShift32((int32_t)n, 1) ^ -((int32_t)(n) & 1));
-}
-
-// Decode a ZigZag-encoded 64-bit value. ZigZag encodes signed integers
-// into values that can be efficiently encoded with varint. (Otherwise,
-// negative values must be sign-extended to 64 bits to be varint encoded,
-// thus always taking 10 bytes on the wire.)
-GPB_INLINE int64_t GPBDecodeZigZag64(uint64_t n) {
- return (int64_t)(GPBLogicalRightShift64((int64_t)n, 1) ^ -((int64_t)(n) & 1));
-}
-
-// Encode a ZigZag-encoded 32-bit value. ZigZag encodes signed integers
-// into values that can be efficiently encoded with varint. (Otherwise,
-// negative values must be sign-extended to 64 bits to be varint encoded,
-// thus always taking 10 bytes on the wire.)
-GPB_INLINE uint32_t GPBEncodeZigZag32(int32_t n) {
- // Note: the right-shift must be arithmetic
- return (uint32_t)((n << 1) ^ (n >> 31));
-}
-
-// Encode a ZigZag-encoded 64-bit value. ZigZag encodes signed integers
-// into values that can be efficiently encoded with varint. (Otherwise,
-// negative values must be sign-extended to 64 bits to be varint encoded,
-// thus always taking 10 bytes on the wire.)
-GPB_INLINE uint64_t GPBEncodeZigZag64(int64_t n) {
- // Note: the right-shift must be arithmetic
- return (uint64_t)((n << 1) ^ (n >> 63));
-}
-
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wswitch-enum"
-#pragma clang diagnostic ignored "-Wdirect-ivar-access"
-
-GPB_INLINE BOOL GPBDataTypeIsObject(GPBDataType type) {
- switch (type) {
- case GPBDataTypeBytes:
- case GPBDataTypeString:
- case GPBDataTypeMessage:
- case GPBDataTypeGroup:
- return YES;
- default:
- return NO;
- }
-}
-
-GPB_INLINE BOOL GPBDataTypeIsMessage(GPBDataType type) {
- switch (type) {
- case GPBDataTypeMessage:
- case GPBDataTypeGroup:
- return YES;
- default:
- return NO;
- }
-}
-
-GPB_INLINE BOOL GPBFieldDataTypeIsMessage(GPBFieldDescriptor *field) {
- return GPBDataTypeIsMessage(field->description_->dataType);
-}
-
-GPB_INLINE BOOL GPBFieldDataTypeIsObject(GPBFieldDescriptor *field) {
- return GPBDataTypeIsObject(field->description_->dataType);
-}
-
-GPB_INLINE BOOL GPBExtensionIsMessage(GPBExtensionDescriptor *ext) {
- return GPBDataTypeIsMessage(ext->description_->dataType);
-}
-
-// The field is an array/map or it has an object value.
-GPB_INLINE BOOL GPBFieldStoresObject(GPBFieldDescriptor *field) {
- GPBMessageFieldDescription *desc = field->description_;
- if ((desc->flags & (GPBFieldRepeated | GPBFieldMapKeyMask)) != 0) {
- return YES;
- }
- return GPBDataTypeIsObject(desc->dataType);
-}
-
-BOOL GPBGetHasIvar(GPBMessage *self, int32_t index, uint32_t fieldNumber);
-void GPBSetHasIvar(GPBMessage *self, int32_t idx, uint32_t fieldNumber,
- BOOL value);
-uint32_t GPBGetHasOneof(GPBMessage *self, int32_t index);
-
-GPB_INLINE BOOL
-GPBGetHasIvarField(GPBMessage *self, GPBFieldDescriptor *field) {
- GPBMessageFieldDescription *fieldDesc = field->description_;
- return GPBGetHasIvar(self, fieldDesc->hasIndex, fieldDesc->number);
-}
-GPB_INLINE void GPBSetHasIvarField(GPBMessage *self, GPBFieldDescriptor *field,
- BOOL value) {
- GPBMessageFieldDescription *fieldDesc = field->description_;
- GPBSetHasIvar(self, fieldDesc->hasIndex, fieldDesc->number, value);
-}
-
-void GPBMaybeClearOneof(GPBMessage *self, GPBOneofDescriptor *oneof,
- int32_t oneofHasIndex, uint32_t fieldNumberNotToClear);
-
-#pragma clang diagnostic pop
-
-//%PDDM-DEFINE GPB_IVAR_SET_DECL(NAME, TYPE)
-//%void GPBSet##NAME##IvarWithFieldInternal(GPBMessage *self,
-//% NAME$S GPBFieldDescriptor *field,
-//% NAME$S TYPE value,
-//% NAME$S GPBFileSyntax syntax);
-//%PDDM-EXPAND GPB_IVAR_SET_DECL(Bool, BOOL)
-// This block of code is generated, do not edit it directly.
-
-void GPBSetBoolIvarWithFieldInternal(GPBMessage *self,
- GPBFieldDescriptor *field,
- BOOL value,
- GPBFileSyntax syntax);
-//%PDDM-EXPAND GPB_IVAR_SET_DECL(Int32, int32_t)
-// This block of code is generated, do not edit it directly.
-
-void GPBSetInt32IvarWithFieldInternal(GPBMessage *self,
- GPBFieldDescriptor *field,
- int32_t value,
- GPBFileSyntax syntax);
-//%PDDM-EXPAND GPB_IVAR_SET_DECL(UInt32, uint32_t)
-// This block of code is generated, do not edit it directly.
-
-void GPBSetUInt32IvarWithFieldInternal(GPBMessage *self,
- GPBFieldDescriptor *field,
- uint32_t value,
- GPBFileSyntax syntax);
-//%PDDM-EXPAND GPB_IVAR_SET_DECL(Int64, int64_t)
-// This block of code is generated, do not edit it directly.
-
-void GPBSetInt64IvarWithFieldInternal(GPBMessage *self,
- GPBFieldDescriptor *field,
- int64_t value,
- GPBFileSyntax syntax);
-//%PDDM-EXPAND GPB_IVAR_SET_DECL(UInt64, uint64_t)
-// This block of code is generated, do not edit it directly.
-
-void GPBSetUInt64IvarWithFieldInternal(GPBMessage *self,
- GPBFieldDescriptor *field,
- uint64_t value,
- GPBFileSyntax syntax);
-//%PDDM-EXPAND GPB_IVAR_SET_DECL(Float, float)
-// This block of code is generated, do not edit it directly.
-
-void GPBSetFloatIvarWithFieldInternal(GPBMessage *self,
- GPBFieldDescriptor *field,
- float value,
- GPBFileSyntax syntax);
-//%PDDM-EXPAND GPB_IVAR_SET_DECL(Double, double)
-// This block of code is generated, do not edit it directly.
-
-void GPBSetDoubleIvarWithFieldInternal(GPBMessage *self,
- GPBFieldDescriptor *field,
- double value,
- GPBFileSyntax syntax);
-//%PDDM-EXPAND GPB_IVAR_SET_DECL(Enum, int32_t)
-// This block of code is generated, do not edit it directly.
-
-void GPBSetEnumIvarWithFieldInternal(GPBMessage *self,
- GPBFieldDescriptor *field,
- int32_t value,
- GPBFileSyntax syntax);
-//%PDDM-EXPAND-END (8 expansions)
-
-int32_t GPBGetEnumIvarWithFieldInternal(GPBMessage *self,
- GPBFieldDescriptor *field,
- GPBFileSyntax syntax);
-
-id GPBGetObjectIvarWithField(GPBMessage *self, GPBFieldDescriptor *field);
-
-void GPBSetObjectIvarWithFieldInternal(GPBMessage *self,
- GPBFieldDescriptor *field, id value,
- GPBFileSyntax syntax);
-void GPBSetRetainedObjectIvarWithFieldInternal(GPBMessage *self,
- GPBFieldDescriptor *field,
- id __attribute__((ns_consumed))
- value,
- GPBFileSyntax syntax);
-
-// GPBGetObjectIvarWithField will automatically create the field (message) if
-// it doesn't exist. GPBGetObjectIvarWithFieldNoAutocreate will return nil.
-id GPBGetObjectIvarWithFieldNoAutocreate(GPBMessage *self,
- GPBFieldDescriptor *field);
-
-void GPBSetAutocreatedRetainedObjectIvarWithField(
- GPBMessage *self, GPBFieldDescriptor *field,
- id __attribute__((ns_consumed)) value);
-
-// Clears and releases the autocreated message ivar, if it's autocreated. If
-// it's not set as autocreated, this method does nothing.
-void GPBClearAutocreatedMessageIvarWithField(GPBMessage *self,
- GPBFieldDescriptor *field);
-
-// Returns an Objective C encoding for |selector|. |instanceSel| should be
-// YES if it's an instance selector (as opposed to a class selector).
-// |selector| must be a selector from MessageSignatureProtocol.
-const char *GPBMessageEncodingForSelector(SEL selector, BOOL instanceSel);
-
-// Helper for text format name encoding.
-// decodeData is the data describing the sepecial decodes.
-// key and inputString are the input that needs decoding.
-NSString *GPBDecodeTextFormatName(const uint8_t *decodeData, int32_t key,
- NSString *inputString);
-
-// A series of selectors that are used solely to get @encoding values
-// for them by the dynamic protobuf runtime code. See
-// GPBMessageEncodingForSelector for details.
-@protocol GPBMessageSignatureProtocol
-@optional
-
-#define GPB_MESSAGE_SIGNATURE_ENTRY(TYPE, NAME) \
- -(TYPE)get##NAME; \
- -(void)set##NAME : (TYPE)value; \
- -(TYPE)get##NAME##AtIndex : (NSUInteger)index;
-
-GPB_MESSAGE_SIGNATURE_ENTRY(BOOL, Bool)
-GPB_MESSAGE_SIGNATURE_ENTRY(uint32_t, Fixed32)
-GPB_MESSAGE_SIGNATURE_ENTRY(int32_t, SFixed32)
-GPB_MESSAGE_SIGNATURE_ENTRY(float, Float)
-GPB_MESSAGE_SIGNATURE_ENTRY(uint64_t, Fixed64)
-GPB_MESSAGE_SIGNATURE_ENTRY(int64_t, SFixed64)
-GPB_MESSAGE_SIGNATURE_ENTRY(double, Double)
-GPB_MESSAGE_SIGNATURE_ENTRY(int32_t, Int32)
-GPB_MESSAGE_SIGNATURE_ENTRY(int64_t, Int64)
-GPB_MESSAGE_SIGNATURE_ENTRY(int32_t, SInt32)
-GPB_MESSAGE_SIGNATURE_ENTRY(int64_t, SInt64)
-GPB_MESSAGE_SIGNATURE_ENTRY(uint32_t, UInt32)
-GPB_MESSAGE_SIGNATURE_ENTRY(uint64_t, UInt64)
-GPB_MESSAGE_SIGNATURE_ENTRY(NSData *, Bytes)
-GPB_MESSAGE_SIGNATURE_ENTRY(NSString *, String)
-GPB_MESSAGE_SIGNATURE_ENTRY(GPBMessage *, Message)
-GPB_MESSAGE_SIGNATURE_ENTRY(GPBMessage *, Group)
-GPB_MESSAGE_SIGNATURE_ENTRY(int32_t, Enum)
-
-#undef GPB_MESSAGE_SIGNATURE_ENTRY
-
-- (id)getArray;
-- (NSUInteger)getArrayCount;
-- (void)setArray:(NSArray *)array;
-+ (id)getClassValue;
-@end
-
-BOOL GPBClassHasSel(Class aClass, SEL sel);
-
-CF_EXTERN_C_END
diff --git a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBWellKnownTypes.h b/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBWellKnownTypes.h
deleted file mode 100644
index 04df4178..00000000
--- a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBWellKnownTypes.h
+++ /dev/null
@@ -1,245 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2015 Google Inc. All rights reserved.
-// https://developers.google.com/protocol-buffers/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#import <Foundation/Foundation.h>
-
-// This CPP symbol can be defined to use imports that match up to the framework
-// imports needed when using CocoaPods.
-#if !defined(GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS)
- #define GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS 0
-#endif
-
-#if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS
- #import <Protobuf/Any.pbobjc.h>
- #import <Protobuf/Duration.pbobjc.h>
- #import <Protobuf/Timestamp.pbobjc.h>
-#else
- #import "google/protobuf/Any.pbobjc.h"
- #import "google/protobuf/Duration.pbobjc.h"
- #import "google/protobuf/Timestamp.pbobjc.h"
-#endif
-
-NS_ASSUME_NONNULL_BEGIN
-
-#pragma mark - Errors
-
-/** NSError domain used for errors. */
-extern NSString *const GPBWellKnownTypesErrorDomain;
-
-/** Error code for NSError with GPBWellKnownTypesErrorDomain. */
-typedef NS_ENUM(NSInteger, GPBWellKnownTypesErrorCode) {
- /** The type_url could not be computed for the requested GPBMessage class. */
- GPBWellKnownTypesErrorCodeFailedToComputeTypeURL = -100,
- /** type_url in a Any doesn’t match that of the requested GPBMessage class. */
- GPBWellKnownTypesErrorCodeTypeURLMismatch = -101,
-};
-
-#pragma mark - GPBTimestamp
-
-/**
- * Category for GPBTimestamp to work with standard Foundation time/date types.
- **/
-@interface GPBTimestamp (GBPWellKnownTypes)
-
-/** The NSDate representation of this GPBTimestamp. */
-@property(nonatomic, readwrite, strong) NSDate *date;
-
-/**
- * The NSTimeInterval representation of this GPBTimestamp.
- *
- * @note: Not all second/nanos combinations can be represented in a
- * NSTimeInterval, so getting this could be a lossy transform.
- **/
-@property(nonatomic, readwrite) NSTimeInterval timeIntervalSince1970;
-
-/**
- * Initializes a GPBTimestamp with the given NSDate.
- *
- * @param date The date to configure the GPBTimestamp with.
- *
- * @return A newly initialized GPBTimestamp.
- **/
-- (instancetype)initWithDate:(NSDate *)date;
-
-/**
- * Initializes a GPBTimestamp with the given NSTimeInterval.
- *
- * @param timeIntervalSince1970 Time interval to configure the GPBTimestamp with.
- *
- * @return A newly initialized GPBTimestamp.
- **/
-- (instancetype)initWithTimeIntervalSince1970:(NSTimeInterval)timeIntervalSince1970;
-
-@end
-
-#pragma mark - GPBDuration
-
-/**
- * Category for GPBDuration to work with standard Foundation time type.
- **/
-@interface GPBDuration (GBPWellKnownTypes)
-
-/**
- * The NSTimeInterval representation of this GPBDuration.
- *
- * @note: Not all second/nanos combinations can be represented in a
- * NSTimeInterval, so getting this could be a lossy transform.
- **/
-@property(nonatomic, readwrite) NSTimeInterval timeInterval;
-
-/**
- * Initializes a GPBDuration with the given NSTimeInterval.
- *
- * @param timeInterval Time interval to configure the GPBDuration with.
- *
- * @return A newly initialized GPBDuration.
- **/
-- (instancetype)initWithTimeInterval:(NSTimeInterval)timeInterval;
-
-// These next two methods are deprecated because GBPDuration has no need of a
-// "base" time. The older methods were about symmetry with GBPTimestamp, but
-// the unix epoch usage is too confusing.
-
-/** Deprecated, use timeInterval instead. */
-@property(nonatomic, readwrite) NSTimeInterval timeIntervalSince1970
- __attribute__((deprecated("Use timeInterval")));
-/** Deprecated, use initWithTimeInterval: instead. */
-- (instancetype)initWithTimeIntervalSince1970:(NSTimeInterval)timeIntervalSince1970
- __attribute__((deprecated("Use initWithTimeInterval:")));
-
-@end
-
-#pragma mark - GPBAny
-
-/**
- * Category for GPBAny to help work with the message within the object.
- **/
-@interface GPBAny (GBPWellKnownTypes)
-
-/**
- * Convenience method to create a GPBAny containing the serialized message.
- * This uses type.googleapis.com/ as the type_url's prefix.
- *
- * @param message The message to be packed into the GPBAny.
- * @param errorPtr Pointer to an error that will be populated if something goes
- * wrong.
- *
- * @return A newly configured GPBAny with the given message, or nil on failure.
- */
-+ (nullable instancetype)anyWithMessage:(nonnull GPBMessage *)message
- error:(NSError **)errorPtr;
-
-/**
- * Convenience method to create a GPBAny containing the serialized message.
- *
- * @param message The message to be packed into the GPBAny.
- * @param typeURLPrefix The URL prefix to apply for type_url.
- * @param errorPtr Pointer to an error that will be populated if something
- * goes wrong.
- *
- * @return A newly configured GPBAny with the given message, or nil on failure.
- */
-+ (nullable instancetype)anyWithMessage:(nonnull GPBMessage *)message
- typeURLPrefix:(nonnull NSString *)typeURLPrefix
- error:(NSError **)errorPtr;
-
-/**
- * Initializes a GPBAny to contain the serialized message. This uses
- * type.googleapis.com/ as the type_url's prefix.
- *
- * @param message The message to be packed into the GPBAny.
- * @param errorPtr Pointer to an error that will be populated if something goes
- * wrong.
- *
- * @return A newly configured GPBAny with the given message, or nil on failure.
- */
-- (nullable instancetype)initWithMessage:(nonnull GPBMessage *)message
- error:(NSError **)errorPtr;
-
-/**
- * Initializes a GPBAny to contain the serialized message.
- *
- * @param message The message to be packed into the GPBAny.
- * @param typeURLPrefix The URL prefix to apply for type_url.
- * @param errorPtr Pointer to an error that will be populated if something
- * goes wrong.
- *
- * @return A newly configured GPBAny with the given message, or nil on failure.
- */
-- (nullable instancetype)initWithMessage:(nonnull GPBMessage *)message
- typeURLPrefix:(nonnull NSString *)typeURLPrefix
- error:(NSError **)errorPtr;
-
-/**
- * Packs the serialized message into this GPBAny. This uses
- * type.googleapis.com/ as the type_url's prefix.
- *
- * @param message The message to be packed into the GPBAny.
- * @param errorPtr Pointer to an error that will be populated if something goes
- * wrong.
- *
- * @return Whether the packing was successful or not.
- */
-- (BOOL)packWithMessage:(nonnull GPBMessage *)message
- error:(NSError **)errorPtr;
-
-/**
- * Packs the serialized message into this GPBAny.
- *
- * @param message The message to be packed into the GPBAny.
- * @param typeURLPrefix The URL prefix to apply for type_url.
- * @param errorPtr Pointer to an error that will be populated if something
- * goes wrong.
- *
- * @return Whether the packing was successful or not.
- */
-- (BOOL)packWithMessage:(nonnull GPBMessage *)message
- typeURLPrefix:(nonnull NSString *)typeURLPrefix
- error:(NSError **)errorPtr;
-
-/**
- * Unpacks the serialized message as if it was an instance of the given class.
- *
- * @note When checking type_url, the base URL is not checked, only the fully
- * qualified name.
- *
- * @param messageClass The class to use to deserialize the contained message.
- * @param errorPtr Pointer to an error that will be populated if something
- * goes wrong.
- *
- * @return An instance of the given class populated with the contained data, or
- * nil on failure.
- */
-- (nullable GPBMessage *)unpackMessageClass:(Class)messageClass
- error:(NSError **)errorPtr;
-
-@end
-
-NS_ASSUME_NONNULL_END
diff --git a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBWellKnownTypes.m b/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBWellKnownTypes.m
deleted file mode 100644
index 2808afeb..00000000
--- a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBWellKnownTypes.m
+++ /dev/null
@@ -1,272 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2015 Google Inc. All rights reserved.
-// https://developers.google.com/protocol-buffers/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Importing sources here to force the linker to include our category methods in
-// the static library. If these were compiled separately, the category methods
-// below would be stripped by the linker.
-
-#import "GPBWellKnownTypes.h"
-
-#import "GPBUtilities_PackagePrivate.h"
-
-NSString *const GPBWellKnownTypesErrorDomain =
- GPBNSStringifySymbol(GPBWellKnownTypesErrorDomain);
-
-static NSString *kTypePrefixGoogleApisCom = @"type.googleapis.com/";
-
-static NSTimeInterval TimeIntervalFromSecondsAndNanos(int64_t seconds,
- int32_t nanos) {
- return seconds + (NSTimeInterval)nanos / 1e9;
-}
-
-static int32_t SecondsAndNanosFromTimeInterval(NSTimeInterval time,
- int64_t *outSeconds,
- BOOL nanosMustBePositive) {
- NSTimeInterval seconds;
- NSTimeInterval nanos = modf(time, &seconds);
-
- if (nanosMustBePositive && (nanos < 0)) {
- // Per Timestamp.proto, nanos is non-negative and "Negative second values with
- // fractions must still have non-negative nanos values that count forward in
- // time. Must be from 0 to 999,999,999 inclusive."
- --seconds;
- nanos = 1.0 + nanos;
- }
-
- nanos *= 1e9;
- *outSeconds = (int64_t)seconds;
- return (int32_t)nanos;
-}
-
-static NSString *BuildTypeURL(NSString *typeURLPrefix, NSString *fullName) {
- if (typeURLPrefix.length == 0) {
- return fullName;
- }
-
- if ([typeURLPrefix hasSuffix:@"/"]) {
- return [typeURLPrefix stringByAppendingString:fullName];
- }
-
- return [NSString stringWithFormat:@"%@/%@", typeURLPrefix, fullName];
-}
-
-static NSString *ParseTypeFromURL(NSString *typeURLString) {
- NSRange range = [typeURLString rangeOfString:@"/" options:NSBackwardsSearch];
- if ((range.location == NSNotFound) ||
- (NSMaxRange(range) == typeURLString.length)) {
- return nil;
- }
- NSString *result = [typeURLString substringFromIndex:range.location + 1];
- return result;
-}
-
-#pragma mark - GPBTimestamp
-
-@implementation GPBTimestamp (GBPWellKnownTypes)
-
-- (instancetype)initWithDate:(NSDate *)date {
- return [self initWithTimeIntervalSince1970:date.timeIntervalSince1970];
-}
-
-- (instancetype)initWithTimeIntervalSince1970:(NSTimeInterval)timeIntervalSince1970 {
- if ((self = [super init])) {
- int64_t seconds;
- int32_t nanos = SecondsAndNanosFromTimeInterval(
- timeIntervalSince1970, &seconds, YES);
- self.seconds = seconds;
- self.nanos = nanos;
- }
- return self;
-}
-
-- (NSDate *)date {
- return [NSDate dateWithTimeIntervalSince1970:self.timeIntervalSince1970];
-}
-
-- (void)setDate:(NSDate *)date {
- self.timeIntervalSince1970 = date.timeIntervalSince1970;
-}
-
-- (NSTimeInterval)timeIntervalSince1970 {
- return TimeIntervalFromSecondsAndNanos(self.seconds, self.nanos);
-}
-
-- (void)setTimeIntervalSince1970:(NSTimeInterval)timeIntervalSince1970 {
- int64_t seconds;
- int32_t nanos =
- SecondsAndNanosFromTimeInterval(timeIntervalSince1970, &seconds, YES);
- self.seconds = seconds;
- self.nanos = nanos;
-}
-
-@end
-
-#pragma mark - GPBDuration
-
-@implementation GPBDuration (GBPWellKnownTypes)
-
-- (instancetype)initWithTimeInterval:(NSTimeInterval)timeInterval {
- if ((self = [super init])) {
- int64_t seconds;
- int32_t nanos = SecondsAndNanosFromTimeInterval(
- timeInterval, &seconds, NO);
- self.seconds = seconds;
- self.nanos = nanos;
- }
- return self;
-}
-
-- (instancetype)initWithTimeIntervalSince1970:(NSTimeInterval)timeIntervalSince1970 {
- return [self initWithTimeInterval:timeIntervalSince1970];
-}
-
-- (NSTimeInterval)timeInterval {
- return TimeIntervalFromSecondsAndNanos(self.seconds, self.nanos);
-}
-
-- (void)setTimeInterval:(NSTimeInterval)timeInterval {
- int64_t seconds;
- int32_t nanos =
- SecondsAndNanosFromTimeInterval(timeInterval, &seconds, NO);
- self.seconds = seconds;
- self.nanos = nanos;
-}
-
-- (NSTimeInterval)timeIntervalSince1970 {
- return self.timeInterval;
-}
-
-- (void)setTimeIntervalSince1970:(NSTimeInterval)timeIntervalSince1970 {
- self.timeInterval = timeIntervalSince1970;
-}
-
-@end
-
-#pragma mark - GPBAny
-
-@implementation GPBAny (GBPWellKnownTypes)
-
-+ (instancetype)anyWithMessage:(GPBMessage *)message
- error:(NSError **)errorPtr {
- return [self anyWithMessage:message
- typeURLPrefix:kTypePrefixGoogleApisCom
- error:errorPtr];
-}
-
-+ (instancetype)anyWithMessage:(GPBMessage *)message
- typeURLPrefix:(NSString *)typeURLPrefix
- error:(NSError **)errorPtr {
- return [[[self alloc] initWithMessage:message
- typeURLPrefix:typeURLPrefix
- error:errorPtr] autorelease];
-}
-
-- (instancetype)initWithMessage:(GPBMessage *)message
- error:(NSError **)errorPtr {
- return [self initWithMessage:message
- typeURLPrefix:kTypePrefixGoogleApisCom
- error:errorPtr];
-}
-
-- (instancetype)initWithMessage:(GPBMessage *)message
- typeURLPrefix:(NSString *)typeURLPrefix
- error:(NSError **)errorPtr {
- self = [self init];
- if (self) {
- if (![self packWithMessage:message
- typeURLPrefix:typeURLPrefix
- error:errorPtr]) {
- [self release];
- self = nil;
- }
- }
- return self;
-}
-
-- (BOOL)packWithMessage:(GPBMessage *)message
- error:(NSError **)errorPtr {
- return [self packWithMessage:message
- typeURLPrefix:kTypePrefixGoogleApisCom
- error:errorPtr];
-}
-
-- (BOOL)packWithMessage:(GPBMessage *)message
- typeURLPrefix:(NSString *)typeURLPrefix
- error:(NSError **)errorPtr {
- NSString *fullName = [message descriptor].fullName;
- if (fullName.length == 0) {
- if (errorPtr) {
- *errorPtr =
- [NSError errorWithDomain:GPBWellKnownTypesErrorDomain
- code:GPBWellKnownTypesErrorCodeFailedToComputeTypeURL
- userInfo:nil];
- }
- return NO;
- }
- if (errorPtr) {
- *errorPtr = nil;
- }
- self.typeURL = BuildTypeURL(typeURLPrefix, fullName);
- self.value = message.data;
- return YES;
-}
-
-- (GPBMessage *)unpackMessageClass:(Class)messageClass
- error:(NSError **)errorPtr {
- NSString *fullName = [messageClass descriptor].fullName;
- if (fullName.length == 0) {
- if (errorPtr) {
- *errorPtr =
- [NSError errorWithDomain:GPBWellKnownTypesErrorDomain
- code:GPBWellKnownTypesErrorCodeFailedToComputeTypeURL
- userInfo:nil];
- }
- return nil;
- }
-
- NSString *expectedFullName = ParseTypeFromURL(self.typeURL);
- if ((expectedFullName == nil) || ![expectedFullName isEqual:fullName]) {
- if (errorPtr) {
- *errorPtr =
- [NSError errorWithDomain:GPBWellKnownTypesErrorDomain
- code:GPBWellKnownTypesErrorCodeTypeURLMismatch
- userInfo:nil];
- }
- return nil;
- }
-
- // Any is proto3, which means no extensions, so this assumes anything put
- // within an any also won't need extensions. A second helper could be added
- // if needed.
- return [messageClass parseFromData:self.value
- error:errorPtr];
-}
-
-@end
diff --git a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBWireFormat.h b/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBWireFormat.h
deleted file mode 100644
index c5941a38..00000000
--- a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBWireFormat.h
+++ /dev/null
@@ -1,73 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// https://developers.google.com/protocol-buffers/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#import "GPBRuntimeTypes.h"
-
-CF_EXTERN_C_BEGIN
-
-NS_ASSUME_NONNULL_BEGIN
-
-typedef enum {
- GPBWireFormatVarint = 0,
- GPBWireFormatFixed64 = 1,
- GPBWireFormatLengthDelimited = 2,
- GPBWireFormatStartGroup = 3,
- GPBWireFormatEndGroup = 4,
- GPBWireFormatFixed32 = 5,
-} GPBWireFormat;
-
-enum {
- GPBWireFormatMessageSetItem = 1,
- GPBWireFormatMessageSetTypeId = 2,
- GPBWireFormatMessageSetMessage = 3
-};
-
-uint32_t GPBWireFormatMakeTag(uint32_t fieldNumber, GPBWireFormat wireType)
- __attribute__((const));
-GPBWireFormat GPBWireFormatGetTagWireType(uint32_t tag) __attribute__((const));
-uint32_t GPBWireFormatGetTagFieldNumber(uint32_t tag) __attribute__((const));
-BOOL GPBWireFormatIsValidTag(uint32_t tag) __attribute__((const));
-
-GPBWireFormat GPBWireFormatForType(GPBDataType dataType, BOOL isPacked)
- __attribute__((const));
-
-#define GPBWireFormatMessageSetItemTag \
- (GPBWireFormatMakeTag(GPBWireFormatMessageSetItem, GPBWireFormatStartGroup))
-#define GPBWireFormatMessageSetItemEndTag \
- (GPBWireFormatMakeTag(GPBWireFormatMessageSetItem, GPBWireFormatEndGroup))
-#define GPBWireFormatMessageSetTypeIdTag \
- (GPBWireFormatMakeTag(GPBWireFormatMessageSetTypeId, GPBWireFormatVarint))
-#define GPBWireFormatMessageSetMessageTag \
- (GPBWireFormatMakeTag(GPBWireFormatMessageSetMessage, \
- GPBWireFormatLengthDelimited))
-
-NS_ASSUME_NONNULL_END
-
-CF_EXTERN_C_END
diff --git a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBWireFormat.m b/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBWireFormat.m
deleted file mode 100644
index 860a339f..00000000
--- a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBWireFormat.m
+++ /dev/null
@@ -1,85 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// https://developers.google.com/protocol-buffers/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#import "GPBWireFormat.h"
-
-#import "GPBUtilities_PackagePrivate.h"
-
-enum {
- GPBWireFormatTagTypeBits = 3,
- GPBWireFormatTagTypeMask = 7 /* = (1 << GPBWireFormatTagTypeBits) - 1 */,
-};
-
-uint32_t GPBWireFormatMakeTag(uint32_t fieldNumber, GPBWireFormat wireType) {
- return (fieldNumber << GPBWireFormatTagTypeBits) | wireType;
-}
-
-GPBWireFormat GPBWireFormatGetTagWireType(uint32_t tag) {
- return (GPBWireFormat)(tag & GPBWireFormatTagTypeMask);
-}
-
-uint32_t GPBWireFormatGetTagFieldNumber(uint32_t tag) {
- return GPBLogicalRightShift32(tag, GPBWireFormatTagTypeBits);
-}
-
-BOOL GPBWireFormatIsValidTag(uint32_t tag) {
- uint32_t formatBits = (tag & GPBWireFormatTagTypeMask);
- // The valid GPBWireFormat* values are 0-5, anything else is not a valid tag.
- BOOL result = (formatBits <= 5);
- return result;
-}
-
-GPBWireFormat GPBWireFormatForType(GPBDataType type, BOOL isPacked) {
- if (isPacked) {
- return GPBWireFormatLengthDelimited;
- }
-
- static const GPBWireFormat format[GPBDataType_Count] = {
- GPBWireFormatVarint, // GPBDataTypeBool
- GPBWireFormatFixed32, // GPBDataTypeFixed32
- GPBWireFormatFixed32, // GPBDataTypeSFixed32
- GPBWireFormatFixed32, // GPBDataTypeFloat
- GPBWireFormatFixed64, // GPBDataTypeFixed64
- GPBWireFormatFixed64, // GPBDataTypeSFixed64
- GPBWireFormatFixed64, // GPBDataTypeDouble
- GPBWireFormatVarint, // GPBDataTypeInt32
- GPBWireFormatVarint, // GPBDataTypeInt64
- GPBWireFormatVarint, // GPBDataTypeSInt32
- GPBWireFormatVarint, // GPBDataTypeSInt64
- GPBWireFormatVarint, // GPBDataTypeUInt32
- GPBWireFormatVarint, // GPBDataTypeUInt64
- GPBWireFormatLengthDelimited, // GPBDataTypeBytes
- GPBWireFormatLengthDelimited, // GPBDataTypeString
- GPBWireFormatLengthDelimited, // GPBDataTypeMessage
- GPBWireFormatStartGroup, // GPBDataTypeGroup
- GPBWireFormatVarint // GPBDataTypeEnum
- };
- return format[type];
-}
diff --git a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Any.pbobjc.h b/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Any.pbobjc.h
deleted file mode 100644
index d236e4b2..00000000
--- a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Any.pbobjc.h
+++ /dev/null
@@ -1,163 +0,0 @@
-// Generated by the protocol buffer compiler. DO NOT EDIT!
-// source: google/protobuf/any.proto
-
-// This CPP symbol can be defined to use imports that match up to the framework
-// imports needed when using CocoaPods.
-#if !defined(GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS)
- #define GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS 0
-#endif
-
-#if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS
- #import <Protobuf/GPBProtocolBuffers.h>
-#else
- #import "GPBProtocolBuffers.h"
-#endif
-
-#if GOOGLE_PROTOBUF_OBJC_VERSION < 30002
-#error This file was generated by a newer version of protoc which is incompatible with your Protocol Buffer library sources.
-#endif
-#if 30002 < GOOGLE_PROTOBUF_OBJC_MIN_SUPPORTED_VERSION
-#error This file was generated by an older version of protoc which is incompatible with your Protocol Buffer library sources.
-#endif
-
-// @@protoc_insertion_point(imports)
-
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wdeprecated-declarations"
-
-CF_EXTERN_C_BEGIN
-
-NS_ASSUME_NONNULL_BEGIN
-
-#pragma mark - GPBAnyRoot
-
-/**
- * Exposes the extension registry for this file.
- *
- * The base class provides:
- * @code
- * + (GPBExtensionRegistry *)extensionRegistry;
- * @endcode
- * which is a @c GPBExtensionRegistry that includes all the extensions defined by
- * this file and all files that it depends on.
- **/
-@interface GPBAnyRoot : GPBRootObject
-@end
-
-#pragma mark - GPBAny
-
-typedef GPB_ENUM(GPBAny_FieldNumber) {
- GPBAny_FieldNumber_TypeURL = 1,
- GPBAny_FieldNumber_Value = 2,
-};
-
-/**
- * `Any` contains an arbitrary serialized protocol buffer message along with a
- * URL that describes the type of the serialized message.
- *
- * Protobuf library provides support to pack/unpack Any values in the form
- * of utility functions or additional generated methods of the Any type.
- *
- * Example 1: Pack and unpack a message in C++.
- *
- * Foo foo = ...;
- * Any any;
- * any.PackFrom(foo);
- * ...
- * if (any.UnpackTo(&foo)) {
- * ...
- * }
- *
- * Example 2: Pack and unpack a message in Java.
- *
- * Foo foo = ...;
- * Any any = Any.pack(foo);
- * ...
- * if (any.is(Foo.class)) {
- * foo = any.unpack(Foo.class);
- * }
- *
- * Example 3: Pack and unpack a message in Python.
- *
- * foo = Foo(...)
- * any = Any()
- * any.Pack(foo)
- * ...
- * if any.Is(Foo.DESCRIPTOR):
- * any.Unpack(foo)
- * ...
- *
- * The pack methods provided by protobuf library will by default use
- * 'type.googleapis.com/full.type.name' as the type URL and the unpack
- * methods only use the fully qualified type name after the last '/'
- * in the type URL, for example "foo.bar.com/x/y.z" will yield type
- * name "y.z".
- *
- *
- * JSON
- * ====
- * The JSON representation of an `Any` value uses the regular
- * representation of the deserialized, embedded message, with an
- * additional field `\@type` which contains the type URL. Example:
- *
- * package google.profile;
- * message Person {
- * string first_name = 1;
- * string last_name = 2;
- * }
- *
- * {
- * "\@type": "type.googleapis.com/google.profile.Person",
- * "firstName": <string>,
- * "lastName": <string>
- * }
- *
- * If the embedded message type is well-known and has a custom JSON
- * representation, that representation will be embedded adding a field
- * `value` which holds the custom JSON in addition to the `\@type`
- * field. Example (for message [google.protobuf.Duration][]):
- *
- * {
- * "\@type": "type.googleapis.com/google.protobuf.Duration",
- * "value": "1.212s"
- * }
- **/
-@interface GPBAny : GPBMessage
-
-/**
- * A URL/resource name whose content describes the type of the
- * serialized protocol buffer message.
- *
- * For URLs which use the scheme `http`, `https`, or no scheme, the
- * following restrictions and interpretations apply:
- *
- * * If no scheme is provided, `https` is assumed.
- * * The last segment of the URL's path must represent the fully
- * qualified name of the type (as in `path/google.protobuf.Duration`).
- * The name should be in a canonical form (e.g., leading "." is
- * not accepted).
- * * An HTTP GET on the URL must yield a [google.protobuf.Type][]
- * value in binary format, or produce an error.
- * * Applications are allowed to cache lookup results based on the
- * URL, or have them precompiled into a binary to avoid any
- * lookup. Therefore, binary compatibility needs to be preserved
- * on changes to types. (Use versioned type names to manage
- * breaking changes.)
- *
- * Schemes other than `http`, `https` (or the empty scheme) might be
- * used with implementation specific semantics.
- **/
-@property(nonatomic, readwrite, copy, null_resettable) NSString *typeURL;
-
-/** Must be a valid serialized protocol buffer of the above specified type. */
-@property(nonatomic, readwrite, copy, null_resettable) NSData *value;
-
-@end
-
-NS_ASSUME_NONNULL_END
-
-CF_EXTERN_C_END
-
-#pragma clang diagnostic pop
-
-// @@protoc_insertion_point(global_scope)
diff --git a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Any.pbobjc.m b/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Any.pbobjc.m
deleted file mode 100644
index d210643f..00000000
--- a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Any.pbobjc.m
+++ /dev/null
@@ -1,112 +0,0 @@
-// Generated by the protocol buffer compiler. DO NOT EDIT!
-// source: google/protobuf/any.proto
-
-// This CPP symbol can be defined to use imports that match up to the framework
-// imports needed when using CocoaPods.
-#if !defined(GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS)
- #define GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS 0
-#endif
-
-#if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS
- #import <Protobuf/GPBProtocolBuffers_RuntimeSupport.h>
-#else
- #import "GPBProtocolBuffers_RuntimeSupport.h"
-#endif
-
-#if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS
- #import <Protobuf/Any.pbobjc.h>
-#else
- #import "google/protobuf/Any.pbobjc.h"
-#endif
-// @@protoc_insertion_point(imports)
-
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wdeprecated-declarations"
-
-#pragma mark - GPBAnyRoot
-
-@implementation GPBAnyRoot
-
-// No extensions in the file and no imports, so no need to generate
-// +extensionRegistry.
-
-@end
-
-#pragma mark - GPBAnyRoot_FileDescriptor
-
-static GPBFileDescriptor *GPBAnyRoot_FileDescriptor(void) {
- // This is called by +initialize so there is no need to worry
- // about thread safety of the singleton.
- static GPBFileDescriptor *descriptor = NULL;
- if (!descriptor) {
- GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
- descriptor = [[GPBFileDescriptor alloc] initWithPackage:@"google.protobuf"
- objcPrefix:@"GPB"
- syntax:GPBFileSyntaxProto3];
- }
- return descriptor;
-}
-
-#pragma mark - GPBAny
-
-@implementation GPBAny
-
-@dynamic typeURL;
-@dynamic value;
-
-typedef struct GPBAny__storage_ {
- uint32_t _has_storage_[1];
- NSString *typeURL;
- NSData *value;
-} GPBAny__storage_;
-
-// This method is threadsafe because it is initially called
-// in +initialize for each subclass.
-+ (GPBDescriptor *)descriptor {
- static GPBDescriptor *descriptor = nil;
- if (!descriptor) {
- static GPBMessageFieldDescription fields[] = {
- {
- .name = "typeURL",
- .dataTypeSpecific.className = NULL,
- .number = GPBAny_FieldNumber_TypeURL,
- .hasIndex = 0,
- .offset = (uint32_t)offsetof(GPBAny__storage_, typeURL),
- .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldTextFormatNameCustom),
- .dataType = GPBDataTypeString,
- },
- {
- .name = "value",
- .dataTypeSpecific.className = NULL,
- .number = GPBAny_FieldNumber_Value,
- .hasIndex = 1,
- .offset = (uint32_t)offsetof(GPBAny__storage_, value),
- .flags = GPBFieldOptional,
- .dataType = GPBDataTypeBytes,
- },
- };
- GPBDescriptor *localDescriptor =
- [GPBDescriptor allocDescriptorForClass:[GPBAny class]
- rootClass:[GPBAnyRoot class]
- file:GPBAnyRoot_FileDescriptor()
- fields:fields
- fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
- storageSize:sizeof(GPBAny__storage_)
- flags:GPBDescriptorInitializationFlag_None];
-#if !GPBOBJC_SKIP_MESSAGE_TEXTFORMAT_EXTRAS
- static const char *extraTextFormatInfo =
- "\001\001\004\241!!\000";
- [localDescriptor setupExtraTextInfo:extraTextFormatInfo];
-#endif // !GPBOBJC_SKIP_MESSAGE_TEXTFORMAT_EXTRAS
- NSAssert(descriptor == nil, @"Startup recursed!");
- descriptor = localDescriptor;
- }
- return descriptor;
-}
-
-@end
-
-
-#pragma clang diagnostic pop
-
-// @@protoc_insertion_point(global_scope)
diff --git a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Api.pbobjc.h b/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Api.pbobjc.h
deleted file mode 100644
index 742a8122..00000000
--- a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Api.pbobjc.h
+++ /dev/null
@@ -1,299 +0,0 @@
-// Generated by the protocol buffer compiler. DO NOT EDIT!
-// source: google/protobuf/api.proto
-
-// This CPP symbol can be defined to use imports that match up to the framework
-// imports needed when using CocoaPods.
-#if !defined(GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS)
- #define GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS 0
-#endif
-
-#if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS
- #import <Protobuf/GPBProtocolBuffers.h>
-#else
- #import "GPBProtocolBuffers.h"
-#endif
-
-#if GOOGLE_PROTOBUF_OBJC_VERSION < 30002
-#error This file was generated by a newer version of protoc which is incompatible with your Protocol Buffer library sources.
-#endif
-#if 30002 < GOOGLE_PROTOBUF_OBJC_MIN_SUPPORTED_VERSION
-#error This file was generated by an older version of protoc which is incompatible with your Protocol Buffer library sources.
-#endif
-
-// @@protoc_insertion_point(imports)
-
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wdeprecated-declarations"
-
-CF_EXTERN_C_BEGIN
-
-@class GPBMethod;
-@class GPBMixin;
-@class GPBOption;
-@class GPBSourceContext;
-GPB_ENUM_FWD_DECLARE(GPBSyntax);
-
-NS_ASSUME_NONNULL_BEGIN
-
-#pragma mark - GPBApiRoot
-
-/**
- * Exposes the extension registry for this file.
- *
- * The base class provides:
- * @code
- * + (GPBExtensionRegistry *)extensionRegistry;
- * @endcode
- * which is a @c GPBExtensionRegistry that includes all the extensions defined by
- * this file and all files that it depends on.
- **/
-@interface GPBApiRoot : GPBRootObject
-@end
-
-#pragma mark - GPBApi
-
-typedef GPB_ENUM(GPBApi_FieldNumber) {
- GPBApi_FieldNumber_Name = 1,
- GPBApi_FieldNumber_MethodsArray = 2,
- GPBApi_FieldNumber_OptionsArray = 3,
- GPBApi_FieldNumber_Version = 4,
- GPBApi_FieldNumber_SourceContext = 5,
- GPBApi_FieldNumber_MixinsArray = 6,
- GPBApi_FieldNumber_Syntax = 7,
-};
-
-/**
- * Api is a light-weight descriptor for a protocol buffer service.
- **/
-@interface GPBApi : GPBMessage
-
-/**
- * The fully qualified name of this api, including package name
- * followed by the api's simple name.
- **/
-@property(nonatomic, readwrite, copy, null_resettable) NSString *name;
-
-/** The methods of this api, in unspecified order. */
-@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<GPBMethod*> *methodsArray;
-/** The number of items in @c methodsArray without causing the array to be created. */
-@property(nonatomic, readonly) NSUInteger methodsArray_Count;
-
-/** Any metadata attached to the API. */
-@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<GPBOption*> *optionsArray;
-/** The number of items in @c optionsArray without causing the array to be created. */
-@property(nonatomic, readonly) NSUInteger optionsArray_Count;
-
-/**
- * A version string for this api. If specified, must have the form
- * `major-version.minor-version`, as in `1.10`. If the minor version
- * is omitted, it defaults to zero. If the entire version field is
- * empty, the major version is derived from the package name, as
- * outlined below. If the field is not empty, the version in the
- * package name will be verified to be consistent with what is
- * provided here.
- *
- * The versioning schema uses [semantic
- * versioning](http://semver.org) where the major version number
- * indicates a breaking change and the minor version an additive,
- * non-breaking change. Both version numbers are signals to users
- * what to expect from different versions, and should be carefully
- * chosen based on the product plan.
- *
- * The major version is also reflected in the package name of the
- * API, which must end in `v<major-version>`, as in
- * `google.feature.v1`. For major versions 0 and 1, the suffix can
- * be omitted. Zero major versions must only be used for
- * experimental, none-GA apis.
- **/
-@property(nonatomic, readwrite, copy, null_resettable) NSString *version;
-
-/**
- * Source context for the protocol buffer service represented by this
- * message.
- **/
-@property(nonatomic, readwrite, strong, null_resettable) GPBSourceContext *sourceContext;
-/** Test to see if @c sourceContext has been set. */
-@property(nonatomic, readwrite) BOOL hasSourceContext;
-
-/** Included APIs. See [Mixin][]. */
-@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<GPBMixin*> *mixinsArray;
-/** The number of items in @c mixinsArray without causing the array to be created. */
-@property(nonatomic, readonly) NSUInteger mixinsArray_Count;
-
-/** The source syntax of the service. */
-@property(nonatomic, readwrite) enum GPBSyntax syntax;
-
-@end
-
-/**
- * Fetches the raw value of a @c GPBApi's @c syntax property, even
- * if the value was not defined by the enum at the time the code was generated.
- **/
-int32_t GPBApi_Syntax_RawValue(GPBApi *message);
-/**
- * Sets the raw value of an @c GPBApi's @c syntax property, allowing
- * it to be set to a value that was not defined by the enum at the time the code
- * was generated.
- **/
-void SetGPBApi_Syntax_RawValue(GPBApi *message, int32_t value);
-
-#pragma mark - GPBMethod
-
-typedef GPB_ENUM(GPBMethod_FieldNumber) {
- GPBMethod_FieldNumber_Name = 1,
- GPBMethod_FieldNumber_RequestTypeURL = 2,
- GPBMethod_FieldNumber_RequestStreaming = 3,
- GPBMethod_FieldNumber_ResponseTypeURL = 4,
- GPBMethod_FieldNumber_ResponseStreaming = 5,
- GPBMethod_FieldNumber_OptionsArray = 6,
- GPBMethod_FieldNumber_Syntax = 7,
-};
-
-/**
- * Method represents a method of an api.
- **/
-@interface GPBMethod : GPBMessage
-
-/** The simple name of this method. */
-@property(nonatomic, readwrite, copy, null_resettable) NSString *name;
-
-/** A URL of the input message type. */
-@property(nonatomic, readwrite, copy, null_resettable) NSString *requestTypeURL;
-
-/** If true, the request is streamed. */
-@property(nonatomic, readwrite) BOOL requestStreaming;
-
-/** The URL of the output message type. */
-@property(nonatomic, readwrite, copy, null_resettable) NSString *responseTypeURL;
-
-/** If true, the response is streamed. */
-@property(nonatomic, readwrite) BOOL responseStreaming;
-
-/** Any metadata attached to the method. */
-@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<GPBOption*> *optionsArray;
-/** The number of items in @c optionsArray without causing the array to be created. */
-@property(nonatomic, readonly) NSUInteger optionsArray_Count;
-
-/** The source syntax of this method. */
-@property(nonatomic, readwrite) enum GPBSyntax syntax;
-
-@end
-
-/**
- * Fetches the raw value of a @c GPBMethod's @c syntax property, even
- * if the value was not defined by the enum at the time the code was generated.
- **/
-int32_t GPBMethod_Syntax_RawValue(GPBMethod *message);
-/**
- * Sets the raw value of an @c GPBMethod's @c syntax property, allowing
- * it to be set to a value that was not defined by the enum at the time the code
- * was generated.
- **/
-void SetGPBMethod_Syntax_RawValue(GPBMethod *message, int32_t value);
-
-#pragma mark - GPBMixin
-
-typedef GPB_ENUM(GPBMixin_FieldNumber) {
- GPBMixin_FieldNumber_Name = 1,
- GPBMixin_FieldNumber_Root = 2,
-};
-
-/**
- * Declares an API to be included in this API. The including API must
- * redeclare all the methods from the included API, but documentation
- * and options are inherited as follows:
- *
- * - If after comment and whitespace stripping, the documentation
- * string of the redeclared method is empty, it will be inherited
- * from the original method.
- *
- * - Each annotation belonging to the service config (http,
- * visibility) which is not set in the redeclared method will be
- * inherited.
- *
- * - If an http annotation is inherited, the path pattern will be
- * modified as follows. Any version prefix will be replaced by the
- * version of the including API plus the [root][] path if specified.
- *
- * Example of a simple mixin:
- *
- * package google.acl.v1;
- * service AccessControl {
- * // Get the underlying ACL object.
- * rpc GetAcl(GetAclRequest) returns (Acl) {
- * option (google.api.http).get = "/v1/{resource=**}:getAcl";
- * }
- * }
- *
- * package google.storage.v2;
- * service Storage {
- * rpc GetAcl(GetAclRequest) returns (Acl);
- *
- * // Get a data record.
- * rpc GetData(GetDataRequest) returns (Data) {
- * option (google.api.http).get = "/v2/{resource=**}";
- * }
- * }
- *
- * Example of a mixin configuration:
- *
- * apis:
- * - name: google.storage.v2.Storage
- * mixins:
- * - name: google.acl.v1.AccessControl
- *
- * The mixin construct implies that all methods in `AccessControl` are
- * also declared with same name and request/response types in
- * `Storage`. A documentation generator or annotation processor will
- * see the effective `Storage.GetAcl` method after inherting
- * documentation and annotations as follows:
- *
- * service Storage {
- * // Get the underlying ACL object.
- * rpc GetAcl(GetAclRequest) returns (Acl) {
- * option (google.api.http).get = "/v2/{resource=**}:getAcl";
- * }
- * ...
- * }
- *
- * Note how the version in the path pattern changed from `v1` to `v2`.
- *
- * If the `root` field in the mixin is specified, it should be a
- * relative path under which inherited HTTP paths are placed. Example:
- *
- * apis:
- * - name: google.storage.v2.Storage
- * mixins:
- * - name: google.acl.v1.AccessControl
- * root: acls
- *
- * This implies the following inherited HTTP annotation:
- *
- * service Storage {
- * // Get the underlying ACL object.
- * rpc GetAcl(GetAclRequest) returns (Acl) {
- * option (google.api.http).get = "/v2/acls/{resource=**}:getAcl";
- * }
- * ...
- * }
- **/
-@interface GPBMixin : GPBMessage
-
-/** The fully qualified name of the API which is included. */
-@property(nonatomic, readwrite, copy, null_resettable) NSString *name;
-
-/**
- * If non-empty specifies a path under which inherited HTTP paths
- * are rooted.
- **/
-@property(nonatomic, readwrite, copy, null_resettable) NSString *root;
-
-@end
-
-NS_ASSUME_NONNULL_END
-
-CF_EXTERN_C_END
-
-#pragma clang diagnostic pop
-
-// @@protoc_insertion_point(global_scope)
diff --git a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Api.pbobjc.m b/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Api.pbobjc.m
deleted file mode 100644
index 58b47157..00000000
--- a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Api.pbobjc.m
+++ /dev/null
@@ -1,356 +0,0 @@
-// Generated by the protocol buffer compiler. DO NOT EDIT!
-// source: google/protobuf/api.proto
-
-// This CPP symbol can be defined to use imports that match up to the framework
-// imports needed when using CocoaPods.
-#if !defined(GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS)
- #define GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS 0
-#endif
-
-#if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS
- #import <Protobuf/GPBProtocolBuffers_RuntimeSupport.h>
-#else
- #import "GPBProtocolBuffers_RuntimeSupport.h"
-#endif
-
-#if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS
- #import <Protobuf/Api.pbobjc.h>
- #import <Protobuf/SourceContext.pbobjc.h>
- #import <Protobuf/Type.pbobjc.h>
-#else
- #import "google/protobuf/Api.pbobjc.h"
- #import "google/protobuf/SourceContext.pbobjc.h"
- #import "google/protobuf/Type.pbobjc.h"
-#endif
-// @@protoc_insertion_point(imports)
-
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wdeprecated-declarations"
-
-#pragma mark - GPBApiRoot
-
-@implementation GPBApiRoot
-
-// No extensions in the file and none of the imports (direct or indirect)
-// defined extensions, so no need to generate +extensionRegistry.
-
-@end
-
-#pragma mark - GPBApiRoot_FileDescriptor
-
-static GPBFileDescriptor *GPBApiRoot_FileDescriptor(void) {
- // This is called by +initialize so there is no need to worry
- // about thread safety of the singleton.
- static GPBFileDescriptor *descriptor = NULL;
- if (!descriptor) {
- GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
- descriptor = [[GPBFileDescriptor alloc] initWithPackage:@"google.protobuf"
- objcPrefix:@"GPB"
- syntax:GPBFileSyntaxProto3];
- }
- return descriptor;
-}
-
-#pragma mark - GPBApi
-
-@implementation GPBApi
-
-@dynamic name;
-@dynamic methodsArray, methodsArray_Count;
-@dynamic optionsArray, optionsArray_Count;
-@dynamic version;
-@dynamic hasSourceContext, sourceContext;
-@dynamic mixinsArray, mixinsArray_Count;
-@dynamic syntax;
-
-typedef struct GPBApi__storage_ {
- uint32_t _has_storage_[1];
- GPBSyntax syntax;
- NSString *name;
- NSMutableArray *methodsArray;
- NSMutableArray *optionsArray;
- NSString *version;
- GPBSourceContext *sourceContext;
- NSMutableArray *mixinsArray;
-} GPBApi__storage_;
-
-// This method is threadsafe because it is initially called
-// in +initialize for each subclass.
-+ (GPBDescriptor *)descriptor {
- static GPBDescriptor *descriptor = nil;
- if (!descriptor) {
- static GPBMessageFieldDescription fields[] = {
- {
- .name = "name",
- .dataTypeSpecific.className = NULL,
- .number = GPBApi_FieldNumber_Name,
- .hasIndex = 0,
- .offset = (uint32_t)offsetof(GPBApi__storage_, name),
- .flags = GPBFieldOptional,
- .dataType = GPBDataTypeString,
- },
- {
- .name = "methodsArray",
- .dataTypeSpecific.className = GPBStringifySymbol(GPBMethod),
- .number = GPBApi_FieldNumber_MethodsArray,
- .hasIndex = GPBNoHasBit,
- .offset = (uint32_t)offsetof(GPBApi__storage_, methodsArray),
- .flags = GPBFieldRepeated,
- .dataType = GPBDataTypeMessage,
- },
- {
- .name = "optionsArray",
- .dataTypeSpecific.className = GPBStringifySymbol(GPBOption),
- .number = GPBApi_FieldNumber_OptionsArray,
- .hasIndex = GPBNoHasBit,
- .offset = (uint32_t)offsetof(GPBApi__storage_, optionsArray),
- .flags = GPBFieldRepeated,
- .dataType = GPBDataTypeMessage,
- },
- {
- .name = "version",
- .dataTypeSpecific.className = NULL,
- .number = GPBApi_FieldNumber_Version,
- .hasIndex = 1,
- .offset = (uint32_t)offsetof(GPBApi__storage_, version),
- .flags = GPBFieldOptional,
- .dataType = GPBDataTypeString,
- },
- {
- .name = "sourceContext",
- .dataTypeSpecific.className = GPBStringifySymbol(GPBSourceContext),
- .number = GPBApi_FieldNumber_SourceContext,
- .hasIndex = 2,
- .offset = (uint32_t)offsetof(GPBApi__storage_, sourceContext),
- .flags = GPBFieldOptional,
- .dataType = GPBDataTypeMessage,
- },
- {
- .name = "mixinsArray",
- .dataTypeSpecific.className = GPBStringifySymbol(GPBMixin),
- .number = GPBApi_FieldNumber_MixinsArray,
- .hasIndex = GPBNoHasBit,
- .offset = (uint32_t)offsetof(GPBApi__storage_, mixinsArray),
- .flags = GPBFieldRepeated,
- .dataType = GPBDataTypeMessage,
- },
- {
- .name = "syntax",
- .dataTypeSpecific.enumDescFunc = GPBSyntax_EnumDescriptor,
- .number = GPBApi_FieldNumber_Syntax,
- .hasIndex = 3,
- .offset = (uint32_t)offsetof(GPBApi__storage_, syntax),
- .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasEnumDescriptor),
- .dataType = GPBDataTypeEnum,
- },
- };
- GPBDescriptor *localDescriptor =
- [GPBDescriptor allocDescriptorForClass:[GPBApi class]
- rootClass:[GPBApiRoot class]
- file:GPBApiRoot_FileDescriptor()
- fields:fields
- fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
- storageSize:sizeof(GPBApi__storage_)
- flags:GPBDescriptorInitializationFlag_None];
- NSAssert(descriptor == nil, @"Startup recursed!");
- descriptor = localDescriptor;
- }
- return descriptor;
-}
-
-@end
-
-int32_t GPBApi_Syntax_RawValue(GPBApi *message) {
- GPBDescriptor *descriptor = [GPBApi descriptor];
- GPBFieldDescriptor *field = [descriptor fieldWithNumber:GPBApi_FieldNumber_Syntax];
- return GPBGetMessageInt32Field(message, field);
-}
-
-void SetGPBApi_Syntax_RawValue(GPBApi *message, int32_t value) {
- GPBDescriptor *descriptor = [GPBApi descriptor];
- GPBFieldDescriptor *field = [descriptor fieldWithNumber:GPBApi_FieldNumber_Syntax];
- GPBSetInt32IvarWithFieldInternal(message, field, value, descriptor.file.syntax);
-}
-
-#pragma mark - GPBMethod
-
-@implementation GPBMethod
-
-@dynamic name;
-@dynamic requestTypeURL;
-@dynamic requestStreaming;
-@dynamic responseTypeURL;
-@dynamic responseStreaming;
-@dynamic optionsArray, optionsArray_Count;
-@dynamic syntax;
-
-typedef struct GPBMethod__storage_ {
- uint32_t _has_storage_[1];
- GPBSyntax syntax;
- NSString *name;
- NSString *requestTypeURL;
- NSString *responseTypeURL;
- NSMutableArray *optionsArray;
-} GPBMethod__storage_;
-
-// This method is threadsafe because it is initially called
-// in +initialize for each subclass.
-+ (GPBDescriptor *)descriptor {
- static GPBDescriptor *descriptor = nil;
- if (!descriptor) {
- static GPBMessageFieldDescription fields[] = {
- {
- .name = "name",
- .dataTypeSpecific.className = NULL,
- .number = GPBMethod_FieldNumber_Name,
- .hasIndex = 0,
- .offset = (uint32_t)offsetof(GPBMethod__storage_, name),
- .flags = GPBFieldOptional,
- .dataType = GPBDataTypeString,
- },
- {
- .name = "requestTypeURL",
- .dataTypeSpecific.className = NULL,
- .number = GPBMethod_FieldNumber_RequestTypeURL,
- .hasIndex = 1,
- .offset = (uint32_t)offsetof(GPBMethod__storage_, requestTypeURL),
- .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldTextFormatNameCustom),
- .dataType = GPBDataTypeString,
- },
- {
- .name = "requestStreaming",
- .dataTypeSpecific.className = NULL,
- .number = GPBMethod_FieldNumber_RequestStreaming,
- .hasIndex = 2,
- .offset = 3, // Stored in _has_storage_ to save space.
- .flags = GPBFieldOptional,
- .dataType = GPBDataTypeBool,
- },
- {
- .name = "responseTypeURL",
- .dataTypeSpecific.className = NULL,
- .number = GPBMethod_FieldNumber_ResponseTypeURL,
- .hasIndex = 4,
- .offset = (uint32_t)offsetof(GPBMethod__storage_, responseTypeURL),
- .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldTextFormatNameCustom),
- .dataType = GPBDataTypeString,
- },
- {
- .name = "responseStreaming",
- .dataTypeSpecific.className = NULL,
- .number = GPBMethod_FieldNumber_ResponseStreaming,
- .hasIndex = 5,
- .offset = 6, // Stored in _has_storage_ to save space.
- .flags = GPBFieldOptional,
- .dataType = GPBDataTypeBool,
- },
- {
- .name = "optionsArray",
- .dataTypeSpecific.className = GPBStringifySymbol(GPBOption),
- .number = GPBMethod_FieldNumber_OptionsArray,
- .hasIndex = GPBNoHasBit,
- .offset = (uint32_t)offsetof(GPBMethod__storage_, optionsArray),
- .flags = GPBFieldRepeated,
- .dataType = GPBDataTypeMessage,
- },
- {
- .name = "syntax",
- .dataTypeSpecific.enumDescFunc = GPBSyntax_EnumDescriptor,
- .number = GPBMethod_FieldNumber_Syntax,
- .hasIndex = 7,
- .offset = (uint32_t)offsetof(GPBMethod__storage_, syntax),
- .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasEnumDescriptor),
- .dataType = GPBDataTypeEnum,
- },
- };
- GPBDescriptor *localDescriptor =
- [GPBDescriptor allocDescriptorForClass:[GPBMethod class]
- rootClass:[GPBApiRoot class]
- file:GPBApiRoot_FileDescriptor()
- fields:fields
- fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
- storageSize:sizeof(GPBMethod__storage_)
- flags:GPBDescriptorInitializationFlag_None];
-#if !GPBOBJC_SKIP_MESSAGE_TEXTFORMAT_EXTRAS
- static const char *extraTextFormatInfo =
- "\002\002\007\244\241!!\000\004\010\244\241!!\000";
- [localDescriptor setupExtraTextInfo:extraTextFormatInfo];
-#endif // !GPBOBJC_SKIP_MESSAGE_TEXTFORMAT_EXTRAS
- NSAssert(descriptor == nil, @"Startup recursed!");
- descriptor = localDescriptor;
- }
- return descriptor;
-}
-
-@end
-
-int32_t GPBMethod_Syntax_RawValue(GPBMethod *message) {
- GPBDescriptor *descriptor = [GPBMethod descriptor];
- GPBFieldDescriptor *field = [descriptor fieldWithNumber:GPBMethod_FieldNumber_Syntax];
- return GPBGetMessageInt32Field(message, field);
-}
-
-void SetGPBMethod_Syntax_RawValue(GPBMethod *message, int32_t value) {
- GPBDescriptor *descriptor = [GPBMethod descriptor];
- GPBFieldDescriptor *field = [descriptor fieldWithNumber:GPBMethod_FieldNumber_Syntax];
- GPBSetInt32IvarWithFieldInternal(message, field, value, descriptor.file.syntax);
-}
-
-#pragma mark - GPBMixin
-
-@implementation GPBMixin
-
-@dynamic name;
-@dynamic root;
-
-typedef struct GPBMixin__storage_ {
- uint32_t _has_storage_[1];
- NSString *name;
- NSString *root;
-} GPBMixin__storage_;
-
-// This method is threadsafe because it is initially called
-// in +initialize for each subclass.
-+ (GPBDescriptor *)descriptor {
- static GPBDescriptor *descriptor = nil;
- if (!descriptor) {
- static GPBMessageFieldDescription fields[] = {
- {
- .name = "name",
- .dataTypeSpecific.className = NULL,
- .number = GPBMixin_FieldNumber_Name,
- .hasIndex = 0,
- .offset = (uint32_t)offsetof(GPBMixin__storage_, name),
- .flags = GPBFieldOptional,
- .dataType = GPBDataTypeString,
- },
- {
- .name = "root",
- .dataTypeSpecific.className = NULL,
- .number = GPBMixin_FieldNumber_Root,
- .hasIndex = 1,
- .offset = (uint32_t)offsetof(GPBMixin__storage_, root),
- .flags = GPBFieldOptional,
- .dataType = GPBDataTypeString,
- },
- };
- GPBDescriptor *localDescriptor =
- [GPBDescriptor allocDescriptorForClass:[GPBMixin class]
- rootClass:[GPBApiRoot class]
- file:GPBApiRoot_FileDescriptor()
- fields:fields
- fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
- storageSize:sizeof(GPBMixin__storage_)
- flags:GPBDescriptorInitializationFlag_None];
- NSAssert(descriptor == nil, @"Startup recursed!");
- descriptor = localDescriptor;
- }
- return descriptor;
-}
-
-@end
-
-
-#pragma clang diagnostic pop
-
-// @@protoc_insertion_point(global_scope)
diff --git a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Duration.pbobjc.h b/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Duration.pbobjc.h
deleted file mode 100644
index d9a388ac..00000000
--- a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Duration.pbobjc.h
+++ /dev/null
@@ -1,141 +0,0 @@
-// Generated by the protocol buffer compiler. DO NOT EDIT!
-// source: google/protobuf/duration.proto
-
-// This CPP symbol can be defined to use imports that match up to the framework
-// imports needed when using CocoaPods.
-#if !defined(GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS)
- #define GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS 0
-#endif
-
-#if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS
- #import <Protobuf/GPBProtocolBuffers.h>
-#else
- #import "GPBProtocolBuffers.h"
-#endif
-
-#if GOOGLE_PROTOBUF_OBJC_VERSION < 30002
-#error This file was generated by a newer version of protoc which is incompatible with your Protocol Buffer library sources.
-#endif
-#if 30002 < GOOGLE_PROTOBUF_OBJC_MIN_SUPPORTED_VERSION
-#error This file was generated by an older version of protoc which is incompatible with your Protocol Buffer library sources.
-#endif
-
-// @@protoc_insertion_point(imports)
-
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wdeprecated-declarations"
-
-CF_EXTERN_C_BEGIN
-
-NS_ASSUME_NONNULL_BEGIN
-
-#pragma mark - GPBDurationRoot
-
-/**
- * Exposes the extension registry for this file.
- *
- * The base class provides:
- * @code
- * + (GPBExtensionRegistry *)extensionRegistry;
- * @endcode
- * which is a @c GPBExtensionRegistry that includes all the extensions defined by
- * this file and all files that it depends on.
- **/
-@interface GPBDurationRoot : GPBRootObject
-@end
-
-#pragma mark - GPBDuration
-
-typedef GPB_ENUM(GPBDuration_FieldNumber) {
- GPBDuration_FieldNumber_Seconds = 1,
- GPBDuration_FieldNumber_Nanos = 2,
-};
-
-/**
- * A Duration represents a signed, fixed-length span of time represented
- * as a count of seconds and fractions of seconds at nanosecond
- * resolution. It is independent of any calendar and concepts like "day"
- * or "month". It is related to Timestamp in that the difference between
- * two Timestamp values is a Duration and it can be added or subtracted
- * from a Timestamp. Range is approximately +-10,000 years.
- *
- * # Examples
- *
- * Example 1: Compute Duration from two Timestamps in pseudo code.
- *
- * Timestamp start = ...;
- * Timestamp end = ...;
- * Duration duration = ...;
- *
- * duration.seconds = end.seconds - start.seconds;
- * duration.nanos = end.nanos - start.nanos;
- *
- * if (duration.seconds < 0 && duration.nanos > 0) {
- * duration.seconds += 1;
- * duration.nanos -= 1000000000;
- * } else if (durations.seconds > 0 && duration.nanos < 0) {
- * duration.seconds -= 1;
- * duration.nanos += 1000000000;
- * }
- *
- * Example 2: Compute Timestamp from Timestamp + Duration in pseudo code.
- *
- * Timestamp start = ...;
- * Duration duration = ...;
- * Timestamp end = ...;
- *
- * end.seconds = start.seconds + duration.seconds;
- * end.nanos = start.nanos + duration.nanos;
- *
- * if (end.nanos < 0) {
- * end.seconds -= 1;
- * end.nanos += 1000000000;
- * } else if (end.nanos >= 1000000000) {
- * end.seconds += 1;
- * end.nanos -= 1000000000;
- * }
- *
- * Example 3: Compute Duration from datetime.timedelta in Python.
- *
- * td = datetime.timedelta(days=3, minutes=10)
- * duration = Duration()
- * duration.FromTimedelta(td)
- *
- * # JSON Mapping
- *
- * In JSON format, the Duration type is encoded as a string rather than an
- * object, where the string ends in the suffix "s" (indicating seconds) and
- * is preceded by the number of seconds, with nanoseconds expressed as
- * fractional seconds. For example, 3 seconds with 0 nanoseconds should be
- * encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should
- * be expressed in JSON format as "3.000000001s", and 3 seconds and 1
- * microsecond should be expressed in JSON format as "3.000001s".
- **/
-@interface GPBDuration : GPBMessage
-
-/**
- * Signed seconds of the span of time. Must be from -315,576,000,000
- * to +315,576,000,000 inclusive. Note: these bounds are computed from:
- * 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
- **/
-@property(nonatomic, readwrite) int64_t seconds;
-
-/**
- * Signed fractions of a second at nanosecond resolution of the span
- * of time. Durations less than one second are represented with a 0
- * `seconds` field and a positive or negative `nanos` field. For durations
- * of one second or more, a non-zero value for the `nanos` field must be
- * of the same sign as the `seconds` field. Must be from -999,999,999
- * to +999,999,999 inclusive.
- **/
-@property(nonatomic, readwrite) int32_t nanos;
-
-@end
-
-NS_ASSUME_NONNULL_END
-
-CF_EXTERN_C_END
-
-#pragma clang diagnostic pop
-
-// @@protoc_insertion_point(global_scope)
diff --git a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Duration.pbobjc.m b/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Duration.pbobjc.m
deleted file mode 100644
index bafb64a0..00000000
--- a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Duration.pbobjc.m
+++ /dev/null
@@ -1,107 +0,0 @@
-// Generated by the protocol buffer compiler. DO NOT EDIT!
-// source: google/protobuf/duration.proto
-
-// This CPP symbol can be defined to use imports that match up to the framework
-// imports needed when using CocoaPods.
-#if !defined(GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS)
- #define GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS 0
-#endif
-
-#if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS
- #import <Protobuf/GPBProtocolBuffers_RuntimeSupport.h>
-#else
- #import "GPBProtocolBuffers_RuntimeSupport.h"
-#endif
-
-#if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS
- #import <Protobuf/Duration.pbobjc.h>
-#else
- #import "google/protobuf/Duration.pbobjc.h"
-#endif
-// @@protoc_insertion_point(imports)
-
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wdeprecated-declarations"
-
-#pragma mark - GPBDurationRoot
-
-@implementation GPBDurationRoot
-
-// No extensions in the file and no imports, so no need to generate
-// +extensionRegistry.
-
-@end
-
-#pragma mark - GPBDurationRoot_FileDescriptor
-
-static GPBFileDescriptor *GPBDurationRoot_FileDescriptor(void) {
- // This is called by +initialize so there is no need to worry
- // about thread safety of the singleton.
- static GPBFileDescriptor *descriptor = NULL;
- if (!descriptor) {
- GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
- descriptor = [[GPBFileDescriptor alloc] initWithPackage:@"google.protobuf"
- objcPrefix:@"GPB"
- syntax:GPBFileSyntaxProto3];
- }
- return descriptor;
-}
-
-#pragma mark - GPBDuration
-
-@implementation GPBDuration
-
-@dynamic seconds;
-@dynamic nanos;
-
-typedef struct GPBDuration__storage_ {
- uint32_t _has_storage_[1];
- int32_t nanos;
- int64_t seconds;
-} GPBDuration__storage_;
-
-// This method is threadsafe because it is initially called
-// in +initialize for each subclass.
-+ (GPBDescriptor *)descriptor {
- static GPBDescriptor *descriptor = nil;
- if (!descriptor) {
- static GPBMessageFieldDescription fields[] = {
- {
- .name = "seconds",
- .dataTypeSpecific.className = NULL,
- .number = GPBDuration_FieldNumber_Seconds,
- .hasIndex = 0,
- .offset = (uint32_t)offsetof(GPBDuration__storage_, seconds),
- .flags = GPBFieldOptional,
- .dataType = GPBDataTypeInt64,
- },
- {
- .name = "nanos",
- .dataTypeSpecific.className = NULL,
- .number = GPBDuration_FieldNumber_Nanos,
- .hasIndex = 1,
- .offset = (uint32_t)offsetof(GPBDuration__storage_, nanos),
- .flags = GPBFieldOptional,
- .dataType = GPBDataTypeInt32,
- },
- };
- GPBDescriptor *localDescriptor =
- [GPBDescriptor allocDescriptorForClass:[GPBDuration class]
- rootClass:[GPBDurationRoot class]
- file:GPBDurationRoot_FileDescriptor()
- fields:fields
- fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
- storageSize:sizeof(GPBDuration__storage_)
- flags:GPBDescriptorInitializationFlag_None];
- NSAssert(descriptor == nil, @"Startup recursed!");
- descriptor = localDescriptor;
- }
- return descriptor;
-}
-
-@end
-
-
-#pragma clang diagnostic pop
-
-// @@protoc_insertion_point(global_scope)
diff --git a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Empty.pbobjc.h b/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Empty.pbobjc.h
deleted file mode 100644
index bd49cfdb..00000000
--- a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Empty.pbobjc.h
+++ /dev/null
@@ -1,70 +0,0 @@
-// Generated by the protocol buffer compiler. DO NOT EDIT!
-// source: google/protobuf/empty.proto
-
-// This CPP symbol can be defined to use imports that match up to the framework
-// imports needed when using CocoaPods.
-#if !defined(GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS)
- #define GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS 0
-#endif
-
-#if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS
- #import <Protobuf/GPBProtocolBuffers.h>
-#else
- #import "GPBProtocolBuffers.h"
-#endif
-
-#if GOOGLE_PROTOBUF_OBJC_VERSION < 30002
-#error This file was generated by a newer version of protoc which is incompatible with your Protocol Buffer library sources.
-#endif
-#if 30002 < GOOGLE_PROTOBUF_OBJC_MIN_SUPPORTED_VERSION
-#error This file was generated by an older version of protoc which is incompatible with your Protocol Buffer library sources.
-#endif
-
-// @@protoc_insertion_point(imports)
-
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wdeprecated-declarations"
-
-CF_EXTERN_C_BEGIN
-
-NS_ASSUME_NONNULL_BEGIN
-
-#pragma mark - GPBEmptyRoot
-
-/**
- * Exposes the extension registry for this file.
- *
- * The base class provides:
- * @code
- * + (GPBExtensionRegistry *)extensionRegistry;
- * @endcode
- * which is a @c GPBExtensionRegistry that includes all the extensions defined by
- * this file and all files that it depends on.
- **/
-@interface GPBEmptyRoot : GPBRootObject
-@end
-
-#pragma mark - GPBEmpty
-
-/**
- * A generic empty message that you can re-use to avoid defining duplicated
- * empty messages in your APIs. A typical example is to use it as the request
- * or the response type of an API method. For instance:
- *
- * service Foo {
- * rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
- * }
- *
- * The JSON representation for `Empty` is empty JSON object `{}`.
- **/
-@interface GPBEmpty : GPBMessage
-
-@end
-
-NS_ASSUME_NONNULL_END
-
-CF_EXTERN_C_END
-
-#pragma clang diagnostic pop
-
-// @@protoc_insertion_point(global_scope)
diff --git a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Empty.pbobjc.m b/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Empty.pbobjc.m
deleted file mode 100644
index 506b500e..00000000
--- a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Empty.pbobjc.m
+++ /dev/null
@@ -1,83 +0,0 @@
-// Generated by the protocol buffer compiler. DO NOT EDIT!
-// source: google/protobuf/empty.proto
-
-// This CPP symbol can be defined to use imports that match up to the framework
-// imports needed when using CocoaPods.
-#if !defined(GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS)
- #define GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS 0
-#endif
-
-#if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS
- #import <Protobuf/GPBProtocolBuffers_RuntimeSupport.h>
-#else
- #import "GPBProtocolBuffers_RuntimeSupport.h"
-#endif
-
-#if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS
- #import <Protobuf/Empty.pbobjc.h>
-#else
- #import "google/protobuf/Empty.pbobjc.h"
-#endif
-// @@protoc_insertion_point(imports)
-
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wdeprecated-declarations"
-
-#pragma mark - GPBEmptyRoot
-
-@implementation GPBEmptyRoot
-
-// No extensions in the file and no imports, so no need to generate
-// +extensionRegistry.
-
-@end
-
-#pragma mark - GPBEmptyRoot_FileDescriptor
-
-static GPBFileDescriptor *GPBEmptyRoot_FileDescriptor(void) {
- // This is called by +initialize so there is no need to worry
- // about thread safety of the singleton.
- static GPBFileDescriptor *descriptor = NULL;
- if (!descriptor) {
- GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
- descriptor = [[GPBFileDescriptor alloc] initWithPackage:@"google.protobuf"
- objcPrefix:@"GPB"
- syntax:GPBFileSyntaxProto3];
- }
- return descriptor;
-}
-
-#pragma mark - GPBEmpty
-
-@implementation GPBEmpty
-
-
-typedef struct GPBEmpty__storage_ {
- uint32_t _has_storage_[1];
-} GPBEmpty__storage_;
-
-// This method is threadsafe because it is initially called
-// in +initialize for each subclass.
-+ (GPBDescriptor *)descriptor {
- static GPBDescriptor *descriptor = nil;
- if (!descriptor) {
- GPBDescriptor *localDescriptor =
- [GPBDescriptor allocDescriptorForClass:[GPBEmpty class]
- rootClass:[GPBEmptyRoot class]
- file:GPBEmptyRoot_FileDescriptor()
- fields:NULL
- fieldCount:0
- storageSize:sizeof(GPBEmpty__storage_)
- flags:GPBDescriptorInitializationFlag_None];
- NSAssert(descriptor == nil, @"Startup recursed!");
- descriptor = localDescriptor;
- }
- return descriptor;
-}
-
-@end
-
-
-#pragma clang diagnostic pop
-
-// @@protoc_insertion_point(global_scope)
diff --git a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/FieldMask.pbobjc.h b/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/FieldMask.pbobjc.h
deleted file mode 100644
index 07e60818..00000000
--- a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/FieldMask.pbobjc.h
+++ /dev/null
@@ -1,271 +0,0 @@
-// Generated by the protocol buffer compiler. DO NOT EDIT!
-// source: google/protobuf/field_mask.proto
-
-// This CPP symbol can be defined to use imports that match up to the framework
-// imports needed when using CocoaPods.
-#if !defined(GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS)
- #define GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS 0
-#endif
-
-#if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS
- #import <Protobuf/GPBProtocolBuffers.h>
-#else
- #import "GPBProtocolBuffers.h"
-#endif
-
-#if GOOGLE_PROTOBUF_OBJC_VERSION < 30002
-#error This file was generated by a newer version of protoc which is incompatible with your Protocol Buffer library sources.
-#endif
-#if 30002 < GOOGLE_PROTOBUF_OBJC_MIN_SUPPORTED_VERSION
-#error This file was generated by an older version of protoc which is incompatible with your Protocol Buffer library sources.
-#endif
-
-// @@protoc_insertion_point(imports)
-
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wdeprecated-declarations"
-
-CF_EXTERN_C_BEGIN
-
-NS_ASSUME_NONNULL_BEGIN
-
-#pragma mark - GPBFieldMaskRoot
-
-/**
- * Exposes the extension registry for this file.
- *
- * The base class provides:
- * @code
- * + (GPBExtensionRegistry *)extensionRegistry;
- * @endcode
- * which is a @c GPBExtensionRegistry that includes all the extensions defined by
- * this file and all files that it depends on.
- **/
-@interface GPBFieldMaskRoot : GPBRootObject
-@end
-
-#pragma mark - GPBFieldMask
-
-typedef GPB_ENUM(GPBFieldMask_FieldNumber) {
- GPBFieldMask_FieldNumber_PathsArray = 1,
-};
-
-/**
- * `FieldMask` represents a set of symbolic field paths, for example:
- *
- * paths: "f.a"
- * paths: "f.b.d"
- *
- * Here `f` represents a field in some root message, `a` and `b`
- * fields in the message found in `f`, and `d` a field found in the
- * message in `f.b`.
- *
- * Field masks are used to specify a subset of fields that should be
- * returned by a get operation or modified by an update operation.
- * Field masks also have a custom JSON encoding (see below).
- *
- * # Field Masks in Projections
- *
- * When used in the context of a projection, a response message or
- * sub-message is filtered by the API to only contain those fields as
- * specified in the mask. For example, if the mask in the previous
- * example is applied to a response message as follows:
- *
- * f {
- * a : 22
- * b {
- * d : 1
- * x : 2
- * }
- * y : 13
- * }
- * z: 8
- *
- * The result will not contain specific values for fields x,y and z
- * (their value will be set to the default, and omitted in proto text
- * output):
- *
- *
- * f {
- * a : 22
- * b {
- * d : 1
- * }
- * }
- *
- * A repeated field is not allowed except at the last position of a
- * paths string.
- *
- * If a FieldMask object is not present in a get operation, the
- * operation applies to all fields (as if a FieldMask of all fields
- * had been specified).
- *
- * Note that a field mask does not necessarily apply to the
- * top-level response message. In case of a REST get operation, the
- * field mask applies directly to the response, but in case of a REST
- * list operation, the mask instead applies to each individual message
- * in the returned resource list. In case of a REST custom method,
- * other definitions may be used. Where the mask applies will be
- * clearly documented together with its declaration in the API. In
- * any case, the effect on the returned resource/resources is required
- * behavior for APIs.
- *
- * # Field Masks in Update Operations
- *
- * A field mask in update operations specifies which fields of the
- * targeted resource are going to be updated. The API is required
- * to only change the values of the fields as specified in the mask
- * and leave the others untouched. If a resource is passed in to
- * describe the updated values, the API ignores the values of all
- * fields not covered by the mask.
- *
- * If a repeated field is specified for an update operation, the existing
- * repeated values in the target resource will be overwritten by the new values.
- * Note that a repeated field is only allowed in the last position of a `paths`
- * string.
- *
- * If a sub-message is specified in the last position of the field mask for an
- * update operation, then the existing sub-message in the target resource is
- * overwritten. Given the target message:
- *
- * f {
- * b {
- * d : 1
- * x : 2
- * }
- * c : 1
- * }
- *
- * And an update message:
- *
- * f {
- * b {
- * d : 10
- * }
- * }
- *
- * then if the field mask is:
- *
- * paths: "f.b"
- *
- * then the result will be:
- *
- * f {
- * b {
- * d : 10
- * }
- * c : 1
- * }
- *
- * However, if the update mask was:
- *
- * paths: "f.b.d"
- *
- * then the result would be:
- *
- * f {
- * b {
- * d : 10
- * x : 2
- * }
- * c : 1
- * }
- *
- * In order to reset a field's value to the default, the field must
- * be in the mask and set to the default value in the provided resource.
- * Hence, in order to reset all fields of a resource, provide a default
- * instance of the resource and set all fields in the mask, or do
- * not provide a mask as described below.
- *
- * If a field mask is not present on update, the operation applies to
- * all fields (as if a field mask of all fields has been specified).
- * Note that in the presence of schema evolution, this may mean that
- * fields the client does not know and has therefore not filled into
- * the request will be reset to their default. If this is unwanted
- * behavior, a specific service may require a client to always specify
- * a field mask, producing an error if not.
- *
- * As with get operations, the location of the resource which
- * describes the updated values in the request message depends on the
- * operation kind. In any case, the effect of the field mask is
- * required to be honored by the API.
- *
- * ## Considerations for HTTP REST
- *
- * The HTTP kind of an update operation which uses a field mask must
- * be set to PATCH instead of PUT in order to satisfy HTTP semantics
- * (PUT must only be used for full updates).
- *
- * # JSON Encoding of Field Masks
- *
- * In JSON, a field mask is encoded as a single string where paths are
- * separated by a comma. Fields name in each path are converted
- * to/from lower-camel naming conventions.
- *
- * As an example, consider the following message declarations:
- *
- * message Profile {
- * User user = 1;
- * Photo photo = 2;
- * }
- * message User {
- * string display_name = 1;
- * string address = 2;
- * }
- *
- * In proto a field mask for `Profile` may look as such:
- *
- * mask {
- * paths: "user.display_name"
- * paths: "photo"
- * }
- *
- * In JSON, the same mask is represented as below:
- *
- * {
- * mask: "user.displayName,photo"
- * }
- *
- * # Field Masks and Oneof Fields
- *
- * Field masks treat fields in oneofs just as regular fields. Consider the
- * following message:
- *
- * message SampleMessage {
- * oneof test_oneof {
- * string name = 4;
- * SubMessage sub_message = 9;
- * }
- * }
- *
- * The field mask can be:
- *
- * mask {
- * paths: "name"
- * }
- *
- * Or:
- *
- * mask {
- * paths: "sub_message"
- * }
- *
- * Note that oneof type names ("test_oneof" in this case) cannot be used in
- * paths.
- **/
-@interface GPBFieldMask : GPBMessage
-
-/** The set of field mask paths. */
-@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<NSString*> *pathsArray;
-/** The number of items in @c pathsArray without causing the array to be created. */
-@property(nonatomic, readonly) NSUInteger pathsArray_Count;
-
-@end
-
-NS_ASSUME_NONNULL_END
-
-CF_EXTERN_C_END
-
-#pragma clang diagnostic pop
-
-// @@protoc_insertion_point(global_scope)
diff --git a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/FieldMask.pbobjc.m b/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/FieldMask.pbobjc.m
deleted file mode 100644
index b0915af4..00000000
--- a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/FieldMask.pbobjc.m
+++ /dev/null
@@ -1,96 +0,0 @@
-// Generated by the protocol buffer compiler. DO NOT EDIT!
-// source: google/protobuf/field_mask.proto
-
-// This CPP symbol can be defined to use imports that match up to the framework
-// imports needed when using CocoaPods.
-#if !defined(GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS)
- #define GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS 0
-#endif
-
-#if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS
- #import <Protobuf/GPBProtocolBuffers_RuntimeSupport.h>
-#else
- #import "GPBProtocolBuffers_RuntimeSupport.h"
-#endif
-
-#if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS
- #import <Protobuf/FieldMask.pbobjc.h>
-#else
- #import "google/protobuf/FieldMask.pbobjc.h"
-#endif
-// @@protoc_insertion_point(imports)
-
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wdeprecated-declarations"
-
-#pragma mark - GPBFieldMaskRoot
-
-@implementation GPBFieldMaskRoot
-
-// No extensions in the file and no imports, so no need to generate
-// +extensionRegistry.
-
-@end
-
-#pragma mark - GPBFieldMaskRoot_FileDescriptor
-
-static GPBFileDescriptor *GPBFieldMaskRoot_FileDescriptor(void) {
- // This is called by +initialize so there is no need to worry
- // about thread safety of the singleton.
- static GPBFileDescriptor *descriptor = NULL;
- if (!descriptor) {
- GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
- descriptor = [[GPBFileDescriptor alloc] initWithPackage:@"google.protobuf"
- objcPrefix:@"GPB"
- syntax:GPBFileSyntaxProto3];
- }
- return descriptor;
-}
-
-#pragma mark - GPBFieldMask
-
-@implementation GPBFieldMask
-
-@dynamic pathsArray, pathsArray_Count;
-
-typedef struct GPBFieldMask__storage_ {
- uint32_t _has_storage_[1];
- NSMutableArray *pathsArray;
-} GPBFieldMask__storage_;
-
-// This method is threadsafe because it is initially called
-// in +initialize for each subclass.
-+ (GPBDescriptor *)descriptor {
- static GPBDescriptor *descriptor = nil;
- if (!descriptor) {
- static GPBMessageFieldDescription fields[] = {
- {
- .name = "pathsArray",
- .dataTypeSpecific.className = NULL,
- .number = GPBFieldMask_FieldNumber_PathsArray,
- .hasIndex = GPBNoHasBit,
- .offset = (uint32_t)offsetof(GPBFieldMask__storage_, pathsArray),
- .flags = GPBFieldRepeated,
- .dataType = GPBDataTypeString,
- },
- };
- GPBDescriptor *localDescriptor =
- [GPBDescriptor allocDescriptorForClass:[GPBFieldMask class]
- rootClass:[GPBFieldMaskRoot class]
- file:GPBFieldMaskRoot_FileDescriptor()
- fields:fields
- fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
- storageSize:sizeof(GPBFieldMask__storage_)
- flags:GPBDescriptorInitializationFlag_None];
- NSAssert(descriptor == nil, @"Startup recursed!");
- descriptor = localDescriptor;
- }
- return descriptor;
-}
-
-@end
-
-
-#pragma clang diagnostic pop
-
-// @@protoc_insertion_point(global_scope)
diff --git a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/SourceContext.pbobjc.h b/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/SourceContext.pbobjc.h
deleted file mode 100644
index 799d190a..00000000
--- a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/SourceContext.pbobjc.h
+++ /dev/null
@@ -1,73 +0,0 @@
-// Generated by the protocol buffer compiler. DO NOT EDIT!
-// source: google/protobuf/source_context.proto
-
-// This CPP symbol can be defined to use imports that match up to the framework
-// imports needed when using CocoaPods.
-#if !defined(GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS)
- #define GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS 0
-#endif
-
-#if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS
- #import <Protobuf/GPBProtocolBuffers.h>
-#else
- #import "GPBProtocolBuffers.h"
-#endif
-
-#if GOOGLE_PROTOBUF_OBJC_VERSION < 30002
-#error This file was generated by a newer version of protoc which is incompatible with your Protocol Buffer library sources.
-#endif
-#if 30002 < GOOGLE_PROTOBUF_OBJC_MIN_SUPPORTED_VERSION
-#error This file was generated by an older version of protoc which is incompatible with your Protocol Buffer library sources.
-#endif
-
-// @@protoc_insertion_point(imports)
-
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wdeprecated-declarations"
-
-CF_EXTERN_C_BEGIN
-
-NS_ASSUME_NONNULL_BEGIN
-
-#pragma mark - GPBSourceContextRoot
-
-/**
- * Exposes the extension registry for this file.
- *
- * The base class provides:
- * @code
- * + (GPBExtensionRegistry *)extensionRegistry;
- * @endcode
- * which is a @c GPBExtensionRegistry that includes all the extensions defined by
- * this file and all files that it depends on.
- **/
-@interface GPBSourceContextRoot : GPBRootObject
-@end
-
-#pragma mark - GPBSourceContext
-
-typedef GPB_ENUM(GPBSourceContext_FieldNumber) {
- GPBSourceContext_FieldNumber_FileName = 1,
-};
-
-/**
- * `SourceContext` represents information about the source of a
- * protobuf element, like the file in which it is defined.
- **/
-@interface GPBSourceContext : GPBMessage
-
-/**
- * The path-qualified name of the .proto file that contained the associated
- * protobuf element. For example: `"google/protobuf/source_context.proto"`.
- **/
-@property(nonatomic, readwrite, copy, null_resettable) NSString *fileName;
-
-@end
-
-NS_ASSUME_NONNULL_END
-
-CF_EXTERN_C_END
-
-#pragma clang diagnostic pop
-
-// @@protoc_insertion_point(global_scope)
diff --git a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/SourceContext.pbobjc.m b/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/SourceContext.pbobjc.m
deleted file mode 100644
index 83bfa346..00000000
--- a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/SourceContext.pbobjc.m
+++ /dev/null
@@ -1,96 +0,0 @@
-// Generated by the protocol buffer compiler. DO NOT EDIT!
-// source: google/protobuf/source_context.proto
-
-// This CPP symbol can be defined to use imports that match up to the framework
-// imports needed when using CocoaPods.
-#if !defined(GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS)
- #define GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS 0
-#endif
-
-#if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS
- #import <Protobuf/GPBProtocolBuffers_RuntimeSupport.h>
-#else
- #import "GPBProtocolBuffers_RuntimeSupport.h"
-#endif
-
-#if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS
- #import <Protobuf/SourceContext.pbobjc.h>
-#else
- #import "google/protobuf/SourceContext.pbobjc.h"
-#endif
-// @@protoc_insertion_point(imports)
-
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wdeprecated-declarations"
-
-#pragma mark - GPBSourceContextRoot
-
-@implementation GPBSourceContextRoot
-
-// No extensions in the file and no imports, so no need to generate
-// +extensionRegistry.
-
-@end
-
-#pragma mark - GPBSourceContextRoot_FileDescriptor
-
-static GPBFileDescriptor *GPBSourceContextRoot_FileDescriptor(void) {
- // This is called by +initialize so there is no need to worry
- // about thread safety of the singleton.
- static GPBFileDescriptor *descriptor = NULL;
- if (!descriptor) {
- GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
- descriptor = [[GPBFileDescriptor alloc] initWithPackage:@"google.protobuf"
- objcPrefix:@"GPB"
- syntax:GPBFileSyntaxProto3];
- }
- return descriptor;
-}
-
-#pragma mark - GPBSourceContext
-
-@implementation GPBSourceContext
-
-@dynamic fileName;
-
-typedef struct GPBSourceContext__storage_ {
- uint32_t _has_storage_[1];
- NSString *fileName;
-} GPBSourceContext__storage_;
-
-// This method is threadsafe because it is initially called
-// in +initialize for each subclass.
-+ (GPBDescriptor *)descriptor {
- static GPBDescriptor *descriptor = nil;
- if (!descriptor) {
- static GPBMessageFieldDescription fields[] = {
- {
- .name = "fileName",
- .dataTypeSpecific.className = NULL,
- .number = GPBSourceContext_FieldNumber_FileName,
- .hasIndex = 0,
- .offset = (uint32_t)offsetof(GPBSourceContext__storage_, fileName),
- .flags = GPBFieldOptional,
- .dataType = GPBDataTypeString,
- },
- };
- GPBDescriptor *localDescriptor =
- [GPBDescriptor allocDescriptorForClass:[GPBSourceContext class]
- rootClass:[GPBSourceContextRoot class]
- file:GPBSourceContextRoot_FileDescriptor()
- fields:fields
- fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
- storageSize:sizeof(GPBSourceContext__storage_)
- flags:GPBDescriptorInitializationFlag_None];
- NSAssert(descriptor == nil, @"Startup recursed!");
- descriptor = localDescriptor;
- }
- return descriptor;
-}
-
-@end
-
-
-#pragma clang diagnostic pop
-
-// @@protoc_insertion_point(global_scope)
diff --git a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Struct.pbobjc.h b/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Struct.pbobjc.h
deleted file mode 100644
index 3fc80caa..00000000
--- a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Struct.pbobjc.h
+++ /dev/null
@@ -1,200 +0,0 @@
-// Generated by the protocol buffer compiler. DO NOT EDIT!
-// source: google/protobuf/struct.proto
-
-// This CPP symbol can be defined to use imports that match up to the framework
-// imports needed when using CocoaPods.
-#if !defined(GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS)
- #define GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS 0
-#endif
-
-#if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS
- #import <Protobuf/GPBProtocolBuffers.h>
-#else
- #import "GPBProtocolBuffers.h"
-#endif
-
-#if GOOGLE_PROTOBUF_OBJC_VERSION < 30002
-#error This file was generated by a newer version of protoc which is incompatible with your Protocol Buffer library sources.
-#endif
-#if 30002 < GOOGLE_PROTOBUF_OBJC_MIN_SUPPORTED_VERSION
-#error This file was generated by an older version of protoc which is incompatible with your Protocol Buffer library sources.
-#endif
-
-// @@protoc_insertion_point(imports)
-
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wdeprecated-declarations"
-
-CF_EXTERN_C_BEGIN
-
-@class GPBListValue;
-@class GPBStruct;
-@class GPBValue;
-
-NS_ASSUME_NONNULL_BEGIN
-
-#pragma mark - Enum GPBNullValue
-
-/**
- * `NullValue` is a singleton enumeration to represent the null value for the
- * `Value` type union.
- *
- * The JSON representation for `NullValue` is JSON `null`.
- **/
-typedef GPB_ENUM(GPBNullValue) {
- /**
- * Value used if any message's field encounters a value that is not defined
- * by this enum. The message will also have C functions to get/set the rawValue
- * of the field.
- **/
- GPBNullValue_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
- /** Null value. */
- GPBNullValue_NullValue = 0,
-};
-
-GPBEnumDescriptor *GPBNullValue_EnumDescriptor(void);
-
-/**
- * Checks to see if the given value is defined by the enum or was not known at
- * the time this source was generated.
- **/
-BOOL GPBNullValue_IsValidValue(int32_t value);
-
-#pragma mark - GPBStructRoot
-
-/**
- * Exposes the extension registry for this file.
- *
- * The base class provides:
- * @code
- * + (GPBExtensionRegistry *)extensionRegistry;
- * @endcode
- * which is a @c GPBExtensionRegistry that includes all the extensions defined by
- * this file and all files that it depends on.
- **/
-@interface GPBStructRoot : GPBRootObject
-@end
-
-#pragma mark - GPBStruct
-
-typedef GPB_ENUM(GPBStruct_FieldNumber) {
- GPBStruct_FieldNumber_Fields = 1,
-};
-
-/**
- * `Struct` represents a structured data value, consisting of fields
- * which map to dynamically typed values. In some languages, `Struct`
- * might be supported by a native representation. For example, in
- * scripting languages like JS a struct is represented as an
- * object. The details of that representation are described together
- * with the proto support for the language.
- *
- * The JSON representation for `Struct` is JSON object.
- **/
-@interface GPBStruct : GPBMessage
-
-/** Unordered map of dynamically typed values. */
-@property(nonatomic, readwrite, strong, null_resettable) NSMutableDictionary<NSString*, GPBValue*> *fields;
-/** The number of items in @c fields without causing the array to be created. */
-@property(nonatomic, readonly) NSUInteger fields_Count;
-
-@end
-
-#pragma mark - GPBValue
-
-typedef GPB_ENUM(GPBValue_FieldNumber) {
- GPBValue_FieldNumber_NullValue = 1,
- GPBValue_FieldNumber_NumberValue = 2,
- GPBValue_FieldNumber_StringValue = 3,
- GPBValue_FieldNumber_BoolValue = 4,
- GPBValue_FieldNumber_StructValue = 5,
- GPBValue_FieldNumber_ListValue = 6,
-};
-
-typedef GPB_ENUM(GPBValue_Kind_OneOfCase) {
- GPBValue_Kind_OneOfCase_GPBUnsetOneOfCase = 0,
- GPBValue_Kind_OneOfCase_NullValue = 1,
- GPBValue_Kind_OneOfCase_NumberValue = 2,
- GPBValue_Kind_OneOfCase_StringValue = 3,
- GPBValue_Kind_OneOfCase_BoolValue = 4,
- GPBValue_Kind_OneOfCase_StructValue = 5,
- GPBValue_Kind_OneOfCase_ListValue = 6,
-};
-
-/**
- * `Value` represents a dynamically typed value which can be either
- * null, a number, a string, a boolean, a recursive struct value, or a
- * list of values. A producer of value is expected to set one of that
- * variants, absence of any variant indicates an error.
- *
- * The JSON representation for `Value` is JSON value.
- **/
-@interface GPBValue : GPBMessage
-
-/** The kind of value. */
-@property(nonatomic, readonly) GPBValue_Kind_OneOfCase kindOneOfCase;
-
-/** Represents a null value. */
-@property(nonatomic, readwrite) GPBNullValue nullValue;
-
-/** Represents a double value. */
-@property(nonatomic, readwrite) double numberValue;
-
-/** Represents a string value. */
-@property(nonatomic, readwrite, copy, null_resettable) NSString *stringValue;
-
-/** Represents a boolean value. */
-@property(nonatomic, readwrite) BOOL boolValue;
-
-/** Represents a structured value. */
-@property(nonatomic, readwrite, strong, null_resettable) GPBStruct *structValue;
-
-/** Represents a repeated `Value`. */
-@property(nonatomic, readwrite, strong, null_resettable) GPBListValue *listValue;
-
-@end
-
-/**
- * Fetches the raw value of a @c GPBValue's @c nullValue property, even
- * if the value was not defined by the enum at the time the code was generated.
- **/
-int32_t GPBValue_NullValue_RawValue(GPBValue *message);
-/**
- * Sets the raw value of an @c GPBValue's @c nullValue property, allowing
- * it to be set to a value that was not defined by the enum at the time the code
- * was generated.
- **/
-void SetGPBValue_NullValue_RawValue(GPBValue *message, int32_t value);
-
-/**
- * Clears whatever value was set for the oneof 'kind'.
- **/
-void GPBValue_ClearKindOneOfCase(GPBValue *message);
-
-#pragma mark - GPBListValue
-
-typedef GPB_ENUM(GPBListValue_FieldNumber) {
- GPBListValue_FieldNumber_ValuesArray = 1,
-};
-
-/**
- * `ListValue` is a wrapper around a repeated field of values.
- *
- * The JSON representation for `ListValue` is JSON array.
- **/
-@interface GPBListValue : GPBMessage
-
-/** Repeated field of dynamically typed values. */
-@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<GPBValue*> *valuesArray;
-/** The number of items in @c valuesArray without causing the array to be created. */
-@property(nonatomic, readonly) NSUInteger valuesArray_Count;
-
-@end
-
-NS_ASSUME_NONNULL_END
-
-CF_EXTERN_C_END
-
-#pragma clang diagnostic pop
-
-// @@protoc_insertion_point(global_scope)
diff --git a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Struct.pbobjc.m b/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Struct.pbobjc.m
deleted file mode 100644
index f36ec582..00000000
--- a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Struct.pbobjc.m
+++ /dev/null
@@ -1,293 +0,0 @@
-// Generated by the protocol buffer compiler. DO NOT EDIT!
-// source: google/protobuf/struct.proto
-
-// This CPP symbol can be defined to use imports that match up to the framework
-// imports needed when using CocoaPods.
-#if !defined(GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS)
- #define GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS 0
-#endif
-
-#if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS
- #import <Protobuf/GPBProtocolBuffers_RuntimeSupport.h>
-#else
- #import "GPBProtocolBuffers_RuntimeSupport.h"
-#endif
-
-#if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS
- #import <Protobuf/Struct.pbobjc.h>
-#else
- #import "google/protobuf/Struct.pbobjc.h"
-#endif
-// @@protoc_insertion_point(imports)
-
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wdeprecated-declarations"
-#pragma clang diagnostic ignored "-Wdirect-ivar-access"
-
-#pragma mark - GPBStructRoot
-
-@implementation GPBStructRoot
-
-// No extensions in the file and no imports, so no need to generate
-// +extensionRegistry.
-
-@end
-
-#pragma mark - GPBStructRoot_FileDescriptor
-
-static GPBFileDescriptor *GPBStructRoot_FileDescriptor(void) {
- // This is called by +initialize so there is no need to worry
- // about thread safety of the singleton.
- static GPBFileDescriptor *descriptor = NULL;
- if (!descriptor) {
- GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
- descriptor = [[GPBFileDescriptor alloc] initWithPackage:@"google.protobuf"
- objcPrefix:@"GPB"
- syntax:GPBFileSyntaxProto3];
- }
- return descriptor;
-}
-
-#pragma mark - Enum GPBNullValue
-
-GPBEnumDescriptor *GPBNullValue_EnumDescriptor(void) {
- static GPBEnumDescriptor *descriptor = NULL;
- if (!descriptor) {
- static const char *valueNames =
- "NullValue\000";
- static const int32_t values[] = {
- GPBNullValue_NullValue,
- };
- GPBEnumDescriptor *worker =
- [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(GPBNullValue)
- valueNames:valueNames
- values:values
- count:(uint32_t)(sizeof(values) / sizeof(int32_t))
- enumVerifier:GPBNullValue_IsValidValue];
- if (!OSAtomicCompareAndSwapPtrBarrier(nil, worker, (void * volatile *)&descriptor)) {
- [worker release];
- }
- }
- return descriptor;
-}
-
-BOOL GPBNullValue_IsValidValue(int32_t value__) {
- switch (value__) {
- case GPBNullValue_NullValue:
- return YES;
- default:
- return NO;
- }
-}
-
-#pragma mark - GPBStruct
-
-@implementation GPBStruct
-
-@dynamic fields, fields_Count;
-
-typedef struct GPBStruct__storage_ {
- uint32_t _has_storage_[1];
- NSMutableDictionary *fields;
-} GPBStruct__storage_;
-
-// This method is threadsafe because it is initially called
-// in +initialize for each subclass.
-+ (GPBDescriptor *)descriptor {
- static GPBDescriptor *descriptor = nil;
- if (!descriptor) {
- static GPBMessageFieldDescription fields[] = {
- {
- .name = "fields",
- .dataTypeSpecific.className = GPBStringifySymbol(GPBValue),
- .number = GPBStruct_FieldNumber_Fields,
- .hasIndex = GPBNoHasBit,
- .offset = (uint32_t)offsetof(GPBStruct__storage_, fields),
- .flags = GPBFieldMapKeyString,
- .dataType = GPBDataTypeMessage,
- },
- };
- GPBDescriptor *localDescriptor =
- [GPBDescriptor allocDescriptorForClass:[GPBStruct class]
- rootClass:[GPBStructRoot class]
- file:GPBStructRoot_FileDescriptor()
- fields:fields
- fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
- storageSize:sizeof(GPBStruct__storage_)
- flags:GPBDescriptorInitializationFlag_None];
- NSAssert(descriptor == nil, @"Startup recursed!");
- descriptor = localDescriptor;
- }
- return descriptor;
-}
-
-@end
-
-#pragma mark - GPBValue
-
-@implementation GPBValue
-
-@dynamic kindOneOfCase;
-@dynamic nullValue;
-@dynamic numberValue;
-@dynamic stringValue;
-@dynamic boolValue;
-@dynamic structValue;
-@dynamic listValue;
-
-typedef struct GPBValue__storage_ {
- uint32_t _has_storage_[2];
- GPBNullValue nullValue;
- NSString *stringValue;
- GPBStruct *structValue;
- GPBListValue *listValue;
- double numberValue;
-} GPBValue__storage_;
-
-// This method is threadsafe because it is initially called
-// in +initialize for each subclass.
-+ (GPBDescriptor *)descriptor {
- static GPBDescriptor *descriptor = nil;
- if (!descriptor) {
- static GPBMessageFieldDescription fields[] = {
- {
- .name = "nullValue",
- .dataTypeSpecific.enumDescFunc = GPBNullValue_EnumDescriptor,
- .number = GPBValue_FieldNumber_NullValue,
- .hasIndex = -1,
- .offset = (uint32_t)offsetof(GPBValue__storage_, nullValue),
- .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasEnumDescriptor),
- .dataType = GPBDataTypeEnum,
- },
- {
- .name = "numberValue",
- .dataTypeSpecific.className = NULL,
- .number = GPBValue_FieldNumber_NumberValue,
- .hasIndex = -1,
- .offset = (uint32_t)offsetof(GPBValue__storage_, numberValue),
- .flags = GPBFieldOptional,
- .dataType = GPBDataTypeDouble,
- },
- {
- .name = "stringValue",
- .dataTypeSpecific.className = NULL,
- .number = GPBValue_FieldNumber_StringValue,
- .hasIndex = -1,
- .offset = (uint32_t)offsetof(GPBValue__storage_, stringValue),
- .flags = GPBFieldOptional,
- .dataType = GPBDataTypeString,
- },
- {
- .name = "boolValue",
- .dataTypeSpecific.className = NULL,
- .number = GPBValue_FieldNumber_BoolValue,
- .hasIndex = -1,
- .offset = 0, // Stored in _has_storage_ to save space.
- .flags = GPBFieldOptional,
- .dataType = GPBDataTypeBool,
- },
- {
- .name = "structValue",
- .dataTypeSpecific.className = GPBStringifySymbol(GPBStruct),
- .number = GPBValue_FieldNumber_StructValue,
- .hasIndex = -1,
- .offset = (uint32_t)offsetof(GPBValue__storage_, structValue),
- .flags = GPBFieldOptional,
- .dataType = GPBDataTypeMessage,
- },
- {
- .name = "listValue",
- .dataTypeSpecific.className = GPBStringifySymbol(GPBListValue),
- .number = GPBValue_FieldNumber_ListValue,
- .hasIndex = -1,
- .offset = (uint32_t)offsetof(GPBValue__storage_, listValue),
- .flags = GPBFieldOptional,
- .dataType = GPBDataTypeMessage,
- },
- };
- GPBDescriptor *localDescriptor =
- [GPBDescriptor allocDescriptorForClass:[GPBValue class]
- rootClass:[GPBStructRoot class]
- file:GPBStructRoot_FileDescriptor()
- fields:fields
- fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
- storageSize:sizeof(GPBValue__storage_)
- flags:GPBDescriptorInitializationFlag_None];
- static const char *oneofs[] = {
- "kind",
- };
- [localDescriptor setupOneofs:oneofs
- count:(uint32_t)(sizeof(oneofs) / sizeof(char*))
- firstHasIndex:-1];
- NSAssert(descriptor == nil, @"Startup recursed!");
- descriptor = localDescriptor;
- }
- return descriptor;
-}
-
-@end
-
-int32_t GPBValue_NullValue_RawValue(GPBValue *message) {
- GPBDescriptor *descriptor = [GPBValue descriptor];
- GPBFieldDescriptor *field = [descriptor fieldWithNumber:GPBValue_FieldNumber_NullValue];
- return GPBGetMessageInt32Field(message, field);
-}
-
-void SetGPBValue_NullValue_RawValue(GPBValue *message, int32_t value) {
- GPBDescriptor *descriptor = [GPBValue descriptor];
- GPBFieldDescriptor *field = [descriptor fieldWithNumber:GPBValue_FieldNumber_NullValue];
- GPBSetInt32IvarWithFieldInternal(message, field, value, descriptor.file.syntax);
-}
-
-void GPBValue_ClearKindOneOfCase(GPBValue *message) {
- GPBDescriptor *descriptor = [message descriptor];
- GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0];
- GPBMaybeClearOneof(message, oneof, -1, 0);
-}
-#pragma mark - GPBListValue
-
-@implementation GPBListValue
-
-@dynamic valuesArray, valuesArray_Count;
-
-typedef struct GPBListValue__storage_ {
- uint32_t _has_storage_[1];
- NSMutableArray *valuesArray;
-} GPBListValue__storage_;
-
-// This method is threadsafe because it is initially called
-// in +initialize for each subclass.
-+ (GPBDescriptor *)descriptor {
- static GPBDescriptor *descriptor = nil;
- if (!descriptor) {
- static GPBMessageFieldDescription fields[] = {
- {
- .name = "valuesArray",
- .dataTypeSpecific.className = GPBStringifySymbol(GPBValue),
- .number = GPBListValue_FieldNumber_ValuesArray,
- .hasIndex = GPBNoHasBit,
- .offset = (uint32_t)offsetof(GPBListValue__storage_, valuesArray),
- .flags = GPBFieldRepeated,
- .dataType = GPBDataTypeMessage,
- },
- };
- GPBDescriptor *localDescriptor =
- [GPBDescriptor allocDescriptorForClass:[GPBListValue class]
- rootClass:[GPBStructRoot class]
- file:GPBStructRoot_FileDescriptor()
- fields:fields
- fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
- storageSize:sizeof(GPBListValue__storage_)
- flags:GPBDescriptorInitializationFlag_None];
- NSAssert(descriptor == nil, @"Startup recursed!");
- descriptor = localDescriptor;
- }
- return descriptor;
-}
-
-@end
-
-
-#pragma clang diagnostic pop
-
-// @@protoc_insertion_point(global_scope)
diff --git a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Timestamp.pbobjc.h b/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Timestamp.pbobjc.h
deleted file mode 100644
index 5d74bd32..00000000
--- a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Timestamp.pbobjc.h
+++ /dev/null
@@ -1,157 +0,0 @@
-// Generated by the protocol buffer compiler. DO NOT EDIT!
-// source: google/protobuf/timestamp.proto
-
-// This CPP symbol can be defined to use imports that match up to the framework
-// imports needed when using CocoaPods.
-#if !defined(GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS)
- #define GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS 0
-#endif
-
-#if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS
- #import <Protobuf/GPBProtocolBuffers.h>
-#else
- #import "GPBProtocolBuffers.h"
-#endif
-
-#if GOOGLE_PROTOBUF_OBJC_VERSION < 30002
-#error This file was generated by a newer version of protoc which is incompatible with your Protocol Buffer library sources.
-#endif
-#if 30002 < GOOGLE_PROTOBUF_OBJC_MIN_SUPPORTED_VERSION
-#error This file was generated by an older version of protoc which is incompatible with your Protocol Buffer library sources.
-#endif
-
-// @@protoc_insertion_point(imports)
-
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wdeprecated-declarations"
-
-CF_EXTERN_C_BEGIN
-
-NS_ASSUME_NONNULL_BEGIN
-
-#pragma mark - GPBTimestampRoot
-
-/**
- * Exposes the extension registry for this file.
- *
- * The base class provides:
- * @code
- * + (GPBExtensionRegistry *)extensionRegistry;
- * @endcode
- * which is a @c GPBExtensionRegistry that includes all the extensions defined by
- * this file and all files that it depends on.
- **/
-@interface GPBTimestampRoot : GPBRootObject
-@end
-
-#pragma mark - GPBTimestamp
-
-typedef GPB_ENUM(GPBTimestamp_FieldNumber) {
- GPBTimestamp_FieldNumber_Seconds = 1,
- GPBTimestamp_FieldNumber_Nanos = 2,
-};
-
-/**
- * A Timestamp represents a point in time independent of any time zone
- * or calendar, represented as seconds and fractions of seconds at
- * nanosecond resolution in UTC Epoch time. It is encoded using the
- * Proleptic Gregorian Calendar which extends the Gregorian calendar
- * backwards to year one. It is encoded assuming all minutes are 60
- * seconds long, i.e. leap seconds are "smeared" so that no leap second
- * table is needed for interpretation. Range is from
- * 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z.
- * By restricting to that range, we ensure that we can convert to
- * and from RFC 3339 date strings.
- * See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt).
- *
- * # Examples
- *
- * Example 1: Compute Timestamp from POSIX `time()`.
- *
- * Timestamp timestamp;
- * timestamp.set_seconds(time(NULL));
- * timestamp.set_nanos(0);
- *
- * Example 2: Compute Timestamp from POSIX `gettimeofday()`.
- *
- * struct timeval tv;
- * gettimeofday(&tv, NULL);
- *
- * Timestamp timestamp;
- * timestamp.set_seconds(tv.tv_sec);
- * timestamp.set_nanos(tv.tv_usec * 1000);
- *
- * Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
- *
- * FILETIME ft;
- * GetSystemTimeAsFileTime(&ft);
- * UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
- *
- * // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z
- * // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.
- * Timestamp timestamp;
- * timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));
- * timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
- *
- * Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
- *
- * long millis = System.currentTimeMillis();
- *
- * Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)
- * .setNanos((int) ((millis % 1000) * 1000000)).build();
- *
- *
- * Example 5: Compute Timestamp from current time in Python.
- *
- * timestamp = Timestamp()
- * timestamp.GetCurrentTime()
- *
- * # JSON Mapping
- *
- * In JSON format, the Timestamp type is encoded as a string in the
- * [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the
- * format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z"
- * where {year} is always expressed using four digits while {month}, {day},
- * {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional
- * seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),
- * are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone
- * is required, though only UTC (as indicated by "Z") is presently supported.
- *
- * For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past
- * 01:30 UTC on January 15, 2017.
- *
- * In JavaScript, one can convert a Date object to this format using the
- * standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString]
- * method. In Python, a standard `datetime.datetime` object can be converted
- * to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime)
- * with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one
- * can use the Joda Time's [`ISODateTimeFormat.dateTime()`](
- * http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime())
- * to obtain a formatter capable of generating timestamps in this format.
- **/
-@interface GPBTimestamp : GPBMessage
-
-/**
- * Represents seconds of UTC time since Unix epoch
- * 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
- * 9999-12-31T23:59:59Z inclusive.
- **/
-@property(nonatomic, readwrite) int64_t seconds;
-
-/**
- * Non-negative fractions of a second at nanosecond resolution. Negative
- * second values with fractions must still have non-negative nanos values
- * that count forward in time. Must be from 0 to 999,999,999
- * inclusive.
- **/
-@property(nonatomic, readwrite) int32_t nanos;
-
-@end
-
-NS_ASSUME_NONNULL_END
-
-CF_EXTERN_C_END
-
-#pragma clang diagnostic pop
-
-// @@protoc_insertion_point(global_scope)
diff --git a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Timestamp.pbobjc.m b/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Timestamp.pbobjc.m
deleted file mode 100644
index 4ab159fb..00000000
--- a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Timestamp.pbobjc.m
+++ /dev/null
@@ -1,107 +0,0 @@
-// Generated by the protocol buffer compiler. DO NOT EDIT!
-// source: google/protobuf/timestamp.proto
-
-// This CPP symbol can be defined to use imports that match up to the framework
-// imports needed when using CocoaPods.
-#if !defined(GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS)
- #define GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS 0
-#endif
-
-#if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS
- #import <Protobuf/GPBProtocolBuffers_RuntimeSupport.h>
-#else
- #import "GPBProtocolBuffers_RuntimeSupport.h"
-#endif
-
-#if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS
- #import <Protobuf/Timestamp.pbobjc.h>
-#else
- #import "google/protobuf/Timestamp.pbobjc.h"
-#endif
-// @@protoc_insertion_point(imports)
-
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wdeprecated-declarations"
-
-#pragma mark - GPBTimestampRoot
-
-@implementation GPBTimestampRoot
-
-// No extensions in the file and no imports, so no need to generate
-// +extensionRegistry.
-
-@end
-
-#pragma mark - GPBTimestampRoot_FileDescriptor
-
-static GPBFileDescriptor *GPBTimestampRoot_FileDescriptor(void) {
- // This is called by +initialize so there is no need to worry
- // about thread safety of the singleton.
- static GPBFileDescriptor *descriptor = NULL;
- if (!descriptor) {
- GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
- descriptor = [[GPBFileDescriptor alloc] initWithPackage:@"google.protobuf"
- objcPrefix:@"GPB"
- syntax:GPBFileSyntaxProto3];
- }
- return descriptor;
-}
-
-#pragma mark - GPBTimestamp
-
-@implementation GPBTimestamp
-
-@dynamic seconds;
-@dynamic nanos;
-
-typedef struct GPBTimestamp__storage_ {
- uint32_t _has_storage_[1];
- int32_t nanos;
- int64_t seconds;
-} GPBTimestamp__storage_;
-
-// This method is threadsafe because it is initially called
-// in +initialize for each subclass.
-+ (GPBDescriptor *)descriptor {
- static GPBDescriptor *descriptor = nil;
- if (!descriptor) {
- static GPBMessageFieldDescription fields[] = {
- {
- .name = "seconds",
- .dataTypeSpecific.className = NULL,
- .number = GPBTimestamp_FieldNumber_Seconds,
- .hasIndex = 0,
- .offset = (uint32_t)offsetof(GPBTimestamp__storage_, seconds),
- .flags = GPBFieldOptional,
- .dataType = GPBDataTypeInt64,
- },
- {
- .name = "nanos",
- .dataTypeSpecific.className = NULL,
- .number = GPBTimestamp_FieldNumber_Nanos,
- .hasIndex = 1,
- .offset = (uint32_t)offsetof(GPBTimestamp__storage_, nanos),
- .flags = GPBFieldOptional,
- .dataType = GPBDataTypeInt32,
- },
- };
- GPBDescriptor *localDescriptor =
- [GPBDescriptor allocDescriptorForClass:[GPBTimestamp class]
- rootClass:[GPBTimestampRoot class]
- file:GPBTimestampRoot_FileDescriptor()
- fields:fields
- fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
- storageSize:sizeof(GPBTimestamp__storage_)
- flags:GPBDescriptorInitializationFlag_None];
- NSAssert(descriptor == nil, @"Startup recursed!");
- descriptor = localDescriptor;
- }
- return descriptor;
-}
-
-@end
-
-
-#pragma clang diagnostic pop
-
-// @@protoc_insertion_point(global_scope)
diff --git a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Type.pbobjc.h b/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Type.pbobjc.h
deleted file mode 100644
index 17986970..00000000
--- a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Type.pbobjc.h
+++ /dev/null
@@ -1,440 +0,0 @@
-// Generated by the protocol buffer compiler. DO NOT EDIT!
-// source: google/protobuf/type.proto
-
-// This CPP symbol can be defined to use imports that match up to the framework
-// imports needed when using CocoaPods.
-#if !defined(GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS)
- #define GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS 0
-#endif
-
-#if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS
- #import <Protobuf/GPBProtocolBuffers.h>
-#else
- #import "GPBProtocolBuffers.h"
-#endif
-
-#if GOOGLE_PROTOBUF_OBJC_VERSION < 30002
-#error This file was generated by a newer version of protoc which is incompatible with your Protocol Buffer library sources.
-#endif
-#if 30002 < GOOGLE_PROTOBUF_OBJC_MIN_SUPPORTED_VERSION
-#error This file was generated by an older version of protoc which is incompatible with your Protocol Buffer library sources.
-#endif
-
-// @@protoc_insertion_point(imports)
-
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wdeprecated-declarations"
-
-CF_EXTERN_C_BEGIN
-
-@class GPBAny;
-@class GPBEnumValue;
-@class GPBField;
-@class GPBOption;
-@class GPBSourceContext;
-
-NS_ASSUME_NONNULL_BEGIN
-
-#pragma mark - Enum GPBSyntax
-
-/** The syntax in which a protocol buffer element is defined. */
-typedef GPB_ENUM(GPBSyntax) {
- /**
- * Value used if any message's field encounters a value that is not defined
- * by this enum. The message will also have C functions to get/set the rawValue
- * of the field.
- **/
- GPBSyntax_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
- /** Syntax `proto2`. */
- GPBSyntax_SyntaxProto2 = 0,
-
- /** Syntax `proto3`. */
- GPBSyntax_SyntaxProto3 = 1,
-};
-
-GPBEnumDescriptor *GPBSyntax_EnumDescriptor(void);
-
-/**
- * Checks to see if the given value is defined by the enum or was not known at
- * the time this source was generated.
- **/
-BOOL GPBSyntax_IsValidValue(int32_t value);
-
-#pragma mark - Enum GPBField_Kind
-
-/** Basic field types. */
-typedef GPB_ENUM(GPBField_Kind) {
- /**
- * Value used if any message's field encounters a value that is not defined
- * by this enum. The message will also have C functions to get/set the rawValue
- * of the field.
- **/
- GPBField_Kind_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
- /** Field type unknown. */
- GPBField_Kind_TypeUnknown = 0,
-
- /** Field type double. */
- GPBField_Kind_TypeDouble = 1,
-
- /** Field type float. */
- GPBField_Kind_TypeFloat = 2,
-
- /** Field type int64. */
- GPBField_Kind_TypeInt64 = 3,
-
- /** Field type uint64. */
- GPBField_Kind_TypeUint64 = 4,
-
- /** Field type int32. */
- GPBField_Kind_TypeInt32 = 5,
-
- /** Field type fixed64. */
- GPBField_Kind_TypeFixed64 = 6,
-
- /** Field type fixed32. */
- GPBField_Kind_TypeFixed32 = 7,
-
- /** Field type bool. */
- GPBField_Kind_TypeBool = 8,
-
- /** Field type string. */
- GPBField_Kind_TypeString = 9,
-
- /** Field type group. Proto2 syntax only, and deprecated. */
- GPBField_Kind_TypeGroup = 10,
-
- /** Field type message. */
- GPBField_Kind_TypeMessage = 11,
-
- /** Field type bytes. */
- GPBField_Kind_TypeBytes = 12,
-
- /** Field type uint32. */
- GPBField_Kind_TypeUint32 = 13,
-
- /** Field type enum. */
- GPBField_Kind_TypeEnum = 14,
-
- /** Field type sfixed32. */
- GPBField_Kind_TypeSfixed32 = 15,
-
- /** Field type sfixed64. */
- GPBField_Kind_TypeSfixed64 = 16,
-
- /** Field type sint32. */
- GPBField_Kind_TypeSint32 = 17,
-
- /** Field type sint64. */
- GPBField_Kind_TypeSint64 = 18,
-};
-
-GPBEnumDescriptor *GPBField_Kind_EnumDescriptor(void);
-
-/**
- * Checks to see if the given value is defined by the enum or was not known at
- * the time this source was generated.
- **/
-BOOL GPBField_Kind_IsValidValue(int32_t value);
-
-#pragma mark - Enum GPBField_Cardinality
-
-/** Whether a field is optional, required, or repeated. */
-typedef GPB_ENUM(GPBField_Cardinality) {
- /**
- * Value used if any message's field encounters a value that is not defined
- * by this enum. The message will also have C functions to get/set the rawValue
- * of the field.
- **/
- GPBField_Cardinality_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
- /** For fields with unknown cardinality. */
- GPBField_Cardinality_CardinalityUnknown = 0,
-
- /** For optional fields. */
- GPBField_Cardinality_CardinalityOptional = 1,
-
- /** For required fields. Proto2 syntax only. */
- GPBField_Cardinality_CardinalityRequired = 2,
-
- /** For repeated fields. */
- GPBField_Cardinality_CardinalityRepeated = 3,
-};
-
-GPBEnumDescriptor *GPBField_Cardinality_EnumDescriptor(void);
-
-/**
- * Checks to see if the given value is defined by the enum or was not known at
- * the time this source was generated.
- **/
-BOOL GPBField_Cardinality_IsValidValue(int32_t value);
-
-#pragma mark - GPBTypeRoot
-
-/**
- * Exposes the extension registry for this file.
- *
- * The base class provides:
- * @code
- * + (GPBExtensionRegistry *)extensionRegistry;
- * @endcode
- * which is a @c GPBExtensionRegistry that includes all the extensions defined by
- * this file and all files that it depends on.
- **/
-@interface GPBTypeRoot : GPBRootObject
-@end
-
-#pragma mark - GPBType
-
-typedef GPB_ENUM(GPBType_FieldNumber) {
- GPBType_FieldNumber_Name = 1,
- GPBType_FieldNumber_FieldsArray = 2,
- GPBType_FieldNumber_OneofsArray = 3,
- GPBType_FieldNumber_OptionsArray = 4,
- GPBType_FieldNumber_SourceContext = 5,
- GPBType_FieldNumber_Syntax = 6,
-};
-
-/**
- * A protocol buffer message type.
- **/
-@interface GPBType : GPBMessage
-
-/** The fully qualified message name. */
-@property(nonatomic, readwrite, copy, null_resettable) NSString *name;
-
-/** The list of fields. */
-@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<GPBField*> *fieldsArray;
-/** The number of items in @c fieldsArray without causing the array to be created. */
-@property(nonatomic, readonly) NSUInteger fieldsArray_Count;
-
-/** The list of types appearing in `oneof` definitions in this type. */
-@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<NSString*> *oneofsArray;
-/** The number of items in @c oneofsArray without causing the array to be created. */
-@property(nonatomic, readonly) NSUInteger oneofsArray_Count;
-
-/** The protocol buffer options. */
-@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<GPBOption*> *optionsArray;
-/** The number of items in @c optionsArray without causing the array to be created. */
-@property(nonatomic, readonly) NSUInteger optionsArray_Count;
-
-/** The source context. */
-@property(nonatomic, readwrite, strong, null_resettable) GPBSourceContext *sourceContext;
-/** Test to see if @c sourceContext has been set. */
-@property(nonatomic, readwrite) BOOL hasSourceContext;
-
-/** The source syntax. */
-@property(nonatomic, readwrite) GPBSyntax syntax;
-
-@end
-
-/**
- * Fetches the raw value of a @c GPBType's @c syntax property, even
- * if the value was not defined by the enum at the time the code was generated.
- **/
-int32_t GPBType_Syntax_RawValue(GPBType *message);
-/**
- * Sets the raw value of an @c GPBType's @c syntax property, allowing
- * it to be set to a value that was not defined by the enum at the time the code
- * was generated.
- **/
-void SetGPBType_Syntax_RawValue(GPBType *message, int32_t value);
-
-#pragma mark - GPBField
-
-typedef GPB_ENUM(GPBField_FieldNumber) {
- GPBField_FieldNumber_Kind = 1,
- GPBField_FieldNumber_Cardinality = 2,
- GPBField_FieldNumber_Number = 3,
- GPBField_FieldNumber_Name = 4,
- GPBField_FieldNumber_TypeURL = 6,
- GPBField_FieldNumber_OneofIndex = 7,
- GPBField_FieldNumber_Packed = 8,
- GPBField_FieldNumber_OptionsArray = 9,
- GPBField_FieldNumber_JsonName = 10,
- GPBField_FieldNumber_DefaultValue = 11,
-};
-
-/**
- * A single field of a message type.
- **/
-@interface GPBField : GPBMessage
-
-/** The field type. */
-@property(nonatomic, readwrite) GPBField_Kind kind;
-
-/** The field cardinality. */
-@property(nonatomic, readwrite) GPBField_Cardinality cardinality;
-
-/** The field number. */
-@property(nonatomic, readwrite) int32_t number;
-
-/** The field name. */
-@property(nonatomic, readwrite, copy, null_resettable) NSString *name;
-
-/**
- * The field type URL, without the scheme, for message or enumeration
- * types. Example: `"type.googleapis.com/google.protobuf.Timestamp"`.
- **/
-@property(nonatomic, readwrite, copy, null_resettable) NSString *typeURL;
-
-/**
- * The index of the field type in `Type.oneofs`, for message or enumeration
- * types. The first type has index 1; zero means the type is not in the list.
- **/
-@property(nonatomic, readwrite) int32_t oneofIndex;
-
-/** Whether to use alternative packed wire representation. */
-@property(nonatomic, readwrite) BOOL packed;
-
-/** The protocol buffer options. */
-@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<GPBOption*> *optionsArray;
-/** The number of items in @c optionsArray without causing the array to be created. */
-@property(nonatomic, readonly) NSUInteger optionsArray_Count;
-
-/** The field JSON name. */
-@property(nonatomic, readwrite, copy, null_resettable) NSString *jsonName;
-
-/** The string value of the default value of this field. Proto2 syntax only. */
-@property(nonatomic, readwrite, copy, null_resettable) NSString *defaultValue;
-
-@end
-
-/**
- * Fetches the raw value of a @c GPBField's @c kind property, even
- * if the value was not defined by the enum at the time the code was generated.
- **/
-int32_t GPBField_Kind_RawValue(GPBField *message);
-/**
- * Sets the raw value of an @c GPBField's @c kind property, allowing
- * it to be set to a value that was not defined by the enum at the time the code
- * was generated.
- **/
-void SetGPBField_Kind_RawValue(GPBField *message, int32_t value);
-
-/**
- * Fetches the raw value of a @c GPBField's @c cardinality property, even
- * if the value was not defined by the enum at the time the code was generated.
- **/
-int32_t GPBField_Cardinality_RawValue(GPBField *message);
-/**
- * Sets the raw value of an @c GPBField's @c cardinality property, allowing
- * it to be set to a value that was not defined by the enum at the time the code
- * was generated.
- **/
-void SetGPBField_Cardinality_RawValue(GPBField *message, int32_t value);
-
-#pragma mark - GPBEnum
-
-typedef GPB_ENUM(GPBEnum_FieldNumber) {
- GPBEnum_FieldNumber_Name = 1,
- GPBEnum_FieldNumber_EnumvalueArray = 2,
- GPBEnum_FieldNumber_OptionsArray = 3,
- GPBEnum_FieldNumber_SourceContext = 4,
- GPBEnum_FieldNumber_Syntax = 5,
-};
-
-/**
- * Enum type definition.
- **/
-@interface GPBEnum : GPBMessage
-
-/** Enum type name. */
-@property(nonatomic, readwrite, copy, null_resettable) NSString *name;
-
-/** Enum value definitions. */
-@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<GPBEnumValue*> *enumvalueArray;
-/** The number of items in @c enumvalueArray without causing the array to be created. */
-@property(nonatomic, readonly) NSUInteger enumvalueArray_Count;
-
-/** Protocol buffer options. */
-@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<GPBOption*> *optionsArray;
-/** The number of items in @c optionsArray without causing the array to be created. */
-@property(nonatomic, readonly) NSUInteger optionsArray_Count;
-
-/** The source context. */
-@property(nonatomic, readwrite, strong, null_resettable) GPBSourceContext *sourceContext;
-/** Test to see if @c sourceContext has been set. */
-@property(nonatomic, readwrite) BOOL hasSourceContext;
-
-/** The source syntax. */
-@property(nonatomic, readwrite) GPBSyntax syntax;
-
-@end
-
-/**
- * Fetches the raw value of a @c GPBEnum's @c syntax property, even
- * if the value was not defined by the enum at the time the code was generated.
- **/
-int32_t GPBEnum_Syntax_RawValue(GPBEnum *message);
-/**
- * Sets the raw value of an @c GPBEnum's @c syntax property, allowing
- * it to be set to a value that was not defined by the enum at the time the code
- * was generated.
- **/
-void SetGPBEnum_Syntax_RawValue(GPBEnum *message, int32_t value);
-
-#pragma mark - GPBEnumValue
-
-typedef GPB_ENUM(GPBEnumValue_FieldNumber) {
- GPBEnumValue_FieldNumber_Name = 1,
- GPBEnumValue_FieldNumber_Number = 2,
- GPBEnumValue_FieldNumber_OptionsArray = 3,
-};
-
-/**
- * Enum value definition.
- **/
-@interface GPBEnumValue : GPBMessage
-
-/** Enum value name. */
-@property(nonatomic, readwrite, copy, null_resettable) NSString *name;
-
-/** Enum value number. */
-@property(nonatomic, readwrite) int32_t number;
-
-/** Protocol buffer options. */
-@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<GPBOption*> *optionsArray;
-/** The number of items in @c optionsArray without causing the array to be created. */
-@property(nonatomic, readonly) NSUInteger optionsArray_Count;
-
-@end
-
-#pragma mark - GPBOption
-
-typedef GPB_ENUM(GPBOption_FieldNumber) {
- GPBOption_FieldNumber_Name = 1,
- GPBOption_FieldNumber_Value = 2,
-};
-
-/**
- * A protocol buffer option, which can be attached to a message, field,
- * enumeration, etc.
- **/
-@interface GPBOption : GPBMessage
-
-/**
- * The option's name. For protobuf built-in options (options defined in
- * descriptor.proto), this is the short name. For example, `"map_entry"`.
- * For custom options, it should be the fully-qualified name. For example,
- * `"google.api.http"`.
- **/
-@property(nonatomic, readwrite, copy, null_resettable) NSString *name;
-
-/**
- * The option's value packed in an Any message. If the value is a primitive,
- * the corresponding wrapper type defined in google/protobuf/wrappers.proto
- * should be used. If the value is an enum, it should be stored as an int32
- * value using the google.protobuf.Int32Value type.
- **/
-@property(nonatomic, readwrite, strong, null_resettable) GPBAny *value;
-/** Test to see if @c value has been set. */
-@property(nonatomic, readwrite) BOOL hasValue;
-
-@end
-
-NS_ASSUME_NONNULL_END
-
-CF_EXTERN_C_END
-
-#pragma clang diagnostic pop
-
-// @@protoc_insertion_point(global_scope)
diff --git a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Type.pbobjc.m b/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Type.pbobjc.m
deleted file mode 100644
index 7a949388..00000000
--- a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Type.pbobjc.m
+++ /dev/null
@@ -1,701 +0,0 @@
-// Generated by the protocol buffer compiler. DO NOT EDIT!
-// source: google/protobuf/type.proto
-
-// This CPP symbol can be defined to use imports that match up to the framework
-// imports needed when using CocoaPods.
-#if !defined(GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS)
- #define GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS 0
-#endif
-
-#if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS
- #import <Protobuf/GPBProtocolBuffers_RuntimeSupport.h>
-#else
- #import "GPBProtocolBuffers_RuntimeSupport.h"
-#endif
-
-#if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS
- #import <Protobuf/Type.pbobjc.h>
- #import <Protobuf/Any.pbobjc.h>
- #import <Protobuf/SourceContext.pbobjc.h>
-#else
- #import "google/protobuf/Type.pbobjc.h"
- #import "google/protobuf/Any.pbobjc.h"
- #import "google/protobuf/SourceContext.pbobjc.h"
-#endif
-// @@protoc_insertion_point(imports)
-
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wdeprecated-declarations"
-
-#pragma mark - GPBTypeRoot
-
-@implementation GPBTypeRoot
-
-// No extensions in the file and none of the imports (direct or indirect)
-// defined extensions, so no need to generate +extensionRegistry.
-
-@end
-
-#pragma mark - GPBTypeRoot_FileDescriptor
-
-static GPBFileDescriptor *GPBTypeRoot_FileDescriptor(void) {
- // This is called by +initialize so there is no need to worry
- // about thread safety of the singleton.
- static GPBFileDescriptor *descriptor = NULL;
- if (!descriptor) {
- GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
- descriptor = [[GPBFileDescriptor alloc] initWithPackage:@"google.protobuf"
- objcPrefix:@"GPB"
- syntax:GPBFileSyntaxProto3];
- }
- return descriptor;
-}
-
-#pragma mark - Enum GPBSyntax
-
-GPBEnumDescriptor *GPBSyntax_EnumDescriptor(void) {
- static GPBEnumDescriptor *descriptor = NULL;
- if (!descriptor) {
- static const char *valueNames =
- "SyntaxProto2\000SyntaxProto3\000";
- static const int32_t values[] = {
- GPBSyntax_SyntaxProto2,
- GPBSyntax_SyntaxProto3,
- };
- GPBEnumDescriptor *worker =
- [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(GPBSyntax)
- valueNames:valueNames
- values:values
- count:(uint32_t)(sizeof(values) / sizeof(int32_t))
- enumVerifier:GPBSyntax_IsValidValue];
- if (!OSAtomicCompareAndSwapPtrBarrier(nil, worker, (void * volatile *)&descriptor)) {
- [worker release];
- }
- }
- return descriptor;
-}
-
-BOOL GPBSyntax_IsValidValue(int32_t value__) {
- switch (value__) {
- case GPBSyntax_SyntaxProto2:
- case GPBSyntax_SyntaxProto3:
- return YES;
- default:
- return NO;
- }
-}
-
-#pragma mark - GPBType
-
-@implementation GPBType
-
-@dynamic name;
-@dynamic fieldsArray, fieldsArray_Count;
-@dynamic oneofsArray, oneofsArray_Count;
-@dynamic optionsArray, optionsArray_Count;
-@dynamic hasSourceContext, sourceContext;
-@dynamic syntax;
-
-typedef struct GPBType__storage_ {
- uint32_t _has_storage_[1];
- GPBSyntax syntax;
- NSString *name;
- NSMutableArray *fieldsArray;
- NSMutableArray *oneofsArray;
- NSMutableArray *optionsArray;
- GPBSourceContext *sourceContext;
-} GPBType__storage_;
-
-// This method is threadsafe because it is initially called
-// in +initialize for each subclass.
-+ (GPBDescriptor *)descriptor {
- static GPBDescriptor *descriptor = nil;
- if (!descriptor) {
- static GPBMessageFieldDescription fields[] = {
- {
- .name = "name",
- .dataTypeSpecific.className = NULL,
- .number = GPBType_FieldNumber_Name,
- .hasIndex = 0,
- .offset = (uint32_t)offsetof(GPBType__storage_, name),
- .flags = GPBFieldOptional,
- .dataType = GPBDataTypeString,
- },
- {
- .name = "fieldsArray",
- .dataTypeSpecific.className = GPBStringifySymbol(GPBField),
- .number = GPBType_FieldNumber_FieldsArray,
- .hasIndex = GPBNoHasBit,
- .offset = (uint32_t)offsetof(GPBType__storage_, fieldsArray),
- .flags = GPBFieldRepeated,
- .dataType = GPBDataTypeMessage,
- },
- {
- .name = "oneofsArray",
- .dataTypeSpecific.className = NULL,
- .number = GPBType_FieldNumber_OneofsArray,
- .hasIndex = GPBNoHasBit,
- .offset = (uint32_t)offsetof(GPBType__storage_, oneofsArray),
- .flags = GPBFieldRepeated,
- .dataType = GPBDataTypeString,
- },
- {
- .name = "optionsArray",
- .dataTypeSpecific.className = GPBStringifySymbol(GPBOption),
- .number = GPBType_FieldNumber_OptionsArray,
- .hasIndex = GPBNoHasBit,
- .offset = (uint32_t)offsetof(GPBType__storage_, optionsArray),
- .flags = GPBFieldRepeated,
- .dataType = GPBDataTypeMessage,
- },
- {
- .name = "sourceContext",
- .dataTypeSpecific.className = GPBStringifySymbol(GPBSourceContext),
- .number = GPBType_FieldNumber_SourceContext,
- .hasIndex = 1,
- .offset = (uint32_t)offsetof(GPBType__storage_, sourceContext),
- .flags = GPBFieldOptional,
- .dataType = GPBDataTypeMessage,
- },
- {
- .name = "syntax",
- .dataTypeSpecific.enumDescFunc = GPBSyntax_EnumDescriptor,
- .number = GPBType_FieldNumber_Syntax,
- .hasIndex = 2,
- .offset = (uint32_t)offsetof(GPBType__storage_, syntax),
- .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasEnumDescriptor),
- .dataType = GPBDataTypeEnum,
- },
- };
- GPBDescriptor *localDescriptor =
- [GPBDescriptor allocDescriptorForClass:[GPBType class]
- rootClass:[GPBTypeRoot class]
- file:GPBTypeRoot_FileDescriptor()
- fields:fields
- fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
- storageSize:sizeof(GPBType__storage_)
- flags:GPBDescriptorInitializationFlag_None];
- NSAssert(descriptor == nil, @"Startup recursed!");
- descriptor = localDescriptor;
- }
- return descriptor;
-}
-
-@end
-
-int32_t GPBType_Syntax_RawValue(GPBType *message) {
- GPBDescriptor *descriptor = [GPBType descriptor];
- GPBFieldDescriptor *field = [descriptor fieldWithNumber:GPBType_FieldNumber_Syntax];
- return GPBGetMessageInt32Field(message, field);
-}
-
-void SetGPBType_Syntax_RawValue(GPBType *message, int32_t value) {
- GPBDescriptor *descriptor = [GPBType descriptor];
- GPBFieldDescriptor *field = [descriptor fieldWithNumber:GPBType_FieldNumber_Syntax];
- GPBSetInt32IvarWithFieldInternal(message, field, value, descriptor.file.syntax);
-}
-
-#pragma mark - GPBField
-
-@implementation GPBField
-
-@dynamic kind;
-@dynamic cardinality;
-@dynamic number;
-@dynamic name;
-@dynamic typeURL;
-@dynamic oneofIndex;
-@dynamic packed;
-@dynamic optionsArray, optionsArray_Count;
-@dynamic jsonName;
-@dynamic defaultValue;
-
-typedef struct GPBField__storage_ {
- uint32_t _has_storage_[1];
- GPBField_Kind kind;
- GPBField_Cardinality cardinality;
- int32_t number;
- int32_t oneofIndex;
- NSString *name;
- NSString *typeURL;
- NSMutableArray *optionsArray;
- NSString *jsonName;
- NSString *defaultValue;
-} GPBField__storage_;
-
-// This method is threadsafe because it is initially called
-// in +initialize for each subclass.
-+ (GPBDescriptor *)descriptor {
- static GPBDescriptor *descriptor = nil;
- if (!descriptor) {
- static GPBMessageFieldDescription fields[] = {
- {
- .name = "kind",
- .dataTypeSpecific.enumDescFunc = GPBField_Kind_EnumDescriptor,
- .number = GPBField_FieldNumber_Kind,
- .hasIndex = 0,
- .offset = (uint32_t)offsetof(GPBField__storage_, kind),
- .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasEnumDescriptor),
- .dataType = GPBDataTypeEnum,
- },
- {
- .name = "cardinality",
- .dataTypeSpecific.enumDescFunc = GPBField_Cardinality_EnumDescriptor,
- .number = GPBField_FieldNumber_Cardinality,
- .hasIndex = 1,
- .offset = (uint32_t)offsetof(GPBField__storage_, cardinality),
- .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasEnumDescriptor),
- .dataType = GPBDataTypeEnum,
- },
- {
- .name = "number",
- .dataTypeSpecific.className = NULL,
- .number = GPBField_FieldNumber_Number,
- .hasIndex = 2,
- .offset = (uint32_t)offsetof(GPBField__storage_, number),
- .flags = GPBFieldOptional,
- .dataType = GPBDataTypeInt32,
- },
- {
- .name = "name",
- .dataTypeSpecific.className = NULL,
- .number = GPBField_FieldNumber_Name,
- .hasIndex = 3,
- .offset = (uint32_t)offsetof(GPBField__storage_, name),
- .flags = GPBFieldOptional,
- .dataType = GPBDataTypeString,
- },
- {
- .name = "typeURL",
- .dataTypeSpecific.className = NULL,
- .number = GPBField_FieldNumber_TypeURL,
- .hasIndex = 4,
- .offset = (uint32_t)offsetof(GPBField__storage_, typeURL),
- .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldTextFormatNameCustom),
- .dataType = GPBDataTypeString,
- },
- {
- .name = "oneofIndex",
- .dataTypeSpecific.className = NULL,
- .number = GPBField_FieldNumber_OneofIndex,
- .hasIndex = 5,
- .offset = (uint32_t)offsetof(GPBField__storage_, oneofIndex),
- .flags = GPBFieldOptional,
- .dataType = GPBDataTypeInt32,
- },
- {
- .name = "packed",
- .dataTypeSpecific.className = NULL,
- .number = GPBField_FieldNumber_Packed,
- .hasIndex = 6,
- .offset = 7, // Stored in _has_storage_ to save space.
- .flags = GPBFieldOptional,
- .dataType = GPBDataTypeBool,
- },
- {
- .name = "optionsArray",
- .dataTypeSpecific.className = GPBStringifySymbol(GPBOption),
- .number = GPBField_FieldNumber_OptionsArray,
- .hasIndex = GPBNoHasBit,
- .offset = (uint32_t)offsetof(GPBField__storage_, optionsArray),
- .flags = GPBFieldRepeated,
- .dataType = GPBDataTypeMessage,
- },
- {
- .name = "jsonName",
- .dataTypeSpecific.className = NULL,
- .number = GPBField_FieldNumber_JsonName,
- .hasIndex = 8,
- .offset = (uint32_t)offsetof(GPBField__storage_, jsonName),
- .flags = GPBFieldOptional,
- .dataType = GPBDataTypeString,
- },
- {
- .name = "defaultValue",
- .dataTypeSpecific.className = NULL,
- .number = GPBField_FieldNumber_DefaultValue,
- .hasIndex = 9,
- .offset = (uint32_t)offsetof(GPBField__storage_, defaultValue),
- .flags = GPBFieldOptional,
- .dataType = GPBDataTypeString,
- },
- };
- GPBDescriptor *localDescriptor =
- [GPBDescriptor allocDescriptorForClass:[GPBField class]
- rootClass:[GPBTypeRoot class]
- file:GPBTypeRoot_FileDescriptor()
- fields:fields
- fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
- storageSize:sizeof(GPBField__storage_)
- flags:GPBDescriptorInitializationFlag_None];
-#if !GPBOBJC_SKIP_MESSAGE_TEXTFORMAT_EXTRAS
- static const char *extraTextFormatInfo =
- "\001\006\004\241!!\000";
- [localDescriptor setupExtraTextInfo:extraTextFormatInfo];
-#endif // !GPBOBJC_SKIP_MESSAGE_TEXTFORMAT_EXTRAS
- NSAssert(descriptor == nil, @"Startup recursed!");
- descriptor = localDescriptor;
- }
- return descriptor;
-}
-
-@end
-
-int32_t GPBField_Kind_RawValue(GPBField *message) {
- GPBDescriptor *descriptor = [GPBField descriptor];
- GPBFieldDescriptor *field = [descriptor fieldWithNumber:GPBField_FieldNumber_Kind];
- return GPBGetMessageInt32Field(message, field);
-}
-
-void SetGPBField_Kind_RawValue(GPBField *message, int32_t value) {
- GPBDescriptor *descriptor = [GPBField descriptor];
- GPBFieldDescriptor *field = [descriptor fieldWithNumber:GPBField_FieldNumber_Kind];
- GPBSetInt32IvarWithFieldInternal(message, field, value, descriptor.file.syntax);
-}
-
-int32_t GPBField_Cardinality_RawValue(GPBField *message) {
- GPBDescriptor *descriptor = [GPBField descriptor];
- GPBFieldDescriptor *field = [descriptor fieldWithNumber:GPBField_FieldNumber_Cardinality];
- return GPBGetMessageInt32Field(message, field);
-}
-
-void SetGPBField_Cardinality_RawValue(GPBField *message, int32_t value) {
- GPBDescriptor *descriptor = [GPBField descriptor];
- GPBFieldDescriptor *field = [descriptor fieldWithNumber:GPBField_FieldNumber_Cardinality];
- GPBSetInt32IvarWithFieldInternal(message, field, value, descriptor.file.syntax);
-}
-
-#pragma mark - Enum GPBField_Kind
-
-GPBEnumDescriptor *GPBField_Kind_EnumDescriptor(void) {
- static GPBEnumDescriptor *descriptor = NULL;
- if (!descriptor) {
- static const char *valueNames =
- "TypeUnknown\000TypeDouble\000TypeFloat\000TypeInt"
- "64\000TypeUint64\000TypeInt32\000TypeFixed64\000Type"
- "Fixed32\000TypeBool\000TypeString\000TypeGroup\000Ty"
- "peMessage\000TypeBytes\000TypeUint32\000TypeEnum\000"
- "TypeSfixed32\000TypeSfixed64\000TypeSint32\000Typ"
- "eSint64\000";
- static const int32_t values[] = {
- GPBField_Kind_TypeUnknown,
- GPBField_Kind_TypeDouble,
- GPBField_Kind_TypeFloat,
- GPBField_Kind_TypeInt64,
- GPBField_Kind_TypeUint64,
- GPBField_Kind_TypeInt32,
- GPBField_Kind_TypeFixed64,
- GPBField_Kind_TypeFixed32,
- GPBField_Kind_TypeBool,
- GPBField_Kind_TypeString,
- GPBField_Kind_TypeGroup,
- GPBField_Kind_TypeMessage,
- GPBField_Kind_TypeBytes,
- GPBField_Kind_TypeUint32,
- GPBField_Kind_TypeEnum,
- GPBField_Kind_TypeSfixed32,
- GPBField_Kind_TypeSfixed64,
- GPBField_Kind_TypeSint32,
- GPBField_Kind_TypeSint64,
- };
- GPBEnumDescriptor *worker =
- [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(GPBField_Kind)
- valueNames:valueNames
- values:values
- count:(uint32_t)(sizeof(values) / sizeof(int32_t))
- enumVerifier:GPBField_Kind_IsValidValue];
- if (!OSAtomicCompareAndSwapPtrBarrier(nil, worker, (void * volatile *)&descriptor)) {
- [worker release];
- }
- }
- return descriptor;
-}
-
-BOOL GPBField_Kind_IsValidValue(int32_t value__) {
- switch (value__) {
- case GPBField_Kind_TypeUnknown:
- case GPBField_Kind_TypeDouble:
- case GPBField_Kind_TypeFloat:
- case GPBField_Kind_TypeInt64:
- case GPBField_Kind_TypeUint64:
- case GPBField_Kind_TypeInt32:
- case GPBField_Kind_TypeFixed64:
- case GPBField_Kind_TypeFixed32:
- case GPBField_Kind_TypeBool:
- case GPBField_Kind_TypeString:
- case GPBField_Kind_TypeGroup:
- case GPBField_Kind_TypeMessage:
- case GPBField_Kind_TypeBytes:
- case GPBField_Kind_TypeUint32:
- case GPBField_Kind_TypeEnum:
- case GPBField_Kind_TypeSfixed32:
- case GPBField_Kind_TypeSfixed64:
- case GPBField_Kind_TypeSint32:
- case GPBField_Kind_TypeSint64:
- return YES;
- default:
- return NO;
- }
-}
-
-#pragma mark - Enum GPBField_Cardinality
-
-GPBEnumDescriptor *GPBField_Cardinality_EnumDescriptor(void) {
- static GPBEnumDescriptor *descriptor = NULL;
- if (!descriptor) {
- static const char *valueNames =
- "CardinalityUnknown\000CardinalityOptional\000C"
- "ardinalityRequired\000CardinalityRepeated\000";
- static const int32_t values[] = {
- GPBField_Cardinality_CardinalityUnknown,
- GPBField_Cardinality_CardinalityOptional,
- GPBField_Cardinality_CardinalityRequired,
- GPBField_Cardinality_CardinalityRepeated,
- };
- GPBEnumDescriptor *worker =
- [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(GPBField_Cardinality)
- valueNames:valueNames
- values:values
- count:(uint32_t)(sizeof(values) / sizeof(int32_t))
- enumVerifier:GPBField_Cardinality_IsValidValue];
- if (!OSAtomicCompareAndSwapPtrBarrier(nil, worker, (void * volatile *)&descriptor)) {
- [worker release];
- }
- }
- return descriptor;
-}
-
-BOOL GPBField_Cardinality_IsValidValue(int32_t value__) {
- switch (value__) {
- case GPBField_Cardinality_CardinalityUnknown:
- case GPBField_Cardinality_CardinalityOptional:
- case GPBField_Cardinality_CardinalityRequired:
- case GPBField_Cardinality_CardinalityRepeated:
- return YES;
- default:
- return NO;
- }
-}
-
-#pragma mark - GPBEnum
-
-@implementation GPBEnum
-
-@dynamic name;
-@dynamic enumvalueArray, enumvalueArray_Count;
-@dynamic optionsArray, optionsArray_Count;
-@dynamic hasSourceContext, sourceContext;
-@dynamic syntax;
-
-typedef struct GPBEnum__storage_ {
- uint32_t _has_storage_[1];
- GPBSyntax syntax;
- NSString *name;
- NSMutableArray *enumvalueArray;
- NSMutableArray *optionsArray;
- GPBSourceContext *sourceContext;
-} GPBEnum__storage_;
-
-// This method is threadsafe because it is initially called
-// in +initialize for each subclass.
-+ (GPBDescriptor *)descriptor {
- static GPBDescriptor *descriptor = nil;
- if (!descriptor) {
- static GPBMessageFieldDescription fields[] = {
- {
- .name = "name",
- .dataTypeSpecific.className = NULL,
- .number = GPBEnum_FieldNumber_Name,
- .hasIndex = 0,
- .offset = (uint32_t)offsetof(GPBEnum__storage_, name),
- .flags = GPBFieldOptional,
- .dataType = GPBDataTypeString,
- },
- {
- .name = "enumvalueArray",
- .dataTypeSpecific.className = GPBStringifySymbol(GPBEnumValue),
- .number = GPBEnum_FieldNumber_EnumvalueArray,
- .hasIndex = GPBNoHasBit,
- .offset = (uint32_t)offsetof(GPBEnum__storage_, enumvalueArray),
- .flags = GPBFieldRepeated,
- .dataType = GPBDataTypeMessage,
- },
- {
- .name = "optionsArray",
- .dataTypeSpecific.className = GPBStringifySymbol(GPBOption),
- .number = GPBEnum_FieldNumber_OptionsArray,
- .hasIndex = GPBNoHasBit,
- .offset = (uint32_t)offsetof(GPBEnum__storage_, optionsArray),
- .flags = GPBFieldRepeated,
- .dataType = GPBDataTypeMessage,
- },
- {
- .name = "sourceContext",
- .dataTypeSpecific.className = GPBStringifySymbol(GPBSourceContext),
- .number = GPBEnum_FieldNumber_SourceContext,
- .hasIndex = 1,
- .offset = (uint32_t)offsetof(GPBEnum__storage_, sourceContext),
- .flags = GPBFieldOptional,
- .dataType = GPBDataTypeMessage,
- },
- {
- .name = "syntax",
- .dataTypeSpecific.enumDescFunc = GPBSyntax_EnumDescriptor,
- .number = GPBEnum_FieldNumber_Syntax,
- .hasIndex = 2,
- .offset = (uint32_t)offsetof(GPBEnum__storage_, syntax),
- .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasEnumDescriptor),
- .dataType = GPBDataTypeEnum,
- },
- };
- GPBDescriptor *localDescriptor =
- [GPBDescriptor allocDescriptorForClass:[GPBEnum class]
- rootClass:[GPBTypeRoot class]
- file:GPBTypeRoot_FileDescriptor()
- fields:fields
- fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
- storageSize:sizeof(GPBEnum__storage_)
- flags:GPBDescriptorInitializationFlag_None];
- NSAssert(descriptor == nil, @"Startup recursed!");
- descriptor = localDescriptor;
- }
- return descriptor;
-}
-
-@end
-
-int32_t GPBEnum_Syntax_RawValue(GPBEnum *message) {
- GPBDescriptor *descriptor = [GPBEnum descriptor];
- GPBFieldDescriptor *field = [descriptor fieldWithNumber:GPBEnum_FieldNumber_Syntax];
- return GPBGetMessageInt32Field(message, field);
-}
-
-void SetGPBEnum_Syntax_RawValue(GPBEnum *message, int32_t value) {
- GPBDescriptor *descriptor = [GPBEnum descriptor];
- GPBFieldDescriptor *field = [descriptor fieldWithNumber:GPBEnum_FieldNumber_Syntax];
- GPBSetInt32IvarWithFieldInternal(message, field, value, descriptor.file.syntax);
-}
-
-#pragma mark - GPBEnumValue
-
-@implementation GPBEnumValue
-
-@dynamic name;
-@dynamic number;
-@dynamic optionsArray, optionsArray_Count;
-
-typedef struct GPBEnumValue__storage_ {
- uint32_t _has_storage_[1];
- int32_t number;
- NSString *name;
- NSMutableArray *optionsArray;
-} GPBEnumValue__storage_;
-
-// This method is threadsafe because it is initially called
-// in +initialize for each subclass.
-+ (GPBDescriptor *)descriptor {
- static GPBDescriptor *descriptor = nil;
- if (!descriptor) {
- static GPBMessageFieldDescription fields[] = {
- {
- .name = "name",
- .dataTypeSpecific.className = NULL,
- .number = GPBEnumValue_FieldNumber_Name,
- .hasIndex = 0,
- .offset = (uint32_t)offsetof(GPBEnumValue__storage_, name),
- .flags = GPBFieldOptional,
- .dataType = GPBDataTypeString,
- },
- {
- .name = "number",
- .dataTypeSpecific.className = NULL,
- .number = GPBEnumValue_FieldNumber_Number,
- .hasIndex = 1,
- .offset = (uint32_t)offsetof(GPBEnumValue__storage_, number),
- .flags = GPBFieldOptional,
- .dataType = GPBDataTypeInt32,
- },
- {
- .name = "optionsArray",
- .dataTypeSpecific.className = GPBStringifySymbol(GPBOption),
- .number = GPBEnumValue_FieldNumber_OptionsArray,
- .hasIndex = GPBNoHasBit,
- .offset = (uint32_t)offsetof(GPBEnumValue__storage_, optionsArray),
- .flags = GPBFieldRepeated,
- .dataType = GPBDataTypeMessage,
- },
- };
- GPBDescriptor *localDescriptor =
- [GPBDescriptor allocDescriptorForClass:[GPBEnumValue class]
- rootClass:[GPBTypeRoot class]
- file:GPBTypeRoot_FileDescriptor()
- fields:fields
- fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
- storageSize:sizeof(GPBEnumValue__storage_)
- flags:GPBDescriptorInitializationFlag_None];
- NSAssert(descriptor == nil, @"Startup recursed!");
- descriptor = localDescriptor;
- }
- return descriptor;
-}
-
-@end
-
-#pragma mark - GPBOption
-
-@implementation GPBOption
-
-@dynamic name;
-@dynamic hasValue, value;
-
-typedef struct GPBOption__storage_ {
- uint32_t _has_storage_[1];
- NSString *name;
- GPBAny *value;
-} GPBOption__storage_;
-
-// This method is threadsafe because it is initially called
-// in +initialize for each subclass.
-+ (GPBDescriptor *)descriptor {
- static GPBDescriptor *descriptor = nil;
- if (!descriptor) {
- static GPBMessageFieldDescription fields[] = {
- {
- .name = "name",
- .dataTypeSpecific.className = NULL,
- .number = GPBOption_FieldNumber_Name,
- .hasIndex = 0,
- .offset = (uint32_t)offsetof(GPBOption__storage_, name),
- .flags = GPBFieldOptional,
- .dataType = GPBDataTypeString,
- },
- {
- .name = "value",
- .dataTypeSpecific.className = GPBStringifySymbol(GPBAny),
- .number = GPBOption_FieldNumber_Value,
- .hasIndex = 1,
- .offset = (uint32_t)offsetof(GPBOption__storage_, value),
- .flags = GPBFieldOptional,
- .dataType = GPBDataTypeMessage,
- },
- };
- GPBDescriptor *localDescriptor =
- [GPBDescriptor allocDescriptorForClass:[GPBOption class]
- rootClass:[GPBTypeRoot class]
- file:GPBTypeRoot_FileDescriptor()
- fields:fields
- fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
- storageSize:sizeof(GPBOption__storage_)
- flags:GPBDescriptorInitializationFlag_None];
- NSAssert(descriptor == nil, @"Startup recursed!");
- descriptor = localDescriptor;
- }
- return descriptor;
-}
-
-@end
-
-
-#pragma clang diagnostic pop
-
-// @@protoc_insertion_point(global_scope)
diff --git a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Wrappers.pbobjc.h b/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Wrappers.pbobjc.h
deleted file mode 100644
index 3cb9fe77..00000000
--- a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Wrappers.pbobjc.h
+++ /dev/null
@@ -1,215 +0,0 @@
-// Generated by the protocol buffer compiler. DO NOT EDIT!
-// source: google/protobuf/wrappers.proto
-
-// This CPP symbol can be defined to use imports that match up to the framework
-// imports needed when using CocoaPods.
-#if !defined(GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS)
- #define GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS 0
-#endif
-
-#if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS
- #import <Protobuf/GPBProtocolBuffers.h>
-#else
- #import "GPBProtocolBuffers.h"
-#endif
-
-#if GOOGLE_PROTOBUF_OBJC_VERSION < 30002
-#error This file was generated by a newer version of protoc which is incompatible with your Protocol Buffer library sources.
-#endif
-#if 30002 < GOOGLE_PROTOBUF_OBJC_MIN_SUPPORTED_VERSION
-#error This file was generated by an older version of protoc which is incompatible with your Protocol Buffer library sources.
-#endif
-
-// @@protoc_insertion_point(imports)
-
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wdeprecated-declarations"
-
-CF_EXTERN_C_BEGIN
-
-NS_ASSUME_NONNULL_BEGIN
-
-#pragma mark - GPBWrappersRoot
-
-/**
- * Exposes the extension registry for this file.
- *
- * The base class provides:
- * @code
- * + (GPBExtensionRegistry *)extensionRegistry;
- * @endcode
- * which is a @c GPBExtensionRegistry that includes all the extensions defined by
- * this file and all files that it depends on.
- **/
-@interface GPBWrappersRoot : GPBRootObject
-@end
-
-#pragma mark - GPBDoubleValue
-
-typedef GPB_ENUM(GPBDoubleValue_FieldNumber) {
- GPBDoubleValue_FieldNumber_Value = 1,
-};
-
-/**
- * Wrapper message for `double`.
- *
- * The JSON representation for `DoubleValue` is JSON number.
- **/
-@interface GPBDoubleValue : GPBMessage
-
-/** The double value. */
-@property(nonatomic, readwrite) double value;
-
-@end
-
-#pragma mark - GPBFloatValue
-
-typedef GPB_ENUM(GPBFloatValue_FieldNumber) {
- GPBFloatValue_FieldNumber_Value = 1,
-};
-
-/**
- * Wrapper message for `float`.
- *
- * The JSON representation for `FloatValue` is JSON number.
- **/
-@interface GPBFloatValue : GPBMessage
-
-/** The float value. */
-@property(nonatomic, readwrite) float value;
-
-@end
-
-#pragma mark - GPBInt64Value
-
-typedef GPB_ENUM(GPBInt64Value_FieldNumber) {
- GPBInt64Value_FieldNumber_Value = 1,
-};
-
-/**
- * Wrapper message for `int64`.
- *
- * The JSON representation for `Int64Value` is JSON string.
- **/
-@interface GPBInt64Value : GPBMessage
-
-/** The int64 value. */
-@property(nonatomic, readwrite) int64_t value;
-
-@end
-
-#pragma mark - GPBUInt64Value
-
-typedef GPB_ENUM(GPBUInt64Value_FieldNumber) {
- GPBUInt64Value_FieldNumber_Value = 1,
-};
-
-/**
- * Wrapper message for `uint64`.
- *
- * The JSON representation for `UInt64Value` is JSON string.
- **/
-@interface GPBUInt64Value : GPBMessage
-
-/** The uint64 value. */
-@property(nonatomic, readwrite) uint64_t value;
-
-@end
-
-#pragma mark - GPBInt32Value
-
-typedef GPB_ENUM(GPBInt32Value_FieldNumber) {
- GPBInt32Value_FieldNumber_Value = 1,
-};
-
-/**
- * Wrapper message for `int32`.
- *
- * The JSON representation for `Int32Value` is JSON number.
- **/
-@interface GPBInt32Value : GPBMessage
-
-/** The int32 value. */
-@property(nonatomic, readwrite) int32_t value;
-
-@end
-
-#pragma mark - GPBUInt32Value
-
-typedef GPB_ENUM(GPBUInt32Value_FieldNumber) {
- GPBUInt32Value_FieldNumber_Value = 1,
-};
-
-/**
- * Wrapper message for `uint32`.
- *
- * The JSON representation for `UInt32Value` is JSON number.
- **/
-@interface GPBUInt32Value : GPBMessage
-
-/** The uint32 value. */
-@property(nonatomic, readwrite) uint32_t value;
-
-@end
-
-#pragma mark - GPBBoolValue
-
-typedef GPB_ENUM(GPBBoolValue_FieldNumber) {
- GPBBoolValue_FieldNumber_Value = 1,
-};
-
-/**
- * Wrapper message for `bool`.
- *
- * The JSON representation for `BoolValue` is JSON `true` and `false`.
- **/
-@interface GPBBoolValue : GPBMessage
-
-/** The bool value. */
-@property(nonatomic, readwrite) BOOL value;
-
-@end
-
-#pragma mark - GPBStringValue
-
-typedef GPB_ENUM(GPBStringValue_FieldNumber) {
- GPBStringValue_FieldNumber_Value = 1,
-};
-
-/**
- * Wrapper message for `string`.
- *
- * The JSON representation for `StringValue` is JSON string.
- **/
-@interface GPBStringValue : GPBMessage
-
-/** The string value. */
-@property(nonatomic, readwrite, copy, null_resettable) NSString *value;
-
-@end
-
-#pragma mark - GPBBytesValue
-
-typedef GPB_ENUM(GPBBytesValue_FieldNumber) {
- GPBBytesValue_FieldNumber_Value = 1,
-};
-
-/**
- * Wrapper message for `bytes`.
- *
- * The JSON representation for `BytesValue` is JSON string.
- **/
-@interface GPBBytesValue : GPBMessage
-
-/** The bytes value. */
-@property(nonatomic, readwrite, copy, null_resettable) NSData *value;
-
-@end
-
-NS_ASSUME_NONNULL_END
-
-CF_EXTERN_C_END
-
-#pragma clang diagnostic pop
-
-// @@protoc_insertion_point(global_scope)
diff --git a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Wrappers.pbobjc.m b/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Wrappers.pbobjc.m
deleted file mode 100644
index 5479eb12..00000000
--- a/StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Wrappers.pbobjc.m
+++ /dev/null
@@ -1,439 +0,0 @@
-// Generated by the protocol buffer compiler. DO NOT EDIT!
-// source: google/protobuf/wrappers.proto
-
-// This CPP symbol can be defined to use imports that match up to the framework
-// imports needed when using CocoaPods.
-#if !defined(GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS)
- #define GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS 0
-#endif
-
-#if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS
- #import <Protobuf/GPBProtocolBuffers_RuntimeSupport.h>
-#else
- #import "GPBProtocolBuffers_RuntimeSupport.h"
-#endif
-
-#if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS
- #import <Protobuf/Wrappers.pbobjc.h>
-#else
- #import "google/protobuf/Wrappers.pbobjc.h"
-#endif
-// @@protoc_insertion_point(imports)
-
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wdeprecated-declarations"
-
-#pragma mark - GPBWrappersRoot
-
-@implementation GPBWrappersRoot
-
-// No extensions in the file and no imports, so no need to generate
-// +extensionRegistry.
-
-@end
-
-#pragma mark - GPBWrappersRoot_FileDescriptor
-
-static GPBFileDescriptor *GPBWrappersRoot_FileDescriptor(void) {
- // This is called by +initialize so there is no need to worry
- // about thread safety of the singleton.
- static GPBFileDescriptor *descriptor = NULL;
- if (!descriptor) {
- GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
- descriptor = [[GPBFileDescriptor alloc] initWithPackage:@"google.protobuf"
- objcPrefix:@"GPB"
- syntax:GPBFileSyntaxProto3];
- }
- return descriptor;
-}
-
-#pragma mark - GPBDoubleValue
-
-@implementation GPBDoubleValue
-
-@dynamic value;
-
-typedef struct GPBDoubleValue__storage_ {
- uint32_t _has_storage_[1];
- double value;
-} GPBDoubleValue__storage_;
-
-// This method is threadsafe because it is initially called
-// in +initialize for each subclass.
-+ (GPBDescriptor *)descriptor {
- static GPBDescriptor *descriptor = nil;
- if (!descriptor) {
- static GPBMessageFieldDescription fields[] = {
- {
- .name = "value",
- .dataTypeSpecific.className = NULL,
- .number = GPBDoubleValue_FieldNumber_Value,
- .hasIndex = 0,
- .offset = (uint32_t)offsetof(GPBDoubleValue__storage_, value),
- .flags = GPBFieldOptional,
- .dataType = GPBDataTypeDouble,
- },
- };
- GPBDescriptor *localDescriptor =
- [GPBDescriptor allocDescriptorForClass:[GPBDoubleValue class]
- rootClass:[GPBWrappersRoot class]
- file:GPBWrappersRoot_FileDescriptor()
- fields:fields
- fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
- storageSize:sizeof(GPBDoubleValue__storage_)
- flags:GPBDescriptorInitializationFlag_None];
- NSAssert(descriptor == nil, @"Startup recursed!");
- descriptor = localDescriptor;
- }
- return descriptor;
-}
-
-@end
-
-#pragma mark - GPBFloatValue
-
-@implementation GPBFloatValue
-
-@dynamic value;
-
-typedef struct GPBFloatValue__storage_ {
- uint32_t _has_storage_[1];
- float value;
-} GPBFloatValue__storage_;
-
-// This method is threadsafe because it is initially called
-// in +initialize for each subclass.
-+ (GPBDescriptor *)descriptor {
- static GPBDescriptor *descriptor = nil;
- if (!descriptor) {
- static GPBMessageFieldDescription fields[] = {
- {
- .name = "value",
- .dataTypeSpecific.className = NULL,
- .number = GPBFloatValue_FieldNumber_Value,
- .hasIndex = 0,
- .offset = (uint32_t)offsetof(GPBFloatValue__storage_, value),
- .flags = GPBFieldOptional,
- .dataType = GPBDataTypeFloat,
- },
- };
- GPBDescriptor *localDescriptor =
- [GPBDescriptor allocDescriptorForClass:[GPBFloatValue class]
- rootClass:[GPBWrappersRoot class]
- file:GPBWrappersRoot_FileDescriptor()
- fields:fields
- fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
- storageSize:sizeof(GPBFloatValue__storage_)
- flags:GPBDescriptorInitializationFlag_None];
- NSAssert(descriptor == nil, @"Startup recursed!");
- descriptor = localDescriptor;
- }
- return descriptor;
-}
-
-@end
-
-#pragma mark - GPBInt64Value
-
-@implementation GPBInt64Value
-
-@dynamic value;
-
-typedef struct GPBInt64Value__storage_ {
- uint32_t _has_storage_[1];
- int64_t value;
-} GPBInt64Value__storage_;
-
-// This method is threadsafe because it is initially called
-// in +initialize for each subclass.
-+ (GPBDescriptor *)descriptor {
- static GPBDescriptor *descriptor = nil;
- if (!descriptor) {
- static GPBMessageFieldDescription fields[] = {
- {
- .name = "value",
- .dataTypeSpecific.className = NULL,
- .number = GPBInt64Value_FieldNumber_Value,
- .hasIndex = 0,
- .offset = (uint32_t)offsetof(GPBInt64Value__storage_, value),
- .flags = GPBFieldOptional,
- .dataType = GPBDataTypeInt64,
- },
- };
- GPBDescriptor *localDescriptor =
- [GPBDescriptor allocDescriptorForClass:[GPBInt64Value class]
- rootClass:[GPBWrappersRoot class]
- file:GPBWrappersRoot_FileDescriptor()
- fields:fields
- fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
- storageSize:sizeof(GPBInt64Value__storage_)
- flags:GPBDescriptorInitializationFlag_None];
- NSAssert(descriptor == nil, @"Startup recursed!");
- descriptor = localDescriptor;
- }
- return descriptor;
-}
-
-@end
-
-#pragma mark - GPBUInt64Value
-
-@implementation GPBUInt64Value
-
-@dynamic value;
-
-typedef struct GPBUInt64Value__storage_ {
- uint32_t _has_storage_[1];
- uint64_t value;
-} GPBUInt64Value__storage_;
-
-// This method is threadsafe because it is initially called
-// in +initialize for each subclass.
-+ (GPBDescriptor *)descriptor {
- static GPBDescriptor *descriptor = nil;
- if (!descriptor) {
- static GPBMessageFieldDescription fields[] = {
- {
- .name = "value",
- .dataTypeSpecific.className = NULL,
- .number = GPBUInt64Value_FieldNumber_Value,
- .hasIndex = 0,
- .offset = (uint32_t)offsetof(GPBUInt64Value__storage_, value),
- .flags = GPBFieldOptional,
- .dataType = GPBDataTypeUInt64,
- },
- };
- GPBDescriptor *localDescriptor =
- [GPBDescriptor allocDescriptorForClass:[GPBUInt64Value class]
- rootClass:[GPBWrappersRoot class]
- file:GPBWrappersRoot_FileDescriptor()
- fields:fields
- fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
- storageSize:sizeof(GPBUInt64Value__storage_)
- flags:GPBDescriptorInitializationFlag_None];
- NSAssert(descriptor == nil, @"Startup recursed!");
- descriptor = localDescriptor;
- }
- return descriptor;
-}
-
-@end
-
-#pragma mark - GPBInt32Value
-
-@implementation GPBInt32Value
-
-@dynamic value;
-
-typedef struct GPBInt32Value__storage_ {
- uint32_t _has_storage_[1];
- int32_t value;
-} GPBInt32Value__storage_;
-
-// This method is threadsafe because it is initially called
-// in +initialize for each subclass.
-+ (GPBDescriptor *)descriptor {
- static GPBDescriptor *descriptor = nil;
- if (!descriptor) {
- static GPBMessageFieldDescription fields[] = {
- {
- .name = "value",
- .dataTypeSpecific.className = NULL,
- .number = GPBInt32Value_FieldNumber_Value,
- .hasIndex = 0,
- .offset = (uint32_t)offsetof(GPBInt32Value__storage_, value),
- .flags = GPBFieldOptional,
- .dataType = GPBDataTypeInt32,
- },
- };
- GPBDescriptor *localDescriptor =
- [GPBDescriptor allocDescriptorForClass:[GPBInt32Value class]
- rootClass:[GPBWrappersRoot class]
- file:GPBWrappersRoot_FileDescriptor()
- fields:fields
- fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
- storageSize:sizeof(GPBInt32Value__storage_)
- flags:GPBDescriptorInitializationFlag_None];
- NSAssert(descriptor == nil, @"Startup recursed!");
- descriptor = localDescriptor;
- }
- return descriptor;
-}
-
-@end
-
-#pragma mark - GPBUInt32Value
-
-@implementation GPBUInt32Value
-
-@dynamic value;
-
-typedef struct GPBUInt32Value__storage_ {
- uint32_t _has_storage_[1];
- uint32_t value;
-} GPBUInt32Value__storage_;
-
-// This method is threadsafe because it is initially called
-// in +initialize for each subclass.
-+ (GPBDescriptor *)descriptor {
- static GPBDescriptor *descriptor = nil;
- if (!descriptor) {
- static GPBMessageFieldDescription fields[] = {
- {
- .name = "value",
- .dataTypeSpecific.className = NULL,
- .number = GPBUInt32Value_FieldNumber_Value,
- .hasIndex = 0,
- .offset = (uint32_t)offsetof(GPBUInt32Value__storage_, value),
- .flags = GPBFieldOptional,
- .dataType = GPBDataTypeUInt32,
- },
- };
- GPBDescriptor *localDescriptor =
- [GPBDescriptor allocDescriptorForClass:[GPBUInt32Value class]
- rootClass:[GPBWrappersRoot class]
- file:GPBWrappersRoot_FileDescriptor()
- fields:fields
- fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
- storageSize:sizeof(GPBUInt32Value__storage_)
- flags:GPBDescriptorInitializationFlag_None];
- NSAssert(descriptor == nil, @"Startup recursed!");
- descriptor = localDescriptor;
- }
- return descriptor;
-}
-
-@end
-
-#pragma mark - GPBBoolValue
-
-@implementation GPBBoolValue
-
-@dynamic value;
-
-typedef struct GPBBoolValue__storage_ {
- uint32_t _has_storage_[1];
-} GPBBoolValue__storage_;
-
-// This method is threadsafe because it is initially called
-// in +initialize for each subclass.
-+ (GPBDescriptor *)descriptor {
- static GPBDescriptor *descriptor = nil;
- if (!descriptor) {
- static GPBMessageFieldDescription fields[] = {
- {
- .name = "value",
- .dataTypeSpecific.className = NULL,
- .number = GPBBoolValue_FieldNumber_Value,
- .hasIndex = 0,
- .offset = 1, // Stored in _has_storage_ to save space.
- .flags = GPBFieldOptional,
- .dataType = GPBDataTypeBool,
- },
- };
- GPBDescriptor *localDescriptor =
- [GPBDescriptor allocDescriptorForClass:[GPBBoolValue class]
- rootClass:[GPBWrappersRoot class]
- file:GPBWrappersRoot_FileDescriptor()
- fields:fields
- fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
- storageSize:sizeof(GPBBoolValue__storage_)
- flags:GPBDescriptorInitializationFlag_None];
- NSAssert(descriptor == nil, @"Startup recursed!");
- descriptor = localDescriptor;
- }
- return descriptor;
-}
-
-@end
-
-#pragma mark - GPBStringValue
-
-@implementation GPBStringValue
-
-@dynamic value;
-
-typedef struct GPBStringValue__storage_ {
- uint32_t _has_storage_[1];
- NSString *value;
-} GPBStringValue__storage_;
-
-// This method is threadsafe because it is initially called
-// in +initialize for each subclass.
-+ (GPBDescriptor *)descriptor {
- static GPBDescriptor *descriptor = nil;
- if (!descriptor) {
- static GPBMessageFieldDescription fields[] = {
- {
- .name = "value",
- .dataTypeSpecific.className = NULL,
- .number = GPBStringValue_FieldNumber_Value,
- .hasIndex = 0,
- .offset = (uint32_t)offsetof(GPBStringValue__storage_, value),
- .flags = GPBFieldOptional,
- .dataType = GPBDataTypeString,
- },
- };
- GPBDescriptor *localDescriptor =
- [GPBDescriptor allocDescriptorForClass:[GPBStringValue class]
- rootClass:[GPBWrappersRoot class]
- file:GPBWrappersRoot_FileDescriptor()
- fields:fields
- fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
- storageSize:sizeof(GPBStringValue__storage_)
- flags:GPBDescriptorInitializationFlag_None];
- NSAssert(descriptor == nil, @"Startup recursed!");
- descriptor = localDescriptor;
- }
- return descriptor;
-}
-
-@end
-
-#pragma mark - GPBBytesValue
-
-@implementation GPBBytesValue
-
-@dynamic value;
-
-typedef struct GPBBytesValue__storage_ {
- uint32_t _has_storage_[1];
- NSData *value;
-} GPBBytesValue__storage_;
-
-// This method is threadsafe because it is initially called
-// in +initialize for each subclass.
-+ (GPBDescriptor *)descriptor {
- static GPBDescriptor *descriptor = nil;
- if (!descriptor) {
- static GPBMessageFieldDescription fields[] = {
- {
- .name = "value",
- .dataTypeSpecific.className = NULL,
- .number = GPBBytesValue_FieldNumber_Value,
- .hasIndex = 0,
- .offset = (uint32_t)offsetof(GPBBytesValue__storage_, value),
- .flags = GPBFieldOptional,
- .dataType = GPBDataTypeBytes,
- },
- };
- GPBDescriptor *localDescriptor =
- [GPBDescriptor allocDescriptorForClass:[GPBBytesValue class]
- rootClass:[GPBWrappersRoot class]
- file:GPBWrappersRoot_FileDescriptor()
- fields:fields
- fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
- storageSize:sizeof(GPBBytesValue__storage_)
- flags:GPBDescriptorInitializationFlag_None];
- NSAssert(descriptor == nil, @"Startup recursed!");
- descriptor = localDescriptor;
- }
- return descriptor;
-}
-
-@end
-
-
-#pragma clang diagnostic pop
-
-// @@protoc_insertion_point(global_scope)