diff options
Diffstat (limited to 'StoneIsland/platforms/ios/Pods')
282 files changed, 827 insertions, 56147 deletions
diff --git a/StoneIsland/platforms/ios/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/FirebaseAnalytics b/StoneIsland/platforms/ios/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/FirebaseAnalytics Binary files differdeleted file mode 100755 index 4a346c5d..00000000 --- a/StoneIsland/platforms/ios/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/FirebaseAnalytics +++ /dev/null diff --git a/StoneIsland/platforms/ios/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRAnalytics+AppDelegate.h b/StoneIsland/platforms/ios/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRAnalytics+AppDelegate.h deleted file mode 100755 index d499af66..00000000 --- a/StoneIsland/platforms/ios/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRAnalytics+AppDelegate.h +++ /dev/null @@ -1,62 +0,0 @@ -#import <Foundation/Foundation.h> - -#import "FIRAnalytics.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * Provides App Delegate handlers to be used in your App Delegate. - * - * To save time integrating Firebase Analytics in an application, Firebase Analytics does not - * require delegation implementation from the AppDelegate. Instead this is automatically done by - * Firebase Analytics. Should you choose instead to delegate manually, you can turn off the App - * Delegate Proxy by adding FirebaseAppDelegateProxyEnabled into your app's Info.plist and setting - * it to NO, and adding the methods in this category to corresponding delegation handlers. - * - * To handle Universal Links, you must return YES in - * [UIApplicationDelegate application:didFinishLaunchingWithOptions:]. - */ -@interface FIRAnalytics (AppDelegate) - -/** - * Handles events related to a URL session that are waiting to be processed. - * - * For optimal use of Firebase Analytics, call this method from the - * [UIApplicationDelegate application:handleEventsForBackgroundURLSession:completionHandler] - * method of the app delegate in your app. - * - * @param identifier The identifier of the URL session requiring attention. - * @param completionHandler The completion handler to call when you finish processing the events. - * Calling this completion handler lets the system know that your app's user interface is - * updated and a new snapshot can be taken. - */ -+ (void)handleEventsForBackgroundURLSession:(NSString *)identifier - completionHandler:(nullable void (^)(void))completionHandler; - -/** - * Handles the event when the app is launched by a URL. - * - * Call this method from [UIApplicationDelegate application:openURL:options:] (on iOS 9.0 and - * above), or [UIApplicationDelegate application:openURL:sourceApplication:annotation:] (on - * iOS 8.x and below) in your app. - * - * @param url The URL resource to open. This resource can be a network resource or a file. - */ -+ (void)handleOpenURL:(NSURL *)url; - -/** - * Handles the event when the app receives data associated with user activity that includes a - * Universal Link (on iOS 9.0 and above). - * - * Call this method from [UIApplication continueUserActivity:restorationHandler:] in your app - * delegate (on iOS 9.0 and above). - * - * @param userActivity The activity object containing the data associated with the task the user - * was performing. - */ -+ (void)handleUserActivity:(id)userActivity; - -@end - -NS_ASSUME_NONNULL_END - diff --git a/StoneIsland/platforms/ios/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRAnalytics.h b/StoneIsland/platforms/ios/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRAnalytics.h deleted file mode 100755 index b6d22671..00000000 --- a/StoneIsland/platforms/ios/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRAnalytics.h +++ /dev/null @@ -1,114 +0,0 @@ -#import <Foundation/Foundation.h> - -#import "FIRAnalyticsSwiftNameSupport.h" -#import "FIREventNames.h" -#import "FIRParameterNames.h" -#import "FIRUserPropertyNames.h" - -NS_ASSUME_NONNULL_BEGIN - -/// The top level Firebase Analytics singleton that provides methods for logging events and setting -/// user properties. See <a href="http://goo.gl/gz8SLz">the developer guides</a> for general -/// information on using Firebase Analytics in your apps. -FIR_SWIFT_NAME(Analytics) -@interface FIRAnalytics : NSObject - -/// Logs an app event. The event can have up to 25 parameters. Events with the same name must have -/// the same parameters. Up to 500 event names are supported. Using predefined events and/or -/// parameters is recommended for optimal reporting. -/// -/// The following event names are reserved and cannot be used: -/// <ul> -/// <li>ad_activeview</li> -/// <li>ad_click</li> -/// <li>ad_exposure</li> -/// <li>ad_impression</li> -/// <li>ad_query</li> -/// <li>adunit_exposure</li> -/// <li>app_clear_data</li> -/// <li>app_remove</li> -/// <li>app_update</li> -/// <li>error</li> -/// <li>first_open</li> -/// <li>in_app_purchase</li> -/// <li>notification_dismiss</li> -/// <li>notification_foreground</li> -/// <li>notification_open</li> -/// <li>notification_receive</li> -/// <li>os_update</li> -/// <li>screen_view</li> -/// <li>session_start</li> -/// <li>user_engagement</li> -/// </ul> -/// -/// @param name The name of the event. Should contain 1 to 40 alphanumeric characters or -/// underscores. The name must start with an alphabetic character. Some event names are -/// reserved. See FIREventNames.h for the list of reserved event names. The "firebase_", -/// "google_", and "ga_" prefixes are reserved and should not be used. Note that event names are -/// case-sensitive and that logging two events whose names differ only in case will result in -/// two distinct events. -/// @param parameters The dictionary of event parameters. Passing nil indicates that the event has -/// no parameters. Parameter names can be up to 40 characters long and must start with an -/// alphabetic character and contain only alphanumeric characters and underscores. Only NSString -/// and NSNumber (signed 64-bit integer and 64-bit floating-point number) parameter types are -/// supported. NSString parameter values can be up to 100 characters long. The "firebase_", -/// "google_", and "ga_" prefixes are reserved and should not be used for parameter names. -+ (void)logEventWithName:(NSString *)name - parameters:(nullable NSDictionary<NSString *, id> *)parameters - FIR_SWIFT_NAME(logEvent(_:parameters:)); - -/// Sets a user property to a given value. Up to 25 user property names are supported. Once set, -/// user property values persist throughout the app lifecycle and across sessions. -/// -/// The following user property names are reserved and cannot be used: -/// <ul> -/// <li>first_open_time</li> -/// <li>last_deep_link_referrer</li> -/// <li>user_id</li> -/// </ul> -/// -/// @param value The value of the user property. Values can be up to 36 characters long. Setting the -/// value to nil removes the user property. -/// @param name The name of the user property to set. Should contain 1 to 24 alphanumeric characters -/// or underscores and must start with an alphabetic character. The "firebase_", "google_", and -/// "ga_" prefixes are reserved and should not be used for user property names. -+ (void)setUserPropertyString:(nullable NSString *)value forName:(NSString *)name - FIR_SWIFT_NAME(setUserProperty(_:forName:)); - -/// Sets the user ID property. This feature must be used in accordance with -/// <a href="https://www.google.com/policies/privacy">Google's Privacy Policy</a> -/// -/// @param userID The user ID to ascribe to the user of this app on this device, which must be -/// non-empty and no more than 36 characters long. Setting userID to nil removes the user ID. -+ (void)setUserID:(nullable NSString *)userID; - -/// Sets the current screen name, which specifies the current visual context in your app. This helps -/// identify the areas in your app where users spend their time and how they interact with your app. -/// -/// Note that screen reporting is enabled automatically and records the class name of the current -/// UIViewController for you without requiring you to call this method. If you implement -/// viewDidAppear in your UIViewController but do not call [super viewDidAppear:], that screen class -/// will not be automatically tracked. The class name can optionally be overridden by calling this -/// method in the viewDidAppear callback of your UIViewController and specifying the -/// screenClassOverride parameter. -/// -/// If your app does not use a distinct UIViewController for each screen, you should call this -/// method and specify a distinct screenName each time a new screen is presented to the user. -/// -/// The screen name and screen class remain in effect until the current UIViewController changes or -/// a new call to setScreenName:screenClass: is made. -/// -/// @param screenName The name of the current screen. Should contain 1 to 100 characters. Set to nil -/// to clear the current screen name. -/// @param screenClassOverride The name of the screen class. Should contain 1 to 100 characters. By -/// default this is the class name of the current UIViewController. Set to nil to revert to the -/// default class name. -+ (void)setScreenName:(nullable NSString *)screenName - screenClass:(nullable NSString *)screenClassOverride; - -/// The unique ID for this instance of the application. -+ (NSString *)appInstanceID; - -@end - -NS_ASSUME_NONNULL_END diff --git a/StoneIsland/platforms/ios/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRAnalyticsConfiguration.h b/StoneIsland/platforms/ios/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRAnalyticsConfiguration.h deleted file mode 100755 index dc227a4c..00000000 --- a/StoneIsland/platforms/ios/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRAnalyticsConfiguration.h +++ /dev/null @@ -1 +0,0 @@ -#import <FirebaseCore/FIRAnalyticsConfiguration.h> diff --git a/StoneIsland/platforms/ios/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRAnalyticsSwiftNameSupport.h b/StoneIsland/platforms/ios/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRAnalyticsSwiftNameSupport.h deleted file mode 100755 index 50fbf2e2..00000000 --- a/StoneIsland/platforms/ios/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRAnalyticsSwiftNameSupport.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef FIR_SWIFT_NAME - -#import <Foundation/Foundation.h> - -// NS_SWIFT_NAME can only translate factory methods before the iOS 9.3 SDK. -// Wrap it in our own macro if it's a non-compatible SDK. -#ifdef __IPHONE_9_3 -#define FIR_SWIFT_NAME(X) NS_SWIFT_NAME(X) -#else -#define FIR_SWIFT_NAME(X) // Intentionally blank. -#endif // #ifdef __IPHONE_9_3 - -#endif // FIR_SWIFT_NAME diff --git a/StoneIsland/platforms/ios/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRApp.h b/StoneIsland/platforms/ios/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRApp.h deleted file mode 100755 index de24da17..00000000 --- a/StoneIsland/platforms/ios/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRApp.h +++ /dev/null @@ -1 +0,0 @@ -#import <FirebaseCore/FIRApp.h> diff --git a/StoneIsland/platforms/ios/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRConfiguration.h b/StoneIsland/platforms/ios/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRConfiguration.h deleted file mode 100755 index be2ff7bf..00000000 --- a/StoneIsland/platforms/ios/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRConfiguration.h +++ /dev/null @@ -1 +0,0 @@ -#import <FirebaseCore/FIRConfiguration.h> diff --git a/StoneIsland/platforms/ios/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIREventNames.h b/StoneIsland/platforms/ios/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIREventNames.h deleted file mode 100755 index ac4e0abf..00000000 --- a/StoneIsland/platforms/ios/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIREventNames.h +++ /dev/null @@ -1,391 +0,0 @@ -/// @file FIREventNames.h -/// -/// Predefined event names. -/// -/// An Event is an important occurrence in your app that you want to measure. You can report up to -/// 500 different types of Events per app and you can associate up to 25 unique parameters with each -/// Event type. Some common events are suggested below, but you may also choose to specify custom -/// Event types that are associated with your specific app. Each event type is identified by a -/// unique name. Event names can be up to 40 characters long, may only contain alphanumeric -/// characters and underscores ("_"), and must start with an alphabetic character. The "firebase_", -/// "google_", and "ga_" prefixes are reserved and should not be used. - -#import "FIRAnalyticsSwiftNameSupport.h" - -/// Add Payment Info event. This event signifies that a user has submitted their payment information -/// to your app. -static NSString *const kFIREventAddPaymentInfo FIR_SWIFT_NAME(AnalyticsEventAddPaymentInfo) = - @"add_payment_info"; - -/// E-Commerce Add To Cart event. This event signifies that an item was added to a cart for -/// purchase. Add this event to a funnel with kFIREventEcommercePurchase to gauge the effectiveness -/// of your checkout process. Note: If you supply the @c kFIRParameterValue parameter, you must -/// also supply the @c kFIRParameterCurrency parameter so that revenue metrics can be computed -/// accurately. Params: -/// -/// <ul> -/// <li>@c kFIRParameterQuantity (signed 64-bit integer as NSNumber)</li> -/// <li>@c kFIRParameterItemID (NSString)</li> -/// <li>@c kFIRParameterItemName (NSString)</li> -/// <li>@c kFIRParameterItemCategory (NSString)</li> -/// <li>@c kFIRParameterItemLocationID (NSString) (optional)</li> -/// <li>@c kFIRParameterPrice (double as NSNumber) (optional)</li> -/// <li>@c kFIRParameterCurrency (NSString) (optional)</li> -/// <li>@c kFIRParameterValue (double as NSNumber) (optional)</li> -/// <li>@c kFIRParameterOrigin (NSString) (optional)</li> -/// <li>@c kFIRParameterDestination (NSString) (optional)</li> -/// <li>@c kFIRParameterStartDate (NSString) (optional)</li> -/// <li>@c kFIRParameterEndDate (NSString) (optional)</li> -/// </ul> -static NSString *const kFIREventAddToCart FIR_SWIFT_NAME(AnalyticsEventAddToCart) = @"add_to_cart"; - -/// E-Commerce Add To Wishlist event. This event signifies that an item was added to a wishlist. -/// Use this event to identify popular gift items in your app. Note: If you supply the -/// @c kFIRParameterValue parameter, you must also supply the @c kFIRParameterCurrency -/// parameter so that revenue metrics can be computed accurately. Params: -/// -/// <ul> -/// <li>@c kFIRParameterQuantity (signed 64-bit integer as NSNumber)</li> -/// <li>@c kFIRParameterItemID (NSString)</li> -/// <li>@c kFIRParameterItemName (NSString)</li> -/// <li>@c kFIRParameterItemCategory (NSString)</li> -/// <li>@c kFIRParameterItemLocationID (NSString) (optional)</li> -/// <li>@c kFIRParameterPrice (double as NSNumber) (optional)</li> -/// <li>@c kFIRParameterCurrency (NSString) (optional)</li> -/// <li>@c kFIRParameterValue (double as NSNumber) (optional)</li> -/// </ul> -static NSString *const kFIREventAddToWishlist FIR_SWIFT_NAME(AnalyticsEventAddToWishlist) = - @"add_to_wishlist"; - -/// App Open event. By logging this event when an App is moved to the foreground, developers can -/// understand how often users leave and return during the course of a Session. Although Sessions -/// are automatically reported, this event can provide further clarification around the continuous -/// engagement of app-users. -static NSString *const kFIREventAppOpen FIR_SWIFT_NAME(AnalyticsEventAppOpen) = @"app_open"; - -/// E-Commerce Begin Checkout event. This event signifies that a user has begun the process of -/// checking out. Add this event to a funnel with your kFIREventEcommercePurchase event to gauge the -/// effectiveness of your checkout process. Note: If you supply the @c kFIRParameterValue -/// parameter, you must also supply the @c kFIRParameterCurrency parameter so that revenue -/// metrics can be computed accurately. Params: -/// -/// <ul> -/// <li>@c kFIRParameterValue (double as NSNumber) (optional)</li> -/// <li>@c kFIRParameterCurrency (NSString) (optional)</li> -/// <li>@c kFIRParameterTransactionID (NSString) (optional)</li> -/// <li>@c kFIRParameterStartDate (NSString) (optional)</li> -/// <li>@c kFIRParameterEndDate (NSString) (optional)</li> -/// <li>@c kFIRParameterNumberOfNights (signed 64-bit integer as NSNumber) (optional) for -/// hotel bookings</li> -/// <li>@c kFIRParameterNumberOfRooms (signed 64-bit integer as NSNumber) (optional) for -/// hotel bookings</li> -/// <li>@c kFIRParameterNumberOfPassengers (signed 64-bit integer as NSNumber) (optional) -/// for travel bookings</li> -/// <li>@c kFIRParameterOrigin (NSString) (optional)</li> -/// <li>@c kFIRParameterDestination (NSString) (optional)</li> -/// <li>@c kFIRParameterTravelClass (NSString) (optional) for travel bookings</li> -/// </ul> -static NSString *const kFIREventBeginCheckout FIR_SWIFT_NAME(AnalyticsEventBeginCheckout) = - @"begin_checkout"; - -/// Campaign Detail event. Log this event to supply the referral details of a re-engagement -/// campaign. Note: you must supply at least one of the required parameters kFIRParameterSource, -/// kFIRParameterMedium or kFIRParameterCampaign. Params: -/// -/// <ul> -/// <li>@c kFIRParameterSource (NSString)</li> -/// <li>@c kFIRParameterMedium (NSString)</li> -/// <li>@c kFIRParameterCampaign (NSString)</li> -/// <li>@c kFIRParameterTerm (NSString) (optional)</li> -/// <li>@c kFIRParameterContent (NSString) (optional)</li> -/// <li>@c kFIRParameterAdNetworkClickID (NSString) (optional)</li> -/// <li>@c kFIRParameterCP1 (NSString) (optional)</li> -/// </ul> -static NSString *const kFIREventCampaignDetails FIR_SWIFT_NAME(AnalyticsEventCampaignDetails) = - @"campaign_details"; - -/// Checkout progress. Params: -/// -/// <ul> -/// <li>@c kFIRParameterCheckoutStep (unsigned 64-bit integer as NSNumber)</li> -/// <li>@c kFIRParameterCheckoutOption (NSString) (optional)</li> -/// </ul> -static NSString *const kFIREventCheckoutProgress FIR_SWIFT_NAME(AnalyticsEventCheckoutProgress) = - @"checkout_progress"; - -/// Earn Virtual Currency event. This event tracks the awarding of virtual currency in your app. Log -/// this along with @c kFIREventSpendVirtualCurrency to better understand your virtual economy. -/// Params: -/// -/// <ul> -/// <li>@c kFIRParameterVirtualCurrencyName (NSString)</li> -/// <li>@c kFIRParameterValue (signed 64-bit integer or double as NSNumber)</li> -/// </ul> -static NSString *const kFIREventEarnVirtualCurrency - FIR_SWIFT_NAME(AnalyticsEventEarnVirtualCurrency) = @"earn_virtual_currency"; - -/// E-Commerce Purchase event. This event signifies that an item was purchased by a user. Note: -/// This is different from the in-app purchase event, which is reported automatically for App -/// Store-based apps. Note: If you supply the @c kFIRParameterValue parameter, you must also -/// supply the @c kFIRParameterCurrency parameter so that revenue metrics can be computed -/// accurately. Params: -/// -/// <ul> -/// <li>@c kFIRParameterCurrency (NSString) (optional)</li> -/// <li>@c kFIRParameterValue (double as NSNumber) (optional)</li> -/// <li>@c kFIRParameterTransactionID (NSString) (optional)</li> -/// <li>@c kFIRParameterTax (double as NSNumber) (optional)</li> -/// <li>@c kFIRParameterShipping (double as NSNumber) (optional)</li> -/// <li>@c kFIRParameterCoupon (NSString) (optional)</li> -/// <li>@c kFIRParameterLocation (NSString) (optional)</li> -/// <li>@c kFIRParameterStartDate (NSString) (optional)</li> -/// <li>@c kFIRParameterEndDate (NSString) (optional)</li> -/// <li>@c kFIRParameterNumberOfNights (signed 64-bit integer as NSNumber) (optional) for -/// hotel bookings</li> -/// <li>@c kFIRParameterNumberOfRooms (signed 64-bit integer as NSNumber) (optional) for -/// hotel bookings</li> -/// <li>@c kFIRParameterNumberOfPassengers (signed 64-bit integer as NSNumber) (optional) -/// for travel bookings</li> -/// <li>@c kFIRParameterOrigin (NSString) (optional)</li> -/// <li>@c kFIRParameterDestination (NSString) (optional)</li> -/// <li>@c kFIRParameterTravelClass (NSString) (optional) for travel bookings</li> -/// </ul> -static NSString *const kFIREventEcommercePurchase FIR_SWIFT_NAME(AnalyticsEventEcommercePurchase) = - @"ecommerce_purchase"; - -/// Generate Lead event. Log this event when a lead has been generated in the app to understand the -/// efficacy of your install and re-engagement campaigns. Note: If you supply the -/// @c kFIRParameterValue parameter, you must also supply the @c kFIRParameterCurrency -/// parameter so that revenue metrics can be computed accurately. Params: -/// -/// <ul> -/// <li>@c kFIRParameterCurrency (NSString) (optional)</li> -/// <li>@c kFIRParameterValue (double as NSNumber) (optional)</li> -/// </ul> -static NSString *const kFIREventGenerateLead FIR_SWIFT_NAME(AnalyticsEventGenerateLead) = - @"generate_lead"; - -/// Join Group event. Log this event when a user joins a group such as a guild, team or family. Use -/// this event to analyze how popular certain groups or social features are in your app. Params: -/// -/// <ul> -/// <li>@c kFIRParameterGroupID (NSString)</li> -/// </ul> -static NSString *const kFIREventJoinGroup FIR_SWIFT_NAME(AnalyticsEventJoinGroup) = @"join_group"; - -/// Level Up event. This event signifies that a player has leveled up in your gaming app. It can -/// help you gauge the level distribution of your userbase and help you identify certain levels that -/// are difficult to pass. Params: -/// -/// <ul> -/// <li>@c kFIRParameterLevel (signed 64-bit integer as NSNumber)</li> -/// <li>@c kFIRParameterCharacter (NSString) (optional)</li> -/// </ul> -static NSString *const kFIREventLevelUp FIR_SWIFT_NAME(AnalyticsEventLevelUp) = @"level_up"; - -/// Login event. Apps with a login feature can report this event to signify that a user has logged -/// in. -static NSString *const kFIREventLogin FIR_SWIFT_NAME(AnalyticsEventLogin) = @"login"; - -/// Post Score event. Log this event when the user posts a score in your gaming app. This event can -/// help you understand how users are actually performing in your game and it can help you correlate -/// high scores with certain audiences or behaviors. Params: -/// -/// <ul> -/// <li>@c kFIRParameterScore (signed 64-bit integer as NSNumber)</li> -/// <li>@c kFIRParameterLevel (signed 64-bit integer as NSNumber) (optional)</li> -/// <li>@c kFIRParameterCharacter (NSString) (optional)</li> -/// </ul> -static NSString *const kFIREventPostScore FIR_SWIFT_NAME(AnalyticsEventPostScore) = @"post_score"; - -/// Present Offer event. This event signifies that the app has presented a purchase offer to a user. -/// Add this event to a funnel with the kFIREventAddToCart and kFIREventEcommercePurchase to gauge -/// your conversion process. Note: If you supply the @c kFIRParameterValue parameter, you must -/// also supply the @c kFIRParameterCurrency parameter so that revenue metrics can be computed -/// accurately. Params: -/// -/// <ul> -/// <li>@c kFIRParameterQuantity (signed 64-bit integer as NSNumber)</li> -/// <li>@c kFIRParameterItemID (NSString)</li> -/// <li>@c kFIRParameterItemName (NSString)</li> -/// <li>@c kFIRParameterItemCategory (NSString)</li> -/// <li>@c kFIRParameterItemLocationID (NSString) (optional)</li> -/// <li>@c kFIRParameterPrice (double as NSNumber) (optional)</li> -/// <li>@c kFIRParameterCurrency (NSString) (optional)</li> -/// <li>@c kFIRParameterValue (double as NSNumber) (optional)</li> -/// </ul> -static NSString *const kFIREventPresentOffer FIR_SWIFT_NAME(AnalyticsEventPresentOffer) = - @"present_offer"; - -/// E-Commerce Purchase Refund event. This event signifies that an item purchase was refunded. -/// Note: If you supply the @c kFIRParameterValue parameter, you must also supply the -/// @c kFIRParameterCurrency parameter so that revenue metrics can be computed accurately. -/// Params: -/// -/// <ul> -/// <li>@c kFIRParameterCurrency (NSString) (optional)</li> -/// <li>@c kFIRParameterValue (double as NSNumber) (optional)</li> -/// <li>@c kFIRParameterTransactionID (NSString) (optional)</li> -/// </ul> -static NSString *const kFIREventPurchaseRefund FIR_SWIFT_NAME(AnalyticsEventPurchaseRefund) = - @"purchase_refund"; - -/// Remove from cart event. Params: -/// -/// <ul> -/// <li>@c kFIRParameterQuantity (signed 64-bit integer as NSNumber)</li> -/// <li>@c kFIRParameterItemID (NSString)</li> -/// <li>@c kFIRParameterItemName (NSString)</li> -/// <li>@c kFIRParameterItemCategory (NSString)</li> -/// <li>@c kFIRParameterItemLocationID (NSString) (optional)</li> -/// <li>@c kFIRParameterPrice (double as NSNumber) (optional)</li> -/// <li>@c kFIRParameterCurrency (NSString) (optional)</li> -/// <li>@c kFIRParameterValue (double as NSNumber) (optional)</li> -/// <li>@c kFIRParameterOrigin (NSString) (optional)</li> -/// <li>@c kFIRParameterDestination (NSString) (optional)</li> -/// <li>@c kFIRParameterStartDate (NSString) (optional)</li> -/// <li>@c kFIRParameterEndDate (NSString) (optional)</li> -/// </ul> -static NSString *const kFIREventRemoveFromCart FIR_SWIFT_NAME(AnalyticsEventRemoveFromCart) = - @"remove_from_cart"; - -/// Search event. Apps that support search features can use this event to contextualize search -/// operations by supplying the appropriate, corresponding parameters. This event can help you -/// identify the most popular content in your app. Params: -/// -/// <ul> -/// <li>@c kFIRParameterSearchTerm (NSString)</li> -/// <li>@c kFIRParameterStartDate (NSString) (optional)</li> -/// <li>@c kFIRParameterEndDate (NSString) (optional)</li> -/// <li>@c kFIRParameterNumberOfNights (signed 64-bit integer as NSNumber) (optional) for -/// hotel bookings</li> -/// <li>@c kFIRParameterNumberOfRooms (signed 64-bit integer as NSNumber) (optional) for -/// hotel bookings</li> -/// <li>@c kFIRParameterNumberOfPassengers (signed 64-bit integer as NSNumber) (optional) -/// for travel bookings</li> -/// <li>@c kFIRParameterOrigin (NSString) (optional)</li> -/// <li>@c kFIRParameterDestination (NSString) (optional)</li> -/// <li>@c kFIRParameterTravelClass (NSString) (optional) for travel bookings</li> -/// </ul> -static NSString *const kFIREventSearch FIR_SWIFT_NAME(AnalyticsEventSearch) = @"search"; - -/// Select Content event. This general purpose event signifies that a user has selected some content -/// of a certain type in an app. The content can be any object in your app. This event can help you -/// identify popular content and categories of content in your app. Params: -/// -/// <ul> -/// <li>@c kFIRParameterContentType (NSString)</li> -/// <li>@c kFIRParameterItemID (NSString)</li> -/// </ul> -static NSString *const kFIREventSelectContent FIR_SWIFT_NAME(AnalyticsEventSelectContent) = - @"select_content"; - -/// Set checkout option. Params: -/// -/// <ul> -/// <li>@c kFIRParameterCheckoutStep (unsigned 64-bit integer as NSNumber)</li> -/// <li>@c kFIRParameterCheckoutOption (NSString)</li> -/// </ul> -static NSString *const kFIREventSetCheckoutOption FIR_SWIFT_NAME(AnalyticsEventSetCheckoutOption) = - @"set_checkout_option"; - -/// Share event. Apps with social features can log the Share event to identify the most viral -/// content. Params: -/// -/// <ul> -/// <li>@c kFIRParameterContentType (NSString)</li> -/// <li>@c kFIRParameterItemID (NSString)</li> -/// </ul> -static NSString *const kFIREventShare FIR_SWIFT_NAME(AnalyticsEventShare) = @"share"; - -/// Sign Up event. This event indicates that a user has signed up for an account in your app. The -/// parameter signifies the method by which the user signed up. Use this event to understand the -/// different behaviors between logged in and logged out users. Params: -/// -/// <ul> -/// <li>@c kFIRParameterSignUpMethod (NSString)</li> -/// </ul> -static NSString *const kFIREventSignUp FIR_SWIFT_NAME(AnalyticsEventSignUp) = @"sign_up"; - -/// Spend Virtual Currency event. This event tracks the sale of virtual goods in your app and can -/// help you identify which virtual goods are the most popular objects of purchase. Params: -/// -/// <ul> -/// <li>@c kFIRParameterItemName (NSString)</li> -/// <li>@c kFIRParameterVirtualCurrencyName (NSString)</li> -/// <li>@c kFIRParameterValue (signed 64-bit integer or double as NSNumber)</li> -/// </ul> -static NSString *const kFIREventSpendVirtualCurrency - FIR_SWIFT_NAME(AnalyticsEventSpendVirtualCurrency) = @"spend_virtual_currency"; - -/// Tutorial Begin event. This event signifies the start of the on-boarding process in your app. Use -/// this in a funnel with kFIREventTutorialComplete to understand how many users complete this -/// process and move on to the full app experience. -static NSString *const kFIREventTutorialBegin FIR_SWIFT_NAME(AnalyticsEventTutorialBegin) = - @"tutorial_begin"; - -/// Tutorial End event. Use this event to signify the user's completion of your app's on-boarding -/// process. Add this to a funnel with kFIREventTutorialBegin to gauge the completion rate of your -/// on-boarding process. -static NSString *const kFIREventTutorialComplete FIR_SWIFT_NAME(AnalyticsEventTutorialComplete) = - @"tutorial_complete"; - -/// Unlock Achievement event. Log this event when the user has unlocked an achievement in your -/// game. Since achievements generally represent the breadth of a gaming experience, this event can -/// help you understand how many users are experiencing all that your game has to offer. Params: -/// -/// <ul> -/// <li>@c kFIRParameterAchievementID (NSString)</li> -/// </ul> -static NSString *const kFIREventUnlockAchievement FIR_SWIFT_NAME(AnalyticsEventUnlockAchievement) = - @"unlock_achievement"; - -/// View Item event. This event signifies that some content was shown to the user. This content may -/// be a product, a webpage or just a simple image or text. Use the appropriate parameters to -/// contextualize the event. Use this event to discover the most popular items viewed in your app. -/// Note: If you supply the @c kFIRParameterValue parameter, you must also supply the -/// @c kFIRParameterCurrency parameter so that revenue metrics can be computed accurately. -/// Params: -/// -/// <ul> -/// <li>@c kFIRParameterItemID (NSString)</li> -/// <li>@c kFIRParameterItemName (NSString)</li> -/// <li>@c kFIRParameterItemCategory (NSString)</li> -/// <li>@c kFIRParameterItemLocationID (NSString) (optional)</li> -/// <li>@c kFIRParameterPrice (double as NSNumber) (optional)</li> -/// <li>@c kFIRParameterQuantity (signed 64-bit integer as NSNumber) (optional)</li> -/// <li>@c kFIRParameterCurrency (NSString) (optional)</li> -/// <li>@c kFIRParameterValue (double as NSNumber) (optional)</li> -/// <li>@c kFIRParameterStartDate (NSString) (optional)</li> -/// <li>@c kFIRParameterEndDate (NSString) (optional)</li> -/// <li>@c kFIRParameterFlightNumber (NSString) (optional) for travel bookings</li> -/// <li>@c kFIRParameterNumberOfPassengers (signed 64-bit integer as NSNumber) (optional) -/// for travel bookings</li> -/// <li>@c kFIRParameterNumberOfNights (signed 64-bit integer as NSNumber) (optional) for -/// travel bookings</li> -/// <li>@c kFIRParameterNumberOfRooms (signed 64-bit integer as NSNumber) (optional) for -/// travel bookings</li> -/// <li>@c kFIRParameterOrigin (NSString) (optional)</li> -/// <li>@c kFIRParameterDestination (NSString) (optional)</li> -/// <li>@c kFIRParameterSearchTerm (NSString) (optional) for travel bookings</li> -/// <li>@c kFIRParameterTravelClass (NSString) (optional) for travel bookings</li> -/// </ul> -static NSString *const kFIREventViewItem FIR_SWIFT_NAME(AnalyticsEventViewItem) = @"view_item"; - -/// View Item List event. Log this event when the user has been presented with a list of items of a -/// certain category. Params: -/// -/// <ul> -/// <li>@c kFIRParameterItemCategory (NSString)</li> -/// </ul> -static NSString *const kFIREventViewItemList FIR_SWIFT_NAME(AnalyticsEventViewItemList) = - @"view_item_list"; - -/// View Search Results event. Log this event when the user has been presented with the results of a -/// search. Params: -/// -/// <ul> -/// <li>@c kFIRParameterSearchTerm (NSString)</li> -/// </ul> -static NSString *const kFIREventViewSearchResults FIR_SWIFT_NAME(AnalyticsEventViewSearchResults) = - @"view_search_results"; diff --git a/StoneIsland/platforms/ios/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIROptions.h b/StoneIsland/platforms/ios/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIROptions.h deleted file mode 100755 index 126824b0..00000000 --- a/StoneIsland/platforms/ios/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIROptions.h +++ /dev/null @@ -1 +0,0 @@ -#import <FirebaseCore/FIROptions.h> diff --git a/StoneIsland/platforms/ios/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRParameterNames.h b/StoneIsland/platforms/ios/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRParameterNames.h deleted file mode 100755 index 44d60b1c..00000000 --- a/StoneIsland/platforms/ios/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRParameterNames.h +++ /dev/null @@ -1,487 +0,0 @@ -/// @file FIRParameterNames.h -/// -/// Predefined event parameter names. -/// -/// Params supply information that contextualize Events. You can associate up to 25 unique Params -/// with each Event type. Some Params are suggested below for certain common Events, but you are -/// not limited to these. You may supply extra Params for suggested Events or custom Params for -/// Custom events. Param names can be up to 40 characters long, may only contain alphanumeric -/// characters and underscores ("_"), and must start with an alphabetic character. Param values can -/// be up to 100 characters long. The "firebase_", "google_", and "ga_" prefixes are reserved and -/// should not be used. - -#import "FIRAnalyticsSwiftNameSupport.h" - -/// Game achievement ID (NSString). -/// <pre> -/// NSDictionary *params = @{ -/// kFIRParameterAchievementID : @"10_matches_won", -/// // ... -/// }; -/// </pre> -static NSString *const kFIRParameterAchievementID FIR_SWIFT_NAME(AnalyticsParameterAchievementID) = - @"achievement_id"; - -/// Ad Network Click ID (NSString). Used for network-specific click IDs which vary in format. -/// <pre> -/// NSDictionary *params = @{ -/// kFIRParameterAdNetworkClickID : @"1234567", -/// // ... -/// }; -/// </pre> -static NSString *const kFIRParameterAdNetworkClickID - FIR_SWIFT_NAME(AnalyticsParameterAdNetworkClickID) = @"aclid"; - -/// The store or affiliation from which this transaction occurred (NSString). -/// <pre> -/// NSDictionary *params = @{ -/// kFIRParameterAffiliation : @"Google Store", -/// // ... -/// }; -/// </pre> -static NSString *const kFIRParameterAffiliation FIR_SWIFT_NAME(AnalyticsParameterAffiliation) = - @"affiliation"; - -/// The individual campaign name, slogan, promo code, etc. Some networks have pre-defined macro to -/// capture campaign information, otherwise can be populated by developer. Highly Recommended -/// (NSString). -/// <pre> -/// NSDictionary *params = @{ -/// kFIRParameterCampaign : @"winter_promotion", -/// // ... -/// }; -/// </pre> -static NSString *const kFIRParameterCampaign FIR_SWIFT_NAME(AnalyticsParameterCampaign) = - @"campaign"; - -/// Character used in game (NSString). -/// <pre> -/// NSDictionary *params = @{ -/// kFIRParameterCharacter : @"beat_boss", -/// // ... -/// }; -/// </pre> -static NSString *const kFIRParameterCharacter FIR_SWIFT_NAME(AnalyticsParameterCharacter) = - @"character"; - -/// The checkout step (1..N) (unsigned 64-bit integer as NSNumber). -/// <pre> -/// NSDictionary *params = @{ -/// kFIRParameterCheckoutStep : @"1", -/// // ... -/// }; -/// </pre> -static NSString *const kFIRParameterCheckoutStep FIR_SWIFT_NAME(AnalyticsParameterCheckoutStep) = - @"checkout_step"; - -/// Some option on a step in an ecommerce flow (NSString). -/// <pre> -/// NSDictionary *params = @{ -/// kFIRParameterCheckoutOption : @"Visa", -/// // ... -/// }; -/// </pre> -static NSString *const kFIRParameterCheckoutOption - FIR_SWIFT_NAME(AnalyticsParameterCheckoutOption) = @"checkout_option"; - -/// Campaign content (NSString). -static NSString *const kFIRParameterContent FIR_SWIFT_NAME(AnalyticsParameterContent) = @"content"; - -/// Type of content selected (NSString). -/// <pre> -/// NSDictionary *params = @{ -/// kFIRParameterContentType : @"news article", -/// // ... -/// }; -/// </pre> -static NSString *const kFIRParameterContentType FIR_SWIFT_NAME(AnalyticsParameterContentType) = - @"content_type"; - -/// Coupon code for a purchasable item (NSString). -/// <pre> -/// NSDictionary *params = @{ -/// kFIRParameterCoupon : @"zz123", -/// // ... -/// }; -/// </pre> -static NSString *const kFIRParameterCoupon FIR_SWIFT_NAME(AnalyticsParameterCoupon) = @"coupon"; - -/// Campaign custom parameter (NSString). Used as a method of capturing custom data in a campaign. -/// Use varies by network. -/// <pre> -/// NSDictionary *params = @{ -/// kFIRParameterCP1 : @"custom_data", -/// // ... -/// }; -/// </pre> -static NSString *const kFIRParameterCP1 FIR_SWIFT_NAME(AnalyticsParameterCP1) = @"cp1"; - -/// The name of a creative used in a promotional spot (NSString). -/// <pre> -/// NSDictionary *params = @{ -/// kFIRParameterCreativeName : @"Summer Sale", -/// // ... -/// }; -/// </pre> -static NSString *const kFIRParameterCreativeName FIR_SWIFT_NAME(AnalyticsParameterCreativeName) = - @"creative_name"; - -/// The name of a creative slot (NSString). -/// <pre> -/// NSDictionary *params = @{ -/// kFIRParameterCreativeSlot : @"summer_banner2", -/// // ... -/// }; -/// </pre> -static NSString *const kFIRParameterCreativeSlot FIR_SWIFT_NAME(AnalyticsParameterCreativeSlot) = - @"creative_slot"; - -/// Purchase currency in 3-letter <a href="http://en.wikipedia.org/wiki/ISO_4217#Active_codes"> -/// ISO_4217</a> format (NSString). -/// <pre> -/// NSDictionary *params = @{ -/// kFIRParameterCurrency : @"USD", -/// // ... -/// }; -/// </pre> -static NSString *const kFIRParameterCurrency FIR_SWIFT_NAME(AnalyticsParameterCurrency) = - @"currency"; - -/// Flight or Travel destination (NSString). -/// <pre> -/// NSDictionary *params = @{ -/// kFIRParameterDestination : @"Mountain View, CA", -/// // ... -/// }; -/// </pre> -static NSString *const kFIRParameterDestination FIR_SWIFT_NAME(AnalyticsParameterDestination) = - @"destination"; - -/// The arrival date, check-out date or rental end date for the item. This should be in -/// YYYY-MM-DD format (NSString). -/// <pre> -/// NSDictionary *params = @{ -/// kFIRParameterEndDate : @"2015-09-14", -/// // ... -/// }; -/// </pre> -static NSString *const kFIRParameterEndDate FIR_SWIFT_NAME(AnalyticsParameterEndDate) = @"end_date"; - -/// Flight number for travel events (NSString). -/// <pre> -/// NSDictionary *params = @{ -/// kFIRParameterFlightNumber : @"ZZ800", -/// // ... -/// }; -/// </pre> -static NSString *const kFIRParameterFlightNumber FIR_SWIFT_NAME(AnalyticsParameterFlightNumber) = - @"flight_number"; - -/// Group/clan/guild ID (NSString). -/// <pre> -/// NSDictionary *params = @{ -/// kFIRParameterGroupID : @"g1", -/// // ... -/// }; -/// </pre> -static NSString *const kFIRParameterGroupID FIR_SWIFT_NAME(AnalyticsParameterGroupID) = @"group_id"; - -/// Index of an item in a list (signed 64-bit integer as NSNumber). -/// <pre> -/// NSDictionary *params = @{ -/// kFIRParameterIndex : @(1), -/// // ... -/// }; -/// </pre> -static NSString *const kFIRParameterIndex FIR_SWIFT_NAME(AnalyticsParameterIndex) = @"index"; - -/// Item brand (NSString). -/// <pre> -/// NSDictionary *params = @{ -/// kFIRParameterItemBrand : @"Google", -/// // ... -/// }; -/// </pre> -static NSString *const kFIRParameterItemBrand FIR_SWIFT_NAME(AnalyticsParameterItemBrand) = - @"item_brand"; - -/// Item category (NSString). -/// <pre> -/// NSDictionary *params = @{ -/// kFIRParameterItemCategory : @"t-shirts", -/// // ... -/// }; -/// </pre> -static NSString *const kFIRParameterItemCategory FIR_SWIFT_NAME(AnalyticsParameterItemCategory) = - @"item_category"; - -/// Item ID (NSString). -/// <pre> -/// NSDictionary *params = @{ -/// kFIRParameterItemID : @"p7654", -/// // ... -/// }; -/// </pre> -static NSString *const kFIRParameterItemID FIR_SWIFT_NAME(AnalyticsParameterItemID) = @"item_id"; - -/// The Google <a href="https://developers.google.com/places/place-id">Place ID</a> (NSString) that -/// corresponds to the associated item. Alternatively, you can supply your own custom Location ID. -/// <pre> -/// NSDictionary *params = @{ -/// kFIRParameterItemLocationID : @"ChIJiyj437sx3YAR9kUWC8QkLzQ", -/// // ... -/// }; -/// </pre> -static NSString *const kFIRParameterItemLocationID - FIR_SWIFT_NAME(AnalyticsParameterItemLocationID) = @"item_location_id"; - -/// Item name (NSString). -/// <pre> -/// NSDictionary *params = @{ -/// kFIRParameterItemName : @"abc", -/// // ... -/// }; -/// </pre> -static NSString *const kFIRParameterItemName FIR_SWIFT_NAME(AnalyticsParameterItemName) = - @"item_name"; - -/// The list in which the item was presented to the user (NSString). -/// <pre> -/// NSDictionary *params = @{ -/// kFIRParameterItemList : @"Search Results", -/// // ... -/// }; -/// </pre> -static NSString *const kFIRParameterItemList FIR_SWIFT_NAME(AnalyticsParameterItemList) = - @"item_list"; - -/// Item variant (NSString). -/// <pre> -/// NSDictionary *params = @{ -/// kFIRParameterItemVariant : @"Red", -/// // ... -/// }; -/// </pre> -static NSString *const kFIRParameterItemVariant FIR_SWIFT_NAME(AnalyticsParameterItemVariant) = - @"item_variant"; - -/// Level in game (signed 64-bit integer as NSNumber). -/// <pre> -/// NSDictionary *params = @{ -/// kFIRParameterLevel : @(42), -/// // ... -/// }; -/// </pre> -static NSString *const kFIRParameterLevel FIR_SWIFT_NAME(AnalyticsParameterLevel) = @"level"; - -/// Location (NSString). The Google <a href="https://developers.google.com/places/place-id">Place ID -/// </a> that corresponds to the associated event. Alternatively, you can supply your own custom -/// Location ID. -/// <pre> -/// NSDictionary *params = @{ -/// kFIRParameterLocation : @"ChIJiyj437sx3YAR9kUWC8QkLzQ", -/// // ... -/// }; -/// </pre> -static NSString *const kFIRParameterLocation FIR_SWIFT_NAME(AnalyticsParameterLocation) = - @"location"; - -/// The advertising or marketing medium, for example: cpc, banner, email, push. Highly recommended -/// (NSString). -/// <pre> -/// NSDictionary *params = @{ -/// kFIRParameterMedium : @"email", -/// // ... -/// }; -/// </pre> -static NSString *const kFIRParameterMedium FIR_SWIFT_NAME(AnalyticsParameterMedium) = @"medium"; - -/// Number of nights staying at hotel (signed 64-bit integer as NSNumber). -/// <pre> -/// NSDictionary *params = @{ -/// kFIRParameterNumberOfNights : @(3), -/// // ... -/// }; -/// </pre> -static NSString *const kFIRParameterNumberOfNights - FIR_SWIFT_NAME(AnalyticsParameterNumberOfNights) = @"number_of_nights"; - -/// Number of passengers traveling (signed 64-bit integer as NSNumber). -/// <pre> -/// NSDictionary *params = @{ -/// kFIRParameterNumberOfPassengers : @(11), -/// // ... -/// }; -/// </pre> -static NSString *const kFIRParameterNumberOfPassengers - FIR_SWIFT_NAME(AnalyticsParameterNumberOfPassengers) = @"number_of_passengers"; - -/// Number of rooms for travel events (signed 64-bit integer as NSNumber). -/// <pre> -/// NSDictionary *params = @{ -/// kFIRParameterNumberOfRooms : @(2), -/// // ... -/// }; -/// </pre> -static NSString *const kFIRParameterNumberOfRooms FIR_SWIFT_NAME(AnalyticsParameterNumberOfRooms) = - @"number_of_rooms"; - -/// Flight or Travel origin (NSString). -/// <pre> -/// NSDictionary *params = @{ -/// kFIRParameterOrigin : @"Mountain View, CA", -/// // ... -/// }; -/// </pre> -static NSString *const kFIRParameterOrigin FIR_SWIFT_NAME(AnalyticsParameterOrigin) = @"origin"; - -/// Purchase price (double as NSNumber). -/// <pre> -/// NSDictionary *params = @{ -/// kFIRParameterPrice : @(1.0), -/// kFIRParameterCurrency : @"USD", // e.g. $1.00 USD -/// // ... -/// }; -/// </pre> -static NSString *const kFIRParameterPrice FIR_SWIFT_NAME(AnalyticsParameterPrice) = @"price"; - -/// Purchase quantity (signed 64-bit integer as NSNumber). -/// <pre> -/// NSDictionary *params = @{ -/// kFIRParameterQuantity : @(1), -/// // ... -/// }; -/// </pre> -static NSString *const kFIRParameterQuantity FIR_SWIFT_NAME(AnalyticsParameterQuantity) = - @"quantity"; - -/// Score in game (signed 64-bit integer as NSNumber). -/// <pre> -/// NSDictionary *params = @{ -/// kFIRParameterScore : @(4200), -/// // ... -/// }; -/// </pre> -static NSString *const kFIRParameterScore FIR_SWIFT_NAME(AnalyticsParameterScore) = @"score"; - -/// The search string/keywords used (NSString). -/// <pre> -/// NSDictionary *params = @{ -/// kFIRParameterSearchTerm : @"periodic table", -/// // ... -/// }; -/// </pre> -static NSString *const kFIRParameterSearchTerm FIR_SWIFT_NAME(AnalyticsParameterSearchTerm) = - @"search_term"; - -/// Shipping cost (double as NSNumber). -/// <pre> -/// NSDictionary *params = @{ -/// kFIRParameterShipping : @(9.50), -/// kFIRParameterCurrency : @"USD", // e.g. $9.50 USD -/// // ... -/// }; -/// </pre> -static NSString *const kFIRParameterShipping FIR_SWIFT_NAME(AnalyticsParameterShipping) = - @"shipping"; - -/// Sign up method (NSString). -/// <pre> -/// NSDictionary *params = @{ -/// kFIRParameterSignUpMethod : @"google", -/// // ... -/// }; -/// </pre> -static NSString *const kFIRParameterSignUpMethod FIR_SWIFT_NAME(AnalyticsParameterSignUpMethod) = - @"sign_up_method"; - -/// The origin of your traffic, such as an Ad network (for example, google) or partner (urban -/// airship). Identify the advertiser, site, publication, etc. that is sending traffic to your -/// property. Highly recommended (NSString). -/// <pre> -/// NSDictionary *params = @{ -/// kFIRParameterSource : @"InMobi", -/// // ... -/// }; -/// </pre> -static NSString *const kFIRParameterSource FIR_SWIFT_NAME(AnalyticsParameterSource) = @"source"; - -/// The departure date, check-in date or rental start date for the item. This should be in -/// YYYY-MM-DD format (NSString). -/// <pre> -/// NSDictionary *params = @{ -/// kFIRParameterStartDate : @"2015-09-14", -/// // ... -/// }; -/// </pre> -static NSString *const kFIRParameterStartDate FIR_SWIFT_NAME(AnalyticsParameterStartDate) = - @"start_date"; - -/// Tax amount (double as NSNumber). -/// <pre> -/// NSDictionary *params = @{ -/// kFIRParameterTax : @(1.0), -/// kFIRParameterCurrency : @"USD", // e.g. $1.00 USD -/// // ... -/// }; -/// </pre> -static NSString *const kFIRParameterTax FIR_SWIFT_NAME(AnalyticsParameterTax) = @"tax"; - -/// If you're manually tagging keyword campaigns, you should use utm_term to specify the keyword -/// (NSString). -/// <pre> -/// NSDictionary *params = @{ -/// kFIRParameterTerm : @"game", -/// // ... -/// }; -/// </pre> -static NSString *const kFIRParameterTerm FIR_SWIFT_NAME(AnalyticsParameterTerm) = @"term"; - -/// A single ID for a ecommerce group transaction (NSString). -/// <pre> -/// NSDictionary *params = @{ -/// kFIRParameterTransactionID : @"ab7236dd9823", -/// // ... -/// }; -/// </pre> -static NSString *const kFIRParameterTransactionID FIR_SWIFT_NAME(AnalyticsParameterTransactionID) = - @"transaction_id"; - -/// Travel class (NSString). -/// <pre> -/// NSDictionary *params = @{ -/// kFIRParameterTravelClass : @"business", -/// // ... -/// }; -/// </pre> -static NSString *const kFIRParameterTravelClass FIR_SWIFT_NAME(AnalyticsParameterTravelClass) = - @"travel_class"; - -/// A context-specific numeric value which is accumulated automatically for each event type. This is -/// a general purpose parameter that is useful for accumulating a key metric that pertains to an -/// event. Examples include revenue, distance, time and points. Value should be specified as signed -/// 64-bit integer or double as NSNumber. Notes: Values for pre-defined currency-related events -/// (such as @c kFIREventAddToCart) should be supplied using double as NSNumber and must be -/// accompanied by a @c kFIRParameterCurrency parameter. The valid range of accumulated values is -/// [-9,223,372,036,854.77, 9,223,372,036,854.77]. Supplying a non-numeric value, omitting the -/// corresponding @c kFIRParameterCurrency parameter, or supplying an invalid -/// <a href="https://goo.gl/qqX3J2">currency code</a> for conversion events will cause that -/// conversion to be omitted from reporting. -/// <pre> -/// NSDictionary *params = @{ -/// kFIRParameterValue : @(3.99), -/// kFIRParameterCurrency : @"USD", // e.g. $3.99 USD -/// // ... -/// }; -/// </pre> -static NSString *const kFIRParameterValue FIR_SWIFT_NAME(AnalyticsParameterValue) = @"value"; - -/// Name of virtual currency type (NSString). -/// <pre> -/// NSDictionary *params = @{ -/// kFIRParameterVirtualCurrencyName : @"virtual_currency_name", -/// // ... -/// }; -/// </pre> -static NSString *const kFIRParameterVirtualCurrencyName - FIR_SWIFT_NAME(AnalyticsParameterVirtualCurrencyName) = @"virtual_currency_name"; diff --git a/StoneIsland/platforms/ios/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRUserPropertyNames.h b/StoneIsland/platforms/ios/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRUserPropertyNames.h deleted file mode 100755 index a2286354..00000000 --- a/StoneIsland/platforms/ios/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRUserPropertyNames.h +++ /dev/null @@ -1,17 +0,0 @@ -/// @file FIRUserPropertyNames.h -/// -/// Predefined user property names. -/// -/// A UserProperty is an attribute that describes the app-user. By supplying UserProperties, you can -/// later analyze different behaviors of various segments of your userbase. You may supply up to 25 -/// unique UserProperties per app, and you can use the name and value of your choosing for each one. -/// UserProperty names can be up to 24 characters long, may only contain alphanumeric characters and -/// underscores ("_"), and must start with an alphabetic character. UserProperty values can be up to -/// 36 characters long. The "firebase_", "google_", and "ga_" prefixes are reserved and should not -/// be used. - -#import "FIRAnalyticsSwiftNameSupport.h" - -/// The method used to sign in. For example, "google", "facebook" or "twitter". -static NSString *const kFIRUserPropertySignUpMethod - FIR_SWIFT_NAME(AnalyticsUserPropertySignUpMethod) = @"sign_up_method"; diff --git a/StoneIsland/platforms/ios/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FirebaseAnalytics.h b/StoneIsland/platforms/ios/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FirebaseAnalytics.h deleted file mode 100755 index e1e96f6d..00000000 --- a/StoneIsland/platforms/ios/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FirebaseAnalytics.h +++ /dev/null @@ -1,10 +0,0 @@ -#import "FIRAnalyticsConfiguration.h" -#import "FIRApp.h" -#import "FIRConfiguration.h" -#import "FIROptions.h" -#import "FIRAnalytics+AppDelegate.h" -#import "FIRAnalytics.h" -#import "FIRAnalyticsSwiftNameSupport.h" -#import "FIREventNames.h" -#import "FIRParameterNames.h" -#import "FIRUserPropertyNames.h" diff --git a/StoneIsland/platforms/ios/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Modules/module.modulemap b/StoneIsland/platforms/ios/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Modules/module.modulemap deleted file mode 100755 index 6394d59e..00000000 --- a/StoneIsland/platforms/ios/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Modules/module.modulemap +++ /dev/null @@ -1,8 +0,0 @@ -framework module FirebaseAnalytics { - umbrella header "FirebaseAnalytics.h" - export * - module * { export *} - link "sqlite3" - link "z" - link framework "UIKit" -}
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/FirebaseCore/Frameworks/FirebaseCore.framework/FirebaseCore b/StoneIsland/platforms/ios/Pods/FirebaseCore/Frameworks/FirebaseCore.framework/FirebaseCore Binary files differdeleted file mode 100755 index 7561ad5a..00000000 --- a/StoneIsland/platforms/ios/Pods/FirebaseCore/Frameworks/FirebaseCore.framework/FirebaseCore +++ /dev/null diff --git a/StoneIsland/platforms/ios/Pods/FirebaseCore/Frameworks/FirebaseCore.framework/Headers/FIRAnalyticsConfiguration.h b/StoneIsland/platforms/ios/Pods/FirebaseCore/Frameworks/FirebaseCore.framework/Headers/FIRAnalyticsConfiguration.h deleted file mode 100755 index f42eaf54..00000000 --- a/StoneIsland/platforms/ios/Pods/FirebaseCore/Frameworks/FirebaseCore.framework/Headers/FIRAnalyticsConfiguration.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright 2017 Google - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#import <Foundation/Foundation.h> - -#import "FIRCoreSwiftNameSupport.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * This class provides configuration fields for Firebase Analytics. - */ -FIR_SWIFT_NAME(AnalyticsConfiguration) -@interface FIRAnalyticsConfiguration : NSObject - -/** - * Returns the shared instance of FIRAnalyticsConfiguration. - */ -+ (FIRAnalyticsConfiguration *)sharedInstance FIR_SWIFT_NAME(shared()); - -/** - * Sets the minimum engagement time in seconds required to start a new session. The default value - * is 10 seconds. - */ -- (void)setMinimumSessionInterval:(NSTimeInterval)minimumSessionInterval; - -/** - * Sets the interval of inactivity in seconds that terminates the current session. The default - * value is 1800 seconds (30 minutes). - */ -- (void)setSessionTimeoutInterval:(NSTimeInterval)sessionTimeoutInterval; - -/** - * Sets whether analytics collection is enabled for this app on this device. This setting is - * persisted across app sessions. By default it is enabled. - */ -- (void)setAnalyticsCollectionEnabled:(BOOL)analyticsCollectionEnabled; - -@end - -NS_ASSUME_NONNULL_END diff --git a/StoneIsland/platforms/ios/Pods/FirebaseCore/Frameworks/FirebaseCore.framework/Headers/FIRApp.h b/StoneIsland/platforms/ios/Pods/FirebaseCore/Frameworks/FirebaseCore.framework/Headers/FIRApp.h deleted file mode 100755 index 8f52e1aa..00000000 --- a/StoneIsland/platforms/ios/Pods/FirebaseCore/Frameworks/FirebaseCore.framework/Headers/FIRApp.h +++ /dev/null @@ -1,130 +0,0 @@ -/* - * Copyright 2017 Google - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#import <Foundation/Foundation.h> - -#if TARGET_OS_IOS -// TODO: Remove UIKit import on next breaking change release -#import <UIKit/UIKit.h> -#endif - -#import "FIRCoreSwiftNameSupport.h" - -@class FIROptions; - -NS_ASSUME_NONNULL_BEGIN - -/** A block that takes a BOOL and has no return value. */ -typedef void (^FIRAppVoidBoolCallback)(BOOL success) FIR_SWIFT_NAME(FirebaseAppVoidBoolCallback); - -/** - * The entry point of Firebase SDKs. - * - * Initialize and configure FIRApp using +[FIRApp configure] - * or other customized ways as shown below. - * - * The logging system has two modes: default mode and debug mode. In default mode, only logs with - * log level Notice, Warning and Error will be sent to device. In debug mode, all logs will be sent - * to device. The log levels that Firebase uses are consistent with the ASL log levels. - * - * Enable debug mode by passing the -FIRDebugEnabled argument to the application. You can add this - * argument in the application's Xcode scheme. When debug mode is enabled via -FIRDebugEnabled, - * further executions of the application will also be in debug mode. In order to return to default - * mode, you must explicitly disable the debug mode with the application argument -FIRDebugDisabled. - * - * It is also possible to change the default logging level in code by calling setLoggerLevel: on - * the FIRConfiguration interface. - */ -FIR_SWIFT_NAME(FirebaseApp) -@interface FIRApp : NSObject - -/** - * Configures a default Firebase app. Raises an exception if any configuration step fails. The - * default app is named "__FIRAPP_DEFAULT". This method should be called after the app is launched - * and before using Firebase services. This method is thread safe. - */ -+ (void)configure; - -/** - * Configures the default Firebase app with the provided options. The default app is named - * "__FIRAPP_DEFAULT". Raises an exception if any configuration step fails. This method is thread - * safe. - * - * @param options The Firebase application options used to configure the service. - */ -+ (void)configureWithOptions:(FIROptions *)options FIR_SWIFT_NAME(configure(options:)); - -/** - * Configures a Firebase app with the given name and options. Raises an exception if any - * configuration step fails. This method is thread safe. - * - * @param name The application's name given by the developer. The name should should only contain - Letters, Numbers and Underscore. - * @param options The Firebase application options used to configure the services. - */ -+ (void)configureWithName:(NSString *)name options:(FIROptions *)options - FIR_SWIFT_NAME(configure(name:options:)); - -/** - * Returns the default app, or nil if the default app does not exist. - */ -+ (nullable FIRApp *)defaultApp FIR_SWIFT_NAME(app()); - -/** - * Returns a previously created FIRApp instance with the given name, or nil if no such app exists. - * This method is thread safe. - */ -+ (nullable FIRApp *)appNamed:(NSString *)name FIR_SWIFT_NAME(app(name:)); - -#if defined(__IPHONE_10_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0 -/** - * Returns the set of all extant FIRApp instances, or nil if there are no FIRApp instances. This - * method is thread safe. - */ -@property(class, readonly, nullable) NSDictionary <NSString *, FIRApp *> *allApps; -#else -/** - * Returns the set of all extant FIRApp instances, or nil if there are no FIRApp instances. This - * method is thread safe. - */ -+ (nullable NSDictionary <NSString *, FIRApp *> *)allApps FIR_SWIFT_NAME(allApps()); -#endif // defined(__IPHONE_10_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0 - -/** - * Cleans up the current FIRApp, freeing associated data and returning its name to the pool for - * future use. This method is thread safe. - */ -- (void)deleteApp:(FIRAppVoidBoolCallback)completion; - -/** - * FIRApp instances should not be initialized directly. Call +[FIRApp configure], - * +[FIRApp configureWithOptions:], or +[FIRApp configureWithNames:options:] directly. - */ -- (instancetype)init NS_UNAVAILABLE; - -/** - * Gets the name of this app. - */ -@property(nonatomic, copy, readonly) NSString *name; - -/** - * Gets a copy of the options for this app. These are non-modifiable. - */ -@property(nonatomic, copy, readonly) FIROptions *options; - -@end - -NS_ASSUME_NONNULL_END diff --git a/StoneIsland/platforms/ios/Pods/FirebaseCore/Frameworks/FirebaseCore.framework/Headers/FIRConfiguration.h b/StoneIsland/platforms/ios/Pods/FirebaseCore/Frameworks/FirebaseCore.framework/Headers/FIRConfiguration.h deleted file mode 100755 index 496b2118..00000000 --- a/StoneIsland/platforms/ios/Pods/FirebaseCore/Frameworks/FirebaseCore.framework/Headers/FIRConfiguration.h +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright 2017 Google - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#import <Foundation/Foundation.h> - -#import "FIRAnalyticsConfiguration.h" -#import "FIRCoreSwiftNameSupport.h" -#import "FIRLoggerLevel.h" - -/** - * The log levels used by FIRConfiguration. - */ -typedef NS_ENUM(NSInteger, FIRLogLevel) { - /** Error */ - kFIRLogLevelError __deprecated = 0, - /** Warning */ - kFIRLogLevelWarning __deprecated, - /** Info */ - kFIRLogLevelInfo __deprecated, - /** Debug */ - kFIRLogLevelDebug __deprecated, - /** Assert */ - kFIRLogLevelAssert __deprecated, - /** Max */ - kFIRLogLevelMax __deprecated = kFIRLogLevelAssert -} DEPRECATED_MSG_ATTRIBUTE( - "Use -FIRDebugEnabled and -FIRDebugDisabled or setLoggerLevel. See FIRApp.h for more details."); - -NS_ASSUME_NONNULL_BEGIN - -/** - * This interface provides global level properties that the developer can tweak, and the singleton - * of the Firebase Analytics configuration class. - */ -FIR_SWIFT_NAME(FirebaseConfiguration) -@interface FIRConfiguration : NSObject - - -#if defined(__IPHONE_10_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0 -/** Returns the shared configuration object. */ -@property(class, nonatomic, readonly) FIRConfiguration *sharedInstance FIR_SWIFT_NAME(shared); -#else -/** Returns the shared configuration object. */ -+ (FIRConfiguration *)sharedInstance FIR_SWIFT_NAME(shared()); -#endif // defined(__IPHONE_10_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0 - -/** The configuration class for Firebase Analytics. */ -@property(nonatomic, readwrite) FIRAnalyticsConfiguration *analyticsConfiguration; - -/** Global log level. Defaults to kFIRLogLevelError. */ -@property(nonatomic, readwrite, assign) FIRLogLevel logLevel DEPRECATED_MSG_ATTRIBUTE( - "Use -FIRDebugEnabled and -FIRDebugDisabled or setLoggerLevel. See FIRApp.h for more details."); - -/** - * Sets the logging level for internal Firebase logging. Firebase will only log messages - * that are logged at or below loggerLevel. The messages are logged both to the Xcode - * console and to the device's log. Note that if an app is running from AppStore, it will - * never log above FIRLoggerLevelNotice even if loggerLevel is set to a higher (more verbose) - * setting. - * - * @param loggerLevel The maximum logging level. The default level is set to FIRLoggerLevelNotice. - */ -- (void)setLoggerLevel:(FIRLoggerLevel)loggerLevel; - -@end - -NS_ASSUME_NONNULL_END diff --git a/StoneIsland/platforms/ios/Pods/FirebaseCore/Frameworks/FirebaseCore.framework/Headers/FIRCoreSwiftNameSupport.h b/StoneIsland/platforms/ios/Pods/FirebaseCore/Frameworks/FirebaseCore.framework/Headers/FIRCoreSwiftNameSupport.h deleted file mode 100755 index 55e1bcc8..00000000 --- a/StoneIsland/platforms/ios/Pods/FirebaseCore/Frameworks/FirebaseCore.framework/Headers/FIRCoreSwiftNameSupport.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright 2017 Google - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef FIR_SWIFT_NAME - -#import <Foundation/Foundation.h> - -// NS_SWIFT_NAME can only translate factory methods before the iOS 9.3 SDK. -// Wrap it in our own macro if it's a non-compatible SDK. -#ifdef __IPHONE_9_3 -#define FIR_SWIFT_NAME(X) NS_SWIFT_NAME(X) -#else -#define FIR_SWIFT_NAME(X) // Intentionally blank. -#endif // #ifdef __IPHONE_9_3 - -#endif // FIR_SWIFT_NAME diff --git a/StoneIsland/platforms/ios/Pods/FirebaseCore/Frameworks/FirebaseCore.framework/Headers/FIRLoggerLevel.h b/StoneIsland/platforms/ios/Pods/FirebaseCore/Frameworks/FirebaseCore.framework/Headers/FIRLoggerLevel.h deleted file mode 100755 index 70e99eea..00000000 --- a/StoneIsland/platforms/ios/Pods/FirebaseCore/Frameworks/FirebaseCore.framework/Headers/FIRLoggerLevel.h +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright 2017 Google - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#import "FIRCoreSwiftNameSupport.h" - -/** - * The log levels used by internal logging. - */ -typedef NS_ENUM(NSInteger, FIRLoggerLevel) { - /** Error level, matches ASL_LEVEL_ERR. */ - FIRLoggerLevelError = 3, - /** Warning level, matches ASL_LEVEL_WARNING. */ - FIRLoggerLevelWarning = 4, - /** Notice level, matches ASL_LEVEL_NOTICE. */ - FIRLoggerLevelNotice = 5, - /** Info level, matches ASL_LEVEL_NOTICE. */ - FIRLoggerLevelInfo = 6, - /** Debug level, matches ASL_LEVEL_DEBUG. */ - FIRLoggerLevelDebug = 7, - /** Minimum log level. */ - FIRLoggerLevelMin = FIRLoggerLevelError, - /** Maximum log level. */ - FIRLoggerLevelMax = FIRLoggerLevelDebug -} FIR_SWIFT_NAME(FirebaseLoggerLevel); diff --git a/StoneIsland/platforms/ios/Pods/FirebaseCore/Frameworks/FirebaseCore.framework/Headers/FIROptions.h b/StoneIsland/platforms/ios/Pods/FirebaseCore/Frameworks/FirebaseCore.framework/Headers/FIROptions.h deleted file mode 100755 index 7bc24066..00000000 --- a/StoneIsland/platforms/ios/Pods/FirebaseCore/Frameworks/FirebaseCore.framework/Headers/FIROptions.h +++ /dev/null @@ -1,132 +0,0 @@ -/* - * Copyright 2017 Google - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#import <Foundation/Foundation.h> - -#import "FIRCoreSwiftNameSupport.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * This class provides constant fields of Google APIs. - */ -FIR_SWIFT_NAME(FirebaseOptions) -@interface FIROptions : NSObject<NSCopying> - -/** - * Returns the default options. - */ -+ (nullable FIROptions *)defaultOptions FIR_SWIFT_NAME(defaultOptions()); - -/** - * An iOS API key used for authenticating requests from your app, e.g. - * @"AIzaSyDdVgKwhZl0sTTTLZ7iTmt1r3N2cJLnaDk", used to identify your app to Google servers. - */ -@property(nonatomic, copy, nullable) NSString *APIKey FIR_SWIFT_NAME(apiKey); - -/** - * The bundle ID for the application. Defaults to `[[NSBundle mainBundle] bundleID]` when not set - * manually or in a plist. - */ -@property(nonatomic, copy) NSString *bundleID; - -/** - * The OAuth2 client ID for iOS application used to authenticate Google users, for example - * @"12345.apps.googleusercontent.com", used for signing in with Google. - */ -@property(nonatomic, copy, nullable) NSString *clientID; - -/** - * The tracking ID for Google Analytics, e.g. @"UA-12345678-1", used to configure Google Analytics. - */ -@property(nonatomic, copy, nullable) NSString *trackingID; - -/** - * The Project Number from the Google Developer's console, for example @"012345678901", used to - * configure Google Cloud Messaging. - */ -@property(nonatomic, copy) NSString *GCMSenderID FIR_SWIFT_NAME(gcmSenderID); - -/** - * The Project ID from the Firebase console, for example @"abc-xyz-123". - */ -@property(nonatomic, copy, nullable) NSString *projectID; - -/** - * The Android client ID used in Google AppInvite when an iOS app has its Android version, for - * example @"12345.apps.googleusercontent.com". - */ -@property(nonatomic, copy, nullable) NSString *androidClientID; - -/** - * The Google App ID that is used to uniquely identify an instance of an app. - */ -@property(nonatomic, copy) NSString *googleAppID; - -/** - * The database root URL, e.g. @"http://abc-xyz-123.firebaseio.com". - */ -@property(nonatomic, copy, nullable) NSString *databaseURL; - -/** - * The URL scheme used to set up Durable Deep Link service. - */ -@property(nonatomic, copy, nullable) NSString *deepLinkURLScheme; - -/** - * The Google Cloud Storage bucket name, e.g. @"abc-xyz-123.storage.firebase.com". - */ -@property(nonatomic, copy, nullable) NSString *storageBucket; - -/** - * Initializes a customized instance of FIROptions with keys. googleAppID, bundleID and GCMSenderID - * are required. Other keys may required for configuring specific services. - */ -- (instancetype)initWithGoogleAppID:(NSString *)googleAppID - bundleID:(NSString *)bundleID - GCMSenderID:(NSString *)GCMSenderID - APIKey:(NSString *)APIKey - clientID:(NSString *)clientID - trackingID:(NSString *)trackingID - androidClientID:(NSString *)androidClientID - databaseURL:(NSString *)databaseURL - storageBucket:(NSString *)storageBucket - deepLinkURLScheme:(NSString *)deepLinkURLScheme - DEPRECATED_MSG_ATTRIBUTE("Use `-[[FIROptions alloc] initWithGoogleAppID:GCMSenderID:]` " - "(`FirebaseOptions(googleAppID:gcmSenderID:)` in Swift)` and property " - "setters instead."); - -/** - * Initializes a customized instance of FIROptions from the file at the given plist file path. - * For example, - * NSString *filePath = - * [[NSBundle mainBundle] pathForResource:@"GoogleService-Info" ofType:@"plist"]; - * FIROptions *options = [[FIROptions alloc] initWithContentsOfFile:filePath]; - * Returns nil if the plist file does not exist or is invalid. - */ -- (nullable instancetype)initWithContentsOfFile:(NSString *)plistPath; - -/** - * Initializes a customized instance of FIROptions with required fields. Use the mutable properties - * to modify fields for configuring specific services. - */ -- (instancetype)initWithGoogleAppID:(NSString *)googleAppID - GCMSenderID:(NSString *)GCMSenderID - FIR_SWIFT_NAME(init(googleAppID:gcmSenderID:)); - -@end - -NS_ASSUME_NONNULL_END diff --git a/StoneIsland/platforms/ios/Pods/FirebaseCore/Frameworks/FirebaseCore.framework/Headers/FirebaseCore.h b/StoneIsland/platforms/ios/Pods/FirebaseCore/Frameworks/FirebaseCore.framework/Headers/FirebaseCore.h deleted file mode 100755 index 20816292..00000000 --- a/StoneIsland/platforms/ios/Pods/FirebaseCore/Frameworks/FirebaseCore.framework/Headers/FirebaseCore.h +++ /dev/null @@ -1,6 +0,0 @@ -#import "FIRAnalyticsConfiguration.h" -#import "FIRApp.h" -#import "FIRConfiguration.h" -#import "FIRCoreSwiftNameSupport.h" -#import "FIRLoggerLevel.h" -#import "FIROptions.h" diff --git a/StoneIsland/platforms/ios/Pods/FirebaseCore/Frameworks/FirebaseCore.framework/Modules/module.modulemap b/StoneIsland/platforms/ios/Pods/FirebaseCore/Frameworks/FirebaseCore.framework/Modules/module.modulemap deleted file mode 100755 index 440f052c..00000000 --- a/StoneIsland/platforms/ios/Pods/FirebaseCore/Frameworks/FirebaseCore.framework/Modules/module.modulemap +++ /dev/null @@ -1,6 +0,0 @@ -framework module FirebaseCore { - umbrella header "FirebaseCore.h" - export * - module * { export *} - link "z" -}
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/FirebaseCore/Frameworks/FirebaseCoreDiagnostics.framework/FirebaseCoreDiagnostics b/StoneIsland/platforms/ios/Pods/FirebaseCore/Frameworks/FirebaseCoreDiagnostics.framework/FirebaseCoreDiagnostics Binary files differdeleted file mode 100755 index f8b09d47..00000000 --- a/StoneIsland/platforms/ios/Pods/FirebaseCore/Frameworks/FirebaseCoreDiagnostics.framework/FirebaseCoreDiagnostics +++ /dev/null diff --git a/StoneIsland/platforms/ios/Pods/FirebaseCore/Frameworks/FirebaseCoreDiagnostics.framework/Modules/module.modulemap b/StoneIsland/platforms/ios/Pods/FirebaseCore/Frameworks/FirebaseCoreDiagnostics.framework/Modules/module.modulemap deleted file mode 100755 index 5855789c..00000000 --- a/StoneIsland/platforms/ios/Pods/FirebaseCore/Frameworks/FirebaseCoreDiagnostics.framework/Modules/module.modulemap +++ /dev/null @@ -1,5 +0,0 @@ -framework module FirebaseCoreDiagnostics { - export * - module * { export *} - link "z" -}
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/FirebaseCore/Frameworks/FirebaseNanoPB.framework/FirebaseNanoPB b/StoneIsland/platforms/ios/Pods/FirebaseCore/Frameworks/FirebaseNanoPB.framework/FirebaseNanoPB Binary files differdeleted file mode 100755 index 13965a90..00000000 --- a/StoneIsland/platforms/ios/Pods/FirebaseCore/Frameworks/FirebaseNanoPB.framework/FirebaseNanoPB +++ /dev/null diff --git a/StoneIsland/platforms/ios/Pods/FirebaseInstanceID/CHANGELOG.md b/StoneIsland/platforms/ios/Pods/FirebaseInstanceID/CHANGELOG.md deleted file mode 100755 index ae14de96..00000000 --- a/StoneIsland/platforms/ios/Pods/FirebaseInstanceID/CHANGELOG.md +++ /dev/null @@ -1,52 +0,0 @@ -# 2017-05-08 -- v2.0.0 -- Introduced an improved interface for Swift 3 developers -- Deprecated some methods and properties after moving their logic to the - Firebase Cloud Messaging SDK -- Fixed an intermittent stability issue when a debug build of an app was - replaced with a release build of the same version -- Removed swizzling logic that was sometimes resulting in developers receiving - a validation notice about enabling push notification capabilities, even though - they weren't using push notifications -- Fixed a notification that would sometimes fire twice in quick succession - during the first run of an app - -# 2017-03-31 -- v1.0.10 - -- Improvements to token-fetching logic -- Fixed some warnings in Instance ID -- Improved error messages if Instance ID couldn't be initialized properly -- Improvements to console logging - -# 2017-01-31 -- v1.0.9 - -- Removed an error being mistakenly logged to the console. - -# 2016-07-06 -- v1.0.8 - -- Don't store InstanceID plists in Documents folder. - -# 2016-06-19 -- v1.0.7 - -- Fix remote-notifications warning on app submission. - -# 2016-05-16 -- v1.0.6 - -- Fix CocoaPod linter issues for InstanceID pod. - -# 2016-05-13 -- v1.0.5 - -- Fix Authorization errors for InstanceID tokens. - -# 2016-05-11 -- v1.0.4 - -- Reduce wait for InstanceID token during parallel requests. - -# 2016-04-18 -- v1.0.3 - -- Change flag to disable swizzling to *FirebaseAppDelegateProxyEnabled*. -- Fix incessant Keychain errors while accessing InstanceID. -- Fix max retries for fetching IID token. - -# 2016-04-18 -- v1.0.2 - -- Register for remote notifications on iOS8+ in the SDK itself. diff --git a/StoneIsland/platforms/ios/Pods/FirebaseInstanceID/Frameworks/FirebaseInstanceID.framework/FirebaseInstanceID b/StoneIsland/platforms/ios/Pods/FirebaseInstanceID/Frameworks/FirebaseInstanceID.framework/FirebaseInstanceID Binary files differdeleted file mode 100755 index 8bde6c14..00000000 --- a/StoneIsland/platforms/ios/Pods/FirebaseInstanceID/Frameworks/FirebaseInstanceID.framework/FirebaseInstanceID +++ /dev/null diff --git a/StoneIsland/platforms/ios/Pods/FirebaseInstanceID/Frameworks/FirebaseInstanceID.framework/Headers/FirebaseInstanceID.h b/StoneIsland/platforms/ios/Pods/FirebaseInstanceID/Frameworks/FirebaseInstanceID.framework/Headers/FirebaseInstanceID.h deleted file mode 100755 index 053ec2b1..00000000 --- a/StoneIsland/platforms/ios/Pods/FirebaseInstanceID/Frameworks/FirebaseInstanceID.framework/Headers/FirebaseInstanceID.h +++ /dev/null @@ -1 +0,0 @@ -#import "FIRInstanceID.h" diff --git a/StoneIsland/platforms/ios/Pods/FirebaseInstanceID/Frameworks/FirebaseInstanceID.framework/Modules/module.modulemap b/StoneIsland/platforms/ios/Pods/FirebaseInstanceID/Frameworks/FirebaseInstanceID.framework/Modules/module.modulemap deleted file mode 100755 index c10be032..00000000 --- a/StoneIsland/platforms/ios/Pods/FirebaseInstanceID/Frameworks/FirebaseInstanceID.framework/Modules/module.modulemap +++ /dev/null @@ -1,6 +0,0 @@ -framework module FirebaseInstanceID { - umbrella header "FirebaseInstanceID.h" - export * - module * { export *} - link "z" -}
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/FirebaseMessaging/Frameworks/FirebaseMessaging.framework/FirebaseMessaging b/StoneIsland/platforms/ios/Pods/FirebaseMessaging/Frameworks/FirebaseMessaging.framework/FirebaseMessaging Binary files differdeleted file mode 100755 index 095a9fc4..00000000 --- a/StoneIsland/platforms/ios/Pods/FirebaseMessaging/Frameworks/FirebaseMessaging.framework/FirebaseMessaging +++ /dev/null diff --git a/StoneIsland/platforms/ios/Pods/FirebaseMessaging/Frameworks/FirebaseMessaging.framework/Headers/FIRMessaging.h b/StoneIsland/platforms/ios/Pods/FirebaseMessaging/Frameworks/FirebaseMessaging.framework/Headers/FIRMessaging.h deleted file mode 100755 index 84d2526b..00000000 --- a/StoneIsland/platforms/ios/Pods/FirebaseMessaging/Frameworks/FirebaseMessaging.framework/Headers/FIRMessaging.h +++ /dev/null @@ -1,486 +0,0 @@ -/* - * Copyright 2017 Google - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#import <Foundation/Foundation.h> - - -// NS_SWIFT_NAME can only translate factory methods before the iOS 9.3 SDK. -// Wrap it in our own macro if it's a non-compatible SDK. -#ifndef FIR_SWIFT_NAME -#ifdef __IPHONE_9_3 -#define FIR_SWIFT_NAME(X) NS_SWIFT_NAME(X) -#else -#define FIR_SWIFT_NAME(X) // Intentionally blank. -#endif // #ifdef __IPHONE_9_3 -#endif // #ifndef FIR_SWIFT_NAME - -/** - * @related FIRMessaging - * - * The completion handler invoked when the registration token returns. - * If the call fails we return the appropriate `error code`, described by - * `FIRMessagingError`. - * - * @param FCMToken The valid registration token returned by FCM. - * @param error The error describing why a token request failed. The error code - * will match a value from the FIRMessagingError enumeration. - */ -typedef void(^FIRMessagingFCMTokenFetchCompletion)(NSString * _Nullable FCMToken, - NSError * _Nullable error) - FIR_SWIFT_NAME(MessagingFCMTokenFetchCompletion); - - -/** - * @related FIRMessaging - * - * The completion handler invoked when the registration token deletion request is - * completed. If the call fails we return the appropriate `error code`, described - * by `FIRMessagingError`. - * - * @param error The error describing why a token deletion failed. The error code - * will match a value from the FIRMessagingError enumeration. - */ -typedef void(^FIRMessagingDeleteFCMTokenCompletion)(NSError * _Nullable error) - FIR_SWIFT_NAME(MessagingDeleteFCMTokenCompletion); - -/** - * The completion handler invoked once the data connection with FIRMessaging is - * established. The data connection is used to send a continous stream of - * data and all the FIRMessaging data notifications arrive through this connection. - * Once the connection is established we invoke the callback with `nil` error. - * Correspondingly if we get an error while trying to establish a connection - * we invoke the handler with an appropriate error object and do an - * exponential backoff to try and connect again unless successful. - * - * @param error The error object if any describing why the data connection - * to FIRMessaging failed. - */ -typedef void(^FIRMessagingConnectCompletion)(NSError * __nullable error) - FIR_SWIFT_NAME(MessagingConnectCompletion) - __deprecated_msg("Please listen for the FIRMessagingConnectionStateChangedNotification " - "NSNotification instead."); - -#if defined(__IPHONE_10_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0 -/** - * Notification sent when the upstream message has been delivered - * successfully to the server. The notification object will be the messageID - * of the successfully delivered message. - */ -FOUNDATION_EXPORT const NSNotificationName __nonnull FIRMessagingSendSuccessNotification - FIR_SWIFT_NAME(MessagingSendSuccess); - -/** - * Notification sent when the upstream message was failed to be sent to the - * server. The notification object will be the messageID of the failed - * message. The userInfo dictionary will contain the relevant error - * information for the failure. - */ -FOUNDATION_EXPORT const NSNotificationName __nonnull FIRMessagingSendErrorNotification - FIR_SWIFT_NAME(MessagingSendError); - -/** - * Notification sent when the Firebase messaging server deletes pending - * messages due to exceeded storage limits. This may occur, for example, when - * the device cannot be reached for an extended period of time. - * - * It is recommended to retrieve any missing messages directly from the - * server. - */ -FOUNDATION_EXPORT const NSNotificationName __nonnull FIRMessagingMessagesDeletedNotification - FIR_SWIFT_NAME(MessagingMessagesDeleted); - -/** - * Notification sent when Firebase Messaging establishes or disconnects from - * an FCM socket connection. You can query the connection state in this - * notification by checking the `isDirectChannelEstablished` property of FIRMessaging. - */ -FOUNDATION_EXPORT const NSNotificationName __nonnull FIRMessagingConnectionStateChangedNotification - FIR_SWIFT_NAME(MessagingConnectionStateChanged); - -/** - * Notification sent when the FCM registration token has been refreshed. You can also - * receive the FCM token via the FIRMessagingDelegate method - * `-messaging:didRefreshRegistrationToken:` - */ -FOUNDATION_EXPORT const NSNotificationName __nonnull - FIRMessagingRegistrationTokenRefreshedNotification - FIR_SWIFT_NAME(MessagingRegistrationTokenRefreshed); -#else -/** - * Notification sent when the upstream message has been delivered - * successfully to the server. The notification object will be the messageID - * of the successfully delivered message. - */ -FOUNDATION_EXPORT NSString * __nonnull const FIRMessagingSendSuccessNotification - FIR_SWIFT_NAME(MessagingSendSuccessNotification); - -/** - * Notification sent when the upstream message was failed to be sent to the - * server. The notification object will be the messageID of the failed - * message. The userInfo dictionary will contain the relevant error - * information for the failure. - */ -FOUNDATION_EXPORT NSString * __nonnull const FIRMessagingSendErrorNotification - FIR_SWIFT_NAME(MessagingSendErrorNotification); - -/** - * Notification sent when the Firebase messaging server deletes pending - * messages due to exceeded storage limits. This may occur, for example, when - * the device cannot be reached for an extended period of time. - * - * It is recommended to retrieve any missing messages directly from the - * server. - */ -FOUNDATION_EXPORT NSString * __nonnull const FIRMessagingMessagesDeletedNotification - FIR_SWIFT_NAME(MessagingMessagesDeletedNotification); - -/** - * Notification sent when Firebase Messaging establishes or disconnects from - * an FCM socket connection. You can query the connection state in this - * notification by checking the `isDirectChannelEstablished` property of FIRMessaging. - */ -FOUNDATION_EXPORT NSString * __nonnull const FIRMessagingConnectionStateChangedNotification - FIR_SWIFT_NAME(MessagingConnectionStateChangedNotification); - -/** - * Notification sent when the FCM registration token has been refreshed. You can also - * receive the FCM token via the FIRMessagingDelegate method - * `-messaging:didRefreshRegistrationToken:` - */ -FOUNDATION_EXPORT NSString * __nonnull const FIRMessagingRegistrationTokenRefreshedNotification - FIR_SWIFT_NAME(MessagingRegistrationTokenRefreshedNotification); -#endif // defined(__IPHONE_10_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0 - -/** - * @enum FIRMessagingError - */ -typedef NS_ENUM(NSUInteger, FIRMessagingError) { - /// Unknown error. - FIRMessagingErrorUnknown = 0, - - /// FIRMessaging couldn't validate request from this client. - FIRMessagingErrorAuthentication = 1, - - /// InstanceID service cannot be accessed. - FIRMessagingErrorNoAccess = 2, - - /// Request to InstanceID backend timed out. - FIRMessagingErrorTimeout = 3, - - /// No network available to reach the servers. - FIRMessagingErrorNetwork = 4, - - /// Another similar operation in progress, bailing this one. - FIRMessagingErrorOperationInProgress = 5, - - /// Some parameters of the request were invalid. - FIRMessagingErrorInvalidRequest = 7, -} FIR_SWIFT_NAME(MessagingError); - -/// Status for the downstream message received by the app. -typedef NS_ENUM(NSInteger, FIRMessagingMessageStatus) { - /// Unknown status. - FIRMessagingMessageStatusUnknown, - /// New downstream message received by the app. - FIRMessagingMessageStatusNew, -} FIR_SWIFT_NAME(MessagingMessageStatus); - -/** - * The APNS token type for the app. If the token type is set to `UNKNOWN` - * Firebase Messaging will implicitly try to figure out what the actual token type - * is from the provisioning profile. - * Unless you really need to specify the type, you should use the `APNSToken` - * property instead. - */ -typedef NS_ENUM(NSInteger, FIRMessagingAPNSTokenType) { - /// Unknown token type. - FIRMessagingAPNSTokenTypeUnknown, - /// Sandbox token type. - FIRMessagingAPNSTokenTypeSandbox, - /// Production token type. - FIRMessagingAPNSTokenTypeProd, -} FIR_SWIFT_NAME(MessagingAPNSTokenType); - -/// Information about a downstream message received by the app. -FIR_SWIFT_NAME(MessagingMessageInfo) -@interface FIRMessagingMessageInfo : NSObject - -/// The status of the downstream message -@property(nonatomic, readonly, assign) FIRMessagingMessageStatus status; - -@end - -/** - * A remote data message received by the app via FCM (not just the APNs interface). - * - * This is only for devices running iOS 10 or above. To support devices running iOS 9 or below, use - * the local and remote notifications handlers defined in UIApplicationDelegate protocol. - */ -FIR_SWIFT_NAME(MessagingRemoteMessage) -@interface FIRMessagingRemoteMessage : NSObject - -/// The downstream message received by the application. -@property(nonatomic, readonly, strong, nonnull) NSDictionary *appData; -@end - -@class FIRMessaging; -/** - * A protocol to handle events from FCM for devices running iOS 10 or above. - * - * To support devices running iOS 9 or below, use the local and remote notifications handlers - * defined in UIApplicationDelegate protocol. - */ -FIR_SWIFT_NAME(MessagingDelegate) -@protocol FIRMessagingDelegate <NSObject> - -/// This method will be called whenever FCM receives a new, default FCM token for your -/// Firebase project's Sender ID. -/// You can send this token to your application server to send notifications to this device. -- (void)messaging:(nonnull FIRMessaging *)messaging - didRefreshRegistrationToken:(nonnull NSString *)fcmToken - FIR_SWIFT_NAME(messaging(_:didRefreshRegistrationToken:)); - -@optional -/// This method is called on iOS 10 devices to handle data messages received via FCM through its -/// direct channel (not via APNS). For iOS 9 and below, the FCM data message is delivered via the -/// UIApplicationDelegate's -application:didReceiveRemoteNotification: method. -- (void)messaging:(nonnull FIRMessaging *)messaging - didReceiveMessage:(nonnull FIRMessagingRemoteMessage *)remoteMessage - FIR_SWIFT_NAME(messaging(_:didReceive:)) - __IOS_AVAILABLE(10.0); - -/// The callback to handle data message received via FCM for devices running iOS 10 or above. -- (void)applicationReceivedRemoteMessage:(nonnull FIRMessagingRemoteMessage *)remoteMessage - FIR_SWIFT_NAME(application(received:)) - __deprecated_msg("Use FIRMessagingDelegate’s -messaging:didReceiveMessage:"); - -@end - -/** - * Firebase Messaging lets you reliably deliver messages at no cost. - * - * To send or receive messages, the app must get a - * registration token from FIRInstanceID. This token authorizes an - * app server to send messages to an app instance. - * - * In order to receive FIRMessaging messages, declare `application:didReceiveRemoteNotification:`. - */ -FIR_SWIFT_NAME(Messaging) -@interface FIRMessaging : NSObject - -/** - * Delegate to handle FCM token refreshes, and remote data messages received via FCM for devices - * running iOS 10 or above. - */ -@property(nonatomic, weak, nullable) id<FIRMessagingDelegate> delegate; - - -/** - * Delegate to handle remote data messages received via FCM for devices running iOS 10 or above. - */ -@property(nonatomic, weak, nullable) id<FIRMessagingDelegate> remoteMessageDelegate - __deprecated_msg("Use 'delegate' property"); - -/** - * When set to YES, Firebase Messaging will automatically establish a socket-based, direct channel - * to the FCM server. You only need to enable this if you are sending upstream messages or - * receiving non-APNS, data-only messages in foregrounded apps. - * Default is NO. - */ -@property(nonatomic) BOOL shouldEstablishDirectChannel; - -/** - * Returns YES if the direct channel to the FCM server is active, NO otherwise. - */ -@property(nonatomic, readonly) BOOL isDirectChannelEstablished; - -/** - * FIRMessaging - * - * @return An instance of FIRMessaging. - */ -+ (nonnull instancetype)messaging FIR_SWIFT_NAME(messaging()); - -/** - * Unavailable. Use +messaging instead. - */ -- (nonnull instancetype)init __attribute__((unavailable("Use +messaging instead."))); - -#pragma mark - APNS - -/** - * This property is used to set the APNS Token received by the application delegate. - * - * FIRMessaging uses method swizzling to ensure the APNS token is set automatically. - * However, if you have disabled swizzling by setting `FirebaseAppDelegateProxyEnabled` - * to `NO` in your app's Info.plist, you should manually set the APNS token in your - * application delegate's -application:didRegisterForRemoteNotificationsWithDeviceToken: - * method. - * - * If you would like to set the type of the APNS token, rather than relying on automatic - * detection, see: -setAPNSToken:type:. - */ -@property(nonatomic, copy, nullable) NSData *APNSToken FIR_SWIFT_NAME(apnsToken); - -/** - * Set APNS token for the application. This APNS token will be used to register - * with Firebase Messaging using `FCMToken` or - * `tokenWithAuthorizedEntity:scope:options:handler`. - * - * @param apnsToken The APNS token for the application. - * @param type The type of APNS token. Debug builds should use - * FIRMessagingAPNSTokenTypeSandbox. Alternatively, you can supply - * FIRMessagingAPNSTokenTypeUnknown to have the type automatically - * detected based on your provisioning profile. - */ -- (void)setAPNSToken:(nonnull NSData *)apnsToken type:(FIRMessagingAPNSTokenType)type; - -#pragma mark - FCM Tokens - -/** - * The FCM token is used to identify this device so that FCM can send notifications to it. - * It is associated with your APNS token when the APNS token is supplied, so that sending - * messages to the FCM token will be delivered over APNS. - * - * The FCM token is sometimes refreshed automatically. You can be notified of these changes - * via the FIRMessagingDelegate method `-message:didRefreshRegistrationToken:`, or by - * listening for the `FIRMessagingRegistrationTokenRefreshedNotification` notification. - * - * Once you have an FCM token, you should send it to your application server, so it can use - * the FCM token to send notifications to your device. - */ -@property(nonatomic, readonly, nullable) NSString *FCMToken FIR_SWIFT_NAME(fcmToken); - - -/** - * Retrieves an FCM registration token for a particular Sender ID. This registration token is - * not cached by FIRMessaging. FIRMessaging should have an APNS token set before calling this - * to ensure that notifications can be delivered via APNS using this FCM token. You may - * re-retrieve the FCM token once you have the APNS token set, to associate it with the FCM - * token. The default FCM token is automatically associated with the APNS token, if the APNS - * token data is available. - * - * @param senderID The Sender ID for a particular Firebase project. - * @param completion The completion handler to handle the token request. - */ -- (void)retrieveFCMTokenForSenderID:(nonnull NSString *)senderID - completion:(nonnull FIRMessagingFCMTokenFetchCompletion)completion - FIR_SWIFT_NAME(retrieveFCMToken(forSenderID:completion:)); - - -/** - * Invalidates an FCM token for a particular Sender ID. That Sender ID cannot no longer send - * notifications to that FCM token. - * - * @param senderID The senderID for a particular Firebase project. - * @param completion The completion handler to handle the token deletion. - */ -- (void)deleteFCMTokenForSenderID:(nonnull NSString *)senderID - completion:(nonnull FIRMessagingDeleteFCMTokenCompletion)completion - FIR_SWIFT_NAME(deleteFCMToken(forSenderID:completion:)); - - -#pragma mark - Connect - -/** - * Create a FIRMessaging data connection which will be used to send the data notifications - * sent by your server. It will also be used to send ACKS and other messages based - * on the FIRMessaging ACKS and other messages based on the FIRMessaging protocol. - * - * - * @param handler The handler to be invoked once the connection is established. - * If the connection fails we invoke the handler with an - * appropriate error code letting you know why it failed. At - * the same time, FIRMessaging performs exponential backoff to retry - * establishing a connection and invoke the handler when successful. - */ -- (void)connectWithCompletion:(nonnull FIRMessagingConnectCompletion)handler - FIR_SWIFT_NAME(connect(handler:)) - __deprecated_msg("Please use the shouldEstablishDirectChannel property instead."); - -/** - * Disconnect the current FIRMessaging data connection. This stops any attempts to - * connect to FIRMessaging. Calling this on an already disconnected client is a no-op. - * - * Call this before `teardown` when your app is going to the background. - * Since the FIRMessaging connection won't be allowed to live when in background it is - * prudent to close the connection. - */ -- (void)disconnect - __deprecated_msg("Please use the shouldEstablishDirectChannel property instead."); - -#pragma mark - Topics - -/** - * Asynchronously subscribes to a topic. - * - * @param topic The name of the topic, for example, @"sports". - */ -- (void)subscribeToTopic:(nonnull NSString *)topic FIR_SWIFT_NAME(subscribe(toTopic:)); - -/** - * Asynchronously unsubscribe from a topic. - * - * @param topic The name of the topic, for example @"sports". - */ -- (void)unsubscribeFromTopic:(nonnull NSString *)topic FIR_SWIFT_NAME(unsubscribe(fromTopic:)); - -#pragma mark - Upstream - -/** - * Sends an upstream ("device to cloud") message. - * - * The message is queued if we don't have an active connection. - * You can only use the upstream feature if your FCM implementation - * uses the XMPP server protocol. - * - * @param message Key/Value pairs to be sent. Values must be String, any - * other type will be ignored. - * @param receiver A string identifying the receiver of the message. For FCM - * project IDs the value is `SENDER_ID@gcm.googleapis.com`. - * @param messageID The ID of the message. This is generated by the application. It - * must be unique for each message generated by this application. - * It allows error callbacks and debugging, to uniquely identify - * each message. - * @param ttl The time to live for the message. In case we aren't able to - * send the message before the TTL expires we will send you a - * callback. If 0, we'll attempt to send immediately and return - * an error if we're not connected. Otherwise, the message will - * be queued. As for server-side messages, we don't return an error - * if the message has been dropped because of TTL; this can happen - * on the server side, and it would require extra communication. - */ -- (void)sendMessage:(nonnull NSDictionary *)message - to:(nonnull NSString *)receiver - withMessageID:(nonnull NSString *)messageID - timeToLive:(int64_t)ttl; - -#pragma mark - Analytics - -/** - * Use this to track message delivery and analytics for messages, typically - * when you receive a notification in `application:didReceiveRemoteNotification:`. - * However, you only need to call this if you set the `FirebaseAppDelegateProxyEnabled` - * flag to NO in your Info.plist. If `FirebaseAppDelegateProxyEnabled` is either missing - * or set to YES in your Info.plist, the library will call this automatically. - * - * @param message The downstream message received by the application. - * - * @return Information about the downstream message. - */ -- (nonnull FIRMessagingMessageInfo *)appDidReceiveMessage:(nonnull NSDictionary *)message; - -@end diff --git a/StoneIsland/platforms/ios/Pods/FirebaseMessaging/Frameworks/FirebaseMessaging.framework/Headers/FirebaseMessaging.h b/StoneIsland/platforms/ios/Pods/FirebaseMessaging/Frameworks/FirebaseMessaging.framework/Headers/FirebaseMessaging.h deleted file mode 100755 index ef49e7ff..00000000 --- a/StoneIsland/platforms/ios/Pods/FirebaseMessaging/Frameworks/FirebaseMessaging.framework/Headers/FirebaseMessaging.h +++ /dev/null @@ -1 +0,0 @@ -#import "FIRMessaging.h" diff --git a/StoneIsland/platforms/ios/Pods/FirebaseMessaging/Frameworks/FirebaseMessaging.framework/Modules/module.modulemap b/StoneIsland/platforms/ios/Pods/FirebaseMessaging/Frameworks/FirebaseMessaging.framework/Modules/module.modulemap deleted file mode 100755 index 45dc7bc0..00000000 --- a/StoneIsland/platforms/ios/Pods/FirebaseMessaging/Frameworks/FirebaseMessaging.framework/Modules/module.modulemap +++ /dev/null @@ -1,7 +0,0 @@ -framework module FirebaseMessaging { - umbrella header "FirebaseMessaging.h" - export * - module * { export *} - link "sqlite3" - link "z" -}
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/GGLInstanceID/CHANGELOG.md b/StoneIsland/platforms/ios/Pods/GGLInstanceID/CHANGELOG.md new file mode 100644 index 00000000..755828e3 --- /dev/null +++ b/StoneIsland/platforms/ios/Pods/GGLInstanceID/CHANGELOG.md @@ -0,0 +1,28 @@ +# 2016-02-25 -- v1.2.1 +- Fix incorrect caching during library updates. + +# 2016-02-17 -- v1.2.0 +- Add Bitcode markers. + +# 2016-01-25 -- v1.1.7 +- Fix bug in InstanceID generation + +# 2016-01-25 -- v1.1.6 +- Greatly reduce IID library size. +- Bug fixes. + +# 2015-12-08 -- v1.1.4 +- Bug fixes. +- Fix dSYM warnings. + +# 2015-11-09 -- v1.1.3 +- Bug fixes. + +# 2015-10-28 -- v1.1.2 +- Bug fixes. + +# 2015-10-8 -- v1.1.1 + +- Resets InstanceID tokens on app delete and reinstall. +- Adds better error reporting. +- Bug fixes. diff --git a/StoneIsland/platforms/ios/Pods/FirebaseInstanceID/Frameworks/FirebaseInstanceID.framework/Headers/FIRInstanceID.h b/StoneIsland/platforms/ios/Pods/GGLInstanceID/Headers/Public/GGLInstanceID.h index 4b3c546c..e3fd3c64 100755..100644 --- a/StoneIsland/platforms/ios/Pods/FirebaseInstanceID/Frameworks/FirebaseInstanceID.framework/Headers/FIRInstanceID.h +++ b/StoneIsland/platforms/ios/Pods/GGLInstanceID/Headers/Public/GGLInstanceID.h @@ -1,49 +1,36 @@ #import <Foundation/Foundation.h> -// NS_SWIFT_NAME can only translate factory methods before the iOS 9.3 SDK. -// Wrap it in our own macro if it's a non-compatible SDK. -#ifndef FIR_SWIFT_NAME -#ifdef __IPHONE_9_3 -#define FIR_SWIFT_NAME(X) NS_SWIFT_NAME(X) -#else -#define FIR_SWIFT_NAME(X) // Intentionally blank. -#endif // #ifdef __IPHONE_9_3 -#endif // #ifndef FIR_SWIFT_NAME +@class GGLInstanceIDConfig; /** - * @memberof FIRInstanceID + * @memberof GGLInstanceID * - * The scope to be used when fetching/deleting a token for Firebase Messaging. + * The key for APNS token to be included in the options dictionary when + * registering for GCM (Google Cloud Messaging). The value should be a + * NSData object that represents the APNS token for the app. This + * key is required to get a GCM token. */ -FOUNDATION_EXPORT NSString * __nonnull const kFIRInstanceIDScopeFirebaseMessaging - FIR_SWIFT_NAME(InstanceIDScopeFirebaseMessaging); +FOUNDATION_EXPORT NSString *const kGGLInstanceIDRegisterAPNSOption; -#if defined(__IPHONE_10_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0 /** - * Called when the system determines that tokens need to be refreshed. - * This method is also called if Instance ID has been reset in which - * case, tokens and FCM topic subscriptions also need to be refreshed. + * @memberof GGLInstanceID * - * Instance ID service will throttle the refresh event across all devices - * to control the rate of token updates on application servers. + * The key to specify if the APNS token type is sandbox or production. Set + * to YES if the app was built with Sandbox certificate else NO for production. + * At any point of time InstanceID library will support only one type of token. */ -FOUNDATION_EXPORT const NSNotificationName __nonnull kFIRInstanceIDTokenRefreshNotification - FIR_SWIFT_NAME(InstanceIDTokenRefresh); -#else +FOUNDATION_EXPORT NSString *const kGGLInstanceIDAPNSServerTypeSandboxOption; + /** - * Called when the system determines that tokens need to be refreshed. - * This method is also called if Instance ID has been reset in which - * case, tokens and FCM topic subscriptions also need to be refreshed. + * @memberof GGLInstanceID * - * Instance ID service will throttle the refresh event across all devices - * to control the rate of token updates on application servers. + * The scope to be used when fetching/deleting a token for + * GCM (Google Cloud Messaging). */ -FOUNDATION_EXPORT NSString * __nonnull const kFIRInstanceIDTokenRefreshNotification - FIR_SWIFT_NAME(InstanceIDTokenRefreshNotification); -#endif // defined(__IPHONE_10_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0 +FOUNDATION_EXPORT NSString *const kGGLInstanceIDScopeGCM; /** - * @related FIRInstanceID + * @related GGLInstanceID * * The completion handler invoked when the InstanceID token returns. If * the call fails we return the appropriate `error code` as described below. @@ -54,12 +41,11 @@ FOUNDATION_EXPORT NSString * __nonnull const kFIRInstanceIDTokenRefreshNotificat * failed. See the error codes below for a more detailed * description. */ -typedef void(^FIRInstanceIDTokenHandler)( NSString * __nullable token, NSError * __nullable error) - FIR_SWIFT_NAME(InstanceIDTokenHandler); +typedef void(^GGLInstanceIDTokenHandler)(NSString *token, NSError *error); /** - * @related FIRInstanceID + * @related GGLInstanceID * * The completion handler invoked when the InstanceID `deleteToken` returns. If * the call fails we return the appropriate `error code` as described below @@ -67,11 +53,10 @@ typedef void(^FIRInstanceIDTokenHandler)( NSString * __nullable token, NSError * * @param error The error describing why deleting the token failed. * See the error codes below for a more detailed description. */ -typedef void(^FIRInstanceIDDeleteTokenHandler)(NSError * __nullable error) - FIR_SWIFT_NAME(InstanceIDDeleteTokenHandler); +typedef void(^GGLInstanceIDDeleteTokenHandler)(NSError *error); /** - * @related FIRInstanceID + * @related GGLInstanceID * * The completion handler invoked when the app identity is created. If the * identity wasn't created for some reason we return the appropriate error code. @@ -80,11 +65,10 @@ typedef void(^FIRInstanceIDDeleteTokenHandler)(NSError * __nullable error) * while creating an identity. * @param error The error if fetching the identity fails else nil. */ -typedef void(^FIRInstanceIDHandler)(NSString * __nullable identity, NSError * __nullable error) - FIR_SWIFT_NAME(InstanceIDHandler); +typedef void(^GGLInstanceIDHandler)(NSString *identity, NSError *error); /** - * @related FIRInstanceID + * @related GGLInstanceID * * The completion handler invoked when the app identity and all the tokens associated * with it are deleted. Returns a valid error object in case of failure else nil. @@ -92,108 +76,120 @@ typedef void(^FIRInstanceIDHandler)(NSString * __nullable identity, NSError * __ * @param error The error if deleting the identity and all the tokens associated with * it fails else nil. */ -typedef void(^FIRInstanceIDDeleteHandler)(NSError * __nullable error) - FIR_SWIFT_NAME(InstanceIDDeleteHandler); +typedef void(^GGLInstanceIDDeleteHandler)(NSError *error); /** - * @enum FIRInstanceIDError + * @enum GGLInstanceIDOperationErrorCode + * Description of error codes */ -typedef NS_ENUM(NSUInteger, FIRInstanceIDError) { +typedef NS_ENUM(NSUInteger, GGLInstanceIDOperationErrorCode) { // Http related errors. - /// Unknown error. - FIRInstanceIDErrorUnknown = 0, + /// InvalidRequest -- Some parameters of the request were invalid. + kGGLInstanceIDOperationErrorCodeInvalidRequest = 0, /// Auth Error -- GCM couldn't validate request from this client. - FIRInstanceIDErrorAuthentication = 1, + kGGLInstanceIDOperationErrorCodeAuthentication = 1, /// NoAccess -- InstanceID service cannot be accessed. - FIRInstanceIDErrorNoAccess = 2, + kGGLInstanceIDOperationErrorCodeNoAccess = 2, /// Timeout -- Request to InstanceID backend timed out. - FIRInstanceIDErrorTimeout = 3, + kGGLInstanceIDOperationErrorCodeTimeout = 3, + /// Network -- No network available to reach the servers. - FIRInstanceIDErrorNetwork = 4, + kGGLInstanceIDOperationErrorCodeNetwork = 4, /// OperationInProgress -- Another similar operation in progress, /// bailing this one. - FIRInstanceIDErrorOperationInProgress = 5, + kGGLInstanceIDOperationErrorCodeOperationInProgress = 5, - /// InvalidRequest -- Some parameters of the request were invalid. - FIRInstanceIDErrorInvalidRequest = 7, -} FIR_SWIFT_NAME(InstanceIDError); + /// Unknown error. + kGGLInstanceIDOperationErrorCodeUnknown = 7, -/** - * The APNS token type for the app. If the token type is set to `UNKNOWN` - * InstanceID will implicitly try to figure out what the actual token type - * is from the provisioning profile. - */ -typedef NS_ENUM(NSInteger, FIRInstanceIDAPNSTokenType) { - /// Unknown token type. - FIRInstanceIDAPNSTokenTypeUnknown, - /// Sandbox token type. - FIRInstanceIDAPNSTokenTypeSandbox, - /// Production token type. - FIRInstanceIDAPNSTokenTypeProd, -} FIR_SWIFT_NAME(InstanceIDAPNSTokenType) - __deprecated_enum_msg("Use FIRMessaging's APNSToken property instead."); + // InstanceID specific errors + + /* + * Generic errors. + */ + + // Device seems to be missing a valid deviceID. Cannot + // authenticate device requests. + kGGLInstanceIDOperationErrorCodeMissingDeviceID = 501, + + /** + * Token specific errors. + */ + + /// GCM token request is missing APNS token. + kGGLInstanceIDOperationErrorCodeMissingAPNSToken = 1001, + + /// GCM token request is missing server type. + kGGLInstanceIDOperationErrorCodeMissingAPNSServerType = 1002, + + /// Token request has invalid authorizedEntity. + kGGLInstanceIDOperationErrorCodeInvalidAuthorizedEntity = 1003, + + /// Token request has invalid scope. + kGGLInstanceIDOperationErrorCodeInvalidScope = 1004, + + /// Should call `startWithConfig:` before requesting token. + kGGLInstanceIDOperationErrorCodeInvalidStart = 1005, + + /// KeyPair access error. + kGGLInstanceIDOperationErrorCodeInvalidKeyPair = 1006, + + /** + * Identity specific errors. + */ + + /// Missing KeyPair. + kGGLInstanceIDOperationErrorCodeMissingKeyPair = 2001, +}; /** * Instance ID provides a unique identifier for each app instance and a mechanism - * to authenticate and authorize actions (for example, sending an FCM message). + * to authenticate and authorize actions (for example, sending a GCM message). * * Instance ID is long lived but, may be reset if the device is not used for * a long time or the Instance ID service detects a problem. - * If Instance ID is reset, the app will be notified via - * `kFIRInstanceIDTokenRefreshNotification`. + * If Instance ID is reset, the app will be notified with a callback to + * [GGLInstanceIDDelegate onTokenRefresh] * * If the Instance ID has become invalid, the app can request a new one and * send it to the app server. * To prove ownership of Instance ID and to allow servers to access data or * services associated with the app, call - * `[FIRInstanceID tokenWithAuthorizedEntity:scope:options:handler]`. + * `[GGLInstanceID tokenWithAuthorizedEntity:scope:options:handler]`. */ -FIR_SWIFT_NAME(InstanceID) -@interface FIRInstanceID : NSObject +@interface GGLInstanceID : NSObject /** - * FIRInstanceID. + * GGLInstanceID. * - * @return A shared instance of FIRInstanceID. + * @return A shared instance of GGLInstanceID. */ -+ (nonnull instancetype)instanceID FIR_SWIFT_NAME(instanceID()); ++ (instancetype)sharedInstance; /** - * Unavailable. Use +instanceID instead. + * Start `GGLInstanceID` with the specified config. + * + * @see GGLInstanceIDConfig + * + * @param config The `GGLInstanceIDConfig` used to build the service. */ -- (nonnull instancetype)init __attribute__((unavailable("Use +instanceID instead."))); +- (void)startWithConfig:(GGLInstanceIDConfig *)config; /** - * Set APNS token for the application. This APNS token will be used to register - * with Firebase Messaging using `token` or - * `tokenWithAuthorizedEntity:scope:options:handler`. If the token type is set to - * `FIRInstanceIDAPNSTokenTypeUnknown` InstanceID will read the provisioning profile - * to find out the token type. - * - * @param token The APNS token for the application. - * @param type The APNS token type for the above token. + * Stop any network requests started by the client and release any handlers + * associated with it. */ -- (void)setAPNSToken:(nonnull NSData *)token - type:(FIRInstanceIDAPNSTokenType)type - __deprecated_msg("Use FIRMessaging's APNSToken property instead."); +- (void)stopAllRequests; #pragma mark - Tokens /** - * Returns a Firebase Messaging scoped token for the firebase app. - * - * @return Null Returns null if the device has not yet been registerd with - * Firebase Message else returns a valid token. - */ -- (nullable NSString *)token; - -/** * Returns a token that authorizes an Entity (example: cloud service) to perform * an action on behalf of the application identified by Instance ID. * @@ -209,7 +205,7 @@ FIR_SWIFT_NAME(InstanceID) * same authorizedEntity and scope before the last one finishes will result in an * error with code `OperationInProgress`. * - * @see FIRInstanceID deleteTokenWithAuthorizedEntity:scope:handler: + * @see GGLInstanceID deleteTokenWithAuthorizedEntity:scope:handler: * * @param authorizedEntity Entity authorized by the token. * @param scope Action authorized for authorizedEntity. @@ -226,14 +222,14 @@ FIR_SWIFT_NAME(InstanceID) * is nil and a valid `error` is returned. The valid error * codes have been documented above. */ -- (void)tokenWithAuthorizedEntity:(nonnull NSString *)authorizedEntity - scope:(nonnull NSString *)scope - options:(nullable NSDictionary *)options - handler:(nonnull FIRInstanceIDTokenHandler)handler; +- (void)tokenWithAuthorizedEntity:(NSString *)authorizedEntity + scope:(NSString *)scope + options:(NSDictionary *)options + handler:(GGLInstanceIDTokenHandler)handler; /** * Revokes access to a scope (action) for an entity previously - * authorized by `[FIRInstanceID tokenWithAuthorizedEntity:scope:options:handler]`. + * authorized by `[GGLInstanceID tokenWithAuthorizedEntity:scope:options:handler]`. * * This is an asynchronous call. Call this on the main thread since InstanceID lib * is not thread safe. In case token deletion fails for some reason we invoke the @@ -250,9 +246,9 @@ FIR_SWIFT_NAME(InstanceID) * In case of error an appropriate error object is returned * else error is nil. */ -- (void)deleteTokenWithAuthorizedEntity:(nonnull NSString *)authorizedEntity - scope:(nonnull NSString *)scope - handler:(nonnull FIRInstanceIDDeleteTokenHandler)handler; +- (void)deleteTokenWithAuthorizedEntity:(NSString *)authorizedEntity + scope:(NSString *)scope + handler:(GGLInstanceIDDeleteTokenHandler)handler; #pragma mark - Identity @@ -267,13 +263,11 @@ FIR_SWIFT_NAME(InstanceID) * a valid identifier is returned and a valid identifier for the * application instance. */ -- (void)getIDWithHandler:(nonnull FIRInstanceIDHandler)handler - FIR_SWIFT_NAME(getID(handler:)); +- (void)getIDWithHandler:(GGLInstanceIDHandler)handler; /** * Resets Instance ID and revokes all tokens. */ -- (void)deleteIDWithHandler:(nonnull FIRInstanceIDDeleteHandler)handler - FIR_SWIFT_NAME(deleteID(handler:)); +- (void)deleteIDWithHandler:(GGLInstanceIDDeleteHandler)handler; @end diff --git a/StoneIsland/platforms/ios/Pods/GGLInstanceID/Headers/Public/GGLInstanceIDConfig.h b/StoneIsland/platforms/ios/Pods/GGLInstanceID/Headers/Public/GGLInstanceIDConfig.h new file mode 100644 index 00000000..da885569 --- /dev/null +++ b/StoneIsland/platforms/ios/Pods/GGLInstanceID/Headers/Public/GGLInstanceIDConfig.h @@ -0,0 +1,32 @@ +@protocol GGLInstanceIDDelegate; + +typedef NS_ENUM(int8_t, GGLInstanceIDLogLevel) { + kGGLInstanceIDLogLevelDebug, + kGGLInstanceIDLogLevelInfo, + kGGLInstanceIDLogLevelError, + kGGLInstanceIDLogLevelAssert, +}; + +/** + * The config used to configure different options in GGLInstanceID library. + */ +@interface GGLInstanceIDConfig : NSObject <NSCopying, NSMutableCopying> + +/** + * Set the GGLInstanceIDDelegate to receive callbacks. + * + * @see GGLInstanceIDDelegate + */ +@property(nonatomic, readwrite, weak) id<GGLInstanceIDDelegate> delegate; + +// the log level for the GGLInstanceID library. +@property(nonatomic, readwrite, assign) GGLInstanceIDLogLevel logLevel; + +/** + * Initialize a default config with logLevel set to `kGGLInstanceIDLogLevelError`. + * + * @return A default config for GGLInstanceID. + */ ++ (instancetype)defaultConfig; + +@end diff --git a/StoneIsland/platforms/ios/Pods/GGLInstanceID/Headers/Public/GGLInstanceIDDelegate.h b/StoneIsland/platforms/ios/Pods/GGLInstanceID/Headers/Public/GGLInstanceIDDelegate.h new file mode 100644 index 00000000..dc706a2d --- /dev/null +++ b/StoneIsland/platforms/ios/Pods/GGLInstanceID/Headers/Public/GGLInstanceIDDelegate.h @@ -0,0 +1,13 @@ +@protocol GGLInstanceIDDelegate <NSObject> + +/** + * Called when the system determines that tokens need to be refreshed. + * This method is also called if Instance ID has been reset in which + * case, tokens and `GcmPubSub` subscriptions also need to be refreshed. + * + * Instance ID service will throttle the refresh event across all devices + * to control the rate of token updates on application servers. + */ +- (void)onTokenRefresh; + +@end diff --git a/StoneIsland/platforms/ios/Pods/GGLInstanceID/Headers/Public/GGLInstanceIDHeaders.h b/StoneIsland/platforms/ios/Pods/GGLInstanceID/Headers/Public/GGLInstanceIDHeaders.h new file mode 100644 index 00000000..2aa4eddd --- /dev/null +++ b/StoneIsland/platforms/ios/Pods/GGLInstanceID/Headers/Public/GGLInstanceIDHeaders.h @@ -0,0 +1,4 @@ +#import "GGLInstanceID.h" +#import "GGLInstanceIDConfig.h" +#import "GGLInstanceIDDelegate.h" + diff --git a/StoneIsland/platforms/ios/Pods/GGLInstanceID/Libraries/libGGLInstanceIDLib.a b/StoneIsland/platforms/ios/Pods/GGLInstanceID/Libraries/libGGLInstanceIDLib.a Binary files differnew file mode 100755 index 00000000..d5e6b3a4 --- /dev/null +++ b/StoneIsland/platforms/ios/Pods/GGLInstanceID/Libraries/libGGLInstanceIDLib.a diff --git a/StoneIsland/platforms/ios/Pods/FirebaseInstanceID/README.md b/StoneIsland/platforms/ios/Pods/GGLInstanceID/README.md index 25fe2196..e6fb90db 100755..100644 --- a/StoneIsland/platforms/ios/Pods/FirebaseInstanceID/README.md +++ b/StoneIsland/platforms/ios/Pods/GGLInstanceID/README.md @@ -2,7 +2,7 @@ Instance ID provides a unique ID per instance of your apps and also provides a mechanism to authenticate and authorize actions, like sending messages via -Firebase Cloud Messaging (FCM). +Google Cloud Messaging (GCM). Please visit [our developer diff --git a/StoneIsland/platforms/ios/Pods/GoogleCloudMessaging/CHANGELOG.md b/StoneIsland/platforms/ios/Pods/GoogleCloudMessaging/CHANGELOG.md new file mode 100644 index 00000000..9f24a7a5 --- /dev/null +++ b/StoneIsland/platforms/ios/Pods/GoogleCloudMessaging/CHANGELOG.md @@ -0,0 +1,32 @@ +# 2016-01-25 -- v1.2.0 + +Add Bitcode markers. + +# 2016-01-25 -- v1.1.3 + +- Bug fixes. + +# 2015-12-08 -- v1.1.2 + +- Bug fixes. +- Fix dSYM warnings. + +# 2015-10-21 -- v1.1.1 + +- Adds analytics support. +- Bug fixes. + +# 2015-10-8 -- v1.1.0 + +- `[GCMService appDidReceiveMessage:]` now returns `BOOL` to signify if the + message has already been received before. +- Fixes deleting old GCM registrations and topic subscriptions on app deletion + and reinstall. +- Removes usage of clang modules for ObjC++ support. +- `GCMReceiverDelegate` protocol methods are now **optional**. +- Add `useNewRemoteNotificationCallback` property in `GCMConfig` to use new + iOS8+ notification callback i.e. + `application:didReceiveRemoteNotification:fetchCompletionHandler:`. +- Add better error reporting. +- Fix some compiler warnings. +- Bug fixes. diff --git a/StoneIsland/platforms/ios/Pods/GoogleCloudMessaging/Headers/Public/GCMConfig.h b/StoneIsland/platforms/ios/Pods/GoogleCloudMessaging/Headers/Public/GCMConfig.h new file mode 100644 index 00000000..4e65fb87 --- /dev/null +++ b/StoneIsland/platforms/ios/Pods/GoogleCloudMessaging/Headers/Public/GCMConfig.h @@ -0,0 +1,49 @@ +@protocol GCMReceiverDelegate; + +typedef NS_ENUM(int8_t, GCMLogLevel) { + kGCMLogLevelDebug, + kGCMLogLevelInfo, + kGCMLogLevelError, + kGCMLogLevelAssert, +}; + +/** + * Config used to set different options in Google Cloud Messaging. + */ +@interface GCMConfig : NSObject + +/** + * Set the `GCMReceiverDelegate` to receive callbacks on upstream messages. + * + * @see GCMReceiverDelegate + */ +@property(nonatomic, readwrite, weak) id<GCMReceiverDelegate> receiverDelegate; + +/** + * The log level for the GCM library. Valid values are `kGCMLogLevelDebug`, + * `kGCMLogLevelInfo`, `kGCMLogLevelError`, and `kGCMLogLevelAssert`. + */ +@property(nonatomic, readwrite, assign) GCMLogLevel logLevel; + +/** + * Specify which remote notification callback to invoke when a GCM message is + * received. + * + * If set to "YES" GCM uses the new remote notification callback i.e. + * application:didReceiveRemoteNotification:fetchCompletionHandler:. + * If set to "NO" GCM invokes application:didReceiveRemoteNotification: callback. + * + * Defaults to "NO". + */ +@property(nonatomic, readwrite, assign) BOOL useNewRemoteNotificationCallback; + +/** + * Get default configuration for GCM. The default config has logLevel set to + * `kGCMLogLevelError` and `receiverDelegate` is set to nil. + * + * @return GCMConfig sharedInstance. + */ ++ (instancetype)defaultConfig; + +@end + diff --git a/StoneIsland/platforms/ios/Pods/GoogleCloudMessaging/Headers/Public/GCMPubSub.h b/StoneIsland/platforms/ios/Pods/GoogleCloudMessaging/Headers/Public/GCMPubSub.h new file mode 100644 index 00000000..37e0a6b3 --- /dev/null +++ b/StoneIsland/platforms/ios/Pods/GoogleCloudMessaging/Headers/Public/GCMPubSub.h @@ -0,0 +1,82 @@ +/** + * @related GCMPubSub + * + * The completion handler invoked when the GCM subscribe/unsubscribe returns. + * If the call fails we return the approprirate `error code` as documented in + * `GCMService`. + * + * @param error The error describing subscribe failure else nil. + */ +typedef void(^GCMPubSubCompletion)(NSError *error); + +/** + * GcmPubSub provides a publish-subscribe model for sending GCM topic messages. + * + * An app can subscribe to different topics defined by the + * developer. The app server can then send messages to the subscribed devices + * without having to maintain topic-subscribers mapping. Topics do not + * need to be explicitly created before subscribing or publishing—they + * are automatically created when publishing or subscribing. + * + * Messages published to the topic will be received as regular GCM messages + * with `"from"` set to `"/topics/myTopic"`. + * + * Only topic names that match the pattern `"/topics/[a-zA-Z0-9-_.~%]{1,900}"` + * are allowed for subscribing and publishing. + */ +@interface GCMPubSub : NSObject + +/** + * Returns an instance of GCMPubSub. Note you need to call + * `GCMService startWithConfig` to start using GCM. + * + * @return A shared instance of GCMPubSub. + */ ++ (instancetype)sharedInstance; + +/** + * Subscribes an app instance to a topic, enabling it to receive messages + * sent to that topic. + * + * This is an asynchronous call. If subscription fails, GCM + * invokes the completion callback with the appropriate error. + * + * Call this function from the main thread. GCM is not thread safe. + * + * @see GCMPubSub unsubscribeWithToken:topic:handler: + * + * @param token The registration token as received from the InstanceID + * library for a given `authorizedEntity` and "gcm" scope. + * @param topic The topic to subscribe to. Should be of the form + * `"/topics/<topic-name>"`. + * @param handler The callback handler invoked when the subscribe call + * ends. In case of success, a nil error is returned. Otherwise, + * an appropriate error object is returned. + */ +- (void)subscribeWithToken:(NSString *)token + topic:(NSString *)topic + options:(NSDictionary *)options + handler:(GCMPubSubCompletion)handler; + + +/** + * Unsubscribes an app instance from a topic, stopping it from receiving + * any further messages sent to that topic. + * + * This is an asynchronous call. If the attempt to unsubscribe fails, + * we invoke the `completion` callback passed in with an appropriate error. + * + * Call this function from the main thread. + * + * @param token The token used to subscribe to this topic. + * @param topic The topic to unsubscribe from. + * @param handler The handler that is invoked once the unsubscribe call ends. + * In case of success, nil error is returned. Otherwise, an + * appropriate error object is returned. + */ +- (void)unsubscribeWithToken:(NSString *)token + topic:(NSString *)topic + options:(NSDictionary *)options + handler:(GCMPubSubCompletion)handler; + +@end diff --git a/StoneIsland/platforms/ios/Pods/GoogleCloudMessaging/Headers/Public/GCMReceiverDelegate.h b/StoneIsland/platforms/ios/Pods/GoogleCloudMessaging/Headers/Public/GCMReceiverDelegate.h new file mode 100644 index 00000000..45433aed --- /dev/null +++ b/StoneIsland/platforms/ios/Pods/GoogleCloudMessaging/Headers/Public/GCMReceiverDelegate.h @@ -0,0 +1,35 @@ +/** + * Delegate for receiving status of upstream messages sent via Google Cloud Messaging. + */ +@protocol GCMReceiverDelegate <NSObject> + +@optional +/** + * The callback is invoked once GCM processes the message. If processing fails, the + * callback is invoked with a valid error object representing the error. + * Otherwise, the message is ready to be sent. + * + * @param messageID The messageID for the message that failed to be sent upstream. + * @param error The error describing why the send operation failed. + */ +- (void)willSendDataMessageWithID:(NSString *)messageID error:(NSError *)error; + +/** + * This callback is invoked if GCM successfully sent the message upstream + * and the message was successfully received. + * + * @param messageID The messageID for the message sent. + */ +- (void)didSendDataMessageWithID:(NSString *)messageID; + +/** + * Called when the GCM server deletes pending messages due to exceeded + * storage limits. This may occur, for example, when the device cannot be + * reached for an extended period of time. + * + * It is recommended to retrieve any missing messages directly from the + * app server. + */ +- (void)didDeleteMessagesOnServer; + +@end diff --git a/StoneIsland/platforms/ios/Pods/GoogleCloudMessaging/Headers/Public/GCMService.h b/StoneIsland/platforms/ios/Pods/GoogleCloudMessaging/Headers/Public/GCMService.h new file mode 100644 index 00000000..d903e5a3 --- /dev/null +++ b/StoneIsland/platforms/ios/Pods/GoogleCloudMessaging/Headers/Public/GCMService.h @@ -0,0 +1,243 @@ +@class GCMConfig; + +/** + * The completion handler invoked once the data connection with GCM is + * established. The data connection is used to send a continous stream of + * data and all the GCM data notifications arrive through this connection. + * Once the connection is established we invoke the callback with `nil` error. + * Correspondingly if we get an error while trying to establish a connection + * we invoke the handler with an appropriate error object and do an + * exponential backoff to try and connect again unless successful. + + * + * @param error The error object if any describing why the data connection + * to GCM failed. + */ +typedef void(^GCMServiceConnectCompletion)(NSError *error); + + +/** + * @enum GCMServiceErrorCode + * Description of error codes + */ +typedef NS_ENUM(NSUInteger, GCMServiceErrorCode) { + /** + * HTTP errors. + */ + + // InvalidRequest -- Some parameters of the request were invalid. + kGCMServiceErrorCodeInvalidRequest = 0, + + // Auth Error -- GCM couldn't validate request from this client. + kGCMServiceErrorCodeAuthentication = 1, + + // NoAccess -- InstanceID service cannot be accessed. + kGCMServiceErrorCodeNoAccess = 2, + + // Timeout -- Request to InstanceID backend timed out. + kGCMServiceErrorCodeTimeout = 3, + + // Network -- No network available to reach the servers. + kGCMServiceErrorCodeNetwork = 4, + + // OperationInProgress -- Another similar operation in progress, + // bailing this one. + kGCMServiceErrorCodeOperationInProgress = 5, + + // Unknown error. + kGCMServiceErrorCodeUnknown = 7, + + /** + * Generic errors. + */ + + // Device seems to be missing a valid deviceID. Cannot authenticate + // device requests. + kGCMServiceErrorMissingDeviceID = 501, + + /** + * Upstream Send errors + */ + + // Upstream send not available (e.g. network issues) + kGCMServiceErrorCodeUpstreamServiceNotAvailable = 1001, + + // Invalid send parameters. + kGCMServiceErrorCodeInvalidParameters = 1002, + + // Invalid missing to. + kGCMServiceErrorCodeMissingTo = 1003, + + // GCM could not cache the message for sending. + kGCMServiceErrorSave = 1004, + + // Message size exceeded (size > 4KB). + kGCMServiceErrorSizeExceeded = 1005, + + /** + * GCM Connect errors. + */ + + // GCM already connected with the client. + kGCMServiceErrorCodeAlreadyConnected = 2001, + + /** + * PubSub errors. + */ + + // Topic already subscribed to. + kGCMServiceErrorCodePubSubAlreadySubscribed = 3001, + + // Topic already unsubscribed from. + kGCMServiceErrorCodePubSubAlreadyUnsubscribed = 3002, + + // Invalid topic name, does not match the topic regex "/topics/[a-zA-Z0-9-_.~%]+" + kGCMServiceErrorCodePubSubInvalidTopic = 3003, +}; + +/** + * GoogleCloudMessaging (GCM) enables apps to communicate with their app servers + * using simple messages. + * + * To send or receive messages, the app must get a + * registration token from GGLInstanceID, which authorizes an + * app server to send messages to an app instance. Pass your sender ID and + * `kGGLInstanceIDScopeGCM` as parameters to the method. + * + * A sender ID is a project number created when you configure your API project. + * It is labeled "Project Number" in the Google Developers Console. + * + * In order to receive GCM messages, declare application:didReceiveRemoteNotification: + * + * Client apps can send upstream messages back to the app server using the XMPP-based + * <a href="http://developers.google.com/cloud-messaging/ccs.html">Cloud Connection Server</a>, + * + */ +@interface GCMService : NSObject + +/** + * GCMService + * + * @return A shared instance of GCMService. + */ ++ (instancetype)sharedInstance; + +/** + * Start the `GCMService` with config. This starts the `GCMService` and + * allocates the required resources. + * + * @see GCMConfig + * + * @param config The `GCMConfig` used to build the service. + */ +- (void)startWithConfig:(GCMConfig *)config; + +/** + * Teardown the GCM connection and free all the resources owned by GCM. + * + * Call this when you don't need the GCM connection or to cancel all + * subscribe/unsubscribe requests. If GCM connection is alive before + * calling this, it would implicitly disconnect the connection. + * + * Calling `disconect` before invoking this method is useful but not required. + * Once you call this you won't be able to use `GCMService` for this session + * of your app. Therefore call this only when the app is going to exit. + * In case of background you should rather use `disconnect` and then + * if the app comes to the foreground again you can call `connect` again to + * establish a new connection. + */ +- (void)teardown; + +#pragma mark - Messages + +/** + * Call this to let GCM know that the app received a downstream message. Used + * to detect duplicate messages and to track message delivery for messages + * with different routes. + * + * @param message The downstream message received by the app. + * + * @return For APNs messages this always returns FALSE. For other messages, + * this returns FALSE for new, non-duplicated messages. + */ +- (BOOL)appDidReceiveMessage:(NSDictionary *)message; + + #pragma mark - Connect + +/** + * Create a GCM data connection which will be used to send the data notifications + * send by your server. It will also be used to send ACKS and other messages based + * on the GCM ACKS and other messages based on the GCM protocol. + * + * Use the `disconnect` method to disconnect the connection. + * + * @see GCMService disconnect + * + * @param handler The handler to be invoked once the connection is established. + * If the connection fails we invoke the handler with an + * appropriate error code letting you know why it failed. At + * the same time, GCM performs exponential backoff to retry + * establishing a connection and invoke the handler when successful. + */ +- (void)connectWithHandler:(GCMServiceConnectCompletion)handler; + +/** + * Disconnect the current GCM data connection. This stops any attempts to + * connect to GCM. Calling this on an already disconnected client is a no-op. + * + * Call this before `teardown` when your app is going to the background. + * Since the GCM connection won't be allowed to live when in background it is + * prudent to close the connection. + * + * @see GCMService teardown + */ +- (void)disconnect; + +#pragma mark - Send + +/** + * Send an upstream ("device to cloud") message. + * + * The message will be queued if we don't have an active connection for the max + * interval. + * + * @param message Key/Value pairs to be sent. Values must be String, any other + * type will be ignored. + * @param to String identifying the receiver of the message. For GCM + * project IDs the value is `SENDER_ID@gcm.googleapis.com`. + * @param msgId A unique ID of the message. This is generated by the + * application. It must be unique for each message. This allows + * error callbacks and debugging. + */ +- (void)sendMessage:(NSDictionary *)message + to:(NSString *)to + withId:(NSString *)msgId; + +/** + * Send an upstream ("device to cloud") message. + * + * The message will be queued if we don't have an active connection for the max + * interval. You can only use the upstream feature if your GCM implementation + * uses the XMPP-based Cloud Connection Server. + * + * @param message Key/Value pairs to be sent. Values must be String, any + * other type will be ignored. + * @param to A string identifying the receiver of the message. For GCM + * project IDs the value is `SENDER_ID@gcm.googleapis.com`. + * @param ttl The Time to live for the message. In case we aren't able to + * send the message before the ttl expires we will send you a + * callback. If 0, we'll attempt to send immediately and return + * an error if we're not connected. Otherwise, the message will + * be queued.As for server-side messages, we don't return an error + * if the message has been dropped because of TTL; this can happen + * on the server side, and it would require extra communication. + * @param msgId The ID of the message. This is generated by the application. It + * must be unique for each message. It allows error callbacks and + * debugging, to uniquely identify each message. + */ +- (void)sendMessage:(NSDictionary *)message + to:(NSString *)to + timeToLive:(int64_t)ttl + withId:(NSString *)msgId; + +@end diff --git a/StoneIsland/platforms/ios/Pods/GoogleCloudMessaging/Headers/Public/GoogleCloudMessaging.h b/StoneIsland/platforms/ios/Pods/GoogleCloudMessaging/Headers/Public/GoogleCloudMessaging.h new file mode 100644 index 00000000..aab64fbe --- /dev/null +++ b/StoneIsland/platforms/ios/Pods/GoogleCloudMessaging/Headers/Public/GoogleCloudMessaging.h @@ -0,0 +1,5 @@ +#import "GCMConfig.h" +#import "GCMPubSub.h" +#import "GCMReceiverDelegate.h" +#import "GCMService.h" + diff --git a/StoneIsland/platforms/ios/Pods/GoogleCloudMessaging/Libraries/libGcmLib.a b/StoneIsland/platforms/ios/Pods/GoogleCloudMessaging/Libraries/libGcmLib.a Binary files differnew file mode 100755 index 00000000..a9356d23 --- /dev/null +++ b/StoneIsland/platforms/ios/Pods/GoogleCloudMessaging/Libraries/libGcmLib.a diff --git a/StoneIsland/platforms/ios/Pods/GoogleCloudMessaging/README.md b/StoneIsland/platforms/ios/Pods/GoogleCloudMessaging/README.md new file mode 100644 index 00000000..2c900de2 --- /dev/null +++ b/StoneIsland/platforms/ios/Pods/GoogleCloudMessaging/README.md @@ -0,0 +1,10 @@ +# Google Cloud Messaging SDK for iOS + +Google Cloud Messaging (GCM) is a free service that enables developers to send +messages between servers and client apps. This includes downstream messages +from servers to client apps, and upstream messages from client apps to servers. + + +Please visit [our developer +site](https://developers.google.com/cloud-messaging/ios/start) for integration +instructions, documentation, support information, and terms of service. diff --git a/StoneIsland/platforms/ios/Pods/GoogleIPhoneUtilities/Frameworks/GoogleIPhoneUtilities.framework/GoogleIPhoneUtilities b/StoneIsland/platforms/ios/Pods/GoogleIPhoneUtilities/Frameworks/GoogleIPhoneUtilities.framework/GoogleIPhoneUtilities Binary files differnew file mode 100644 index 00000000..7ab2cf26 --- /dev/null +++ b/StoneIsland/platforms/ios/Pods/GoogleIPhoneUtilities/Frameworks/GoogleIPhoneUtilities.framework/GoogleIPhoneUtilities diff --git a/StoneIsland/platforms/ios/Pods/GoogleInterchangeUtilities/Frameworks/frameworks/GoogleInterchangeUtilities.framework/GoogleInterchangeUtilities b/StoneIsland/platforms/ios/Pods/GoogleInterchangeUtilities/Frameworks/frameworks/GoogleInterchangeUtilities.framework/GoogleInterchangeUtilities Binary files differnew file mode 100755 index 00000000..de404247 --- /dev/null +++ b/StoneIsland/platforms/ios/Pods/GoogleInterchangeUtilities/Frameworks/frameworks/GoogleInterchangeUtilities.framework/GoogleInterchangeUtilities diff --git a/StoneIsland/platforms/ios/Pods/GoogleSymbolUtilities/Frameworks/frameworks/GoogleSymbolUtilities.framework/GoogleSymbolUtilities b/StoneIsland/platforms/ios/Pods/GoogleSymbolUtilities/Frameworks/frameworks/GoogleSymbolUtilities.framework/GoogleSymbolUtilities Binary files differnew file mode 100755 index 00000000..408a0026 --- /dev/null +++ b/StoneIsland/platforms/ios/Pods/GoogleSymbolUtilities/Frameworks/frameworks/GoogleSymbolUtilities.framework/GoogleSymbolUtilities diff --git a/StoneIsland/platforms/ios/Pods/GoogleToolboxForMac/Foundation/GTMLogger.h b/StoneIsland/platforms/ios/Pods/GoogleToolboxForMac/Foundation/GTMLogger.h deleted file mode 100644 index 16f0eafb..00000000 --- a/StoneIsland/platforms/ios/Pods/GoogleToolboxForMac/Foundation/GTMLogger.h +++ /dev/null @@ -1,508 +0,0 @@ -// -// GTMLogger.h -// -// Copyright 2007-2008 Google Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); you may not -// use this file except in compliance with the License. You may obtain a copy -// of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -// License for the specific language governing permissions and limitations under -// the License. -// - -// Key Abstractions -// ---------------- -// -// This file declares multiple classes and protocols that are used by the -// GTMLogger logging system. The 4 main abstractions used in this file are the -// following: -// -// * logger (GTMLogger) - The main logging class that users interact with. It -// has methods for logging at different levels and uses a log writer, a log -// formatter, and a log filter to get the job done. -// -// * log writer (GTMLogWriter) - Writes a given string to some log file, where -// a "log file" can be a physical file on disk, a POST over HTTP to some URL, -// or even some in-memory structure (e.g., a ring buffer). -// -// * log formatter (GTMLogFormatter) - Given a format string and arguments as -// a va_list, returns a single formatted NSString. A "formatted string" could -// be a string with the date prepended, a string with values in a CSV format, -// or even a string of XML. -// -// * log filter (GTMLogFilter) - Given a formatted log message as an NSString -// and the level at which the message is to be logged, this class will decide -// whether the given message should be logged or not. This is a flexible way -// to filter out messages logged at a certain level, messages that contain -// certain text, or filter nothing out at all. This gives the caller the -// flexibility to dynamically enable debug logging in Release builds. -// -// This file also declares some classes to handle the common log writer, log -// formatter, and log filter cases. Callers can also create their own writers, -// formatters, and filters and they can even build them on top of the ones -// declared here. Keep in mind that your custom writer/formatter/filter may be -// called from multiple threads, so it must be thread-safe. - -#import <Foundation/Foundation.h> -#import "GTMDefines.h" - -// Predeclaration of used protocols that are declared later in this file. -@protocol GTMLogWriter, GTMLogFormatter, GTMLogFilter; - -// GTMLogger -// -// GTMLogger is the primary user-facing class for an object-oriented logging -// system. It is built on the concept of log formatters (GTMLogFormatter), log -// writers (GTMLogWriter), and log filters (GTMLogFilter). When a message is -// sent to a GTMLogger to log a message, the message is formatted using the log -// formatter, then the log filter is consulted to see if the message should be -// logged, and if so, the message is sent to the log writer to be written out. -// -// GTMLogger is intended to be a flexible and thread-safe logging solution. Its -// flexibility comes from the fact that GTMLogger instances can be customized -// with user defined formatters, filters, and writers. And these writers, -// filters, and formatters can be combined, stacked, and customized in arbitrary -// ways to suit the needs at hand. For example, multiple writers can be used at -// the same time, and a GTMLogger instance can even be used as another -// GTMLogger's writer. This allows for arbitrarily deep logging trees. -// -// A standard GTMLogger uses a writer that sends messages to standard out, a -// formatter that smacks a timestamp and a few other bits of interesting -// information on the message, and a filter that filters out debug messages from -// release builds. Using the standard log settings, a log message will look like -// the following: -// -// 2007-12-30 10:29:24.177 myapp[4588/0xa07d0f60] [lvl=1] foo=<Foo: 0x123> -// -// The output contains the date and time of the log message, the name of the -// process followed by its process ID/thread ID, the log level at which the -// message was logged (in the previous example the level was 1: -// kGTMLoggerLevelDebug), and finally, the user-specified log message itself (in -// this case, the log message was @"foo=%@", foo). -// -// Multiple instances of GTMLogger can be created, each configured their own -// way. Though GTMLogger is not a singleton (in the GoF sense), it does provide -// access to a shared (i.e., globally accessible) GTMLogger instance. This makes -// it convenient for all code in a process to use the same GTMLogger instance. -// The shared GTMLogger instance can also be configured in an arbitrary, and -// these configuration changes will affect all code that logs through the shared -// instance. - -// -// Log Levels -// ---------- -// GTMLogger has 3 different log levels: Debug, Info, and Error. GTMLogger -// doesn't take any special action based on the log level; it simply forwards -// this information on to formatters, filters, and writers, each of which may -// optionally take action based on the level. Since log level filtering is -// performed at runtime, log messages are typically not filtered out at compile -// time. The exception to this rule is that calls to the GTMLoggerDebug() macro -// *ARE* filtered out of non-DEBUG builds. This is to be backwards compatible -// with behavior that many developers are currently used to. Note that this -// means that GTMLoggerDebug(@"hi") will be compiled out of Release builds, but -// [[GTMLogger sharedLogger] logDebug:@"hi"] will NOT be compiled out. -// -// Standard loggers are created with the GTMLogLevelFilter log filter, which -// filters out certain log messages based on log level, and some other settings. -// -// In addition to the -logDebug:, -logInfo:, and -logError: methods defined on -// GTMLogger itself, there are also C macros that make usage of the shared -// GTMLogger instance very convenient. These macros are: -// -// GTMLoggerDebug(...) -// GTMLoggerInfo(...) -// GTMLoggerError(...) -// -// Again, a notable feature of these macros is that GTMLogDebug() calls *will be -// compiled out of non-DEBUG builds*. -// -// Standard Loggers -// ---------------- -// GTMLogger has the concept of "standard loggers". A standard logger is simply -// a logger that is pre-configured with some standard/common writer, formatter, -// and filter combination. Standard loggers are created using the creation -// methods beginning with "standard". The alternative to a standard logger is a -// regular logger, which will send messages to stdout, with no special -// formatting, and no filtering. -// -// How do I use GTMLogger? -// ---------------------- -// The typical way you will want to use GTMLogger is to simply use the -// GTMLogger*() macros for logging from code. That way we can easily make -// changes to the GTMLogger class and simply update the macros accordingly. Only -// your application startup code (perhaps, somewhere in main()) should use the -// GTMLogger class directly in order to configure the shared logger, which all -// of the code using the macros will be using. Again, this is just the typical -// situation. -// -// To be complete, there are cases where you may want to use GTMLogger directly, -// or even create separate GTMLogger instances for some reason. That's fine, -// too. -// -// Examples -// -------- -// The following show some common GTMLogger use cases. -// -// 1. You want to log something as simply as possible. Also, this call will only -// appear in debug builds. In non-DEBUG builds it will be completely removed. -// -// GTMLoggerDebug(@"foo = %@", foo); -// -// 2. The previous example is similar to the following. The major difference is -// that the previous call (example 1) will be compiled out of Release builds -// but this statement will not be compiled out. -// -// [[GTMLogger sharedLogger] logDebug:@"foo = %@", foo]; -// -// 3. Send all logging output from the shared logger to a file. We do this by -// creating an NSFileHandle for writing associated with a file, and setting -// that file handle as the logger's writer. -// -// NSFileHandle *f = [NSFileHandle fileHandleForWritingAtPath:@"/tmp/f.log" -// create:YES]; -// [[GTMLogger sharedLogger] setWriter:f]; -// GTMLoggerError(@"hi"); // This will be sent to /tmp/f.log -// -// 4. Create a new GTMLogger that will log to a file. This example differs from -// the previous one because here we create a new GTMLogger that is different -// from the shared logger. -// -// GTMLogger *logger = [GTMLogger standardLoggerWithPath:@"/tmp/temp.log"]; -// [logger logInfo:@"hi temp log file"]; -// -// 5. Create a logger that writes to stdout and does NOT do any formatting to -// the log message. This might be useful, for example, when writing a help -// screen for a command-line tool to standard output. -// -// GTMLogger *logger = [GTMLogger logger]; -// [logger logInfo:@"%@ version 0.1 usage", progName]; -// -// 6. Send log output to stdout AND to a log file. The trick here is that -// NSArrays function as composite log writers, which means when an array is -// set as the log writer, it forwards all logging messages to all of its -// contained GTMLogWriters. -// -// // Create array of GTMLogWriters -// NSArray *writers = [NSArray arrayWithObjects: -// [NSFileHandle fileHandleForWritingAtPath:@"/tmp/f.log" create:YES], -// [NSFileHandle fileHandleWithStandardOutput], nil]; -// -// GTMLogger *logger = [GTMLogger standardLogger]; -// [logger setWriter:writers]; -// [logger logInfo:@"hi"]; // Output goes to stdout and /tmp/f.log -// -// For futher details on log writers, formatters, and filters, see the -// documentation below. -// -// NOTE: GTMLogger is application level logging. By default it does nothing -// with _GTMDevLog/_GTMDevAssert (see GTMDefines.h). An application can choose -// to bridge _GTMDevLog/_GTMDevAssert to GTMLogger by providing macro -// definitions in its prefix header (see GTMDefines.h for how one would do -// that). -// -@interface GTMLogger : NSObject { - @private - id<GTMLogWriter> writer_; - id<GTMLogFormatter> formatter_; - id<GTMLogFilter> filter_; -} - -// -// Accessors for the shared logger instance -// - -// Returns a shared/global standard GTMLogger instance. Callers should typically -// use this method to get a GTMLogger instance, unless they explicitly want -// their own instance to configure for their own needs. This is the only method -// that returns a shared instance; all the rest return new GTMLogger instances. -+ (id)sharedLogger; - -// Sets the shared logger instance to |logger|. Future calls to +sharedLogger -// will return |logger| instead. -+ (void)setSharedLogger:(GTMLogger *)logger; - -// -// Creation methods -// - -// Returns a new autoreleased GTMLogger instance that will log to stdout, using -// the GTMLogStandardFormatter, and the GTMLogLevelFilter filter. -+ (id)standardLogger; - -// Same as +standardLogger, but logs to stderr. -+ (id)standardLoggerWithStderr; - -// Same as +standardLogger but levels >= kGTMLoggerLevelError are routed to -// stderr, everything else goes to stdout. -+ (id)standardLoggerWithStdoutAndStderr; - -// Returns a new standard GTMLogger instance with a log writer that will -// write to the file at |path|, and will use the GTMLogStandardFormatter and -// GTMLogLevelFilter classes. If |path| does not exist, it will be created. -+ (id)standardLoggerWithPath:(NSString *)path; - -// Returns an autoreleased GTMLogger instance that will use the specified -// |writer|, |formatter|, and |filter|. -+ (id)loggerWithWriter:(id<GTMLogWriter>)writer - formatter:(id<GTMLogFormatter>)formatter - filter:(id<GTMLogFilter>)filter; - -// Returns an autoreleased GTMLogger instance that logs to stdout, with the -// basic formatter, and no filter. The returned logger differs from the logger -// returned by +standardLogger because this one does not do any filtering and -// does not do any special log formatting; this is the difference between a -// "regular" logger and a "standard" logger. -+ (id)logger; - -// Designated initializer. This method returns a GTMLogger initialized with the -// specified |writer|, |formatter|, and |filter|. See the setter methods below -// for what values will be used if nil is passed for a parameter. -- (id)initWithWriter:(id<GTMLogWriter>)writer - formatter:(id<GTMLogFormatter>)formatter - filter:(id<GTMLogFilter>)filter; - -// -// Logging methods -// - -// Logs a message at the debug level (kGTMLoggerLevelDebug). -- (void)logDebug:(NSString *)fmt, ... NS_FORMAT_FUNCTION(1, 2); -// Logs a message at the info level (kGTMLoggerLevelInfo). -- (void)logInfo:(NSString *)fmt, ... NS_FORMAT_FUNCTION(1, 2); -// Logs a message at the error level (kGTMLoggerLevelError). -- (void)logError:(NSString *)fmt, ... NS_FORMAT_FUNCTION(1, 2); -// Logs a message at the assert level (kGTMLoggerLevelAssert). -- (void)logAssert:(NSString *)fmt, ... NS_FORMAT_FUNCTION(1, 2); - - -// -// Accessors -// - -// Accessor methods for the log writer. If the log writer is set to nil, -// [NSFileHandle fileHandleWithStandardOutput] is used. -- (id<GTMLogWriter>)writer; -- (void)setWriter:(id<GTMLogWriter>)writer; - -// Accessor methods for the log formatter. If the log formatter is set to nil, -// GTMLogBasicFormatter is used. This formatter will format log messages in a -// plain printf style. -- (id<GTMLogFormatter>)formatter; -- (void)setFormatter:(id<GTMLogFormatter>)formatter; - -// Accessor methods for the log filter. If the log filter is set to nil, -// GTMLogNoFilter is used, which allows all log messages through. -- (id<GTMLogFilter>)filter; -- (void)setFilter:(id<GTMLogFilter>)filter; - -@end // GTMLogger - - -// Helper functions that are used by the convenience GTMLogger*() macros that -// enable the logging of function names. -@interface GTMLogger (GTMLoggerMacroHelpers) -- (void)logFuncDebug:(const char *)func msg:(NSString *)fmt, ... - NS_FORMAT_FUNCTION(2, 3); -- (void)logFuncInfo:(const char *)func msg:(NSString *)fmt, ... - NS_FORMAT_FUNCTION(2, 3); -- (void)logFuncError:(const char *)func msg:(NSString *)fmt, ... - NS_FORMAT_FUNCTION(2, 3); -- (void)logFuncAssert:(const char *)func msg:(NSString *)fmt, ... - NS_FORMAT_FUNCTION(2, 3); -@end // GTMLoggerMacroHelpers - - -// The convenience macros are only defined if they haven't already been defined. -#ifndef GTMLoggerInfo - -// Convenience macros that log to the shared GTMLogger instance. These macros -// are how users should typically log to GTMLogger. Notice that GTMLoggerDebug() -// calls will be compiled out of non-Debug builds. -#define GTMLoggerDebug(...) \ - [[GTMLogger sharedLogger] logFuncDebug:__func__ msg:__VA_ARGS__] -#define GTMLoggerInfo(...) \ - [[GTMLogger sharedLogger] logFuncInfo:__func__ msg:__VA_ARGS__] -#define GTMLoggerError(...) \ - [[GTMLogger sharedLogger] logFuncError:__func__ msg:__VA_ARGS__] -#define GTMLoggerAssert(...) \ - [[GTMLogger sharedLogger] logFuncAssert:__func__ msg:__VA_ARGS__] - -// If we're not in a debug build, remove the GTMLoggerDebug statements. This -// makes calls to GTMLoggerDebug "compile out" of Release builds -#ifndef DEBUG -#undef GTMLoggerDebug -#define GTMLoggerDebug(...) do {} while(0) -#endif - -#endif // !defined(GTMLoggerInfo) - -// Log levels. -typedef enum { - kGTMLoggerLevelUnknown, - kGTMLoggerLevelDebug, - kGTMLoggerLevelInfo, - kGTMLoggerLevelError, - kGTMLoggerLevelAssert, -} GTMLoggerLevel; - - -// -// Log Writers -// - -// Protocol to be implemented by a GTMLogWriter instance. -@protocol GTMLogWriter <NSObject> -// Writes the given log message to where the log writer is configured to write. -- (void)logMessage:(NSString *)msg level:(GTMLoggerLevel)level; -@end // GTMLogWriter - - -// Simple category on NSFileHandle that makes NSFileHandles valid log writers. -// This is convenient because something like, say, +fileHandleWithStandardError -// now becomes a valid log writer. Log messages are written to the file handle -// with a newline appended. -@interface NSFileHandle (GTMFileHandleLogWriter) <GTMLogWriter> -// Opens the file at |path| in append mode, and creates the file with |mode| -// if it didn't previously exist. -+ (id)fileHandleForLoggingAtPath:(NSString *)path mode:(mode_t)mode; -@end // NSFileHandle - - -// This category makes NSArray a GTMLogWriter that can be composed of other -// GTMLogWriters. This is the classic Composite GoF design pattern. When the -// GTMLogWriter -logMessage:level: message is sent to the array, the array -// forwards the message to all of its elements that implement the GTMLogWriter -// protocol. -// -// This is useful in situations where you would like to send log output to -// multiple log writers at the same time. Simply create an NSArray of the log -// writers you wish to use, then set the array as the "writer" for your -// GTMLogger instance. -@interface NSArray (GTMArrayCompositeLogWriter) <GTMLogWriter> -@end // GTMArrayCompositeLogWriter - - -// This category adapts the GTMLogger interface so that it can be used as a log -// writer; it's an "adapter" in the GoF Adapter pattern sense. -// -// This is useful when you want to configure a logger to log to a specific -// writer with a specific formatter and/or filter. But you want to also compose -// that with a different log writer that may have its own formatter and/or -// filter. -@interface GTMLogger (GTMLoggerLogWriter) <GTMLogWriter> -@end // GTMLoggerLogWriter - - -// -// Log Formatters -// - -// Protocol to be implemented by a GTMLogFormatter instance. -@protocol GTMLogFormatter <NSObject> -// Returns a formatted string using the format specified in |fmt| and the va -// args specified in |args|. -- (NSString *)stringForFunc:(NSString *)func - withFormat:(NSString *)fmt - valist:(va_list)args - level:(GTMLoggerLevel)level NS_FORMAT_FUNCTION(2, 0); -@end // GTMLogFormatter - - -// A basic log formatter that formats a string the same way that NSLog (or -// printf) would. It does not do anything fancy, nor does it add any data of its -// own. -@interface GTMLogBasicFormatter : NSObject <GTMLogFormatter> - -// Helper method for prettying C99 __func__ and GCC __PRETTY_FUNCTION__ -- (NSString *)prettyNameForFunc:(NSString *)func; - -@end // GTMLogBasicFormatter - - -// A log formatter that formats the log string like the basic formatter, but -// also prepends a timestamp and some basic process info to the message, as -// shown in the following sample output. -// 2007-12-30 10:29:24.177 myapp[4588/0xa07d0f60] [lvl=1] log mesage here -@interface GTMLogStandardFormatter : GTMLogBasicFormatter { - @private - NSDateFormatter *dateFormatter_; // yyyy-MM-dd HH:mm:ss.SSS - NSString *pname_; - pid_t pid_; -} -@end // GTMLogStandardFormatter - - -// -// Log Filters -// - -// Protocol to be implemented by a GTMLogFilter instance. -@protocol GTMLogFilter <NSObject> -// Returns YES if |msg| at |level| should be logged; NO otherwise. -- (BOOL)filterAllowsMessage:(NSString *)msg level:(GTMLoggerLevel)level; -@end // GTMLogFilter - - -// A log filter that filters messages at the kGTMLoggerLevelDebug level out of -// non-debug builds. Messages at the kGTMLoggerLevelInfo level are also filtered -// out of non-debug builds unless GTMVerboseLogging is set in the environment or -// the processes's defaults. Messages at the kGTMLoggerLevelError level are -// never filtered. -@interface GTMLogLevelFilter : NSObject <GTMLogFilter> { - @private - BOOL verboseLoggingEnabled_; - NSUserDefaults *userDefaults_; -} -@end // GTMLogLevelFilter - -// A simple log filter that does NOT filter anything out; -// -filterAllowsMessage:level will always return YES. This can be a convenient -// way to enable debug-level logging in release builds (if you so desire). -@interface GTMLogNoFilter : NSObject <GTMLogFilter> -@end // GTMLogNoFilter - - -// Base class for custom level filters. Not for direct use, use the minimum -// or maximum level subclasses below. -@interface GTMLogAllowedLevelFilter : NSObject <GTMLogFilter> { - @private - NSIndexSet *allowedLevels_; -} -@end - -// A log filter that allows you to set a minimum log level. Messages below this -// level will be filtered. -@interface GTMLogMininumLevelFilter : GTMLogAllowedLevelFilter - -// Designated initializer, logs at levels < |level| will be filtered. -- (id)initWithMinimumLevel:(GTMLoggerLevel)level; - -@end - -// A log filter that allows you to set a maximum log level. Messages whose level -// exceeds this level will be filtered. This is really only useful if you have -// a composite GTMLogger that is sending the other messages elsewhere. -@interface GTMLogMaximumLevelFilter : GTMLogAllowedLevelFilter - -// Designated initializer, logs at levels > |level| will be filtered. -- (id)initWithMaximumLevel:(GTMLoggerLevel)level; - -@end - - -// For subclasses only -@interface GTMLogger (PrivateMethods) - -- (void)logInternalFunc:(const char *)func - format:(NSString *)fmt - valist:(va_list)args - level:(GTMLoggerLevel)level NS_FORMAT_FUNCTION(2, 0); - -@end - diff --git a/StoneIsland/platforms/ios/Pods/GoogleToolboxForMac/Foundation/GTMLogger.m b/StoneIsland/platforms/ios/Pods/GoogleToolboxForMac/Foundation/GTMLogger.m deleted file mode 100644 index e6b2ba12..00000000 --- a/StoneIsland/platforms/ios/Pods/GoogleToolboxForMac/Foundation/GTMLogger.m +++ /dev/null @@ -1,648 +0,0 @@ -// -// GTMLogger.m -// -// Copyright 2007-2008 Google Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); you may not -// use this file except in compliance with the License. You may obtain a copy -// of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -// License for the specific language governing permissions and limitations under -// the License. -// - -#import "GTMLogger.h" -#import <fcntl.h> -#import <unistd.h> -#import <stdlib.h> -#import <pthread.h> - - -#if !defined(__clang__) && (__GNUC__*10+__GNUC_MINOR__ >= 42) -// Some versions of GCC (4.2 and below AFAIK) aren't great about supporting -// -Wmissing-format-attribute -// when the function is anything more complex than foo(NSString *fmt, ...). -// You see the error inside the function when you turn ... into va_args and -// attempt to call another function (like vsprintf for example). -// So we just shut off the warning for this file. We reenable it at the end. -#pragma GCC diagnostic ignored "-Wmissing-format-attribute" -#endif // !__clang__ - -// Reference to the shared GTMLogger instance. This is not a singleton, it's -// just an easy reference to one shared instance. -static GTMLogger *gSharedLogger = nil; - - -@implementation GTMLogger - -// Returns a pointer to the shared logger instance. If none exists, a standard -// logger is created and returned. -+ (id)sharedLogger { - @synchronized(self) { - if (gSharedLogger == nil) { - gSharedLogger = [[self standardLogger] retain]; - } - } - return [[gSharedLogger retain] autorelease]; -} - -+ (void)setSharedLogger:(GTMLogger *)logger { - @synchronized(self) { - [gSharedLogger autorelease]; - gSharedLogger = [logger retain]; - } -} - -+ (id)standardLogger { - // Don't trust NSFileHandle not to throw - @try { - id<GTMLogWriter> writer = [NSFileHandle fileHandleWithStandardOutput]; - id<GTMLogFormatter> fr = [[[GTMLogStandardFormatter alloc] init] - autorelease]; - id<GTMLogFilter> filter = [[[GTMLogLevelFilter alloc] init] autorelease]; - return [[[self alloc] initWithWriter:writer - formatter:fr - filter:filter] autorelease]; - } - @catch (id e) { - // Ignored - } - return nil; -} - -+ (id)standardLoggerWithStderr { - // Don't trust NSFileHandle not to throw - @try { - id me = [self standardLogger]; - [me setWriter:[NSFileHandle fileHandleWithStandardError]]; - return me; - } - @catch (id e) { - // Ignored - } - return nil; -} - -+ (id)standardLoggerWithStdoutAndStderr { - // We're going to take advantage of the GTMLogger to GTMLogWriter adaptor - // and create a composite logger that an outer "standard" logger can use - // as a writer. Our inner loggers should apply no formatting since the main - // logger does that and we want the caller to be able to change formatters - // or add writers without knowing the inner structure of our composite. - - // Don't trust NSFileHandle not to throw - @try { - GTMLogBasicFormatter *formatter = [[[GTMLogBasicFormatter alloc] init] - autorelease]; - GTMLogger *stdoutLogger = - [self loggerWithWriter:[NSFileHandle fileHandleWithStandardOutput] - formatter:formatter - filter:[[[GTMLogMaximumLevelFilter alloc] - initWithMaximumLevel:kGTMLoggerLevelInfo] - autorelease]]; - GTMLogger *stderrLogger = - [self loggerWithWriter:[NSFileHandle fileHandleWithStandardError] - formatter:formatter - filter:[[[GTMLogMininumLevelFilter alloc] - initWithMinimumLevel:kGTMLoggerLevelError] - autorelease]]; - GTMLogger *compositeWriter = - [self loggerWithWriter:[NSArray arrayWithObjects: - stdoutLogger, stderrLogger, nil] - formatter:formatter - filter:[[[GTMLogNoFilter alloc] init] autorelease]]; - GTMLogger *outerLogger = [self standardLogger]; - [outerLogger setWriter:compositeWriter]; - return outerLogger; - } - @catch (id e) { - // Ignored - } - return nil; -} - -+ (id)standardLoggerWithPath:(NSString *)path { - @try { - NSFileHandle *fh = [NSFileHandle fileHandleForLoggingAtPath:path mode:0644]; - if (fh == nil) return nil; - id me = [self standardLogger]; - [me setWriter:fh]; - return me; - } - @catch (id e) { - // Ignored - } - return nil; -} - -+ (id)loggerWithWriter:(id<GTMLogWriter>)writer - formatter:(id<GTMLogFormatter>)formatter - filter:(id<GTMLogFilter>)filter { - return [[[self alloc] initWithWriter:writer - formatter:formatter - filter:filter] autorelease]; -} - -+ (id)logger { - return [[[self alloc] init] autorelease]; -} - -- (id)init { - return [self initWithWriter:nil formatter:nil filter:nil]; -} - -- (id)initWithWriter:(id<GTMLogWriter>)writer - formatter:(id<GTMLogFormatter>)formatter - filter:(id<GTMLogFilter>)filter { - if ((self = [super init])) { - [self setWriter:writer]; - [self setFormatter:formatter]; - [self setFilter:filter]; - } - return self; -} - -- (void)dealloc { - // Unlikely, but |writer_| may be an NSFileHandle, which can throw - @try { - [formatter_ release]; - [filter_ release]; - [writer_ release]; - } - @catch (id e) { - // Ignored - } - [super dealloc]; -} - -- (id<GTMLogWriter>)writer { - return [[writer_ retain] autorelease]; -} - -- (void)setWriter:(id<GTMLogWriter>)writer { - @synchronized(self) { - [writer_ autorelease]; - writer_ = nil; - if (writer == nil) { - // Try to use stdout, but don't trust NSFileHandle - @try { - writer_ = [[NSFileHandle fileHandleWithStandardOutput] retain]; - } - @catch (id e) { - // Leave |writer_| nil - } - } else { - writer_ = [writer retain]; - } - } -} - -- (id<GTMLogFormatter>)formatter { - return [[formatter_ retain] autorelease]; -} - -- (void)setFormatter:(id<GTMLogFormatter>)formatter { - @synchronized(self) { - [formatter_ autorelease]; - formatter_ = nil; - if (formatter == nil) { - @try { - formatter_ = [[GTMLogBasicFormatter alloc] init]; - } - @catch (id e) { - // Leave |formatter_| nil - } - } else { - formatter_ = [formatter retain]; - } - } -} - -- (id<GTMLogFilter>)filter { - return [[filter_ retain] autorelease]; -} - -- (void)setFilter:(id<GTMLogFilter>)filter { - @synchronized(self) { - [filter_ autorelease]; - filter_ = nil; - if (filter == nil) { - @try { - filter_ = [[GTMLogNoFilter alloc] init]; - } - @catch (id e) { - // Leave |filter_| nil - } - } else { - filter_ = [filter retain]; - } - } -} - -- (void)logDebug:(NSString *)fmt, ... { - va_list args; - va_start(args, fmt); - [self logInternalFunc:NULL format:fmt valist:args level:kGTMLoggerLevelDebug]; - va_end(args); -} - -- (void)logInfo:(NSString *)fmt, ... { - va_list args; - va_start(args, fmt); - [self logInternalFunc:NULL format:fmt valist:args level:kGTMLoggerLevelInfo]; - va_end(args); -} - -- (void)logError:(NSString *)fmt, ... { - va_list args; - va_start(args, fmt); - [self logInternalFunc:NULL format:fmt valist:args level:kGTMLoggerLevelError]; - va_end(args); -} - -- (void)logAssert:(NSString *)fmt, ... { - va_list args; - va_start(args, fmt); - [self logInternalFunc:NULL format:fmt valist:args level:kGTMLoggerLevelAssert]; - va_end(args); -} - -@end // GTMLogger - -@implementation GTMLogger (GTMLoggerMacroHelpers) - -- (void)logFuncDebug:(const char *)func msg:(NSString *)fmt, ... { - va_list args; - va_start(args, fmt); - [self logInternalFunc:func format:fmt valist:args level:kGTMLoggerLevelDebug]; - va_end(args); -} - -- (void)logFuncInfo:(const char *)func msg:(NSString *)fmt, ... { - va_list args; - va_start(args, fmt); - [self logInternalFunc:func format:fmt valist:args level:kGTMLoggerLevelInfo]; - va_end(args); -} - -- (void)logFuncError:(const char *)func msg:(NSString *)fmt, ... { - va_list args; - va_start(args, fmt); - [self logInternalFunc:func format:fmt valist:args level:kGTMLoggerLevelError]; - va_end(args); -} - -- (void)logFuncAssert:(const char *)func msg:(NSString *)fmt, ... { - va_list args; - va_start(args, fmt); - [self logInternalFunc:func format:fmt valist:args level:kGTMLoggerLevelAssert]; - va_end(args); -} - -@end // GTMLoggerMacroHelpers - -@implementation GTMLogger (PrivateMethods) - -- (void)logInternalFunc:(const char *)func - format:(NSString *)fmt - valist:(va_list)args - level:(GTMLoggerLevel)level { - // Primary point where logging happens, logging should never throw, catch - // everything. - @try { - NSString *fname = func ? [NSString stringWithUTF8String:func] : nil; - NSString *msg = [formatter_ stringForFunc:fname - withFormat:fmt - valist:args - level:level]; - if (msg && [filter_ filterAllowsMessage:msg level:level]) - [writer_ logMessage:msg level:level]; - } - @catch (id e) { - // Ignored - } -} - -@end // PrivateMethods - - -@implementation NSFileHandle (GTMFileHandleLogWriter) - -+ (id)fileHandleForLoggingAtPath:(NSString *)path mode:(mode_t)mode { - int fd = -1; - if (path) { - int flags = O_WRONLY | O_APPEND | O_CREAT; - fd = open([path fileSystemRepresentation], flags, mode); - } - if (fd == -1) return nil; - return [[[self alloc] initWithFileDescriptor:fd - closeOnDealloc:YES] autorelease]; -} - -- (void)logMessage:(NSString *)msg level:(GTMLoggerLevel)level { - @synchronized(self) { - // Closed pipes should not generate exceptions in our caller. Catch here - // as well [GTMLogger logInternalFunc:...] so that an exception in this - // writer does not prevent other writers from having a chance. - @try { - NSString *line = [NSString stringWithFormat:@"%@\n", msg]; - [self writeData:[line dataUsingEncoding:NSUTF8StringEncoding]]; - } - @catch (id e) { - // Ignored - } - } -} - -@end // GTMFileHandleLogWriter - - -@implementation NSArray (GTMArrayCompositeLogWriter) - -- (void)logMessage:(NSString *)msg level:(GTMLoggerLevel)level { - @synchronized(self) { - id<GTMLogWriter> child = nil; - for (child in self) { - if ([child conformsToProtocol:@protocol(GTMLogWriter)]) - [child logMessage:msg level:level]; - } - } -} - -@end // GTMArrayCompositeLogWriter - - -@implementation GTMLogger (GTMLoggerLogWriter) - -- (void)logMessage:(NSString *)msg level:(GTMLoggerLevel)level { - switch (level) { - case kGTMLoggerLevelDebug: - [self logDebug:@"%@", msg]; - break; - case kGTMLoggerLevelInfo: - [self logInfo:@"%@", msg]; - break; - case kGTMLoggerLevelError: - [self logError:@"%@", msg]; - break; - case kGTMLoggerLevelAssert: - [self logAssert:@"%@", msg]; - break; - default: - // Ignore the message. - break; - } -} - -@end // GTMLoggerLogWriter - - -@implementation GTMLogBasicFormatter - -- (NSString *)prettyNameForFunc:(NSString *)func { - NSString *name = [func stringByTrimmingCharactersInSet: - [NSCharacterSet whitespaceAndNewlineCharacterSet]]; - NSString *function = @"(unknown)"; - if ([name length]) { - if (// Objective C __func__ and __PRETTY_FUNCTION__ - [name hasPrefix:@"-["] || [name hasPrefix:@"+["] || - // C++ __PRETTY_FUNCTION__ and other preadorned formats - [name hasSuffix:@")"]) { - function = name; - } else { - // Assume C99 __func__ - function = [NSString stringWithFormat:@"%@()", name]; - } - } - return function; -} - -- (NSString *)stringForFunc:(NSString *)func - withFormat:(NSString *)fmt - valist:(va_list)args - level:(GTMLoggerLevel)level { - // Performance note: We may want to do a quick check here to see if |fmt| - // contains a '%', and if not, simply return 'fmt'. - if (!(fmt && args)) return nil; - return [[[NSString alloc] initWithFormat:fmt arguments:args] autorelease]; -} - -@end // GTMLogBasicFormatter - - -@implementation GTMLogStandardFormatter - -- (id)init { - if ((self = [super init])) { - dateFormatter_ = [[NSDateFormatter alloc] init]; - [dateFormatter_ setFormatterBehavior:NSDateFormatterBehavior10_4]; - [dateFormatter_ setDateFormat:@"yyyy-MM-dd HH:mm:ss.SSS"]; - pname_ = [[[NSProcessInfo processInfo] processName] copy]; - pid_ = [[NSProcessInfo processInfo] processIdentifier]; - if (!(dateFormatter_ && pname_)) { - [self release]; - return nil; - } - } - return self; -} - -- (void)dealloc { - [dateFormatter_ release]; - [pname_ release]; - [super dealloc]; -} - -- (NSString *)stringForFunc:(NSString *)func - withFormat:(NSString *)fmt - valist:(va_list)args - level:(GTMLoggerLevel)level { - NSString *tstamp = nil; - @synchronized (dateFormatter_) { - tstamp = [dateFormatter_ stringFromDate:[NSDate date]]; - } - return [NSString stringWithFormat:@"%@ %@[%d/%p] [lvl=%d] %@ %@", - tstamp, pname_, pid_, pthread_self(), - level, [self prettyNameForFunc:func], - // |super| has guard for nil |fmt| and |args| - [super stringForFunc:func withFormat:fmt valist:args level:level]]; -} - -@end // GTMLogStandardFormatter - -static NSString *const kVerboseLoggingKey = @"GTMVerboseLogging"; - -// Check the environment and the user preferences for the GTMVerboseLogging key -// to see if verbose logging has been enabled. The environment variable will -// override the defaults setting, so check the environment first. -// COV_NF_START -static BOOL IsVerboseLoggingEnabled(NSUserDefaults *userDefaults) { - NSString *value = [[[NSProcessInfo processInfo] environment] - objectForKey:kVerboseLoggingKey]; - if (value) { - // Emulate [NSString boolValue] for pre-10.5 - value = [value stringByTrimmingCharactersInSet: - [NSCharacterSet whitespaceAndNewlineCharacterSet]]; - if ([[value uppercaseString] hasPrefix:@"Y"] || - [[value uppercaseString] hasPrefix:@"T"] || - [value intValue]) { - return YES; - } else { - return NO; - } - } - return [userDefaults boolForKey:kVerboseLoggingKey]; -} -// COV_NF_END - -@implementation GTMLogLevelFilter - -- (id)init { - self = [super init]; - if (self) { - // Keep a reference to standardUserDefaults, avoiding a crash if client code calls - // "NSUserDefaults resetStandardUserDefaults" which releases it from memory. We are still - // notified of changes through our instance. Note: resetStandardUserDefaults does not actually - // clear settings: - // https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSUserDefaults_Class/index.html#//apple_ref/occ/clm/NSUserDefaults/resetStandardUserDefaults - // and so should only be called in test code if necessary. - userDefaults_ = [[NSUserDefaults standardUserDefaults] retain]; - [userDefaults_ addObserver:self - forKeyPath:kVerboseLoggingKey - options:NSKeyValueObservingOptionNew - context:nil]; - - verboseLoggingEnabled_ = IsVerboseLoggingEnabled(userDefaults_); - } - - return self; -} - -- (void)dealloc { - [userDefaults_ removeObserver:self forKeyPath:kVerboseLoggingKey]; - [userDefaults_ release]; - - [super dealloc]; -} - -// In DEBUG builds, log everything. If we're not in a debug build we'll assume -// that we're in a Release build. -- (BOOL)filterAllowsMessage:(NSString *)msg level:(GTMLoggerLevel)level { -#if defined(DEBUG) && DEBUG - return YES; -#endif - - BOOL allow = YES; - - switch (level) { - case kGTMLoggerLevelDebug: - allow = NO; - break; - case kGTMLoggerLevelInfo: - allow = verboseLoggingEnabled_; - break; - case kGTMLoggerLevelError: - allow = YES; - break; - case kGTMLoggerLevelAssert: - allow = YES; - break; - default: - allow = YES; - break; - } - - return allow; -} - -- (void)observeValueForKeyPath:(NSString *)keyPath - ofObject:(id)object - change:(NSDictionary *)change - context:(void *)context -{ - if([keyPath isEqual:kVerboseLoggingKey]) { - verboseLoggingEnabled_ = IsVerboseLoggingEnabled(userDefaults_); - } -} - -@end // GTMLogLevelFilter - - -@implementation GTMLogNoFilter - -- (BOOL)filterAllowsMessage:(NSString *)msg level:(GTMLoggerLevel)level { - return YES; // Allow everything through -} - -@end // GTMLogNoFilter - - -@implementation GTMLogAllowedLevelFilter - -// Private designated initializer -- (id)initWithAllowedLevels:(NSIndexSet *)levels { - self = [super init]; - if (self != nil) { - allowedLevels_ = [levels retain]; - // Cap min/max level - if (!allowedLevels_ || - // NSIndexSet is unsigned so only check the high bound, but need to - // check both first and last index because NSIndexSet appears to allow - // wraparound. - ([allowedLevels_ firstIndex] > kGTMLoggerLevelAssert) || - ([allowedLevels_ lastIndex] > kGTMLoggerLevelAssert)) { - [self release]; - return nil; - } - } - return self; -} - -- (id)init { - // Allow all levels in default init - return [self initWithAllowedLevels:[NSIndexSet indexSetWithIndexesInRange: - NSMakeRange(kGTMLoggerLevelUnknown, - (kGTMLoggerLevelAssert - kGTMLoggerLevelUnknown + 1))]]; -} - -- (void)dealloc { - [allowedLevels_ release]; - [super dealloc]; -} - -- (BOOL)filterAllowsMessage:(NSString *)msg level:(GTMLoggerLevel)level { - return [allowedLevels_ containsIndex:level]; -} - -@end // GTMLogAllowedLevelFilter - - -@implementation GTMLogMininumLevelFilter - -- (id)initWithMinimumLevel:(GTMLoggerLevel)level { - return [super initWithAllowedLevels:[NSIndexSet indexSetWithIndexesInRange: - NSMakeRange(level, - (kGTMLoggerLevelAssert - level + 1))]]; -} - -@end // GTMLogMininumLevelFilter - - -@implementation GTMLogMaximumLevelFilter - -- (id)initWithMaximumLevel:(GTMLoggerLevel)level { - return [super initWithAllowedLevels:[NSIndexSet indexSetWithIndexesInRange: - NSMakeRange(kGTMLoggerLevelUnknown, level + 1)]]; -} - -@end // GTMLogMaximumLevelFilter - -#if !defined(__clang__) && (__GNUC__*10+__GNUC_MINOR__ >= 42) -// See comment at top of file. -#pragma GCC diagnostic error "-Wmissing-format-attribute" -#endif // !__clang__ diff --git a/StoneIsland/platforms/ios/Pods/GoogleToolboxForMac/Foundation/GTMNSData+zlib.h b/StoneIsland/platforms/ios/Pods/GoogleToolboxForMac/Foundation/GTMNSData+zlib.h deleted file mode 100644 index dceadc44..00000000 --- a/StoneIsland/platforms/ios/Pods/GoogleToolboxForMac/Foundation/GTMNSData+zlib.h +++ /dev/null @@ -1,199 +0,0 @@ -// -// GTMNSData+zlib.h -// -// Copyright 2007-2008 Google Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); you may not -// use this file except in compliance with the License. You may obtain a copy -// of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -// License for the specific language governing permissions and limitations under -// the License. -// - -#import <Foundation/Foundation.h> -#import "GTMDefines.h" - -/// Helpers for dealing w/ zlib inflate/deflate calls. -@interface NSData (GTMZLibAdditions) - -// NOTE: For 64bit, none of these apis handle input sizes >32bits, they will -// return nil when given such data. To handle data of that size you really -// should be streaming it rather then doing it all in memory. - -#pragma mark Gzip Compression - -/// Return an autoreleased NSData w/ the result of gzipping the bytes. -// -// Uses the default compression level. -+ (NSData *)gtm_dataByGzippingBytes:(const void *)bytes - length:(NSUInteger)length; -+ (NSData *)gtm_dataByGzippingBytes:(const void *)bytes - length:(NSUInteger)length - error:(NSError **)error; - -/// Return an autoreleased NSData w/ the result of gzipping the payload of |data|. -// -// Uses the default compression level. -+ (NSData *)gtm_dataByGzippingData:(NSData *)data __attribute__((deprecated("Use error variant"))); -+ (NSData *)gtm_dataByGzippingData:(NSData *)data - error:(NSError **)error; - -/// Return an autoreleased NSData w/ the result of gzipping the bytes using |level| compression level. -// -// |level| can be 1-9, any other values will be clipped to that range. -+ (NSData *)gtm_dataByGzippingBytes:(const void *)bytes - length:(NSUInteger)length - compressionLevel:(int)level __attribute__((deprecated("Use error variant"))); -+ (NSData *)gtm_dataByGzippingBytes:(const void *)bytes - length:(NSUInteger)length - compressionLevel:(int)level - error:(NSError **)error; - -/// Return an autoreleased NSData w/ the result of gzipping the payload of |data| using |level| compression level. -+ (NSData *)gtm_dataByGzippingData:(NSData *)data - compressionLevel:(int)level __attribute__((deprecated("Use error variant"))); -+ (NSData *)gtm_dataByGzippingData:(NSData *)data - compressionLevel:(int)level - error:(NSError **)error; - -#pragma mark Zlib "Stream" Compression - -// NOTE: deflate is *NOT* gzip. deflate is a "zlib" stream. pick which one -// you really want to create. (the inflate api will handle either) - -/// Return an autoreleased NSData w/ the result of deflating the bytes. -// -// Uses the default compression level. -+ (NSData *)gtm_dataByDeflatingBytes:(const void *)bytes - length:(NSUInteger)length __attribute__((deprecated("Use error variant"))); -+ (NSData *)gtm_dataByDeflatingBytes:(const void *)bytes - length:(NSUInteger)length - error:(NSError **)error; - -/// Return an autoreleased NSData w/ the result of deflating the payload of |data|. -// -// Uses the default compression level. -+ (NSData *)gtm_dataByDeflatingData:(NSData *)data __attribute__((deprecated("Use error variant"))); -+ (NSData *)gtm_dataByDeflatingData:(NSData *)data - error:(NSError **)error; - -/// Return an autoreleased NSData w/ the result of deflating the bytes using |level| compression level. -// -// |level| can be 1-9, any other values will be clipped to that range. -+ (NSData *)gtm_dataByDeflatingBytes:(const void *)bytes - length:(NSUInteger)length - compressionLevel:(int)level __attribute__((deprecated("Use error variant"))); -+ (NSData *)gtm_dataByDeflatingBytes:(const void *)bytes - length:(NSUInteger)length - compressionLevel:(int)level - error:(NSError **)error; - -/// Return an autoreleased NSData w/ the result of deflating the payload of |data| using |level| compression level. -+ (NSData *)gtm_dataByDeflatingData:(NSData *)data - compressionLevel:(int)level __attribute__((deprecated("Use error variant"))); -+ (NSData *)gtm_dataByDeflatingData:(NSData *)data - compressionLevel:(int)level - error:(NSError **)error; - -#pragma mark Uncompress of Gzip or Zlib - -/// Return an autoreleased NSData w/ the result of decompressing the bytes. -// -// The bytes to decompress can be zlib or gzip payloads. -+ (NSData *)gtm_dataByInflatingBytes:(const void *)bytes - length:(NSUInteger)length __attribute__((deprecated("Use error variant"))); -+ (NSData *)gtm_dataByInflatingBytes:(const void *)bytes - length:(NSUInteger)length - error:(NSError **)error; - -/// Return an autoreleased NSData w/ the result of decompressing the payload of |data|. -// -// The data to decompress can be zlib or gzip payloads. -+ (NSData *)gtm_dataByInflatingData:(NSData *)data __attribute__((deprecated("Use error variant"))); -+ (NSData *)gtm_dataByInflatingData:(NSData *)data - error:(NSError **)error; - -#pragma mark "Raw" Compression Support - -// NOTE: raw deflate is *NOT* gzip or deflate. it does not include a header -// of any form and should only be used within streams here an external crc/etc. -// is done to validate the data. The RawInflate apis can be used on data -// processed like this. - -/// Return an autoreleased NSData w/ the result of *raw* deflating the bytes. -// -// Uses the default compression level. -// *No* header is added to the resulting data. -+ (NSData *)gtm_dataByRawDeflatingBytes:(const void *)bytes - length:(NSUInteger)length __attribute__((deprecated("Use error variant"))); -+ (NSData *)gtm_dataByRawDeflatingBytes:(const void *)bytes - length:(NSUInteger)length - error:(NSError **)error; - -/// Return an autoreleased NSData w/ the result of *raw* deflating the payload of |data|. -// -// Uses the default compression level. -// *No* header is added to the resulting data. -+ (NSData *)gtm_dataByRawDeflatingData:(NSData *)data __attribute__((deprecated("Use error variant"))); -+ (NSData *)gtm_dataByRawDeflatingData:(NSData *)data - error:(NSError **)error; - -/// Return an autoreleased NSData w/ the result of *raw* deflating the bytes using |level| compression level. -// -// |level| can be 1-9, any other values will be clipped to that range. -// *No* header is added to the resulting data. -+ (NSData *)gtm_dataByRawDeflatingBytes:(const void *)bytes - length:(NSUInteger)length - compressionLevel:(int)level __attribute__((deprecated("Use error variant"))); -+ (NSData *)gtm_dataByRawDeflatingBytes:(const void *)bytes - length:(NSUInteger)length - compressionLevel:(int)level - error:(NSError **)error; - -/// Return an autoreleased NSData w/ the result of *raw* deflating the payload of |data| using |level| compression level. -// *No* header is added to the resulting data. -+ (NSData *)gtm_dataByRawDeflatingData:(NSData *)data - compressionLevel:(int)level __attribute__((deprecated("Use error variant"))); -+ (NSData *)gtm_dataByRawDeflatingData:(NSData *)data - compressionLevel:(int)level - error:(NSError **)error; - -/// Return an autoreleased NSData w/ the result of *raw* decompressing the bytes. -// -// The data to decompress, it should *not* have any header (zlib nor gzip). -+ (NSData *)gtm_dataByRawInflatingBytes:(const void *)bytes - length:(NSUInteger)length __attribute__((deprecated("Use error variant"))); -+ (NSData *)gtm_dataByRawInflatingBytes:(const void *)bytes - length:(NSUInteger)length - error:(NSError **)error; - -/// Return an autoreleased NSData w/ the result of *raw* decompressing the payload of |data|. -// -// The data to decompress, it should *not* have any header (zlib nor gzip). -+ (NSData *)gtm_dataByRawInflatingData:(NSData *)data __attribute__((deprecated("Use error variant"))); -+ (NSData *)gtm_dataByRawInflatingData:(NSData *)data - error:(NSError **)error; - -@end - -FOUNDATION_EXPORT NSString *const GTMNSDataZlibErrorDomain; -FOUNDATION_EXPORT NSString *const GTMNSDataZlibErrorKey; // NSNumber -FOUNDATION_EXPORT NSString *const GTMNSDataZlibRemainingBytesKey; // NSNumber - -typedef NS_ENUM(NSInteger, GTMNSDataZlibError) { - GTMNSDataZlibErrorGreaterThan32BitsToCompress = 1024, - // An internal zlib error. - // GTMNSDataZlibErrorKey will contain the error value. - // NSLocalizedDescriptionKey may contain an error string from zlib. - // Look in zlib.h for list of errors. - GTMNSDataZlibErrorInternal, - // There was left over data in the buffer that was not used. - // GTMNSDataZlibRemainingBytesKey will contain number of remaining bytes. - GTMNSDataZlibErrorDataRemaining -}; diff --git a/StoneIsland/platforms/ios/Pods/GoogleToolboxForMac/Foundation/GTMNSData+zlib.m b/StoneIsland/platforms/ios/Pods/GoogleToolboxForMac/Foundation/GTMNSData+zlib.m deleted file mode 100644 index bf74b2d2..00000000 --- a/StoneIsland/platforms/ios/Pods/GoogleToolboxForMac/Foundation/GTMNSData+zlib.m +++ /dev/null @@ -1,531 +0,0 @@ -// -// GTMNSData+zlib.m -// -// Copyright 2007-2008 Google Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); you may not -// use this file except in compliance with the License. You may obtain a copy -// of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -// License for the specific language governing permissions and limitations under -// the License. -// - -#import "GTMNSData+zlib.h" -#import <zlib.h> -#import "GTMDefines.h" - -#define kChunkSize 1024 - -NSString *const GTMNSDataZlibErrorDomain = @"com.google.GTMNSDataZlibErrorDomain"; -NSString *const GTMNSDataZlibErrorKey = @"GTMNSDataZlibErrorKey"; -NSString *const GTMNSDataZlibRemainingBytesKey = @"GTMNSDataZlibRemainingBytesKey"; - -typedef enum { - CompressionModeZlib, - CompressionModeGzip, - CompressionModeRaw, -} CompressionMode; - -@interface NSData (GTMZlibAdditionsPrivate) -+ (NSData *)gtm_dataByCompressingBytes:(const void *)bytes - length:(NSUInteger)length - compressionLevel:(int)level - mode:(CompressionMode)mode - error:(NSError **)error; -+ (NSData *)gtm_dataByInflatingBytes:(const void *)bytes - length:(NSUInteger)length - isRawData:(BOOL)isRawData - error:(NSError **)error; -@end - -@implementation NSData (GTMZlibAdditionsPrivate) - -+ (NSData *)gtm_dataByCompressingBytes:(const void *)bytes - length:(NSUInteger)length - compressionLevel:(int)level - mode:(CompressionMode)mode - error:(NSError **)error { - if (!bytes || !length) { - return nil; - } - -#if defined(__LP64__) && __LP64__ - // Don't support > 32bit length for 64 bit, see note in header. - if (length > UINT_MAX) { - if (error) { - *error = [NSError errorWithDomain:GTMNSDataZlibErrorDomain - code:GTMNSDataZlibErrorGreaterThan32BitsToCompress - userInfo:nil]; - } - return nil; - } -#endif - - if (level == Z_DEFAULT_COMPRESSION) { - // the default value is actually outside the range, so we have to let it - // through specifically. - } else if (level < Z_BEST_SPEED) { - level = Z_BEST_SPEED; - } else if (level > Z_BEST_COMPRESSION) { - level = Z_BEST_COMPRESSION; - } - - z_stream strm; - bzero(&strm, sizeof(z_stream)); - - int memLevel = 8; // the default - int windowBits = 15; // the default - switch (mode) { - case CompressionModeZlib: - // nothing to do - break; - - case CompressionModeGzip: - windowBits += 16; // enable gzip header instead of zlib header - break; - - case CompressionModeRaw: - windowBits *= -1; // Negative to mean no header. - break; - } - int retCode; - if ((retCode = deflateInit2(&strm, level, Z_DEFLATED, windowBits, - memLevel, Z_DEFAULT_STRATEGY)) != Z_OK) { - // COV_NF_START - no real way to force this in a unittest (we guard all args) - if (error) { - NSDictionary *userInfo = [NSDictionary dictionaryWithObject:[NSNumber numberWithInt:retCode] - forKey:GTMNSDataZlibErrorKey]; - *error = [NSError errorWithDomain:GTMNSDataZlibErrorDomain - code:GTMNSDataZlibErrorInternal - userInfo:userInfo]; - } - return nil; - // COV_NF_END - } - - // hint the size at 1/4 the input size - NSMutableData *result = [NSMutableData dataWithCapacity:(length/4)]; - unsigned char output[kChunkSize]; - - // setup the input - strm.avail_in = (unsigned int)length; - strm.next_in = (unsigned char*)bytes; - - // loop to collect the data - do { - // update what we're passing in - strm.avail_out = kChunkSize; - strm.next_out = output; - retCode = deflate(&strm, Z_FINISH); - if ((retCode != Z_OK) && (retCode != Z_STREAM_END)) { - // COV_NF_START - no real way to force this in a unittest - // (in inflate, we can feed bogus/truncated data to test, but an error - // here would be some internal issue w/in zlib, and there isn't any real - // way to test it) - if (error) { - NSDictionary *userInfo = [NSDictionary dictionaryWithObject:[NSNumber numberWithInt:retCode] - forKey:GTMNSDataZlibErrorKey]; - *error = [NSError errorWithDomain:GTMNSDataZlibErrorDomain - code:GTMNSDataZlibErrorInternal - userInfo:userInfo]; - } - deflateEnd(&strm); - return nil; - // COV_NF_END - } - // collect what we got - unsigned gotBack = kChunkSize - strm.avail_out; - if (gotBack > 0) { - [result appendBytes:output length:gotBack]; - } - - } while (retCode == Z_OK); - - // if the loop exits, we used all input and the stream ended - _GTMDevAssert(strm.avail_in == 0, - @"thought we finished deflate w/o using all input, %u bytes left", - strm.avail_in); - _GTMDevAssert(retCode == Z_STREAM_END, - @"thought we finished deflate w/o getting a result of stream end, code %d", - retCode); - - // clean up - deflateEnd(&strm); - - return result; -} // gtm_dataByCompressingBytes:length:compressionLevel:useGzip: - -+ (NSData *)gtm_dataByInflatingBytes:(const void *)bytes - length:(NSUInteger)length - isRawData:(BOOL)isRawData - error:(NSError **)error { - if (!bytes || !length) { - return nil; - } - -#if defined(__LP64__) && __LP64__ - // Don't support > 32bit length for 64 bit, see note in header. - if (length > UINT_MAX) { - return nil; - } -#endif - - z_stream strm; - bzero(&strm, sizeof(z_stream)); - - // setup the input - strm.avail_in = (unsigned int)length; - strm.next_in = (unsigned char*)bytes; - - int windowBits = 15; // 15 to enable any window size - if (isRawData) { - windowBits *= -1; // make it negative to signal no header. - } else { - windowBits += 32; // and +32 to enable zlib or gzip header detection. - } - - int retCode; - if ((retCode = inflateInit2(&strm, windowBits)) != Z_OK) { - // COV_NF_START - no real way to force this in a unittest (we guard all args) - if (error) { - NSDictionary *userInfo = [NSDictionary dictionaryWithObject:[NSNumber numberWithInt:retCode] - forKey:GTMNSDataZlibErrorKey]; - *error = [NSError errorWithDomain:GTMNSDataZlibErrorDomain - code:GTMNSDataZlibErrorInternal - userInfo:userInfo]; - } - return nil; - // COV_NF_END - } - - // hint the size at 4x the input size - NSMutableData *result = [NSMutableData dataWithCapacity:(length*4)]; - unsigned char output[kChunkSize]; - - // loop to collect the data - do { - // update what we're passing in - strm.avail_out = kChunkSize; - strm.next_out = output; - retCode = inflate(&strm, Z_NO_FLUSH); - if ((retCode != Z_OK) && (retCode != Z_STREAM_END)) { - if (error) { - NSMutableDictionary *userInfo = - [NSMutableDictionary dictionaryWithObject:[NSNumber numberWithInt:retCode] - forKey:GTMNSDataZlibErrorKey]; - if (strm.msg) { - NSString *message = [NSString stringWithUTF8String:strm.msg]; - if (message) { - [userInfo setObject:message forKey:NSLocalizedDescriptionKey]; - } - } - *error = [NSError errorWithDomain:GTMNSDataZlibErrorDomain - code:GTMNSDataZlibErrorInternal - userInfo:userInfo]; - } - inflateEnd(&strm); - return nil; - } - // collect what we got - unsigned gotBack = kChunkSize - strm.avail_out; - if (gotBack > 0) { - [result appendBytes:output length:gotBack]; - } - - } while (retCode == Z_OK); - - // make sure there wasn't more data tacked onto the end of a valid compressed - // stream. - if (strm.avail_in != 0) { - if (error) { - NSDictionary *userInfo = - [NSDictionary dictionaryWithObject:[NSNumber numberWithUnsignedInt:strm.avail_in] - forKey:GTMNSDataZlibRemainingBytesKey]; - *error = [NSError errorWithDomain:GTMNSDataZlibErrorDomain - code:GTMNSDataZlibErrorDataRemaining - userInfo:userInfo]; - } - result = nil; - } - // the only way out of the loop was by hitting the end of the stream - _GTMDevAssert(retCode == Z_STREAM_END, - @"thought we finished inflate w/o getting a result of stream end, code %d", - retCode); - - // clean up - inflateEnd(&strm); - - return result; -} // gtm_dataByInflatingBytes:length:windowBits: - -@end - - -@implementation NSData (GTMZLibAdditions) - -+ (NSData *)gtm_dataByGzippingBytes:(const void *)bytes - length:(NSUInteger)length { - return [self gtm_dataByGzippingBytes:bytes length:length error:NULL]; -} // gtm_dataByGzippingBytes:length: - -+ (NSData *)gtm_dataByGzippingBytes:(const void *)bytes - length:(NSUInteger)length - error:(NSError **)error { - return [self gtm_dataByCompressingBytes:bytes - length:length - compressionLevel:Z_DEFAULT_COMPRESSION - mode:CompressionModeGzip - error:error]; -} // gtm_dataByGzippingBytes:length:error: - -+ (NSData *)gtm_dataByGzippingData:(NSData *)data { - return [self gtm_dataByGzippingData:data error:NULL]; -} // gtm_dataByGzippingData: - -+ (NSData *)gtm_dataByGzippingData:(NSData *)data error:(NSError **)error { - return [self gtm_dataByCompressingBytes:[data bytes] - length:[data length] - compressionLevel:Z_DEFAULT_COMPRESSION - mode:CompressionModeGzip - error:error]; -} // gtm_dataByGzippingData:error: - -+ (NSData *)gtm_dataByGzippingBytes:(const void *)bytes - length:(NSUInteger)length - compressionLevel:(int)level { - return [self gtm_dataByGzippingBytes:bytes - length:length - compressionLevel:level - error:NULL]; -} // gtm_dataByGzippingBytes:length:level: - -+ (NSData *)gtm_dataByGzippingBytes:(const void *)bytes - length:(NSUInteger)length - compressionLevel:(int)level - error:(NSError **)error{ - return [self gtm_dataByCompressingBytes:bytes - length:length - compressionLevel:level - mode:CompressionModeGzip - error:error]; -} // gtm_dataByGzippingBytes:length:level:error - -+ (NSData *)gtm_dataByGzippingData:(NSData *)data - compressionLevel:(int)level { - return [self gtm_dataByGzippingData:data - compressionLevel:level - error:NULL]; -} // gtm_dataByGzippingData:level: - -+ (NSData *)gtm_dataByGzippingData:(NSData *)data - compressionLevel:(int)level - error:(NSError **)error{ - return [self gtm_dataByCompressingBytes:[data bytes] - length:[data length] - compressionLevel:level - mode:CompressionModeGzip - error:error]; -} // gtm_dataByGzippingData:level:error - -#pragma mark - - -+ (NSData *)gtm_dataByDeflatingBytes:(const void *)bytes - length:(NSUInteger)length { - return [self gtm_dataByDeflatingBytes:bytes - length:length - error:NULL]; -} // gtm_dataByDeflatingBytes:length: - -+ (NSData *)gtm_dataByDeflatingBytes:(const void *)bytes - length:(NSUInteger)length - error:(NSError **)error{ - return [self gtm_dataByCompressingBytes:bytes - length:length - compressionLevel:Z_DEFAULT_COMPRESSION - mode:CompressionModeZlib - error:error]; -} // gtm_dataByDeflatingBytes:length:error - -+ (NSData *)gtm_dataByDeflatingData:(NSData *)data { - return [self gtm_dataByDeflatingData:data error:NULL]; -} // gtm_dataByDeflatingData: - -+ (NSData *)gtm_dataByDeflatingData:(NSData *)data error:(NSError **)error { - return [self gtm_dataByCompressingBytes:[data bytes] - length:[data length] - compressionLevel:Z_DEFAULT_COMPRESSION - mode:CompressionModeZlib - error:error]; -} // gtm_dataByDeflatingData: - -+ (NSData *)gtm_dataByDeflatingBytes:(const void *)bytes - length:(NSUInteger)length - compressionLevel:(int)level { - return [self gtm_dataByDeflatingBytes:bytes - length:length - compressionLevel:level - error:NULL]; -} // gtm_dataByDeflatingBytes:length:level: - -+ (NSData *)gtm_dataByDeflatingBytes:(const void *)bytes - length:(NSUInteger)length - compressionLevel:(int)level - error:(NSError **)error { - return [self gtm_dataByCompressingBytes:bytes - length:length - compressionLevel:level - mode:CompressionModeZlib - error:error]; -} // gtm_dataByDeflatingBytes:length:level:error: - -+ (NSData *)gtm_dataByDeflatingData:(NSData *)data - compressionLevel:(int)level { - return [self gtm_dataByDeflatingData:data - compressionLevel:level - error:NULL]; -} // gtm_dataByDeflatingData:level: - -+ (NSData *)gtm_dataByDeflatingData:(NSData *)data - compressionLevel:(int)level - error:(NSError **)error { - return [self gtm_dataByCompressingBytes:[data bytes] - length:[data length] - compressionLevel:level - mode:CompressionModeZlib - error:error]; -} // gtm_dataByDeflatingData:level:error: - -#pragma mark - - -+ (NSData *)gtm_dataByInflatingBytes:(const void *)bytes - length:(NSUInteger)length { - return [self gtm_dataByInflatingBytes:bytes - length:length - error:NULL]; -} // gtm_dataByInflatingBytes:length: - -+ (NSData *)gtm_dataByInflatingBytes:(const void *)bytes - length:(NSUInteger)length - error:(NSError **)error { - return [self gtm_dataByInflatingBytes:bytes - length:length - isRawData:NO - error:error]; -} // gtm_dataByInflatingBytes:length:error: - -+ (NSData *)gtm_dataByInflatingData:(NSData *)data { - return [self gtm_dataByInflatingData:data error:NULL]; -} // gtm_dataByInflatingData: - -+ (NSData *)gtm_dataByInflatingData:(NSData *)data - error:(NSError **)error { - return [self gtm_dataByInflatingBytes:[data bytes] - length:[data length] - isRawData:NO - error:error]; -} // gtm_dataByInflatingData: - -#pragma mark - - -+ (NSData *)gtm_dataByRawDeflatingBytes:(const void *)bytes - length:(NSUInteger)length { - return [self gtm_dataByRawDeflatingBytes:(const void *)bytes - length:(NSUInteger)length - error:NULL]; -} // gtm_dataByRawDeflatingBytes:length: - -+ (NSData *)gtm_dataByRawDeflatingBytes:(const void *)bytes - length:(NSUInteger)length - error:(NSError **)error { - return [self gtm_dataByCompressingBytes:bytes - length:length - compressionLevel:Z_DEFAULT_COMPRESSION - mode:CompressionModeRaw - error:error]; -} // gtm_dataByRawDeflatingBytes:length:error: - -+ (NSData *)gtm_dataByRawDeflatingData:(NSData *)data { - return [self gtm_dataByRawDeflatingData:data error:NULL]; -} // gtm_dataByRawDeflatingData: - -+ (NSData *)gtm_dataByRawDeflatingData:(NSData *)data error:(NSError **)error { - return [self gtm_dataByCompressingBytes:[data bytes] - length:[data length] - compressionLevel:Z_DEFAULT_COMPRESSION - mode:CompressionModeRaw - error:error]; -} // gtm_dataByRawDeflatingData:error: - -+ (NSData *)gtm_dataByRawDeflatingBytes:(const void *)bytes - length:(NSUInteger)length - compressionLevel:(int)level { - return [self gtm_dataByRawDeflatingBytes:bytes - length:length - compressionLevel:level - error:NULL]; -} // gtm_dataByRawDeflatingBytes:length:compressionLevel: - -+ (NSData *)gtm_dataByRawDeflatingBytes:(const void *)bytes - length:(NSUInteger)length - compressionLevel:(int)level - error:(NSError **)error{ - return [self gtm_dataByCompressingBytes:bytes - length:length - compressionLevel:level - mode:CompressionModeRaw - error:error]; -} // gtm_dataByRawDeflatingBytes:length:compressionLevel:error: - -+ (NSData *)gtm_dataByRawDeflatingData:(NSData *)data - compressionLevel:(int)level { - return [self gtm_dataByRawDeflatingData:data - compressionLevel:level - error:NULL]; -} // gtm_dataByRawDeflatingData:compressionLevel: - -+ (NSData *)gtm_dataByRawDeflatingData:(NSData *)data - compressionLevel:(int)level - error:(NSError **)error { - return [self gtm_dataByCompressingBytes:[data bytes] - length:[data length] - compressionLevel:level - mode:CompressionModeRaw - error:error]; -} // gtm_dataByRawDeflatingData:compressionLevel:error: - -+ (NSData *)gtm_dataByRawInflatingBytes:(const void *)bytes - length:(NSUInteger)length { - return [self gtm_dataByInflatingBytes:bytes - length:length - error:NULL]; -} // gtm_dataByRawInflatingBytes:length: - -+ (NSData *)gtm_dataByRawInflatingBytes:(const void *)bytes - length:(NSUInteger)length - error:(NSError **)error{ - return [self gtm_dataByInflatingBytes:bytes - length:length - isRawData:YES - error:error]; -} // gtm_dataByRawInflatingBytes:length:error: - -+ (NSData *)gtm_dataByRawInflatingData:(NSData *)data { - return [self gtm_dataByRawInflatingData:data - error:NULL]; -} // gtm_dataByRawInflatingData: - -+ (NSData *)gtm_dataByRawInflatingData:(NSData *)data - error:(NSError **)error { - return [self gtm_dataByInflatingBytes:[data bytes] - length:[data length] - isRawData:YES - error:error]; -} // gtm_dataByRawInflatingData:error: - -@end diff --git a/StoneIsland/platforms/ios/Pods/GoogleToolboxForMac/GTMDefines.h b/StoneIsland/platforms/ios/Pods/GoogleToolboxForMac/GTMDefines.h deleted file mode 100644 index 8ec88cc0..00000000 --- a/StoneIsland/platforms/ios/Pods/GoogleToolboxForMac/GTMDefines.h +++ /dev/null @@ -1,392 +0,0 @@ -// -// GTMDefines.h -// -// Copyright 2008 Google Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); you may not -// use this file except in compliance with the License. You may obtain a copy -// of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -// License for the specific language governing permissions and limitations under -// the License. -// - -// ============================================================================ - -#include <AvailabilityMacros.h> -#include <TargetConditionals.h> - -#ifdef __OBJC__ -#include <Foundation/NSObjCRuntime.h> -#endif // __OBJC__ - -#if TARGET_OS_IPHONE -#include <Availability.h> -#endif // TARGET_OS_IPHONE - -// ---------------------------------------------------------------------------- -// CPP symbols that can be overridden in a prefix to control how the toolbox -// is compiled. -// ---------------------------------------------------------------------------- - - -// By setting the GTM_CONTAINERS_VALIDATION_FAILED_LOG and -// GTM_CONTAINERS_VALIDATION_FAILED_ASSERT macros you can control what happens -// when a validation fails. If you implement your own validators, you may want -// to control their internals using the same macros for consistency. -#ifndef GTM_CONTAINERS_VALIDATION_FAILED_ASSERT - #define GTM_CONTAINERS_VALIDATION_FAILED_ASSERT 0 -#endif - -// Ensure __has_feature and __has_extension are safe to use. -// See http://clang-analyzer.llvm.org/annotations.html -#ifndef __has_feature // Optional. - #define __has_feature(x) 0 // Compatibility with non-clang compilers. -#endif - -#ifndef __has_extension - #define __has_extension __has_feature // Compatibility with pre-3.0 compilers. -#endif - -// Give ourselves a consistent way to do inlines. Apple's macros even use -// a few different actual definitions, so we're based off of the foundation -// one. -#if !defined(GTM_INLINE) - #if (defined (__GNUC__) && (__GNUC__ == 4)) || defined (__clang__) - #define GTM_INLINE static __inline__ __attribute__((always_inline)) - #else - #define GTM_INLINE static __inline__ - #endif -#endif - -// Give ourselves a consistent way of doing externs that links up nicely -// when mixing objc and objc++ -#if !defined (GTM_EXTERN) - #if defined __cplusplus - #define GTM_EXTERN extern "C" - #define GTM_EXTERN_C_BEGIN extern "C" { - #define GTM_EXTERN_C_END } - #else - #define GTM_EXTERN extern - #define GTM_EXTERN_C_BEGIN - #define GTM_EXTERN_C_END - #endif -#endif - -// Give ourselves a consistent way of exporting things if we have visibility -// set to hidden. -#if !defined (GTM_EXPORT) - #define GTM_EXPORT __attribute__((visibility("default"))) -#endif - -// Give ourselves a consistent way of declaring something as unused. This -// doesn't use __unused because that is only supported in gcc 4.2 and greater. -#if !defined (GTM_UNUSED) -#define GTM_UNUSED(x) ((void)(x)) -#endif - -// _GTMDevLog & _GTMDevAssert -// -// _GTMDevLog & _GTMDevAssert are meant to be a very lightweight shell for -// developer level errors. This implementation simply macros to NSLog/NSAssert. -// It is not intended to be a general logging/reporting system. -// -// Please see http://code.google.com/p/google-toolbox-for-mac/wiki/DevLogNAssert -// for a little more background on the usage of these macros. -// -// _GTMDevLog log some error/problem in debug builds -// _GTMDevAssert assert if condition isn't met w/in a method/function -// in all builds. -// -// To replace this system, just provide different macro definitions in your -// prefix header. Remember, any implementation you provide *must* be thread -// safe since this could be called by anything in what ever situtation it has -// been placed in. -// - -// We only define the simple macros if nothing else has defined this. -#ifndef _GTMDevLog - -#ifdef DEBUG - #define _GTMDevLog(...) NSLog(__VA_ARGS__) -#else - #define _GTMDevLog(...) do { } while (0) -#endif - -#endif // _GTMDevLog - -#ifndef _GTMDevAssert -// we directly invoke the NSAssert handler so we can pass on the varargs -// (NSAssert doesn't have a macro we can use that takes varargs) -#if !defined(NS_BLOCK_ASSERTIONS) - #define _GTMDevAssert(condition, ...) \ - do { \ - if (!(condition)) { \ - [[NSAssertionHandler currentHandler] \ - handleFailureInFunction:(NSString *) \ - [NSString stringWithUTF8String:__PRETTY_FUNCTION__] \ - file:(NSString *)[NSString stringWithUTF8String:__FILE__] \ - lineNumber:__LINE__ \ - description:__VA_ARGS__]; \ - } \ - } while(0) -#else // !defined(NS_BLOCK_ASSERTIONS) - #define _GTMDevAssert(condition, ...) do { } while (0) -#endif // !defined(NS_BLOCK_ASSERTIONS) - -#endif // _GTMDevAssert - -// _GTMCompileAssert -// -// Note: Software for current compilers should just use _Static_assert directly -// instead of this macro. -// -// _GTMCompileAssert is an assert that is meant to fire at compile time if you -// want to check things at compile instead of runtime. For example if you -// want to check that a wchar is 4 bytes instead of 2 you would use -// _GTMCompileAssert(sizeof(wchar_t) == 4, wchar_t_is_4_bytes_on_OS_X) -// Note that the second "arg" is not in quotes, and must be a valid processor -// symbol in it's own right (no spaces, punctuation etc). - -// Wrapping this in an #ifndef allows external groups to define their own -// compile time assert scheme. -#ifndef _GTMCompileAssert - #if __has_feature(c_static_assert) || __has_extension(c_static_assert) - #define _GTMCompileAssert(test, msg) _Static_assert((test), #msg) - #else - // Pre-Xcode 7 support. - // - // We got this technique from here: - // http://unixjunkie.blogspot.com/2007/10/better-compile-time-asserts_29.html - #define _GTMCompileAssertSymbolInner(line, msg) _GTMCOMPILEASSERT ## line ## __ ## msg - #define _GTMCompileAssertSymbol(line, msg) _GTMCompileAssertSymbolInner(line, msg) - #define _GTMCompileAssert(test, msg) \ - typedef char _GTMCompileAssertSymbol(__LINE__, msg) [ ((test) ? 1 : -1) ] - #endif // __has_feature(c_static_assert) || __has_extension(c_static_assert) -#endif // _GTMCompileAssert - -// ---------------------------------------------------------------------------- -// CPP symbols defined based on the project settings so the GTM code has -// simple things to test against w/o scattering the knowledge of project -// setting through all the code. -// ---------------------------------------------------------------------------- - -// Provide a single constant CPP symbol that all of GTM uses for ifdefing -// iPhone code. -#if TARGET_OS_IPHONE // iPhone SDK - // For iPhone specific stuff - #define GTM_IPHONE_SDK 1 - #if TARGET_IPHONE_SIMULATOR - #define GTM_IPHONE_DEVICE 0 - #define GTM_IPHONE_SIMULATOR 1 - #else - #define GTM_IPHONE_DEVICE 1 - #define GTM_IPHONE_SIMULATOR 0 - #endif // TARGET_IPHONE_SIMULATOR - // By default, GTM has provided it's own unittesting support, define this - // to use the support provided by Xcode, especially for the Xcode4 support - // for unittesting. - #ifndef GTM_USING_XCTEST - #define GTM_USING_XCTEST 0 - #endif - #define GTM_MACOS_SDK 0 -#else - // For MacOS specific stuff - #define GTM_MACOS_SDK 1 - #define GTM_IPHONE_SDK 0 - #define GTM_IPHONE_SIMULATOR 0 - #define GTM_IPHONE_DEVICE 0 - #ifndef GTM_USING_XCTEST - #define GTM_USING_XCTEST 0 - #endif -#endif - -// Some of our own availability macros -#if GTM_MACOS_SDK -#define GTM_AVAILABLE_ONLY_ON_IPHONE UNAVAILABLE_ATTRIBUTE -#define GTM_AVAILABLE_ONLY_ON_MACOS -#else -#define GTM_AVAILABLE_ONLY_ON_IPHONE -#define GTM_AVAILABLE_ONLY_ON_MACOS UNAVAILABLE_ATTRIBUTE -#endif - -// GC was dropped by Apple, define the old constant incase anyone still keys -// off of it. -#ifndef GTM_SUPPORT_GC - #define GTM_SUPPORT_GC 0 -#endif - -// Some support for advanced clang static analysis functionality -#ifndef NS_RETURNS_RETAINED - #if __has_feature(attribute_ns_returns_retained) - #define NS_RETURNS_RETAINED __attribute__((ns_returns_retained)) - #else - #define NS_RETURNS_RETAINED - #endif -#endif - -#ifndef NS_RETURNS_NOT_RETAINED - #if __has_feature(attribute_ns_returns_not_retained) - #define NS_RETURNS_NOT_RETAINED __attribute__((ns_returns_not_retained)) - #else - #define NS_RETURNS_NOT_RETAINED - #endif -#endif - -#ifndef CF_RETURNS_RETAINED - #if __has_feature(attribute_cf_returns_retained) - #define CF_RETURNS_RETAINED __attribute__((cf_returns_retained)) - #else - #define CF_RETURNS_RETAINED - #endif -#endif - -#ifndef CF_RETURNS_NOT_RETAINED - #if __has_feature(attribute_cf_returns_not_retained) - #define CF_RETURNS_NOT_RETAINED __attribute__((cf_returns_not_retained)) - #else - #define CF_RETURNS_NOT_RETAINED - #endif -#endif - -#ifndef NS_CONSUMED - #if __has_feature(attribute_ns_consumed) - #define NS_CONSUMED __attribute__((ns_consumed)) - #else - #define NS_CONSUMED - #endif -#endif - -#ifndef CF_CONSUMED - #if __has_feature(attribute_cf_consumed) - #define CF_CONSUMED __attribute__((cf_consumed)) - #else - #define CF_CONSUMED - #endif -#endif - -#ifndef NS_CONSUMES_SELF - #if __has_feature(attribute_ns_consumes_self) - #define NS_CONSUMES_SELF __attribute__((ns_consumes_self)) - #else - #define NS_CONSUMES_SELF - #endif -#endif - -#ifndef GTM_NONNULL - #if defined(__has_attribute) - #if __has_attribute(nonnull) - #define GTM_NONNULL(x) __attribute__((nonnull x)) - #else - #define GTM_NONNULL(x) - #endif - #else - #define GTM_NONNULL(x) - #endif -#endif - -// Invalidates the initializer from which it's called. -#ifndef GTMInvalidateInitializer - #if __has_feature(objc_arc) - #define GTMInvalidateInitializer() \ - do { \ - [self class]; /* Avoid warning of dead store to |self|. */ \ - _GTMDevAssert(NO, @"Invalid initializer."); \ - return nil; \ - } while (0) - #else - #define GTMInvalidateInitializer() \ - do { \ - [self release]; \ - _GTMDevAssert(NO, @"Invalid initializer."); \ - return nil; \ - } while (0) - #endif -#endif - -#ifndef GTMCFAutorelease - // GTMCFAutorelease returns an id. In contrast, Apple's CFAutorelease returns - // a CFTypeRef. - #if __has_feature(objc_arc) - #define GTMCFAutorelease(x) CFBridgingRelease(x) - #else - #define GTMCFAutorelease(x) ([(id)x autorelease]) - #endif -#endif - -#ifdef __OBJC__ - - -// Macro to allow you to create NSStrings out of other macros. -// #define FOO foo -// NSString *fooString = GTM_NSSTRINGIFY(FOO); -#if !defined (GTM_NSSTRINGIFY) - #define GTM_NSSTRINGIFY_INNER(x) @#x - #define GTM_NSSTRINGIFY(x) GTM_NSSTRINGIFY_INNER(x) -#endif - -// Macro to allow fast enumeration when building for 10.5 or later, and -// reliance on NSEnumerator for 10.4. Remember, NSDictionary w/ FastEnumeration -// does keys, so pick the right thing, nothing is done on the FastEnumeration -// side to be sure you're getting what you wanted. -#ifndef GTM_FOREACH_OBJECT - #if TARGET_OS_IPHONE || !(MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_5) - #define GTM_FOREACH_ENUMEREE(element, enumeration) \ - for (element in enumeration) - #define GTM_FOREACH_OBJECT(element, collection) \ - for (element in collection) - #define GTM_FOREACH_KEY(element, collection) \ - for (element in collection) - #else - #define GTM_FOREACH_ENUMEREE(element, enumeration) \ - for (NSEnumerator *_ ## element ## _enum = enumeration; \ - (element = [_ ## element ## _enum nextObject]) != nil; ) - #define GTM_FOREACH_OBJECT(element, collection) \ - GTM_FOREACH_ENUMEREE(element, [collection objectEnumerator]) - #define GTM_FOREACH_KEY(element, collection) \ - GTM_FOREACH_ENUMEREE(element, [collection keyEnumerator]) - #endif -#endif - -// ============================================================================ - -// GTM_SEL_STRING is for specifying selector (usually property) names to KVC -// or KVO methods. -// In debug it will generate warnings for undeclared selectors if -// -Wunknown-selector is turned on. -// In release it will have no runtime overhead. -#ifndef GTM_SEL_STRING - #ifdef DEBUG - #define GTM_SEL_STRING(selName) NSStringFromSelector(@selector(selName)) - #else - #define GTM_SEL_STRING(selName) @#selName - #endif // DEBUG -#endif // GTM_SEL_STRING - -#ifndef GTM_WEAK -#if __has_feature(objc_arc_weak) - // With ARC enabled, __weak means a reference that isn't implicitly - // retained. __weak objects are accessed through runtime functions, so - // they are zeroed out, but this requires OS X 10.7+. - // At clang r251041+, ARC-style zeroing weak references even work in - // non-ARC mode. - #define GTM_WEAK __weak - #elif __has_feature(objc_arc) - // ARC, but targeting 10.6 or older, where zeroing weak references don't - // exist. - #define GTM_WEAK __unsafe_unretained - #else - // With manual reference counting, __weak used to be silently ignored. - // clang r251041 gives it the ARC semantics instead. This means they - // now require a deployment target of 10.7, while some clients of GTM - // still target 10.6. In these cases, expand to __unsafe_unretained instead - #define GTM_WEAK - #endif -#endif - -#endif // __OBJC__ diff --git a/StoneIsland/platforms/ios/Pods/GoogleToolboxForMac/LICENSE b/StoneIsland/platforms/ios/Pods/GoogleToolboxForMac/LICENSE deleted file mode 100644 index d6456956..00000000 --- a/StoneIsland/platforms/ios/Pods/GoogleToolboxForMac/LICENSE +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/StoneIsland/platforms/ios/Pods/GoogleToolboxForMac/README.md b/StoneIsland/platforms/ios/Pods/GoogleToolboxForMac/README.md deleted file mode 100644 index 710560a3..00000000 --- a/StoneIsland/platforms/ios/Pods/GoogleToolboxForMac/README.md +++ /dev/null @@ -1,15 +0,0 @@ -# GTM: Google Toolbox for Mac # - -**Project site** <https://github.com/google/google-toolbox-for-mac><br> -**Discussion group** <http://groups.google.com/group/google-toolbox-for-mac> - -# Google Toolbox for Mac # - -A collection of source from different Google projects that may be of use to -developers working other iOS or OS X projects. - -If you find a problem/bug or want a new feature to be included in the Google -Toolbox for Mac, please join the -[discussion group](http://groups.google.com/group/google-toolbox-for-mac) -or submit an -[issue](https://github.com/google/google-toolbox-for-mac/issues). diff --git a/StoneIsland/platforms/ios/Pods/GoogleUtilities/Frameworks/frameworks/GoogleUtilities.framework/GoogleUtilities b/StoneIsland/platforms/ios/Pods/GoogleUtilities/Frameworks/frameworks/GoogleUtilities.framework/GoogleUtilities Binary files differnew file mode 100755 index 00000000..0fd17b65 --- /dev/null +++ b/StoneIsland/platforms/ios/Pods/GoogleUtilities/Frameworks/frameworks/GoogleUtilities.framework/GoogleUtilities diff --git a/StoneIsland/platforms/ios/Pods/Headers/Private/GGLInstanceID/GGLInstanceID.h b/StoneIsland/platforms/ios/Pods/Headers/Private/GGLInstanceID/GGLInstanceID.h new file mode 120000 index 00000000..6a5ede6e --- /dev/null +++ b/StoneIsland/platforms/ios/Pods/Headers/Private/GGLInstanceID/GGLInstanceID.h @@ -0,0 +1 @@ +../../../GGLInstanceID/Headers/Public/GGLInstanceID.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Private/GGLInstanceID/GGLInstanceIDConfig.h b/StoneIsland/platforms/ios/Pods/Headers/Private/GGLInstanceID/GGLInstanceIDConfig.h new file mode 120000 index 00000000..95605988 --- /dev/null +++ b/StoneIsland/platforms/ios/Pods/Headers/Private/GGLInstanceID/GGLInstanceIDConfig.h @@ -0,0 +1 @@ +../../../GGLInstanceID/Headers/Public/GGLInstanceIDConfig.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Private/GGLInstanceID/GGLInstanceIDDelegate.h b/StoneIsland/platforms/ios/Pods/Headers/Private/GGLInstanceID/GGLInstanceIDDelegate.h new file mode 120000 index 00000000..e7d44b8c --- /dev/null +++ b/StoneIsland/platforms/ios/Pods/Headers/Private/GGLInstanceID/GGLInstanceIDDelegate.h @@ -0,0 +1 @@ +../../../GGLInstanceID/Headers/Public/GGLInstanceIDDelegate.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Private/GGLInstanceID/GGLInstanceIDHeaders.h b/StoneIsland/platforms/ios/Pods/Headers/Private/GGLInstanceID/GGLInstanceIDHeaders.h new file mode 120000 index 00000000..b1d72b29 --- /dev/null +++ b/StoneIsland/platforms/ios/Pods/Headers/Private/GGLInstanceID/GGLInstanceIDHeaders.h @@ -0,0 +1 @@ +../../../GGLInstanceID/Headers/Public/GGLInstanceIDHeaders.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Private/GoogleCloudMessaging/GCMConfig.h b/StoneIsland/platforms/ios/Pods/Headers/Private/GoogleCloudMessaging/GCMConfig.h new file mode 120000 index 00000000..b5187f24 --- /dev/null +++ b/StoneIsland/platforms/ios/Pods/Headers/Private/GoogleCloudMessaging/GCMConfig.h @@ -0,0 +1 @@ +../../../GoogleCloudMessaging/Headers/Public/GCMConfig.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Private/GoogleCloudMessaging/GCMPubSub.h b/StoneIsland/platforms/ios/Pods/Headers/Private/GoogleCloudMessaging/GCMPubSub.h new file mode 120000 index 00000000..0072792c --- /dev/null +++ b/StoneIsland/platforms/ios/Pods/Headers/Private/GoogleCloudMessaging/GCMPubSub.h @@ -0,0 +1 @@ +../../../GoogleCloudMessaging/Headers/Public/GCMPubSub.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Private/GoogleCloudMessaging/GCMReceiverDelegate.h b/StoneIsland/platforms/ios/Pods/Headers/Private/GoogleCloudMessaging/GCMReceiverDelegate.h new file mode 120000 index 00000000..e6e1be97 --- /dev/null +++ b/StoneIsland/platforms/ios/Pods/Headers/Private/GoogleCloudMessaging/GCMReceiverDelegate.h @@ -0,0 +1 @@ +../../../GoogleCloudMessaging/Headers/Public/GCMReceiverDelegate.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Private/GoogleCloudMessaging/GCMService.h b/StoneIsland/platforms/ios/Pods/Headers/Private/GoogleCloudMessaging/GCMService.h new file mode 120000 index 00000000..256f388d --- /dev/null +++ b/StoneIsland/platforms/ios/Pods/Headers/Private/GoogleCloudMessaging/GCMService.h @@ -0,0 +1 @@ +../../../GoogleCloudMessaging/Headers/Public/GCMService.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Private/GoogleCloudMessaging/GoogleCloudMessaging.h b/StoneIsland/platforms/ios/Pods/Headers/Private/GoogleCloudMessaging/GoogleCloudMessaging.h new file mode 120000 index 00000000..18678070 --- /dev/null +++ b/StoneIsland/platforms/ios/Pods/Headers/Private/GoogleCloudMessaging/GoogleCloudMessaging.h @@ -0,0 +1 @@ +../../../GoogleCloudMessaging/Headers/Public/GoogleCloudMessaging.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Private/GoogleToolboxForMac/GTMDefines.h b/StoneIsland/platforms/ios/Pods/Headers/Private/GoogleToolboxForMac/GTMDefines.h deleted file mode 120000 index 55031108..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Private/GoogleToolboxForMac/GTMDefines.h +++ /dev/null @@ -1 +0,0 @@ -../../../GoogleToolboxForMac/GTMDefines.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Private/GoogleToolboxForMac/GTMLogger.h b/StoneIsland/platforms/ios/Pods/Headers/Private/GoogleToolboxForMac/GTMLogger.h deleted file mode 120000 index f45a0d7d..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Private/GoogleToolboxForMac/GTMLogger.h +++ /dev/null @@ -1 +0,0 @@ -../../../GoogleToolboxForMac/Foundation/GTMLogger.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Private/GoogleToolboxForMac/GTMNSData+zlib.h b/StoneIsland/platforms/ios/Pods/Headers/Private/GoogleToolboxForMac/GTMNSData+zlib.h deleted file mode 120000 index 9e724193..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Private/GoogleToolboxForMac/GTMNSData+zlib.h +++ /dev/null @@ -1 +0,0 @@ -../../../GoogleToolboxForMac/Foundation/GTMNSData+zlib.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/Any.pbobjc.h b/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/Any.pbobjc.h deleted file mode 120000 index a3b2cd7c..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/Any.pbobjc.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/google/protobuf/Any.pbobjc.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/Api.pbobjc.h b/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/Api.pbobjc.h deleted file mode 120000 index aaf80d3f..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/Api.pbobjc.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/google/protobuf/Api.pbobjc.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/Duration.pbobjc.h b/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/Duration.pbobjc.h deleted file mode 120000 index 819be985..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/Duration.pbobjc.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/google/protobuf/Duration.pbobjc.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/Empty.pbobjc.h b/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/Empty.pbobjc.h deleted file mode 120000 index 848a3a8f..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/Empty.pbobjc.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/google/protobuf/Empty.pbobjc.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/FieldMask.pbobjc.h b/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/FieldMask.pbobjc.h deleted file mode 120000 index 094aa0a9..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/FieldMask.pbobjc.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/google/protobuf/FieldMask.pbobjc.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBArray.h b/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBArray.h deleted file mode 120000 index f8e77a6c..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBArray.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/GPBArray.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBArray_PackagePrivate.h b/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBArray_PackagePrivate.h deleted file mode 120000 index 7114784a..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBArray_PackagePrivate.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/GPBArray_PackagePrivate.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBBootstrap.h b/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBBootstrap.h deleted file mode 120000 index 587e43e9..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBBootstrap.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/GPBBootstrap.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBCodedInputStream.h b/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBCodedInputStream.h deleted file mode 120000 index 130ef510..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBCodedInputStream.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/GPBCodedInputStream.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBCodedInputStream_PackagePrivate.h b/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBCodedInputStream_PackagePrivate.h deleted file mode 120000 index f50b154c..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBCodedInputStream_PackagePrivate.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/GPBCodedInputStream_PackagePrivate.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBCodedOutputStream.h b/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBCodedOutputStream.h deleted file mode 120000 index 56983131..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBCodedOutputStream.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/GPBCodedOutputStream.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBCodedOutputStream_PackagePrivate.h b/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBCodedOutputStream_PackagePrivate.h deleted file mode 120000 index a0496568..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBCodedOutputStream_PackagePrivate.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/GPBCodedOutputStream_PackagePrivate.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBDescriptor.h b/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBDescriptor.h deleted file mode 120000 index 63331674..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBDescriptor.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/GPBDescriptor.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBDescriptor_PackagePrivate.h b/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBDescriptor_PackagePrivate.h deleted file mode 120000 index 78cf94a7..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBDescriptor_PackagePrivate.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/GPBDescriptor_PackagePrivate.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBDictionary.h b/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBDictionary.h deleted file mode 120000 index e121884f..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBDictionary.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/GPBDictionary.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBDictionary_PackagePrivate.h b/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBDictionary_PackagePrivate.h deleted file mode 120000 index f4e36365..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBDictionary_PackagePrivate.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/GPBDictionary_PackagePrivate.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBExtensionInternals.h b/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBExtensionInternals.h deleted file mode 120000 index 524ff703..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBExtensionInternals.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/GPBExtensionInternals.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBExtensionRegistry.h b/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBExtensionRegistry.h deleted file mode 120000 index 5235109f..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBExtensionRegistry.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/GPBExtensionRegistry.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBMessage.h b/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBMessage.h deleted file mode 120000 index cc221529..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBMessage.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/GPBMessage.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBMessage_PackagePrivate.h b/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBMessage_PackagePrivate.h deleted file mode 120000 index 8a25863d..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBMessage_PackagePrivate.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/GPBMessage_PackagePrivate.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBProtocolBuffers.h b/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBProtocolBuffers.h deleted file mode 120000 index 9bb666c8..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBProtocolBuffers.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/GPBProtocolBuffers.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBProtocolBuffers_RuntimeSupport.h b/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBProtocolBuffers_RuntimeSupport.h deleted file mode 120000 index 33362308..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBProtocolBuffers_RuntimeSupport.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/GPBProtocolBuffers_RuntimeSupport.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBRootObject.h b/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBRootObject.h deleted file mode 120000 index f793ef7d..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBRootObject.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/GPBRootObject.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBRootObject_PackagePrivate.h b/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBRootObject_PackagePrivate.h deleted file mode 120000 index 6d7e5150..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBRootObject_PackagePrivate.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/GPBRootObject_PackagePrivate.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBRuntimeTypes.h b/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBRuntimeTypes.h deleted file mode 120000 index c4d0370a..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBRuntimeTypes.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/GPBRuntimeTypes.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBUnknownField.h b/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBUnknownField.h deleted file mode 120000 index e16bb76b..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBUnknownField.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/GPBUnknownField.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBUnknownFieldSet.h b/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBUnknownFieldSet.h deleted file mode 120000 index d89c5eb1..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBUnknownFieldSet.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/GPBUnknownFieldSet.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBUnknownFieldSet_PackagePrivate.h b/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBUnknownFieldSet_PackagePrivate.h deleted file mode 120000 index 3493399e..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBUnknownFieldSet_PackagePrivate.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/GPBUnknownFieldSet_PackagePrivate.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBUnknownField_PackagePrivate.h b/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBUnknownField_PackagePrivate.h deleted file mode 120000 index 1a74032c..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBUnknownField_PackagePrivate.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/GPBUnknownField_PackagePrivate.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBUtilities.h b/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBUtilities.h deleted file mode 120000 index 270b85f2..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBUtilities.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/GPBUtilities.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBUtilities_PackagePrivate.h b/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBUtilities_PackagePrivate.h deleted file mode 120000 index 507dfa53..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBUtilities_PackagePrivate.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/GPBUtilities_PackagePrivate.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBWellKnownTypes.h b/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBWellKnownTypes.h deleted file mode 120000 index 0d3f3872..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBWellKnownTypes.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/GPBWellKnownTypes.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBWireFormat.h b/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBWireFormat.h deleted file mode 120000 index d1ce7e22..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBWireFormat.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/GPBWireFormat.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/SourceContext.pbobjc.h b/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/SourceContext.pbobjc.h deleted file mode 120000 index 2df29f41..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/SourceContext.pbobjc.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/google/protobuf/SourceContext.pbobjc.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/Struct.pbobjc.h b/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/Struct.pbobjc.h deleted file mode 120000 index 6cad8000..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/Struct.pbobjc.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/google/protobuf/Struct.pbobjc.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/Timestamp.pbobjc.h b/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/Timestamp.pbobjc.h deleted file mode 120000 index 3d78ef1f..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/Timestamp.pbobjc.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/google/protobuf/Timestamp.pbobjc.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/Type.pbobjc.h b/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/Type.pbobjc.h deleted file mode 120000 index 06829fbe..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/Type.pbobjc.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/google/protobuf/Type.pbobjc.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/Wrappers.pbobjc.h b/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/Wrappers.pbobjc.h deleted file mode 120000 index df905161..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/Wrappers.pbobjc.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/google/protobuf/Wrappers.pbobjc.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Private/nanopb/pb.h b/StoneIsland/platforms/ios/Pods/Headers/Private/nanopb/pb.h deleted file mode 120000 index 549ba434..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Private/nanopb/pb.h +++ /dev/null @@ -1 +0,0 @@ -../../../nanopb/pb.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Private/nanopb/pb_common.h b/StoneIsland/platforms/ios/Pods/Headers/Private/nanopb/pb_common.h deleted file mode 120000 index 002c466e..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Private/nanopb/pb_common.h +++ /dev/null @@ -1 +0,0 @@ -../../../nanopb/pb_common.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Private/nanopb/pb_decode.h b/StoneIsland/platforms/ios/Pods/Headers/Private/nanopb/pb_decode.h deleted file mode 120000 index 62ed2f10..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Private/nanopb/pb_decode.h +++ /dev/null @@ -1 +0,0 @@ -../../../nanopb/pb_decode.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Private/nanopb/pb_encode.h b/StoneIsland/platforms/ios/Pods/Headers/Private/nanopb/pb_encode.h deleted file mode 120000 index 057760ea..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Private/nanopb/pb_encode.h +++ /dev/null @@ -1 +0,0 @@ -../../../nanopb/pb_encode.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseAnalytics/FirebaseAnalytics/FIRAnalytics+AppDelegate.h b/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseAnalytics/FirebaseAnalytics/FIRAnalytics+AppDelegate.h deleted file mode 120000 index 1d9bd7ed..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseAnalytics/FirebaseAnalytics/FIRAnalytics+AppDelegate.h +++ /dev/null @@ -1 +0,0 @@ -../../../../FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRAnalytics+AppDelegate.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseAnalytics/FirebaseAnalytics/FIRAnalytics.h b/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseAnalytics/FirebaseAnalytics/FIRAnalytics.h deleted file mode 120000 index f8fc4fb1..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseAnalytics/FirebaseAnalytics/FIRAnalytics.h +++ /dev/null @@ -1 +0,0 @@ -../../../../FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRAnalytics.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseAnalytics/FirebaseAnalytics/FIRAnalyticsConfiguration.h b/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseAnalytics/FirebaseAnalytics/FIRAnalyticsConfiguration.h deleted file mode 120000 index 67732719..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseAnalytics/FirebaseAnalytics/FIRAnalyticsConfiguration.h +++ /dev/null @@ -1 +0,0 @@ -../../../../FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRAnalyticsConfiguration.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseAnalytics/FirebaseAnalytics/FIRAnalyticsSwiftNameSupport.h b/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseAnalytics/FirebaseAnalytics/FIRAnalyticsSwiftNameSupport.h deleted file mode 120000 index d6071113..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseAnalytics/FirebaseAnalytics/FIRAnalyticsSwiftNameSupport.h +++ /dev/null @@ -1 +0,0 @@ -../../../../FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRAnalyticsSwiftNameSupport.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseAnalytics/FirebaseAnalytics/FIRApp.h b/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseAnalytics/FirebaseAnalytics/FIRApp.h deleted file mode 120000 index 97c9b35a..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseAnalytics/FirebaseAnalytics/FIRApp.h +++ /dev/null @@ -1 +0,0 @@ -../../../../FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRApp.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseAnalytics/FirebaseAnalytics/FIRConfiguration.h b/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseAnalytics/FirebaseAnalytics/FIRConfiguration.h deleted file mode 120000 index c34ddb85..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseAnalytics/FirebaseAnalytics/FIRConfiguration.h +++ /dev/null @@ -1 +0,0 @@ -../../../../FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRConfiguration.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseAnalytics/FirebaseAnalytics/FIREventNames.h b/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseAnalytics/FirebaseAnalytics/FIREventNames.h deleted file mode 120000 index 8924cc08..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseAnalytics/FirebaseAnalytics/FIREventNames.h +++ /dev/null @@ -1 +0,0 @@ -../../../../FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIREventNames.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseAnalytics/FirebaseAnalytics/FIROptions.h b/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseAnalytics/FirebaseAnalytics/FIROptions.h deleted file mode 120000 index a40119b4..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseAnalytics/FirebaseAnalytics/FIROptions.h +++ /dev/null @@ -1 +0,0 @@ -../../../../FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIROptions.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseAnalytics/FirebaseAnalytics/FIRParameterNames.h b/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseAnalytics/FirebaseAnalytics/FIRParameterNames.h deleted file mode 120000 index 6e37a6e0..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseAnalytics/FirebaseAnalytics/FIRParameterNames.h +++ /dev/null @@ -1 +0,0 @@ -../../../../FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRParameterNames.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseAnalytics/FirebaseAnalytics/FIRUserPropertyNames.h b/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseAnalytics/FirebaseAnalytics/FIRUserPropertyNames.h deleted file mode 120000 index 4459d6bc..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseAnalytics/FirebaseAnalytics/FIRUserPropertyNames.h +++ /dev/null @@ -1 +0,0 @@ -../../../../FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRUserPropertyNames.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseAnalytics/FirebaseAnalytics/FirebaseAnalytics.h b/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseAnalytics/FirebaseAnalytics/FirebaseAnalytics.h deleted file mode 120000 index 2d48a7db..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseAnalytics/FirebaseAnalytics/FirebaseAnalytics.h +++ /dev/null @@ -1 +0,0 @@ -../../../../FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FirebaseAnalytics.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseCore/FirebaseCore/FIRAnalyticsConfiguration.h b/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseCore/FirebaseCore/FIRAnalyticsConfiguration.h deleted file mode 120000 index 31d68c31..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseCore/FirebaseCore/FIRAnalyticsConfiguration.h +++ /dev/null @@ -1 +0,0 @@ -../../../../FirebaseCore/Frameworks/FirebaseCore.framework/Headers/FIRAnalyticsConfiguration.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseCore/FirebaseCore/FIRApp.h b/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseCore/FirebaseCore/FIRApp.h deleted file mode 120000 index 90c263ac..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseCore/FirebaseCore/FIRApp.h +++ /dev/null @@ -1 +0,0 @@ -../../../../FirebaseCore/Frameworks/FirebaseCore.framework/Headers/FIRApp.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseCore/FirebaseCore/FIRConfiguration.h b/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseCore/FirebaseCore/FIRConfiguration.h deleted file mode 120000 index 6a732c03..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseCore/FirebaseCore/FIRConfiguration.h +++ /dev/null @@ -1 +0,0 @@ -../../../../FirebaseCore/Frameworks/FirebaseCore.framework/Headers/FIRConfiguration.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseCore/FirebaseCore/FIRCoreSwiftNameSupport.h b/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseCore/FirebaseCore/FIRCoreSwiftNameSupport.h deleted file mode 120000 index 8473ede1..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseCore/FirebaseCore/FIRCoreSwiftNameSupport.h +++ /dev/null @@ -1 +0,0 @@ -../../../../FirebaseCore/Frameworks/FirebaseCore.framework/Headers/FIRCoreSwiftNameSupport.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseCore/FirebaseCore/FIRLoggerLevel.h b/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseCore/FirebaseCore/FIRLoggerLevel.h deleted file mode 120000 index a2167066..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseCore/FirebaseCore/FIRLoggerLevel.h +++ /dev/null @@ -1 +0,0 @@ -../../../../FirebaseCore/Frameworks/FirebaseCore.framework/Headers/FIRLoggerLevel.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseCore/FirebaseCore/FIROptions.h b/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseCore/FirebaseCore/FIROptions.h deleted file mode 120000 index 5bd77eb8..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseCore/FirebaseCore/FIROptions.h +++ /dev/null @@ -1 +0,0 @@ -../../../../FirebaseCore/Frameworks/FirebaseCore.framework/Headers/FIROptions.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseCore/FirebaseCore/FirebaseCore.h b/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseCore/FirebaseCore/FirebaseCore.h deleted file mode 120000 index 96e9330e..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseCore/FirebaseCore/FirebaseCore.h +++ /dev/null @@ -1 +0,0 @@ -../../../../FirebaseCore/Frameworks/FirebaseCore.framework/Headers/FirebaseCore.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseInstanceID/FirebaseInstanceID/FIRInstanceID.h b/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseInstanceID/FirebaseInstanceID/FIRInstanceID.h deleted file mode 120000 index 62c92b0c..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseInstanceID/FirebaseInstanceID/FIRInstanceID.h +++ /dev/null @@ -1 +0,0 @@ -../../../../FirebaseInstanceID/Frameworks/FirebaseInstanceID.framework/Headers/FIRInstanceID.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseInstanceID/FirebaseInstanceID/FirebaseInstanceID.h b/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseInstanceID/FirebaseInstanceID/FirebaseInstanceID.h deleted file mode 120000 index 8925bdb8..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseInstanceID/FirebaseInstanceID/FirebaseInstanceID.h +++ /dev/null @@ -1 +0,0 @@ -../../../../FirebaseInstanceID/Frameworks/FirebaseInstanceID.framework/Headers/FirebaseInstanceID.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseMessaging/FirebaseMessaging/FIRMessaging.h b/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseMessaging/FirebaseMessaging/FIRMessaging.h deleted file mode 120000 index daaf6b08..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseMessaging/FirebaseMessaging/FIRMessaging.h +++ /dev/null @@ -1 +0,0 @@ -../../../../FirebaseMessaging/Frameworks/FirebaseMessaging.framework/Headers/FIRMessaging.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseMessaging/FirebaseMessaging/FirebaseMessaging.h b/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseMessaging/FirebaseMessaging/FirebaseMessaging.h deleted file mode 120000 index 94e089d7..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseMessaging/FirebaseMessaging/FirebaseMessaging.h +++ /dev/null @@ -1 +0,0 @@ -../../../../FirebaseMessaging/Frameworks/FirebaseMessaging.framework/Headers/FirebaseMessaging.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/GGLInstanceID/GGLInstanceID.h b/StoneIsland/platforms/ios/Pods/Headers/Public/GGLInstanceID/GGLInstanceID.h new file mode 120000 index 00000000..6a5ede6e --- /dev/null +++ b/StoneIsland/platforms/ios/Pods/Headers/Public/GGLInstanceID/GGLInstanceID.h @@ -0,0 +1 @@ +../../../GGLInstanceID/Headers/Public/GGLInstanceID.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/GGLInstanceID/GGLInstanceIDConfig.h b/StoneIsland/platforms/ios/Pods/Headers/Public/GGLInstanceID/GGLInstanceIDConfig.h new file mode 120000 index 00000000..95605988 --- /dev/null +++ b/StoneIsland/platforms/ios/Pods/Headers/Public/GGLInstanceID/GGLInstanceIDConfig.h @@ -0,0 +1 @@ +../../../GGLInstanceID/Headers/Public/GGLInstanceIDConfig.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/GGLInstanceID/GGLInstanceIDDelegate.h b/StoneIsland/platforms/ios/Pods/Headers/Public/GGLInstanceID/GGLInstanceIDDelegate.h new file mode 120000 index 00000000..e7d44b8c --- /dev/null +++ b/StoneIsland/platforms/ios/Pods/Headers/Public/GGLInstanceID/GGLInstanceIDDelegate.h @@ -0,0 +1 @@ +../../../GGLInstanceID/Headers/Public/GGLInstanceIDDelegate.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/GGLInstanceID/GGLInstanceIDHeaders.h b/StoneIsland/platforms/ios/Pods/Headers/Public/GGLInstanceID/GGLInstanceIDHeaders.h new file mode 120000 index 00000000..b1d72b29 --- /dev/null +++ b/StoneIsland/platforms/ios/Pods/Headers/Public/GGLInstanceID/GGLInstanceIDHeaders.h @@ -0,0 +1 @@ +../../../GGLInstanceID/Headers/Public/GGLInstanceIDHeaders.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/GoogleCloudMessaging/GCMConfig.h b/StoneIsland/platforms/ios/Pods/Headers/Public/GoogleCloudMessaging/GCMConfig.h new file mode 120000 index 00000000..b5187f24 --- /dev/null +++ b/StoneIsland/platforms/ios/Pods/Headers/Public/GoogleCloudMessaging/GCMConfig.h @@ -0,0 +1 @@ +../../../GoogleCloudMessaging/Headers/Public/GCMConfig.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/GoogleCloudMessaging/GCMPubSub.h b/StoneIsland/platforms/ios/Pods/Headers/Public/GoogleCloudMessaging/GCMPubSub.h new file mode 120000 index 00000000..0072792c --- /dev/null +++ b/StoneIsland/platforms/ios/Pods/Headers/Public/GoogleCloudMessaging/GCMPubSub.h @@ -0,0 +1 @@ +../../../GoogleCloudMessaging/Headers/Public/GCMPubSub.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/GoogleCloudMessaging/GCMReceiverDelegate.h b/StoneIsland/platforms/ios/Pods/Headers/Public/GoogleCloudMessaging/GCMReceiverDelegate.h new file mode 120000 index 00000000..e6e1be97 --- /dev/null +++ b/StoneIsland/platforms/ios/Pods/Headers/Public/GoogleCloudMessaging/GCMReceiverDelegate.h @@ -0,0 +1 @@ +../../../GoogleCloudMessaging/Headers/Public/GCMReceiverDelegate.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/GoogleCloudMessaging/GCMService.h b/StoneIsland/platforms/ios/Pods/Headers/Public/GoogleCloudMessaging/GCMService.h new file mode 120000 index 00000000..256f388d --- /dev/null +++ b/StoneIsland/platforms/ios/Pods/Headers/Public/GoogleCloudMessaging/GCMService.h @@ -0,0 +1 @@ +../../../GoogleCloudMessaging/Headers/Public/GCMService.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/GoogleCloudMessaging/GoogleCloudMessaging.h b/StoneIsland/platforms/ios/Pods/Headers/Public/GoogleCloudMessaging/GoogleCloudMessaging.h new file mode 120000 index 00000000..18678070 --- /dev/null +++ b/StoneIsland/platforms/ios/Pods/Headers/Public/GoogleCloudMessaging/GoogleCloudMessaging.h @@ -0,0 +1 @@ +../../../GoogleCloudMessaging/Headers/Public/GoogleCloudMessaging.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/GoogleToolboxForMac/GTMDefines.h b/StoneIsland/platforms/ios/Pods/Headers/Public/GoogleToolboxForMac/GTMDefines.h deleted file mode 120000 index 55031108..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/GoogleToolboxForMac/GTMDefines.h +++ /dev/null @@ -1 +0,0 @@ -../../../GoogleToolboxForMac/GTMDefines.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/GoogleToolboxForMac/GTMLogger.h b/StoneIsland/platforms/ios/Pods/Headers/Public/GoogleToolboxForMac/GTMLogger.h deleted file mode 120000 index f45a0d7d..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/GoogleToolboxForMac/GTMLogger.h +++ /dev/null @@ -1 +0,0 @@ -../../../GoogleToolboxForMac/Foundation/GTMLogger.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/GoogleToolboxForMac/GTMNSData+zlib.h b/StoneIsland/platforms/ios/Pods/Headers/Public/GoogleToolboxForMac/GTMNSData+zlib.h deleted file mode 120000 index 9e724193..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/GoogleToolboxForMac/GTMNSData+zlib.h +++ /dev/null @@ -1 +0,0 @@ -../../../GoogleToolboxForMac/Foundation/GTMNSData+zlib.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/Any.pbobjc.h b/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/Any.pbobjc.h deleted file mode 120000 index a3b2cd7c..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/Any.pbobjc.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/google/protobuf/Any.pbobjc.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/Api.pbobjc.h b/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/Api.pbobjc.h deleted file mode 120000 index aaf80d3f..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/Api.pbobjc.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/google/protobuf/Api.pbobjc.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/Duration.pbobjc.h b/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/Duration.pbobjc.h deleted file mode 120000 index 819be985..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/Duration.pbobjc.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/google/protobuf/Duration.pbobjc.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/Empty.pbobjc.h b/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/Empty.pbobjc.h deleted file mode 120000 index 848a3a8f..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/Empty.pbobjc.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/google/protobuf/Empty.pbobjc.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/FieldMask.pbobjc.h b/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/FieldMask.pbobjc.h deleted file mode 120000 index 094aa0a9..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/FieldMask.pbobjc.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/google/protobuf/FieldMask.pbobjc.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBArray.h b/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBArray.h deleted file mode 120000 index f8e77a6c..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBArray.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/GPBArray.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBArray_PackagePrivate.h b/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBArray_PackagePrivate.h deleted file mode 120000 index 7114784a..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBArray_PackagePrivate.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/GPBArray_PackagePrivate.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBBootstrap.h b/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBBootstrap.h deleted file mode 120000 index 587e43e9..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBBootstrap.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/GPBBootstrap.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBCodedInputStream.h b/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBCodedInputStream.h deleted file mode 120000 index 130ef510..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBCodedInputStream.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/GPBCodedInputStream.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBCodedInputStream_PackagePrivate.h b/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBCodedInputStream_PackagePrivate.h deleted file mode 120000 index f50b154c..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBCodedInputStream_PackagePrivate.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/GPBCodedInputStream_PackagePrivate.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBCodedOutputStream.h b/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBCodedOutputStream.h deleted file mode 120000 index 56983131..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBCodedOutputStream.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/GPBCodedOutputStream.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBCodedOutputStream_PackagePrivate.h b/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBCodedOutputStream_PackagePrivate.h deleted file mode 120000 index a0496568..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBCodedOutputStream_PackagePrivate.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/GPBCodedOutputStream_PackagePrivate.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBDescriptor.h b/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBDescriptor.h deleted file mode 120000 index 63331674..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBDescriptor.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/GPBDescriptor.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBDescriptor_PackagePrivate.h b/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBDescriptor_PackagePrivate.h deleted file mode 120000 index 78cf94a7..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBDescriptor_PackagePrivate.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/GPBDescriptor_PackagePrivate.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBDictionary.h b/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBDictionary.h deleted file mode 120000 index e121884f..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBDictionary.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/GPBDictionary.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBDictionary_PackagePrivate.h b/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBDictionary_PackagePrivate.h deleted file mode 120000 index f4e36365..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBDictionary_PackagePrivate.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/GPBDictionary_PackagePrivate.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBExtensionInternals.h b/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBExtensionInternals.h deleted file mode 120000 index 524ff703..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBExtensionInternals.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/GPBExtensionInternals.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBExtensionRegistry.h b/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBExtensionRegistry.h deleted file mode 120000 index 5235109f..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBExtensionRegistry.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/GPBExtensionRegistry.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBMessage.h b/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBMessage.h deleted file mode 120000 index cc221529..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBMessage.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/GPBMessage.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBMessage_PackagePrivate.h b/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBMessage_PackagePrivate.h deleted file mode 120000 index 8a25863d..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBMessage_PackagePrivate.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/GPBMessage_PackagePrivate.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBProtocolBuffers.h b/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBProtocolBuffers.h deleted file mode 120000 index 9bb666c8..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBProtocolBuffers.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/GPBProtocolBuffers.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBProtocolBuffers_RuntimeSupport.h b/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBProtocolBuffers_RuntimeSupport.h deleted file mode 120000 index 33362308..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBProtocolBuffers_RuntimeSupport.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/GPBProtocolBuffers_RuntimeSupport.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBRootObject.h b/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBRootObject.h deleted file mode 120000 index f793ef7d..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBRootObject.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/GPBRootObject.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBRootObject_PackagePrivate.h b/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBRootObject_PackagePrivate.h deleted file mode 120000 index 6d7e5150..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBRootObject_PackagePrivate.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/GPBRootObject_PackagePrivate.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBRuntimeTypes.h b/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBRuntimeTypes.h deleted file mode 120000 index c4d0370a..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBRuntimeTypes.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/GPBRuntimeTypes.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBUnknownField.h b/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBUnknownField.h deleted file mode 120000 index e16bb76b..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBUnknownField.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/GPBUnknownField.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBUnknownFieldSet.h b/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBUnknownFieldSet.h deleted file mode 120000 index d89c5eb1..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBUnknownFieldSet.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/GPBUnknownFieldSet.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBUnknownFieldSet_PackagePrivate.h b/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBUnknownFieldSet_PackagePrivate.h deleted file mode 120000 index 3493399e..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBUnknownFieldSet_PackagePrivate.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/GPBUnknownFieldSet_PackagePrivate.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBUnknownField_PackagePrivate.h b/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBUnknownField_PackagePrivate.h deleted file mode 120000 index 1a74032c..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBUnknownField_PackagePrivate.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/GPBUnknownField_PackagePrivate.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBUtilities.h b/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBUtilities.h deleted file mode 120000 index 270b85f2..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBUtilities.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/GPBUtilities.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBUtilities_PackagePrivate.h b/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBUtilities_PackagePrivate.h deleted file mode 120000 index 507dfa53..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBUtilities_PackagePrivate.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/GPBUtilities_PackagePrivate.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBWellKnownTypes.h b/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBWellKnownTypes.h deleted file mode 120000 index 0d3f3872..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBWellKnownTypes.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/GPBWellKnownTypes.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBWireFormat.h b/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBWireFormat.h deleted file mode 120000 index d1ce7e22..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBWireFormat.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/GPBWireFormat.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/SourceContext.pbobjc.h b/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/SourceContext.pbobjc.h deleted file mode 120000 index 2df29f41..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/SourceContext.pbobjc.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/google/protobuf/SourceContext.pbobjc.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/Struct.pbobjc.h b/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/Struct.pbobjc.h deleted file mode 120000 index 6cad8000..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/Struct.pbobjc.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/google/protobuf/Struct.pbobjc.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/Timestamp.pbobjc.h b/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/Timestamp.pbobjc.h deleted file mode 120000 index 3d78ef1f..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/Timestamp.pbobjc.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/google/protobuf/Timestamp.pbobjc.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/Type.pbobjc.h b/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/Type.pbobjc.h deleted file mode 120000 index 06829fbe..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/Type.pbobjc.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/google/protobuf/Type.pbobjc.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/Wrappers.pbobjc.h b/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/Wrappers.pbobjc.h deleted file mode 120000 index df905161..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/Wrappers.pbobjc.h +++ /dev/null @@ -1 +0,0 @@ -../../../Protobuf/objectivec/google/protobuf/Wrappers.pbobjc.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/nanopb/pb.h b/StoneIsland/platforms/ios/Pods/Headers/Public/nanopb/pb.h deleted file mode 120000 index 549ba434..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/nanopb/pb.h +++ /dev/null @@ -1 +0,0 @@ -../../../nanopb/pb.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/nanopb/pb_common.h b/StoneIsland/platforms/ios/Pods/Headers/Public/nanopb/pb_common.h deleted file mode 120000 index 002c466e..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/nanopb/pb_common.h +++ /dev/null @@ -1 +0,0 @@ -../../../nanopb/pb_common.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/nanopb/pb_decode.h b/StoneIsland/platforms/ios/Pods/Headers/Public/nanopb/pb_decode.h deleted file mode 120000 index 62ed2f10..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/nanopb/pb_decode.h +++ /dev/null @@ -1 +0,0 @@ -../../../nanopb/pb_decode.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Headers/Public/nanopb/pb_encode.h b/StoneIsland/platforms/ios/Pods/Headers/Public/nanopb/pb_encode.h deleted file mode 120000 index 057760ea..00000000 --- a/StoneIsland/platforms/ios/Pods/Headers/Public/nanopb/pb_encode.h +++ /dev/null @@ -1 +0,0 @@ -../../../nanopb/pb_encode.h
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Pods/Manifest.lock b/StoneIsland/platforms/ios/Pods/Manifest.lock index 14e0fb64..0fe15b8a 100644 --- a/StoneIsland/platforms/ios/Pods/Manifest.lock +++ b/StoneIsland/platforms/ios/Pods/Manifest.lock @@ -1,43 +1,30 @@ PODS: - - FirebaseAnalytics (4.0.2): - - FirebaseCore (~> 4.0) - - FirebaseInstanceID (~> 2.0) - - GoogleToolboxForMac/NSData+zlib (~> 2.1) - - FirebaseCore (4.0.4): - - GoogleToolboxForMac/NSData+zlib (~> 2.1) - - nanopb (~> 0.3) - - FirebaseInstanceID (2.0.0): - - FirebaseCore (~> 4.0) - - FirebaseMessaging (2.0.0): - - FirebaseAnalytics (~> 4.0) - - FirebaseCore (~> 4.0) - - FirebaseInstanceID (~> 2.0) - - GoogleToolboxForMac/Logger (~> 2.1) - - Protobuf (~> 3.1) - - GoogleToolboxForMac/Defines (2.1.1) - - GoogleToolboxForMac/Logger (2.1.1): - - GoogleToolboxForMac/Defines (= 2.1.1) - - GoogleToolboxForMac/NSData+zlib (2.1.1): - - GoogleToolboxForMac/Defines (= 2.1.1) - - nanopb (0.3.8): - - nanopb/decode (= 0.3.8) - - nanopb/encode (= 0.3.8) - - nanopb/decode (0.3.8) - - nanopb/encode (0.3.8) - - Protobuf (3.3.0) + - GGLInstanceID (1.2.1) + - GoogleCloudMessaging (1.2.0): + - GoogleInterchangeUtilities (~> 1.0) + - GoogleIPhoneUtilities (~> 1.0) + - GoogleSymbolUtilities (~> 1.0) + - GoogleInterchangeUtilities (1.2.2): + - GoogleSymbolUtilities (~> 1.1) + - GoogleIPhoneUtilities (1.2.1): + - GoogleSymbolUtilities (~> 1.0) + - GoogleUtilities (~> 1.0) + - GoogleSymbolUtilities (1.1.2) + - GoogleUtilities (1.3.2): + - GoogleSymbolUtilities (~> 1.1) DEPENDENCIES: - - FirebaseMessaging (~> 2.0.0) + - GGLInstanceID (~> 1.2.1) + - GoogleCloudMessaging (~> 1.2.0) SPEC CHECKSUMS: - FirebaseAnalytics: ad41720e3e67fc63fbe3d2948d3e26932a8de311 - FirebaseCore: cfc042628ef9f20debe09c0eb683135fcd404cb4 - FirebaseInstanceID: 9fbf536668f4d3f0880e7438456dabd1376e294b - FirebaseMessaging: 227406c05b0dc9290702d2e9f18ab5528f0c2cf2 - GoogleToolboxForMac: 8e329f1b599f2512c6b10676d45736bcc2cbbeb0 - nanopb: 5601e6bca2dbf1ed831b519092ec110f66982ca3 - Protobuf: d582fecf68201eac3d79ed61369ef45734394b9c + GGLInstanceID: 4a317044f744281b82cd03015f379899f277cad3 + GoogleCloudMessaging: f37ea14dd0f41d4d889c10b5559dd35bbfd9ac26 + GoogleInterchangeUtilities: d5bc4d88d5b661ab72f9d70c58d02ca8c27ad1f7 + GoogleIPhoneUtilities: 63f25e93a3ddcb66884d182aab3a660d98f1479b + GoogleSymbolUtilities: 631ee17048aa5e9ab133470d768ea997a5ef9b96 + GoogleUtilities: 8bbc733218aad26306f9d4a253823986110e3358 -PODFILE CHECKSUM: d30afd90d783c9b82bb259ff1fc6f66e54101279 +PODFILE CHECKSUM: 49a15453d072b09c3f930a9bd96e706663ee516a COCOAPODS: 1.2.0 diff --git a/StoneIsland/platforms/ios/Pods/Pods.xcodeproj/project.pbxproj b/StoneIsland/platforms/ios/Pods/Pods.xcodeproj/project.pbxproj index 6e463276..c9b4f412 100644 --- a/StoneIsland/platforms/ios/Pods/Pods.xcodeproj/project.pbxproj +++ b/StoneIsland/platforms/ios/Pods/Pods.xcodeproj/project.pbxproj @@ -7,380 +7,100 @@ objects = { /* Begin PBXBuildFile section */ - 03B6A752DA89454D582F255E70B04C62 /* Pods-Stone Island-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = F1E17C0998C78916667291BC7B0048B0 /* Pods-Stone Island-dummy.m */; }; - 0584FFBCFF5916779F2047A5EF1EAB24 /* Api.pbobjc.h in Headers */ = {isa = PBXBuildFile; fileRef = 12A858169F9A81AF89F6583B8E966025 /* Api.pbobjc.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0AED6A8FBEF7F5C59C7082B8E7716BE2 /* pb_decode.h in Headers */ = {isa = PBXBuildFile; fileRef = 2F32BA3D0167408D03707E0C4EDBA4A6 /* pb_decode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0EC3C5F27472BC4701C86F26C2D12B3A /* Timestamp.pbobjc.m in Sources */ = {isa = PBXBuildFile; fileRef = EB57A28C36332095328E9BCE71ECC618 /* Timestamp.pbobjc.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 0FCDA635D239A61F2BF25331980961AA /* Api.pbobjc.m in Sources */ = {isa = PBXBuildFile; fileRef = 9C39A2A98031E5843DD0CC795958C690 /* Api.pbobjc.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 10BCC6DA098614A3F7230CFB31F1B84E /* GPBWireFormat.h in Headers */ = {isa = PBXBuildFile; fileRef = 524B0176A9FCF760DD5807E536CD4F89 /* GPBWireFormat.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 11A2E6703999D52A9C0B35B0DFA09BC4 /* GPBExtensionRegistry.m in Sources */ = {isa = PBXBuildFile; fileRef = 6FE2C2FC17101A63229827673FE63277 /* GPBExtensionRegistry.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 140D35C2173D500F1EBB729A9A1FE6CE /* Wrappers.pbobjc.h in Headers */ = {isa = PBXBuildFile; fileRef = FE50E6A13848DC8387C0F2467E5BC858 /* Wrappers.pbobjc.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 14A62D5A8CBFE597C99EE33EE9D04442 /* GPBCodedOutputStream_PackagePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = CBAC1AE6755D17C79F857D660B23B118 /* GPBCodedOutputStream_PackagePrivate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 154E5AB0C541CED05D795C6198947D27 /* GTMLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F42493FCDAB7940BB6EEBACF55FD92 /* GTMLogger.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 16B537D2EDFB4829ED6E6F282A14BC45 /* Empty.pbobjc.h in Headers */ = {isa = PBXBuildFile; fileRef = 346156D12F225C5435732E3752CE2FE8 /* Empty.pbobjc.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 18F7C87FB79D3D4C76F22B3F26E5F7F6 /* GPBWireFormat.m in Sources */ = {isa = PBXBuildFile; fileRef = 870C6D914891D286B54687025379F80A /* GPBWireFormat.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 1E46EC8AB8830A23FAC91E8547748BF5 /* pb_common.h in Headers */ = {isa = PBXBuildFile; fileRef = 6CCDD9C7666644E2535222D173D76CC1 /* pb_common.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 20B06CE03E8EF2A681F68D2814B1F5C5 /* GPBDescriptor.h in Headers */ = {isa = PBXBuildFile; fileRef = C6CC9FDA24E3A6607E12BFFEE4275B45 /* GPBDescriptor.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 244087B863272C303C26961C6FADCF8E /* GPBCodedInputStream.h in Headers */ = {isa = PBXBuildFile; fileRef = 40D25B6E40FCFF039CD02F31F19588B8 /* GPBCodedInputStream.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 289F36556DAF50888B448ED430E94DCB /* Wrappers.pbobjc.m in Sources */ = {isa = PBXBuildFile; fileRef = 35A06A6FAC89255798D0D4BD7AE185C5 /* Wrappers.pbobjc.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 28B7761E1D77D96D267539A7B67188EA /* nanopb-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 103D9CA08917A78B44AC60345EE69379 /* nanopb-dummy.m */; }; - 2C115525DD3B1AE2248DB3343275EB57 /* GPBUnknownFieldSet_PackagePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = F6DA253821905085377C5B375CF7B4C3 /* GPBUnknownFieldSet_PackagePrivate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2D3370592B46135A72AE93EA362734F0 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CBB3DE36805AF21409EC968A9691732F /* Foundation.framework */; }; - 2DB8B5969876803C5485FD9681C3C70D /* GPBExtensionRegistry.h in Headers */ = {isa = PBXBuildFile; fileRef = 094F1883B9081EA6E8925E8BB383CAE2 /* GPBExtensionRegistry.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2ED4641D7F49A1AC2F41EB6F818B8B0D /* GPBCodedOutputStream.h in Headers */ = {isa = PBXBuildFile; fileRef = 58A83A189DC1BFBFAC7F399BB9751F14 /* GPBCodedOutputStream.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 33A0F7D3ED05ACED0A1CA656D24F8ED6 /* Struct.pbobjc.h in Headers */ = {isa = PBXBuildFile; fileRef = D6A504923A8D53592A63719F6FF69A7C /* Struct.pbobjc.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 372B121548A8AAC9019B34D499ECAEAA /* GPBUnknownField.h in Headers */ = {isa = PBXBuildFile; fileRef = 8E9DF1F8DEF9920EC67FFDBBACE310D6 /* GPBUnknownField.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 377B6859DA9B7A6E0B4307A5CB055359 /* GPBRuntimeTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 545A0FB5DF2C8FFCCF42EB58D5A81ED0 /* GPBRuntimeTypes.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 37CCDC46A3514834D113ECA797AB741C /* GPBUnknownFieldSet.m in Sources */ = {isa = PBXBuildFile; fileRef = 99E63D80EC2BCAC4383FAB765DA50EC0 /* GPBUnknownFieldSet.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 3AFB8BB811B8E80909FAB57769F472CD /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CBB3DE36805AF21409EC968A9691732F /* Foundation.framework */; }; - 413FF88B6D643A075644A4E4B728DDD1 /* GPBUtilities_PackagePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 68E8F056DD0B8CDDCDF684A3A375FCC2 /* GPBUtilities_PackagePrivate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4854DD8506654D68FCA7C685CDD711E2 /* GPBArray_PackagePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 4AE7E7D7FC01B98294A0293EF649BD95 /* GPBArray_PackagePrivate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4C8C03EFB7437DB1155064DDA3D0A1BE /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CBB3DE36805AF21409EC968A9691732F /* Foundation.framework */; }; - 50047A0A3C3C1251088478639ABA6D08 /* GPBArray.h in Headers */ = {isa = PBXBuildFile; fileRef = 6500BB56ED633DA52D3173D059F8378D /* GPBArray.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 52CB9B7B9367A311AA9D43E257D931D0 /* GPBWellKnownTypes.m in Sources */ = {isa = PBXBuildFile; fileRef = 7CD04E4A14DCEB9584A09B6CCAF0CCD4 /* GPBWellKnownTypes.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 54FCE05202C4E9317D168C4AC22A4C9E /* GPBDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = D708F677F238A988C8234E48AC22776D /* GPBDictionary.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 57FE72AC5AB55F80302D3501AB388285 /* SourceContext.pbobjc.m in Sources */ = {isa = PBXBuildFile; fileRef = 10F4575D8B6A691A550472225DDF3F0F /* SourceContext.pbobjc.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 5B8F036F7FAAF35FE98CE3FBFF25D72F /* GoogleToolboxForMac-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F905482AB614EB3193EC09019806C5D /* GoogleToolboxForMac-dummy.m */; }; - 5F5E7A69933E6F421C0A81AE2604BA41 /* Protobuf-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = F4217831202D96492E9AA5A8C1317D16 /* Protobuf-dummy.m */; }; - 686F67C01593C8E0FB610386AF5F287F /* FieldMask.pbobjc.h in Headers */ = {isa = PBXBuildFile; fileRef = 828B35BEFD155F90F6A506A514E9373D /* FieldMask.pbobjc.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6A5451E67CBAAED4E81995B58427A175 /* GTMNSData+zlib.h in Headers */ = {isa = PBXBuildFile; fileRef = 83147647FF520FEBC086F33609ECA938 /* GTMNSData+zlib.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 72575C2EA8AD3A029CE735EE8D8AB047 /* Any.pbobjc.m in Sources */ = {isa = PBXBuildFile; fileRef = 6B1DD76026CC0D86BA2FD2A023EBF3B1 /* Any.pbobjc.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 746EF9D0CF4064E64AC4F7930038847B /* GPBUnknownField_PackagePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = F1A5E09DC081BEC3AF27803E648E1367 /* GPBUnknownField_PackagePrivate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 75FEFB9B46377E86FE65BA73BF73B24F /* GPBUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F444CCFE63D2832F35B8837ED408165 /* GPBUtilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 808E97D147D8800078607BE7BB1E2C36 /* GPBRootObject_PackagePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 85161CE483D0D52918F3658155149F93 /* GPBRootObject_PackagePrivate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8B96B260B4F3219DABFCA63F4BB80804 /* GPBProtocolBuffers_RuntimeSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = BB19157342ADAC984C6ED234681CE8F7 /* GPBProtocolBuffers_RuntimeSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8D795F39665BBEC7B3DEE9369F95BD74 /* Struct.pbobjc.m in Sources */ = {isa = PBXBuildFile; fileRef = B77AE850AC471E6D53586C630AE90ACF /* Struct.pbobjc.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 8EEDB7063191F5682723BF26BA959583 /* GPBUnknownField.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EB5760CCB2AC6808AD433F462BA5B40 /* GPBUnknownField.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 90906AC58824566DFC6875E1ED25E855 /* GTMDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 8485EE3EE516E1C76E274ED63FD32675 /* GTMDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 91C9C419C2E304B3A68293C22053034E /* pb_encode.c in Sources */ = {isa = PBXBuildFile; fileRef = FBA0788F3CA6A1FC7E1E87517F07ADD1 /* pb_encode.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc -fno-objc-arc"; }; }; - 91CDFE6BDFEBE1BF7C5A9856C9307C62 /* GPBArray.m in Sources */ = {isa = PBXBuildFile; fileRef = 2C72AF407EBF46522014F5E384F2DF2B /* GPBArray.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 96516A19D37AACA7FF1AFDC8D5649280 /* GPBCodedInputStream_PackagePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 493A2403E3A377D0C8D3B18E72BD9948 /* GPBCodedInputStream_PackagePrivate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9CBD14C17446EC9384CFAADBADF12387 /* pb_common.c in Sources */ = {isa = PBXBuildFile; fileRef = FB7C030E89839D647194E5CA2D2DF745 /* pb_common.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc -fno-objc-arc -fno-objc-arc"; }; }; - 9E66200018B0A847A39C7527CEFBF5DD /* GPBBootstrap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A608890EC1AF8EC42A14397D3A5894B /* GPBBootstrap.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A39A7F90321353E49D6165BAD53505B2 /* pb.h in Headers */ = {isa = PBXBuildFile; fileRef = C5F5070398EA6EBF049CB8770A127136 /* pb.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A60CBF107DBE787C7774E7BD867185F7 /* GPBDictionary_PackagePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C8C2723080839DDB0C24FEDD0D73096 /* GPBDictionary_PackagePrivate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A618EDE73A86F425B1FEE0D01804AB0C /* GPBExtensionInternals.h in Headers */ = {isa = PBXBuildFile; fileRef = 15595CD747174AB281B75E0EC911F6E2 /* GPBExtensionInternals.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AE55AE2010B2139E1FAAF5C5128FD45F /* GPBUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 14DB8CD0793D1700939269B1162FC634 /* GPBUtilities.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - AFB2E0E2919C60F1589C86A455CDDAB3 /* GPBMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 9251C49A032CCBDAE109D0A0CD2DD92E /* GPBMessage.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - B1A450E8C279AA9360E77D4C632B1EA6 /* GPBRootObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 4950A34F093D61FB39CE30CCADE17BBE /* GPBRootObject.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - B1FCD6CEDAE7DEBC44B3EAA860C16EE0 /* GPBRootObject.h in Headers */ = {isa = PBXBuildFile; fileRef = E1DD1E636FBF87375DD28325F85E9F9B /* GPBRootObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B3755C71DCBFEBE07682F17CCE804B67 /* GPBWellKnownTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = A5428F00BC2E563C54345DD10FBC64B9 /* GPBWellKnownTypes.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B9704C2C3AF30ACA0C84033AD94B94B0 /* Type.pbobjc.h in Headers */ = {isa = PBXBuildFile; fileRef = 4A49C9D5CD03434E366BE7C82C206817 /* Type.pbobjc.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BC7DBE6C979297C50EC3BF1C96D4BCE4 /* GPBExtensionInternals.m in Sources */ = {isa = PBXBuildFile; fileRef = 3E49413C1602C72986E35FE55B15AA9D /* GPBExtensionInternals.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - C136220535719959455CDC0434D195CE /* GPBDescriptor.m in Sources */ = {isa = PBXBuildFile; fileRef = 3BF4A1DADA8860F20B2307BA21E0DDA7 /* GPBDescriptor.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - C373172ABCAFBA7A771B3A4C4574C243 /* Any.pbobjc.h in Headers */ = {isa = PBXBuildFile; fileRef = E84A0F52367C4369A4CD78E715FD3316 /* Any.pbobjc.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C9DE4DA0ED245C1A662AE79B579C933A /* GPBDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = ABDBCAF813D5B069AD91028508742BC2 /* GPBDictionary.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CA8F5217BB2A36ABC7B23E25679A5CA3 /* Duration.pbobjc.m in Sources */ = {isa = PBXBuildFile; fileRef = 6F2E775643AFE2BFF0D572961BBC381E /* Duration.pbobjc.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - CE793643063B71F80F32F0851FDABFA5 /* GTMLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E6187654126ABEF16075E772E203E1D /* GTMLogger.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - D02A9BE496DF996BBC92776E586BCAF8 /* pb_encode.h in Headers */ = {isa = PBXBuildFile; fileRef = A5E70F2734E0CCB2FEA59727473D14D4 /* pb_encode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0B466935B33E0E2D65E9691B56F4B8E /* Type.pbobjc.m in Sources */ = {isa = PBXBuildFile; fileRef = 265B5F2D8D23C8DAE5A2EC4C45482BB2 /* Type.pbobjc.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - D1ABB2FA52FC2506830E729D60E9CA16 /* GPBDescriptor_PackagePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 4240053415DBD5B52DBD9497BD0984FD /* GPBDescriptor_PackagePrivate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D91B805B5CF397B10F04B5E66924320B /* GPBMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = 9315DD9048DB523B31C2B0B63880F185 /* GPBMessage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - ED78AFA3F46A54217E68746892698704 /* GPBMessage_PackagePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = D7846CA9DBB7357D0A5145648AA01620 /* GPBMessage_PackagePrivate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EE2C33AB2D11A3E9CCDF7661AE9E147A /* FieldMask.pbobjc.m in Sources */ = {isa = PBXBuildFile; fileRef = 9E7C6CABB305C6F18E115008557D510A /* FieldMask.pbobjc.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - F1B1695A6AB8AFEC306AB371F2DCA21F /* GTMNSData+zlib.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CD49F4DAD4E018B49D62F07A50020C3 /* GTMNSData+zlib.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - F2A7C7D18755231B289C10D16DD6F730 /* pb_decode.c in Sources */ = {isa = PBXBuildFile; fileRef = C1669FD3E74618D9183A1227FBBF4050 /* pb_decode.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc -fno-objc-arc"; }; }; - F6A5A6C8DCC5BB2790E4915146084C0B /* Empty.pbobjc.m in Sources */ = {isa = PBXBuildFile; fileRef = 72A904D3D8B863EED50A4A1E3FFADC0D /* Empty.pbobjc.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - F7EB206E2986650BF0D3D39866C08903 /* GPBCodedOutputStream.m in Sources */ = {isa = PBXBuildFile; fileRef = 3504481E0B537B019882F670155CDDA2 /* GPBCodedOutputStream.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - F889E78E4F5DA9B2031418FFB4798AFC /* GPBCodedInputStream.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D645CF003B6E3608A32FF8B3EC5D589 /* GPBCodedInputStream.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - F8C907FF0573A7F7EF41888CBBCCD5B4 /* GPBUnknownFieldSet.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D11E9C49AAF09E786C50401B18C3DC4 /* GPBUnknownFieldSet.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F903364920B941263AEA9F7079387F62 /* SourceContext.pbobjc.h in Headers */ = {isa = PBXBuildFile; fileRef = A4F87C21CB7A6B68E245AB8373CE92F3 /* SourceContext.pbobjc.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FBE5C6517E1C7FE5912B884A5C716FBC /* GPBProtocolBuffers.h in Headers */ = {isa = PBXBuildFile; fileRef = 22BA7C1126445EE94A49FE02FE9FFD6B /* GPBProtocolBuffers.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FD6A629D6E2614065D82CC8BD9C584C3 /* Timestamp.pbobjc.h in Headers */ = {isa = PBXBuildFile; fileRef = 7180FC87E2294112BACEA059A5831595 /* Timestamp.pbobjc.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FDD22EFD14E29D4143AF26A6E1A3A872 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CBB3DE36805AF21409EC968A9691732F /* Foundation.framework */; }; - FEE69989A5738A7A23C1FEBC9E22B0A5 /* Duration.pbobjc.h in Headers */ = {isa = PBXBuildFile; fileRef = 115E69164EF7A408741D07C2086D2C25 /* Duration.pbobjc.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8B931F94A15CEC623D339DA3C38BE3A3 /* Pods-Stone Island-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = F1E17C0998C78916667291BC7B0048B0 /* Pods-Stone Island-dummy.m */; }; + A236CF7DD81B48ADA6EC58CCD7C8704E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CBB3DE36805AF21409EC968A9691732F /* Foundation.framework */; }; /* End PBXBuildFile section */ -/* Begin PBXContainerItemProxy section */ - A8DBFC6FA5890F08515B21D17DB251F6 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = 83E4B77BD7F292F23A4617388E39F15E; - remoteInfo = Protobuf; - }; - BFB2041DEF820E18BEFA8BB9AED65421 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = FA9D13261AF395CF5D54BB3203DF2A6E; - remoteInfo = GoogleToolboxForMac; - }; - F8B4BDF44EA49346EA28F8B9F75D8935 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = CF4B35B9FC819386EB09219BC91827D7; - remoteInfo = nanopb; - }; -/* End PBXContainerItemProxy section */ - /* Begin PBXFileReference section */ - 094F1883B9081EA6E8925E8BB383CAE2 /* GPBExtensionRegistry.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBExtensionRegistry.h; path = objectivec/GPBExtensionRegistry.h; sourceTree = "<group>"; }; 0C86D2D78080EDCEE85A13AA1692ACD6 /* Pods-Stone Island.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Stone Island.release.xcconfig"; sourceTree = "<group>"; }; - 0F444CCFE63D2832F35B8837ED408165 /* GPBUtilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBUtilities.h; path = objectivec/GPBUtilities.h; sourceTree = "<group>"; }; - 103D9CA08917A78B44AC60345EE69379 /* nanopb-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "nanopb-dummy.m"; sourceTree = "<group>"; }; 10B3D03939EC1F098DF4D390572E7A70 /* Pods-Stone Island-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-Stone Island-acknowledgements.markdown"; sourceTree = "<group>"; }; - 10F4575D8B6A691A550472225DDF3F0F /* SourceContext.pbobjc.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SourceContext.pbobjc.m; path = objectivec/google/protobuf/SourceContext.pbobjc.m; sourceTree = "<group>"; }; - 115E69164EF7A408741D07C2086D2C25 /* Duration.pbobjc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Duration.pbobjc.h; path = objectivec/google/protobuf/Duration.pbobjc.h; sourceTree = "<group>"; }; - 12A858169F9A81AF89F6583B8E966025 /* Api.pbobjc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Api.pbobjc.h; path = objectivec/google/protobuf/Api.pbobjc.h; sourceTree = "<group>"; }; - 14DB8CD0793D1700939269B1162FC634 /* GPBUtilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBUtilities.m; path = objectivec/GPBUtilities.m; sourceTree = "<group>"; }; - 15595CD747174AB281B75E0EC911F6E2 /* GPBExtensionInternals.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBExtensionInternals.h; path = objectivec/GPBExtensionInternals.h; sourceTree = "<group>"; }; - 192AB16212B37CEBDD9BD2D13A435C4A /* FirebaseNanoPB.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = FirebaseNanoPB.framework; path = Frameworks/FirebaseNanoPB.framework; sourceTree = "<group>"; }; - 1F905482AB614EB3193EC09019806C5D /* GoogleToolboxForMac-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "GoogleToolboxForMac-dummy.m"; sourceTree = "<group>"; }; - 22BA7C1126445EE94A49FE02FE9FFD6B /* GPBProtocolBuffers.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBProtocolBuffers.h; path = objectivec/GPBProtocolBuffers.h; sourceTree = "<group>"; }; + 173B36DA9A5ED406088A50C1589B0B4E /* GGLInstanceID.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GGLInstanceID.h; path = Headers/Public/GGLInstanceID.h; sourceTree = "<group>"; }; 2313F1DCFFF1A82931A5DF3F158D5DA3 /* Pods-Stone Island.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Stone Island.debug.xcconfig"; sourceTree = "<group>"; }; - 265B5F2D8D23C8DAE5A2EC4C45482BB2 /* Type.pbobjc.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = Type.pbobjc.m; path = objectivec/google/protobuf/Type.pbobjc.m; sourceTree = "<group>"; }; - 2C72AF407EBF46522014F5E384F2DF2B /* GPBArray.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBArray.m; path = objectivec/GPBArray.m; sourceTree = "<group>"; }; - 2F32BA3D0167408D03707E0C4EDBA4A6 /* pb_decode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = pb_decode.h; sourceTree = "<group>"; }; - 346156D12F225C5435732E3752CE2FE8 /* Empty.pbobjc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Empty.pbobjc.h; path = objectivec/google/protobuf/Empty.pbobjc.h; sourceTree = "<group>"; }; - 3504481E0B537B019882F670155CDDA2 /* GPBCodedOutputStream.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBCodedOutputStream.m; path = objectivec/GPBCodedOutputStream.m; sourceTree = "<group>"; }; - 35A06A6FAC89255798D0D4BD7AE185C5 /* Wrappers.pbobjc.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = Wrappers.pbobjc.m; path = objectivec/google/protobuf/Wrappers.pbobjc.m; sourceTree = "<group>"; }; - 3BF4A1DADA8860F20B2307BA21E0DDA7 /* GPBDescriptor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBDescriptor.m; path = objectivec/GPBDescriptor.m; sourceTree = "<group>"; }; - 3E49413C1602C72986E35FE55B15AA9D /* GPBExtensionInternals.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBExtensionInternals.m; path = objectivec/GPBExtensionInternals.m; sourceTree = "<group>"; }; - 40D25B6E40FCFF039CD02F31F19588B8 /* GPBCodedInputStream.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBCodedInputStream.h; path = objectivec/GPBCodedInputStream.h; sourceTree = "<group>"; }; - 4240053415DBD5B52DBD9497BD0984FD /* GPBDescriptor_PackagePrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBDescriptor_PackagePrivate.h; path = objectivec/GPBDescriptor_PackagePrivate.h; sourceTree = "<group>"; }; - 43351FEC3BCA8AB1743C40C96030E1C6 /* FirebaseMessaging.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = FirebaseMessaging.framework; path = Frameworks/FirebaseMessaging.framework; sourceTree = "<group>"; }; - 45DE04F35C065C20F9213E57D5F936D5 /* GoogleToolboxForMac.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = GoogleToolboxForMac.xcconfig; sourceTree = "<group>"; }; - 493A2403E3A377D0C8D3B18E72BD9948 /* GPBCodedInputStream_PackagePrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBCodedInputStream_PackagePrivate.h; path = objectivec/GPBCodedInputStream_PackagePrivate.h; sourceTree = "<group>"; }; - 4950A34F093D61FB39CE30CCADE17BBE /* GPBRootObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBRootObject.m; path = objectivec/GPBRootObject.m; sourceTree = "<group>"; }; - 4A49C9D5CD03434E366BE7C82C206817 /* Type.pbobjc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Type.pbobjc.h; path = objectivec/google/protobuf/Type.pbobjc.h; sourceTree = "<group>"; }; - 4AE7E7D7FC01B98294A0293EF649BD95 /* GPBArray_PackagePrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBArray_PackagePrivate.h; path = objectivec/GPBArray_PackagePrivate.h; sourceTree = "<group>"; }; - 4C8C2723080839DDB0C24FEDD0D73096 /* GPBDictionary_PackagePrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBDictionary_PackagePrivate.h; path = objectivec/GPBDictionary_PackagePrivate.h; sourceTree = "<group>"; }; - 4E6187654126ABEF16075E772E203E1D /* GTMLogger.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GTMLogger.m; path = Foundation/GTMLogger.m; sourceTree = "<group>"; }; - 4EC1DF8B3DD81B34C5AB861B8C76C717 /* libProtobuf.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = libProtobuf.a; path = libProtobuf.a; sourceTree = BUILT_PRODUCTS_DIR; }; - 50B4982BCC4F07991409560B718F590C /* FirebaseCoreDiagnostics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = FirebaseCoreDiagnostics.framework; path = Frameworks/FirebaseCoreDiagnostics.framework; sourceTree = "<group>"; }; - 524B0176A9FCF760DD5807E536CD4F89 /* GPBWireFormat.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBWireFormat.h; path = objectivec/GPBWireFormat.h; sourceTree = "<group>"; }; - 545A0FB5DF2C8FFCCF42EB58D5A81ED0 /* GPBRuntimeTypes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBRuntimeTypes.h; path = objectivec/GPBRuntimeTypes.h; sourceTree = "<group>"; }; + 36F75FFC47B4DBEB5982F58544A7B2FC /* GoogleInterchangeUtilities.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GoogleInterchangeUtilities.framework; path = Frameworks/frameworks/GoogleInterchangeUtilities.framework; sourceTree = "<group>"; }; + 474CBC9EAF59DE318EE6611AAE5D0291 /* GoogleIPhoneUtilities.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GoogleIPhoneUtilities.framework; path = Frameworks/GoogleIPhoneUtilities.framework; sourceTree = "<group>"; }; + 4A59C4528E6B71DFA7011DF095E0C8B8 /* GCMReceiverDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCMReceiverDelegate.h; path = Headers/Public/GCMReceiverDelegate.h; sourceTree = "<group>"; }; 5890B2B91852CF430B0772AD7C3B4C2B /* Pods-Stone Island-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-Stone Island-frameworks.sh"; sourceTree = "<group>"; }; - 58A83A189DC1BFBFAC7F399BB9751F14 /* GPBCodedOutputStream.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBCodedOutputStream.h; path = objectivec/GPBCodedOutputStream.h; sourceTree = "<group>"; }; - 5B9EF4385DB7EA2E2DEE11B2B6DFE1A0 /* GoogleToolboxForMac-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "GoogleToolboxForMac-prefix.pch"; sourceTree = "<group>"; }; - 5D11E9C49AAF09E786C50401B18C3DC4 /* GPBUnknownFieldSet.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBUnknownFieldSet.h; path = objectivec/GPBUnknownFieldSet.h; sourceTree = "<group>"; }; - 6500BB56ED633DA52D3173D059F8378D /* GPBArray.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBArray.h; path = objectivec/GPBArray.h; sourceTree = "<group>"; }; - 686BB4055630DC19822F9F3B407B37C3 /* libnanopb.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = libnanopb.a; path = libnanopb.a; sourceTree = BUILT_PRODUCTS_DIR; }; - 68E8F056DD0B8CDDCDF684A3A375FCC2 /* GPBUtilities_PackagePrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBUtilities_PackagePrivate.h; path = objectivec/GPBUtilities_PackagePrivate.h; sourceTree = "<group>"; }; - 6B1DD76026CC0D86BA2FD2A023EBF3B1 /* Any.pbobjc.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = Any.pbobjc.m; path = objectivec/google/protobuf/Any.pbobjc.m; sourceTree = "<group>"; }; - 6CCDD9C7666644E2535222D173D76CC1 /* pb_common.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = pb_common.h; sourceTree = "<group>"; }; - 6F2E775643AFE2BFF0D572961BBC381E /* Duration.pbobjc.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = Duration.pbobjc.m; path = objectivec/google/protobuf/Duration.pbobjc.m; sourceTree = "<group>"; }; - 6FE2C2FC17101A63229827673FE63277 /* GPBExtensionRegistry.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBExtensionRegistry.m; path = objectivec/GPBExtensionRegistry.m; sourceTree = "<group>"; }; - 7180FC87E2294112BACEA059A5831595 /* Timestamp.pbobjc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Timestamp.pbobjc.h; path = objectivec/google/protobuf/Timestamp.pbobjc.h; sourceTree = "<group>"; }; - 72A904D3D8B863EED50A4A1E3FFADC0D /* Empty.pbobjc.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = Empty.pbobjc.m; path = objectivec/google/protobuf/Empty.pbobjc.m; sourceTree = "<group>"; }; - 7CD04E4A14DCEB9584A09B6CCAF0CCD4 /* GPBWellKnownTypes.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBWellKnownTypes.m; path = objectivec/GPBWellKnownTypes.m; sourceTree = "<group>"; }; - 7D645CF003B6E3608A32FF8B3EC5D589 /* GPBCodedInputStream.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBCodedInputStream.m; path = objectivec/GPBCodedInputStream.m; sourceTree = "<group>"; }; - 828B35BEFD155F90F6A506A514E9373D /* FieldMask.pbobjc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FieldMask.pbobjc.h; path = objectivec/google/protobuf/FieldMask.pbobjc.h; sourceTree = "<group>"; }; - 83147647FF520FEBC086F33609ECA938 /* GTMNSData+zlib.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "GTMNSData+zlib.h"; path = "Foundation/GTMNSData+zlib.h"; sourceTree = "<group>"; }; - 83FF0A5AF2500AE469AE6047A4A795DD /* FirebaseInstanceID.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = FirebaseInstanceID.framework; path = Frameworks/FirebaseInstanceID.framework; sourceTree = "<group>"; }; - 8485EE3EE516E1C76E274ED63FD32675 /* GTMDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = GTMDefines.h; sourceTree = "<group>"; }; - 85161CE483D0D52918F3658155149F93 /* GPBRootObject_PackagePrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBRootObject_PackagePrivate.h; path = objectivec/GPBRootObject_PackagePrivate.h; sourceTree = "<group>"; }; - 870C6D914891D286B54687025379F80A /* GPBWireFormat.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBWireFormat.m; path = objectivec/GPBWireFormat.m; sourceTree = "<group>"; }; - 8A608890EC1AF8EC42A14397D3A5894B /* GPBBootstrap.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBBootstrap.h; path = objectivec/GPBBootstrap.h; sourceTree = "<group>"; }; - 8CD49F4DAD4E018B49D62F07A50020C3 /* GTMNSData+zlib.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "GTMNSData+zlib.m"; path = "Foundation/GTMNSData+zlib.m"; sourceTree = "<group>"; }; - 8E9DF1F8DEF9920EC67FFDBBACE310D6 /* GPBUnknownField.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBUnknownField.h; path = objectivec/GPBUnknownField.h; sourceTree = "<group>"; }; - 8EB5760CCB2AC6808AD433F462BA5B40 /* GPBUnknownField.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBUnknownField.m; path = objectivec/GPBUnknownField.m; sourceTree = "<group>"; }; - 9251C49A032CCBDAE109D0A0CD2DD92E /* GPBMessage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBMessage.m; path = objectivec/GPBMessage.m; sourceTree = "<group>"; }; - 9315DD9048DB523B31C2B0B63880F185 /* GPBMessage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBMessage.h; path = objectivec/GPBMessage.h; sourceTree = "<group>"; }; + 6A055A93C3564E5CDA417C640324E176 /* GoogleUtilities.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GoogleUtilities.framework; path = Frameworks/frameworks/GoogleUtilities.framework; sourceTree = "<group>"; }; + 6A52371D28A634057B785F5B581084AF /* GoogleSymbolUtilities.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GoogleSymbolUtilities.framework; path = Frameworks/frameworks/GoogleSymbolUtilities.framework; sourceTree = "<group>"; }; + 8127A92CEFC4B6BC0D037BBDADA1B051 /* GGLInstanceIDConfig.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GGLInstanceIDConfig.h; path = Headers/Public/GGLInstanceIDConfig.h; sourceTree = "<group>"; }; 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - 9837A32494666A348405234344442538 /* nanopb.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = nanopb.xcconfig; sourceTree = "<group>"; }; - 98A18E81D2E0C6AF12C4E040F92CEEE7 /* nanopb-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "nanopb-prefix.pch"; sourceTree = "<group>"; }; - 99E63D80EC2BCAC4383FAB765DA50EC0 /* GPBUnknownFieldSet.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBUnknownFieldSet.m; path = objectivec/GPBUnknownFieldSet.m; sourceTree = "<group>"; }; - 9C39A2A98031E5843DD0CC795958C690 /* Api.pbobjc.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = Api.pbobjc.m; path = objectivec/google/protobuf/Api.pbobjc.m; sourceTree = "<group>"; }; - 9E7C6CABB305C6F18E115008557D510A /* FieldMask.pbobjc.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FieldMask.pbobjc.m; path = objectivec/google/protobuf/FieldMask.pbobjc.m; sourceTree = "<group>"; }; A110B0A704D9AE1951A8F07D446042C1 /* Pods-Stone Island-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-Stone Island-resources.sh"; sourceTree = "<group>"; }; - A4F87C21CB7A6B68E245AB8373CE92F3 /* SourceContext.pbobjc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SourceContext.pbobjc.h; path = objectivec/google/protobuf/SourceContext.pbobjc.h; sourceTree = "<group>"; }; - A5428F00BC2E563C54345DD10FBC64B9 /* GPBWellKnownTypes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBWellKnownTypes.h; path = objectivec/GPBWellKnownTypes.h; sourceTree = "<group>"; }; - A5E70F2734E0CCB2FEA59727473D14D4 /* pb_encode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = pb_encode.h; sourceTree = "<group>"; }; - A9F42493FCDAB7940BB6EEBACF55FD92 /* GTMLogger.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GTMLogger.h; path = Foundation/GTMLogger.h; sourceTree = "<group>"; }; - ABDBCAF813D5B069AD91028508742BC2 /* GPBDictionary.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBDictionary.h; path = objectivec/GPBDictionary.h; sourceTree = "<group>"; }; - AD8B585B5662EF1E7DFC64FFF59A1A6F /* libPods-Stone Island.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libPods-Stone Island.a"; path = "libPods-Stone Island.a"; sourceTree = BUILT_PRODUCTS_DIR; }; B47CA48C3A76744553D639170A059DED /* Pods-Stone Island-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-Stone Island-acknowledgements.plist"; sourceTree = "<group>"; }; - B77AE850AC471E6D53586C630AE90ACF /* Struct.pbobjc.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = Struct.pbobjc.m; path = objectivec/google/protobuf/Struct.pbobjc.m; sourceTree = "<group>"; }; - BA922E76DF7B2D530FCDC0089D2C20A5 /* libGoogleToolboxForMac.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = libGoogleToolboxForMac.a; path = libGoogleToolboxForMac.a; sourceTree = BUILT_PRODUCTS_DIR; }; - BB19157342ADAC984C6ED234681CE8F7 /* GPBProtocolBuffers_RuntimeSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBProtocolBuffers_RuntimeSupport.h; path = objectivec/GPBProtocolBuffers_RuntimeSupport.h; sourceTree = "<group>"; }; - C1669FD3E74618D9183A1227FBBF4050 /* pb_decode.c */ = {isa = PBXFileReference; includeInIndex = 1; path = pb_decode.c; sourceTree = "<group>"; }; - C5F5070398EA6EBF049CB8770A127136 /* pb.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = pb.h; sourceTree = "<group>"; }; - C6CC9FDA24E3A6607E12BFFEE4275B45 /* GPBDescriptor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBDescriptor.h; path = objectivec/GPBDescriptor.h; sourceTree = "<group>"; }; - CBAC1AE6755D17C79F857D660B23B118 /* GPBCodedOutputStream_PackagePrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBCodedOutputStream_PackagePrivate.h; path = objectivec/GPBCodedOutputStream_PackagePrivate.h; sourceTree = "<group>"; }; + BD469413B9D194472712F81C4C19217C /* GGLInstanceIDHeaders.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GGLInstanceIDHeaders.h; path = Headers/Public/GGLInstanceIDHeaders.h; sourceTree = "<group>"; }; + BD5E36BF0B6CBFDEC0927984332B535A /* GCMService.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCMService.h; path = Headers/Public/GCMService.h; sourceTree = "<group>"; }; CBB3DE36805AF21409EC968A9691732F /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - D6A504923A8D53592A63719F6FF69A7C /* Struct.pbobjc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Struct.pbobjc.h; path = objectivec/google/protobuf/Struct.pbobjc.h; sourceTree = "<group>"; }; - D708F677F238A988C8234E48AC22776D /* GPBDictionary.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBDictionary.m; path = objectivec/GPBDictionary.m; sourceTree = "<group>"; }; - D7846CA9DBB7357D0A5145648AA01620 /* GPBMessage_PackagePrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBMessage_PackagePrivate.h; path = objectivec/GPBMessage_PackagePrivate.h; sourceTree = "<group>"; }; - E1DD1E636FBF87375DD28325F85E9F9B /* GPBRootObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBRootObject.h; path = objectivec/GPBRootObject.h; sourceTree = "<group>"; }; - E4C8A849B8401F02161470ADD18F89E7 /* Protobuf-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Protobuf-prefix.pch"; sourceTree = "<group>"; }; - E84A0F52367C4369A4CD78E715FD3316 /* Any.pbobjc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Any.pbobjc.h; path = objectivec/google/protobuf/Any.pbobjc.h; sourceTree = "<group>"; }; - EB57A28C36332095328E9BCE71ECC618 /* Timestamp.pbobjc.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = Timestamp.pbobjc.m; path = objectivec/google/protobuf/Timestamp.pbobjc.m; sourceTree = "<group>"; }; - F1A5E09DC081BEC3AF27803E648E1367 /* GPBUnknownField_PackagePrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBUnknownField_PackagePrivate.h; path = objectivec/GPBUnknownField_PackagePrivate.h; sourceTree = "<group>"; }; + D6448B738D0F834A89872ACF4F33A1AA /* libGGLInstanceIDLib.a */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = archive.ar; name = libGGLInstanceIDLib.a; path = Libraries/libGGLInstanceIDLib.a; sourceTree = "<group>"; }; + E04BE7A3CBD84DBAA76FC51758B7CED6 /* GCMConfig.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCMConfig.h; path = Headers/Public/GCMConfig.h; sourceTree = "<group>"; }; + E7C2BA0DA51EB36ED5DB61FE0CD57F36 /* libPods-Stone Island.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libPods-Stone Island.a"; path = "libPods-Stone Island.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + EA6ECB7498639194EA9C76AA5A5335AA /* GCMPubSub.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCMPubSub.h; path = Headers/Public/GCMPubSub.h; sourceTree = "<group>"; }; + EE0A605C9B1A1EA6221D258D4E528AD7 /* GGLInstanceIDDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GGLInstanceIDDelegate.h; path = Headers/Public/GGLInstanceIDDelegate.h; sourceTree = "<group>"; }; + EEFE0B43B6BEB77AB2B72163776B3431 /* libGcmLib.a */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = archive.ar; name = libGcmLib.a; path = Libraries/libGcmLib.a; sourceTree = "<group>"; }; F1E17C0998C78916667291BC7B0048B0 /* Pods-Stone Island-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Stone Island-dummy.m"; sourceTree = "<group>"; }; - F411F93549CC18B1041B6089FD7D6328 /* FirebaseCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = FirebaseCore.framework; path = Frameworks/FirebaseCore.framework; sourceTree = "<group>"; }; - F4217831202D96492E9AA5A8C1317D16 /* Protobuf-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Protobuf-dummy.m"; sourceTree = "<group>"; }; - F6DA253821905085377C5B375CF7B4C3 /* GPBUnknownFieldSet_PackagePrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBUnknownFieldSet_PackagePrivate.h; path = objectivec/GPBUnknownFieldSet_PackagePrivate.h; sourceTree = "<group>"; }; - F89A42940C946E790697D23E21C634DA /* Protobuf.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Protobuf.xcconfig; sourceTree = "<group>"; }; - FB1E980B5EEC2800E922D5076A11EFA7 /* FirebaseAnalytics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = FirebaseAnalytics.framework; path = Frameworks/FirebaseAnalytics.framework; sourceTree = "<group>"; }; - FB7C030E89839D647194E5CA2D2DF745 /* pb_common.c */ = {isa = PBXFileReference; includeInIndex = 1; path = pb_common.c; sourceTree = "<group>"; }; - FBA0788F3CA6A1FC7E1E87517F07ADD1 /* pb_encode.c */ = {isa = PBXFileReference; includeInIndex = 1; path = pb_encode.c; sourceTree = "<group>"; }; - FE50E6A13848DC8387C0F2467E5BC858 /* Wrappers.pbobjc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Wrappers.pbobjc.h; path = objectivec/google/protobuf/Wrappers.pbobjc.h; sourceTree = "<group>"; }; + F3E864806D6F83145EA52D163BA1A423 /* GoogleCloudMessaging.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GoogleCloudMessaging.h; path = Headers/Public/GoogleCloudMessaging.h; sourceTree = "<group>"; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 3CCBF28809F96645DAD3D47200903020 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 4C8C03EFB7437DB1155064DDA3D0A1BE /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 6AD215334409363FBBC48E48118C5C62 /* Frameworks */ = { + 4393326EAD1C0D0F9AECF9FC78E6DAD8 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 2D3370592B46135A72AE93EA362734F0 /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 94EB8A8937D61E8CED1F3C819230AE4D /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 3AFB8BB811B8E80909FAB57769F472CD /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - CBCB3EDD945FADF8E20997D884FD0CBB /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - FDD22EFD14E29D4143AF26A6E1A3A872 /* Foundation.framework in Frameworks */, + A236CF7DD81B48ADA6EC58CCD7C8704E /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 004912157DF4BDCD49123543CE0FF6DD /* Defines */ = { - isa = PBXGroup; - children = ( - 8485EE3EE516E1C76E274ED63FD32675 /* GTMDefines.h */, - ); - name = Defines; - sourceTree = "<group>"; - }; - 02DF76F9E94957693ACE8ABD38E93426 /* nanopb */ = { + 121A86CC4AAF79B70266B959308D3CA7 /* Pods */ = { isa = PBXGroup; children = ( - C5F5070398EA6EBF049CB8770A127136 /* pb.h */, - FB7C030E89839D647194E5CA2D2DF745 /* pb_common.c */, - 6CCDD9C7666644E2535222D173D76CC1 /* pb_common.h */, - C1669FD3E74618D9183A1227FBBF4050 /* pb_decode.c */, - 2F32BA3D0167408D03707E0C4EDBA4A6 /* pb_decode.h */, - FBA0788F3CA6A1FC7E1E87517F07ADD1 /* pb_encode.c */, - A5E70F2734E0CCB2FEA59727473D14D4 /* pb_encode.h */, - 58DE47AAAC06564307E7255D1B5E1D62 /* decode */, - 4475247DC75238DBB0E37086D31D3363 /* encode */, - FA0ADBF3B95DD4DD510DA2EF9D9B0B9A /* Support Files */, - ); - name = nanopb; - path = nanopb; - sourceTree = "<group>"; - }; - 11914593C579DC3B903834F9370FDE0C /* Pods */ = { - isa = PBXGroup; - children = ( - 2CCC828646DB6E2832930EA338092B5C /* FirebaseAnalytics */, - D322B836323040BCA8E139D202457EBA /* FirebaseCore */, - 55ACDAF2E6E0245F2ABA46141FF54B0D /* FirebaseInstanceID */, - 5F1C6D3FD3BF644DCE67E28E83281951 /* FirebaseMessaging */, - 543B9265B46C52AA018AC9B5349C1A41 /* GoogleToolboxForMac */, - 02DF76F9E94957693ACE8ABD38E93426 /* nanopb */, - EAC896EC3C2A716D21A44F458CB64190 /* Protobuf */, + 3758E30E87F41188A58D53252E8DC67F /* GGLInstanceID */, + F52CA7A5CDCB3F8FEAEAD0AD400F9313 /* GoogleCloudMessaging */, + 5E3943FF863A867D4D99F3E17093D9D7 /* GoogleInterchangeUtilities */, + 9DCD9E1660319E9727375653D3EBBA13 /* GoogleIPhoneUtilities */, + BBD88AD6F1DF792566DB101E1D7A50AB /* GoogleSymbolUtilities */, + 736A89F858E6E6D5DDEC5BBDA2E1C51B /* GoogleUtilities */, ); name = Pods; sourceTree = "<group>"; }; - 21FD76479585CF6ADCFBF61ED1315196 /* Logger */ = { + 2FD026630DDFF013082B2945DB20B798 /* Frameworks */ = { isa = PBXGroup; children = ( - A9F42493FCDAB7940BB6EEBACF55FD92 /* GTMLogger.h */, - 4E6187654126ABEF16075E772E203E1D /* GTMLogger.m */, - ); - name = Logger; - sourceTree = "<group>"; - }; - 2201A4F92BCC4567C0DB2C680592833A /* Frameworks */ = { - isa = PBXGroup; - children = ( - 43351FEC3BCA8AB1743C40C96030E1C6 /* FirebaseMessaging.framework */, + 474CBC9EAF59DE318EE6611AAE5D0291 /* GoogleIPhoneUtilities.framework */, ); name = Frameworks; sourceTree = "<group>"; }; - 2CCC828646DB6E2832930EA338092B5C /* FirebaseAnalytics */ = { - isa = PBXGroup; - children = ( - AC4F8E9E10982FDB105BC8855C8D52CD /* Frameworks */, - ); - name = FirebaseAnalytics; - path = FirebaseAnalytics; - sourceTree = "<group>"; - }; - 4475247DC75238DBB0E37086D31D3363 /* encode */ = { - isa = PBXGroup; - children = ( - ); - name = encode; - sourceTree = "<group>"; - }; - 4628802902B2FF79E0AD76BAEF165D70 /* NSData+zlib */ = { - isa = PBXGroup; - children = ( - 83147647FF520FEBC086F33609ECA938 /* GTMNSData+zlib.h */, - 8CD49F4DAD4E018B49D62F07A50020C3 /* GTMNSData+zlib.m */, - ); - name = "NSData+zlib"; - sourceTree = "<group>"; - }; - 543B9265B46C52AA018AC9B5349C1A41 /* GoogleToolboxForMac */ = { + 3758E30E87F41188A58D53252E8DC67F /* GGLInstanceID */ = { isa = PBXGroup; children = ( - 004912157DF4BDCD49123543CE0FF6DD /* Defines */, - 21FD76479585CF6ADCFBF61ED1315196 /* Logger */, - 4628802902B2FF79E0AD76BAEF165D70 /* NSData+zlib */, - B4A3391D3ABAF454717C12C6AFD946A0 /* Support Files */, + 173B36DA9A5ED406088A50C1589B0B4E /* GGLInstanceID.h */, + 8127A92CEFC4B6BC0D037BBDADA1B051 /* GGLInstanceIDConfig.h */, + EE0A605C9B1A1EA6221D258D4E528AD7 /* GGLInstanceIDDelegate.h */, + BD469413B9D194472712F81C4C19217C /* GGLInstanceIDHeaders.h */, + FEEE277DB90FD41AA0B77E6258108DFB /* Frameworks */, ); - name = GoogleToolboxForMac; - path = GoogleToolboxForMac; + name = GGLInstanceID; + path = GGLInstanceID; sourceTree = "<group>"; }; - 55ACDAF2E6E0245F2ABA46141FF54B0D /* FirebaseInstanceID */ = { + 5E3943FF863A867D4D99F3E17093D9D7 /* GoogleInterchangeUtilities */ = { isa = PBXGroup; children = ( - 5EBBA78CDFF493B4DA3AC46DE5C89650 /* Frameworks */, + CAFDBEDBC9861619C5BC0B5A525B32E5 /* Frameworks */, ); - name = FirebaseInstanceID; - path = FirebaseInstanceID; + name = GoogleInterchangeUtilities; + path = GoogleInterchangeUtilities; sourceTree = "<group>"; }; - 58DE47AAAC06564307E7255D1B5E1D62 /* decode */ = { + 736A89F858E6E6D5DDEC5BBDA2E1C51B /* GoogleUtilities */ = { isa = PBXGroup; children = ( + E8A2173F40F6AA192DD2A76C1203C416 /* Frameworks */, ); - name = decode; - sourceTree = "<group>"; - }; - 5EBBA78CDFF493B4DA3AC46DE5C89650 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 83FF0A5AF2500AE469AE6047A4A795DD /* FirebaseInstanceID.framework */, - ); - name = Frameworks; - sourceTree = "<group>"; - }; - 5F1C6D3FD3BF644DCE67E28E83281951 /* FirebaseMessaging */ = { - isa = PBXGroup; - children = ( - 2201A4F92BCC4567C0DB2C680592833A /* Frameworks */, - ); - name = FirebaseMessaging; - path = FirebaseMessaging; + name = GoogleUtilities; + path = GoogleUtilities; sourceTree = "<group>"; }; 7531C8F8DE19F1AA3C8A7AC97A91DC29 /* iOS */ = { @@ -396,8 +116,8 @@ children = ( 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */, BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */, - 11914593C579DC3B903834F9370FDE0C /* Pods */, - B35F7395675A25A46729AD5CE270066C /* Products */, + 121A86CC4AAF79B70266B959308D3CA7 /* Pods */, + EA7DD587FC2EAD1ECAA75B2850B62903 /* Products */, 838A3B364ADE24D6443C58DDBACFF0C2 /* Targets Support Files */, ); sourceTree = "<group>"; @@ -410,45 +130,29 @@ name = "Targets Support Files"; sourceTree = "<group>"; }; - 913723635DAAA7A06D7A25B98CE48726 /* Support Files */ = { + 9DCD9E1660319E9727375653D3EBBA13 /* GoogleIPhoneUtilities */ = { isa = PBXGroup; children = ( - F89A42940C946E790697D23E21C634DA /* Protobuf.xcconfig */, - F4217831202D96492E9AA5A8C1317D16 /* Protobuf-dummy.m */, - E4C8A849B8401F02161470ADD18F89E7 /* Protobuf-prefix.pch */, + 2FD026630DDFF013082B2945DB20B798 /* Frameworks */, ); - name = "Support Files"; - path = "../Target Support Files/Protobuf"; + name = GoogleIPhoneUtilities; + path = GoogleIPhoneUtilities; sourceTree = "<group>"; }; - AC4F8E9E10982FDB105BC8855C8D52CD /* Frameworks */ = { + A770D2EDC6FA25DCD787792DF757FA50 /* Frameworks */ = { isa = PBXGroup; children = ( - FB1E980B5EEC2800E922D5076A11EFA7 /* FirebaseAnalytics.framework */, + EEFE0B43B6BEB77AB2B72163776B3431 /* libGcmLib.a */, ); name = Frameworks; sourceTree = "<group>"; }; - B35F7395675A25A46729AD5CE270066C /* Products */ = { - isa = PBXGroup; - children = ( - BA922E76DF7B2D530FCDC0089D2C20A5 /* libGoogleToolboxForMac.a */, - 686BB4055630DC19822F9F3B407B37C3 /* libnanopb.a */, - AD8B585B5662EF1E7DFC64FFF59A1A6F /* libPods-Stone Island.a */, - 4EC1DF8B3DD81B34C5AB861B8C76C717 /* libProtobuf.a */, - ); - name = Products; - sourceTree = "<group>"; - }; - B4A3391D3ABAF454717C12C6AFD946A0 /* Support Files */ = { + B9E958B53590711D484747E648D2BBAF /* Frameworks */ = { isa = PBXGroup; children = ( - 45DE04F35C065C20F9213E57D5F936D5 /* GoogleToolboxForMac.xcconfig */, - 1F905482AB614EB3193EC09019806C5D /* GoogleToolboxForMac-dummy.m */, - 5B9EF4385DB7EA2E2DEE11B2B6DFE1A0 /* GoogleToolboxForMac-prefix.pch */, + 6A52371D28A634057B785F5B581084AF /* GoogleSymbolUtilities.framework */, ); - name = "Support Files"; - path = "../Target Support Files/GoogleToolboxForMac"; + name = Frameworks; sourceTree = "<group>"; }; BA3FA15D22651C0425DF92E8A2A4517F /* Pods-Stone Island */ = { @@ -466,6 +170,15 @@ path = "Target Support Files/Pods-Stone Island"; sourceTree = "<group>"; }; + BBD88AD6F1DF792566DB101E1D7A50AB /* GoogleSymbolUtilities */ = { + isa = PBXGroup; + children = ( + B9E958B53590711D484747E648D2BBAF /* Frameworks */, + ); + name = GoogleSymbolUtilities; + path = GoogleSymbolUtilities; + sourceTree = "<group>"; + }; BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */ = { isa = PBXGroup; children = ( @@ -474,247 +187,69 @@ name = Frameworks; sourceTree = "<group>"; }; - D322B836323040BCA8E139D202457EBA /* FirebaseCore */ = { + CAFDBEDBC9861619C5BC0B5A525B32E5 /* Frameworks */ = { isa = PBXGroup; children = ( - E04C7679B4512CF8CDD79D4392692C6C /* Frameworks */, + 36F75FFC47B4DBEB5982F58544A7B2FC /* GoogleInterchangeUtilities.framework */, ); - name = FirebaseCore; - path = FirebaseCore; + name = Frameworks; sourceTree = "<group>"; }; - E04C7679B4512CF8CDD79D4392692C6C /* Frameworks */ = { + E8A2173F40F6AA192DD2A76C1203C416 /* Frameworks */ = { isa = PBXGroup; children = ( - F411F93549CC18B1041B6089FD7D6328 /* FirebaseCore.framework */, - 50B4982BCC4F07991409560B718F590C /* FirebaseCoreDiagnostics.framework */, - 192AB16212B37CEBDD9BD2D13A435C4A /* FirebaseNanoPB.framework */, + 6A055A93C3564E5CDA417C640324E176 /* GoogleUtilities.framework */, ); name = Frameworks; sourceTree = "<group>"; }; - EAC896EC3C2A716D21A44F458CB64190 /* Protobuf */ = { + EA7DD587FC2EAD1ECAA75B2850B62903 /* Products */ = { isa = PBXGroup; children = ( - E84A0F52367C4369A4CD78E715FD3316 /* Any.pbobjc.h */, - 6B1DD76026CC0D86BA2FD2A023EBF3B1 /* Any.pbobjc.m */, - 12A858169F9A81AF89F6583B8E966025 /* Api.pbobjc.h */, - 9C39A2A98031E5843DD0CC795958C690 /* Api.pbobjc.m */, - 115E69164EF7A408741D07C2086D2C25 /* Duration.pbobjc.h */, - 6F2E775643AFE2BFF0D572961BBC381E /* Duration.pbobjc.m */, - 346156D12F225C5435732E3752CE2FE8 /* Empty.pbobjc.h */, - 72A904D3D8B863EED50A4A1E3FFADC0D /* Empty.pbobjc.m */, - 828B35BEFD155F90F6A506A514E9373D /* FieldMask.pbobjc.h */, - 9E7C6CABB305C6F18E115008557D510A /* FieldMask.pbobjc.m */, - 6500BB56ED633DA52D3173D059F8378D /* GPBArray.h */, - 2C72AF407EBF46522014F5E384F2DF2B /* GPBArray.m */, - 4AE7E7D7FC01B98294A0293EF649BD95 /* GPBArray_PackagePrivate.h */, - 8A608890EC1AF8EC42A14397D3A5894B /* GPBBootstrap.h */, - 40D25B6E40FCFF039CD02F31F19588B8 /* GPBCodedInputStream.h */, - 7D645CF003B6E3608A32FF8B3EC5D589 /* GPBCodedInputStream.m */, - 493A2403E3A377D0C8D3B18E72BD9948 /* GPBCodedInputStream_PackagePrivate.h */, - 58A83A189DC1BFBFAC7F399BB9751F14 /* GPBCodedOutputStream.h */, - 3504481E0B537B019882F670155CDDA2 /* GPBCodedOutputStream.m */, - CBAC1AE6755D17C79F857D660B23B118 /* GPBCodedOutputStream_PackagePrivate.h */, - C6CC9FDA24E3A6607E12BFFEE4275B45 /* GPBDescriptor.h */, - 3BF4A1DADA8860F20B2307BA21E0DDA7 /* GPBDescriptor.m */, - 4240053415DBD5B52DBD9497BD0984FD /* GPBDescriptor_PackagePrivate.h */, - ABDBCAF813D5B069AD91028508742BC2 /* GPBDictionary.h */, - D708F677F238A988C8234E48AC22776D /* GPBDictionary.m */, - 4C8C2723080839DDB0C24FEDD0D73096 /* GPBDictionary_PackagePrivate.h */, - 15595CD747174AB281B75E0EC911F6E2 /* GPBExtensionInternals.h */, - 3E49413C1602C72986E35FE55B15AA9D /* GPBExtensionInternals.m */, - 094F1883B9081EA6E8925E8BB383CAE2 /* GPBExtensionRegistry.h */, - 6FE2C2FC17101A63229827673FE63277 /* GPBExtensionRegistry.m */, - 9315DD9048DB523B31C2B0B63880F185 /* GPBMessage.h */, - 9251C49A032CCBDAE109D0A0CD2DD92E /* GPBMessage.m */, - D7846CA9DBB7357D0A5145648AA01620 /* GPBMessage_PackagePrivate.h */, - 22BA7C1126445EE94A49FE02FE9FFD6B /* GPBProtocolBuffers.h */, - BB19157342ADAC984C6ED234681CE8F7 /* GPBProtocolBuffers_RuntimeSupport.h */, - E1DD1E636FBF87375DD28325F85E9F9B /* GPBRootObject.h */, - 4950A34F093D61FB39CE30CCADE17BBE /* GPBRootObject.m */, - 85161CE483D0D52918F3658155149F93 /* GPBRootObject_PackagePrivate.h */, - 545A0FB5DF2C8FFCCF42EB58D5A81ED0 /* GPBRuntimeTypes.h */, - 8E9DF1F8DEF9920EC67FFDBBACE310D6 /* GPBUnknownField.h */, - 8EB5760CCB2AC6808AD433F462BA5B40 /* GPBUnknownField.m */, - F1A5E09DC081BEC3AF27803E648E1367 /* GPBUnknownField_PackagePrivate.h */, - 5D11E9C49AAF09E786C50401B18C3DC4 /* GPBUnknownFieldSet.h */, - 99E63D80EC2BCAC4383FAB765DA50EC0 /* GPBUnknownFieldSet.m */, - F6DA253821905085377C5B375CF7B4C3 /* GPBUnknownFieldSet_PackagePrivate.h */, - 0F444CCFE63D2832F35B8837ED408165 /* GPBUtilities.h */, - 14DB8CD0793D1700939269B1162FC634 /* GPBUtilities.m */, - 68E8F056DD0B8CDDCDF684A3A375FCC2 /* GPBUtilities_PackagePrivate.h */, - A5428F00BC2E563C54345DD10FBC64B9 /* GPBWellKnownTypes.h */, - 7CD04E4A14DCEB9584A09B6CCAF0CCD4 /* GPBWellKnownTypes.m */, - 524B0176A9FCF760DD5807E536CD4F89 /* GPBWireFormat.h */, - 870C6D914891D286B54687025379F80A /* GPBWireFormat.m */, - A4F87C21CB7A6B68E245AB8373CE92F3 /* SourceContext.pbobjc.h */, - 10F4575D8B6A691A550472225DDF3F0F /* SourceContext.pbobjc.m */, - D6A504923A8D53592A63719F6FF69A7C /* Struct.pbobjc.h */, - B77AE850AC471E6D53586C630AE90ACF /* Struct.pbobjc.m */, - 7180FC87E2294112BACEA059A5831595 /* Timestamp.pbobjc.h */, - EB57A28C36332095328E9BCE71ECC618 /* Timestamp.pbobjc.m */, - 4A49C9D5CD03434E366BE7C82C206817 /* Type.pbobjc.h */, - 265B5F2D8D23C8DAE5A2EC4C45482BB2 /* Type.pbobjc.m */, - FE50E6A13848DC8387C0F2467E5BC858 /* Wrappers.pbobjc.h */, - 35A06A6FAC89255798D0D4BD7AE185C5 /* Wrappers.pbobjc.m */, - 913723635DAAA7A06D7A25B98CE48726 /* Support Files */, + E7C2BA0DA51EB36ED5DB61FE0CD57F36 /* libPods-Stone Island.a */, ); - name = Protobuf; - path = Protobuf; + name = Products; sourceTree = "<group>"; }; - FA0ADBF3B95DD4DD510DA2EF9D9B0B9A /* Support Files */ = { + F52CA7A5CDCB3F8FEAEAD0AD400F9313 /* GoogleCloudMessaging */ = { isa = PBXGroup; children = ( - 9837A32494666A348405234344442538 /* nanopb.xcconfig */, - 103D9CA08917A78B44AC60345EE69379 /* nanopb-dummy.m */, - 98A18E81D2E0C6AF12C4E040F92CEEE7 /* nanopb-prefix.pch */, + E04BE7A3CBD84DBAA76FC51758B7CED6 /* GCMConfig.h */, + EA6ECB7498639194EA9C76AA5A5335AA /* GCMPubSub.h */, + 4A59C4528E6B71DFA7011DF095E0C8B8 /* GCMReceiverDelegate.h */, + BD5E36BF0B6CBFDEC0927984332B535A /* GCMService.h */, + F3E864806D6F83145EA52D163BA1A423 /* GoogleCloudMessaging.h */, + A770D2EDC6FA25DCD787792DF757FA50 /* Frameworks */, ); - name = "Support Files"; - path = "../Target Support Files/nanopb"; + name = GoogleCloudMessaging; + path = GoogleCloudMessaging; sourceTree = "<group>"; }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - 49EE04F5125849E644783C89F23AA9F9 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - A39A7F90321353E49D6165BAD53505B2 /* pb.h in Headers */, - 1E46EC8AB8830A23FAC91E8547748BF5 /* pb_common.h in Headers */, - 0AED6A8FBEF7F5C59C7082B8E7716BE2 /* pb_decode.h in Headers */, - D02A9BE496DF996BBC92776E586BCAF8 /* pb_encode.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 53AC353E7DDDB2167D1AB17676628071 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 90906AC58824566DFC6875E1ED25E855 /* GTMDefines.h in Headers */, - 154E5AB0C541CED05D795C6198947D27 /* GTMLogger.h in Headers */, - 6A5451E67CBAAED4E81995B58427A175 /* GTMNSData+zlib.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 6F86D9886E3B4324C1D817067F5588B1 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - C373172ABCAFBA7A771B3A4C4574C243 /* Any.pbobjc.h in Headers */, - 0584FFBCFF5916779F2047A5EF1EAB24 /* Api.pbobjc.h in Headers */, - FEE69989A5738A7A23C1FEBC9E22B0A5 /* Duration.pbobjc.h in Headers */, - 16B537D2EDFB4829ED6E6F282A14BC45 /* Empty.pbobjc.h in Headers */, - 686F67C01593C8E0FB610386AF5F287F /* FieldMask.pbobjc.h in Headers */, - 50047A0A3C3C1251088478639ABA6D08 /* GPBArray.h in Headers */, - 4854DD8506654D68FCA7C685CDD711E2 /* GPBArray_PackagePrivate.h in Headers */, - 9E66200018B0A847A39C7527CEFBF5DD /* GPBBootstrap.h in Headers */, - 244087B863272C303C26961C6FADCF8E /* GPBCodedInputStream.h in Headers */, - 96516A19D37AACA7FF1AFDC8D5649280 /* GPBCodedInputStream_PackagePrivate.h in Headers */, - 2ED4641D7F49A1AC2F41EB6F818B8B0D /* GPBCodedOutputStream.h in Headers */, - 14A62D5A8CBFE597C99EE33EE9D04442 /* GPBCodedOutputStream_PackagePrivate.h in Headers */, - 20B06CE03E8EF2A681F68D2814B1F5C5 /* GPBDescriptor.h in Headers */, - D1ABB2FA52FC2506830E729D60E9CA16 /* GPBDescriptor_PackagePrivate.h in Headers */, - C9DE4DA0ED245C1A662AE79B579C933A /* GPBDictionary.h in Headers */, - A60CBF107DBE787C7774E7BD867185F7 /* GPBDictionary_PackagePrivate.h in Headers */, - A618EDE73A86F425B1FEE0D01804AB0C /* GPBExtensionInternals.h in Headers */, - 2DB8B5969876803C5485FD9681C3C70D /* GPBExtensionRegistry.h in Headers */, - D91B805B5CF397B10F04B5E66924320B /* GPBMessage.h in Headers */, - ED78AFA3F46A54217E68746892698704 /* GPBMessage_PackagePrivate.h in Headers */, - FBE5C6517E1C7FE5912B884A5C716FBC /* GPBProtocolBuffers.h in Headers */, - 8B96B260B4F3219DABFCA63F4BB80804 /* GPBProtocolBuffers_RuntimeSupport.h in Headers */, - B1FCD6CEDAE7DEBC44B3EAA860C16EE0 /* GPBRootObject.h in Headers */, - 808E97D147D8800078607BE7BB1E2C36 /* GPBRootObject_PackagePrivate.h in Headers */, - 377B6859DA9B7A6E0B4307A5CB055359 /* GPBRuntimeTypes.h in Headers */, - 372B121548A8AAC9019B34D499ECAEAA /* GPBUnknownField.h in Headers */, - 746EF9D0CF4064E64AC4F7930038847B /* GPBUnknownField_PackagePrivate.h in Headers */, - F8C907FF0573A7F7EF41888CBBCCD5B4 /* GPBUnknownFieldSet.h in Headers */, - 2C115525DD3B1AE2248DB3343275EB57 /* GPBUnknownFieldSet_PackagePrivate.h in Headers */, - 75FEFB9B46377E86FE65BA73BF73B24F /* GPBUtilities.h in Headers */, - 413FF88B6D643A075644A4E4B728DDD1 /* GPBUtilities_PackagePrivate.h in Headers */, - B3755C71DCBFEBE07682F17CCE804B67 /* GPBWellKnownTypes.h in Headers */, - 10BCC6DA098614A3F7230CFB31F1B84E /* GPBWireFormat.h in Headers */, - F903364920B941263AEA9F7079387F62 /* SourceContext.pbobjc.h in Headers */, - 33A0F7D3ED05ACED0A1CA656D24F8ED6 /* Struct.pbobjc.h in Headers */, - FD6A629D6E2614065D82CC8BD9C584C3 /* Timestamp.pbobjc.h in Headers */, - B9704C2C3AF30ACA0C84033AD94B94B0 /* Type.pbobjc.h in Headers */, - 140D35C2173D500F1EBB729A9A1FE6CE /* Wrappers.pbobjc.h in Headers */, + FEEE277DB90FD41AA0B77E6258108DFB /* Frameworks */ = { + isa = PBXGroup; + children = ( + D6448B738D0F834A89872ACF4F33A1AA /* libGGLInstanceIDLib.a */, ); - runOnlyForDeploymentPostprocessing = 0; + name = Frameworks; + sourceTree = "<group>"; }; -/* End PBXHeadersBuildPhase section */ +/* End PBXGroup section */ /* Begin PBXNativeTarget section */ - 0165FA23BB1E05B01A7F333AD8A9D0AB /* Pods-Stone Island */ = { + 270B46424A6E550E1583E7A97AAD265A /* Pods-Stone Island */ = { isa = PBXNativeTarget; - buildConfigurationList = D6D6A9ED58F9C63D6F7BDE70DB2E4081 /* Build configuration list for PBXNativeTarget "Pods-Stone Island" */; + buildConfigurationList = BD1D1A57A9121FF061B86F474E27AA5E /* Build configuration list for PBXNativeTarget "Pods-Stone Island" */; buildPhases = ( - 9B73EA95DFBCFFFADB866C70AA0F6019 /* Sources */, - 3CCBF28809F96645DAD3D47200903020 /* Frameworks */, + 04C4D2FB97E65104032C84BA808D29B0 /* Sources */, + 4393326EAD1C0D0F9AECF9FC78E6DAD8 /* Frameworks */, ); buildRules = ( ); dependencies = ( - 645830D9FB0BE7D2B7BC3B119285CBE9 /* PBXTargetDependency */, - 988A2D200CAC310CA70A3AAF1E7A2F85 /* PBXTargetDependency */, - 954DF50A815C564A4F137A5776891E4A /* PBXTargetDependency */, ); name = "Pods-Stone Island"; productName = "Pods-Stone Island"; - productReference = AD8B585B5662EF1E7DFC64FFF59A1A6F /* libPods-Stone Island.a */; - productType = "com.apple.product-type.library.static"; - }; - 83E4B77BD7F292F23A4617388E39F15E /* Protobuf */ = { - isa = PBXNativeTarget; - buildConfigurationList = C1568F37CE939D4F563A4647C56487F8 /* Build configuration list for PBXNativeTarget "Protobuf" */; - buildPhases = ( - 111E8E00DEE922B020E3A12BF85D1F68 /* Sources */, - CBCB3EDD945FADF8E20997D884FD0CBB /* Frameworks */, - 6F86D9886E3B4324C1D817067F5588B1 /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = Protobuf; - productName = Protobuf; - productReference = 4EC1DF8B3DD81B34C5AB861B8C76C717 /* libProtobuf.a */; - productType = "com.apple.product-type.library.static"; - }; - CF4B35B9FC819386EB09219BC91827D7 /* nanopb */ = { - isa = PBXNativeTarget; - buildConfigurationList = B8307E997A097EB50C00A8C7967B858A /* Build configuration list for PBXNativeTarget "nanopb" */; - buildPhases = ( - 5303D5F0966B6798D7AAA88A9ACCB670 /* Sources */, - 94EB8A8937D61E8CED1F3C819230AE4D /* Frameworks */, - 49EE04F5125849E644783C89F23AA9F9 /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = nanopb; - productName = nanopb; - productReference = 686BB4055630DC19822F9F3B407B37C3 /* libnanopb.a */; - productType = "com.apple.product-type.library.static"; - }; - FA9D13261AF395CF5D54BB3203DF2A6E /* GoogleToolboxForMac */ = { - isa = PBXNativeTarget; - buildConfigurationList = 94A6FD8AAC113A69F57982237B2DDA0F /* Build configuration list for PBXNativeTarget "GoogleToolboxForMac" */; - buildPhases = ( - B311E4867662945861847843827DB0EB /* Sources */, - 6AD215334409363FBBC48E48118C5C62 /* Frameworks */, - 53AC353E7DDDB2167D1AB17676628071 /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = GoogleToolboxForMac; - productName = GoogleToolboxForMac; - productReference = BA922E76DF7B2D530FCDC0089D2C20A5 /* libGoogleToolboxForMac.a */; + productReference = E7C2BA0DA51EB36ED5DB61FE0CD57F36 /* libPods-Stone Island.a */; productType = "com.apple.product-type.library.static"; }; /* End PBXNativeTarget section */ @@ -734,103 +269,26 @@ en, ); mainGroup = 7DB346D0F39D3F0E887471402A8071AB; - productRefGroup = B35F7395675A25A46729AD5CE270066C /* Products */; + productRefGroup = EA7DD587FC2EAD1ECAA75B2850B62903 /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( - FA9D13261AF395CF5D54BB3203DF2A6E /* GoogleToolboxForMac */, - CF4B35B9FC819386EB09219BC91827D7 /* nanopb */, - 0165FA23BB1E05B01A7F333AD8A9D0AB /* Pods-Stone Island */, - 83E4B77BD7F292F23A4617388E39F15E /* Protobuf */, + 270B46424A6E550E1583E7A97AAD265A /* Pods-Stone Island */, ); }; /* End PBXProject section */ /* Begin PBXSourcesBuildPhase section */ - 111E8E00DEE922B020E3A12BF85D1F68 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 72575C2EA8AD3A029CE735EE8D8AB047 /* Any.pbobjc.m in Sources */, - 0FCDA635D239A61F2BF25331980961AA /* Api.pbobjc.m in Sources */, - CA8F5217BB2A36ABC7B23E25679A5CA3 /* Duration.pbobjc.m in Sources */, - F6A5A6C8DCC5BB2790E4915146084C0B /* Empty.pbobjc.m in Sources */, - EE2C33AB2D11A3E9CCDF7661AE9E147A /* FieldMask.pbobjc.m in Sources */, - 91CDFE6BDFEBE1BF7C5A9856C9307C62 /* GPBArray.m in Sources */, - F889E78E4F5DA9B2031418FFB4798AFC /* GPBCodedInputStream.m in Sources */, - F7EB206E2986650BF0D3D39866C08903 /* GPBCodedOutputStream.m in Sources */, - C136220535719959455CDC0434D195CE /* GPBDescriptor.m in Sources */, - 54FCE05202C4E9317D168C4AC22A4C9E /* GPBDictionary.m in Sources */, - BC7DBE6C979297C50EC3BF1C96D4BCE4 /* GPBExtensionInternals.m in Sources */, - 11A2E6703999D52A9C0B35B0DFA09BC4 /* GPBExtensionRegistry.m in Sources */, - AFB2E0E2919C60F1589C86A455CDDAB3 /* GPBMessage.m in Sources */, - B1A450E8C279AA9360E77D4C632B1EA6 /* GPBRootObject.m in Sources */, - 8EEDB7063191F5682723BF26BA959583 /* GPBUnknownField.m in Sources */, - 37CCDC46A3514834D113ECA797AB741C /* GPBUnknownFieldSet.m in Sources */, - AE55AE2010B2139E1FAAF5C5128FD45F /* GPBUtilities.m in Sources */, - 52CB9B7B9367A311AA9D43E257D931D0 /* GPBWellKnownTypes.m in Sources */, - 18F7C87FB79D3D4C76F22B3F26E5F7F6 /* GPBWireFormat.m in Sources */, - 5F5E7A69933E6F421C0A81AE2604BA41 /* Protobuf-dummy.m in Sources */, - 57FE72AC5AB55F80302D3501AB388285 /* SourceContext.pbobjc.m in Sources */, - 8D795F39665BBEC7B3DEE9369F95BD74 /* Struct.pbobjc.m in Sources */, - 0EC3C5F27472BC4701C86F26C2D12B3A /* Timestamp.pbobjc.m in Sources */, - D0B466935B33E0E2D65E9691B56F4B8E /* Type.pbobjc.m in Sources */, - 289F36556DAF50888B448ED430E94DCB /* Wrappers.pbobjc.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 5303D5F0966B6798D7AAA88A9ACCB670 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 28B7761E1D77D96D267539A7B67188EA /* nanopb-dummy.m in Sources */, - 9CBD14C17446EC9384CFAADBADF12387 /* pb_common.c in Sources */, - F2A7C7D18755231B289C10D16DD6F730 /* pb_decode.c in Sources */, - 91C9C419C2E304B3A68293C22053034E /* pb_encode.c in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 9B73EA95DFBCFFFADB866C70AA0F6019 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 03B6A752DA89454D582F255E70B04C62 /* Pods-Stone Island-dummy.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - B311E4867662945861847843827DB0EB /* Sources */ = { + 04C4D2FB97E65104032C84BA808D29B0 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 5B8F036F7FAAF35FE98CE3FBFF25D72F /* GoogleToolboxForMac-dummy.m in Sources */, - CE793643063B71F80F32F0851FDABFA5 /* GTMLogger.m in Sources */, - F1B1695A6AB8AFEC306AB371F2DCA21F /* GTMNSData+zlib.m in Sources */, + 8B931F94A15CEC623D339DA3C38BE3A3 /* Pods-Stone Island-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ -/* Begin PBXTargetDependency section */ - 645830D9FB0BE7D2B7BC3B119285CBE9 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = GoogleToolboxForMac; - target = FA9D13261AF395CF5D54BB3203DF2A6E /* GoogleToolboxForMac */; - targetProxy = BFB2041DEF820E18BEFA8BB9AED65421 /* PBXContainerItemProxy */; - }; - 954DF50A815C564A4F137A5776891E4A /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = nanopb; - target = CF4B35B9FC819386EB09219BC91827D7 /* nanopb */; - targetProxy = F8B4BDF44EA49346EA28F8B9F75D8935 /* PBXContainerItemProxy */; - }; - 988A2D200CAC310CA70A3AAF1E7A2F85 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = Protobuf; - target = 83E4B77BD7F292F23A4617388E39F15E /* Protobuf */; - targetProxy = A8DBFC6FA5890F08515B21D17DB251F6 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - /* Begin XCBuildConfiguration section */ 015A368F878AC3E2CEAE21DDE8026304 /* Debug */ = { isa = XCBuildConfiguration; @@ -876,52 +334,6 @@ }; name = Debug; }; - 1C0DED43560AC5E69790FF5BED5899C3 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 9837A32494666A348405234344442538 /* nanopb.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREFIX_HEADER = "Target Support Files/nanopb/nanopb-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 4.3; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRIVATE_HEADERS_FOLDER_PATH = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - PUBLIC_HEADERS_FOLDER_PATH = ""; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Debug; - }; - 30A4CDD3CB336F44C87B0DD7AA6963A8 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 2313F1DCFFF1A82931A5DF3F158D5DA3 /* Pods-Stone Island.debug.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MACH_O_TYPE = staticlib; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Debug; - }; 44CDBB6D11DE06DB64D6268622BDC47E /* Release */ = { isa = XCBuildConfiguration; buildSettings = { @@ -962,101 +374,9 @@ }; name = Release; }; - 60F6D40D9A89565F08389AFC4B2D16F5 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F89A42940C946E790697D23E21C634DA /* Protobuf.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREFIX_HEADER = "Target Support Files/Protobuf/Protobuf-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 7.0; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRIVATE_HEADERS_FOLDER_PATH = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - PUBLIC_HEADERS_FOLDER_PATH = ""; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Release; - }; - 83219FDA245AB57766CE4E511F147EE8 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F89A42940C946E790697D23E21C634DA /* Protobuf.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREFIX_HEADER = "Target Support Files/Protobuf/Protobuf-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 7.0; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRIVATE_HEADERS_FOLDER_PATH = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - PUBLIC_HEADERS_FOLDER_PATH = ""; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Debug; - }; - 9D5185848EB0524743F60EDF09571F59 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 9837A32494666A348405234344442538 /* nanopb.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREFIX_HEADER = "Target Support Files/nanopb/nanopb-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 4.3; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRIVATE_HEADERS_FOLDER_PATH = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - PUBLIC_HEADERS_FOLDER_PATH = ""; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Release; - }; - BE31CE5A4CEE30B7760F0A29A8109B34 /* Release */ = { + 5B7429374B6EEABBFC1E1EABA7B4556D /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 45DE04F35C065C20F9213E57D5F936D5 /* GoogleToolboxForMac.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREFIX_HEADER = "Target Support Files/GoogleToolboxForMac/GoogleToolboxForMac-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 5.0; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRIVATE_HEADERS_FOLDER_PATH = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - PUBLIC_HEADERS_FOLDER_PATH = ""; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Release; - }; - C092DBBB18598FF1BD4BE64AFEB7D78F /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 45DE04F35C065C20F9213E57D5F936D5 /* GoogleToolboxForMac.xcconfig */; + baseConfigurationReference = 2313F1DCFFF1A82931A5DF3F158D5DA3 /* Pods-Stone Island.debug.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -1064,20 +384,20 @@ DEBUG_INFORMATION_FORMAT = dwarf; ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_NO_COMMON_BLOCKS = YES; - GCC_PREFIX_HEADER = "Target Support Files/GoogleToolboxForMac/GoogleToolboxForMac-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 5.0; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MACH_O_TYPE = staticlib; MTL_ENABLE_DEBUG_INFO = YES; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; - PRIVATE_HEADERS_FOLDER_PATH = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = "$(TARGET_NAME)"; - PUBLIC_HEADERS_FOLDER_PATH = ""; SDKROOT = iphoneos; SKIP_INSTALL = YES; }; name = Debug; }; - DB47C15363B3ECCB911B2C7CD592C18A /* Release */ = { + B2C80873CD55005750F481B734E9380D /* Release */ = { isa = XCBuildConfiguration; baseConfigurationReference = 0C86D2D78080EDCEE85A13AA1692ACD6 /* Pods-Stone Island.release.xcconfig */; buildSettings = { @@ -1112,38 +432,11 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 94A6FD8AAC113A69F57982237B2DDA0F /* Build configuration list for PBXNativeTarget "GoogleToolboxForMac" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C092DBBB18598FF1BD4BE64AFEB7D78F /* Debug */, - BE31CE5A4CEE30B7760F0A29A8109B34 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - B8307E997A097EB50C00A8C7967B858A /* Build configuration list for PBXNativeTarget "nanopb" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1C0DED43560AC5E69790FF5BED5899C3 /* Debug */, - 9D5185848EB0524743F60EDF09571F59 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - C1568F37CE939D4F563A4647C56487F8 /* Build configuration list for PBXNativeTarget "Protobuf" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 83219FDA245AB57766CE4E511F147EE8 /* Debug */, - 60F6D40D9A89565F08389AFC4B2D16F5 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - D6D6A9ED58F9C63D6F7BDE70DB2E4081 /* Build configuration list for PBXNativeTarget "Pods-Stone Island" */ = { + BD1D1A57A9121FF061B86F474E27AA5E /* Build configuration list for PBXNativeTarget "Pods-Stone Island" */ = { isa = XCConfigurationList; buildConfigurations = ( - 30A4CDD3CB336F44C87B0DD7AA6963A8 /* Debug */, - DB47C15363B3ECCB911B2C7CD592C18A /* Release */, + 5B7429374B6EEABBFC1E1EABA7B4556D /* Debug */, + B2C80873CD55005750F481B734E9380D /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/StoneIsland/platforms/ios/Pods/Pods.xcodeproj/xcuserdata/user.xcuserdatad/xcschemes/GoogleToolboxForMac.xcscheme b/StoneIsland/platforms/ios/Pods/Pods.xcodeproj/xcuserdata/user.xcuserdatad/xcschemes/GoogleToolboxForMac.xcscheme deleted file mode 100644 index 6399589c..00000000 --- a/StoneIsland/platforms/ios/Pods/Pods.xcodeproj/xcuserdata/user.xcuserdatad/xcschemes/GoogleToolboxForMac.xcscheme +++ /dev/null @@ -1,60 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<Scheme - LastUpgradeVersion = "0700" - version = "1.3"> - <BuildAction - parallelizeBuildables = "YES" - buildImplicitDependencies = "YES"> - <BuildActionEntries> - <BuildActionEntry - buildForAnalyzing = "YES" - buildForTesting = "YES" - buildForRunning = "YES" - buildForProfiling = "YES" - buildForArchiving = "YES"> - <BuildableReference - BuildableIdentifier = 'primary' - BlueprintIdentifier = 'FA9D13261AF395CF5D54BB3203DF2A6E' - BlueprintName = 'GoogleToolboxForMac' - ReferencedContainer = 'container:Pods.xcodeproj' - BuildableName = 'libGoogleToolboxForMac.a'> - </BuildableReference> - </BuildActionEntry> - </BuildActionEntries> - </BuildAction> - <TestAction - selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" - selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" - shouldUseLaunchSchemeArgsEnv = "YES" - buildConfiguration = "Debug"> - <AdditionalOptions> - </AdditionalOptions> - </TestAction> - <LaunchAction - selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" - selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" - launchStyle = "0" - useCustomWorkingDirectory = "NO" - ignoresPersistentStateOnLaunch = "NO" - debugDocumentVersioning = "YES" - debugServiceExtension = "internal" - buildConfiguration = "Debug" - allowLocationSimulation = "YES"> - <AdditionalOptions> - </AdditionalOptions> - </LaunchAction> - <ProfileAction - savedToolIdentifier = "" - useCustomWorkingDirectory = "NO" - debugDocumentVersioning = "YES" - buildConfiguration = "Release" - shouldUseLaunchSchemeArgsEnv = "YES"> - </ProfileAction> - <AnalyzeAction - buildConfiguration = "Debug"> - </AnalyzeAction> - <ArchiveAction - buildConfiguration = "Release" - revealArchiveInOrganizer = "YES"> - </ArchiveAction> -</Scheme> diff --git a/StoneIsland/platforms/ios/Pods/Pods.xcodeproj/xcuserdata/user.xcuserdatad/xcschemes/Pods-Stone Island.xcscheme b/StoneIsland/platforms/ios/Pods/Pods.xcodeproj/xcuserdata/user.xcuserdatad/xcschemes/Pods-Stone Island.xcscheme index 1f3680f4..3079e230 100644 --- a/StoneIsland/platforms/ios/Pods/Pods.xcodeproj/xcuserdata/user.xcuserdatad/xcschemes/Pods-Stone Island.xcscheme +++ b/StoneIsland/platforms/ios/Pods/Pods.xcodeproj/xcuserdata/user.xcuserdatad/xcschemes/Pods-Stone Island.xcscheme @@ -14,7 +14,7 @@ buildForArchiving = "YES"> <BuildableReference BuildableIdentifier = 'primary' - BlueprintIdentifier = '0165FA23BB1E05B01A7F333AD8A9D0AB' + BlueprintIdentifier = '270B46424A6E550E1583E7A97AAD265A' BlueprintName = 'Pods-Stone Island' ReferencedContainer = 'container:Pods.xcodeproj' BuildableName = 'libPods-Stone Island.a'> diff --git a/StoneIsland/platforms/ios/Pods/Pods.xcodeproj/xcuserdata/user.xcuserdatad/xcschemes/Protobuf.xcscheme b/StoneIsland/platforms/ios/Pods/Pods.xcodeproj/xcuserdata/user.xcuserdatad/xcschemes/Protobuf.xcscheme deleted file mode 100644 index 495171c9..00000000 --- a/StoneIsland/platforms/ios/Pods/Pods.xcodeproj/xcuserdata/user.xcuserdatad/xcschemes/Protobuf.xcscheme +++ /dev/null @@ -1,60 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<Scheme - LastUpgradeVersion = "0700" - version = "1.3"> - <BuildAction - parallelizeBuildables = "YES" - buildImplicitDependencies = "YES"> - <BuildActionEntries> - <BuildActionEntry - buildForAnalyzing = "YES" - buildForTesting = "YES" - buildForRunning = "YES" - buildForProfiling = "YES" - buildForArchiving = "YES"> - <BuildableReference - BuildableIdentifier = 'primary' - BlueprintIdentifier = '83E4B77BD7F292F23A4617388E39F15E' - BlueprintName = 'Protobuf' - ReferencedContainer = 'container:Pods.xcodeproj' - BuildableName = 'libProtobuf.a'> - </BuildableReference> - </BuildActionEntry> - </BuildActionEntries> - </BuildAction> - <TestAction - selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" - selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" - shouldUseLaunchSchemeArgsEnv = "YES" - buildConfiguration = "Debug"> - <AdditionalOptions> - </AdditionalOptions> - </TestAction> - <LaunchAction - selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" - selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" - launchStyle = "0" - useCustomWorkingDirectory = "NO" - ignoresPersistentStateOnLaunch = "NO" - debugDocumentVersioning = "YES" - debugServiceExtension = "internal" - buildConfiguration = "Debug" - allowLocationSimulation = "YES"> - <AdditionalOptions> - </AdditionalOptions> - </LaunchAction> - <ProfileAction - savedToolIdentifier = "" - useCustomWorkingDirectory = "NO" - debugDocumentVersioning = "YES" - buildConfiguration = "Release" - shouldUseLaunchSchemeArgsEnv = "YES"> - </ProfileAction> - <AnalyzeAction - buildConfiguration = "Debug"> - </AnalyzeAction> - <ArchiveAction - buildConfiguration = "Release" - revealArchiveInOrganizer = "YES"> - </ArchiveAction> -</Scheme> diff --git a/StoneIsland/platforms/ios/Pods/Pods.xcodeproj/xcuserdata/user.xcuserdatad/xcschemes/nanopb.xcscheme b/StoneIsland/platforms/ios/Pods/Pods.xcodeproj/xcuserdata/user.xcuserdatad/xcschemes/nanopb.xcscheme deleted file mode 100644 index 774ee13f..00000000 --- a/StoneIsland/platforms/ios/Pods/Pods.xcodeproj/xcuserdata/user.xcuserdatad/xcschemes/nanopb.xcscheme +++ /dev/null @@ -1,60 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<Scheme - LastUpgradeVersion = "0700" - version = "1.3"> - <BuildAction - parallelizeBuildables = "YES" - buildImplicitDependencies = "YES"> - <BuildActionEntries> - <BuildActionEntry - buildForAnalyzing = "YES" - buildForTesting = "YES" - buildForRunning = "YES" - buildForProfiling = "YES" - buildForArchiving = "YES"> - <BuildableReference - BuildableIdentifier = 'primary' - BlueprintIdentifier = 'CF4B35B9FC819386EB09219BC91827D7' - BlueprintName = 'nanopb' - ReferencedContainer = 'container:Pods.xcodeproj' - BuildableName = 'libnanopb.a'> - </BuildableReference> - </BuildActionEntry> - </BuildActionEntries> - </BuildAction> - <TestAction - selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" - selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" - shouldUseLaunchSchemeArgsEnv = "YES" - buildConfiguration = "Debug"> - <AdditionalOptions> - </AdditionalOptions> - </TestAction> - <LaunchAction - selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" - selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" - launchStyle = "0" - useCustomWorkingDirectory = "NO" - ignoresPersistentStateOnLaunch = "NO" - debugDocumentVersioning = "YES" - debugServiceExtension = "internal" - buildConfiguration = "Debug" - allowLocationSimulation = "YES"> - <AdditionalOptions> - </AdditionalOptions> - </LaunchAction> - <ProfileAction - savedToolIdentifier = "" - useCustomWorkingDirectory = "NO" - debugDocumentVersioning = "YES" - buildConfiguration = "Release" - shouldUseLaunchSchemeArgsEnv = "YES"> - </ProfileAction> - <AnalyzeAction - buildConfiguration = "Debug"> - </AnalyzeAction> - <ArchiveAction - buildConfiguration = "Release" - revealArchiveInOrganizer = "YES"> - </ArchiveAction> -</Scheme> diff --git a/StoneIsland/platforms/ios/Pods/Pods.xcodeproj/xcuserdata/user.xcuserdatad/xcschemes/xcschememanagement.plist b/StoneIsland/platforms/ios/Pods/Pods.xcodeproj/xcuserdata/user.xcuserdatad/xcschemes/xcschememanagement.plist index 3466b6be..e1a18c63 100644 --- a/StoneIsland/platforms/ios/Pods/Pods.xcodeproj/xcuserdata/user.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/StoneIsland/platforms/ios/Pods/Pods.xcodeproj/xcuserdata/user.xcuserdatad/xcschemes/xcschememanagement.plist @@ -4,33 +4,12 @@ <dict> <key>SchemeUserState</key> <dict> - <key>GoogleToolboxForMac.xcscheme</key> - <dict> - <key>isShown</key> - <false/> - <key>orderHint</key> - <integer>0</integer> - </dict> <key>Pods-Stone Island.xcscheme</key> <dict> <key>isShown</key> <false/> <key>orderHint</key> - <integer>2</integer> - </dict> - <key>Protobuf.xcscheme</key> - <dict> - <key>isShown</key> - <false/> - <key>orderHint</key> - <integer>3</integer> - </dict> - <key>nanopb.xcscheme</key> - <dict> - <key>isShown</key> - <false/> - <key>orderHint</key> - <integer>1</integer> + <integer>0</integer> </dict> </dict> <key>SuppressBuildableAutocreation</key> diff --git a/StoneIsland/platforms/ios/Pods/Protobuf/LICENSE b/StoneIsland/platforms/ios/Pods/Protobuf/LICENSE deleted file mode 100644 index f028c823..00000000 --- a/StoneIsland/platforms/ios/Pods/Protobuf/LICENSE +++ /dev/null @@ -1,42 +0,0 @@ -This license applies to all parts of Protocol Buffers except the following: - - - Atomicops support for generic gcc, located in - src/google/protobuf/stubs/atomicops_internals_generic_gcc.h. - This file is copyrighted by Red Hat Inc. - - - Atomicops support for AIX/POWER, located in - src/google/protobuf/stubs/atomicops_internals_power.h. - This file is copyrighted by Bloomberg Finance LP. - -Copyright 2014, Google Inc. All rights reserved. - -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. - -Code generated by the Protocol Buffer compiler is owned by the owner -of the input file used when generating it. This code is not -standalone and requires a support library to be linked with it. This -support library is itself covered by the above license. diff --git a/StoneIsland/platforms/ios/Pods/Protobuf/README.md b/StoneIsland/platforms/ios/Pods/Protobuf/README.md deleted file mode 100644 index b26e5424..00000000 --- a/StoneIsland/platforms/ios/Pods/Protobuf/README.md +++ /dev/null @@ -1,77 +0,0 @@ -Protocol Buffers - Google's data interchange format -=================================================== - -[](https://travis-ci.org/google/protobuf) [](https://ci.appveyor.com/project/protobuf/protobuf) [](https://grpc-testing.appspot.com/job/protobuf_branch) [](https://grpc-testing.appspot.com/job/protobuf_branch_32) [](http://ci.bazel.io/job/protobuf/) - -Copyright 2008 Google Inc. - -https://developers.google.com/protocol-buffers/ - -Overview --------- - -Protocol Buffers (a.k.a., protobuf) are Google's language-neutral, -platform-neutral, extensible mechanism for serializing structured data. You -can find [protobuf's documentation on the Google Developers site](https://developers.google.com/protocol-buffers/). - -This README file contains protobuf installation instructions. To install -protobuf, you need to install the protocol compiler (used to compile .proto -files) and the protobuf runtime for your chosen programming language. - -Protocol Compiler Installation ------------------------------- - -The protocol compiler is written in C++. If you are using C++, please follow -the [C++ Installation Instructions](src/README.md) to install protoc along -with the C++ runtime. - -For non-C++ users, the simplest way to install the protocol compiler is to -download a pre-built binary from our release page: - - [https://github.com/google/protobuf/releases](https://github.com/google/protobuf/releases) - -In the downloads section of each release, you can find pre-built binaries in -zip packages: protoc-$VERSION-$PLATFORM.zip. It contains the protoc binary -as well as a set of standard .proto files distributed along with protobuf. - -If you are looking for an old version that is not available in the release -page, check out the maven repo here: - - [http://repo1.maven.org/maven2/com/google/protobuf/protoc/](http://repo1.maven.org/maven2/com/google/protobuf/protoc/) - -These pre-built binaries are only provided for released versions. If you want -to use the github master version at HEAD, or you need to modify protobuf code, -or you are using C++, it's recommended to build your own protoc binary from -source. - -If you would like to build protoc binary from source, see the [C++ Installation -Instructions](src/README.md). - -Protobuf Runtime Installation ------------------------------ - -Protobuf supports several different programming languages. For each programming -language, you can find instructions in the corresponding source directory about -how to install protobuf runtime for that specific language: - -| Language | Source | -|--------------------------------------|-------------------------------------------------------| -| C++ (include C++ runtime and protoc) | [src](src) | -| Java | [java](java) | -| Python | [python](python) | -| Objective-C | [objectivec](objectivec) | -| C# | [csharp](csharp) | -| JavaNano | [javanano](javanano) | -| JavaScript | [js](js) | -| Ruby | [ruby](ruby) | -| Go | [golang/protobuf](https://github.com/golang/protobuf) | -| PHP | [php](php) | - - -Usage ------ - -The complete documentation for Protocol Buffers is available via the -web at: - -https://developers.google.com/protocol-buffers/ 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) diff --git a/StoneIsland/platforms/ios/Pods/Target Support Files/GoogleToolboxForMac/GoogleToolboxForMac-dummy.m b/StoneIsland/platforms/ios/Pods/Target Support Files/GoogleToolboxForMac/GoogleToolboxForMac-dummy.m deleted file mode 100644 index 9e35ec0f..00000000 --- a/StoneIsland/platforms/ios/Pods/Target Support Files/GoogleToolboxForMac/GoogleToolboxForMac-dummy.m +++ /dev/null @@ -1,5 +0,0 @@ -#import <Foundation/Foundation.h> -@interface PodsDummy_GoogleToolboxForMac : NSObject -@end -@implementation PodsDummy_GoogleToolboxForMac -@end diff --git a/StoneIsland/platforms/ios/Pods/Target Support Files/GoogleToolboxForMac/GoogleToolboxForMac-prefix.pch b/StoneIsland/platforms/ios/Pods/Target Support Files/GoogleToolboxForMac/GoogleToolboxForMac-prefix.pch deleted file mode 100644 index beb2a244..00000000 --- a/StoneIsland/platforms/ios/Pods/Target Support Files/GoogleToolboxForMac/GoogleToolboxForMac-prefix.pch +++ /dev/null @@ -1,12 +0,0 @@ -#ifdef __OBJC__ -#import <UIKit/UIKit.h> -#else -#ifndef FOUNDATION_EXPORT -#if defined(__cplusplus) -#define FOUNDATION_EXPORT extern "C" -#else -#define FOUNDATION_EXPORT extern -#endif -#endif -#endif - diff --git a/StoneIsland/platforms/ios/Pods/Target Support Files/GoogleToolboxForMac/GoogleToolboxForMac.xcconfig b/StoneIsland/platforms/ios/Pods/Target Support Files/GoogleToolboxForMac/GoogleToolboxForMac.xcconfig deleted file mode 100644 index 02971f0a..00000000 --- a/StoneIsland/platforms/ios/Pods/Target Support Files/GoogleToolboxForMac/GoogleToolboxForMac.xcconfig +++ /dev/null @@ -1,10 +0,0 @@ -CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/GoogleToolboxForMac -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/GoogleToolboxForMac" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/FirebaseAnalytics" "${PODS_ROOT}/Headers/Public/FirebaseCore" "${PODS_ROOT}/Headers/Public/FirebaseInstanceID" "${PODS_ROOT}/Headers/Public/FirebaseMessaging" "${PODS_ROOT}/Headers/Public/GoogleToolboxForMac" "${PODS_ROOT}/Headers/Public/Protobuf" "${PODS_ROOT}/Headers/Public/nanopb" -OTHER_LDFLAGS = -l"z" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_ROOT = ${SRCROOT} -PODS_TARGET_SRCROOT = ${PODS_ROOT}/GoogleToolboxForMac -PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} -SKIP_INSTALL = YES diff --git a/StoneIsland/platforms/ios/Pods/Target Support Files/Pods-Stone Island/Pods-Stone Island-acknowledgements.markdown b/StoneIsland/platforms/ios/Pods/Target Support Files/Pods-Stone Island/Pods-Stone Island-acknowledgements.markdown index 749bcc29..c07bb6cb 100644 --- a/StoneIsland/platforms/ios/Pods/Target Support Files/Pods-Stone Island/Pods-Stone Island-acknowledgements.markdown +++ b/StoneIsland/platforms/ios/Pods/Target Support Files/Pods-Stone Island/Pods-Stone Island-acknowledgements.markdown @@ -1,295 +1,27 @@ # Acknowledgements This application makes use of the following third party libraries: -## FirebaseAnalytics +## GGLInstanceID -Copyright 2017 Google +Copyright 2015 Google Inc. -## FirebaseCore +## GoogleCloudMessaging -Copyright 2017 Google +Copyright 2015 Google Inc. -## FirebaseInstanceID +## GoogleIPhoneUtilities -Copyright 2017 Google +Copyright 2015 Google Inc. -## FirebaseMessaging +## GoogleInterchangeUtilities -Copyright 2017 Google +Copyright 2016 Google -## GoogleToolboxForMac +## GoogleSymbolUtilities +Copyright 2016 Google - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - - -## Protobuf - -This license applies to all parts of Protocol Buffers except the following: - - - Atomicops support for generic gcc, located in - src/google/protobuf/stubs/atomicops_internals_generic_gcc.h. - This file is copyrighted by Red Hat Inc. - - - Atomicops support for AIX/POWER, located in - src/google/protobuf/stubs/atomicops_internals_power.h. - This file is copyrighted by Bloomberg Finance LP. - -Copyright 2014, Google Inc. All rights reserved. - -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. - -Code generated by the Protocol Buffer compiler is owned by the owner -of the input file used when generating it. This code is not -standalone and requires a support library to be linked with it. This -support library is itself covered by the above license. - - -## nanopb - -Copyright (c) 2011 Petteri Aimonen <jpa at nanopb.mail.kapsi.fi> - -This software is provided 'as-is', without any express or -implied warranty. In no event will the authors be held liable -for any damages arising from the use of this software. - -Permission is granted to anyone to use this software for any -purpose, including commercial applications, and to alter it and -redistribute it freely, subject to the following restrictions: - -1. The origin of this software must not be misrepresented; you - must not claim that you wrote the original software. If you use - this software in a product, an acknowledgment in the product - documentation would be appreciated but is not required. - -2. Altered source versions must be plainly marked as such, and - must not be misrepresented as being the original software. - -3. This notice may not be removed or altered from any source - distribution. +## GoogleUtilities +Copyright 2016 Google Generated by CocoaPods - https://cocoapods.org diff --git a/StoneIsland/platforms/ios/Pods/Target Support Files/Pods-Stone Island/Pods-Stone Island-acknowledgements.plist b/StoneIsland/platforms/ios/Pods/Target Support Files/Pods-Stone Island/Pods-Stone Island-acknowledgements.plist index 2e620ed1..bf288035 100644 --- a/StoneIsland/platforms/ios/Pods/Target Support Files/Pods-Stone Island/Pods-Stone Island-acknowledgements.plist +++ b/StoneIsland/platforms/ios/Pods/Target Support Files/Pods-Stone Island/Pods-Stone Island-acknowledgements.plist @@ -14,335 +14,61 @@ </dict> <dict> <key>FooterText</key> - <string>Copyright 2017 Google</string> + <string>Copyright 2015 Google Inc.</string> <key>License</key> <string>Copyright</string> <key>Title</key> - <string>FirebaseAnalytics</string> + <string>GGLInstanceID</string> <key>Type</key> <string>PSGroupSpecifier</string> </dict> <dict> <key>FooterText</key> - <string>Copyright 2017 Google</string> + <string>Copyright 2015 Google Inc.</string> <key>License</key> <string>Copyright</string> <key>Title</key> - <string>FirebaseCore</string> + <string>GoogleCloudMessaging</string> <key>Type</key> <string>PSGroupSpecifier</string> </dict> <dict> <key>FooterText</key> - <string>Copyright 2017 Google</string> + <string>Copyright 2015 Google Inc.</string> <key>License</key> <string>Copyright</string> <key>Title</key> - <string>FirebaseInstanceID</string> + <string>GoogleIPhoneUtilities</string> <key>Type</key> <string>PSGroupSpecifier</string> </dict> <dict> <key>FooterText</key> - <string>Copyright 2017 Google</string> + <string>Copyright 2016 Google</string> <key>License</key> <string>Copyright</string> <key>Title</key> - <string>FirebaseMessaging</string> + <string>GoogleInterchangeUtilities</string> <key>Type</key> <string>PSGroupSpecifier</string> </dict> <dict> <key>FooterText</key> - <string> - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -</string> + <string>Copyright 2016 Google</string> <key>License</key> - <string>Apache</string> - <key>Title</key> - <string>GoogleToolboxForMac</string> - <key>Type</key> - <string>PSGroupSpecifier</string> - </dict> - <dict> - <key>FooterText</key> - <string>This license applies to all parts of Protocol Buffers except the following: - - - Atomicops support for generic gcc, located in - src/google/protobuf/stubs/atomicops_internals_generic_gcc.h. - This file is copyrighted by Red Hat Inc. - - - Atomicops support for AIX/POWER, located in - src/google/protobuf/stubs/atomicops_internals_power.h. - This file is copyrighted by Bloomberg Finance LP. - -Copyright 2014, Google Inc. All rights reserved. - -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. - -Code generated by the Protocol Buffer compiler is owned by the owner -of the input file used when generating it. This code is not -standalone and requires a support library to be linked with it. This -support library is itself covered by the above license. -</string> - <key>License</key> - <string>3-Clause BSD License</string> + <string>Copyright</string> <key>Title</key> - <string>Protobuf</string> + <string>GoogleSymbolUtilities</string> <key>Type</key> <string>PSGroupSpecifier</string> </dict> <dict> <key>FooterText</key> - <string>Copyright (c) 2011 Petteri Aimonen <jpa at nanopb.mail.kapsi.fi> - -This software is provided 'as-is', without any express or -implied warranty. In no event will the authors be held liable -for any damages arising from the use of this software. - -Permission is granted to anyone to use this software for any -purpose, including commercial applications, and to alter it and -redistribute it freely, subject to the following restrictions: - -1. The origin of this software must not be misrepresented; you - must not claim that you wrote the original software. If you use - this software in a product, an acknowledgment in the product - documentation would be appreciated but is not required. - -2. Altered source versions must be plainly marked as such, and - must not be misrepresented as being the original software. - -3. This notice may not be removed or altered from any source - distribution. -</string> + <string>Copyright 2016 Google</string> <key>License</key> - <string>zlib</string> + <string>Copyright</string> <key>Title</key> - <string>nanopb</string> + <string>GoogleUtilities</string> <key>Type</key> <string>PSGroupSpecifier</string> </dict> diff --git a/StoneIsland/platforms/ios/Pods/Target Support Files/Pods-Stone Island/Pods-Stone Island.debug.xcconfig b/StoneIsland/platforms/ios/Pods/Target Support Files/Pods-Stone Island/Pods-Stone Island.debug.xcconfig index a59d208b..fcb5941f 100644 --- a/StoneIsland/platforms/ios/Pods/Target Support Files/Pods-Stone Island/Pods-Stone Island.debug.xcconfig +++ b/StoneIsland/platforms/ios/Pods/Target Support Files/Pods-Stone Island/Pods-Stone Island.debug.xcconfig @@ -1,9 +1,9 @@ -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/FirebaseAnalytics/Frameworks" "${PODS_ROOT}/FirebaseCore/Frameworks" "${PODS_ROOT}/FirebaseInstanceID/Frameworks" "${PODS_ROOT}/FirebaseMessaging/Frameworks" -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 $(inherited) GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS=1 $(inherited) PB_FIELD_32BIT=1 PB_NO_PACKED_STRUCTS=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/FirebaseAnalytics" "${PODS_ROOT}/Headers/Public/FirebaseCore" "${PODS_ROOT}/Headers/Public/FirebaseInstanceID" "${PODS_ROOT}/Headers/Public/FirebaseMessaging" "${PODS_ROOT}/Headers/Public/GoogleToolboxForMac" "${PODS_ROOT}/Headers/Public/Protobuf" "${PODS_ROOT}/Headers/Public/nanopb" -LIBRARY_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/GoogleToolboxForMac" "$PODS_CONFIGURATION_BUILD_DIR/Protobuf" "$PODS_CONFIGURATION_BUILD_DIR/nanopb" -OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/FirebaseAnalytics" -isystem "${PODS_ROOT}/Headers/Public/FirebaseCore" -isystem "${PODS_ROOT}/Headers/Public/FirebaseInstanceID" -isystem "${PODS_ROOT}/Headers/Public/FirebaseMessaging" -isystem "${PODS_ROOT}/Headers/Public/GoogleToolboxForMac" -isystem "${PODS_ROOT}/Headers/Public/Protobuf" -isystem "${PODS_ROOT}/Headers/Public/nanopb" -OTHER_LDFLAGS = $(inherited) -ObjC -l"GoogleToolboxForMac" -l"Protobuf" -l"c++" -l"nanopb" -l"sqlite3" -l"z" -framework "AddressBook" -framework "FirebaseAnalytics" -framework "FirebaseCore" -framework "FirebaseCoreDiagnostics" -framework "FirebaseInstanceID" -framework "FirebaseMessaging" -framework "FirebaseNanoPB" -framework "StoreKit" -framework "SystemConfiguration" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/GoogleIPhoneUtilities/Frameworks" "${PODS_ROOT}/GoogleInterchangeUtilities/Frameworks/frameworks" "${PODS_ROOT}/GoogleSymbolUtilities/Frameworks/frameworks" "${PODS_ROOT}/GoogleUtilities/Frameworks/frameworks" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/GGLInstanceID" "${PODS_ROOT}/Headers/Public/GoogleCloudMessaging" "${PODS_ROOT}/Headers/Public/GoogleIPhoneUtilities" "${PODS_ROOT}/Headers/Public/GoogleInterchangeUtilities" "${PODS_ROOT}/Headers/Public/GoogleSymbolUtilities" "${PODS_ROOT}/Headers/Public/GoogleUtilities" +LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/GGLInstanceID/Libraries" $(inherited) "${PODS_ROOT}/GoogleCloudMessaging/Libraries" +OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/GGLInstanceID" -isystem "${PODS_ROOT}/Headers/Public/GoogleCloudMessaging" -isystem "${PODS_ROOT}/Headers/Public/GoogleIPhoneUtilities" -isystem "${PODS_ROOT}/Headers/Public/GoogleInterchangeUtilities" -isystem "${PODS_ROOT}/Headers/Public/GoogleSymbolUtilities" -isystem "${PODS_ROOT}/Headers/Public/GoogleUtilities" +OTHER_LDFLAGS = $(inherited) -ObjC -l"GGLInstanceIDLib" -l"GcmLib" -l"sqlite3" -l"z" -framework "AddressBook" -framework "CoreGraphics" -framework "GoogleIPhoneUtilities" -framework "GoogleInterchangeUtilities" -framework "GoogleSymbolUtilities" -framework "GoogleUtilities" -framework "SystemConfiguration" PODS_BUILD_DIR = $BUILD_DIR PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_ROOT = ${SRCROOT}/Pods diff --git a/StoneIsland/platforms/ios/Pods/Target Support Files/Pods-Stone Island/Pods-Stone Island.release.xcconfig b/StoneIsland/platforms/ios/Pods/Target Support Files/Pods-Stone Island/Pods-Stone Island.release.xcconfig index a59d208b..fcb5941f 100644 --- a/StoneIsland/platforms/ios/Pods/Target Support Files/Pods-Stone Island/Pods-Stone Island.release.xcconfig +++ b/StoneIsland/platforms/ios/Pods/Target Support Files/Pods-Stone Island/Pods-Stone Island.release.xcconfig @@ -1,9 +1,9 @@ -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/FirebaseAnalytics/Frameworks" "${PODS_ROOT}/FirebaseCore/Frameworks" "${PODS_ROOT}/FirebaseInstanceID/Frameworks" "${PODS_ROOT}/FirebaseMessaging/Frameworks" -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 $(inherited) GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS=1 $(inherited) PB_FIELD_32BIT=1 PB_NO_PACKED_STRUCTS=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/FirebaseAnalytics" "${PODS_ROOT}/Headers/Public/FirebaseCore" "${PODS_ROOT}/Headers/Public/FirebaseInstanceID" "${PODS_ROOT}/Headers/Public/FirebaseMessaging" "${PODS_ROOT}/Headers/Public/GoogleToolboxForMac" "${PODS_ROOT}/Headers/Public/Protobuf" "${PODS_ROOT}/Headers/Public/nanopb" -LIBRARY_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/GoogleToolboxForMac" "$PODS_CONFIGURATION_BUILD_DIR/Protobuf" "$PODS_CONFIGURATION_BUILD_DIR/nanopb" -OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/FirebaseAnalytics" -isystem "${PODS_ROOT}/Headers/Public/FirebaseCore" -isystem "${PODS_ROOT}/Headers/Public/FirebaseInstanceID" -isystem "${PODS_ROOT}/Headers/Public/FirebaseMessaging" -isystem "${PODS_ROOT}/Headers/Public/GoogleToolboxForMac" -isystem "${PODS_ROOT}/Headers/Public/Protobuf" -isystem "${PODS_ROOT}/Headers/Public/nanopb" -OTHER_LDFLAGS = $(inherited) -ObjC -l"GoogleToolboxForMac" -l"Protobuf" -l"c++" -l"nanopb" -l"sqlite3" -l"z" -framework "AddressBook" -framework "FirebaseAnalytics" -framework "FirebaseCore" -framework "FirebaseCoreDiagnostics" -framework "FirebaseInstanceID" -framework "FirebaseMessaging" -framework "FirebaseNanoPB" -framework "StoreKit" -framework "SystemConfiguration" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/GoogleIPhoneUtilities/Frameworks" "${PODS_ROOT}/GoogleInterchangeUtilities/Frameworks/frameworks" "${PODS_ROOT}/GoogleSymbolUtilities/Frameworks/frameworks" "${PODS_ROOT}/GoogleUtilities/Frameworks/frameworks" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/GGLInstanceID" "${PODS_ROOT}/Headers/Public/GoogleCloudMessaging" "${PODS_ROOT}/Headers/Public/GoogleIPhoneUtilities" "${PODS_ROOT}/Headers/Public/GoogleInterchangeUtilities" "${PODS_ROOT}/Headers/Public/GoogleSymbolUtilities" "${PODS_ROOT}/Headers/Public/GoogleUtilities" +LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/GGLInstanceID/Libraries" $(inherited) "${PODS_ROOT}/GoogleCloudMessaging/Libraries" +OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/GGLInstanceID" -isystem "${PODS_ROOT}/Headers/Public/GoogleCloudMessaging" -isystem "${PODS_ROOT}/Headers/Public/GoogleIPhoneUtilities" -isystem "${PODS_ROOT}/Headers/Public/GoogleInterchangeUtilities" -isystem "${PODS_ROOT}/Headers/Public/GoogleSymbolUtilities" -isystem "${PODS_ROOT}/Headers/Public/GoogleUtilities" +OTHER_LDFLAGS = $(inherited) -ObjC -l"GGLInstanceIDLib" -l"GcmLib" -l"sqlite3" -l"z" -framework "AddressBook" -framework "CoreGraphics" -framework "GoogleIPhoneUtilities" -framework "GoogleInterchangeUtilities" -framework "GoogleSymbolUtilities" -framework "GoogleUtilities" -framework "SystemConfiguration" PODS_BUILD_DIR = $BUILD_DIR PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_ROOT = ${SRCROOT}/Pods diff --git a/StoneIsland/platforms/ios/Pods/Target Support Files/Protobuf/Protobuf-dummy.m b/StoneIsland/platforms/ios/Pods/Target Support Files/Protobuf/Protobuf-dummy.m deleted file mode 100644 index e0f0a337..00000000 --- a/StoneIsland/platforms/ios/Pods/Target Support Files/Protobuf/Protobuf-dummy.m +++ /dev/null @@ -1,5 +0,0 @@ -#import <Foundation/Foundation.h> -@interface PodsDummy_Protobuf : NSObject -@end -@implementation PodsDummy_Protobuf -@end diff --git a/StoneIsland/platforms/ios/Pods/Target Support Files/Protobuf/Protobuf-prefix.pch b/StoneIsland/platforms/ios/Pods/Target Support Files/Protobuf/Protobuf-prefix.pch deleted file mode 100644 index beb2a244..00000000 --- a/StoneIsland/platforms/ios/Pods/Target Support Files/Protobuf/Protobuf-prefix.pch +++ /dev/null @@ -1,12 +0,0 @@ -#ifdef __OBJC__ -#import <UIKit/UIKit.h> -#else -#ifndef FOUNDATION_EXPORT -#if defined(__cplusplus) -#define FOUNDATION_EXPORT extern "C" -#else -#define FOUNDATION_EXPORT extern -#endif -#endif -#endif - diff --git a/StoneIsland/platforms/ios/Pods/Target Support Files/Protobuf/Protobuf.xcconfig b/StoneIsland/platforms/ios/Pods/Target Support Files/Protobuf/Protobuf.xcconfig deleted file mode 100644 index 698e3f2a..00000000 --- a/StoneIsland/platforms/ios/Pods/Target Support Files/Protobuf/Protobuf.xcconfig +++ /dev/null @@ -1,9 +0,0 @@ -CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/Protobuf -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 $(inherited) GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/Protobuf" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/FirebaseAnalytics" "${PODS_ROOT}/Headers/Public/FirebaseCore" "${PODS_ROOT}/Headers/Public/FirebaseInstanceID" "${PODS_ROOT}/Headers/Public/FirebaseMessaging" "${PODS_ROOT}/Headers/Public/GoogleToolboxForMac" "${PODS_ROOT}/Headers/Public/Protobuf" "${PODS_ROOT}/Headers/Public/nanopb" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_ROOT = ${SRCROOT} -PODS_TARGET_SRCROOT = ${PODS_ROOT}/Protobuf -PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} -SKIP_INSTALL = YES diff --git a/StoneIsland/platforms/ios/Pods/Target Support Files/nanopb/nanopb-dummy.m b/StoneIsland/platforms/ios/Pods/Target Support Files/nanopb/nanopb-dummy.m deleted file mode 100644 index b3fa5956..00000000 --- a/StoneIsland/platforms/ios/Pods/Target Support Files/nanopb/nanopb-dummy.m +++ /dev/null @@ -1,5 +0,0 @@ -#import <Foundation/Foundation.h> -@interface PodsDummy_nanopb : NSObject -@end -@implementation PodsDummy_nanopb -@end diff --git a/StoneIsland/platforms/ios/Pods/Target Support Files/nanopb/nanopb-prefix.pch b/StoneIsland/platforms/ios/Pods/Target Support Files/nanopb/nanopb-prefix.pch deleted file mode 100644 index beb2a244..00000000 --- a/StoneIsland/platforms/ios/Pods/Target Support Files/nanopb/nanopb-prefix.pch +++ /dev/null @@ -1,12 +0,0 @@ -#ifdef __OBJC__ -#import <UIKit/UIKit.h> -#else -#ifndef FOUNDATION_EXPORT -#if defined(__cplusplus) -#define FOUNDATION_EXPORT extern "C" -#else -#define FOUNDATION_EXPORT extern -#endif -#endif -#endif - diff --git a/StoneIsland/platforms/ios/Pods/Target Support Files/nanopb/nanopb.xcconfig b/StoneIsland/platforms/ios/Pods/Target Support Files/nanopb/nanopb.xcconfig deleted file mode 100644 index 41e216e7..00000000 --- a/StoneIsland/platforms/ios/Pods/Target Support Files/nanopb/nanopb.xcconfig +++ /dev/null @@ -1,9 +0,0 @@ -CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/nanopb -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 $(inherited) PB_FIELD_32BIT=1 PB_NO_PACKED_STRUCTS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/nanopb" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/FirebaseAnalytics" "${PODS_ROOT}/Headers/Public/FirebaseCore" "${PODS_ROOT}/Headers/Public/FirebaseInstanceID" "${PODS_ROOT}/Headers/Public/FirebaseMessaging" "${PODS_ROOT}/Headers/Public/GoogleToolboxForMac" "${PODS_ROOT}/Headers/Public/Protobuf" "${PODS_ROOT}/Headers/Public/nanopb" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_ROOT = ${SRCROOT} -PODS_TARGET_SRCROOT = ${PODS_ROOT}/nanopb -PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} -SKIP_INSTALL = YES diff --git a/StoneIsland/platforms/ios/Pods/nanopb/LICENSE.txt b/StoneIsland/platforms/ios/Pods/nanopb/LICENSE.txt deleted file mode 100644 index d11c9af1..00000000 --- a/StoneIsland/platforms/ios/Pods/nanopb/LICENSE.txt +++ /dev/null @@ -1,20 +0,0 @@ -Copyright (c) 2011 Petteri Aimonen <jpa at nanopb.mail.kapsi.fi> - -This software is provided 'as-is', without any express or -implied warranty. In no event will the authors be held liable -for any damages arising from the use of this software. - -Permission is granted to anyone to use this software for any -purpose, including commercial applications, and to alter it and -redistribute it freely, subject to the following restrictions: - -1. The origin of this software must not be misrepresented; you - must not claim that you wrote the original software. If you use - this software in a product, an acknowledgment in the product - documentation would be appreciated but is not required. - -2. Altered source versions must be plainly marked as such, and - must not be misrepresented as being the original software. - -3. This notice may not be removed or altered from any source - distribution. diff --git a/StoneIsland/platforms/ios/Pods/nanopb/README.md b/StoneIsland/platforms/ios/Pods/nanopb/README.md deleted file mode 100644 index 07860f06..00000000 --- a/StoneIsland/platforms/ios/Pods/nanopb/README.md +++ /dev/null @@ -1,71 +0,0 @@ -Nanopb - Protocol Buffers for Embedded Systems -============================================== - -[](https://travis-ci.org/nanopb/nanopb) - -Nanopb is a small code-size Protocol Buffers implementation in ansi C. It is -especially suitable for use in microcontrollers, but fits any memory -restricted system. - -* **Homepage:** https://jpa.kapsi.fi/nanopb/ -* **Documentation:** https://jpa.kapsi.fi/nanopb/docs/ -* **Downloads:** https://jpa.kapsi.fi/nanopb/download/ -* **Forum:** https://groups.google.com/forum/#!forum/nanopb - - - -Using the nanopb library ------------------------- -To use the nanopb library, you need to do two things: - -1. Compile your .proto files for nanopb, using protoc. -2. Include pb_encode.c, pb_decode.c and pb_common.c in your project. - -The easiest way to get started is to study the project in "examples/simple". -It contains a Makefile, which should work directly under most Linux systems. -However, for any other kind of build system, see the manual steps in -README.txt in that folder. - - - -Using the Protocol Buffers compiler (protoc) --------------------------------------------- -The nanopb generator is implemented as a plugin for the Google's own protoc -compiler. This has the advantage that there is no need to reimplement the -basic parsing of .proto files. However, it does mean that you need the -Google's protobuf library in order to run the generator. - -If you have downloaded a binary package for nanopb (either Windows, Linux or -Mac OS X version), the 'protoc' binary is included in the 'generator-bin' -folder. In this case, you are ready to go. Simply run this command: - - generator-bin/protoc --nanopb_out=. myprotocol.proto - -However, if you are using a git checkout or a plain source distribution, you -need to provide your own version of protoc and the Google's protobuf library. -On Linux, the necessary packages are protobuf-compiler and python-protobuf. -On Windows, you can either build Google's protobuf library from source or use -one of the binary distributions of it. In either case, if you use a separate -protoc, you need to manually give the path to nanopb generator: - - protoc --plugin=protoc-gen-nanopb=nanopb/generator/protoc-gen-nanopb ... - - - -Running the tests ------------------ -If you want to perform further development of the nanopb core, or to verify -its functionality using your compiler and platform, you'll want to run the -test suite. The build rules for the test suite are implemented using Scons, -so you need to have that installed. To run the tests: - - cd tests - scons - -This will show the progress of various test cases. If the output does not -end in an error, the test cases were successful. - -Note: Mac OS X by default aliases 'clang' as 'gcc', while not actually -supporting the same command line options as gcc does. To run tests on -Mac OS X, use: "scons CC=clang CXX=clang". Same way can be used to run -tests with different compilers on any platform. diff --git a/StoneIsland/platforms/ios/Pods/nanopb/pb.h b/StoneIsland/platforms/ios/Pods/nanopb/pb.h deleted file mode 100644 index bf05a63c..00000000 --- a/StoneIsland/platforms/ios/Pods/nanopb/pb.h +++ /dev/null @@ -1,583 +0,0 @@ -/* Common parts of the nanopb library. Most of these are quite low-level - * stuff. For the high-level interface, see pb_encode.h and pb_decode.h. - */ - -#ifndef PB_H_INCLUDED -#define PB_H_INCLUDED - -/***************************************************************** - * Nanopb compilation time options. You can change these here by * - * uncommenting the lines, or on the compiler command line. * - *****************************************************************/ - -/* Enable support for dynamically allocated fields */ -/* #define PB_ENABLE_MALLOC 1 */ - -/* Define this if your CPU / compiler combination does not support - * unaligned memory access to packed structures. */ -/* #define PB_NO_PACKED_STRUCTS 1 */ - -/* Increase the number of required fields that are tracked. - * A compiler warning will tell if you need this. */ -/* #define PB_MAX_REQUIRED_FIELDS 256 */ - -/* Add support for tag numbers > 255 and fields larger than 255 bytes. */ -/* #define PB_FIELD_16BIT 1 */ - -/* Add support for tag numbers > 65536 and fields larger than 65536 bytes. */ -/* #define PB_FIELD_32BIT 1 */ - -/* Disable support for error messages in order to save some code space. */ -/* #define PB_NO_ERRMSG 1 */ - -/* Disable support for custom streams (support only memory buffers). */ -/* #define PB_BUFFER_ONLY 1 */ - -/* Switch back to the old-style callback function signature. - * This was the default until nanopb-0.2.1. */ -/* #define PB_OLD_CALLBACK_STYLE */ - - -/****************************************************************** - * You usually don't need to change anything below this line. * - * Feel free to look around and use the defined macros, though. * - ******************************************************************/ - - -/* Version of the nanopb library. Just in case you want to check it in - * your own program. */ -#define NANOPB_VERSION nanopb-0.3.8 - -/* Include all the system headers needed by nanopb. You will need the - * definitions of the following: - * - strlen, memcpy, memset functions - * - [u]int_least8_t, uint_fast8_t, [u]int_least16_t, [u]int32_t, [u]int64_t - * - size_t - * - bool - * - * If you don't have the standard header files, you can instead provide - * a custom header that defines or includes all this. In that case, - * define PB_SYSTEM_HEADER to the path of this file. - */ -#ifdef PB_SYSTEM_HEADER -#include PB_SYSTEM_HEADER -#else -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <string.h> - -#ifdef PB_ENABLE_MALLOC -#include <stdlib.h> -#endif -#endif - -/* Macro for defining packed structures (compiler dependent). - * This just reduces memory requirements, but is not required. - */ -#if defined(PB_NO_PACKED_STRUCTS) - /* Disable struct packing */ -# define PB_PACKED_STRUCT_START -# define PB_PACKED_STRUCT_END -# define pb_packed -#elif defined(__GNUC__) || defined(__clang__) - /* For GCC and clang */ -# define PB_PACKED_STRUCT_START -# define PB_PACKED_STRUCT_END -# define pb_packed __attribute__((packed)) -#elif defined(__ICCARM__) || defined(__CC_ARM) - /* For IAR ARM and Keil MDK-ARM compilers */ -# define PB_PACKED_STRUCT_START _Pragma("pack(push, 1)") -# define PB_PACKED_STRUCT_END _Pragma("pack(pop)") -# define pb_packed -#elif defined(_MSC_VER) && (_MSC_VER >= 1500) - /* For Microsoft Visual C++ */ -# define PB_PACKED_STRUCT_START __pragma(pack(push, 1)) -# define PB_PACKED_STRUCT_END __pragma(pack(pop)) -# define pb_packed -#else - /* Unknown compiler */ -# define PB_PACKED_STRUCT_START -# define PB_PACKED_STRUCT_END -# define pb_packed -#endif - -/* Handly macro for suppressing unreferenced-parameter compiler warnings. */ -#ifndef PB_UNUSED -#define PB_UNUSED(x) (void)(x) -#endif - -/* Compile-time assertion, used for checking compatible compilation options. - * If this does not work properly on your compiler, use - * #define PB_NO_STATIC_ASSERT to disable it. - * - * But before doing that, check carefully the error message / place where it - * comes from to see if the error has a real cause. Unfortunately the error - * message is not always very clear to read, but you can see the reason better - * in the place where the PB_STATIC_ASSERT macro was called. - */ -#ifndef PB_NO_STATIC_ASSERT -#ifndef PB_STATIC_ASSERT -#define PB_STATIC_ASSERT(COND,MSG) typedef char PB_STATIC_ASSERT_MSG(MSG, __LINE__, __COUNTER__)[(COND)?1:-1]; -#define PB_STATIC_ASSERT_MSG(MSG, LINE, COUNTER) PB_STATIC_ASSERT_MSG_(MSG, LINE, COUNTER) -#define PB_STATIC_ASSERT_MSG_(MSG, LINE, COUNTER) pb_static_assertion_##MSG##LINE##COUNTER -#endif -#else -#define PB_STATIC_ASSERT(COND,MSG) -#endif - -/* Number of required fields to keep track of. */ -#ifndef PB_MAX_REQUIRED_FIELDS -#define PB_MAX_REQUIRED_FIELDS 64 -#endif - -#if PB_MAX_REQUIRED_FIELDS < 64 -#error You should not lower PB_MAX_REQUIRED_FIELDS from the default value (64). -#endif - -/* List of possible field types. These are used in the autogenerated code. - * Least-significant 4 bits tell the scalar type - * Most-significant 4 bits specify repeated/required/packed etc. - */ - -typedef uint_least8_t pb_type_t; - -/**** Field data types ****/ - -/* Numeric types */ -#define PB_LTYPE_VARINT 0x00 /* int32, int64, enum, bool */ -#define PB_LTYPE_UVARINT 0x01 /* uint32, uint64 */ -#define PB_LTYPE_SVARINT 0x02 /* sint32, sint64 */ -#define PB_LTYPE_FIXED32 0x03 /* fixed32, sfixed32, float */ -#define PB_LTYPE_FIXED64 0x04 /* fixed64, sfixed64, double */ - -/* Marker for last packable field type. */ -#define PB_LTYPE_LAST_PACKABLE 0x04 - -/* Byte array with pre-allocated buffer. - * data_size is the length of the allocated PB_BYTES_ARRAY structure. */ -#define PB_LTYPE_BYTES 0x05 - -/* String with pre-allocated buffer. - * data_size is the maximum length. */ -#define PB_LTYPE_STRING 0x06 - -/* Submessage - * submsg_fields is pointer to field descriptions */ -#define PB_LTYPE_SUBMESSAGE 0x07 - -/* Extension pseudo-field - * The field contains a pointer to pb_extension_t */ -#define PB_LTYPE_EXTENSION 0x08 - -/* Byte array with inline, pre-allocated byffer. - * data_size is the length of the inline, allocated buffer. - * This differs from PB_LTYPE_BYTES by defining the element as - * pb_byte_t[data_size] rather than pb_bytes_array_t. */ -#define PB_LTYPE_FIXED_LENGTH_BYTES 0x09 - -/* Number of declared LTYPES */ -#define PB_LTYPES_COUNT 0x0A -#define PB_LTYPE_MASK 0x0F - -/**** Field repetition rules ****/ - -#define PB_HTYPE_REQUIRED 0x00 -#define PB_HTYPE_OPTIONAL 0x10 -#define PB_HTYPE_REPEATED 0x20 -#define PB_HTYPE_ONEOF 0x30 -#define PB_HTYPE_MASK 0x30 - -/**** Field allocation types ****/ - -#define PB_ATYPE_STATIC 0x00 -#define PB_ATYPE_POINTER 0x80 -#define PB_ATYPE_CALLBACK 0x40 -#define PB_ATYPE_MASK 0xC0 - -#define PB_ATYPE(x) ((x) & PB_ATYPE_MASK) -#define PB_HTYPE(x) ((x) & PB_HTYPE_MASK) -#define PB_LTYPE(x) ((x) & PB_LTYPE_MASK) - -/* Data type used for storing sizes of struct fields - * and array counts. - */ -#if defined(PB_FIELD_32BIT) - typedef uint32_t pb_size_t; - typedef int32_t pb_ssize_t; -#elif defined(PB_FIELD_16BIT) - typedef uint_least16_t pb_size_t; - typedef int_least16_t pb_ssize_t; -#else - typedef uint_least8_t pb_size_t; - typedef int_least8_t pb_ssize_t; -#endif -#define PB_SIZE_MAX ((pb_size_t)-1) - -/* Data type for storing encoded data and other byte streams. - * This typedef exists to support platforms where uint8_t does not exist. - * You can regard it as equivalent on uint8_t on other platforms. - */ -typedef uint_least8_t pb_byte_t; - -/* This structure is used in auto-generated constants - * to specify struct fields. - * You can change field sizes if you need structures - * larger than 256 bytes or field tags larger than 256. - * The compiler should complain if your .proto has such - * structures. Fix that by defining PB_FIELD_16BIT or - * PB_FIELD_32BIT. - */ -PB_PACKED_STRUCT_START -typedef struct pb_field_s pb_field_t; -struct pb_field_s { - pb_size_t tag; - pb_type_t type; - pb_size_t data_offset; /* Offset of field data, relative to previous field. */ - pb_ssize_t size_offset; /* Offset of array size or has-boolean, relative to data */ - pb_size_t data_size; /* Data size in bytes for a single item */ - pb_size_t array_size; /* Maximum number of entries in array */ - - /* Field definitions for submessage - * OR default value for all other non-array, non-callback types - * If null, then field will zeroed. */ - const void *ptr; -} pb_packed; -PB_PACKED_STRUCT_END - -/* Make sure that the standard integer types are of the expected sizes. - * Otherwise fixed32/fixed64 fields can break. - * - * If you get errors here, it probably means that your stdint.h is not - * correct for your platform. - */ -PB_STATIC_ASSERT(sizeof(int64_t) == 2 * sizeof(int32_t), INT64_T_WRONG_SIZE) -PB_STATIC_ASSERT(sizeof(uint64_t) == 2 * sizeof(uint32_t), UINT64_T_WRONG_SIZE) - -/* This structure is used for 'bytes' arrays. - * It has the number of bytes in the beginning, and after that an array. - * Note that actual structs used will have a different length of bytes array. - */ -#define PB_BYTES_ARRAY_T(n) struct { pb_size_t size; pb_byte_t bytes[n]; } -#define PB_BYTES_ARRAY_T_ALLOCSIZE(n) ((size_t)n + offsetof(pb_bytes_array_t, bytes)) - -struct pb_bytes_array_s { - pb_size_t size; - pb_byte_t bytes[1]; -}; -typedef struct pb_bytes_array_s pb_bytes_array_t; - -/* This structure is used for giving the callback function. - * It is stored in the message structure and filled in by the method that - * calls pb_decode. - * - * The decoding callback will be given a limited-length stream - * If the wire type was string, the length is the length of the string. - * If the wire type was a varint/fixed32/fixed64, the length is the length - * of the actual value. - * The function may be called multiple times (especially for repeated types, - * but also otherwise if the message happens to contain the field multiple - * times.) - * - * The encoding callback will receive the actual output stream. - * It should write all the data in one call, including the field tag and - * wire type. It can write multiple fields. - * - * The callback can be null if you want to skip a field. - */ -typedef struct pb_istream_s pb_istream_t; -typedef struct pb_ostream_s pb_ostream_t; -typedef struct pb_callback_s pb_callback_t; -struct pb_callback_s { -#ifdef PB_OLD_CALLBACK_STYLE - /* Deprecated since nanopb-0.2.1 */ - union { - bool (*decode)(pb_istream_t *stream, const pb_field_t *field, void *arg); - bool (*encode)(pb_ostream_t *stream, const pb_field_t *field, const void *arg); - } funcs; -#else - /* New function signature, which allows modifying arg contents in callback. */ - union { - bool (*decode)(pb_istream_t *stream, const pb_field_t *field, void **arg); - bool (*encode)(pb_ostream_t *stream, const pb_field_t *field, void * const *arg); - } funcs; -#endif - - /* Free arg for use by callback */ - void *arg; -}; - -/* Wire types. Library user needs these only in encoder callbacks. */ -typedef enum { - PB_WT_VARINT = 0, - PB_WT_64BIT = 1, - PB_WT_STRING = 2, - PB_WT_32BIT = 5 -} pb_wire_type_t; - -/* Structure for defining the handling of unknown/extension fields. - * Usually the pb_extension_type_t structure is automatically generated, - * while the pb_extension_t structure is created by the user. However, - * if you want to catch all unknown fields, you can also create a custom - * pb_extension_type_t with your own callback. - */ -typedef struct pb_extension_type_s pb_extension_type_t; -typedef struct pb_extension_s pb_extension_t; -struct pb_extension_type_s { - /* Called for each unknown field in the message. - * If you handle the field, read off all of its data and return true. - * If you do not handle the field, do not read anything and return true. - * If you run into an error, return false. - * Set to NULL for default handler. - */ - bool (*decode)(pb_istream_t *stream, pb_extension_t *extension, - uint32_t tag, pb_wire_type_t wire_type); - - /* Called once after all regular fields have been encoded. - * If you have something to write, do so and return true. - * If you do not have anything to write, just return true. - * If you run into an error, return false. - * Set to NULL for default handler. - */ - bool (*encode)(pb_ostream_t *stream, const pb_extension_t *extension); - - /* Free field for use by the callback. */ - const void *arg; -}; - -struct pb_extension_s { - /* Type describing the extension field. Usually you'll initialize - * this to a pointer to the automatically generated structure. */ - const pb_extension_type_t *type; - - /* Destination for the decoded data. This must match the datatype - * of the extension field. */ - void *dest; - - /* Pointer to the next extension handler, or NULL. - * If this extension does not match a field, the next handler is - * automatically called. */ - pb_extension_t *next; - - /* The decoder sets this to true if the extension was found. - * Ignored for encoding. */ - bool found; -}; - -/* Memory allocation functions to use. You can define pb_realloc and - * pb_free to custom functions if you want. */ -#ifdef PB_ENABLE_MALLOC -# ifndef pb_realloc -# define pb_realloc(ptr, size) realloc(ptr, size) -# endif -# ifndef pb_free -# define pb_free(ptr) free(ptr) -# endif -#endif - -/* This is used to inform about need to regenerate .pb.h/.pb.c files. */ -#define PB_PROTO_HEADER_VERSION 30 - -/* These macros are used to declare pb_field_t's in the constant array. */ -/* Size of a structure member, in bytes. */ -#define pb_membersize(st, m) (sizeof ((st*)0)->m) -/* Number of entries in an array. */ -#define pb_arraysize(st, m) (pb_membersize(st, m) / pb_membersize(st, m[0])) -/* Delta from start of one member to the start of another member. */ -#define pb_delta(st, m1, m2) ((int)offsetof(st, m1) - (int)offsetof(st, m2)) -/* Marks the end of the field list */ -#define PB_LAST_FIELD {0,(pb_type_t) 0,0,0,0,0,0} - -/* Macros for filling in the data_offset field */ -/* data_offset for first field in a message */ -#define PB_DATAOFFSET_FIRST(st, m1, m2) (offsetof(st, m1)) -/* data_offset for subsequent fields */ -#define PB_DATAOFFSET_OTHER(st, m1, m2) (offsetof(st, m1) - offsetof(st, m2) - pb_membersize(st, m2)) -/* data offset for subsequent fields inside an union (oneof) */ -#define PB_DATAOFFSET_UNION(st, m1, m2) (PB_SIZE_MAX) -/* Choose first/other based on m1 == m2 (deprecated, remains for backwards compatibility) */ -#define PB_DATAOFFSET_CHOOSE(st, m1, m2) (int)(offsetof(st, m1) == offsetof(st, m2) \ - ? PB_DATAOFFSET_FIRST(st, m1, m2) \ - : PB_DATAOFFSET_OTHER(st, m1, m2)) - -/* Required fields are the simplest. They just have delta (padding) from - * previous field end, and the size of the field. Pointer is used for - * submessages and default values. - */ -#define PB_REQUIRED_STATIC(tag, st, m, fd, ltype, ptr) \ - {tag, PB_ATYPE_STATIC | PB_HTYPE_REQUIRED | ltype, \ - fd, 0, pb_membersize(st, m), 0, ptr} - -/* Optional fields add the delta to the has_ variable. */ -#define PB_OPTIONAL_STATIC(tag, st, m, fd, ltype, ptr) \ - {tag, PB_ATYPE_STATIC | PB_HTYPE_OPTIONAL | ltype, \ - fd, \ - pb_delta(st, has_ ## m, m), \ - pb_membersize(st, m), 0, ptr} - -#define PB_SINGULAR_STATIC(tag, st, m, fd, ltype, ptr) \ - {tag, PB_ATYPE_STATIC | PB_HTYPE_OPTIONAL | ltype, \ - fd, 0, pb_membersize(st, m), 0, ptr} - -/* Repeated fields have a _count field and also the maximum number of entries. */ -#define PB_REPEATED_STATIC(tag, st, m, fd, ltype, ptr) \ - {tag, PB_ATYPE_STATIC | PB_HTYPE_REPEATED | ltype, \ - fd, \ - pb_delta(st, m ## _count, m), \ - pb_membersize(st, m[0]), \ - pb_arraysize(st, m), ptr} - -/* Allocated fields carry the size of the actual data, not the pointer */ -#define PB_REQUIRED_POINTER(tag, st, m, fd, ltype, ptr) \ - {tag, PB_ATYPE_POINTER | PB_HTYPE_REQUIRED | ltype, \ - fd, 0, pb_membersize(st, m[0]), 0, ptr} - -/* Optional fields don't need a has_ variable, as information would be redundant */ -#define PB_OPTIONAL_POINTER(tag, st, m, fd, ltype, ptr) \ - {tag, PB_ATYPE_POINTER | PB_HTYPE_OPTIONAL | ltype, \ - fd, 0, pb_membersize(st, m[0]), 0, ptr} - -/* Same as optional fields*/ -#define PB_SINGULAR_POINTER(tag, st, m, fd, ltype, ptr) \ - {tag, PB_ATYPE_POINTER | PB_HTYPE_OPTIONAL | ltype, \ - fd, 0, pb_membersize(st, m[0]), 0, ptr} - -/* Repeated fields have a _count field and a pointer to array of pointers */ -#define PB_REPEATED_POINTER(tag, st, m, fd, ltype, ptr) \ - {tag, PB_ATYPE_POINTER | PB_HTYPE_REPEATED | ltype, \ - fd, pb_delta(st, m ## _count, m), \ - pb_membersize(st, m[0]), 0, ptr} - -/* Callbacks are much like required fields except with special datatype. */ -#define PB_REQUIRED_CALLBACK(tag, st, m, fd, ltype, ptr) \ - {tag, PB_ATYPE_CALLBACK | PB_HTYPE_REQUIRED | ltype, \ - fd, 0, pb_membersize(st, m), 0, ptr} - -#define PB_OPTIONAL_CALLBACK(tag, st, m, fd, ltype, ptr) \ - {tag, PB_ATYPE_CALLBACK | PB_HTYPE_OPTIONAL | ltype, \ - fd, 0, pb_membersize(st, m), 0, ptr} - -#define PB_SINGULAR_CALLBACK(tag, st, m, fd, ltype, ptr) \ - {tag, PB_ATYPE_CALLBACK | PB_HTYPE_OPTIONAL | ltype, \ - fd, 0, pb_membersize(st, m), 0, ptr} - -#define PB_REPEATED_CALLBACK(tag, st, m, fd, ltype, ptr) \ - {tag, PB_ATYPE_CALLBACK | PB_HTYPE_REPEATED | ltype, \ - fd, 0, pb_membersize(st, m), 0, ptr} - -/* Optional extensions don't have the has_ field, as that would be redundant. - * Furthermore, the combination of OPTIONAL without has_ field is used - * for indicating proto3 style fields. Extensions exist in proto2 mode only, - * so they should be encoded according to proto2 rules. To avoid the conflict, - * extensions are marked as REQUIRED instead. - */ -#define PB_OPTEXT_STATIC(tag, st, m, fd, ltype, ptr) \ - {tag, PB_ATYPE_STATIC | PB_HTYPE_REQUIRED | ltype, \ - 0, \ - 0, \ - pb_membersize(st, m), 0, ptr} - -#define PB_OPTEXT_POINTER(tag, st, m, fd, ltype, ptr) \ - PB_OPTIONAL_POINTER(tag, st, m, fd, ltype, ptr) - -#define PB_OPTEXT_CALLBACK(tag, st, m, fd, ltype, ptr) \ - PB_OPTIONAL_CALLBACK(tag, st, m, fd, ltype, ptr) - -/* The mapping from protobuf types to LTYPEs is done using these macros. */ -#define PB_LTYPE_MAP_BOOL PB_LTYPE_VARINT -#define PB_LTYPE_MAP_BYTES PB_LTYPE_BYTES -#define PB_LTYPE_MAP_DOUBLE PB_LTYPE_FIXED64 -#define PB_LTYPE_MAP_ENUM PB_LTYPE_VARINT -#define PB_LTYPE_MAP_UENUM PB_LTYPE_UVARINT -#define PB_LTYPE_MAP_FIXED32 PB_LTYPE_FIXED32 -#define PB_LTYPE_MAP_FIXED64 PB_LTYPE_FIXED64 -#define PB_LTYPE_MAP_FLOAT PB_LTYPE_FIXED32 -#define PB_LTYPE_MAP_INT32 PB_LTYPE_VARINT -#define PB_LTYPE_MAP_INT64 PB_LTYPE_VARINT -#define PB_LTYPE_MAP_MESSAGE PB_LTYPE_SUBMESSAGE -#define PB_LTYPE_MAP_SFIXED32 PB_LTYPE_FIXED32 -#define PB_LTYPE_MAP_SFIXED64 PB_LTYPE_FIXED64 -#define PB_LTYPE_MAP_SINT32 PB_LTYPE_SVARINT -#define PB_LTYPE_MAP_SINT64 PB_LTYPE_SVARINT -#define PB_LTYPE_MAP_STRING PB_LTYPE_STRING -#define PB_LTYPE_MAP_UINT32 PB_LTYPE_UVARINT -#define PB_LTYPE_MAP_UINT64 PB_LTYPE_UVARINT -#define PB_LTYPE_MAP_EXTENSION PB_LTYPE_EXTENSION -#define PB_LTYPE_MAP_FIXED_LENGTH_BYTES PB_LTYPE_FIXED_LENGTH_BYTES - -/* This is the actual macro used in field descriptions. - * It takes these arguments: - * - Field tag number - * - Field type: BOOL, BYTES, DOUBLE, ENUM, UENUM, FIXED32, FIXED64, - * FLOAT, INT32, INT64, MESSAGE, SFIXED32, SFIXED64 - * SINT32, SINT64, STRING, UINT32, UINT64 or EXTENSION - * - Field rules: REQUIRED, OPTIONAL or REPEATED - * - Allocation: STATIC, CALLBACK or POINTER - * - Placement: FIRST or OTHER, depending on if this is the first field in structure. - * - Message name - * - Field name - * - Previous field name (or field name again for first field) - * - Pointer to default value or submsg fields. - */ - -#define PB_FIELD(tag, type, rules, allocation, placement, message, field, prevfield, ptr) \ - PB_ ## rules ## _ ## allocation(tag, message, field, \ - PB_DATAOFFSET_ ## placement(message, field, prevfield), \ - PB_LTYPE_MAP_ ## type, ptr) - -/* Field description for oneof fields. This requires taking into account the - * union name also, that's why a separate set of macros is needed. - */ -#define PB_ONEOF_STATIC(u, tag, st, m, fd, ltype, ptr) \ - {tag, PB_ATYPE_STATIC | PB_HTYPE_ONEOF | ltype, \ - fd, pb_delta(st, which_ ## u, u.m), \ - pb_membersize(st, u.m), 0, ptr} - -#define PB_ONEOF_POINTER(u, tag, st, m, fd, ltype, ptr) \ - {tag, PB_ATYPE_POINTER | PB_HTYPE_ONEOF | ltype, \ - fd, pb_delta(st, which_ ## u, u.m), \ - pb_membersize(st, u.m[0]), 0, ptr} - -#define PB_ONEOF_FIELD(union_name, tag, type, rules, allocation, placement, message, field, prevfield, ptr) \ - PB_ONEOF_ ## allocation(union_name, tag, message, field, \ - PB_DATAOFFSET_ ## placement(message, union_name.field, prevfield), \ - PB_LTYPE_MAP_ ## type, ptr) - -#define PB_ANONYMOUS_ONEOF_STATIC(u, tag, st, m, fd, ltype, ptr) \ - {tag, PB_ATYPE_STATIC | PB_HTYPE_ONEOF | ltype, \ - fd, pb_delta(st, which_ ## u, m), \ - pb_membersize(st, m), 0, ptr} - -#define PB_ANONYMOUS_ONEOF_POINTER(u, tag, st, m, fd, ltype, ptr) \ - {tag, PB_ATYPE_POINTER | PB_HTYPE_ONEOF | ltype, \ - fd, pb_delta(st, which_ ## u, m), \ - pb_membersize(st, m[0]), 0, ptr} - -#define PB_ANONYMOUS_ONEOF_FIELD(union_name, tag, type, rules, allocation, placement, message, field, prevfield, ptr) \ - PB_ANONYMOUS_ONEOF_ ## allocation(union_name, tag, message, field, \ - PB_DATAOFFSET_ ## placement(message, field, prevfield), \ - PB_LTYPE_MAP_ ## type, ptr) - -/* These macros are used for giving out error messages. - * They are mostly a debugging aid; the main error information - * is the true/false return value from functions. - * Some code space can be saved by disabling the error - * messages if not used. - * - * PB_SET_ERROR() sets the error message if none has been set yet. - * msg must be a constant string literal. - * PB_GET_ERROR() always returns a pointer to a string. - * PB_RETURN_ERROR() sets the error and returns false from current - * function. - */ -#ifdef PB_NO_ERRMSG -#define PB_SET_ERROR(stream, msg) PB_UNUSED(stream) -#define PB_GET_ERROR(stream) "(errmsg disabled)" -#else -#define PB_SET_ERROR(stream, msg) (stream->errmsg = (stream)->errmsg ? (stream)->errmsg : (msg)) -#define PB_GET_ERROR(stream) ((stream)->errmsg ? (stream)->errmsg : "(none)") -#endif - -#define PB_RETURN_ERROR(stream, msg) return PB_SET_ERROR(stream, msg), false - -#endif diff --git a/StoneIsland/platforms/ios/Pods/nanopb/pb_common.c b/StoneIsland/platforms/ios/Pods/nanopb/pb_common.c deleted file mode 100644 index 4fb7186b..00000000 --- a/StoneIsland/platforms/ios/Pods/nanopb/pb_common.c +++ /dev/null @@ -1,97 +0,0 @@ -/* pb_common.c: Common support functions for pb_encode.c and pb_decode.c. - * - * 2014 Petteri Aimonen <jpa@kapsi.fi> - */ - -#include "pb_common.h" - -bool pb_field_iter_begin(pb_field_iter_t *iter, const pb_field_t *fields, void *dest_struct) -{ - iter->start = fields; - iter->pos = fields; - iter->required_field_index = 0; - iter->dest_struct = dest_struct; - iter->pData = (char*)dest_struct + iter->pos->data_offset; - iter->pSize = (char*)iter->pData + iter->pos->size_offset; - - return (iter->pos->tag != 0); -} - -bool pb_field_iter_next(pb_field_iter_t *iter) -{ - const pb_field_t *prev_field = iter->pos; - - if (prev_field->tag == 0) - { - /* Handle empty message types, where the first field is already the terminator. - * In other cases, the iter->pos never points to the terminator. */ - return false; - } - - iter->pos++; - - if (iter->pos->tag == 0) - { - /* Wrapped back to beginning, reinitialize */ - (void)pb_field_iter_begin(iter, iter->start, iter->dest_struct); - return false; - } - else - { - /* Increment the pointers based on previous field size */ - size_t prev_size = prev_field->data_size; - - if (PB_HTYPE(prev_field->type) == PB_HTYPE_ONEOF && - PB_HTYPE(iter->pos->type) == PB_HTYPE_ONEOF && - iter->pos->data_offset == PB_SIZE_MAX) - { - /* Don't advance pointers inside unions */ - return true; - } - else if (PB_ATYPE(prev_field->type) == PB_ATYPE_STATIC && - PB_HTYPE(prev_field->type) == PB_HTYPE_REPEATED) - { - /* In static arrays, the data_size tells the size of a single entry and - * array_size is the number of entries */ - prev_size *= prev_field->array_size; - } - else if (PB_ATYPE(prev_field->type) == PB_ATYPE_POINTER) - { - /* Pointer fields always have a constant size in the main structure. - * The data_size only applies to the dynamically allocated area. */ - prev_size = sizeof(void*); - } - - if (PB_HTYPE(prev_field->type) == PB_HTYPE_REQUIRED) - { - /* Count the required fields, in order to check their presence in the - * decoder. */ - iter->required_field_index++; - } - - iter->pData = (char*)iter->pData + prev_size + iter->pos->data_offset; - iter->pSize = (char*)iter->pData + iter->pos->size_offset; - return true; - } -} - -bool pb_field_iter_find(pb_field_iter_t *iter, uint32_t tag) -{ - const pb_field_t *start = iter->pos; - - do { - if (iter->pos->tag == tag && - PB_LTYPE(iter->pos->type) != PB_LTYPE_EXTENSION) - { - /* Found the wanted field */ - return true; - } - - (void)pb_field_iter_next(iter); - } while (iter->pos != start); - - /* Searched all the way back to start, and found nothing. */ - return false; -} - - diff --git a/StoneIsland/platforms/ios/Pods/nanopb/pb_common.h b/StoneIsland/platforms/ios/Pods/nanopb/pb_common.h deleted file mode 100644 index 60b3d374..00000000 --- a/StoneIsland/platforms/ios/Pods/nanopb/pb_common.h +++ /dev/null @@ -1,42 +0,0 @@ -/* pb_common.h: Common support functions for pb_encode.c and pb_decode.c. - * These functions are rarely needed by applications directly. - */ - -#ifndef PB_COMMON_H_INCLUDED -#define PB_COMMON_H_INCLUDED - -#include "pb.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Iterator for pb_field_t list */ -struct pb_field_iter_s { - const pb_field_t *start; /* Start of the pb_field_t array */ - const pb_field_t *pos; /* Current position of the iterator */ - unsigned required_field_index; /* Zero-based index that counts only the required fields */ - void *dest_struct; /* Pointer to start of the structure */ - void *pData; /* Pointer to current field value */ - void *pSize; /* Pointer to count/has field */ -}; -typedef struct pb_field_iter_s pb_field_iter_t; - -/* Initialize the field iterator structure to beginning. - * Returns false if the message type is empty. */ -bool pb_field_iter_begin(pb_field_iter_t *iter, const pb_field_t *fields, void *dest_struct); - -/* Advance the iterator to the next field. - * Returns false when the iterator wraps back to the first field. */ -bool pb_field_iter_next(pb_field_iter_t *iter); - -/* Advance the iterator until it points at a field with the given tag. - * Returns false if no such field exists. */ -bool pb_field_iter_find(pb_field_iter_t *iter, uint32_t tag); - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#endif - diff --git a/StoneIsland/platforms/ios/Pods/nanopb/pb_decode.c b/StoneIsland/platforms/ios/Pods/nanopb/pb_decode.c deleted file mode 100644 index e2e90caa..00000000 --- a/StoneIsland/platforms/ios/Pods/nanopb/pb_decode.c +++ /dev/null @@ -1,1379 +0,0 @@ -/* pb_decode.c -- decode a protobuf using minimal resources - * - * 2011 Petteri Aimonen <jpa@kapsi.fi> - */ - -/* Use the GCC warn_unused_result attribute to check that all return values - * are propagated correctly. On other compilers and gcc before 3.4.0 just - * ignore the annotation. - */ -#if !defined(__GNUC__) || ( __GNUC__ < 3) || (__GNUC__ == 3 && __GNUC_MINOR__ < 4) - #define checkreturn -#else - #define checkreturn __attribute__((warn_unused_result)) -#endif - -#include "pb.h" -#include "pb_decode.h" -#include "pb_common.h" - -/************************************** - * Declarations internal to this file * - **************************************/ - -typedef bool (*pb_decoder_t)(pb_istream_t *stream, const pb_field_t *field, void *dest) checkreturn; - -static bool checkreturn buf_read(pb_istream_t *stream, pb_byte_t *buf, size_t count); -static bool checkreturn read_raw_value(pb_istream_t *stream, pb_wire_type_t wire_type, pb_byte_t *buf, size_t *size); -static bool checkreturn decode_static_field(pb_istream_t *stream, pb_wire_type_t wire_type, pb_field_iter_t *iter); -static bool checkreturn decode_callback_field(pb_istream_t *stream, pb_wire_type_t wire_type, pb_field_iter_t *iter); -static bool checkreturn decode_field(pb_istream_t *stream, pb_wire_type_t wire_type, pb_field_iter_t *iter); -static void iter_from_extension(pb_field_iter_t *iter, pb_extension_t *extension); -static bool checkreturn default_extension_decoder(pb_istream_t *stream, pb_extension_t *extension, uint32_t tag, pb_wire_type_t wire_type); -static bool checkreturn decode_extension(pb_istream_t *stream, uint32_t tag, pb_wire_type_t wire_type, pb_field_iter_t *iter); -static bool checkreturn find_extension_field(pb_field_iter_t *iter); -static void pb_field_set_to_default(pb_field_iter_t *iter); -static void pb_message_set_to_defaults(const pb_field_t fields[], void *dest_struct); -static bool checkreturn pb_dec_varint(pb_istream_t *stream, const pb_field_t *field, void *dest); -static bool checkreturn pb_dec_uvarint(pb_istream_t *stream, const pb_field_t *field, void *dest); -static bool checkreturn pb_dec_svarint(pb_istream_t *stream, const pb_field_t *field, void *dest); -static bool checkreturn pb_dec_fixed32(pb_istream_t *stream, const pb_field_t *field, void *dest); -static bool checkreturn pb_dec_fixed64(pb_istream_t *stream, const pb_field_t *field, void *dest); -static bool checkreturn pb_dec_bytes(pb_istream_t *stream, const pb_field_t *field, void *dest); -static bool checkreturn pb_dec_string(pb_istream_t *stream, const pb_field_t *field, void *dest); -static bool checkreturn pb_dec_submessage(pb_istream_t *stream, const pb_field_t *field, void *dest); -static bool checkreturn pb_dec_fixed_length_bytes(pb_istream_t *stream, const pb_field_t *field, void *dest); -static bool checkreturn pb_skip_varint(pb_istream_t *stream); -static bool checkreturn pb_skip_string(pb_istream_t *stream); - -#ifdef PB_ENABLE_MALLOC -static bool checkreturn allocate_field(pb_istream_t *stream, void *pData, size_t data_size, size_t array_size); -static bool checkreturn pb_release_union_field(pb_istream_t *stream, pb_field_iter_t *iter); -static void pb_release_single_field(const pb_field_iter_t *iter); -#endif - -/* --- Function pointers to field decoders --- - * Order in the array must match pb_action_t LTYPE numbering. - */ -static const pb_decoder_t PB_DECODERS[PB_LTYPES_COUNT] = { - &pb_dec_varint, - &pb_dec_uvarint, - &pb_dec_svarint, - &pb_dec_fixed32, - &pb_dec_fixed64, - - &pb_dec_bytes, - &pb_dec_string, - &pb_dec_submessage, - NULL, /* extensions */ - &pb_dec_fixed_length_bytes -}; - -/******************************* - * pb_istream_t implementation * - *******************************/ - -static bool checkreturn buf_read(pb_istream_t *stream, pb_byte_t *buf, size_t count) -{ - size_t i; - const pb_byte_t *source = (const pb_byte_t*)stream->state; - stream->state = (pb_byte_t*)stream->state + count; - - if (buf != NULL) - { - for (i = 0; i < count; i++) - buf[i] = source[i]; - } - - return true; -} - -bool checkreturn pb_read(pb_istream_t *stream, pb_byte_t *buf, size_t count) -{ -#ifndef PB_BUFFER_ONLY - if (buf == NULL && stream->callback != buf_read) - { - /* Skip input bytes */ - pb_byte_t tmp[16]; - while (count > 16) - { - if (!pb_read(stream, tmp, 16)) - return false; - - count -= 16; - } - - return pb_read(stream, tmp, count); - } -#endif - - if (stream->bytes_left < count) - PB_RETURN_ERROR(stream, "end-of-stream"); - -#ifndef PB_BUFFER_ONLY - if (!stream->callback(stream, buf, count)) - PB_RETURN_ERROR(stream, "io error"); -#else - if (!buf_read(stream, buf, count)) - return false; -#endif - - stream->bytes_left -= count; - return true; -} - -/* Read a single byte from input stream. buf may not be NULL. - * This is an optimization for the varint decoding. */ -static bool checkreturn pb_readbyte(pb_istream_t *stream, pb_byte_t *buf) -{ - if (stream->bytes_left == 0) - PB_RETURN_ERROR(stream, "end-of-stream"); - -#ifndef PB_BUFFER_ONLY - if (!stream->callback(stream, buf, 1)) - PB_RETURN_ERROR(stream, "io error"); -#else - *buf = *(const pb_byte_t*)stream->state; - stream->state = (pb_byte_t*)stream->state + 1; -#endif - - stream->bytes_left--; - - return true; -} - -pb_istream_t pb_istream_from_buffer(const pb_byte_t *buf, size_t bufsize) -{ - pb_istream_t stream; - /* Cast away the const from buf without a compiler error. We are - * careful to use it only in a const manner in the callbacks. - */ - union { - void *state; - const void *c_state; - } state; -#ifdef PB_BUFFER_ONLY - stream.callback = NULL; -#else - stream.callback = &buf_read; -#endif - state.c_state = buf; - stream.state = state.state; - stream.bytes_left = bufsize; -#ifndef PB_NO_ERRMSG - stream.errmsg = NULL; -#endif - return stream; -} - -/******************** - * Helper functions * - ********************/ - -bool checkreturn pb_decode_varint32(pb_istream_t *stream, uint32_t *dest) -{ - pb_byte_t byte; - uint32_t result; - - if (!pb_readbyte(stream, &byte)) - return false; - - if ((byte & 0x80) == 0) - { - /* Quick case, 1 byte value */ - result = byte; - } - else - { - /* Multibyte case */ - uint_fast8_t bitpos = 7; - result = byte & 0x7F; - - do - { - if (bitpos >= 32) - PB_RETURN_ERROR(stream, "varint overflow"); - - if (!pb_readbyte(stream, &byte)) - return false; - - result |= (uint32_t)(byte & 0x7F) << bitpos; - bitpos = (uint_fast8_t)(bitpos + 7); - } while (byte & 0x80); - } - - *dest = result; - return true; -} - -bool checkreturn pb_decode_varint(pb_istream_t *stream, uint64_t *dest) -{ - pb_byte_t byte; - uint_fast8_t bitpos = 0; - uint64_t result = 0; - - do - { - if (bitpos >= 64) - PB_RETURN_ERROR(stream, "varint overflow"); - - if (!pb_readbyte(stream, &byte)) - return false; - - result |= (uint64_t)(byte & 0x7F) << bitpos; - bitpos = (uint_fast8_t)(bitpos + 7); - } while (byte & 0x80); - - *dest = result; - return true; -} - -bool checkreturn pb_skip_varint(pb_istream_t *stream) -{ - pb_byte_t byte; - do - { - if (!pb_read(stream, &byte, 1)) - return false; - } while (byte & 0x80); - return true; -} - -bool checkreturn pb_skip_string(pb_istream_t *stream) -{ - uint32_t length; - if (!pb_decode_varint32(stream, &length)) - return false; - - return pb_read(stream, NULL, length); -} - -bool checkreturn pb_decode_tag(pb_istream_t *stream, pb_wire_type_t *wire_type, uint32_t *tag, bool *eof) -{ - uint32_t temp; - *eof = false; - *wire_type = (pb_wire_type_t) 0; - *tag = 0; - - if (!pb_decode_varint32(stream, &temp)) - { - if (stream->bytes_left == 0) - *eof = true; - - return false; - } - - if (temp == 0) - { - *eof = true; /* Special feature: allow 0-terminated messages. */ - return false; - } - - *tag = temp >> 3; - *wire_type = (pb_wire_type_t)(temp & 7); - return true; -} - -bool checkreturn pb_skip_field(pb_istream_t *stream, pb_wire_type_t wire_type) -{ - switch (wire_type) - { - case PB_WT_VARINT: return pb_skip_varint(stream); - case PB_WT_64BIT: return pb_read(stream, NULL, 8); - case PB_WT_STRING: return pb_skip_string(stream); - case PB_WT_32BIT: return pb_read(stream, NULL, 4); - default: PB_RETURN_ERROR(stream, "invalid wire_type"); - } -} - -/* Read a raw value to buffer, for the purpose of passing it to callback as - * a substream. Size is maximum size on call, and actual size on return. - */ -static bool checkreturn read_raw_value(pb_istream_t *stream, pb_wire_type_t wire_type, pb_byte_t *buf, size_t *size) -{ - size_t max_size = *size; - switch (wire_type) - { - case PB_WT_VARINT: - *size = 0; - do - { - (*size)++; - if (*size > max_size) return false; - if (!pb_read(stream, buf, 1)) return false; - } while (*buf++ & 0x80); - return true; - - case PB_WT_64BIT: - *size = 8; - return pb_read(stream, buf, 8); - - case PB_WT_32BIT: - *size = 4; - return pb_read(stream, buf, 4); - - default: PB_RETURN_ERROR(stream, "invalid wire_type"); - } -} - -/* Decode string length from stream and return a substream with limited length. - * Remember to close the substream using pb_close_string_substream(). - */ -bool checkreturn pb_make_string_substream(pb_istream_t *stream, pb_istream_t *substream) -{ - uint32_t size; - if (!pb_decode_varint32(stream, &size)) - return false; - - *substream = *stream; - if (substream->bytes_left < size) - PB_RETURN_ERROR(stream, "parent stream too short"); - - substream->bytes_left = size; - stream->bytes_left -= size; - return true; -} - -bool checkreturn pb_close_string_substream(pb_istream_t *stream, pb_istream_t *substream) -{ - if (substream->bytes_left) { - if (!pb_read(substream, NULL, substream->bytes_left)) - return false; - } - - stream->state = substream->state; - -#ifndef PB_NO_ERRMSG - stream->errmsg = substream->errmsg; -#endif - return true; -} - -/************************* - * Decode a single field * - *************************/ - -static bool checkreturn decode_static_field(pb_istream_t *stream, pb_wire_type_t wire_type, pb_field_iter_t *iter) -{ - pb_type_t type; - pb_decoder_t func; - - type = iter->pos->type; - func = PB_DECODERS[PB_LTYPE(type)]; - - switch (PB_HTYPE(type)) - { - case PB_HTYPE_REQUIRED: - return func(stream, iter->pos, iter->pData); - - case PB_HTYPE_OPTIONAL: - if (iter->pSize != iter->pData) - *(bool*)iter->pSize = true; - return func(stream, iter->pos, iter->pData); - - case PB_HTYPE_REPEATED: - if (wire_type == PB_WT_STRING - && PB_LTYPE(type) <= PB_LTYPE_LAST_PACKABLE) - { - /* Packed array */ - bool status = true; - pb_size_t *size = (pb_size_t*)iter->pSize; - pb_istream_t substream; - if (!pb_make_string_substream(stream, &substream)) - return false; - - while (substream.bytes_left > 0 && *size < iter->pos->array_size) - { - void *pItem = (char*)iter->pData + iter->pos->data_size * (*size); - if (!func(&substream, iter->pos, pItem)) - { - status = false; - break; - } - (*size)++; - } - - if (substream.bytes_left != 0) - PB_RETURN_ERROR(stream, "array overflow"); - if (!pb_close_string_substream(stream, &substream)) - return false; - - return status; - } - else - { - /* Repeated field */ - pb_size_t *size = (pb_size_t*)iter->pSize; - void *pItem = (char*)iter->pData + iter->pos->data_size * (*size); - if (*size >= iter->pos->array_size) - PB_RETURN_ERROR(stream, "array overflow"); - - (*size)++; - return func(stream, iter->pos, pItem); - } - - case PB_HTYPE_ONEOF: - *(pb_size_t*)iter->pSize = iter->pos->tag; - if (PB_LTYPE(type) == PB_LTYPE_SUBMESSAGE) - { - /* We memset to zero so that any callbacks are set to NULL. - * Then set any default values. */ - memset(iter->pData, 0, iter->pos->data_size); - pb_message_set_to_defaults((const pb_field_t*)iter->pos->ptr, iter->pData); - } - return func(stream, iter->pos, iter->pData); - - default: - PB_RETURN_ERROR(stream, "invalid field type"); - } -} - -#ifdef PB_ENABLE_MALLOC -/* Allocate storage for the field and store the pointer at iter->pData. - * array_size is the number of entries to reserve in an array. - * Zero size is not allowed, use pb_free() for releasing. - */ -static bool checkreturn allocate_field(pb_istream_t *stream, void *pData, size_t data_size, size_t array_size) -{ - void *ptr = *(void**)pData; - - if (data_size == 0 || array_size == 0) - PB_RETURN_ERROR(stream, "invalid size"); - - /* Check for multiplication overflows. - * This code avoids the costly division if the sizes are small enough. - * Multiplication is safe as long as only half of bits are set - * in either multiplicand. - */ - { - const size_t check_limit = (size_t)1 << (sizeof(size_t) * 4); - if (data_size >= check_limit || array_size >= check_limit) - { - const size_t size_max = (size_t)-1; - if (size_max / array_size < data_size) - { - PB_RETURN_ERROR(stream, "size too large"); - } - } - } - - /* Allocate new or expand previous allocation */ - /* Note: on failure the old pointer will remain in the structure, - * the message must be freed by caller also on error return. */ - ptr = pb_realloc(ptr, array_size * data_size); - if (ptr == NULL) - PB_RETURN_ERROR(stream, "realloc failed"); - - *(void**)pData = ptr; - return true; -} - -/* Clear a newly allocated item in case it contains a pointer, or is a submessage. */ -static void initialize_pointer_field(void *pItem, pb_field_iter_t *iter) -{ - if (PB_LTYPE(iter->pos->type) == PB_LTYPE_STRING || - PB_LTYPE(iter->pos->type) == PB_LTYPE_BYTES) - { - *(void**)pItem = NULL; - } - else if (PB_LTYPE(iter->pos->type) == PB_LTYPE_SUBMESSAGE) - { - pb_message_set_to_defaults((const pb_field_t *) iter->pos->ptr, pItem); - } -} -#endif - -static bool checkreturn decode_pointer_field(pb_istream_t *stream, pb_wire_type_t wire_type, pb_field_iter_t *iter) -{ -#ifndef PB_ENABLE_MALLOC - PB_UNUSED(wire_type); - PB_UNUSED(iter); - PB_RETURN_ERROR(stream, "no malloc support"); -#else - pb_type_t type; - pb_decoder_t func; - - type = iter->pos->type; - func = PB_DECODERS[PB_LTYPE(type)]; - - switch (PB_HTYPE(type)) - { - case PB_HTYPE_REQUIRED: - case PB_HTYPE_OPTIONAL: - case PB_HTYPE_ONEOF: - if (PB_LTYPE(type) == PB_LTYPE_SUBMESSAGE && - *(void**)iter->pData != NULL) - { - /* Duplicate field, have to release the old allocation first. */ - pb_release_single_field(iter); - } - - if (PB_HTYPE(type) == PB_HTYPE_ONEOF) - { - *(pb_size_t*)iter->pSize = iter->pos->tag; - } - - if (PB_LTYPE(type) == PB_LTYPE_STRING || - PB_LTYPE(type) == PB_LTYPE_BYTES) - { - return func(stream, iter->pos, iter->pData); - } - else - { - if (!allocate_field(stream, iter->pData, iter->pos->data_size, 1)) - return false; - - initialize_pointer_field(*(void**)iter->pData, iter); - return func(stream, iter->pos, *(void**)iter->pData); - } - - case PB_HTYPE_REPEATED: - if (wire_type == PB_WT_STRING - && PB_LTYPE(type) <= PB_LTYPE_LAST_PACKABLE) - { - /* Packed array, multiple items come in at once. */ - bool status = true; - pb_size_t *size = (pb_size_t*)iter->pSize; - size_t allocated_size = *size; - void *pItem; - pb_istream_t substream; - - if (!pb_make_string_substream(stream, &substream)) - return false; - - while (substream.bytes_left) - { - if ((size_t)*size + 1 > allocated_size) - { - /* Allocate more storage. This tries to guess the - * number of remaining entries. Round the division - * upwards. */ - allocated_size += (substream.bytes_left - 1) / iter->pos->data_size + 1; - - if (!allocate_field(&substream, iter->pData, iter->pos->data_size, allocated_size)) - { - status = false; - break; - } - } - - /* Decode the array entry */ - pItem = *(char**)iter->pData + iter->pos->data_size * (*size); - initialize_pointer_field(pItem, iter); - if (!func(&substream, iter->pos, pItem)) - { - status = false; - break; - } - - if (*size == PB_SIZE_MAX) - { -#ifndef PB_NO_ERRMSG - stream->errmsg = "too many array entries"; -#endif - status = false; - break; - } - - (*size)++; - } - if (!pb_close_string_substream(stream, &substream)) - return false; - - return status; - } - else - { - /* Normal repeated field, i.e. only one item at a time. */ - pb_size_t *size = (pb_size_t*)iter->pSize; - void *pItem; - - if (*size == PB_SIZE_MAX) - PB_RETURN_ERROR(stream, "too many array entries"); - - (*size)++; - if (!allocate_field(stream, iter->pData, iter->pos->data_size, *size)) - return false; - - pItem = *(char**)iter->pData + iter->pos->data_size * (*size - 1); - initialize_pointer_field(pItem, iter); - return func(stream, iter->pos, pItem); - } - - default: - PB_RETURN_ERROR(stream, "invalid field type"); - } -#endif -} - -static bool checkreturn decode_callback_field(pb_istream_t *stream, pb_wire_type_t wire_type, pb_field_iter_t *iter) -{ - pb_callback_t *pCallback = (pb_callback_t*)iter->pData; - -#ifdef PB_OLD_CALLBACK_STYLE - void *arg = pCallback->arg; -#else - void **arg = &(pCallback->arg); -#endif - - if (pCallback->funcs.decode == NULL) - return pb_skip_field(stream, wire_type); - - if (wire_type == PB_WT_STRING) - { - pb_istream_t substream; - - if (!pb_make_string_substream(stream, &substream)) - return false; - - do - { - if (!pCallback->funcs.decode(&substream, iter->pos, arg)) - PB_RETURN_ERROR(stream, "callback failed"); - } while (substream.bytes_left); - - if (!pb_close_string_substream(stream, &substream)) - return false; - - return true; - } - else - { - /* Copy the single scalar value to stack. - * This is required so that we can limit the stream length, - * which in turn allows to use same callback for packed and - * not-packed fields. */ - pb_istream_t substream; - pb_byte_t buffer[10]; - size_t size = sizeof(buffer); - - if (!read_raw_value(stream, wire_type, buffer, &size)) - return false; - substream = pb_istream_from_buffer(buffer, size); - - return pCallback->funcs.decode(&substream, iter->pos, arg); - } -} - -static bool checkreturn decode_field(pb_istream_t *stream, pb_wire_type_t wire_type, pb_field_iter_t *iter) -{ -#ifdef PB_ENABLE_MALLOC - /* When decoding an oneof field, check if there is old data that must be - * released first. */ - if (PB_HTYPE(iter->pos->type) == PB_HTYPE_ONEOF) - { - if (!pb_release_union_field(stream, iter)) - return false; - } -#endif - - switch (PB_ATYPE(iter->pos->type)) - { - case PB_ATYPE_STATIC: - return decode_static_field(stream, wire_type, iter); - - case PB_ATYPE_POINTER: - return decode_pointer_field(stream, wire_type, iter); - - case PB_ATYPE_CALLBACK: - return decode_callback_field(stream, wire_type, iter); - - default: - PB_RETURN_ERROR(stream, "invalid field type"); - } -} - -static void iter_from_extension(pb_field_iter_t *iter, pb_extension_t *extension) -{ - /* Fake a field iterator for the extension field. - * It is not actually safe to advance this iterator, but decode_field - * will not even try to. */ - const pb_field_t *field = (const pb_field_t*)extension->type->arg; - (void)pb_field_iter_begin(iter, field, extension->dest); - iter->pData = extension->dest; - iter->pSize = &extension->found; - - if (PB_ATYPE(field->type) == PB_ATYPE_POINTER) - { - /* For pointer extensions, the pointer is stored directly - * in the extension structure. This avoids having an extra - * indirection. */ - iter->pData = &extension->dest; - } -} - -/* Default handler for extension fields. Expects a pb_field_t structure - * in extension->type->arg. */ -static bool checkreturn default_extension_decoder(pb_istream_t *stream, - pb_extension_t *extension, uint32_t tag, pb_wire_type_t wire_type) -{ - const pb_field_t *field = (const pb_field_t*)extension->type->arg; - pb_field_iter_t iter; - - if (field->tag != tag) - return true; - - iter_from_extension(&iter, extension); - extension->found = true; - return decode_field(stream, wire_type, &iter); -} - -/* Try to decode an unknown field as an extension field. Tries each extension - * decoder in turn, until one of them handles the field or loop ends. */ -static bool checkreturn decode_extension(pb_istream_t *stream, - uint32_t tag, pb_wire_type_t wire_type, pb_field_iter_t *iter) -{ - pb_extension_t *extension = *(pb_extension_t* const *)iter->pData; - size_t pos = stream->bytes_left; - - while (extension != NULL && pos == stream->bytes_left) - { - bool status; - if (extension->type->decode) - status = extension->type->decode(stream, extension, tag, wire_type); - else - status = default_extension_decoder(stream, extension, tag, wire_type); - - if (!status) - return false; - - extension = extension->next; - } - - return true; -} - -/* Step through the iterator until an extension field is found or until all - * entries have been checked. There can be only one extension field per - * message. Returns false if no extension field is found. */ -static bool checkreturn find_extension_field(pb_field_iter_t *iter) -{ - const pb_field_t *start = iter->pos; - - do { - if (PB_LTYPE(iter->pos->type) == PB_LTYPE_EXTENSION) - return true; - (void)pb_field_iter_next(iter); - } while (iter->pos != start); - - return false; -} - -/* Initialize message fields to default values, recursively */ -static void pb_field_set_to_default(pb_field_iter_t *iter) -{ - pb_type_t type; - type = iter->pos->type; - - if (PB_LTYPE(type) == PB_LTYPE_EXTENSION) - { - pb_extension_t *ext = *(pb_extension_t* const *)iter->pData; - while (ext != NULL) - { - pb_field_iter_t ext_iter; - ext->found = false; - iter_from_extension(&ext_iter, ext); - pb_field_set_to_default(&ext_iter); - ext = ext->next; - } - } - else if (PB_ATYPE(type) == PB_ATYPE_STATIC) - { - bool init_data = true; - if (PB_HTYPE(type) == PB_HTYPE_OPTIONAL && iter->pSize != iter->pData) - { - /* Set has_field to false. Still initialize the optional field - * itself also. */ - *(bool*)iter->pSize = false; - } - else if (PB_HTYPE(type) == PB_HTYPE_REPEATED || - PB_HTYPE(type) == PB_HTYPE_ONEOF) - { - /* REPEATED: Set array count to 0, no need to initialize contents. - ONEOF: Set which_field to 0. */ - *(pb_size_t*)iter->pSize = 0; - init_data = false; - } - - if (init_data) - { - if (PB_LTYPE(iter->pos->type) == PB_LTYPE_SUBMESSAGE) - { - /* Initialize submessage to defaults */ - pb_message_set_to_defaults((const pb_field_t *) iter->pos->ptr, iter->pData); - } - else if (iter->pos->ptr != NULL) - { - /* Initialize to default value */ - memcpy(iter->pData, iter->pos->ptr, iter->pos->data_size); - } - else - { - /* Initialize to zeros */ - memset(iter->pData, 0, iter->pos->data_size); - } - } - } - else if (PB_ATYPE(type) == PB_ATYPE_POINTER) - { - /* Initialize the pointer to NULL. */ - *(void**)iter->pData = NULL; - - /* Initialize array count to 0. */ - if (PB_HTYPE(type) == PB_HTYPE_REPEATED || - PB_HTYPE(type) == PB_HTYPE_ONEOF) - { - *(pb_size_t*)iter->pSize = 0; - } - } - else if (PB_ATYPE(type) == PB_ATYPE_CALLBACK) - { - /* Don't overwrite callback */ - } -} - -static void pb_message_set_to_defaults(const pb_field_t fields[], void *dest_struct) -{ - pb_field_iter_t iter; - - if (!pb_field_iter_begin(&iter, fields, dest_struct)) - return; /* Empty message type */ - - do - { - pb_field_set_to_default(&iter); - } while (pb_field_iter_next(&iter)); -} - -/********************* - * Decode all fields * - *********************/ - -bool checkreturn pb_decode_noinit(pb_istream_t *stream, const pb_field_t fields[], void *dest_struct) -{ - uint32_t fields_seen[(PB_MAX_REQUIRED_FIELDS + 31) / 32] = {0, 0}; - const uint32_t allbits = ~(uint32_t)0; - uint32_t extension_range_start = 0; - pb_field_iter_t iter; - - /* Return value ignored, as empty message types will be correctly handled by - * pb_field_iter_find() anyway. */ - (void)pb_field_iter_begin(&iter, fields, dest_struct); - - while (stream->bytes_left) - { - uint32_t tag; - pb_wire_type_t wire_type; - bool eof; - - if (!pb_decode_tag(stream, &wire_type, &tag, &eof)) - { - if (eof) - break; - else - return false; - } - - if (!pb_field_iter_find(&iter, tag)) - { - /* No match found, check if it matches an extension. */ - if (tag >= extension_range_start) - { - if (!find_extension_field(&iter)) - extension_range_start = (uint32_t)-1; - else - extension_range_start = iter.pos->tag; - - if (tag >= extension_range_start) - { - size_t pos = stream->bytes_left; - - if (!decode_extension(stream, tag, wire_type, &iter)) - return false; - - if (pos != stream->bytes_left) - { - /* The field was handled */ - continue; - } - } - } - - /* No match found, skip data */ - if (!pb_skip_field(stream, wire_type)) - return false; - continue; - } - - if (PB_HTYPE(iter.pos->type) == PB_HTYPE_REQUIRED - && iter.required_field_index < PB_MAX_REQUIRED_FIELDS) - { - uint32_t tmp = ((uint32_t)1 << (iter.required_field_index & 31)); - fields_seen[iter.required_field_index >> 5] |= tmp; - } - - if (!decode_field(stream, wire_type, &iter)) - return false; - } - - /* Check that all required fields were present. */ - { - /* First figure out the number of required fields by - * seeking to the end of the field array. Usually we - * are already close to end after decoding. - */ - unsigned req_field_count; - pb_type_t last_type; - unsigned i; - do { - req_field_count = iter.required_field_index; - last_type = iter.pos->type; - } while (pb_field_iter_next(&iter)); - - /* Fixup if last field was also required. */ - if (PB_HTYPE(last_type) == PB_HTYPE_REQUIRED && iter.pos->tag != 0) - req_field_count++; - - if (req_field_count > 0) - { - /* Check the whole words */ - for (i = 0; i < (req_field_count >> 5); i++) - { - if (fields_seen[i] != allbits) - PB_RETURN_ERROR(stream, "missing required field"); - } - - /* Check the remaining bits */ - if (fields_seen[req_field_count >> 5] != (allbits >> (32 - (req_field_count & 31)))) - PB_RETURN_ERROR(stream, "missing required field"); - } - } - - return true; -} - -bool checkreturn pb_decode(pb_istream_t *stream, const pb_field_t fields[], void *dest_struct) -{ - bool status; - pb_message_set_to_defaults(fields, dest_struct); - status = pb_decode_noinit(stream, fields, dest_struct); - -#ifdef PB_ENABLE_MALLOC - if (!status) - pb_release(fields, dest_struct); -#endif - - return status; -} - -bool pb_decode_delimited(pb_istream_t *stream, const pb_field_t fields[], void *dest_struct) -{ - pb_istream_t substream; - bool status; - - if (!pb_make_string_substream(stream, &substream)) - return false; - - status = pb_decode(&substream, fields, dest_struct); - - if (!pb_close_string_substream(stream, &substream)) - return false; - return status; -} - -#ifdef PB_ENABLE_MALLOC -/* Given an oneof field, if there has already been a field inside this oneof, - * release it before overwriting with a different one. */ -static bool pb_release_union_field(pb_istream_t *stream, pb_field_iter_t *iter) -{ - pb_size_t old_tag = *(pb_size_t*)iter->pSize; /* Previous which_ value */ - pb_size_t new_tag = iter->pos->tag; /* New which_ value */ - - if (old_tag == 0) - return true; /* Ok, no old data in union */ - - if (old_tag == new_tag) - return true; /* Ok, old data is of same type => merge */ - - /* Release old data. The find can fail if the message struct contains - * invalid data. */ - if (!pb_field_iter_find(iter, old_tag)) - PB_RETURN_ERROR(stream, "invalid union tag"); - - pb_release_single_field(iter); - - /* Restore iterator to where it should be. - * This shouldn't fail unless the pb_field_t structure is corrupted. */ - if (!pb_field_iter_find(iter, new_tag)) - PB_RETURN_ERROR(stream, "iterator error"); - - return true; -} - -static void pb_release_single_field(const pb_field_iter_t *iter) -{ - pb_type_t type; - type = iter->pos->type; - - if (PB_HTYPE(type) == PB_HTYPE_ONEOF) - { - if (*(pb_size_t*)iter->pSize != iter->pos->tag) - return; /* This is not the current field in the union */ - } - - /* Release anything contained inside an extension or submsg. - * This has to be done even if the submsg itself is statically - * allocated. */ - if (PB_LTYPE(type) == PB_LTYPE_EXTENSION) - { - /* Release fields from all extensions in the linked list */ - pb_extension_t *ext = *(pb_extension_t**)iter->pData; - while (ext != NULL) - { - pb_field_iter_t ext_iter; - iter_from_extension(&ext_iter, ext); - pb_release_single_field(&ext_iter); - ext = ext->next; - } - } - else if (PB_LTYPE(type) == PB_LTYPE_SUBMESSAGE) - { - /* Release fields in submessage or submsg array */ - void *pItem = iter->pData; - pb_size_t count = 1; - - if (PB_ATYPE(type) == PB_ATYPE_POINTER) - { - pItem = *(void**)iter->pData; - } - - if (PB_HTYPE(type) == PB_HTYPE_REPEATED) - { - count = *(pb_size_t*)iter->pSize; - - if (PB_ATYPE(type) == PB_ATYPE_STATIC && count > iter->pos->array_size) - { - /* Protect against corrupted _count fields */ - count = iter->pos->array_size; - } - } - - if (pItem) - { - while (count--) - { - pb_release((const pb_field_t*)iter->pos->ptr, pItem); - pItem = (char*)pItem + iter->pos->data_size; - } - } - } - - if (PB_ATYPE(type) == PB_ATYPE_POINTER) - { - if (PB_HTYPE(type) == PB_HTYPE_REPEATED && - (PB_LTYPE(type) == PB_LTYPE_STRING || - PB_LTYPE(type) == PB_LTYPE_BYTES)) - { - /* Release entries in repeated string or bytes array */ - void **pItem = *(void***)iter->pData; - pb_size_t count = *(pb_size_t*)iter->pSize; - while (count--) - { - pb_free(*pItem); - *pItem++ = NULL; - } - } - - if (PB_HTYPE(type) == PB_HTYPE_REPEATED) - { - /* We are going to release the array, so set the size to 0 */ - *(pb_size_t*)iter->pSize = 0; - } - - /* Release main item */ - pb_free(*(void**)iter->pData); - *(void**)iter->pData = NULL; - } -} - -void pb_release(const pb_field_t fields[], void *dest_struct) -{ - pb_field_iter_t iter; - - if (!dest_struct) - return; /* Ignore NULL pointers, similar to free() */ - - if (!pb_field_iter_begin(&iter, fields, dest_struct)) - return; /* Empty message type */ - - do - { - pb_release_single_field(&iter); - } while (pb_field_iter_next(&iter)); -} -#endif - -/* Field decoders */ - -bool pb_decode_svarint(pb_istream_t *stream, int64_t *dest) -{ - uint64_t value; - if (!pb_decode_varint(stream, &value)) - return false; - - if (value & 1) - *dest = (int64_t)(~(value >> 1)); - else - *dest = (int64_t)(value >> 1); - - return true; -} - -bool pb_decode_fixed32(pb_istream_t *stream, void *dest) -{ - pb_byte_t bytes[4]; - - if (!pb_read(stream, bytes, 4)) - return false; - - *(uint32_t*)dest = ((uint32_t)bytes[0] << 0) | - ((uint32_t)bytes[1] << 8) | - ((uint32_t)bytes[2] << 16) | - ((uint32_t)bytes[3] << 24); - return true; -} - -bool pb_decode_fixed64(pb_istream_t *stream, void *dest) -{ - pb_byte_t bytes[8]; - - if (!pb_read(stream, bytes, 8)) - return false; - - *(uint64_t*)dest = ((uint64_t)bytes[0] << 0) | - ((uint64_t)bytes[1] << 8) | - ((uint64_t)bytes[2] << 16) | - ((uint64_t)bytes[3] << 24) | - ((uint64_t)bytes[4] << 32) | - ((uint64_t)bytes[5] << 40) | - ((uint64_t)bytes[6] << 48) | - ((uint64_t)bytes[7] << 56); - - return true; -} - -static bool checkreturn pb_dec_varint(pb_istream_t *stream, const pb_field_t *field, void *dest) -{ - uint64_t value; - int64_t svalue; - int64_t clamped; - if (!pb_decode_varint(stream, &value)) - return false; - - /* See issue 97: Google's C++ protobuf allows negative varint values to - * be cast as int32_t, instead of the int64_t that should be used when - * encoding. Previous nanopb versions had a bug in encoding. In order to - * not break decoding of such messages, we cast <=32 bit fields to - * int32_t first to get the sign correct. - */ - if (field->data_size == sizeof(int64_t)) - svalue = (int64_t)value; - else - svalue = (int32_t)value; - - /* Cast to the proper field size, while checking for overflows */ - if (field->data_size == sizeof(int64_t)) - clamped = *(int64_t*)dest = svalue; - else if (field->data_size == sizeof(int32_t)) - clamped = *(int32_t*)dest = (int32_t)svalue; - else if (field->data_size == sizeof(int_least16_t)) - clamped = *(int_least16_t*)dest = (int_least16_t)svalue; - else if (field->data_size == sizeof(int_least8_t)) - clamped = *(int_least8_t*)dest = (int_least8_t)svalue; - else - PB_RETURN_ERROR(stream, "invalid data_size"); - - if (clamped != svalue) - PB_RETURN_ERROR(stream, "integer too large"); - - return true; -} - -static bool checkreturn pb_dec_uvarint(pb_istream_t *stream, const pb_field_t *field, void *dest) -{ - uint64_t value, clamped; - if (!pb_decode_varint(stream, &value)) - return false; - - /* Cast to the proper field size, while checking for overflows */ - if (field->data_size == sizeof(uint64_t)) - clamped = *(uint64_t*)dest = value; - else if (field->data_size == sizeof(uint32_t)) - clamped = *(uint32_t*)dest = (uint32_t)value; - else if (field->data_size == sizeof(uint_least16_t)) - clamped = *(uint_least16_t*)dest = (uint_least16_t)value; - else if (field->data_size == sizeof(uint_least8_t)) - clamped = *(uint_least8_t*)dest = (uint_least8_t)value; - else - PB_RETURN_ERROR(stream, "invalid data_size"); - - if (clamped != value) - PB_RETURN_ERROR(stream, "integer too large"); - - return true; -} - -static bool checkreturn pb_dec_svarint(pb_istream_t *stream, const pb_field_t *field, void *dest) -{ - int64_t value, clamped; - if (!pb_decode_svarint(stream, &value)) - return false; - - /* Cast to the proper field size, while checking for overflows */ - if (field->data_size == sizeof(int64_t)) - clamped = *(int64_t*)dest = value; - else if (field->data_size == sizeof(int32_t)) - clamped = *(int32_t*)dest = (int32_t)value; - else if (field->data_size == sizeof(int_least16_t)) - clamped = *(int_least16_t*)dest = (int_least16_t)value; - else if (field->data_size == sizeof(int_least8_t)) - clamped = *(int_least8_t*)dest = (int_least8_t)value; - else - PB_RETURN_ERROR(stream, "invalid data_size"); - - if (clamped != value) - PB_RETURN_ERROR(stream, "integer too large"); - - return true; -} - -static bool checkreturn pb_dec_fixed32(pb_istream_t *stream, const pb_field_t *field, void *dest) -{ - PB_UNUSED(field); - return pb_decode_fixed32(stream, dest); -} - -static bool checkreturn pb_dec_fixed64(pb_istream_t *stream, const pb_field_t *field, void *dest) -{ - PB_UNUSED(field); - return pb_decode_fixed64(stream, dest); -} - -static bool checkreturn pb_dec_bytes(pb_istream_t *stream, const pb_field_t *field, void *dest) -{ - uint32_t size; - size_t alloc_size; - pb_bytes_array_t *bdest; - - if (!pb_decode_varint32(stream, &size)) - return false; - - if (size > PB_SIZE_MAX) - PB_RETURN_ERROR(stream, "bytes overflow"); - - alloc_size = PB_BYTES_ARRAY_T_ALLOCSIZE(size); - if (size > alloc_size) - PB_RETURN_ERROR(stream, "size too large"); - - if (PB_ATYPE(field->type) == PB_ATYPE_POINTER) - { -#ifndef PB_ENABLE_MALLOC - PB_RETURN_ERROR(stream, "no malloc support"); -#else - if (!allocate_field(stream, dest, alloc_size, 1)) - return false; - bdest = *(pb_bytes_array_t**)dest; -#endif - } - else - { - if (alloc_size > field->data_size) - PB_RETURN_ERROR(stream, "bytes overflow"); - bdest = (pb_bytes_array_t*)dest; - } - - bdest->size = (pb_size_t)size; - return pb_read(stream, bdest->bytes, size); -} - -static bool checkreturn pb_dec_string(pb_istream_t *stream, const pb_field_t *field, void *dest) -{ - uint32_t size; - size_t alloc_size; - bool status; - if (!pb_decode_varint32(stream, &size)) - return false; - - /* Space for null terminator */ - alloc_size = size + 1; - - if (alloc_size < size) - PB_RETURN_ERROR(stream, "size too large"); - - if (PB_ATYPE(field->type) == PB_ATYPE_POINTER) - { -#ifndef PB_ENABLE_MALLOC - PB_RETURN_ERROR(stream, "no malloc support"); -#else - if (!allocate_field(stream, dest, alloc_size, 1)) - return false; - dest = *(void**)dest; -#endif - } - else - { - if (alloc_size > field->data_size) - PB_RETURN_ERROR(stream, "string overflow"); - } - - status = pb_read(stream, (pb_byte_t*)dest, size); - *((pb_byte_t*)dest + size) = 0; - return status; -} - -static bool checkreturn pb_dec_submessage(pb_istream_t *stream, const pb_field_t *field, void *dest) -{ - bool status; - pb_istream_t substream; - const pb_field_t* submsg_fields = (const pb_field_t*)field->ptr; - - if (!pb_make_string_substream(stream, &substream)) - return false; - - if (field->ptr == NULL) - PB_RETURN_ERROR(stream, "invalid field descriptor"); - - /* New array entries need to be initialized, while required and optional - * submessages have already been initialized in the top-level pb_decode. */ - if (PB_HTYPE(field->type) == PB_HTYPE_REPEATED) - status = pb_decode(&substream, submsg_fields, dest); - else - status = pb_decode_noinit(&substream, submsg_fields, dest); - - if (!pb_close_string_substream(stream, &substream)) - return false; - return status; -} - -static bool checkreturn pb_dec_fixed_length_bytes(pb_istream_t *stream, const pb_field_t *field, void *dest) -{ - uint32_t size; - - if (!pb_decode_varint32(stream, &size)) - return false; - - if (size > PB_SIZE_MAX) - PB_RETURN_ERROR(stream, "bytes overflow"); - - if (size == 0) - { - /* As a special case, treat empty bytes string as all zeros for fixed_length_bytes. */ - memset(dest, 0, field->data_size); - return true; - } - - if (size != field->data_size) - PB_RETURN_ERROR(stream, "incorrect fixed length bytes size"); - - return pb_read(stream, (pb_byte_t*)dest, field->data_size); -} diff --git a/StoneIsland/platforms/ios/Pods/nanopb/pb_decode.h b/StoneIsland/platforms/ios/Pods/nanopb/pb_decode.h deleted file mode 100644 index a426bdd7..00000000 --- a/StoneIsland/platforms/ios/Pods/nanopb/pb_decode.h +++ /dev/null @@ -1,153 +0,0 @@ -/* pb_decode.h: Functions to decode protocol buffers. Depends on pb_decode.c. - * The main function is pb_decode. You also need an input stream, and the - * field descriptions created by nanopb_generator.py. - */ - -#ifndef PB_DECODE_H_INCLUDED -#define PB_DECODE_H_INCLUDED - -#include "pb.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Structure for defining custom input streams. You will need to provide - * a callback function to read the bytes from your storage, which can be - * for example a file or a network socket. - * - * The callback must conform to these rules: - * - * 1) Return false on IO errors. This will cause decoding to abort. - * 2) You can use state to store your own data (e.g. buffer pointer), - * and rely on pb_read to verify that no-body reads past bytes_left. - * 3) Your callback may be used with substreams, in which case bytes_left - * is different than from the main stream. Don't use bytes_left to compute - * any pointers. - */ -struct pb_istream_s -{ -#ifdef PB_BUFFER_ONLY - /* Callback pointer is not used in buffer-only configuration. - * Having an int pointer here allows binary compatibility but - * gives an error if someone tries to assign callback function. - */ - int *callback; -#else - bool (*callback)(pb_istream_t *stream, pb_byte_t *buf, size_t count); -#endif - - void *state; /* Free field for use by callback implementation */ - size_t bytes_left; - -#ifndef PB_NO_ERRMSG - const char *errmsg; -#endif -}; - -/*************************** - * Main decoding functions * - ***************************/ - -/* Decode a single protocol buffers message from input stream into a C structure. - * Returns true on success, false on any failure. - * The actual struct pointed to by dest must match the description in fields. - * Callback fields of the destination structure must be initialized by caller. - * All other fields will be initialized by this function. - * - * Example usage: - * MyMessage msg = {}; - * uint8_t buffer[64]; - * pb_istream_t stream; - * - * // ... read some data into buffer ... - * - * stream = pb_istream_from_buffer(buffer, count); - * pb_decode(&stream, MyMessage_fields, &msg); - */ -bool pb_decode(pb_istream_t *stream, const pb_field_t fields[], void *dest_struct); - -/* Same as pb_decode, except does not initialize the destination structure - * to default values. This is slightly faster if you need no default values - * and just do memset(struct, 0, sizeof(struct)) yourself. - * - * This can also be used for 'merging' two messages, i.e. update only the - * fields that exist in the new message. - * - * Note: If this function returns with an error, it will not release any - * dynamically allocated fields. You will need to call pb_release() yourself. - */ -bool pb_decode_noinit(pb_istream_t *stream, const pb_field_t fields[], void *dest_struct); - -/* Same as pb_decode, except expects the stream to start with the message size - * encoded as varint. Corresponds to parseDelimitedFrom() in Google's - * protobuf API. - */ -bool pb_decode_delimited(pb_istream_t *stream, const pb_field_t fields[], void *dest_struct); - -#ifdef PB_ENABLE_MALLOC -/* Release any allocated pointer fields. If you use dynamic allocation, you should - * call this for any successfully decoded message when you are done with it. If - * pb_decode() returns with an error, the message is already released. - */ -void pb_release(const pb_field_t fields[], void *dest_struct); -#endif - - -/************************************** - * Functions for manipulating streams * - **************************************/ - -/* Create an input stream for reading from a memory buffer. - * - * Alternatively, you can use a custom stream that reads directly from e.g. - * a file or a network socket. - */ -pb_istream_t pb_istream_from_buffer(const pb_byte_t *buf, size_t bufsize); - -/* Function to read from a pb_istream_t. You can use this if you need to - * read some custom header data, or to read data in field callbacks. - */ -bool pb_read(pb_istream_t *stream, pb_byte_t *buf, size_t count); - - -/************************************************ - * Helper functions for writing field callbacks * - ************************************************/ - -/* Decode the tag for the next field in the stream. Gives the wire type and - * field tag. At end of the message, returns false and sets eof to true. */ -bool pb_decode_tag(pb_istream_t *stream, pb_wire_type_t *wire_type, uint32_t *tag, bool *eof); - -/* Skip the field payload data, given the wire type. */ -bool pb_skip_field(pb_istream_t *stream, pb_wire_type_t wire_type); - -/* Decode an integer in the varint format. This works for bool, enum, int32, - * int64, uint32 and uint64 field types. */ -bool pb_decode_varint(pb_istream_t *stream, uint64_t *dest); - -/* Decode an integer in the varint format. This works for bool, enum, int32, - * and uint32 field types. */ -bool pb_decode_varint32(pb_istream_t *stream, uint32_t *dest); - -/* Decode an integer in the zig-zagged svarint format. This works for sint32 - * and sint64. */ -bool pb_decode_svarint(pb_istream_t *stream, int64_t *dest); - -/* Decode a fixed32, sfixed32 or float value. You need to pass a pointer to - * a 4-byte wide C variable. */ -bool pb_decode_fixed32(pb_istream_t *stream, void *dest); - -/* Decode a fixed64, sfixed64 or double value. You need to pass a pointer to - * a 8-byte wide C variable. */ -bool pb_decode_fixed64(pb_istream_t *stream, void *dest); - -/* Make a limited-length substream for reading a PB_WT_STRING field. */ -bool pb_make_string_substream(pb_istream_t *stream, pb_istream_t *substream); -bool pb_close_string_substream(pb_istream_t *stream, pb_istream_t *substream); - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#endif diff --git a/StoneIsland/platforms/ios/Pods/nanopb/pb_encode.c b/StoneIsland/platforms/ios/Pods/nanopb/pb_encode.c deleted file mode 100644 index 30f60d83..00000000 --- a/StoneIsland/platforms/ios/Pods/nanopb/pb_encode.c +++ /dev/null @@ -1,777 +0,0 @@ -/* pb_encode.c -- encode a protobuf using minimal resources - * - * 2011 Petteri Aimonen <jpa@kapsi.fi> - */ - -#include "pb.h" -#include "pb_encode.h" -#include "pb_common.h" - -/* Use the GCC warn_unused_result attribute to check that all return values - * are propagated correctly. On other compilers and gcc before 3.4.0 just - * ignore the annotation. - */ -#if !defined(__GNUC__) || ( __GNUC__ < 3) || (__GNUC__ == 3 && __GNUC_MINOR__ < 4) - #define checkreturn -#else - #define checkreturn __attribute__((warn_unused_result)) -#endif - -/************************************** - * Declarations internal to this file * - **************************************/ -typedef bool (*pb_encoder_t)(pb_ostream_t *stream, const pb_field_t *field, const void *src) checkreturn; - -static bool checkreturn buf_write(pb_ostream_t *stream, const pb_byte_t *buf, size_t count); -static bool checkreturn encode_array(pb_ostream_t *stream, const pb_field_t *field, const void *pData, size_t count, pb_encoder_t func); -static bool checkreturn encode_field(pb_ostream_t *stream, const pb_field_t *field, const void *pData); -static bool checkreturn default_extension_encoder(pb_ostream_t *stream, const pb_extension_t *extension); -static bool checkreturn encode_extension_field(pb_ostream_t *stream, const pb_field_t *field, const void *pData); -static void *pb_const_cast(const void *p); -static bool checkreturn pb_enc_varint(pb_ostream_t *stream, const pb_field_t *field, const void *src); -static bool checkreturn pb_enc_uvarint(pb_ostream_t *stream, const pb_field_t *field, const void *src); -static bool checkreturn pb_enc_svarint(pb_ostream_t *stream, const pb_field_t *field, const void *src); -static bool checkreturn pb_enc_fixed32(pb_ostream_t *stream, const pb_field_t *field, const void *src); -static bool checkreturn pb_enc_fixed64(pb_ostream_t *stream, const pb_field_t *field, const void *src); -static bool checkreturn pb_enc_bytes(pb_ostream_t *stream, const pb_field_t *field, const void *src); -static bool checkreturn pb_enc_string(pb_ostream_t *stream, const pb_field_t *field, const void *src); -static bool checkreturn pb_enc_submessage(pb_ostream_t *stream, const pb_field_t *field, const void *src); -static bool checkreturn pb_enc_fixed_length_bytes(pb_ostream_t *stream, const pb_field_t *field, const void *src); - -/* --- Function pointers to field encoders --- - * Order in the array must match pb_action_t LTYPE numbering. - */ -static const pb_encoder_t PB_ENCODERS[PB_LTYPES_COUNT] = { - &pb_enc_varint, - &pb_enc_uvarint, - &pb_enc_svarint, - &pb_enc_fixed32, - &pb_enc_fixed64, - - &pb_enc_bytes, - &pb_enc_string, - &pb_enc_submessage, - NULL, /* extensions */ - &pb_enc_fixed_length_bytes -}; - -/******************************* - * pb_ostream_t implementation * - *******************************/ - -static bool checkreturn buf_write(pb_ostream_t *stream, const pb_byte_t *buf, size_t count) -{ - size_t i; - pb_byte_t *dest = (pb_byte_t*)stream->state; - stream->state = dest + count; - - for (i = 0; i < count; i++) - dest[i] = buf[i]; - - return true; -} - -pb_ostream_t pb_ostream_from_buffer(pb_byte_t *buf, size_t bufsize) -{ - pb_ostream_t stream; -#ifdef PB_BUFFER_ONLY - stream.callback = (void*)1; /* Just a marker value */ -#else - stream.callback = &buf_write; -#endif - stream.state = buf; - stream.max_size = bufsize; - stream.bytes_written = 0; -#ifndef PB_NO_ERRMSG - stream.errmsg = NULL; -#endif - return stream; -} - -bool checkreturn pb_write(pb_ostream_t *stream, const pb_byte_t *buf, size_t count) -{ - if (stream->callback != NULL) - { - if (stream->bytes_written + count > stream->max_size) - PB_RETURN_ERROR(stream, "stream full"); - -#ifdef PB_BUFFER_ONLY - if (!buf_write(stream, buf, count)) - PB_RETURN_ERROR(stream, "io error"); -#else - if (!stream->callback(stream, buf, count)) - PB_RETURN_ERROR(stream, "io error"); -#endif - } - - stream->bytes_written += count; - return true; -} - -/************************* - * Encode a single field * - *************************/ - -/* Encode a static array. Handles the size calculations and possible packing. */ -static bool checkreturn encode_array(pb_ostream_t *stream, const pb_field_t *field, - const void *pData, size_t count, pb_encoder_t func) -{ - size_t i; - const void *p; - size_t size; - - if (count == 0) - return true; - - if (PB_ATYPE(field->type) != PB_ATYPE_POINTER && count > field->array_size) - PB_RETURN_ERROR(stream, "array max size exceeded"); - - /* We always pack arrays if the datatype allows it. */ - if (PB_LTYPE(field->type) <= PB_LTYPE_LAST_PACKABLE) - { - if (!pb_encode_tag(stream, PB_WT_STRING, field->tag)) - return false; - - /* Determine the total size of packed array. */ - if (PB_LTYPE(field->type) == PB_LTYPE_FIXED32) - { - size = 4 * count; - } - else if (PB_LTYPE(field->type) == PB_LTYPE_FIXED64) - { - size = 8 * count; - } - else - { - pb_ostream_t sizestream = PB_OSTREAM_SIZING; - p = pData; - for (i = 0; i < count; i++) - { - if (!func(&sizestream, field, p)) - return false; - p = (const char*)p + field->data_size; - } - size = sizestream.bytes_written; - } - - if (!pb_encode_varint(stream, (uint64_t)size)) - return false; - - if (stream->callback == NULL) - return pb_write(stream, NULL, size); /* Just sizing.. */ - - /* Write the data */ - p = pData; - for (i = 0; i < count; i++) - { - if (!func(stream, field, p)) - return false; - p = (const char*)p + field->data_size; - } - } - else - { - p = pData; - for (i = 0; i < count; i++) - { - if (!pb_encode_tag_for_field(stream, field)) - return false; - - /* Normally the data is stored directly in the array entries, but - * for pointer-type string and bytes fields, the array entries are - * actually pointers themselves also. So we have to dereference once - * more to get to the actual data. */ - if (PB_ATYPE(field->type) == PB_ATYPE_POINTER && - (PB_LTYPE(field->type) == PB_LTYPE_STRING || - PB_LTYPE(field->type) == PB_LTYPE_BYTES)) - { - if (!func(stream, field, *(const void* const*)p)) - return false; - } - else - { - if (!func(stream, field, p)) - return false; - } - p = (const char*)p + field->data_size; - } - } - - return true; -} - -/* In proto3, all fields are optional and are only encoded if their value is "non-zero". - * This function implements the check for the zero value. */ -static bool pb_check_proto3_default_value(const pb_field_t *field, const void *pData) -{ - if (PB_ATYPE(field->type) == PB_ATYPE_STATIC) - { - if (PB_LTYPE(field->type) == PB_LTYPE_BYTES) - { - const pb_bytes_array_t *bytes = (const pb_bytes_array_t*)pData; - return bytes->size == 0; - } - else if (PB_LTYPE(field->type) == PB_LTYPE_STRING) - { - return *(const char*)pData == '\0'; - } - else if (PB_LTYPE(field->type) == PB_LTYPE_FIXED_LENGTH_BYTES) - { - /* Fixed length bytes is only empty if its length is fixed - * as 0. Which would be pretty strange, but we can check - * it anyway. */ - return field->data_size == 0; - } - else if (PB_LTYPE(field->type) == PB_LTYPE_SUBMESSAGE) - { - /* Check all fields in the submessage to find if any of them - * are non-zero. The comparison cannot be done byte-per-byte - * because the C struct may contain padding bytes that must - * be skipped. - */ - pb_field_iter_t iter; - if (pb_field_iter_begin(&iter, (const pb_field_t*)field->ptr, pb_const_cast(pData))) - { - do - { - if (!pb_check_proto3_default_value(iter.pos, iter.pData)) - { - return false; - } - } while (pb_field_iter_next(&iter)); - } - return true; - } - } - - { - /* Catch-all branch that does byte-per-byte comparison for zero value. - * - * This is for all pointer fields, and for static PB_LTYPE_VARINT, - * UVARINT, SVARINT, FIXED32, FIXED64, EXTENSION fields, and also - * callback fields. These all have integer or pointer value which - * can be compared with 0. - */ - pb_size_t i; - const char *p = (const char*)pData; - for (i = 0; i < field->data_size; i++) - { - if (p[i] != 0) - { - return false; - } - } - - return true; - } -} - -/* Encode a field with static or pointer allocation, i.e. one whose data - * is available to the encoder directly. */ -static bool checkreturn encode_basic_field(pb_ostream_t *stream, - const pb_field_t *field, const void *pData) -{ - pb_encoder_t func; - bool implicit_has; - const void *pSize = &implicit_has; - - func = PB_ENCODERS[PB_LTYPE(field->type)]; - - if (field->size_offset) - { - /* Static optional, repeated or oneof field */ - pSize = (const char*)pData + field->size_offset; - } - else if (PB_HTYPE(field->type) == PB_HTYPE_OPTIONAL) - { - /* Proto3 style field, optional but without explicit has_ field. */ - implicit_has = !pb_check_proto3_default_value(field, pData); - } - else - { - /* Required field, always present */ - implicit_has = true; - } - - if (PB_ATYPE(field->type) == PB_ATYPE_POINTER) - { - /* pData is a pointer to the field, which contains pointer to - * the data. If the 2nd pointer is NULL, it is interpreted as if - * the has_field was false. - */ - pData = *(const void* const*)pData; - implicit_has = (pData != NULL); - } - - switch (PB_HTYPE(field->type)) - { - case PB_HTYPE_REQUIRED: - if (!pData) - PB_RETURN_ERROR(stream, "missing required field"); - if (!pb_encode_tag_for_field(stream, field)) - return false; - if (!func(stream, field, pData)) - return false; - break; - - case PB_HTYPE_OPTIONAL: - if (*(const bool*)pSize) - { - if (!pb_encode_tag_for_field(stream, field)) - return false; - - if (!func(stream, field, pData)) - return false; - } - break; - - case PB_HTYPE_REPEATED: - if (!encode_array(stream, field, pData, *(const pb_size_t*)pSize, func)) - return false; - break; - - case PB_HTYPE_ONEOF: - if (*(const pb_size_t*)pSize == field->tag) - { - if (!pb_encode_tag_for_field(stream, field)) - return false; - - if (!func(stream, field, pData)) - return false; - } - break; - - default: - PB_RETURN_ERROR(stream, "invalid field type"); - } - - return true; -} - -/* Encode a field with callback semantics. This means that a user function is - * called to provide and encode the actual data. */ -static bool checkreturn encode_callback_field(pb_ostream_t *stream, - const pb_field_t *field, const void *pData) -{ - const pb_callback_t *callback = (const pb_callback_t*)pData; - -#ifdef PB_OLD_CALLBACK_STYLE - const void *arg = callback->arg; -#else - void * const *arg = &(callback->arg); -#endif - - if (callback->funcs.encode != NULL) - { - if (!callback->funcs.encode(stream, field, arg)) - PB_RETURN_ERROR(stream, "callback error"); - } - return true; -} - -/* Encode a single field of any callback or static type. */ -static bool checkreturn encode_field(pb_ostream_t *stream, - const pb_field_t *field, const void *pData) -{ - switch (PB_ATYPE(field->type)) - { - case PB_ATYPE_STATIC: - case PB_ATYPE_POINTER: - return encode_basic_field(stream, field, pData); - - case PB_ATYPE_CALLBACK: - return encode_callback_field(stream, field, pData); - - default: - PB_RETURN_ERROR(stream, "invalid field type"); - } -} - -/* Default handler for extension fields. Expects to have a pb_field_t - * pointer in the extension->type->arg field. */ -static bool checkreturn default_extension_encoder(pb_ostream_t *stream, - const pb_extension_t *extension) -{ - const pb_field_t *field = (const pb_field_t*)extension->type->arg; - - if (PB_ATYPE(field->type) == PB_ATYPE_POINTER) - { - /* For pointer extensions, the pointer is stored directly - * in the extension structure. This avoids having an extra - * indirection. */ - return encode_field(stream, field, &extension->dest); - } - else - { - return encode_field(stream, field, extension->dest); - } -} - -/* Walk through all the registered extensions and give them a chance - * to encode themselves. */ -static bool checkreturn encode_extension_field(pb_ostream_t *stream, - const pb_field_t *field, const void *pData) -{ - const pb_extension_t *extension = *(const pb_extension_t* const *)pData; - PB_UNUSED(field); - - while (extension) - { - bool status; - if (extension->type->encode) - status = extension->type->encode(stream, extension); - else - status = default_extension_encoder(stream, extension); - - if (!status) - return false; - - extension = extension->next; - } - - return true; -} - -/********************* - * Encode all fields * - *********************/ - -static void *pb_const_cast(const void *p) -{ - /* Note: this casts away const, in order to use the common field iterator - * logic for both encoding and decoding. */ - union { - void *p1; - const void *p2; - } t; - t.p2 = p; - return t.p1; -} - -bool checkreturn pb_encode(pb_ostream_t *stream, const pb_field_t fields[], const void *src_struct) -{ - pb_field_iter_t iter; - if (!pb_field_iter_begin(&iter, fields, pb_const_cast(src_struct))) - return true; /* Empty message type */ - - do { - if (PB_LTYPE(iter.pos->type) == PB_LTYPE_EXTENSION) - { - /* Special case for the extension field placeholder */ - if (!encode_extension_field(stream, iter.pos, iter.pData)) - return false; - } - else - { - /* Regular field */ - if (!encode_field(stream, iter.pos, iter.pData)) - return false; - } - } while (pb_field_iter_next(&iter)); - - return true; -} - -bool pb_encode_delimited(pb_ostream_t *stream, const pb_field_t fields[], const void *src_struct) -{ - return pb_encode_submessage(stream, fields, src_struct); -} - -bool pb_get_encoded_size(size_t *size, const pb_field_t fields[], const void *src_struct) -{ - pb_ostream_t stream = PB_OSTREAM_SIZING; - - if (!pb_encode(&stream, fields, src_struct)) - return false; - - *size = stream.bytes_written; - return true; -} - -/******************** - * Helper functions * - ********************/ -bool checkreturn pb_encode_varint(pb_ostream_t *stream, uint64_t value) -{ - pb_byte_t buffer[10]; - size_t i = 0; - - if (value <= 0x7F) - { - pb_byte_t v = (pb_byte_t)value; - return pb_write(stream, &v, 1); - } - - while (value) - { - buffer[i] = (pb_byte_t)((value & 0x7F) | 0x80); - value >>= 7; - i++; - } - buffer[i-1] &= 0x7F; /* Unset top bit on last byte */ - - return pb_write(stream, buffer, i); -} - -bool checkreturn pb_encode_svarint(pb_ostream_t *stream, int64_t value) -{ - uint64_t zigzagged; - if (value < 0) - zigzagged = ~((uint64_t)value << 1); - else - zigzagged = (uint64_t)value << 1; - - return pb_encode_varint(stream, zigzagged); -} - -bool checkreturn pb_encode_fixed32(pb_ostream_t *stream, const void *value) -{ - uint32_t val = *(const uint32_t*)value; - pb_byte_t bytes[4]; - bytes[0] = (pb_byte_t)(val & 0xFF); - bytes[1] = (pb_byte_t)((val >> 8) & 0xFF); - bytes[2] = (pb_byte_t)((val >> 16) & 0xFF); - bytes[3] = (pb_byte_t)((val >> 24) & 0xFF); - return pb_write(stream, bytes, 4); -} - -bool checkreturn pb_encode_fixed64(pb_ostream_t *stream, const void *value) -{ - uint64_t val = *(const uint64_t*)value; - pb_byte_t bytes[8]; - bytes[0] = (pb_byte_t)(val & 0xFF); - bytes[1] = (pb_byte_t)((val >> 8) & 0xFF); - bytes[2] = (pb_byte_t)((val >> 16) & 0xFF); - bytes[3] = (pb_byte_t)((val >> 24) & 0xFF); - bytes[4] = (pb_byte_t)((val >> 32) & 0xFF); - bytes[5] = (pb_byte_t)((val >> 40) & 0xFF); - bytes[6] = (pb_byte_t)((val >> 48) & 0xFF); - bytes[7] = (pb_byte_t)((val >> 56) & 0xFF); - return pb_write(stream, bytes, 8); -} - -bool checkreturn pb_encode_tag(pb_ostream_t *stream, pb_wire_type_t wiretype, uint32_t field_number) -{ - uint64_t tag = ((uint64_t)field_number << 3) | wiretype; - return pb_encode_varint(stream, tag); -} - -bool checkreturn pb_encode_tag_for_field(pb_ostream_t *stream, const pb_field_t *field) -{ - pb_wire_type_t wiretype; - switch (PB_LTYPE(field->type)) - { - case PB_LTYPE_VARINT: - case PB_LTYPE_UVARINT: - case PB_LTYPE_SVARINT: - wiretype = PB_WT_VARINT; - break; - - case PB_LTYPE_FIXED32: - wiretype = PB_WT_32BIT; - break; - - case PB_LTYPE_FIXED64: - wiretype = PB_WT_64BIT; - break; - - case PB_LTYPE_BYTES: - case PB_LTYPE_STRING: - case PB_LTYPE_SUBMESSAGE: - case PB_LTYPE_FIXED_LENGTH_BYTES: - wiretype = PB_WT_STRING; - break; - - default: - PB_RETURN_ERROR(stream, "invalid field type"); - } - - return pb_encode_tag(stream, wiretype, field->tag); -} - -bool checkreturn pb_encode_string(pb_ostream_t *stream, const pb_byte_t *buffer, size_t size) -{ - if (!pb_encode_varint(stream, (uint64_t)size)) - return false; - - return pb_write(stream, buffer, size); -} - -bool checkreturn pb_encode_submessage(pb_ostream_t *stream, const pb_field_t fields[], const void *src_struct) -{ - /* First calculate the message size using a non-writing substream. */ - pb_ostream_t substream = PB_OSTREAM_SIZING; - size_t size; - bool status; - - if (!pb_encode(&substream, fields, src_struct)) - { -#ifndef PB_NO_ERRMSG - stream->errmsg = substream.errmsg; -#endif - return false; - } - - size = substream.bytes_written; - - if (!pb_encode_varint(stream, (uint64_t)size)) - return false; - - if (stream->callback == NULL) - return pb_write(stream, NULL, size); /* Just sizing */ - - if (stream->bytes_written + size > stream->max_size) - PB_RETURN_ERROR(stream, "stream full"); - - /* Use a substream to verify that a callback doesn't write more than - * what it did the first time. */ - substream.callback = stream->callback; - substream.state = stream->state; - substream.max_size = size; - substream.bytes_written = 0; -#ifndef PB_NO_ERRMSG - substream.errmsg = NULL; -#endif - - status = pb_encode(&substream, fields, src_struct); - - stream->bytes_written += substream.bytes_written; - stream->state = substream.state; -#ifndef PB_NO_ERRMSG - stream->errmsg = substream.errmsg; -#endif - - if (substream.bytes_written != size) - PB_RETURN_ERROR(stream, "submsg size changed"); - - return status; -} - -/* Field encoders */ - -static bool checkreturn pb_enc_varint(pb_ostream_t *stream, const pb_field_t *field, const void *src) -{ - int64_t value = 0; - - if (field->data_size == sizeof(int_least8_t)) - value = *(const int_least8_t*)src; - else if (field->data_size == sizeof(int_least16_t)) - value = *(const int_least16_t*)src; - else if (field->data_size == sizeof(int32_t)) - value = *(const int32_t*)src; - else if (field->data_size == sizeof(int64_t)) - value = *(const int64_t*)src; - else - PB_RETURN_ERROR(stream, "invalid data_size"); - - return pb_encode_varint(stream, (uint64_t)value); -} - -static bool checkreturn pb_enc_uvarint(pb_ostream_t *stream, const pb_field_t *field, const void *src) -{ - uint64_t value = 0; - - if (field->data_size == sizeof(uint_least8_t)) - value = *(const uint_least8_t*)src; - else if (field->data_size == sizeof(uint_least16_t)) - value = *(const uint_least16_t*)src; - else if (field->data_size == sizeof(uint32_t)) - value = *(const uint32_t*)src; - else if (field->data_size == sizeof(uint64_t)) - value = *(const uint64_t*)src; - else - PB_RETURN_ERROR(stream, "invalid data_size"); - - return pb_encode_varint(stream, value); -} - -static bool checkreturn pb_enc_svarint(pb_ostream_t *stream, const pb_field_t *field, const void *src) -{ - int64_t value = 0; - - if (field->data_size == sizeof(int_least8_t)) - value = *(const int_least8_t*)src; - else if (field->data_size == sizeof(int_least16_t)) - value = *(const int_least16_t*)src; - else if (field->data_size == sizeof(int32_t)) - value = *(const int32_t*)src; - else if (field->data_size == sizeof(int64_t)) - value = *(const int64_t*)src; - else - PB_RETURN_ERROR(stream, "invalid data_size"); - - return pb_encode_svarint(stream, value); -} - -static bool checkreturn pb_enc_fixed64(pb_ostream_t *stream, const pb_field_t *field, const void *src) -{ - PB_UNUSED(field); - return pb_encode_fixed64(stream, src); -} - -static bool checkreturn pb_enc_fixed32(pb_ostream_t *stream, const pb_field_t *field, const void *src) -{ - PB_UNUSED(field); - return pb_encode_fixed32(stream, src); -} - -static bool checkreturn pb_enc_bytes(pb_ostream_t *stream, const pb_field_t *field, const void *src) -{ - const pb_bytes_array_t *bytes = NULL; - - bytes = (const pb_bytes_array_t*)src; - - if (src == NULL) - { - /* Treat null pointer as an empty bytes field */ - return pb_encode_string(stream, NULL, 0); - } - - if (PB_ATYPE(field->type) == PB_ATYPE_STATIC && - PB_BYTES_ARRAY_T_ALLOCSIZE(bytes->size) > field->data_size) - { - PB_RETURN_ERROR(stream, "bytes size exceeded"); - } - - return pb_encode_string(stream, bytes->bytes, bytes->size); -} - -static bool checkreturn pb_enc_string(pb_ostream_t *stream, const pb_field_t *field, const void *src) -{ - size_t size = 0; - size_t max_size = field->data_size; - const char *p = (const char*)src; - - if (PB_ATYPE(field->type) == PB_ATYPE_POINTER) - max_size = (size_t)-1; - - if (src == NULL) - { - size = 0; /* Treat null pointer as an empty string */ - } - else - { - /* strnlen() is not always available, so just use a loop */ - while (size < max_size && *p != '\0') - { - size++; - p++; - } - } - - return pb_encode_string(stream, (const pb_byte_t*)src, size); -} - -static bool checkreturn pb_enc_submessage(pb_ostream_t *stream, const pb_field_t *field, const void *src) -{ - if (field->ptr == NULL) - PB_RETURN_ERROR(stream, "invalid field descriptor"); - - return pb_encode_submessage(stream, (const pb_field_t*)field->ptr, src); -} - -static bool checkreturn pb_enc_fixed_length_bytes(pb_ostream_t *stream, const pb_field_t *field, const void *src) -{ - return pb_encode_string(stream, (const pb_byte_t*)src, field->data_size); -} - diff --git a/StoneIsland/platforms/ios/Pods/nanopb/pb_encode.h b/StoneIsland/platforms/ios/Pods/nanopb/pb_encode.h deleted file mode 100644 index d9909fb0..00000000 --- a/StoneIsland/platforms/ios/Pods/nanopb/pb_encode.h +++ /dev/null @@ -1,154 +0,0 @@ -/* pb_encode.h: Functions to encode protocol buffers. Depends on pb_encode.c. - * The main function is pb_encode. You also need an output stream, and the - * field descriptions created by nanopb_generator.py. - */ - -#ifndef PB_ENCODE_H_INCLUDED -#define PB_ENCODE_H_INCLUDED - -#include "pb.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Structure for defining custom output streams. You will need to provide - * a callback function to write the bytes to your storage, which can be - * for example a file or a network socket. - * - * The callback must conform to these rules: - * - * 1) Return false on IO errors. This will cause encoding to abort. - * 2) You can use state to store your own data (e.g. buffer pointer). - * 3) pb_write will update bytes_written after your callback runs. - * 4) Substreams will modify max_size and bytes_written. Don't use them - * to calculate any pointers. - */ -struct pb_ostream_s -{ -#ifdef PB_BUFFER_ONLY - /* Callback pointer is not used in buffer-only configuration. - * Having an int pointer here allows binary compatibility but - * gives an error if someone tries to assign callback function. - * Also, NULL pointer marks a 'sizing stream' that does not - * write anything. - */ - int *callback; -#else - bool (*callback)(pb_ostream_t *stream, const pb_byte_t *buf, size_t count); -#endif - void *state; /* Free field for use by callback implementation. */ - size_t max_size; /* Limit number of output bytes written (or use SIZE_MAX). */ - size_t bytes_written; /* Number of bytes written so far. */ - -#ifndef PB_NO_ERRMSG - const char *errmsg; -#endif -}; - -/*************************** - * Main encoding functions * - ***************************/ - -/* Encode a single protocol buffers message from C structure into a stream. - * Returns true on success, false on any failure. - * The actual struct pointed to by src_struct must match the description in fields. - * All required fields in the struct are assumed to have been filled in. - * - * Example usage: - * MyMessage msg = {}; - * uint8_t buffer[64]; - * pb_ostream_t stream; - * - * msg.field1 = 42; - * stream = pb_ostream_from_buffer(buffer, sizeof(buffer)); - * pb_encode(&stream, MyMessage_fields, &msg); - */ -bool pb_encode(pb_ostream_t *stream, const pb_field_t fields[], const void *src_struct); - -/* Same as pb_encode, but prepends the length of the message as a varint. - * Corresponds to writeDelimitedTo() in Google's protobuf API. - */ -bool pb_encode_delimited(pb_ostream_t *stream, const pb_field_t fields[], const void *src_struct); - -/* Encode the message to get the size of the encoded data, but do not store - * the data. */ -bool pb_get_encoded_size(size_t *size, const pb_field_t fields[], const void *src_struct); - -/************************************** - * Functions for manipulating streams * - **************************************/ - -/* Create an output stream for writing into a memory buffer. - * The number of bytes written can be found in stream.bytes_written after - * encoding the message. - * - * Alternatively, you can use a custom stream that writes directly to e.g. - * a file or a network socket. - */ -pb_ostream_t pb_ostream_from_buffer(pb_byte_t *buf, size_t bufsize); - -/* Pseudo-stream for measuring the size of a message without actually storing - * the encoded data. - * - * Example usage: - * MyMessage msg = {}; - * pb_ostream_t stream = PB_OSTREAM_SIZING; - * pb_encode(&stream, MyMessage_fields, &msg); - * printf("Message size is %d\n", stream.bytes_written); - */ -#ifndef PB_NO_ERRMSG -#define PB_OSTREAM_SIZING {0,0,0,0,0} -#else -#define PB_OSTREAM_SIZING {0,0,0,0} -#endif - -/* Function to write into a pb_ostream_t stream. You can use this if you need - * to append or prepend some custom headers to the message. - */ -bool pb_write(pb_ostream_t *stream, const pb_byte_t *buf, size_t count); - - -/************************************************ - * Helper functions for writing field callbacks * - ************************************************/ - -/* Encode field header based on type and field number defined in the field - * structure. Call this from the callback before writing out field contents. */ -bool pb_encode_tag_for_field(pb_ostream_t *stream, const pb_field_t *field); - -/* Encode field header by manually specifing wire type. You need to use this - * if you want to write out packed arrays from a callback field. */ -bool pb_encode_tag(pb_ostream_t *stream, pb_wire_type_t wiretype, uint32_t field_number); - -/* Encode an integer in the varint format. - * This works for bool, enum, int32, int64, uint32 and uint64 field types. */ -bool pb_encode_varint(pb_ostream_t *stream, uint64_t value); - -/* Encode an integer in the zig-zagged svarint format. - * This works for sint32 and sint64. */ -bool pb_encode_svarint(pb_ostream_t *stream, int64_t value); - -/* Encode a string or bytes type field. For strings, pass strlen(s) as size. */ -bool pb_encode_string(pb_ostream_t *stream, const pb_byte_t *buffer, size_t size); - -/* Encode a fixed32, sfixed32 or float value. - * You need to pass a pointer to a 4-byte wide C variable. */ -bool pb_encode_fixed32(pb_ostream_t *stream, const void *value); - -/* Encode a fixed64, sfixed64 or double value. - * You need to pass a pointer to a 8-byte wide C variable. */ -bool pb_encode_fixed64(pb_ostream_t *stream, const void *value); - -/* Encode a submessage field. - * You need to pass the pb_field_t array and pointer to struct, just like - * with pb_encode(). This internally encodes the submessage twice, first to - * calculate message size and then to actually write it out. - */ -bool pb_encode_submessage(pb_ostream_t *stream, const pb_field_t fields[], const void *src_struct); - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#endif |
