From 8dae6a5044f9c1b7a8497cc1c96155fd262b40cf Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Thu, 26 Oct 2017 01:41:16 +0200 Subject: iphone x fixes --- StoneIsland/config.xml | 30 +- StoneIsland/package-lock.json | 180 +- StoneIsland/package.json | 112 +- StoneIsland/platforms/android/AndroidManifest.xml | 23 +- StoneIsland/platforms/android/android.json | 78 +- .../android/assets/www/cordova_plugins.js | 22 +- .../www/splashscreen.js | 3 +- .../www/plugins/phonegap-plugin-push/www/push.js | 496 +- StoneIsland/platforms/android/build.gradle | 6 +- .../phonegap-plugin-push/stoneisland-push.gradle | 18 - .../android/platform_www/cordova_plugins.js | 22 +- .../www/splashscreen.js | 3 +- .../plugins/phonegap-plugin-push/www/push.js | 496 +- StoneIsland/platforms/android/project.properties | 8 +- .../platforms/android/res/values/strings.xml | 1 + StoneIsland/platforms/android/res/xml/config.xml | 8 +- .../push/BackgroundActionButtonHandler.java | 4 +- .../src/com/adobe/phonegap/push/FCMService.java | 891 -- .../com/adobe/phonegap/push/GCMIntentService.java | 802 ++ .../com/adobe/phonegap/push/PermissionUtils.java | 4 - .../src/com/adobe/phonegap/push/PushConstants.java | 16 +- .../adobe/phonegap/push/PushDismissedHandler.java | 25 - .../adobe/phonegap/push/PushHandlerActivity.java | 32 +- .../push/PushInstanceIDListenerService.java | 19 +- .../src/com/adobe/phonegap/push/PushPlugin.java | 132 +- .../phonegap/push/RegistrationIntentService.java | 38 + .../CordovaLib/Classes/Private/CDVJSON_private.m | 4 +- .../Classes/Private/Plugins/CDVLogger/CDVLogger.h | 26 + .../Classes/Private/Plugins/CDVLogger/CDVLogger.m | 37 + .../CDVUIWebViewEngine/CDVUIWebViewDelegate.m | 9 +- .../CDVUIWebViewNavigationDelegate.m | 4 +- .../ios/CordovaLib/Classes/Public/CDVAppDelegate.m | 13 + .../CordovaLib/Classes/Public/CDVAvailability.h | 3 +- .../ios/CordovaLib/Classes/Public/CDVPlugin.h | 2 + .../ios/CordovaLib/Classes/Public/CDVPlugin.m | 33 + .../CordovaLib.xcodeproj/project.pbxproj | 16 + .../xcschemes/xcschememanagement.plist | 4 +- StoneIsland/platforms/ios/CordovaLib/VERSION | 2 +- StoneIsland/platforms/ios/CordovaLib/cordova.js | 1183 +- StoneIsland/platforms/ios/Podfile | 3 +- StoneIsland/platforms/ios/Podfile.lock | 57 +- .../FirebaseAnalytics.framework/FirebaseAnalytics | Bin 15524336 -> 0 bytes .../Headers/FIRAnalytics+AppDelegate.h | 62 - .../Headers/FIRAnalytics.h | 114 - .../Headers/FIRAnalyticsConfiguration.h | 1 - .../Headers/FIRAnalyticsSwiftNameSupport.h | 13 - .../FirebaseAnalytics.framework/Headers/FIRApp.h | 1 - .../Headers/FIRConfiguration.h | 1 - .../Headers/FIREventNames.h | 391 - .../Headers/FIROptions.h | 1 - .../Headers/FIRParameterNames.h | 487 - .../Headers/FIRUserPropertyNames.h | 17 - .../Headers/FirebaseAnalytics.h | 10 - .../Modules/module.modulemap | 8 - .../Frameworks/FirebaseCore.framework/FirebaseCore | Bin 2248848 -> 0 bytes .../Headers/FIRAnalyticsConfiguration.h | 54 - .../FirebaseCore.framework/Headers/FIRApp.h | 130 - .../Headers/FIRConfiguration.h | 80 - .../Headers/FIRCoreSwiftNameSupport.h | 29 - .../Headers/FIRLoggerLevel.h | 37 - .../FirebaseCore.framework/Headers/FIROptions.h | 132 - .../FirebaseCore.framework/Headers/FirebaseCore.h | 6 - .../Modules/module.modulemap | 6 - .../FirebaseCoreDiagnostics | Bin 2073064 -> 0 bytes .../Modules/module.modulemap | 5 - .../FirebaseNanoPB.framework/FirebaseNanoPB | Bin 310512 -> 0 bytes .../ios/Pods/FirebaseInstanceID/CHANGELOG.md | 52 - .../FirebaseInstanceID | Bin 4404248 -> 0 bytes .../Headers/FIRInstanceID.h | 279 - .../Headers/FirebaseInstanceID.h | 1 - .../Modules/module.modulemap | 6 - .../ios/Pods/FirebaseInstanceID/README.md | 10 - .../FirebaseMessaging.framework/FirebaseMessaging | Bin 6597168 -> 0 bytes .../Headers/FIRMessaging.h | 486 - .../Headers/FirebaseMessaging.h | 1 - .../Modules/module.modulemap | 7 - .../platforms/ios/Pods/GGLInstanceID/CHANGELOG.md | 28 + .../GGLInstanceID/Headers/Public/GGLInstanceID.h | 273 + .../Headers/Public/GGLInstanceIDConfig.h | 32 + .../Headers/Public/GGLInstanceIDDelegate.h | 13 + .../Headers/Public/GGLInstanceIDHeaders.h | 4 + .../GGLInstanceID/Libraries/libGGLInstanceIDLib.a | Bin 0 -> 2553392 bytes .../platforms/ios/Pods/GGLInstanceID/README.md | 10 + .../ios/Pods/GoogleCloudMessaging/CHANGELOG.md | 32 + .../Headers/Public/GCMConfig.h | 49 + .../Headers/Public/GCMPubSub.h | 82 + .../Headers/Public/GCMReceiverDelegate.h | 35 + .../Headers/Public/GCMService.h | 243 + .../Headers/Public/GoogleCloudMessaging.h | 5 + .../GoogleCloudMessaging/Libraries/libGcmLib.a | Bin 0 -> 3813312 bytes .../ios/Pods/GoogleCloudMessaging/README.md | 10 + .../GoogleIPhoneUtilities | Bin 0 -> 263512 bytes .../GoogleInterchangeUtilities | Bin 0 -> 4461712 bytes .../GoogleSymbolUtilities | Bin 0 -> 37696 bytes .../GoogleToolboxForMac/Foundation/GTMLogger.h | 508 - .../GoogleToolboxForMac/Foundation/GTMLogger.m | 648 - .../Foundation/GTMNSData+zlib.h | 199 - .../Foundation/GTMNSData+zlib.m | 531 - .../ios/Pods/GoogleToolboxForMac/GTMDefines.h | 392 - .../platforms/ios/Pods/GoogleToolboxForMac/LICENSE | 202 - .../ios/Pods/GoogleToolboxForMac/README.md | 15 - .../GoogleUtilities.framework/GoogleUtilities | Bin 0 -> 2567216 bytes .../Headers/Private/GGLInstanceID/GGLInstanceID.h | 1 + .../Private/GGLInstanceID/GGLInstanceIDConfig.h | 1 + .../Private/GGLInstanceID/GGLInstanceIDDelegate.h | 1 + .../Private/GGLInstanceID/GGLInstanceIDHeaders.h | 1 + .../Private/GoogleCloudMessaging/GCMConfig.h | 1 + .../Private/GoogleCloudMessaging/GCMPubSub.h | 1 + .../GoogleCloudMessaging/GCMReceiverDelegate.h | 1 + .../Private/GoogleCloudMessaging/GCMService.h | 1 + .../GoogleCloudMessaging/GoogleCloudMessaging.h | 1 + .../Private/GoogleToolboxForMac/GTMDefines.h | 1 - .../Private/GoogleToolboxForMac/GTMLogger.h | 1 - .../Private/GoogleToolboxForMac/GTMNSData+zlib.h | 1 - .../ios/Pods/Headers/Private/Protobuf/Any.pbobjc.h | 1 - .../ios/Pods/Headers/Private/Protobuf/Api.pbobjc.h | 1 - .../Headers/Private/Protobuf/Duration.pbobjc.h | 1 - .../Pods/Headers/Private/Protobuf/Empty.pbobjc.h | 1 - .../Headers/Private/Protobuf/FieldMask.pbobjc.h | 1 - .../ios/Pods/Headers/Private/Protobuf/GPBArray.h | 1 - .../Private/Protobuf/GPBArray_PackagePrivate.h | 1 - .../Pods/Headers/Private/Protobuf/GPBBootstrap.h | 1 - .../Headers/Private/Protobuf/GPBCodedInputStream.h | 1 - .../Protobuf/GPBCodedInputStream_PackagePrivate.h | 1 - .../Private/Protobuf/GPBCodedOutputStream.h | 1 - .../Protobuf/GPBCodedOutputStream_PackagePrivate.h | 1 - .../Pods/Headers/Private/Protobuf/GPBDescriptor.h | 1 - .../Protobuf/GPBDescriptor_PackagePrivate.h | 1 - .../Pods/Headers/Private/Protobuf/GPBDictionary.h | 1 - .../Protobuf/GPBDictionary_PackagePrivate.h | 1 - .../Private/Protobuf/GPBExtensionInternals.h | 1 - .../Private/Protobuf/GPBExtensionRegistry.h | 1 - .../ios/Pods/Headers/Private/Protobuf/GPBMessage.h | 1 - .../Private/Protobuf/GPBMessage_PackagePrivate.h | 1 - .../Headers/Private/Protobuf/GPBProtocolBuffers.h | 1 - .../Protobuf/GPBProtocolBuffers_RuntimeSupport.h | 1 - .../Pods/Headers/Private/Protobuf/GPBRootObject.h | 1 - .../Protobuf/GPBRootObject_PackagePrivate.h | 1 - .../Headers/Private/Protobuf/GPBRuntimeTypes.h | 1 - .../Headers/Private/Protobuf/GPBUnknownField.h | 1 - .../Headers/Private/Protobuf/GPBUnknownFieldSet.h | 1 - .../Protobuf/GPBUnknownFieldSet_PackagePrivate.h | 1 - .../Protobuf/GPBUnknownField_PackagePrivate.h | 1 - .../Pods/Headers/Private/Protobuf/GPBUtilities.h | 1 - .../Private/Protobuf/GPBUtilities_PackagePrivate.h | 1 - .../Headers/Private/Protobuf/GPBWellKnownTypes.h | 1 - .../Pods/Headers/Private/Protobuf/GPBWireFormat.h | 1 - .../Private/Protobuf/SourceContext.pbobjc.h | 1 - .../Pods/Headers/Private/Protobuf/Struct.pbobjc.h | 1 - .../Headers/Private/Protobuf/Timestamp.pbobjc.h | 1 - .../Pods/Headers/Private/Protobuf/Type.pbobjc.h | 1 - .../Headers/Private/Protobuf/Wrappers.pbobjc.h | 1 - .../platforms/ios/Pods/Headers/Private/nanopb/pb.h | 1 - .../ios/Pods/Headers/Private/nanopb/pb_common.h | 1 - .../ios/Pods/Headers/Private/nanopb/pb_decode.h | 1 - .../ios/Pods/Headers/Private/nanopb/pb_encode.h | 1 - .../FirebaseAnalytics/FIRAnalytics+AppDelegate.h | 1 - .../FirebaseAnalytics/FIRAnalytics.h | 1 - .../FirebaseAnalytics/FIRAnalyticsConfiguration.h | 1 - .../FIRAnalyticsSwiftNameSupport.h | 1 - .../FirebaseAnalytics/FirebaseAnalytics/FIRApp.h | 1 - .../FirebaseAnalytics/FIRConfiguration.h | 1 - .../FirebaseAnalytics/FIREventNames.h | 1 - .../FirebaseAnalytics/FIROptions.h | 1 - .../FirebaseAnalytics/FIRParameterNames.h | 1 - .../FirebaseAnalytics/FIRUserPropertyNames.h | 1 - .../FirebaseAnalytics/FirebaseAnalytics.h | 1 - .../FirebaseCore/FIRAnalyticsConfiguration.h | 1 - .../Public/FirebaseCore/FirebaseCore/FIRApp.h | 1 - .../FirebaseCore/FirebaseCore/FIRConfiguration.h | 1 - .../FirebaseCore/FIRCoreSwiftNameSupport.h | 1 - .../FirebaseCore/FirebaseCore/FIRLoggerLevel.h | 1 - .../Public/FirebaseCore/FirebaseCore/FIROptions.h | 1 - .../FirebaseCore/FirebaseCore/FirebaseCore.h | 1 - .../FirebaseInstanceID/FIRInstanceID.h | 1 - .../FirebaseInstanceID/FirebaseInstanceID.h | 1 - .../FirebaseMessaging/FIRMessaging.h | 1 - .../FirebaseMessaging/FirebaseMessaging.h | 1 - .../Headers/Public/GGLInstanceID/GGLInstanceID.h | 1 + .../Public/GGLInstanceID/GGLInstanceIDConfig.h | 1 + .../Public/GGLInstanceID/GGLInstanceIDDelegate.h | 1 + .../Public/GGLInstanceID/GGLInstanceIDHeaders.h | 1 + .../Public/GoogleCloudMessaging/GCMConfig.h | 1 + .../Public/GoogleCloudMessaging/GCMPubSub.h | 1 + .../GoogleCloudMessaging/GCMReceiverDelegate.h | 1 + .../Public/GoogleCloudMessaging/GCMService.h | 1 + .../GoogleCloudMessaging/GoogleCloudMessaging.h | 1 + .../Public/GoogleToolboxForMac/GTMDefines.h | 1 - .../Headers/Public/GoogleToolboxForMac/GTMLogger.h | 1 - .../Public/GoogleToolboxForMac/GTMNSData+zlib.h | 1 - .../ios/Pods/Headers/Public/Protobuf/Any.pbobjc.h | 1 - .../ios/Pods/Headers/Public/Protobuf/Api.pbobjc.h | 1 - .../Pods/Headers/Public/Protobuf/Duration.pbobjc.h | 1 - .../Pods/Headers/Public/Protobuf/Empty.pbobjc.h | 1 - .../Headers/Public/Protobuf/FieldMask.pbobjc.h | 1 - .../ios/Pods/Headers/Public/Protobuf/GPBArray.h | 1 - .../Public/Protobuf/GPBArray_PackagePrivate.h | 1 - .../Pods/Headers/Public/Protobuf/GPBBootstrap.h | 1 - .../Headers/Public/Protobuf/GPBCodedInputStream.h | 1 - .../Protobuf/GPBCodedInputStream_PackagePrivate.h | 1 - .../Headers/Public/Protobuf/GPBCodedOutputStream.h | 1 - .../Protobuf/GPBCodedOutputStream_PackagePrivate.h | 1 - .../Pods/Headers/Public/Protobuf/GPBDescriptor.h | 1 - .../Public/Protobuf/GPBDescriptor_PackagePrivate.h | 1 - .../Pods/Headers/Public/Protobuf/GPBDictionary.h | 1 - .../Public/Protobuf/GPBDictionary_PackagePrivate.h | 1 - .../Public/Protobuf/GPBExtensionInternals.h | 1 - .../Headers/Public/Protobuf/GPBExtensionRegistry.h | 1 - .../ios/Pods/Headers/Public/Protobuf/GPBMessage.h | 1 - .../Public/Protobuf/GPBMessage_PackagePrivate.h | 1 - .../Headers/Public/Protobuf/GPBProtocolBuffers.h | 1 - .../Protobuf/GPBProtocolBuffers_RuntimeSupport.h | 1 - .../Pods/Headers/Public/Protobuf/GPBRootObject.h | 1 - .../Public/Protobuf/GPBRootObject_PackagePrivate.h | 1 - .../Pods/Headers/Public/Protobuf/GPBRuntimeTypes.h | 1 - .../Pods/Headers/Public/Protobuf/GPBUnknownField.h | 1 - .../Headers/Public/Protobuf/GPBUnknownFieldSet.h | 1 - .../Protobuf/GPBUnknownFieldSet_PackagePrivate.h | 1 - .../Protobuf/GPBUnknownField_PackagePrivate.h | 1 - .../Pods/Headers/Public/Protobuf/GPBUtilities.h | 1 - .../Public/Protobuf/GPBUtilities_PackagePrivate.h | 1 - .../Headers/Public/Protobuf/GPBWellKnownTypes.h | 1 - .../Pods/Headers/Public/Protobuf/GPBWireFormat.h | 1 - .../Headers/Public/Protobuf/SourceContext.pbobjc.h | 1 - .../Pods/Headers/Public/Protobuf/Struct.pbobjc.h | 1 - .../Headers/Public/Protobuf/Timestamp.pbobjc.h | 1 - .../ios/Pods/Headers/Public/Protobuf/Type.pbobjc.h | 1 - .../Pods/Headers/Public/Protobuf/Wrappers.pbobjc.h | 1 - .../platforms/ios/Pods/Headers/Public/nanopb/pb.h | 1 - .../ios/Pods/Headers/Public/nanopb/pb_common.h | 1 - .../ios/Pods/Headers/Public/nanopb/pb_decode.h | 1 - .../ios/Pods/Headers/Public/nanopb/pb_encode.h | 1 - StoneIsland/platforms/ios/Pods/Manifest.lock | 57 +- .../ios/Pods/Pods.xcodeproj/project.pbxproj | 927 +- .../xcschemes/GoogleToolboxForMac.xcscheme | 60 - .../xcschemes/Pods-Stone Island.xcscheme | 2 +- .../user.xcuserdatad/xcschemes/Protobuf.xcscheme | 60 - .../user.xcuserdatad/xcschemes/nanopb.xcscheme | 60 - .../xcschemes/xcschememanagement.plist | 23 +- StoneIsland/platforms/ios/Pods/Protobuf/LICENSE | 42 - StoneIsland/platforms/ios/Pods/Protobuf/README.md | 77 - .../ios/Pods/Protobuf/objectivec/GPBArray.h | 1967 --- .../ios/Pods/Protobuf/objectivec/GPBArray.m | 2551 ---- .../Protobuf/objectivec/GPBArray_PackagePrivate.h | 130 - .../ios/Pods/Protobuf/objectivec/GPBBootstrap.h | 123 - .../Pods/Protobuf/objectivec/GPBCodedInputStream.h | 253 - .../Pods/Protobuf/objectivec/GPBCodedInputStream.m | 538 - .../GPBCodedInputStream_PackagePrivate.h | 114 - .../Protobuf/objectivec/GPBCodedOutputStream.h | 739 - .../Protobuf/objectivec/GPBCodedOutputStream.m | 1202 -- .../GPBCodedOutputStream_PackagePrivate.h | 126 - .../ios/Pods/Protobuf/objectivec/GPBDescriptor.h | 288 - .../ios/Pods/Protobuf/objectivec/GPBDescriptor.m | 1104 -- .../objectivec/GPBDescriptor_PackagePrivate.h | 329 - .../ios/Pods/Protobuf/objectivec/GPBDictionary.h | 8570 ------------ .../ios/Pods/Protobuf/objectivec/GPBDictionary.m | 13627 ------------------- .../objectivec/GPBDictionary_PackagePrivate.h | 488 - .../Protobuf/objectivec/GPBExtensionInternals.h | 50 - .../Protobuf/objectivec/GPBExtensionInternals.m | 391 - .../Protobuf/objectivec/GPBExtensionRegistry.h | 87 - .../Protobuf/objectivec/GPBExtensionRegistry.m | 131 - .../ios/Pods/Protobuf/objectivec/GPBMessage.h | 461 - .../ios/Pods/Protobuf/objectivec/GPBMessage.m | 3262 ----- .../objectivec/GPBMessage_PackagePrivate.h | 134 - .../Pods/Protobuf/objectivec/GPBProtocolBuffers.h | 76 - .../objectivec/GPBProtocolBuffers_RuntimeSupport.h | 40 - .../ios/Pods/Protobuf/objectivec/GPBRootObject.h | 52 - .../ios/Pods/Protobuf/objectivec/GPBRootObject.m | 237 - .../objectivec/GPBRootObject_PackagePrivate.h | 46 - .../ios/Pods/Protobuf/objectivec/GPBRuntimeTypes.h | 144 - .../ios/Pods/Protobuf/objectivec/GPBUnknownField.h | 96 - .../ios/Pods/Protobuf/objectivec/GPBUnknownField.m | 334 - .../Pods/Protobuf/objectivec/GPBUnknownFieldSet.h | 82 - .../Pods/Protobuf/objectivec/GPBUnknownFieldSet.m | 395 - .../objectivec/GPBUnknownFieldSet_PackagePrivate.h | 61 - .../objectivec/GPBUnknownField_PackagePrivate.h | 49 - .../ios/Pods/Protobuf/objectivec/GPBUtilities.h | 539 - .../ios/Pods/Protobuf/objectivec/GPBUtilities.m | 1923 --- .../objectivec/GPBUtilities_PackagePrivate.h | 350 - .../Pods/Protobuf/objectivec/GPBWellKnownTypes.h | 245 - .../Pods/Protobuf/objectivec/GPBWellKnownTypes.m | 272 - .../ios/Pods/Protobuf/objectivec/GPBWireFormat.h | 73 - .../ios/Pods/Protobuf/objectivec/GPBWireFormat.m | 85 - .../objectivec/google/protobuf/Any.pbobjc.h | 163 - .../objectivec/google/protobuf/Any.pbobjc.m | 112 - .../objectivec/google/protobuf/Api.pbobjc.h | 299 - .../objectivec/google/protobuf/Api.pbobjc.m | 356 - .../objectivec/google/protobuf/Duration.pbobjc.h | 141 - .../objectivec/google/protobuf/Duration.pbobjc.m | 107 - .../objectivec/google/protobuf/Empty.pbobjc.h | 70 - .../objectivec/google/protobuf/Empty.pbobjc.m | 83 - .../objectivec/google/protobuf/FieldMask.pbobjc.h | 271 - .../objectivec/google/protobuf/FieldMask.pbobjc.m | 96 - .../google/protobuf/SourceContext.pbobjc.h | 73 - .../google/protobuf/SourceContext.pbobjc.m | 96 - .../objectivec/google/protobuf/Struct.pbobjc.h | 200 - .../objectivec/google/protobuf/Struct.pbobjc.m | 293 - .../objectivec/google/protobuf/Timestamp.pbobjc.h | 157 - .../objectivec/google/protobuf/Timestamp.pbobjc.m | 107 - .../objectivec/google/protobuf/Type.pbobjc.h | 440 - .../objectivec/google/protobuf/Type.pbobjc.m | 701 - .../objectivec/google/protobuf/Wrappers.pbobjc.h | 215 - .../objectivec/google/protobuf/Wrappers.pbobjc.m | 439 - .../GoogleToolboxForMac-dummy.m | 5 - .../GoogleToolboxForMac-prefix.pch | 12 - .../GoogleToolboxForMac.xcconfig | 10 - .../Pods-Stone Island-acknowledgements.markdown | 292 +- .../Pods-Stone Island-acknowledgements.plist | 302 +- .../Pods-Stone Island.debug.xcconfig | 12 +- .../Pods-Stone Island.release.xcconfig | 12 +- .../Target Support Files/Protobuf/Protobuf-dummy.m | 5 - .../Protobuf/Protobuf-prefix.pch | 12 - .../Protobuf/Protobuf.xcconfig | 9 - .../Target Support Files/nanopb/nanopb-dummy.m | 5 - .../Target Support Files/nanopb/nanopb-prefix.pch | 12 - .../Target Support Files/nanopb/nanopb.xcconfig | 9 - StoneIsland/platforms/ios/Pods/nanopb/LICENSE.txt | 20 - StoneIsland/platforms/ios/Pods/nanopb/README.md | 71 - StoneIsland/platforms/ios/Pods/nanopb/pb.h | 583 - StoneIsland/platforms/ios/Pods/nanopb/pb_common.c | 97 - StoneIsland/platforms/ios/Pods/nanopb/pb_common.h | 42 - StoneIsland/platforms/ios/Pods/nanopb/pb_decode.c | 1379 -- StoneIsland/platforms/ios/Pods/nanopb/pb_decode.h | 153 - StoneIsland/platforms/ios/Pods/nanopb/pb_encode.c | 777 -- StoneIsland/platforms/ios/Pods/nanopb/pb_encode.h | 154 - .../ios/Stone Island.xcarchive/Info.plist | 27 - .../Applications/Stone Island.app/AppIcon29x29.png | Bin 2010 -> 0 bytes .../Stone Island.app/AppIcon29x29@2x.png | Bin 5569 -> 0 bytes .../Stone Island.app/AppIcon29x29@2x~ipad.png | Bin 5569 -> 0 bytes .../Stone Island.app/AppIcon29x29@3x.png | Bin 9773 -> 0 bytes .../Stone Island.app/AppIcon29x29~ipad.png | Bin 2010 -> 0 bytes .../Stone Island.app/AppIcon40x40@2x.png | Bin 8752 -> 0 bytes .../Stone Island.app/AppIcon40x40@2x~ipad.png | Bin 8752 -> 0 bytes .../Stone Island.app/AppIcon40x40@3x.png | Bin 14572 -> 0 bytes .../Stone Island.app/AppIcon40x40~ipad.png | Bin 3300 -> 0 bytes .../Stone Island.app/AppIcon50x50@2x~ipad.png | Bin 11560 -> 0 bytes .../Stone Island.app/AppIcon50x50~ipad.png | Bin 4433 -> 0 bytes .../Applications/Stone Island.app/AppIcon57x57.png | Bin 5340 -> 0 bytes .../Stone Island.app/AppIcon57x57@2x.png | Bin 13755 -> 0 bytes .../Stone Island.app/AppIcon60x60@2x.png | Bin 14572 -> 0 bytes .../Stone Island.app/AppIcon60x60@3x.png | Bin 22827 -> 0 bytes .../Stone Island.app/AppIcon72x72@2x~ipad.png | Bin 17752 -> 0 bytes .../Stone Island.app/AppIcon72x72~ipad.png | Bin 7688 -> 0 bytes .../Stone Island.app/AppIcon76x76@2x~ipad.png | Bin 18975 -> 0 bytes .../Stone Island.app/AppIcon76x76~ipad.png | Bin 8197 -> 0 bytes .../Stone Island.app/AppIcon83.5x83.5@2x~ipad.png | Bin 20764 -> 0 bytes .../Applications/Stone Island.app/Assets.car | Bin 425720 -> 0 bytes .../01J-lp-oVM-view-Ze5-6b-2t3.nib | Bin 2283 -> 0 bytes .../CDVLaunchScreen.storyboardc/Info.plist | Bin 258 -> 0 bytes .../UIViewController-01J-lp-oVM.nib | Bin 832 -> 0 bytes .../CDVNotification.bundle/beep.wav | Bin 8114 -> 0 bytes .../Applications/Stone Island.app/Info.plist | Bin 2127 -> 0 bytes .../Stone Island.app/LaunchImage-568h@2x.png | Bin 86275 -> 0 bytes .../Stone Island.app/LaunchImage-700-568h@2x.png | Bin 86275 -> 0 bytes .../LaunchImage-700-Landscape@2x~ipad.png | Bin 226464 -> 0 bytes .../LaunchImage-700-Landscape~ipad.png | Bin 79116 -> 0 bytes .../LaunchImage-700-Portrait@2x~ipad.png | Bin 222663 -> 0 bytes .../LaunchImage-700-Portrait~ipad.png | Bin 78552 -> 0 bytes .../Stone Island.app/LaunchImage-700@2x.png | Bin 71268 -> 0 bytes .../Stone Island.app/LaunchImage-800-667h@2x.png | Bin 108815 -> 0 bytes .../LaunchImage-800-Landscape-736h@3x.png | Bin 223764 -> 0 bytes .../LaunchImage-800-Portrait-736h@3x.png | Bin 217222 -> 0 bytes .../LaunchImage-Portrait@2x~ipad.png | Bin 222663 -> 0 bytes .../Stone Island.app/LaunchImage-Portrait~ipad.png | Bin 78552 -> 0 bytes .../Applications/Stone Island.app/LaunchImage.png | Bin 29673 -> 0 bytes .../Stone Island.app/LaunchImage@2x.png | Bin 71268 -> 0 bytes .../Stone Island.app/MainViewController.nib | Bin 943 -> 0 bytes .../Products/Applications/Stone Island.app/PkgInfo | 1 - .../Applications/Stone Island.app/Stone Island | Bin 4875248 -> 0 bytes .../Stone Island.app/_CodeSignature/CodeResources | 2810 ---- .../archived-expanded-entitlements.xcent | 8 - .../Applications/Stone Island.app/config.xml | 93 - .../Stone Island.app/embedded.mobileprovision | Bin 11560 -> 0 bytes .../Stone Island.app/www/cordova-js-src/exec.js | 262 - .../www/cordova-js-src/platform.js | 28 - .../Applications/Stone Island.app/www/cordova.js | 1938 --- .../Stone Island.app/www/cordova_plugins.js | 163 - .../Stone Island.app/www/css/account.css | 534 - .../Stone Island.app/www/css/blogs.css | 352 - .../Applications/Stone Island.app/www/css/cart.css | 362 - .../Stone Island.app/www/css/fonts/andale_mono.ttf | Bin 109700 -> 0 bytes .../www/css/fonts/andale_mono.woff | Bin 53751 -> 0 bytes .../Stone Island.app/www/css/fonts/fonts.css | 37 - .../Stone Island.app/www/css/fonts/ionicons.css | 1480 -- .../Stone Island.app/www/css/fonts/ionicons.eot | Bin 120724 -> 0 bytes .../Stone Island.app/www/css/fonts/ionicons.svg | 2230 --- .../Stone Island.app/www/css/fonts/ionicons.ttf | Bin 188508 -> 0 bytes .../Stone Island.app/www/css/fonts/ionicons.woff | Bin 67904 -> 0 bytes .../www/css/fonts/pfdintextpro-bold-webfont.woff | Bin 25068 -> 0 bytes .../www/css/fonts/pfdintextpro-italic-webfont.woff | Bin 30160 -> 0 bytes .../www/css/fonts/pfdintextpro-light-webfont.woff | Bin 28824 -> 0 bytes .../www/css/fonts/pfdintextpro-medium-webfont.woff | Bin 26668 -> 0 bytes .../css/fonts/pfdintextpro-regular-webfont.woff | Bin 25352 -> 0 bytes .../Stone Island.app/www/css/index.css | 61 - .../Applications/Stone Island.app/www/css/nav.css | 442 - .../Stone Island.app/www/css/products.css | 258 - .../Stone Island.app/www/css/vendor/flickity.css | 141 - .../Applications/Stone Island.app/www/db.json | 2124 --- .../img/Resources/CDVNotification.bundle/beep.wav | Bin 8114 -> 0 bytes .../Resources/splash/Default-568h@2x~iphone.png | Bin 101919 -> 0 bytes .../www/img/Resources/splash/Default-667h.png | Bin 104550 -> 0 bytes .../www/img/Resources/splash/Default-736h.png | Bin 192301 -> 0 bytes .../Resources/splash/Default-Landscape-736h.png | Bin 195426 -> 0 bytes .../Resources/splash/Default-Landscape@2x~ipad.png | Bin 246786 -> 0 bytes .../Resources/splash/Default-Landscape~ipad.png | Bin 107960 -> 0 bytes .../Resources/splash/Default-Portrait@2x~ipad.png | Bin 244661 -> 0 bytes .../img/Resources/splash/Default-Portrait~ipad.png | Bin 107123 -> 0 bytes .../www/img/Resources/splash/Default@2x~iphone.png | Bin 100977 -> 0 bytes .../www/img/Resources/splash/Default~iphone.png | Bin 46074 -> 0 bytes .../Stone Island.app/www/img/angle-down.png | Bin 5562 -> 0 bytes .../Stone Island.app/www/img/bottom-fade.png | Bin 2936 -> 0 bytes .../Stone Island.app/www/img/cart-box.png | Bin 173 -> 0 bytes .../Stone Island.app/www/img/cart-handle.png | Bin 42648 -> 0 bytes .../Stone Island.app/www/img/compass-logo.png | Bin 75721 -> 0 bytes .../Stone Island.app/www/img/compass-logo.png.old | Bin 137677 -> 0 bytes .../www/img/fade-to-bottom-threshold.gif | Bin 80012 -> 0 bytes .../Stone Island.app/www/img/fade-to-bottom.png | Bin 2936 -> 0 bytes .../Stone Island.app/www/img/left-arrow.png | Bin 5147 -> 0 bytes .../Stone Island.app/www/img/right-arrow.png | Bin 5264 -> 0 bytes .../Stone Island.app/www/img/small-cart-box.png | Bin 130 -> 0 bytes .../Stone Island.app/www/img/small-cart-handle.png | Bin 4017 -> 0 bytes .../Stone Island.app/www/img/small-logo.png | Bin 8140 -> 0 bytes .../Stone Island.app/www/img/spinner.gif | Bin 5694 -> 0 bytes .../Stone Island.app/www/img/wide-logo.png | Bin 18354 -> 0 bytes .../Applications/Stone Island.app/www/index.html | 1154 -- .../Applications/Stone Island.app/www/js/index.js | 142 - .../Stone Island.app/www/js/lib/_router.js | 110 - .../www/js/lib/account/AccountView.js | 162 - .../www/js/lib/account/OrdersView.js | 194 - .../www/js/lib/account/PaymentView.js | 126 - .../www/js/lib/account/ProfileView.js | 115 - .../www/js/lib/account/SettingsView.js | 45 - .../www/js/lib/account/ShippingView.js | 87 - .../Stone Island.app/www/js/lib/auth/LoginView.js | 60 - .../Stone Island.app/www/js/lib/auth/LogoutView.js | 16 - .../Stone Island.app/www/js/lib/auth/SignupView.js | 121 - .../www/js/lib/blogs/ArchiveView.js | 235 - .../Stone Island.app/www/js/lib/blogs/BlogView.js | 104 - .../Stone Island.app/www/js/lib/blogs/HubView.js | 176 - .../Stone Island.app/www/js/lib/blogs/PageView.js | 41 - .../Stone Island.app/www/js/lib/blogs/StoryView.js | 76 - .../www/js/lib/cart/CartConfirm.js | 178 - .../Stone Island.app/www/js/lib/cart/CartError.js | 28 - .../www/js/lib/cart/CartPayment.js | 188 - .../www/js/lib/cart/CartShipping.js | 137 - .../www/js/lib/cart/CartSummary.js | 212 - .../Stone Island.app/www/js/lib/cart/CartThanks.js | 28 - .../Stone Island.app/www/js/lib/cart/CartView.js | 72 - .../Stone Island.app/www/js/lib/etc/backup_db.js | 405 - .../Stone Island.app/www/js/lib/etc/deeplink.js | 5 - .../Stone Island.app/www/js/lib/etc/geo.js | 71 - .../Stone Island.app/www/js/lib/etc/push.js | 149 - .../Stone Island.app/www/js/lib/nav/AddressView.js | 272 - .../www/js/lib/nav/CreditCardView.js | 61 - .../Stone Island.app/www/js/lib/nav/CurtainView.js | 39 - .../Stone Island.app/www/js/lib/nav/FooterView.js | 41 - .../Stone Island.app/www/js/lib/nav/HeaderView.js | 57 - .../Stone Island.app/www/js/lib/nav/IntroView.js | 64 - .../Stone Island.app/www/js/lib/nav/NavView.js | 162 - .../Stone Island.app/www/js/lib/nav/SearchView.js | 16 - .../www/js/lib/products/ClosedStoreView.js | 75 - .../www/js/lib/products/CollectionView.js | 246 - .../www/js/lib/products/GalleryView.js | 65 - .../www/js/lib/products/ProductView.js | 497 - .../www/js/lib/products/Selector.js | 70 - .../www/js/lib/products/filters/CategoryFilter.js | 40 - .../js/lib/products/filters/DepartmentFilter.js | 30 - .../www/js/lib/products/filters/SizeFilter.js | 60 - .../Stone Island.app/www/js/lib/view/Router.js | 75 - .../Stone Island.app/www/js/lib/view/Scrollable.js | 44 - .../www/js/lib/view/Serializable.js | 169 - .../Stone Island.app/www/js/lib/view/View.js | 147 - .../Stone Island.app/www/js/sdk/_sdk.js | 43 - .../Stone Island.app/www/js/sdk/account.js | 133 - .../Stone Island.app/www/js/sdk/address.js | 78 - .../Stone Island.app/www/js/sdk/auth.js | 152 - .../Stone Island.app/www/js/sdk/cart.js | 248 - .../Stone Island.app/www/js/sdk/payment.js | 72 - .../Stone Island.app/www/js/sdk/product.js | 68 - .../Stone Island.app/www/js/sdk/shipping.js | 85 - .../Stone Island.app/www/js/vendor/fastclick.js | 790 -- .../www/js/vendor/flickity.pkgd.js | 5090 ------- .../Stone Island.app/www/js/vendor/iscroll.js | 2011 --- .../www/js/vendor/jquery-2.1.4.min.js | 4 - .../www/js/vendor/jquery.creditCardValidator.js | 208 - .../Stone Island.app/www/js/vendor/loader.js | 100 - .../Stone Island.app/www/js/vendor/lodash.min.js | 98 - .../Stone Island.app/www/js/vendor/moment.js | 3195 ----- .../Stone Island.app/www/js/vendor/oktween.js | 125 - .../Stone Island.app/www/js/vendor/prefixfree.js | 497 - .../Stone Island.app/www/js/vendor/promise.js | 34 - .../Stone Island.app/www/js/vendor/util.js | 200 - .../www/console-via-logger.js | 189 - .../plugins/cordova-plugin-console/www/logger.js | 357 - .../www/ios/LaunchMyApp.js | 12 - .../plugins/cordova-plugin-device/www/device.js | 86 - .../cordova-plugin-dialogs/www/notification.js | 133 - .../cordova-plugin-geolocation/www/Coordinates.js | 72 - .../cordova-plugin-geolocation/www/Position.js | 36 - .../www/PositionError.js | 41 - .../cordova-plugin-geolocation/www/geolocation.js | 214 - .../www/inappbrowser.js | 114 - .../www/Connection.js | 37 - .../www/network.js | 94 - .../www/splashscreen.js | 36 - .../cordova-plugin-statusbar/www/statusbar.js | 116 - .../www/SocialSharing.js | 124 - .../ionic-plugin-keyboard/www/ios/keyboard.js | 43 - .../www/plugins/phonegap-plugin-push/www/push.js | 377 - .../ios/Stone Island.xcodeproj/project.pbxproj | 359 +- .../xcschemes/xcschememanagement.plist | 14 - .../UserInterfaceState.xcuserstate | Bin 53213 -> 13158 bytes .../xcschemes/xcschememanagement.plist | 2 +- .../AppIcon.appiconset/1024x1024bb.png | Bin 267559 -> 0 bytes .../AppIcon.appiconset/Contents.json | 59 +- .../Images.xcassets/AppIcon.appiconset/icon-40.png | Bin 3680 -> 4082 bytes .../AppIcon.appiconset/icon-40@2x.png | Bin 9184 -> 7411 bytes .../Images.xcassets/AppIcon.appiconset/icon-50.png | Bin 4781 -> 4874 bytes .../AppIcon.appiconset/icon-50@2x.png | Bin 12245 -> 9611 bytes .../Images.xcassets/AppIcon.appiconset/icon-60.png | Bin 6263 -> 0 bytes .../AppIcon.appiconset/icon-60@2x.png | Bin 15800 -> 11924 bytes .../AppIcon.appiconset/icon-60@3x.png | Bin 29356 -> 30083 bytes .../Images.xcassets/AppIcon.appiconset/icon-72.png | Bin 7963 -> 4944 bytes .../AppIcon.appiconset/icon-72@2x.png | Bin 20810 -> 11706 bytes .../Images.xcassets/AppIcon.appiconset/icon-76.png | Bin 8495 -> 7025 bytes .../AppIcon.appiconset/icon-76@2x.png | Bin 22709 -> 15262 bytes .../AppIcon.appiconset/icon-83.5@2x.png | Bin 26504 -> 20563 bytes .../AppIcon.appiconset/icon-small.png | Bin 2293 -> 3294 bytes .../AppIcon.appiconset/icon-small@2x.png | Bin 6014 -> 5608 bytes .../AppIcon.appiconset/icon-small@3x.png | Bin 10331 -> 7040 bytes .../Images.xcassets/AppIcon.appiconset/icon.png | Bin 5877 -> 3902 bytes .../Images.xcassets/AppIcon.appiconset/icon@2x.png | Bin 14616 -> 7869 bytes .../Default-Landscape-736h.png | Bin 264093 -> 79491 bytes .../LaunchStoryboard.imageset/Contents.json | 3 +- .../Default@2x~universal~anyany.png | Bin 0 -> 33866 bytes .../Plugins/cordova-plugin-console/CDVLogger.h | 26 - .../Plugins/cordova-plugin-console/CDVLogger.m | 38 - .../cordova-plugin-splashscreen/CDVSplashScreen.m | 23 + .../CDVWKProcessPoolFactory.h | 27 - .../CDVWKProcessPoolFactory.m | 49 - .../CDVWKWebViewEngine.h | 27 - .../CDVWKWebViewEngine.m | 480 - .../CDVWKWebViewUIDelegate.h | 28 - .../CDVWKWebViewUIDelegate.m | 123 - .../Plugins/phonegap-plugin-push/PushPlugin.h | 17 +- .../Plugins/phonegap-plugin-push/PushPlugin.m | 297 +- .../ios/Stone Island/Stone Island-Info.plist | 58 +- StoneIsland/platforms/ios/Stone Island/config.xml | 27 +- StoneIsland/platforms/ios/cordova/Api.js | 127 +- StoneIsland/platforms/ios/cordova/defaults.xml | 4 + StoneIsland/platforms/ios/cordova/lib/Podfile.js | 139 +- StoneIsland/platforms/ios/cordova/lib/PodsJson.js | 34 +- StoneIsland/platforms/ios/cordova/lib/build.js | 319 +- .../platforms/ios/cordova/lib/check_reqs.js | 168 +- StoneIsland/platforms/ios/cordova/lib/clean.js | 26 +- .../ios/cordova/lib/copy-www-build-step.js | 26 +- StoneIsland/platforms/ios/cordova/lib/list-devices | 1 - .../ios/cordova/lib/list-emulator-build-targets | 1 - .../platforms/ios/cordova/lib/list-emulator-images | 1 - .../ios/cordova/lib/list-started-emulators | 1 - .../ios/cordova/lib/plugman/pluginHandlers.js | 116 +- StoneIsland/platforms/ios/cordova/lib/prepare.js | 360 +- .../platforms/ios/cordova/lib/projectFile.js | 24 +- StoneIsland/platforms/ios/cordova/lib/run.js | 234 +- StoneIsland/platforms/ios/cordova/lib/spawn.js | 14 +- StoneIsland/platforms/ios/cordova/lib/versions.js | 66 +- .../ios/cordova/node_modules/nopt/package.json | 59 +- .../platforms/ios/cordova/node_modules/q/LICENSE | 2 +- .../ios/cordova/node_modules/q/package.json | 69 +- .../platforms/ios/cordova/node_modules/q/q.js | 53 +- .../ios/cordova/node_modules/shelljs/package.json | 50 +- StoneIsland/platforms/ios/cordova/version | 2 +- StoneIsland/platforms/ios/exportOptions.plist | 10 - StoneIsland/platforms/ios/frameworks.json | 4 +- StoneIsland/platforms/ios/ios.json | 649 +- .../ios/platform_www/cordova-js-src/platform.js | 7 +- .../cordova-js-src/plugin/ios/console.js | 186 + .../cordova-js-src/plugin/ios/logger.js | 354 + StoneIsland/platforms/ios/platform_www/cordova.js | 1183 +- .../platforms/ios/platform_www/cordova_plugins.js | 300 +- .../www/console-via-logger.js | 189 - .../plugins/cordova-plugin-console/www/logger.js | 357 - .../src/www/ios/ios-wkwebview-exec.js | 179 - .../plugins/phonegap-plugin-push/www/push.js | 496 +- StoneIsland/platforms/ios/pods.json | 12 +- .../platforms/ios/www/cordova-js-src/platform.js | 7 +- .../ios/www/cordova-js-src/plugin/ios/console.js | 186 + .../ios/www/cordova-js-src/plugin/ios/logger.js | 354 + StoneIsland/platforms/ios/www/cordova.js | 1183 +- StoneIsland/platforms/ios/www/cordova_plugins.js | 300 +- StoneIsland/platforms/ios/www/index.html | 2 +- StoneIsland/platforms/ios/www/js/index.js | 4 + StoneIsland/platforms/ios/www/js/vendor/util.js | 9 + .../www/console-via-logger.js | 189 - .../plugins/cordova-plugin-console/www/logger.js | 357 - .../src/www/ios/ios-wkwebview-exec.js | 179 - .../www/plugins/phonegap-plugin-push/www/push.js | 496 +- StoneIsland/platforms/platforms.json | 4 +- StoneIsland/plugins/android.json | 115 +- .../plugins/cordova-plugin-console/CONTRIBUTING.md | 37 - StoneIsland/plugins/cordova-plugin-console/LICENSE | 202 - StoneIsland/plugins/cordova-plugin-console/NOTICE | 5 - .../plugins/cordova-plugin-console/README.md | 109 - .../plugins/cordova-plugin-console/RELEASENOTES.md | 104 - .../cordova-plugin-console/doc/de/README.md | 43 - .../plugins/cordova-plugin-console/doc/de/index.md | 41 - .../cordova-plugin-console/doc/es/README.md | 41 - .../plugins/cordova-plugin-console/doc/es/index.md | 39 - .../cordova-plugin-console/doc/fr/README.md | 41 - .../plugins/cordova-plugin-console/doc/fr/index.md | 39 - .../cordova-plugin-console/doc/it/README.md | 43 - .../plugins/cordova-plugin-console/doc/it/index.md | 41 - .../cordova-plugin-console/doc/ja/README.md | 43 - .../plugins/cordova-plugin-console/doc/ja/index.md | 41 - .../cordova-plugin-console/doc/ko/README.md | 43 - .../plugins/cordova-plugin-console/doc/ko/index.md | 41 - .../cordova-plugin-console/doc/pl/README.md | 43 - .../plugins/cordova-plugin-console/doc/pl/index.md | 41 - .../plugins/cordova-plugin-console/doc/ru/index.md | 31 - .../cordova-plugin-console/doc/zh/README.md | 43 - .../plugins/cordova-plugin-console/doc/zh/index.md | 41 - .../plugins/cordova-plugin-console/package.json | 47 - .../plugins/cordova-plugin-console/plugin.xml | 127 - .../cordova-plugin-console/src/ios/CDVLogger.h | 26 - .../cordova-plugin-console/src/ios/CDVLogger.m | 38 - .../cordova-plugin-console/src/ubuntu/console.cpp | 29 - .../cordova-plugin-console/src/ubuntu/console.h | 43 - .../cordova-plugin-console/src/wp/DebugConsole.cs | 47 - .../cordova-plugin-console/tests/plugin.xml | 31 - .../plugins/cordova-plugin-console/tests/tests.js | 43 - .../www/console-via-logger.js | 186 - .../plugins/cordova-plugin-console/www/logger.js | 354 - .../plugins/cordova-plugin-splashscreen/README.md | 259 +- .../cordova-plugin-splashscreen/RELEASENOTES.md | 25 +- .../cordova-plugin-splashscreen/package.json | 3 +- .../plugins/cordova-plugin-splashscreen/plugin.xml | 6 +- .../src/ios/CDVSplashScreen.m | 23 + .../cordova-plugin-splashscreen/tests/package.json | 14 + .../cordova-plugin-splashscreen/tests/plugin.xml | 2 +- .../cordova-plugin-splashscreen/types/index.d.ts | 17 + .../cordova-plugin-wkwebview-engine/LICENSE | 202 - .../cordova-plugin-wkwebview-engine/README.md | 105 - .../RELEASENOTES.md | 90 - .../cordova-plugin-wkwebview-engine/package.json | 25 - .../cordova-plugin-wkwebview-engine/plugin.xml | 60 - .../src/ios/CDVWKProcessPoolFactory.h | 27 - .../src/ios/CDVWKProcessPoolFactory.m | 49 - .../src/ios/CDVWKWebViewEngine.h | 27 - .../src/ios/CDVWKWebViewEngine.m | 480 - .../src/ios/CDVWKWebViewUIDelegate.h | 28 - .../src/ios/CDVWKWebViewUIDelegate.m | 123 - .../src/www/ios/ios-wkwebview-exec.js | 177 - .../contents.xcworkspacedata | 7 - .../xcshareddata/CDVWKWebViewEngineTest.xccheckout | 41 - .../xcshareddata/xcschemes/CordovaLib.xcscheme | 80 - .../tests/ios/CDVWKWebViewEngineTest/.npmignore | 1 - .../CDVWKWebViewEngineTest.m | 240 - .../CDVWKWebViewEngineLibTests/Info.plist | 24 - .../project.pbxproj | 559 - .../project.xcworkspace/contents.xcworkspacedata | 7 - .../xcshareddata/CDVWKWebViewEngineTest.xccheckout | 41 - .../xcschemes/CDVWKWebViewEngineLib.xcscheme | 80 - .../xcschemes/CDVWKWebViewEngineLibTests.xcscheme | 104 - .../tests/ios/README.md | 40 - .../tests/ios/package.json | 13 - .../tests/ios/test.xcconfig | 20 - .../tests/package.json | 14 - .../tests/plugin.xml | 29 - .../cordova-plugin-wkwebview-engine/tests/tests.js | 44 - StoneIsland/plugins/fetch.json | 220 +- StoneIsland/plugins/ios.json | 115 +- .../plugins/phonegap-plugin-push/CHANGELOG.md | 582 - .../plugins/phonegap-plugin-push/MIT-LICENSE | 2 +- StoneIsland/plugins/phonegap-plugin-push/README.md | 10 +- .../plugins/phonegap-plugin-push/docs/API.md | 32 +- .../plugins/phonegap-plugin-push/docs/EXAMPLES.md | 1 + .../phonegap-plugin-push/docs/INSTALLATION.md | 174 +- .../plugins/phonegap-plugin-push/docs/PAYLOAD.md | 817 +- .../phonegap-plugin-push/docs/PHONEGAP_BUILD.md | 29 +- .../phonegap-plugin-push/docs/TYPESCRIPT.md | 5 +- .../hooks/windows/setToastCapable.js | 8 +- .../plugins/phonegap-plugin-push/package.json | 56 +- .../plugins/phonegap-plugin-push/plugin.xml | 63 +- .../plugins/phonegap-plugin-push/push.gradle | 18 - .../phonegap-plugin-push/spec/index.spec.js | 72 +- .../push/BackgroundActionButtonHandler.java | 4 +- .../com/adobe/phonegap/push/FCMService.java | 891 -- .../com/adobe/phonegap/push/GCMIntentService.java | 802 ++ .../com/adobe/phonegap/push/PermissionUtils.java | 4 - .../com/adobe/phonegap/push/PushConstants.java | 16 +- .../adobe/phonegap/push/PushDismissedHandler.java | 25 - .../adobe/phonegap/push/PushHandlerActivity.java | 32 +- .../push/PushInstanceIDListenerService.java | 19 +- .../com/adobe/phonegap/push/PushPlugin.java | 132 +- .../phonegap/push/RegistrationIntentService.java | 38 + .../phonegap-plugin-push/src/browser/manifest.json | 2 +- .../phonegap-plugin-push/src/ios/PushPlugin.h | 17 +- .../phonegap-plugin-push/src/ios/PushPlugin.m | 297 +- .../plugins/phonegap-plugin-push/src/js/push.js | 316 - .../src/windows/PushPluginProxy.js | 6 - .../plugins/phonegap-plugin-push/types/index.d.ts | 302 - .../phonegap-plugin-push/www/browser/push.js | 31 +- .../plugins/phonegap-plugin-push/www/push.js | 497 +- StoneIsland/res/screen/ios/1024x1024bb.png | Bin 0 -> 267559 bytes StoneIsland/res/screen/ios/Contents.json | 213 + .../res/screen/ios/Default-568h@2x~iphone.png | Bin 0 -> 109535 bytes StoneIsland/res/screen/ios/Default-667h.png | Bin 0 -> 136914 bytes StoneIsland/res/screen/ios/Default-736h.png | Bin 0 -> 259664 bytes .../res/screen/ios/Default-Landscape-736h.png | Bin 0 -> 264093 bytes .../res/screen/ios/Default-Landscape@2x~ipad.png | Bin 0 -> 260235 bytes .../res/screen/ios/Default-Landscape~ipad.png | Bin 0 -> 100670 bytes .../res/screen/ios/Default-Portrait@2x~ipad.png | Bin 0 -> 258019 bytes .../res/screen/ios/Default-Portrait~ipad.png | Bin 0 -> 99687 bytes StoneIsland/res/screen/ios/Default@2x~iphone.png | Bin 0 -> 90821 bytes .../res/screen/ios/Default@2x~universal~anyany.png | Bin 0 -> 33866 bytes StoneIsland/res/screen/ios/Default~iphone.png | Bin 0 -> 38625 bytes StoneIsland/res/screen/ios/icon-40.png | Bin 0 -> 3680 bytes StoneIsland/res/screen/ios/icon-40@2x.png | Bin 0 -> 9184 bytes StoneIsland/res/screen/ios/icon-50.png | Bin 0 -> 4781 bytes StoneIsland/res/screen/ios/icon-50@2x.png | Bin 0 -> 12245 bytes StoneIsland/res/screen/ios/icon-60.png | Bin 0 -> 6263 bytes StoneIsland/res/screen/ios/icon-60@2x.png | Bin 0 -> 15800 bytes StoneIsland/res/screen/ios/icon-60@3x.png | Bin 0 -> 29356 bytes StoneIsland/res/screen/ios/icon-72.png | Bin 0 -> 7963 bytes StoneIsland/res/screen/ios/icon-72@2x.png | Bin 0 -> 20810 bytes StoneIsland/res/screen/ios/icon-76.png | Bin 0 -> 8495 bytes StoneIsland/res/screen/ios/icon-76@2x.png | Bin 0 -> 22709 bytes StoneIsland/res/screen/ios/icon-83.5@2x.png | Bin 0 -> 26504 bytes StoneIsland/res/screen/ios/icon-small.png | Bin 0 -> 2293 bytes StoneIsland/res/screen/ios/icon-small@2x.png | Bin 0 -> 6014 bytes StoneIsland/res/screen/ios/icon-small@3x.png | Bin 0 -> 10331 bytes StoneIsland/res/screen/ios/icon.png | Bin 0 -> 5877 bytes StoneIsland/res/screen/ios/icon@2x.png | Bin 0 -> 14616 bytes StoneIsland/www/index.html | 2 +- StoneIsland/www/js/index.js | 2 +- StoneIsland/www/js/vendor/util.js | 9 + 736 files changed, 11396 insertions(+), 108065 deletions(-) delete mode 100644 StoneIsland/platforms/android/src/com/adobe/phonegap/push/FCMService.java create mode 100644 StoneIsland/platforms/android/src/com/adobe/phonegap/push/GCMIntentService.java delete mode 100644 StoneIsland/platforms/android/src/com/adobe/phonegap/push/PushDismissedHandler.java create mode 100644 StoneIsland/platforms/android/src/com/adobe/phonegap/push/RegistrationIntentService.java create mode 100644 StoneIsland/platforms/ios/CordovaLib/Classes/Private/Plugins/CDVLogger/CDVLogger.h create mode 100644 StoneIsland/platforms/ios/CordovaLib/Classes/Private/Plugins/CDVLogger/CDVLogger.m delete mode 100755 StoneIsland/platforms/ios/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/FirebaseAnalytics delete mode 100755 StoneIsland/platforms/ios/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRAnalytics+AppDelegate.h delete mode 100755 StoneIsland/platforms/ios/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRAnalytics.h delete mode 100755 StoneIsland/platforms/ios/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRAnalyticsConfiguration.h delete mode 100755 StoneIsland/platforms/ios/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRAnalyticsSwiftNameSupport.h delete mode 100755 StoneIsland/platforms/ios/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRApp.h delete mode 100755 StoneIsland/platforms/ios/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRConfiguration.h delete mode 100755 StoneIsland/platforms/ios/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIREventNames.h delete mode 100755 StoneIsland/platforms/ios/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIROptions.h delete mode 100755 StoneIsland/platforms/ios/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRParameterNames.h delete mode 100755 StoneIsland/platforms/ios/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRUserPropertyNames.h delete mode 100755 StoneIsland/platforms/ios/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FirebaseAnalytics.h delete mode 100755 StoneIsland/platforms/ios/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Modules/module.modulemap delete mode 100755 StoneIsland/platforms/ios/Pods/FirebaseCore/Frameworks/FirebaseCore.framework/FirebaseCore delete mode 100755 StoneIsland/platforms/ios/Pods/FirebaseCore/Frameworks/FirebaseCore.framework/Headers/FIRAnalyticsConfiguration.h delete mode 100755 StoneIsland/platforms/ios/Pods/FirebaseCore/Frameworks/FirebaseCore.framework/Headers/FIRApp.h delete mode 100755 StoneIsland/platforms/ios/Pods/FirebaseCore/Frameworks/FirebaseCore.framework/Headers/FIRConfiguration.h delete mode 100755 StoneIsland/platforms/ios/Pods/FirebaseCore/Frameworks/FirebaseCore.framework/Headers/FIRCoreSwiftNameSupport.h delete mode 100755 StoneIsland/platforms/ios/Pods/FirebaseCore/Frameworks/FirebaseCore.framework/Headers/FIRLoggerLevel.h delete mode 100755 StoneIsland/platforms/ios/Pods/FirebaseCore/Frameworks/FirebaseCore.framework/Headers/FIROptions.h delete mode 100755 StoneIsland/platforms/ios/Pods/FirebaseCore/Frameworks/FirebaseCore.framework/Headers/FirebaseCore.h delete mode 100755 StoneIsland/platforms/ios/Pods/FirebaseCore/Frameworks/FirebaseCore.framework/Modules/module.modulemap delete mode 100755 StoneIsland/platforms/ios/Pods/FirebaseCore/Frameworks/FirebaseCoreDiagnostics.framework/FirebaseCoreDiagnostics delete mode 100755 StoneIsland/platforms/ios/Pods/FirebaseCore/Frameworks/FirebaseCoreDiagnostics.framework/Modules/module.modulemap delete mode 100755 StoneIsland/platforms/ios/Pods/FirebaseCore/Frameworks/FirebaseNanoPB.framework/FirebaseNanoPB delete mode 100755 StoneIsland/platforms/ios/Pods/FirebaseInstanceID/CHANGELOG.md delete mode 100755 StoneIsland/platforms/ios/Pods/FirebaseInstanceID/Frameworks/FirebaseInstanceID.framework/FirebaseInstanceID delete mode 100755 StoneIsland/platforms/ios/Pods/FirebaseInstanceID/Frameworks/FirebaseInstanceID.framework/Headers/FIRInstanceID.h delete mode 100755 StoneIsland/platforms/ios/Pods/FirebaseInstanceID/Frameworks/FirebaseInstanceID.framework/Headers/FirebaseInstanceID.h delete mode 100755 StoneIsland/platforms/ios/Pods/FirebaseInstanceID/Frameworks/FirebaseInstanceID.framework/Modules/module.modulemap delete mode 100755 StoneIsland/platforms/ios/Pods/FirebaseInstanceID/README.md delete mode 100755 StoneIsland/platforms/ios/Pods/FirebaseMessaging/Frameworks/FirebaseMessaging.framework/FirebaseMessaging delete mode 100755 StoneIsland/platforms/ios/Pods/FirebaseMessaging/Frameworks/FirebaseMessaging.framework/Headers/FIRMessaging.h delete mode 100755 StoneIsland/platforms/ios/Pods/FirebaseMessaging/Frameworks/FirebaseMessaging.framework/Headers/FirebaseMessaging.h delete mode 100755 StoneIsland/platforms/ios/Pods/FirebaseMessaging/Frameworks/FirebaseMessaging.framework/Modules/module.modulemap create mode 100644 StoneIsland/platforms/ios/Pods/GGLInstanceID/CHANGELOG.md create mode 100644 StoneIsland/platforms/ios/Pods/GGLInstanceID/Headers/Public/GGLInstanceID.h create mode 100644 StoneIsland/platforms/ios/Pods/GGLInstanceID/Headers/Public/GGLInstanceIDConfig.h create mode 100644 StoneIsland/platforms/ios/Pods/GGLInstanceID/Headers/Public/GGLInstanceIDDelegate.h create mode 100644 StoneIsland/platforms/ios/Pods/GGLInstanceID/Headers/Public/GGLInstanceIDHeaders.h create mode 100755 StoneIsland/platforms/ios/Pods/GGLInstanceID/Libraries/libGGLInstanceIDLib.a create mode 100644 StoneIsland/platforms/ios/Pods/GGLInstanceID/README.md create mode 100644 StoneIsland/platforms/ios/Pods/GoogleCloudMessaging/CHANGELOG.md create mode 100644 StoneIsland/platforms/ios/Pods/GoogleCloudMessaging/Headers/Public/GCMConfig.h create mode 100644 StoneIsland/platforms/ios/Pods/GoogleCloudMessaging/Headers/Public/GCMPubSub.h create mode 100644 StoneIsland/platforms/ios/Pods/GoogleCloudMessaging/Headers/Public/GCMReceiverDelegate.h create mode 100644 StoneIsland/platforms/ios/Pods/GoogleCloudMessaging/Headers/Public/GCMService.h create mode 100644 StoneIsland/platforms/ios/Pods/GoogleCloudMessaging/Headers/Public/GoogleCloudMessaging.h create mode 100755 StoneIsland/platforms/ios/Pods/GoogleCloudMessaging/Libraries/libGcmLib.a create mode 100644 StoneIsland/platforms/ios/Pods/GoogleCloudMessaging/README.md create mode 100644 StoneIsland/platforms/ios/Pods/GoogleIPhoneUtilities/Frameworks/GoogleIPhoneUtilities.framework/GoogleIPhoneUtilities create mode 100755 StoneIsland/platforms/ios/Pods/GoogleInterchangeUtilities/Frameworks/frameworks/GoogleInterchangeUtilities.framework/GoogleInterchangeUtilities create mode 100755 StoneIsland/platforms/ios/Pods/GoogleSymbolUtilities/Frameworks/frameworks/GoogleSymbolUtilities.framework/GoogleSymbolUtilities delete mode 100644 StoneIsland/platforms/ios/Pods/GoogleToolboxForMac/Foundation/GTMLogger.h delete mode 100644 StoneIsland/platforms/ios/Pods/GoogleToolboxForMac/Foundation/GTMLogger.m delete mode 100644 StoneIsland/platforms/ios/Pods/GoogleToolboxForMac/Foundation/GTMNSData+zlib.h delete mode 100644 StoneIsland/platforms/ios/Pods/GoogleToolboxForMac/Foundation/GTMNSData+zlib.m delete mode 100644 StoneIsland/platforms/ios/Pods/GoogleToolboxForMac/GTMDefines.h delete mode 100644 StoneIsland/platforms/ios/Pods/GoogleToolboxForMac/LICENSE delete mode 100644 StoneIsland/platforms/ios/Pods/GoogleToolboxForMac/README.md create mode 100755 StoneIsland/platforms/ios/Pods/GoogleUtilities/Frameworks/frameworks/GoogleUtilities.framework/GoogleUtilities create mode 120000 StoneIsland/platforms/ios/Pods/Headers/Private/GGLInstanceID/GGLInstanceID.h create mode 120000 StoneIsland/platforms/ios/Pods/Headers/Private/GGLInstanceID/GGLInstanceIDConfig.h create mode 120000 StoneIsland/platforms/ios/Pods/Headers/Private/GGLInstanceID/GGLInstanceIDDelegate.h create mode 120000 StoneIsland/platforms/ios/Pods/Headers/Private/GGLInstanceID/GGLInstanceIDHeaders.h create mode 120000 StoneIsland/platforms/ios/Pods/Headers/Private/GoogleCloudMessaging/GCMConfig.h create mode 120000 StoneIsland/platforms/ios/Pods/Headers/Private/GoogleCloudMessaging/GCMPubSub.h create mode 120000 StoneIsland/platforms/ios/Pods/Headers/Private/GoogleCloudMessaging/GCMReceiverDelegate.h create mode 120000 StoneIsland/platforms/ios/Pods/Headers/Private/GoogleCloudMessaging/GCMService.h create mode 120000 StoneIsland/platforms/ios/Pods/Headers/Private/GoogleCloudMessaging/GoogleCloudMessaging.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Private/GoogleToolboxForMac/GTMDefines.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Private/GoogleToolboxForMac/GTMLogger.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Private/GoogleToolboxForMac/GTMNSData+zlib.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/Any.pbobjc.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/Api.pbobjc.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/Duration.pbobjc.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/Empty.pbobjc.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/FieldMask.pbobjc.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBArray.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBArray_PackagePrivate.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBBootstrap.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBCodedInputStream.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBCodedInputStream_PackagePrivate.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBCodedOutputStream.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBCodedOutputStream_PackagePrivate.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBDescriptor.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBDescriptor_PackagePrivate.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBDictionary.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBDictionary_PackagePrivate.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBExtensionInternals.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBExtensionRegistry.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBMessage.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBMessage_PackagePrivate.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBProtocolBuffers.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBProtocolBuffers_RuntimeSupport.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBRootObject.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBRootObject_PackagePrivate.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBRuntimeTypes.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBUnknownField.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBUnknownFieldSet.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBUnknownFieldSet_PackagePrivate.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBUnknownField_PackagePrivate.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBUtilities.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBUtilities_PackagePrivate.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBWellKnownTypes.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/GPBWireFormat.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/SourceContext.pbobjc.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/Struct.pbobjc.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/Timestamp.pbobjc.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/Type.pbobjc.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Private/Protobuf/Wrappers.pbobjc.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Private/nanopb/pb.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Private/nanopb/pb_common.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Private/nanopb/pb_decode.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Private/nanopb/pb_encode.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseAnalytics/FirebaseAnalytics/FIRAnalytics+AppDelegate.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseAnalytics/FirebaseAnalytics/FIRAnalytics.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseAnalytics/FirebaseAnalytics/FIRAnalyticsConfiguration.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseAnalytics/FirebaseAnalytics/FIRAnalyticsSwiftNameSupport.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseAnalytics/FirebaseAnalytics/FIRApp.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseAnalytics/FirebaseAnalytics/FIRConfiguration.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseAnalytics/FirebaseAnalytics/FIREventNames.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseAnalytics/FirebaseAnalytics/FIROptions.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseAnalytics/FirebaseAnalytics/FIRParameterNames.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseAnalytics/FirebaseAnalytics/FIRUserPropertyNames.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseAnalytics/FirebaseAnalytics/FirebaseAnalytics.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseCore/FirebaseCore/FIRAnalyticsConfiguration.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseCore/FirebaseCore/FIRApp.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseCore/FirebaseCore/FIRConfiguration.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseCore/FirebaseCore/FIRCoreSwiftNameSupport.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseCore/FirebaseCore/FIRLoggerLevel.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseCore/FirebaseCore/FIROptions.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseCore/FirebaseCore/FirebaseCore.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseInstanceID/FirebaseInstanceID/FIRInstanceID.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseInstanceID/FirebaseInstanceID/FirebaseInstanceID.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseMessaging/FirebaseMessaging/FIRMessaging.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/FirebaseMessaging/FirebaseMessaging/FirebaseMessaging.h create mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/GGLInstanceID/GGLInstanceID.h create mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/GGLInstanceID/GGLInstanceIDConfig.h create mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/GGLInstanceID/GGLInstanceIDDelegate.h create mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/GGLInstanceID/GGLInstanceIDHeaders.h create mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/GoogleCloudMessaging/GCMConfig.h create mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/GoogleCloudMessaging/GCMPubSub.h create mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/GoogleCloudMessaging/GCMReceiverDelegate.h create mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/GoogleCloudMessaging/GCMService.h create mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/GoogleCloudMessaging/GoogleCloudMessaging.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/GoogleToolboxForMac/GTMDefines.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/GoogleToolboxForMac/GTMLogger.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/GoogleToolboxForMac/GTMNSData+zlib.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/Any.pbobjc.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/Api.pbobjc.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/Duration.pbobjc.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/Empty.pbobjc.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/FieldMask.pbobjc.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBArray.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBArray_PackagePrivate.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBBootstrap.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBCodedInputStream.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBCodedInputStream_PackagePrivate.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBCodedOutputStream.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBCodedOutputStream_PackagePrivate.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBDescriptor.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBDescriptor_PackagePrivate.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBDictionary.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBDictionary_PackagePrivate.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBExtensionInternals.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBExtensionRegistry.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBMessage.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBMessage_PackagePrivate.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBProtocolBuffers.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBProtocolBuffers_RuntimeSupport.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBRootObject.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBRootObject_PackagePrivate.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBRuntimeTypes.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBUnknownField.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBUnknownFieldSet.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBUnknownFieldSet_PackagePrivate.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBUnknownField_PackagePrivate.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBUtilities.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBUtilities_PackagePrivate.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBWellKnownTypes.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/GPBWireFormat.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/SourceContext.pbobjc.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/Struct.pbobjc.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/Timestamp.pbobjc.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/Type.pbobjc.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/Protobuf/Wrappers.pbobjc.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/nanopb/pb.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/nanopb/pb_common.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/nanopb/pb_decode.h delete mode 120000 StoneIsland/platforms/ios/Pods/Headers/Public/nanopb/pb_encode.h delete mode 100644 StoneIsland/platforms/ios/Pods/Pods.xcodeproj/xcuserdata/user.xcuserdatad/xcschemes/GoogleToolboxForMac.xcscheme delete mode 100644 StoneIsland/platforms/ios/Pods/Pods.xcodeproj/xcuserdata/user.xcuserdatad/xcschemes/Protobuf.xcscheme delete mode 100644 StoneIsland/platforms/ios/Pods/Pods.xcodeproj/xcuserdata/user.xcuserdatad/xcschemes/nanopb.xcscheme delete mode 100644 StoneIsland/platforms/ios/Pods/Protobuf/LICENSE delete mode 100644 StoneIsland/platforms/ios/Pods/Protobuf/README.md delete mode 100644 StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBArray.h delete mode 100644 StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBArray.m delete mode 100644 StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBArray_PackagePrivate.h delete mode 100644 StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBBootstrap.h delete mode 100644 StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBCodedInputStream.h delete mode 100644 StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBCodedInputStream.m delete mode 100644 StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBCodedInputStream_PackagePrivate.h delete mode 100644 StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBCodedOutputStream.h delete mode 100644 StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBCodedOutputStream.m delete mode 100644 StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBCodedOutputStream_PackagePrivate.h delete mode 100644 StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBDescriptor.h delete mode 100644 StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBDescriptor.m delete mode 100644 StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBDescriptor_PackagePrivate.h delete mode 100644 StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBDictionary.h delete mode 100644 StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBDictionary.m delete mode 100644 StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBDictionary_PackagePrivate.h delete mode 100644 StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBExtensionInternals.h delete mode 100644 StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBExtensionInternals.m delete mode 100644 StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBExtensionRegistry.h delete mode 100644 StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBExtensionRegistry.m delete mode 100644 StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBMessage.h delete mode 100644 StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBMessage.m delete mode 100644 StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBMessage_PackagePrivate.h delete mode 100644 StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBProtocolBuffers.h delete mode 100644 StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBProtocolBuffers_RuntimeSupport.h delete mode 100644 StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBRootObject.h delete mode 100644 StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBRootObject.m delete mode 100644 StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBRootObject_PackagePrivate.h delete mode 100644 StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBRuntimeTypes.h delete mode 100644 StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBUnknownField.h delete mode 100644 StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBUnknownField.m delete mode 100644 StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBUnknownFieldSet.h delete mode 100644 StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBUnknownFieldSet.m delete mode 100644 StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBUnknownFieldSet_PackagePrivate.h delete mode 100644 StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBUnknownField_PackagePrivate.h delete mode 100644 StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBUtilities.h delete mode 100644 StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBUtilities.m delete mode 100644 StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBUtilities_PackagePrivate.h delete mode 100644 StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBWellKnownTypes.h delete mode 100644 StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBWellKnownTypes.m delete mode 100644 StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBWireFormat.h delete mode 100644 StoneIsland/platforms/ios/Pods/Protobuf/objectivec/GPBWireFormat.m delete mode 100644 StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Any.pbobjc.h delete mode 100644 StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Any.pbobjc.m delete mode 100644 StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Api.pbobjc.h delete mode 100644 StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Api.pbobjc.m delete mode 100644 StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Duration.pbobjc.h delete mode 100644 StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Duration.pbobjc.m delete mode 100644 StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Empty.pbobjc.h delete mode 100644 StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Empty.pbobjc.m delete mode 100644 StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/FieldMask.pbobjc.h delete mode 100644 StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/FieldMask.pbobjc.m delete mode 100644 StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/SourceContext.pbobjc.h delete mode 100644 StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/SourceContext.pbobjc.m delete mode 100644 StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Struct.pbobjc.h delete mode 100644 StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Struct.pbobjc.m delete mode 100644 StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Timestamp.pbobjc.h delete mode 100644 StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Timestamp.pbobjc.m delete mode 100644 StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Type.pbobjc.h delete mode 100644 StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Type.pbobjc.m delete mode 100644 StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Wrappers.pbobjc.h delete mode 100644 StoneIsland/platforms/ios/Pods/Protobuf/objectivec/google/protobuf/Wrappers.pbobjc.m delete mode 100644 StoneIsland/platforms/ios/Pods/Target Support Files/GoogleToolboxForMac/GoogleToolboxForMac-dummy.m delete mode 100644 StoneIsland/platforms/ios/Pods/Target Support Files/GoogleToolboxForMac/GoogleToolboxForMac-prefix.pch delete mode 100644 StoneIsland/platforms/ios/Pods/Target Support Files/GoogleToolboxForMac/GoogleToolboxForMac.xcconfig delete mode 100644 StoneIsland/platforms/ios/Pods/Target Support Files/Protobuf/Protobuf-dummy.m delete mode 100644 StoneIsland/platforms/ios/Pods/Target Support Files/Protobuf/Protobuf-prefix.pch delete mode 100644 StoneIsland/platforms/ios/Pods/Target Support Files/Protobuf/Protobuf.xcconfig delete mode 100644 StoneIsland/platforms/ios/Pods/Target Support Files/nanopb/nanopb-dummy.m delete mode 100644 StoneIsland/platforms/ios/Pods/Target Support Files/nanopb/nanopb-prefix.pch delete mode 100644 StoneIsland/platforms/ios/Pods/Target Support Files/nanopb/nanopb.xcconfig delete mode 100644 StoneIsland/platforms/ios/Pods/nanopb/LICENSE.txt delete mode 100644 StoneIsland/platforms/ios/Pods/nanopb/README.md delete mode 100644 StoneIsland/platforms/ios/Pods/nanopb/pb.h delete mode 100644 StoneIsland/platforms/ios/Pods/nanopb/pb_common.c delete mode 100644 StoneIsland/platforms/ios/Pods/nanopb/pb_common.h delete mode 100644 StoneIsland/platforms/ios/Pods/nanopb/pb_decode.c delete mode 100644 StoneIsland/platforms/ios/Pods/nanopb/pb_decode.h delete mode 100644 StoneIsland/platforms/ios/Pods/nanopb/pb_encode.c delete mode 100644 StoneIsland/platforms/ios/Pods/nanopb/pb_encode.h delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Info.plist delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon29x29.png delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon29x29@2x.png delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon29x29@2x~ipad.png delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon29x29@3x.png delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon29x29~ipad.png delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon40x40@2x.png delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon40x40@2x~ipad.png delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon40x40@3x.png delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon40x40~ipad.png delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon50x50@2x~ipad.png delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon50x50~ipad.png delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon57x57.png delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon57x57@2x.png delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon60x60@2x.png delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon60x60@3x.png delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon72x72@2x~ipad.png delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon72x72~ipad.png delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon76x76@2x~ipad.png delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon76x76~ipad.png delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon83.5x83.5@2x~ipad.png delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/Assets.car delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/CDVLaunchScreen.storyboardc/01J-lp-oVM-view-Ze5-6b-2t3.nib delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/CDVLaunchScreen.storyboardc/Info.plist delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/CDVLaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/CDVNotification.bundle/beep.wav delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/Info.plist delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/LaunchImage-568h@2x.png delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/LaunchImage-700-568h@2x.png delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/LaunchImage-700-Landscape@2x~ipad.png delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/LaunchImage-700-Landscape~ipad.png delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/LaunchImage-700-Portrait@2x~ipad.png delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/LaunchImage-700-Portrait~ipad.png delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/LaunchImage-700@2x.png delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/LaunchImage-800-667h@2x.png delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/LaunchImage-800-Landscape-736h@3x.png delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/LaunchImage-800-Portrait-736h@3x.png delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/LaunchImage-Portrait@2x~ipad.png delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/LaunchImage-Portrait~ipad.png delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/LaunchImage.png delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/LaunchImage@2x.png delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/MainViewController.nib delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/PkgInfo delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/Stone Island delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/_CodeSignature/CodeResources delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/archived-expanded-entitlements.xcent delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/config.xml delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/embedded.mobileprovision delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/cordova-js-src/exec.js delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/cordova-js-src/platform.js delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/cordova.js delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/cordova_plugins.js delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/account.css delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/blogs.css delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/cart.css delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/fonts/andale_mono.ttf delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/fonts/andale_mono.woff delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/fonts/fonts.css delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/fonts/ionicons.css delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/fonts/ionicons.eot delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/fonts/ionicons.svg delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/fonts/ionicons.ttf delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/fonts/ionicons.woff delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/fonts/pfdintextpro-bold-webfont.woff delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/fonts/pfdintextpro-italic-webfont.woff delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/fonts/pfdintextpro-light-webfont.woff delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/fonts/pfdintextpro-medium-webfont.woff delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/fonts/pfdintextpro-regular-webfont.woff delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/index.css delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/nav.css delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/products.css delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/vendor/flickity.css delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/db.json delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/img/Resources/CDVNotification.bundle/beep.wav delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/img/Resources/splash/Default-568h@2x~iphone.png delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/img/Resources/splash/Default-667h.png delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/img/Resources/splash/Default-736h.png delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/img/Resources/splash/Default-Landscape-736h.png delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/img/Resources/splash/Default-Landscape@2x~ipad.png delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/img/Resources/splash/Default-Landscape~ipad.png delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/img/Resources/splash/Default-Portrait@2x~ipad.png delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/img/Resources/splash/Default-Portrait~ipad.png delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/img/Resources/splash/Default@2x~iphone.png delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/img/Resources/splash/Default~iphone.png delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/img/angle-down.png delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/img/bottom-fade.png delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/img/cart-box.png delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/img/cart-handle.png delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/img/compass-logo.png delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/img/compass-logo.png.old delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/img/fade-to-bottom-threshold.gif delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/img/fade-to-bottom.png delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/img/left-arrow.png delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/img/right-arrow.png delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/img/small-cart-box.png delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/img/small-cart-handle.png delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/img/small-logo.png delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/img/spinner.gif delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/img/wide-logo.png delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/index.html delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/index.js delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/_router.js delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/account/AccountView.js delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/account/OrdersView.js delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/account/PaymentView.js delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/account/ProfileView.js delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/account/SettingsView.js delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/account/ShippingView.js delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/auth/LoginView.js delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/auth/LogoutView.js delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/auth/SignupView.js delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/blogs/ArchiveView.js delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/blogs/BlogView.js delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/blogs/HubView.js delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/blogs/PageView.js delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/blogs/StoryView.js delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/cart/CartConfirm.js delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/cart/CartError.js delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/cart/CartPayment.js delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/cart/CartShipping.js delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/cart/CartSummary.js delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/cart/CartThanks.js delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/cart/CartView.js delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/etc/backup_db.js delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/etc/deeplink.js delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/etc/geo.js delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/etc/push.js delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/nav/AddressView.js delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/nav/CreditCardView.js delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/nav/CurtainView.js delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/nav/FooterView.js delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/nav/HeaderView.js delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/nav/IntroView.js delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/nav/NavView.js delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/nav/SearchView.js delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/ClosedStoreView.js delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/CollectionView.js delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/GalleryView.js delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/ProductView.js delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/Selector.js delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/filters/CategoryFilter.js delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/filters/DepartmentFilter.js delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/filters/SizeFilter.js delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/view/Router.js delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/view/Scrollable.js delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/view/Serializable.js delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/view/View.js delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/sdk/_sdk.js delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/sdk/account.js delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/sdk/address.js delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/sdk/auth.js delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/sdk/cart.js delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/sdk/payment.js delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/sdk/product.js delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/sdk/shipping.js delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/vendor/fastclick.js delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/vendor/flickity.pkgd.js delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/vendor/iscroll.js delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/vendor/jquery-2.1.4.min.js delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/vendor/jquery.creditCardValidator.js delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/vendor/loader.js delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/vendor/lodash.min.js delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/vendor/moment.js delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/vendor/oktween.js delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/vendor/prefixfree.js delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/vendor/promise.js delete mode 100755 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/vendor/util.js delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/plugins/cordova-plugin-console/www/console-via-logger.js delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/plugins/cordova-plugin-console/www/logger.js delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/plugins/cordova-plugin-customurlscheme/www/ios/LaunchMyApp.js delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/plugins/cordova-plugin-device/www/device.js delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/plugins/cordova-plugin-dialogs/www/notification.js delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/plugins/cordova-plugin-geolocation/www/Coordinates.js delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/plugins/cordova-plugin-geolocation/www/Position.js delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/plugins/cordova-plugin-geolocation/www/PositionError.js delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/plugins/cordova-plugin-geolocation/www/geolocation.js delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/plugins/cordova-plugin-inappbrowser/www/inappbrowser.js delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/plugins/cordova-plugin-network-information/www/Connection.js delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/plugins/cordova-plugin-network-information/www/network.js delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/plugins/cordova-plugin-splashscreen/www/splashscreen.js delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/plugins/cordova-plugin-statusbar/www/statusbar.js delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/plugins/cordova-plugin-x-socialsharing/www/SocialSharing.js delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/plugins/ionic-plugin-keyboard/www/ios/keyboard.js delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/plugins/phonegap-plugin-push/www/push.js delete mode 100644 StoneIsland/platforms/ios/Stone Island.xcodeproj/xcuserdata/user.xcuserdatad/xcschemes/xcschememanagement.plist delete mode 100644 StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/1024x1024bb.png delete mode 100644 StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon-60.png create mode 100644 StoneIsland/platforms/ios/Stone Island/Images.xcassets/LaunchStoryboard.imageset/Default@2x~universal~anyany.png delete mode 100644 StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-console/CDVLogger.h delete mode 100644 StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-console/CDVLogger.m delete mode 100644 StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-wkwebview-engine/CDVWKProcessPoolFactory.h delete mode 100644 StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-wkwebview-engine/CDVWKProcessPoolFactory.m delete mode 100644 StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-wkwebview-engine/CDVWKWebViewEngine.h delete mode 100644 StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-wkwebview-engine/CDVWKWebViewEngine.m delete mode 100644 StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-wkwebview-engine/CDVWKWebViewUIDelegate.h delete mode 100644 StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-wkwebview-engine/CDVWKWebViewUIDelegate.m delete mode 100644 StoneIsland/platforms/ios/exportOptions.plist create mode 100644 StoneIsland/platforms/ios/platform_www/cordova-js-src/plugin/ios/console.js create mode 100644 StoneIsland/platforms/ios/platform_www/cordova-js-src/plugin/ios/logger.js delete mode 100644 StoneIsland/platforms/ios/platform_www/plugins/cordova-plugin-console/www/console-via-logger.js delete mode 100644 StoneIsland/platforms/ios/platform_www/plugins/cordova-plugin-console/www/logger.js delete mode 100644 StoneIsland/platforms/ios/platform_www/plugins/cordova-plugin-wkwebview-engine/src/www/ios/ios-wkwebview-exec.js create mode 100644 StoneIsland/platforms/ios/www/cordova-js-src/plugin/ios/console.js create mode 100644 StoneIsland/platforms/ios/www/cordova-js-src/plugin/ios/logger.js delete mode 100644 StoneIsland/platforms/ios/www/plugins/cordova-plugin-console/www/console-via-logger.js delete mode 100644 StoneIsland/platforms/ios/www/plugins/cordova-plugin-console/www/logger.js delete mode 100644 StoneIsland/platforms/ios/www/plugins/cordova-plugin-wkwebview-engine/src/www/ios/ios-wkwebview-exec.js delete mode 100644 StoneIsland/plugins/cordova-plugin-console/CONTRIBUTING.md delete mode 100644 StoneIsland/plugins/cordova-plugin-console/LICENSE delete mode 100644 StoneIsland/plugins/cordova-plugin-console/NOTICE delete mode 100644 StoneIsland/plugins/cordova-plugin-console/README.md delete mode 100644 StoneIsland/plugins/cordova-plugin-console/RELEASENOTES.md delete mode 100644 StoneIsland/plugins/cordova-plugin-console/doc/de/README.md delete mode 100644 StoneIsland/plugins/cordova-plugin-console/doc/de/index.md delete mode 100644 StoneIsland/plugins/cordova-plugin-console/doc/es/README.md delete mode 100644 StoneIsland/plugins/cordova-plugin-console/doc/es/index.md delete mode 100644 StoneIsland/plugins/cordova-plugin-console/doc/fr/README.md delete mode 100644 StoneIsland/plugins/cordova-plugin-console/doc/fr/index.md delete mode 100644 StoneIsland/plugins/cordova-plugin-console/doc/it/README.md delete mode 100644 StoneIsland/plugins/cordova-plugin-console/doc/it/index.md delete mode 100644 StoneIsland/plugins/cordova-plugin-console/doc/ja/README.md delete mode 100644 StoneIsland/plugins/cordova-plugin-console/doc/ja/index.md delete mode 100644 StoneIsland/plugins/cordova-plugin-console/doc/ko/README.md delete mode 100644 StoneIsland/plugins/cordova-plugin-console/doc/ko/index.md delete mode 100644 StoneIsland/plugins/cordova-plugin-console/doc/pl/README.md delete mode 100644 StoneIsland/plugins/cordova-plugin-console/doc/pl/index.md delete mode 100644 StoneIsland/plugins/cordova-plugin-console/doc/ru/index.md delete mode 100644 StoneIsland/plugins/cordova-plugin-console/doc/zh/README.md delete mode 100644 StoneIsland/plugins/cordova-plugin-console/doc/zh/index.md delete mode 100644 StoneIsland/plugins/cordova-plugin-console/package.json delete mode 100644 StoneIsland/plugins/cordova-plugin-console/plugin.xml delete mode 100644 StoneIsland/plugins/cordova-plugin-console/src/ios/CDVLogger.h delete mode 100644 StoneIsland/plugins/cordova-plugin-console/src/ios/CDVLogger.m delete mode 100644 StoneIsland/plugins/cordova-plugin-console/src/ubuntu/console.cpp delete mode 100644 StoneIsland/plugins/cordova-plugin-console/src/ubuntu/console.h delete mode 100644 StoneIsland/plugins/cordova-plugin-console/src/wp/DebugConsole.cs delete mode 100644 StoneIsland/plugins/cordova-plugin-console/tests/plugin.xml delete mode 100644 StoneIsland/plugins/cordova-plugin-console/tests/tests.js delete mode 100644 StoneIsland/plugins/cordova-plugin-console/www/console-via-logger.js delete mode 100644 StoneIsland/plugins/cordova-plugin-console/www/logger.js create mode 100644 StoneIsland/plugins/cordova-plugin-splashscreen/tests/package.json create mode 100644 StoneIsland/plugins/cordova-plugin-splashscreen/types/index.d.ts delete mode 100644 StoneIsland/plugins/cordova-plugin-wkwebview-engine/LICENSE delete mode 100644 StoneIsland/plugins/cordova-plugin-wkwebview-engine/README.md delete mode 100644 StoneIsland/plugins/cordova-plugin-wkwebview-engine/RELEASENOTES.md delete mode 100644 StoneIsland/plugins/cordova-plugin-wkwebview-engine/package.json delete mode 100644 StoneIsland/plugins/cordova-plugin-wkwebview-engine/plugin.xml delete mode 100644 StoneIsland/plugins/cordova-plugin-wkwebview-engine/src/ios/CDVWKProcessPoolFactory.h delete mode 100644 StoneIsland/plugins/cordova-plugin-wkwebview-engine/src/ios/CDVWKProcessPoolFactory.m delete mode 100644 StoneIsland/plugins/cordova-plugin-wkwebview-engine/src/ios/CDVWKWebViewEngine.h delete mode 100644 StoneIsland/plugins/cordova-plugin-wkwebview-engine/src/ios/CDVWKWebViewEngine.m delete mode 100644 StoneIsland/plugins/cordova-plugin-wkwebview-engine/src/ios/CDVWKWebViewUIDelegate.h delete mode 100644 StoneIsland/plugins/cordova-plugin-wkwebview-engine/src/ios/CDVWKWebViewUIDelegate.m delete mode 100644 StoneIsland/plugins/cordova-plugin-wkwebview-engine/src/www/ios/ios-wkwebview-exec.js delete mode 100644 StoneIsland/plugins/cordova-plugin-wkwebview-engine/tests/ios/CDVWKWebViewEngineTest.xcworkspace/contents.xcworkspacedata delete mode 100644 StoneIsland/plugins/cordova-plugin-wkwebview-engine/tests/ios/CDVWKWebViewEngineTest.xcworkspace/xcshareddata/CDVWKWebViewEngineTest.xccheckout delete mode 100644 StoneIsland/plugins/cordova-plugin-wkwebview-engine/tests/ios/CDVWKWebViewEngineTest.xcworkspace/xcshareddata/xcschemes/CordovaLib.xcscheme delete mode 100644 StoneIsland/plugins/cordova-plugin-wkwebview-engine/tests/ios/CDVWKWebViewEngineTest/.npmignore delete mode 100644 StoneIsland/plugins/cordova-plugin-wkwebview-engine/tests/ios/CDVWKWebViewEngineTest/CDVWKWebViewEngineLibTests/CDVWKWebViewEngineTest.m delete mode 100644 StoneIsland/plugins/cordova-plugin-wkwebview-engine/tests/ios/CDVWKWebViewEngineTest/CDVWKWebViewEngineLibTests/Info.plist delete mode 100644 StoneIsland/plugins/cordova-plugin-wkwebview-engine/tests/ios/CDVWKWebViewEngineTest/CDVWKWebViewEngineTest.xcodeproj/project.pbxproj delete mode 100644 StoneIsland/plugins/cordova-plugin-wkwebview-engine/tests/ios/CDVWKWebViewEngineTest/CDVWKWebViewEngineTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata delete mode 100644 StoneIsland/plugins/cordova-plugin-wkwebview-engine/tests/ios/CDVWKWebViewEngineTest/CDVWKWebViewEngineTest.xcodeproj/project.xcworkspace/xcshareddata/CDVWKWebViewEngineTest.xccheckout delete mode 100644 StoneIsland/plugins/cordova-plugin-wkwebview-engine/tests/ios/CDVWKWebViewEngineTest/CDVWKWebViewEngineTest.xcodeproj/xcshareddata/xcschemes/CDVWKWebViewEngineLib.xcscheme delete mode 100644 StoneIsland/plugins/cordova-plugin-wkwebview-engine/tests/ios/CDVWKWebViewEngineTest/CDVWKWebViewEngineTest.xcodeproj/xcshareddata/xcschemes/CDVWKWebViewEngineLibTests.xcscheme delete mode 100644 StoneIsland/plugins/cordova-plugin-wkwebview-engine/tests/ios/README.md delete mode 100644 StoneIsland/plugins/cordova-plugin-wkwebview-engine/tests/ios/package.json delete mode 100644 StoneIsland/plugins/cordova-plugin-wkwebview-engine/tests/ios/test.xcconfig delete mode 100644 StoneIsland/plugins/cordova-plugin-wkwebview-engine/tests/package.json delete mode 100644 StoneIsland/plugins/cordova-plugin-wkwebview-engine/tests/plugin.xml delete mode 100644 StoneIsland/plugins/cordova-plugin-wkwebview-engine/tests/tests.js delete mode 100644 StoneIsland/plugins/phonegap-plugin-push/src/android/com/adobe/phonegap/push/FCMService.java create mode 100644 StoneIsland/plugins/phonegap-plugin-push/src/android/com/adobe/phonegap/push/GCMIntentService.java delete mode 100644 StoneIsland/plugins/phonegap-plugin-push/src/android/com/adobe/phonegap/push/PushDismissedHandler.java create mode 100644 StoneIsland/plugins/phonegap-plugin-push/src/android/com/adobe/phonegap/push/RegistrationIntentService.java delete mode 100644 StoneIsland/plugins/phonegap-plugin-push/src/js/push.js delete mode 100644 StoneIsland/plugins/phonegap-plugin-push/types/index.d.ts create mode 100644 StoneIsland/res/screen/ios/1024x1024bb.png create mode 100644 StoneIsland/res/screen/ios/Contents.json create mode 100644 StoneIsland/res/screen/ios/Default-568h@2x~iphone.png create mode 100644 StoneIsland/res/screen/ios/Default-667h.png create mode 100644 StoneIsland/res/screen/ios/Default-736h.png create mode 100644 StoneIsland/res/screen/ios/Default-Landscape-736h.png create mode 100644 StoneIsland/res/screen/ios/Default-Landscape@2x~ipad.png create mode 100644 StoneIsland/res/screen/ios/Default-Landscape~ipad.png create mode 100644 StoneIsland/res/screen/ios/Default-Portrait@2x~ipad.png create mode 100644 StoneIsland/res/screen/ios/Default-Portrait~ipad.png create mode 100644 StoneIsland/res/screen/ios/Default@2x~iphone.png create mode 100644 StoneIsland/res/screen/ios/Default@2x~universal~anyany.png create mode 100644 StoneIsland/res/screen/ios/Default~iphone.png create mode 100644 StoneIsland/res/screen/ios/icon-40.png create mode 100644 StoneIsland/res/screen/ios/icon-40@2x.png create mode 100644 StoneIsland/res/screen/ios/icon-50.png create mode 100644 StoneIsland/res/screen/ios/icon-50@2x.png create mode 100644 StoneIsland/res/screen/ios/icon-60.png create mode 100644 StoneIsland/res/screen/ios/icon-60@2x.png create mode 100644 StoneIsland/res/screen/ios/icon-60@3x.png create mode 100644 StoneIsland/res/screen/ios/icon-72.png create mode 100644 StoneIsland/res/screen/ios/icon-72@2x.png create mode 100644 StoneIsland/res/screen/ios/icon-76.png create mode 100644 StoneIsland/res/screen/ios/icon-76@2x.png create mode 100644 StoneIsland/res/screen/ios/icon-83.5@2x.png create mode 100644 StoneIsland/res/screen/ios/icon-small.png create mode 100644 StoneIsland/res/screen/ios/icon-small@2x.png create mode 100644 StoneIsland/res/screen/ios/icon-small@3x.png create mode 100644 StoneIsland/res/screen/ios/icon.png create mode 100644 StoneIsland/res/screen/ios/icon@2x.png diff --git a/StoneIsland/config.xml b/StoneIsland/config.xml index 12acb6ad..1a0f6d90 100755 --- a/StoneIsland/config.xml +++ b/StoneIsland/config.xml @@ -1,11 +1,11 @@ - + Stone Island Stone Island - Jules Laplace + Jules LaPlace @@ -28,7 +28,7 @@ - + @@ -40,13 +40,27 @@ + + + + + + + + + + + + + - + + + - @@ -56,9 +70,9 @@ - - - + + + diff --git a/StoneIsland/package-lock.json b/StoneIsland/package-lock.json index 617a395b..3ddc93a0 100644 --- a/StoneIsland/package-lock.json +++ b/StoneIsland/package-lock.json @@ -137,11 +137,6 @@ "version": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=" }, - "babel-plugin-add-header-comment": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/babel-plugin-add-header-comment/-/babel-plugin-add-header-comment-1.0.3.tgz", - "integrity": "sha1-URxJAQYmQNWkgLSsPt1pRBlYUOw=" - }, "balanced-match": { "version": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=" @@ -896,22 +891,22 @@ } }, "cordova-ios": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/cordova-ios/-/cordova-ios-4.4.0.tgz", - "integrity": "sha1-XNbvciRQXbVYRG5GN62X0IeMdO8=", + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/cordova-ios/-/cordova-ios-4.5.2.tgz", + "integrity": "sha512-c5yXY5b/ONRSe+IoBOz9MqcPNmTa/AdnwSOPelm/izRV0uqNg9mW4Fe9W8mRCMBzfCFQFL4qJcCC4Bi0VLg4mQ==", "requires": { - "cordova-common": "2.0.2", - "ios-sim": "5.0.12", + "cordova-common": "2.1.0", + "ios-sim": "6.1.2", "nopt": "3.0.6", "plist": "1.2.0", - "q": "1.4.1", + "q": "1.5.0", "shelljs": "0.5.3", "xcode": "0.9.3", "xml-escape": "1.1.0" }, "dependencies": { "abbrev": { - "version": "1.0.9", + "version": "1.1.1", "bundled": true }, "ansi": { @@ -919,7 +914,7 @@ "bundled": true }, "balanced-match": { - "version": "0.4.2", + "version": "1.0.0", "bundled": true }, "base64-js": { @@ -927,28 +922,28 @@ "bundled": true }, "big-integer": { - "version": "1.6.17", + "version": "1.6.25", "bundled": true }, "bplist-creator": { - "version": "0.0.4", + "version": "0.0.7", "bundled": true, "requires": { - "stream-buffers": "0.2.6" + "stream-buffers": "2.2.0" } }, "bplist-parser": { "version": "0.1.1", "bundled": true, "requires": { - "big-integer": "1.6.17" + "big-integer": "1.6.25" } }, "brace-expansion": { - "version": "1.1.6", + "version": "1.1.8", "bundled": true, "requires": { - "balanced-match": "0.4.2", + "balanced-match": "1.0.0", "concat-map": "0.0.1" } }, @@ -957,7 +952,7 @@ "bundled": true }, "cordova-common": { - "version": "2.0.2", + "version": "2.1.0", "bundled": true, "requires": { "ansi": "0.3.1", @@ -965,11 +960,11 @@ "cordova-registry-mapper": "1.1.15", "elementtree": "0.1.6", "glob": "5.0.15", - "minimatch": "3.0.3", - "osenv": "0.1.3", + "minimatch": "3.0.4", + "osenv": "0.1.4", "plist": "1.2.0", - "q": "1.4.1", - "semver": "5.3.0", + "q": "1.5.0", + "semver": "5.4.1", "shelljs": "0.5.3", "underscore": "1.8.3", "unorm": "1.4.1" @@ -992,7 +987,7 @@ "requires": { "inflight": "1.0.6", "inherits": "2.0.3", - "minimatch": "3.0.3", + "minimatch": "3.0.4", "once": "1.4.0", "path-is-absolute": "1.0.1" } @@ -1010,13 +1005,13 @@ "bundled": true }, "ios-sim": { - "version": "5.0.12", + "version": "6.1.2", "bundled": true, "requires": { "bplist-parser": "0.0.6", "nopt": "1.0.9", "plist": "1.2.0", - "simctl": "0.1.0" + "simctl": "1.1.1" }, "dependencies": { "bplist-parser": { @@ -1027,7 +1022,7 @@ "version": "1.0.9", "bundled": true, "requires": { - "abbrev": "1.0.9" + "abbrev": "1.1.1" } } } @@ -1037,21 +1032,17 @@ "bundled": true }, "minimatch": { - "version": "3.0.3", + "version": "3.0.4", "bundled": true, "requires": { - "brace-expansion": "1.1.6" + "brace-expansion": "1.1.8" } }, - "node-uuid": { - "version": "1.4.7", - "bundled": true - }, "nopt": { "version": "3.0.6", "bundled": true, "requires": { - "abbrev": "1.0.9" + "abbrev": "1.1.1" } }, "once": { @@ -1070,7 +1061,7 @@ "bundled": true }, "osenv": { - "version": "0.1.3", + "version": "0.1.4", "bundled": true, "requires": { "os-homedir": "1.0.2", @@ -1082,7 +1073,7 @@ "bundled": true }, "pegjs": { - "version": "0.9.0", + "version": "0.10.0", "bundled": true }, "plist": { @@ -1096,7 +1087,7 @@ } }, "q": { - "version": "1.4.1", + "version": "1.5.0", "bundled": true }, "sax": { @@ -1104,7 +1095,7 @@ "bundled": true }, "semver": { - "version": "5.3.0", + "version": "5.4.1", "bundled": true }, "shelljs": { @@ -1112,7 +1103,7 @@ "bundled": true }, "simctl": { - "version": "0.1.0", + "version": "1.1.1", "bundled": true, "requires": { "shelljs": "0.2.6", @@ -1126,22 +1117,35 @@ } }, "simple-plist": { - "version": "0.1.4", + "version": "0.2.1", "bundled": true, "requires": { - "bplist-creator": "0.0.4", - "bplist-parser": "0.0.6", - "plist": "1.2.0" + "bplist-creator": "0.0.7", + "bplist-parser": "0.1.1", + "plist": "2.0.1" }, "dependencies": { - "bplist-parser": { - "version": "0.0.6", + "base64-js": { + "version": "1.1.2", + "bundled": true + }, + "plist": { + "version": "2.0.1", + "bundled": true, + "requires": { + "base64-js": "1.1.2", + "xmlbuilder": "8.2.2", + "xmldom": "0.1.27" + } + }, + "xmlbuilder": { + "version": "8.2.2", "bundled": true } } }, "stream-buffers": { - "version": "0.2.6", + "version": "2.2.0", "bundled": true }, "tail": { @@ -1160,73 +1164,21 @@ "version": "1.0.2", "bundled": true }, + "uuid": { + "version": "3.0.1", + "bundled": true + }, "wrappy": { "version": "1.0.2", "bundled": true }, "xcode": { "version": "0.9.3", - "resolved": "https://registry.npmjs.org/xcode/-/xcode-0.9.3.tgz", - "integrity": "sha1-kQqJwWrubMC0LKgFptC0z4chHPM=", + "bundled": true, "requires": { "pegjs": "0.10.0", "simple-plist": "0.2.1", "uuid": "3.0.1" - }, - "dependencies": { - "base64-js": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.1.2.tgz", - "integrity": "sha1-1kAMrBxMZgl22Q0HoENR2JOV9eg=" - }, - "bplist-creator": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.0.7.tgz", - "integrity": "sha1-N98VNgkoJLh8QvlXsBNEEXNyrkU=", - "requires": { - "stream-buffers": "2.2.0" - } - }, - "pegjs": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/pegjs/-/pegjs-0.10.0.tgz", - "integrity": "sha1-z4uvrm7d/0tafvsYUmnqr0YQ3b0=" - }, - "plist": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/plist/-/plist-2.0.1.tgz", - "integrity": "sha1-CjLKlIGxw2TpLhjcVch23p0B2os=", - "requires": { - "base64-js": "1.1.2", - "xmlbuilder": "8.2.2", - "xmldom": "0.1.27" - } - }, - "simple-plist": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/simple-plist/-/simple-plist-0.2.1.tgz", - "integrity": "sha1-cXZts1IyaSjPOoByQrp2IyJjZyM=", - "requires": { - "bplist-creator": "0.0.7", - "bplist-parser": "0.1.1", - "plist": "2.0.1" - } - }, - "stream-buffers": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-2.2.0.tgz", - "integrity": "sha1-kdX1Ew0c75bc+n9yaUUYh0HQnuQ=" - }, - "uuid": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz", - "integrity": "sha1-ZUS7ot/ajBzxfmKaOjBeK7H+5sE=" - }, - "xmlbuilder": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-8.2.2.tgz", - "integrity": "sha1-aSSGc0ELS6QuGmE2VR0pIjNap3M=" - } } }, "xml-escape": { @@ -1324,11 +1276,6 @@ "xml2js": "0.4.19" } }, - "cordova-plugin-console": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/cordova-plugin-console/-/cordova-plugin-console-1.0.7.tgz", - "integrity": "sha1-ibepLtHDNYiN/ADZAtxBcgHPOws=" - }, "cordova-plugin-customurlscheme": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/cordova-plugin-customurlscheme/-/cordova-plugin-customurlscheme-4.2.0.tgz", @@ -2191,11 +2138,6 @@ } } }, - "install": { - "version": "0.8.9", - "resolved": "https://registry.npmjs.org/install/-/install-0.8.9.tgz", - "integrity": "sha1-n0tcDRhR74cunfheT3Fi1OXc2+0=" - }, "interpret": { "version": "https://registry.npmjs.org/interpret/-/interpret-1.0.1.tgz", "integrity": "sha1-1Xn7f2k7hYAElHrzn6DbSfeVYCw=" @@ -4234,13 +4176,9 @@ "integrity": "sha1-9q76LjzlYWkgjlIXnf5B+JFBo2k=" }, "phonegap-plugin-push": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/phonegap-plugin-push/-/phonegap-plugin-push-2.0.0.tgz", - "integrity": "sha1-FhKJtP3r0LUqTVoQUg0VYIPuz3M=", - "requires": { - "babel-plugin-add-header-comment": "1.0.3", - "install": "0.8.9" - } + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/phonegap-plugin-push/-/phonegap-plugin-push-1.9.2.tgz", + "integrity": "sha1-3PktbNuZLcs3iUCyIbfwjoKcn8E=" }, "pinkie": { "version": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", diff --git a/StoneIsland/package.json b/StoneIsland/package.json index ae147cb7..e5bd4d5b 100644 --- a/StoneIsland/package.json +++ b/StoneIsland/package.json @@ -1,59 +1,59 @@ { - "name": "stone-island", - "version": "1.0.0", - "description": "", - "main": "index.js", - "dependencies": { - "cordova": "^6.4.0", - "cordova-android": "^6.2.3", - "cordova-ios": "^4.4.0", - "cordova-plugin-app-name": "^1.0.4", - "cordova-plugin-console": "~1.0.4", - "cordova-plugin-customurlscheme": "~4.2.0", - "cordova-plugin-device": "~1.1.3", - "cordova-plugin-dialogs": "~1.3.0", - "cordova-plugin-geolocation": "~2.4.0", - "cordova-plugin-inappbrowser": "~1.5.0", - "cordova-plugin-network-information": "~1.3.0", - "cordova-plugin-splashscreen": "~4.0.0", - "cordova-plugin-statusbar": "^2.2.3", - "cordova-plugin-whitelist": "1", - "cordova-plugin-x-socialsharing": "~5.1.3", - "ionic-plugin-keyboard": "~2.2.1", - "ios-deploy": "^1.9.0", - "phonegap-plugin-push": "^2.0.0" + "name": "stone-island", + "version": "1.0.0", + "description": "", + "main": "index.js", + "dependencies": { + "cordova": "^6.4.0", + "cordova-android": "^6.2.3", + "cordova-ios": "^4.5.2", + "cordova-plugin-app-name": "^1.0.4", + "cordova-plugin-customurlscheme": "~4.2.0", + "cordova-plugin-device": "~1.1.3", + "cordova-plugin-dialogs": "~1.3.0", + "cordova-plugin-geolocation": "~2.4.0", + "cordova-plugin-inappbrowser": "~1.5.0", + "cordova-plugin-network-information": "~1.3.0", + "cordova-plugin-splashscreen": "~4.0.0", + "cordova-plugin-statusbar": "^2.2.3", + "cordova-plugin-whitelist": "1", + "cordova-plugin-x-socialsharing": "~5.1.3", + "ionic-plugin-keyboard": "~2.2.1", + "ios-deploy": "^1.9.0", + "phonegap-plugin-push": "^1.9.2" + }, + "devDependencies": {}, + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "start": "cordova emulate ios --target=\"iPhone-7, 10.2\"" + }, + "author": "", + "license": "UNLICENSED", + "cordova": { + "plugins": { + "cordova-plugin-whitelist": {}, + "cordova-plugin-statusbar": {}, + "cordova-plugin-app-name": { + "APP_NAME": "Stone Island" + }, + "cordova-plugin-customurlscheme": { + "URL_SCHEME": "stoneisland" + }, + "cordova-plugin-device": {}, + "cordova-plugin-dialogs": {}, + "cordova-plugin-geolocation": {}, + "cordova-plugin-inappbrowser": {}, + "cordova-plugin-network-information": {}, + "cordova-plugin-splashscreen": {}, + "cordova-plugin-x-socialsharing": {}, + "ionic-plugin-keyboard": {}, + "phonegap-plugin-push": { + "SENDER_ID": "85075801930" + } }, - "devDependencies": {}, - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1", - "start": "cordova emulate ios --target=\"iPhone-7, 10.2\"" - }, - "author": "", - "license": "UNLICENSED", - "cordova": { - "plugins": { - "cordova-plugin-whitelist": {}, - "cordova-plugin-statusbar": {}, - "cordova-plugin-app-name": { - "APP_NAME": "Stone Island" - }, - "cordova-plugin-console": {}, - "cordova-plugin-customurlscheme": { - "URL_SCHEME": "stoneisland" - }, - "cordova-plugin-device": {}, - "cordova-plugin-dialogs": {}, - "cordova-plugin-geolocation": {}, - "cordova-plugin-inappbrowser": {}, - "cordova-plugin-network-information": {}, - "cordova-plugin-splashscreen": {}, - "cordova-plugin-x-socialsharing": {}, - "ionic-plugin-keyboard": {}, - "phonegap-plugin-push": {} - }, - "platforms": [ - "android", - "ios" - ] - } + "platforms": [ + "android", + "ios" + ] + } } \ No newline at end of file diff --git a/StoneIsland/platforms/android/AndroidManifest.xml b/StoneIsland/platforms/android/AndroidManifest.xml index bb6ffaef..75322df7 100755 --- a/StoneIsland/platforms/android/AndroidManifest.xml +++ b/StoneIsland/platforms/android/AndroidManifest.xml @@ -23,23 +23,36 @@ - - + - + + + + + + + - + - + + + + + + + + + diff --git a/StoneIsland/platforms/android/android.json b/StoneIsland/platforms/android/android.json index 1a860dfb..3e69085c 100755 --- a/StoneIsland/platforms/android/android.json +++ b/StoneIsland/platforms/android/android.json @@ -36,10 +36,6 @@ "xml": "", "count": 1 }, - { - "xml": "", - "count": 1 - }, { "xml": "", "count": 1 @@ -52,6 +48,10 @@ "xml": "", "count": 1 }, + { + "xml": "", + "count": 1 + }, { "xml": "", "count": 1 @@ -71,15 +71,19 @@ "count": 1 }, { - "xml": "", + "xml": "", + "count": 1 + }, + { + "xml": "", "count": 1 }, { - "xml": "", + "xml": "", "count": 1 }, { - "xml": "", + "xml": "", "count": 1 } ], @@ -99,6 +103,26 @@ { "xml": "", "count": 1 + }, + { + "xml": "", + "count": 1 + }, + { + "xml": "", + "count": 1 + }, + { + "xml": "", + "count": 1 + }, + { + "xml": "", + "count": 1 + }, + { + "xml": "", + "count": 1 } ], "/*/application/activity": [], @@ -143,7 +167,12 @@ }, "res/values/strings.xml": { "parents": { - "/resources": [] + "/resources": [ + { + "xml": "85075801930", + "count": 1 + } + ] } }, "config.xml": { @@ -175,9 +204,6 @@ "cordova-plugin-whitelist": { "PACKAGE_NAME": "us.okfoc.stoneisland" }, - "cordova-plugin-console": { - "PACKAGE_NAME": "us.okfoc.stoneisland" - }, "cordova-plugin-device": { "PACKAGE_NAME": "us.okfoc.stoneisland" }, @@ -187,9 +213,6 @@ "cordova-plugin-dialogs": { "PACKAGE_NAME": "us.okfoc.stoneisland" }, - "cordova-plugin-splashscreen": { - "PACKAGE_NAME": "us.okfoc.stoneisland" - }, "cordova-plugin-compat": { "PACKAGE_NAME": "us.okfoc.stoneisland" }, @@ -206,10 +229,11 @@ "APP_NAME": "Stone Island", "PACKAGE_NAME": "us.okfoc.stoneisland" }, - "phonegap-plugin-push": { + "cordova-plugin-splashscreen": { "PACKAGE_NAME": "us.okfoc.stoneisland" }, - "cordova-plugin-wkwebview-engine": { + "phonegap-plugin-push": { + "SENDER_ID": "85075801930", "PACKAGE_NAME": "us.okfoc.stoneisland" } }, @@ -281,14 +305,6 @@ "navigator.notification" ] }, - { - "file": "plugins/cordova-plugin-splashscreen/www/splashscreen.js", - "id": "cordova-plugin-splashscreen.SplashScreen", - "pluginId": "cordova-plugin-splashscreen", - "clobbers": [ - "navigator.splashscreen" - ] - }, { "file": "plugins/cordova-plugin-geolocation/www/android/geolocation.js", "id": "cordova-plugin-geolocation.geolocation", @@ -320,6 +336,14 @@ "window.StatusBar" ] }, + { + "id": "cordova-plugin-splashscreen.SplashScreen", + "file": "plugins/cordova-plugin-splashscreen/www/splashscreen.js", + "pluginId": "cordova-plugin-splashscreen", + "clobbers": [ + "navigator.splashscreen" + ] + }, { "id": "phonegap-plugin-push.PushNotification", "file": "plugins/phonegap-plugin-push/www/push.js", @@ -334,17 +358,15 @@ "cordova-plugin-x-socialsharing": "5.1.3", "cordova-plugin-customurlscheme": "4.2.0", "cordova-plugin-whitelist": "1.3.0", - "cordova-plugin-console": "1.0.4", "cordova-plugin-device": "1.1.3", "cordova-plugin-network-information": "1.3.0", "cordova-plugin-dialogs": "1.3.0", - "cordova-plugin-splashscreen": "4.0.0", "cordova-plugin-compat": "1.1.0", "cordova-plugin-geolocation": "2.4.0", "ionic-plugin-keyboard": "2.2.1", "cordova-plugin-statusbar": "2.2.3", "cordova-plugin-app-name": "1.0.4", - "phonegap-plugin-push": "2.0.0", - "cordova-plugin-wkwebview-engine": "1.1.3" + "cordova-plugin-splashscreen": "4.0.3", + "phonegap-plugin-push": "1.9.2" } } \ No newline at end of file diff --git a/StoneIsland/platforms/android/assets/www/cordova_plugins.js b/StoneIsland/platforms/android/assets/www/cordova_plugins.js index 1b6d56ac..8f70abd6 100755 --- a/StoneIsland/platforms/android/assets/www/cordova_plugins.js +++ b/StoneIsland/platforms/android/assets/www/cordova_plugins.js @@ -66,14 +66,6 @@ module.exports = [ "navigator.notification" ] }, - { - "file": "plugins/cordova-plugin-splashscreen/www/splashscreen.js", - "id": "cordova-plugin-splashscreen.SplashScreen", - "pluginId": "cordova-plugin-splashscreen", - "clobbers": [ - "navigator.splashscreen" - ] - }, { "file": "plugins/cordova-plugin-geolocation/www/android/geolocation.js", "id": "cordova-plugin-geolocation.geolocation", @@ -105,6 +97,14 @@ module.exports = [ "window.StatusBar" ] }, + { + "id": "cordova-plugin-splashscreen.SplashScreen", + "file": "plugins/cordova-plugin-splashscreen/www/splashscreen.js", + "pluginId": "cordova-plugin-splashscreen", + "clobbers": [ + "navigator.splashscreen" + ] + }, { "id": "phonegap-plugin-push.PushNotification", "file": "plugins/phonegap-plugin-push/www/push.js", @@ -121,18 +121,16 @@ module.exports.metadata = "cordova-plugin-x-socialsharing": "5.1.3", "cordova-plugin-customurlscheme": "4.2.0", "cordova-plugin-whitelist": "1.3.0", - "cordova-plugin-console": "1.0.4", "cordova-plugin-device": "1.1.3", "cordova-plugin-network-information": "1.3.0", "cordova-plugin-dialogs": "1.3.0", - "cordova-plugin-splashscreen": "4.0.0", "cordova-plugin-compat": "1.1.0", "cordova-plugin-geolocation": "2.4.0", "ionic-plugin-keyboard": "2.2.1", "cordova-plugin-statusbar": "2.2.3", "cordova-plugin-app-name": "1.0.4", - "phonegap-plugin-push": "2.0.0", - "cordova-plugin-wkwebview-engine": "1.1.3" + "cordova-plugin-splashscreen": "4.0.3", + "phonegap-plugin-push": "1.9.2" }; // BOTTOM OF METADATA }); \ No newline at end of file diff --git a/StoneIsland/platforms/android/assets/www/plugins/cordova-plugin-splashscreen/www/splashscreen.js b/StoneIsland/platforms/android/assets/www/plugins/cordova-plugin-splashscreen/www/splashscreen.js index 0e6a10af..5beaa5fd 100644 --- a/StoneIsland/platforms/android/assets/www/plugins/cordova-plugin-splashscreen/www/splashscreen.js +++ b/StoneIsland/platforms/android/assets/www/plugins/cordova-plugin-splashscreen/www/splashscreen.js @@ -1,4 +1,5 @@ -cordova.define("cordova-plugin-splashscreen.SplashScreen", function(require, exports, module) { /* +cordova.define("cordova-plugin-splashscreen.SplashScreen", function(require, exports, module) { +/* * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file diff --git a/StoneIsland/platforms/android/assets/www/plugins/phonegap-plugin-push/www/push.js b/StoneIsland/platforms/android/assets/www/plugins/phonegap-plugin-push/www/push.js index 7234d474..a5315486 100644 --- a/StoneIsland/platforms/android/assets/www/plugins/phonegap-plugin-push/www/push.js +++ b/StoneIsland/platforms/android/assets/www/plugins/phonegap-plugin-push/www/push.js @@ -1,16 +1,4 @@ cordova.define("phonegap-plugin-push.PushNotification", function(require, exports, module) { -/** -* This file has been generated by Babel. -* -* DO NOT EDIT IT DIRECTLY -* -* Edit the JS source file src/js/push.js -**/'use strict'; - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - /* global cordova:false */ /* globals window */ @@ -20,358 +8,322 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons var exec = cordova.require('cordova/exec'); -var PushNotification = function () { - /** - * PushNotification constructor. - * - * @param {Object} options to initiate Push Notifications. - * @return {PushNotification} instance that can be monitored and cancelled. - */ - function PushNotification(options) { - var _this = this; - - _classCallCheck(this, PushNotification); - - this.handlers = { - registration: [], - notification: [], - error: [] +/** + * PushNotification constructor. + * + * @param {Object} options to initiate Push Notifications. + * @return {PushNotification} instance that can be monitored and cancelled. + */ + +var PushNotification = function(options) { + this._handlers = { + 'registration': [], + 'notification': [], + 'error': [] }; // require options parameter if (typeof options === 'undefined') { - throw new Error('The options argument is required.'); + throw new Error('The options argument is required.'); } // store the options to this object instance this.options = options; // triggered on registration and notification - var success = function success(result) { - if (result && typeof result.registrationId !== 'undefined') { - _this.emit('registration', result); - } else if (result && result.additionalData && typeof result.additionalData.actionCallback !== 'undefined') { - var executeFuctionOrEmitEventByName = function executeFuctionOrEmitEventByName(functionName, context) { - for (var _len = arguments.length, args = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) { - args[_key - 2] = arguments[_key]; - } - - var namespaces = functionName.split('.'); - var func = namespaces.pop(); - for (var i = 0; i < namespaces.length; i++) { - context = context[namespaces[i]]; - } - - if (typeof context[func] === 'function') { - context[func].call(context, args); - } else { - _this.emit(functionName, args); - } - }; - - executeFuctionOrEmitEventByName(result.additionalData.actionCallback, window, result); - } else if (result) { - _this.emit('notification', result); - } + var that = this; + var success = function(result) { + if (result && typeof result.registrationId !== 'undefined') { + that.emit('registration', result); + } else if (result && result.additionalData && typeof result.additionalData.actionCallback !== 'undefined') { + var executeFuctionOrEmitEventByName = function(callbackName, context, arg) { + var namespaces = callbackName.split('.'); + var func = namespaces.pop(); + for (var i = 0; i < namespaces.length; i++) { + context = context[namespaces[i]]; + } + + if (typeof context[func] === 'function') { + context[func].call(context, arg); + } else { + that.emit(callbackName, arg); + } + }; + + executeFuctionOrEmitEventByName(result.additionalData.actionCallback, window, result); + } else if (result) { + that.emit('notification', result); + } }; // triggered on error - var fail = function fail(msg) { - var e = typeof msg === 'string' ? new Error(msg) : msg; - _this.emit('error', e); + var fail = function(msg) { + var e = (typeof msg === 'string') ? new Error(msg) : msg; + that.emit('error', e); }; // wait at least one process tick to allow event subscriptions - setTimeout(function () { - exec(success, fail, 'PushNotification', 'init', [options]); + setTimeout(function() { + exec(success, fail, 'PushNotification', 'init', [options]); }, 10); - } - - /** - * Unregister from push notifications - */ - +}; - _createClass(PushNotification, [{ - key: 'unregister', - value: function unregister(successCallback) { - var _this2 = this; +/** + * Unregister from push notifications + */ - var errorCallback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {}; - var options = arguments[2]; +PushNotification.prototype.unregister = function(successCallback, errorCallback, options) { + if (!errorCallback) { errorCallback = function() {}; } - if (typeof errorCallback !== 'function') { + if (typeof errorCallback !== 'function') { console.log('PushNotification.unregister failure: failure parameter not a function'); return; - } + } - if (typeof successCallback !== 'function') { - console.log('PushNotification.unregister failure: success callback parameter ' + ' must be a function'); + if (typeof successCallback !== 'function') { + console.log('PushNotification.unregister failure: success callback parameter must be a function'); return; - } + } - var cleanHandlersAndPassThrough = function cleanHandlersAndPassThrough() { + var that = this; + var cleanHandlersAndPassThrough = function() { if (!options) { - _this2.handlers = { - registration: [], - notification: [], - error: [] - }; + that._handlers = { + 'registration': [], + 'notification': [], + 'error': [] + }; } successCallback(); - }; - - exec(cleanHandlersAndPassThrough, errorCallback, 'PushNotification', 'unregister', [options]); - } + }; - /** - * subscribe to a topic - * @param {String} topic topic to subscribe - * @param {Function} successCallback success callback - * @param {Function} errorCallback error callback - * @return {void} - */ + exec(cleanHandlersAndPassThrough, errorCallback, 'PushNotification', 'unregister', [options]); +}; - }, { - key: 'subscribe', - value: function subscribe(topic, successCallback) { - var errorCallback = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function () {}; +/** + * subscribe to a topic + * @param {String} topic topic to subscribe + * @param {Function} successCallback success callback + * @param {Function} errorCallback error callback + * @return {void} + */ +PushNotification.prototype.subscribe = function(topic, successCallback, errorCallback) { + if (!errorCallback) { errorCallback = function() {}; } - if (typeof errorCallback !== 'function') { - console.log('PushNotification.subscribe failure: ' + 'failure parameter not a function'); + if (typeof errorCallback !== 'function') { + console.log('PushNotification.subscribe failure: failure parameter not a function'); return; - } + } - if (typeof successCallback !== 'function') { - console.log('PushNotification.subscribe failure: ' + 'success callback parameter must be a function'); + if (typeof successCallback !== 'function') { + console.log('PushNotification.subscribe failure: success callback parameter must be a function'); return; - } - - exec(successCallback, errorCallback, 'PushNotification', 'subscribe', [topic]); } - /** - * unsubscribe to a topic - * @param {String} topic topic to unsubscribe - * @param {Function} successCallback success callback - * @param {Function} errorCallback error callback - * @return {void} - */ + exec(successCallback, errorCallback, 'PushNotification', 'subscribe', [topic]); +}; - }, { - key: 'unsubscribe', - value: function unsubscribe(topic, successCallback) { - var errorCallback = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function () {}; +/** + * unsubscribe to a topic + * @param {String} topic topic to unsubscribe + * @param {Function} successCallback success callback + * @param {Function} errorCallback error callback + * @return {void} + */ +PushNotification.prototype.unsubscribe = function(topic, successCallback, errorCallback) { + if (!errorCallback) { errorCallback = function() {}; } - if (typeof errorCallback !== 'function') { + if (typeof errorCallback !== 'function') { console.log('PushNotification.unsubscribe failure: failure parameter not a function'); return; - } + } - if (typeof successCallback !== 'function') { - console.log('PushNotification.unsubscribe failure: ' + 'success callback parameter must be a function'); + if (typeof successCallback !== 'function') { + console.log('PushNotification.unsubscribe failure: success callback parameter must be a function'); return; - } - - exec(successCallback, errorCallback, 'PushNotification', 'unsubscribe', [topic]); } - /** - * Call this to set the application icon badge - */ + exec(successCallback, errorCallback, 'PushNotification', 'unsubscribe', [topic]); +}; - }, { - key: 'setApplicationIconBadgeNumber', - value: function setApplicationIconBadgeNumber(successCallback) { - var errorCallback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {}; - var badge = arguments[2]; +/** + * Call this to set the application icon badge + */ - if (typeof errorCallback !== 'function') { - console.log('PushNotification.setApplicationIconBadgeNumber failure: failure ' + 'parameter not a function'); - return; - } +PushNotification.prototype.setApplicationIconBadgeNumber = function(successCallback, errorCallback, badge) { + if (!errorCallback) { errorCallback = function() {}; } - if (typeof successCallback !== 'function') { - console.log('PushNotification.setApplicationIconBadgeNumber failure: success ' + 'callback parameter must be a function'); + if (typeof errorCallback !== 'function') { + console.log('PushNotification.setApplicationIconBadgeNumber failure: failure parameter not a function'); return; - } + } - exec(successCallback, errorCallback, 'PushNotification', 'setApplicationIconBadgeNumber', [{ badge: badge }]); + if (typeof successCallback !== 'function') { + console.log('PushNotification.setApplicationIconBadgeNumber failure: success callback parameter must be a function'); + return; } - /** - * Get the application icon badge - */ + exec(successCallback, errorCallback, 'PushNotification', 'setApplicationIconBadgeNumber', [{badge: badge}]); +}; + +/** + * Get the application icon badge + */ - }, { - key: 'getApplicationIconBadgeNumber', - value: function getApplicationIconBadgeNumber(successCallback) { - var errorCallback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {}; +PushNotification.prototype.getApplicationIconBadgeNumber = function(successCallback, errorCallback) { + if (!errorCallback) { errorCallback = function() {}; } - if (typeof errorCallback !== 'function') { - console.log('PushNotification.getApplicationIconBadgeNumber failure: failure ' + 'parameter not a function'); + if (typeof errorCallback !== 'function') { + console.log('PushNotification.getApplicationIconBadgeNumber failure: failure parameter not a function'); return; - } + } - if (typeof successCallback !== 'function') { - console.log('PushNotification.getApplicationIconBadgeNumber failure: success ' + 'callback parameter must be a function'); + if (typeof successCallback !== 'function') { + console.log('PushNotification.getApplicationIconBadgeNumber failure: success callback parameter must be a function'); return; - } - - exec(successCallback, errorCallback, 'PushNotification', 'getApplicationIconBadgeNumber', []); } - /** - * Clear all notifications - */ + exec(successCallback, errorCallback, 'PushNotification', 'getApplicationIconBadgeNumber', []); +}; - }, { - key: 'clearAllNotifications', - value: function clearAllNotifications() { - var successCallback = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function () {}; - var errorCallback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {}; +/** + * Get the application icon badge + */ - if (typeof errorCallback !== 'function') { - console.log('PushNotification.clearAllNotifications failure: failure parameter ' + 'not a function'); - return; - } +PushNotification.prototype.clearAllNotifications = function(successCallback, errorCallback) { + if (!successCallback) { successCallback = function() {}; } + if (!errorCallback) { errorCallback = function() {}; } - if (typeof successCallback !== 'function') { - console.log('PushNotification.clearAllNotifications failure: success callback ' + 'parameter must be a function'); + if (typeof errorCallback !== 'function') { + console.log('PushNotification.clearAllNotifications failure: failure parameter not a function'); return; - } + } - exec(successCallback, errorCallback, 'PushNotification', 'clearAllNotifications', []); + if (typeof successCallback !== 'function') { + console.log('PushNotification.clearAllNotifications failure: success callback parameter must be a function'); + return; } - /** - * Listen for an event. - * - * The following events are supported: - * - * - registration - * - notification - * - error - * - * @param {String} eventName to subscribe to. - * @param {Function} callback triggered on the event. - */ - }, { - key: 'on', - value: function on(eventName, callback) { - if (!this.handlers.hasOwnProperty(eventName)) { - this.handlers[eventName] = []; - } - this.handlers[eventName].push(callback); + exec(successCallback, errorCallback, 'PushNotification', 'clearAllNotifications', []); +}; + +/** + * Listen for an event. + * + * Any event is supported, but the following are built-in: + * + * - registration + * - notification + * - error + * + * @param {String} eventName to subscribe to. + * @param {Function} callback triggered on the event. + */ + +PushNotification.prototype.on = function(eventName, callback) { + if (!this._handlers.hasOwnProperty(eventName)) { + this._handlers[eventName] = []; } + this._handlers[eventName].push(callback); +}; - /** - * Remove event listener. - * - * @param {String} eventName to match subscription. - * @param {Function} handle function associated with event. - */ +/** + * Remove event listener. + * + * @param {String} eventName to match subscription. + * @param {Function} handle function associated with event. + */ - }, { - key: 'off', - value: function off(eventName, handle) { - if (this.handlers.hasOwnProperty(eventName)) { - var handleIndex = this.handlers[eventName].indexOf(handle); +PushNotification.prototype.off = function (eventName, handle) { + if (this._handlers.hasOwnProperty(eventName)) { + var handleIndex = this._handlers[eventName].indexOf(handle); if (handleIndex >= 0) { - this.handlers[eventName].splice(handleIndex, 1); + this._handlers[eventName].splice(handleIndex, 1); } - } } +}; - /** - * Emit an event. - * - * This is intended for internal use only. - * - * @param {String} eventName is the event to trigger. - * @param {*} all arguments are passed to the event listeners. - * - * @return {Boolean} is true when the event is triggered otherwise false. - */ - - }, { - key: 'emit', - value: function emit() { - for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { - args[_key2] = arguments[_key2]; - } +/** + * Emit an event. + * + * This is intended for internal use only. + * + * @param {String} eventName is the event to trigger. + * @param {*} all arguments are passed to the event listeners. + * + * @return {Boolean} is true when the event is triggered otherwise false. + */ - var eventName = args.shift(); +PushNotification.prototype.emit = function() { + var args = Array.prototype.slice.call(arguments); + var eventName = args.shift(); - if (!this.handlers.hasOwnProperty(eventName)) { + if (!this._handlers.hasOwnProperty(eventName)) { return false; - } + } - for (var i = 0, length = this.handlers[eventName].length; i < length; i++) { - var callback = this.handlers[eventName][i]; + for (var i = 0, length = this._handlers[eventName].length; i < length; i++) { + var callback = this._handlers[eventName][i]; if (typeof callback === 'function') { - callback.apply(undefined, args); + callback.apply(undefined,args); } else { - console.log('event handler: ' + eventName + ' must be a function'); + console.log('event handler: ' + eventName + ' must be a function'); } - } - - return true; } - }, { - key: 'finish', - value: function finish() { - var successCallback = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function () {}; - var errorCallback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {}; - var id = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'handler'; - - if (typeof successCallback !== 'function') { + + return true; +}; + +PushNotification.prototype.finish = function(successCallback, errorCallback, id) { + if (!successCallback) { successCallback = function() {}; } + if (!errorCallback) { errorCallback = function() {}; } + if (!id) { id = 'handler'; } + + if (typeof successCallback !== 'function') { console.log('finish failure: success callback parameter must be a function'); return; - } + } - if (typeof errorCallback !== 'function') { + if (typeof errorCallback !== 'function') { console.log('finish failure: failure parameter not a function'); return; - } - - exec(successCallback, errorCallback, 'PushNotification', 'finish', [id]); } - }]); - return PushNotification; -}(); + exec(successCallback, errorCallback, 'PushNotification', 'finish', [id]); +}; /*! * Push Notification Plugin. */ module.exports = { - /** - * Register for Push Notifications. - * - * This method will instantiate a new copy of the PushNotification object - * and start the registration process. - * - * @param {Object} options - * @return {PushNotification} instance - */ - - init: function init(options) { - return new PushNotification(options); - }, - - hasPermission: function hasPermission(successCallback, errorCallback) { - exec(successCallback, errorCallback, 'PushNotification', 'hasPermission', []); - }, - - /** - * PushNotification Object. - * - * Expose the PushNotification object for direct use - * and testing. Typically, you should use the - * .init helper method. - */ - PushNotification: PushNotification + /** + * Register for Push Notifications. + * + * This method will instantiate a new copy of the PushNotification object + * and start the registration process. + * + * @param {Object} options + * @return {PushNotification} instance + */ + + init: function(options) { + return new PushNotification(options); + }, + + hasPermission: function(successCallback, errorCallback) { + exec(successCallback, errorCallback, 'PushNotification', 'hasPermission', []); + }, + + /** + * PushNotification Object. + * + * Expose the PushNotification object for direct use + * and testing. Typically, you should use the + * .init helper method. + */ + + PushNotification: PushNotification }; + }); diff --git a/StoneIsland/platforms/android/build.gradle b/StoneIsland/platforms/android/build.gradle index dde2c8c1..b9163fbd 100644 --- a/StoneIsland/platforms/android/build.gradle +++ b/StoneIsland/platforms/android/build.gradle @@ -250,9 +250,9 @@ dependencies { // SUB-PROJECT DEPENDENCIES START debugCompile(project(path: "CordovaLib", configuration: "debug")) releaseCompile(project(path: "CordovaLib", configuration: "release")) - compile "com.android.support:support-v13:25.1.0" - compile "me.leolin:ShortcutBadger:1.1.17@aar" - compile "com.google.firebase:firebase-messaging:11.0.1" + compile "com.android.support:support-v13:23+" + compile "com.google.android.gms:play-services-gcm:9.8+" + compile "me.leolin:ShortcutBadger:1.1.11@aar" // SUB-PROJECT DEPENDENCIES END } diff --git a/StoneIsland/platforms/android/phonegap-plugin-push/stoneisland-push.gradle b/StoneIsland/platforms/android/phonegap-plugin-push/stoneisland-push.gradle index 1506191b..11e735ae 100644 --- a/StoneIsland/platforms/android/phonegap-plugin-push/stoneisland-push.gradle +++ b/StoneIsland/platforms/android/phonegap-plugin-push/stoneisland-push.gradle @@ -16,24 +16,6 @@ android { } defaultConfig { - multiDexEnabled true applicationId = doExtractStringFromManifest("package") } } - -buildscript { - repositories { - jcenter() - mavenLocal() - } - dependencies { - classpath 'com.android.tools.build:gradle:+' - classpath 'com.google.gms:google-services:3.0.0' - } -} - -// apply plugin: 'com.google.gms.google-services' -// class must be used instead of id(string) to be able to apply plugin from non-root gradle file -ext.postBuildExtras = { - apply plugin: com.google.gms.googleservices.GoogleServicesPlugin -} diff --git a/StoneIsland/platforms/android/platform_www/cordova_plugins.js b/StoneIsland/platforms/android/platform_www/cordova_plugins.js index 1b6d56ac..8f70abd6 100755 --- a/StoneIsland/platforms/android/platform_www/cordova_plugins.js +++ b/StoneIsland/platforms/android/platform_www/cordova_plugins.js @@ -66,14 +66,6 @@ module.exports = [ "navigator.notification" ] }, - { - "file": "plugins/cordova-plugin-splashscreen/www/splashscreen.js", - "id": "cordova-plugin-splashscreen.SplashScreen", - "pluginId": "cordova-plugin-splashscreen", - "clobbers": [ - "navigator.splashscreen" - ] - }, { "file": "plugins/cordova-plugin-geolocation/www/android/geolocation.js", "id": "cordova-plugin-geolocation.geolocation", @@ -105,6 +97,14 @@ module.exports = [ "window.StatusBar" ] }, + { + "id": "cordova-plugin-splashscreen.SplashScreen", + "file": "plugins/cordova-plugin-splashscreen/www/splashscreen.js", + "pluginId": "cordova-plugin-splashscreen", + "clobbers": [ + "navigator.splashscreen" + ] + }, { "id": "phonegap-plugin-push.PushNotification", "file": "plugins/phonegap-plugin-push/www/push.js", @@ -121,18 +121,16 @@ module.exports.metadata = "cordova-plugin-x-socialsharing": "5.1.3", "cordova-plugin-customurlscheme": "4.2.0", "cordova-plugin-whitelist": "1.3.0", - "cordova-plugin-console": "1.0.4", "cordova-plugin-device": "1.1.3", "cordova-plugin-network-information": "1.3.0", "cordova-plugin-dialogs": "1.3.0", - "cordova-plugin-splashscreen": "4.0.0", "cordova-plugin-compat": "1.1.0", "cordova-plugin-geolocation": "2.4.0", "ionic-plugin-keyboard": "2.2.1", "cordova-plugin-statusbar": "2.2.3", "cordova-plugin-app-name": "1.0.4", - "phonegap-plugin-push": "2.0.0", - "cordova-plugin-wkwebview-engine": "1.1.3" + "cordova-plugin-splashscreen": "4.0.3", + "phonegap-plugin-push": "1.9.2" }; // BOTTOM OF METADATA }); \ No newline at end of file diff --git a/StoneIsland/platforms/android/platform_www/plugins/cordova-plugin-splashscreen/www/splashscreen.js b/StoneIsland/platforms/android/platform_www/plugins/cordova-plugin-splashscreen/www/splashscreen.js index 0e6a10af..5beaa5fd 100644 --- a/StoneIsland/platforms/android/platform_www/plugins/cordova-plugin-splashscreen/www/splashscreen.js +++ b/StoneIsland/platforms/android/platform_www/plugins/cordova-plugin-splashscreen/www/splashscreen.js @@ -1,4 +1,5 @@ -cordova.define("cordova-plugin-splashscreen.SplashScreen", function(require, exports, module) { /* +cordova.define("cordova-plugin-splashscreen.SplashScreen", function(require, exports, module) { +/* * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file diff --git a/StoneIsland/platforms/android/platform_www/plugins/phonegap-plugin-push/www/push.js b/StoneIsland/platforms/android/platform_www/plugins/phonegap-plugin-push/www/push.js index 7234d474..a5315486 100644 --- a/StoneIsland/platforms/android/platform_www/plugins/phonegap-plugin-push/www/push.js +++ b/StoneIsland/platforms/android/platform_www/plugins/phonegap-plugin-push/www/push.js @@ -1,16 +1,4 @@ cordova.define("phonegap-plugin-push.PushNotification", function(require, exports, module) { -/** -* This file has been generated by Babel. -* -* DO NOT EDIT IT DIRECTLY -* -* Edit the JS source file src/js/push.js -**/'use strict'; - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - /* global cordova:false */ /* globals window */ @@ -20,358 +8,322 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons var exec = cordova.require('cordova/exec'); -var PushNotification = function () { - /** - * PushNotification constructor. - * - * @param {Object} options to initiate Push Notifications. - * @return {PushNotification} instance that can be monitored and cancelled. - */ - function PushNotification(options) { - var _this = this; - - _classCallCheck(this, PushNotification); - - this.handlers = { - registration: [], - notification: [], - error: [] +/** + * PushNotification constructor. + * + * @param {Object} options to initiate Push Notifications. + * @return {PushNotification} instance that can be monitored and cancelled. + */ + +var PushNotification = function(options) { + this._handlers = { + 'registration': [], + 'notification': [], + 'error': [] }; // require options parameter if (typeof options === 'undefined') { - throw new Error('The options argument is required.'); + throw new Error('The options argument is required.'); } // store the options to this object instance this.options = options; // triggered on registration and notification - var success = function success(result) { - if (result && typeof result.registrationId !== 'undefined') { - _this.emit('registration', result); - } else if (result && result.additionalData && typeof result.additionalData.actionCallback !== 'undefined') { - var executeFuctionOrEmitEventByName = function executeFuctionOrEmitEventByName(functionName, context) { - for (var _len = arguments.length, args = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) { - args[_key - 2] = arguments[_key]; - } - - var namespaces = functionName.split('.'); - var func = namespaces.pop(); - for (var i = 0; i < namespaces.length; i++) { - context = context[namespaces[i]]; - } - - if (typeof context[func] === 'function') { - context[func].call(context, args); - } else { - _this.emit(functionName, args); - } - }; - - executeFuctionOrEmitEventByName(result.additionalData.actionCallback, window, result); - } else if (result) { - _this.emit('notification', result); - } + var that = this; + var success = function(result) { + if (result && typeof result.registrationId !== 'undefined') { + that.emit('registration', result); + } else if (result && result.additionalData && typeof result.additionalData.actionCallback !== 'undefined') { + var executeFuctionOrEmitEventByName = function(callbackName, context, arg) { + var namespaces = callbackName.split('.'); + var func = namespaces.pop(); + for (var i = 0; i < namespaces.length; i++) { + context = context[namespaces[i]]; + } + + if (typeof context[func] === 'function') { + context[func].call(context, arg); + } else { + that.emit(callbackName, arg); + } + }; + + executeFuctionOrEmitEventByName(result.additionalData.actionCallback, window, result); + } else if (result) { + that.emit('notification', result); + } }; // triggered on error - var fail = function fail(msg) { - var e = typeof msg === 'string' ? new Error(msg) : msg; - _this.emit('error', e); + var fail = function(msg) { + var e = (typeof msg === 'string') ? new Error(msg) : msg; + that.emit('error', e); }; // wait at least one process tick to allow event subscriptions - setTimeout(function () { - exec(success, fail, 'PushNotification', 'init', [options]); + setTimeout(function() { + exec(success, fail, 'PushNotification', 'init', [options]); }, 10); - } - - /** - * Unregister from push notifications - */ - +}; - _createClass(PushNotification, [{ - key: 'unregister', - value: function unregister(successCallback) { - var _this2 = this; +/** + * Unregister from push notifications + */ - var errorCallback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {}; - var options = arguments[2]; +PushNotification.prototype.unregister = function(successCallback, errorCallback, options) { + if (!errorCallback) { errorCallback = function() {}; } - if (typeof errorCallback !== 'function') { + if (typeof errorCallback !== 'function') { console.log('PushNotification.unregister failure: failure parameter not a function'); return; - } + } - if (typeof successCallback !== 'function') { - console.log('PushNotification.unregister failure: success callback parameter ' + ' must be a function'); + if (typeof successCallback !== 'function') { + console.log('PushNotification.unregister failure: success callback parameter must be a function'); return; - } + } - var cleanHandlersAndPassThrough = function cleanHandlersAndPassThrough() { + var that = this; + var cleanHandlersAndPassThrough = function() { if (!options) { - _this2.handlers = { - registration: [], - notification: [], - error: [] - }; + that._handlers = { + 'registration': [], + 'notification': [], + 'error': [] + }; } successCallback(); - }; - - exec(cleanHandlersAndPassThrough, errorCallback, 'PushNotification', 'unregister', [options]); - } + }; - /** - * subscribe to a topic - * @param {String} topic topic to subscribe - * @param {Function} successCallback success callback - * @param {Function} errorCallback error callback - * @return {void} - */ + exec(cleanHandlersAndPassThrough, errorCallback, 'PushNotification', 'unregister', [options]); +}; - }, { - key: 'subscribe', - value: function subscribe(topic, successCallback) { - var errorCallback = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function () {}; +/** + * subscribe to a topic + * @param {String} topic topic to subscribe + * @param {Function} successCallback success callback + * @param {Function} errorCallback error callback + * @return {void} + */ +PushNotification.prototype.subscribe = function(topic, successCallback, errorCallback) { + if (!errorCallback) { errorCallback = function() {}; } - if (typeof errorCallback !== 'function') { - console.log('PushNotification.subscribe failure: ' + 'failure parameter not a function'); + if (typeof errorCallback !== 'function') { + console.log('PushNotification.subscribe failure: failure parameter not a function'); return; - } + } - if (typeof successCallback !== 'function') { - console.log('PushNotification.subscribe failure: ' + 'success callback parameter must be a function'); + if (typeof successCallback !== 'function') { + console.log('PushNotification.subscribe failure: success callback parameter must be a function'); return; - } - - exec(successCallback, errorCallback, 'PushNotification', 'subscribe', [topic]); } - /** - * unsubscribe to a topic - * @param {String} topic topic to unsubscribe - * @param {Function} successCallback success callback - * @param {Function} errorCallback error callback - * @return {void} - */ + exec(successCallback, errorCallback, 'PushNotification', 'subscribe', [topic]); +}; - }, { - key: 'unsubscribe', - value: function unsubscribe(topic, successCallback) { - var errorCallback = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function () {}; +/** + * unsubscribe to a topic + * @param {String} topic topic to unsubscribe + * @param {Function} successCallback success callback + * @param {Function} errorCallback error callback + * @return {void} + */ +PushNotification.prototype.unsubscribe = function(topic, successCallback, errorCallback) { + if (!errorCallback) { errorCallback = function() {}; } - if (typeof errorCallback !== 'function') { + if (typeof errorCallback !== 'function') { console.log('PushNotification.unsubscribe failure: failure parameter not a function'); return; - } + } - if (typeof successCallback !== 'function') { - console.log('PushNotification.unsubscribe failure: ' + 'success callback parameter must be a function'); + if (typeof successCallback !== 'function') { + console.log('PushNotification.unsubscribe failure: success callback parameter must be a function'); return; - } - - exec(successCallback, errorCallback, 'PushNotification', 'unsubscribe', [topic]); } - /** - * Call this to set the application icon badge - */ + exec(successCallback, errorCallback, 'PushNotification', 'unsubscribe', [topic]); +}; - }, { - key: 'setApplicationIconBadgeNumber', - value: function setApplicationIconBadgeNumber(successCallback) { - var errorCallback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {}; - var badge = arguments[2]; +/** + * Call this to set the application icon badge + */ - if (typeof errorCallback !== 'function') { - console.log('PushNotification.setApplicationIconBadgeNumber failure: failure ' + 'parameter not a function'); - return; - } +PushNotification.prototype.setApplicationIconBadgeNumber = function(successCallback, errorCallback, badge) { + if (!errorCallback) { errorCallback = function() {}; } - if (typeof successCallback !== 'function') { - console.log('PushNotification.setApplicationIconBadgeNumber failure: success ' + 'callback parameter must be a function'); + if (typeof errorCallback !== 'function') { + console.log('PushNotification.setApplicationIconBadgeNumber failure: failure parameter not a function'); return; - } + } - exec(successCallback, errorCallback, 'PushNotification', 'setApplicationIconBadgeNumber', [{ badge: badge }]); + if (typeof successCallback !== 'function') { + console.log('PushNotification.setApplicationIconBadgeNumber failure: success callback parameter must be a function'); + return; } - /** - * Get the application icon badge - */ + exec(successCallback, errorCallback, 'PushNotification', 'setApplicationIconBadgeNumber', [{badge: badge}]); +}; + +/** + * Get the application icon badge + */ - }, { - key: 'getApplicationIconBadgeNumber', - value: function getApplicationIconBadgeNumber(successCallback) { - var errorCallback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {}; +PushNotification.prototype.getApplicationIconBadgeNumber = function(successCallback, errorCallback) { + if (!errorCallback) { errorCallback = function() {}; } - if (typeof errorCallback !== 'function') { - console.log('PushNotification.getApplicationIconBadgeNumber failure: failure ' + 'parameter not a function'); + if (typeof errorCallback !== 'function') { + console.log('PushNotification.getApplicationIconBadgeNumber failure: failure parameter not a function'); return; - } + } - if (typeof successCallback !== 'function') { - console.log('PushNotification.getApplicationIconBadgeNumber failure: success ' + 'callback parameter must be a function'); + if (typeof successCallback !== 'function') { + console.log('PushNotification.getApplicationIconBadgeNumber failure: success callback parameter must be a function'); return; - } - - exec(successCallback, errorCallback, 'PushNotification', 'getApplicationIconBadgeNumber', []); } - /** - * Clear all notifications - */ + exec(successCallback, errorCallback, 'PushNotification', 'getApplicationIconBadgeNumber', []); +}; - }, { - key: 'clearAllNotifications', - value: function clearAllNotifications() { - var successCallback = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function () {}; - var errorCallback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {}; +/** + * Get the application icon badge + */ - if (typeof errorCallback !== 'function') { - console.log('PushNotification.clearAllNotifications failure: failure parameter ' + 'not a function'); - return; - } +PushNotification.prototype.clearAllNotifications = function(successCallback, errorCallback) { + if (!successCallback) { successCallback = function() {}; } + if (!errorCallback) { errorCallback = function() {}; } - if (typeof successCallback !== 'function') { - console.log('PushNotification.clearAllNotifications failure: success callback ' + 'parameter must be a function'); + if (typeof errorCallback !== 'function') { + console.log('PushNotification.clearAllNotifications failure: failure parameter not a function'); return; - } + } - exec(successCallback, errorCallback, 'PushNotification', 'clearAllNotifications', []); + if (typeof successCallback !== 'function') { + console.log('PushNotification.clearAllNotifications failure: success callback parameter must be a function'); + return; } - /** - * Listen for an event. - * - * The following events are supported: - * - * - registration - * - notification - * - error - * - * @param {String} eventName to subscribe to. - * @param {Function} callback triggered on the event. - */ - }, { - key: 'on', - value: function on(eventName, callback) { - if (!this.handlers.hasOwnProperty(eventName)) { - this.handlers[eventName] = []; - } - this.handlers[eventName].push(callback); + exec(successCallback, errorCallback, 'PushNotification', 'clearAllNotifications', []); +}; + +/** + * Listen for an event. + * + * Any event is supported, but the following are built-in: + * + * - registration + * - notification + * - error + * + * @param {String} eventName to subscribe to. + * @param {Function} callback triggered on the event. + */ + +PushNotification.prototype.on = function(eventName, callback) { + if (!this._handlers.hasOwnProperty(eventName)) { + this._handlers[eventName] = []; } + this._handlers[eventName].push(callback); +}; - /** - * Remove event listener. - * - * @param {String} eventName to match subscription. - * @param {Function} handle function associated with event. - */ +/** + * Remove event listener. + * + * @param {String} eventName to match subscription. + * @param {Function} handle function associated with event. + */ - }, { - key: 'off', - value: function off(eventName, handle) { - if (this.handlers.hasOwnProperty(eventName)) { - var handleIndex = this.handlers[eventName].indexOf(handle); +PushNotification.prototype.off = function (eventName, handle) { + if (this._handlers.hasOwnProperty(eventName)) { + var handleIndex = this._handlers[eventName].indexOf(handle); if (handleIndex >= 0) { - this.handlers[eventName].splice(handleIndex, 1); + this._handlers[eventName].splice(handleIndex, 1); } - } } +}; - /** - * Emit an event. - * - * This is intended for internal use only. - * - * @param {String} eventName is the event to trigger. - * @param {*} all arguments are passed to the event listeners. - * - * @return {Boolean} is true when the event is triggered otherwise false. - */ - - }, { - key: 'emit', - value: function emit() { - for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { - args[_key2] = arguments[_key2]; - } +/** + * Emit an event. + * + * This is intended for internal use only. + * + * @param {String} eventName is the event to trigger. + * @param {*} all arguments are passed to the event listeners. + * + * @return {Boolean} is true when the event is triggered otherwise false. + */ - var eventName = args.shift(); +PushNotification.prototype.emit = function() { + var args = Array.prototype.slice.call(arguments); + var eventName = args.shift(); - if (!this.handlers.hasOwnProperty(eventName)) { + if (!this._handlers.hasOwnProperty(eventName)) { return false; - } + } - for (var i = 0, length = this.handlers[eventName].length; i < length; i++) { - var callback = this.handlers[eventName][i]; + for (var i = 0, length = this._handlers[eventName].length; i < length; i++) { + var callback = this._handlers[eventName][i]; if (typeof callback === 'function') { - callback.apply(undefined, args); + callback.apply(undefined,args); } else { - console.log('event handler: ' + eventName + ' must be a function'); + console.log('event handler: ' + eventName + ' must be a function'); } - } - - return true; } - }, { - key: 'finish', - value: function finish() { - var successCallback = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function () {}; - var errorCallback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {}; - var id = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'handler'; - - if (typeof successCallback !== 'function') { + + return true; +}; + +PushNotification.prototype.finish = function(successCallback, errorCallback, id) { + if (!successCallback) { successCallback = function() {}; } + if (!errorCallback) { errorCallback = function() {}; } + if (!id) { id = 'handler'; } + + if (typeof successCallback !== 'function') { console.log('finish failure: success callback parameter must be a function'); return; - } + } - if (typeof errorCallback !== 'function') { + if (typeof errorCallback !== 'function') { console.log('finish failure: failure parameter not a function'); return; - } - - exec(successCallback, errorCallback, 'PushNotification', 'finish', [id]); } - }]); - return PushNotification; -}(); + exec(successCallback, errorCallback, 'PushNotification', 'finish', [id]); +}; /*! * Push Notification Plugin. */ module.exports = { - /** - * Register for Push Notifications. - * - * This method will instantiate a new copy of the PushNotification object - * and start the registration process. - * - * @param {Object} options - * @return {PushNotification} instance - */ - - init: function init(options) { - return new PushNotification(options); - }, - - hasPermission: function hasPermission(successCallback, errorCallback) { - exec(successCallback, errorCallback, 'PushNotification', 'hasPermission', []); - }, - - /** - * PushNotification Object. - * - * Expose the PushNotification object for direct use - * and testing. Typically, you should use the - * .init helper method. - */ - PushNotification: PushNotification + /** + * Register for Push Notifications. + * + * This method will instantiate a new copy of the PushNotification object + * and start the registration process. + * + * @param {Object} options + * @return {PushNotification} instance + */ + + init: function(options) { + return new PushNotification(options); + }, + + hasPermission: function(successCallback, errorCallback) { + exec(successCallback, errorCallback, 'PushNotification', 'hasPermission', []); + }, + + /** + * PushNotification Object. + * + * Expose the PushNotification object for direct use + * and testing. Typically, you should use the + * .init helper method. + */ + + PushNotification: PushNotification }; + }); diff --git a/StoneIsland/platforms/android/project.properties b/StoneIsland/platforms/android/project.properties index 0a077db0..6936daa2 100755 --- a/StoneIsland/platforms/android/project.properties +++ b/StoneIsland/platforms/android/project.properties @@ -11,8 +11,8 @@ #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt # Project target. target=android-25 -cordova.gradle.include.1=phonegap-plugin-push/stoneisland-push.gradle -cordova.system.library.1=com.android.support:support-v13:25.1.0 -cordova.system.library.2=me.leolin:ShortcutBadger:1.1.17@aar -cordova.system.library.3=com.google.firebase:firebase-messaging:11.0.1 android.library.reference.1=CordovaLib +cordova.gradle.include.1=phonegap-plugin-push/stoneisland-push.gradle +cordova.system.library.1=com.android.support:support-v13:23+ +cordova.system.library.2=com.google.android.gms:play-services-gcm:9.8+ +cordova.system.library.3=me.leolin:ShortcutBadger:1.1.11@aar \ No newline at end of file diff --git a/StoneIsland/platforms/android/res/values/strings.xml b/StoneIsland/platforms/android/res/values/strings.xml index bd922fe9..4a48baa7 100755 --- a/StoneIsland/platforms/android/res/values/strings.xml +++ b/StoneIsland/platforms/android/res/values/strings.xml @@ -3,4 +3,5 @@ Stone Island @string/app_name @string/launcher_name + 85075801930 diff --git a/StoneIsland/platforms/android/res/xml/config.xml b/StoneIsland/platforms/android/res/xml/config.xml index 549366ea..9f4cb684 100644 --- a/StoneIsland/platforms/android/res/xml/config.xml +++ b/StoneIsland/platforms/android/res/xml/config.xml @@ -22,10 +22,6 @@ - - - - @@ -71,6 +67,10 @@ + + + + diff --git a/StoneIsland/platforms/android/src/com/adobe/phonegap/push/BackgroundActionButtonHandler.java b/StoneIsland/platforms/android/src/com/adobe/phonegap/push/BackgroundActionButtonHandler.java index 4456f525..3ccea6cb 100644 --- a/StoneIsland/platforms/android/src/com/adobe/phonegap/push/BackgroundActionButtonHandler.java +++ b/StoneIsland/platforms/android/src/com/adobe/phonegap/push/BackgroundActionButtonHandler.java @@ -9,7 +9,7 @@ import android.util.Log; import android.support.v4.app.RemoteInput; public class BackgroundActionButtonHandler extends BroadcastReceiver implements PushConstants { - private static String LOG_TAG = "Push_BGActionButton"; + private static String LOG_TAG = "PushPlugin_BackgroundActionButtonHandler"; @Override public void onReceive(Context context, Intent intent) { @@ -19,7 +19,7 @@ public class BackgroundActionButtonHandler extends BroadcastReceiver implements int notId = intent.getIntExtra(NOT_ID, 0); Log.d(LOG_TAG, "not id = " + notId); NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); - notificationManager.cancel(FCMService.getAppName(context), notId); + notificationManager.cancel(GCMIntentService.getAppName(context), notId); if (extras != null) { Bundle originalExtras = extras.getBundle(PUSH_BUNDLE); diff --git a/StoneIsland/platforms/android/src/com/adobe/phonegap/push/FCMService.java b/StoneIsland/platforms/android/src/com/adobe/phonegap/push/FCMService.java deleted file mode 100644 index af328fb2..00000000 --- a/StoneIsland/platforms/android/src/com/adobe/phonegap/push/FCMService.java +++ /dev/null @@ -1,891 +0,0 @@ -package com.adobe.phonegap.push; - -import android.annotation.SuppressLint; -import android.app.Notification; -import android.app.NotificationManager; -import android.app.PendingIntent; -import android.content.ContentResolver; -import android.content.Context; -import android.content.Intent; -import android.content.SharedPreferences; -import android.content.res.AssetManager; -import android.content.res.Resources; -import android.graphics.Bitmap; -import android.graphics.BitmapFactory; -import android.graphics.Color; -import android.graphics.PorterDuff; -import android.graphics.PorterDuffXfermode; -import android.graphics.Rect; -import android.graphics.RectF; -import android.graphics.Paint; -import android.graphics.Canvas; -import android.net.Uri; -import android.os.Bundle; -import android.support.v4.app.NotificationCompat; -import android.support.v4.app.NotificationCompat.WearableExtender; -import android.support.v4.app.RemoteInput; -import android.text.Html; -import android.text.Spanned; -import android.util.Log; - -import com.google.firebase.messaging.FirebaseMessagingService; -import com.google.firebase.messaging.RemoteMessage; - -import org.json.JSONArray; -import org.json.JSONException; -import org.json.JSONObject; - -import java.io.IOException; -import java.io.InputStream; -import java.net.HttpURLConnection; -import java.net.URL; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; -import java.util.Random; - -@SuppressLint("NewApi") -public class FCMService extends FirebaseMessagingService implements PushConstants { - - private static final String LOG_TAG = "Push_FCMService"; - private static HashMap> messageMap = new HashMap>(); - - public void setNotification(int notId, String message){ - ArrayList messageList = messageMap.get(notId); - if(messageList == null) { - messageList = new ArrayList(); - messageMap.put(notId, messageList); - } - - if(message.isEmpty()){ - messageList.clear(); - }else{ - messageList.add(message); - } - } - - @Override - public void onMessageReceived(RemoteMessage message){ - - String from = message.getFrom(); - Log.d(LOG_TAG, "onMessage - from: " + from); - - Bundle extras = new Bundle(); - - if (message.getNotification()!=null) { - extras.putString(TITLE,message.getNotification().getTitle()); - extras.putString(MESSAGE,message.getNotification().getBody()); - } - for (Map.Entry entry : message.getData().entrySet()) { - extras.putString(entry.getKey(), entry.getValue()); - } - - if (extras != null && isAvailableSender(from)) { - Context applicationContext = getApplicationContext(); - - SharedPreferences prefs = applicationContext.getSharedPreferences(PushPlugin.COM_ADOBE_PHONEGAP_PUSH, Context.MODE_PRIVATE); - boolean forceShow = prefs.getBoolean(FORCE_SHOW, false); - boolean clearBadge = prefs.getBoolean(CLEAR_BADGE, false); - String messageKey = prefs.getString(MESSAGE_KEY, MESSAGE); - String titleKey = prefs.getString(TITLE_KEY, TITLE); - - extras = normalizeExtras(applicationContext, extras, messageKey, titleKey); - - if (clearBadge) { - PushPlugin.setApplicationIconBadgeNumber(getApplicationContext(), 0); - } - - // if we are in the foreground and forceShow is `false` only send data - if (!forceShow && PushPlugin.isInForeground()) { - Log.d(LOG_TAG, "foreground"); - extras.putBoolean(FOREGROUND, true); - extras.putBoolean(COLDSTART, false); - PushPlugin.sendExtras(extras); - } - // if we are in the foreground and forceShow is `true`, force show the notification if the data has at least a message or title - else if (forceShow && PushPlugin.isInForeground()) { - Log.d(LOG_TAG, "foreground force"); - extras.putBoolean(FOREGROUND, true); - extras.putBoolean(COLDSTART, false); - - showNotificationIfPossible(applicationContext, extras); - } - // if we are not in the foreground always send notification if the data has at least a message or title - else { - Log.d(LOG_TAG, "background"); - extras.putBoolean(FOREGROUND, false); - extras.putBoolean(COLDSTART, PushPlugin.isActive()); - - showNotificationIfPossible(applicationContext, extras); - } - } - } - - /* - * Change a values key in the extras bundle - */ - private void replaceKey(Context context, String oldKey, String newKey, Bundle extras, Bundle newExtras) { - Object value = extras.get(oldKey); - if ( value != null ) { - if (value instanceof String) { - value = localizeKey(context, newKey, (String) value); - - newExtras.putString(newKey, (String) value); - } else if (value instanceof Boolean) { - newExtras.putBoolean(newKey, (Boolean) value); - } else if (value instanceof Number) { - newExtras.putDouble(newKey, ((Number) value).doubleValue()); - } else { - newExtras.putString(newKey, String.valueOf(value)); - } - } - } - - /* - * Normalize localization for key - */ - private String localizeKey(Context context, String key, String value) { - if (key.equals(TITLE) || key.equals(MESSAGE) || key.equals(SUMMARY_TEXT)) { - try { - JSONObject localeObject = new JSONObject(value); - - String localeKey = localeObject.getString(LOC_KEY); - - ArrayList localeFormatData = new ArrayList(); - if (!localeObject.isNull(LOC_DATA)) { - String localeData = localeObject.getString(LOC_DATA); - JSONArray localeDataArray = new JSONArray(localeData); - for (int i = 0 ; i < localeDataArray.length(); i++) { - localeFormatData.add(localeDataArray.getString(i)); - } - } - - String packageName = context.getPackageName(); - Resources resources = context.getResources(); - - int resourceId = resources.getIdentifier(localeKey, "string", packageName); - - if (resourceId != 0) { - return resources.getString(resourceId, localeFormatData.toArray()); - } - else { - Log.d(LOG_TAG, "can't find resource for locale key = " + localeKey); - - return value; - } - } - catch(JSONException e) { - Log.d(LOG_TAG, "no locale found for key = " + key + ", error " + e.getMessage()); - - return value; - } - } - - return value; - } - - /* - * Replace alternate keys with our canonical value - */ - private String normalizeKey(String key, String messageKey, String titleKey) { - if (key.equals(BODY) || key.equals(ALERT) || key.equals(MP_MESSAGE) || key.equals(GCM_NOTIFICATION_BODY) || key.equals(TWILIO_BODY) || key.equals(messageKey)) { - return MESSAGE; - } else if (key.equals(TWILIO_TITLE) || key.equals(SUBJECT) || key.equals(titleKey)) { - return TITLE; - }else if (key.equals(MSGCNT) || key.equals(BADGE)) { - return COUNT; - } else if (key.equals(SOUNDNAME) || key.equals(TWILIO_SOUND)) { - return SOUND; - } else if (key.startsWith(GCM_NOTIFICATION)) { - return key.substring(GCM_NOTIFICATION.length()+1, key.length()); - } else if (key.startsWith(GCM_N)) { - return key.substring(GCM_N.length()+1, key.length()); - } else if (key.startsWith(UA_PREFIX)) { - key = key.substring(UA_PREFIX.length()+1, key.length()); - return key.toLowerCase(); - } else { - return key; - } - } - - /* - * Parse bundle into normalized keys. - */ - private Bundle normalizeExtras(Context context, Bundle extras, String messageKey, String titleKey) { - Log.d(LOG_TAG, "normalize extras"); - Iterator it = extras.keySet().iterator(); - Bundle newExtras = new Bundle(); - - while (it.hasNext()) { - String key = it.next(); - - Log.d(LOG_TAG, "key = " + key); - - // If normalizeKeythe key is "data" or "message" and the value is a json object extract - // This is to support parse.com and other services. Issue #147 and pull #218 - if (key.equals(PARSE_COM_DATA) || key.equals(MESSAGE) || key.equals(messageKey)) { - Object json = extras.get(key); - // Make sure data is json object stringified - if ( json instanceof String && ((String) json).startsWith("{") ) { - Log.d(LOG_TAG, "extracting nested message data from key = " + key); - try { - // If object contains message keys promote each value to the root of the bundle - JSONObject data = new JSONObject((String) json); - if ( data.has(ALERT) || data.has(MESSAGE) || data.has(BODY) || data.has(TITLE) || - data.has(messageKey) || data.has(titleKey) ) { - Iterator jsonIter = data.keys(); - while (jsonIter.hasNext()) { - String jsonKey = jsonIter.next(); - - Log.d(LOG_TAG, "key = data/" + jsonKey); - - String value = data.getString(jsonKey); - jsonKey = normalizeKey(jsonKey, messageKey, titleKey); - value = localizeKey(context, jsonKey, value); - - newExtras.putString(jsonKey, value); - } - } - } catch( JSONException e) { - Log.e(LOG_TAG, "normalizeExtras: JSON exception"); - } - } else { - String newKey = normalizeKey(key, messageKey, titleKey); - Log.d(LOG_TAG, "replace key " + key + " with " + newKey); - replaceKey(context, key, newKey, extras, newExtras); - } - } else if (key.equals(("notification"))) { - Bundle value = extras.getBundle(key); - Iterator iterator = value.keySet().iterator(); - while (iterator.hasNext()) { - String notifkey = iterator.next(); - - Log.d(LOG_TAG, "notifkey = " + notifkey); - String newKey = normalizeKey(notifkey, messageKey, titleKey); - Log.d(LOG_TAG, "replace key " + notifkey + " with " + newKey); - - String valueData = value.getString(notifkey); - valueData = localizeKey(context, newKey, valueData); - - newExtras.putString(newKey, valueData); - } - continue; - // In case we weren't working on the payload data node or the notification node, - // normalize the key. - // This allows to have "message" as the payload data key without colliding - // with the other "message" key (holding the body of the payload) - // See issue #1663 - } else { - String newKey = normalizeKey(key, messageKey, titleKey); - Log.d(LOG_TAG, "replace key " + key + " with " + newKey); - replaceKey(context, key, newKey, extras, newExtras); - } - - } // while - - return newExtras; - } - - private int extractBadgeCount(Bundle extras) { - int count = -1; - String msgcnt = extras.getString(COUNT); - - try { - if (msgcnt != null) { - count = Integer.parseInt(msgcnt); - } - } catch (NumberFormatException e) { - Log.e(LOG_TAG, e.getLocalizedMessage(), e); - } - - return count; - } - - private void showNotificationIfPossible (Context context, Bundle extras) { - - // Send a notification if there is a message or title, otherwise just send data - String message = extras.getString(MESSAGE); - String title = extras.getString(TITLE); - String contentAvailable = extras.getString(CONTENT_AVAILABLE); - String forceStart = extras.getString(FORCE_START); - int badgeCount = extractBadgeCount(extras); - if (badgeCount >= 0) { - Log.d(LOG_TAG, "count =[" + badgeCount + "]"); - PushPlugin.setApplicationIconBadgeNumber(context, badgeCount); - } - - Log.d(LOG_TAG, "message =[" + message + "]"); - Log.d(LOG_TAG, "title =[" + title + "]"); - Log.d(LOG_TAG, "contentAvailable =[" + contentAvailable + "]"); - Log.d(LOG_TAG, "forceStart =[" + forceStart + "]"); - - if ((message != null && message.length() != 0) || - (title != null && title.length() != 0)) { - - Log.d(LOG_TAG, "create notification"); - - if(title == null || title.isEmpty()){ - extras.putString(TITLE, getAppName(this)); - } - - createNotification(context, extras); - } - - if(!PushPlugin.isActive() && "1".equals(forceStart)){ - Log.d(LOG_TAG, "app is not running but we should start it and put in background"); - Intent intent = new Intent(this, PushHandlerActivity.class); - intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - intent.putExtra(PUSH_BUNDLE, extras); - intent.putExtra(START_IN_BACKGROUND, true); - intent.putExtra(FOREGROUND, false); - startActivity(intent); - } else if ("1".equals(contentAvailable)) { - Log.d(LOG_TAG, "app is not running and content available true"); - Log.d(LOG_TAG, "send notification event"); - PushPlugin.sendExtras(extras); - } - } - - public void createNotification(Context context, Bundle extras) { - NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); - String appName = getAppName(this); - String packageName = context.getPackageName(); - Resources resources = context.getResources(); - - int notId = parseInt(NOT_ID, extras); - Intent notificationIntent = new Intent(this, PushHandlerActivity.class); - notificationIntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP); - notificationIntent.putExtra(PUSH_BUNDLE, extras); - notificationIntent.putExtra(NOT_ID, notId); - - int requestCode = new Random().nextInt(); - PendingIntent contentIntent = PendingIntent.getActivity(this, requestCode, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT); - - Intent dismissedNotificationIntent = new Intent(this, PushDismissedHandler.class); - dismissedNotificationIntent.putExtra(PUSH_BUNDLE, extras); - dismissedNotificationIntent.putExtra(NOT_ID, notId); - dismissedNotificationIntent.putExtra(DISMISSED, true); - dismissedNotificationIntent.setAction(PUSH_DISMISSED); - - requestCode = new Random().nextInt(); - PendingIntent deleteIntent = PendingIntent.getBroadcast(this, requestCode, dismissedNotificationIntent, PendingIntent.FLAG_CANCEL_CURRENT); - - NotificationCompat.Builder mBuilder = - new NotificationCompat.Builder(context) - .setWhen(System.currentTimeMillis()) - .setContentTitle(fromHtml(extras.getString(TITLE))) - .setTicker(fromHtml(extras.getString(TITLE))) - .setContentIntent(contentIntent) - .setDeleteIntent(deleteIntent) - .setAutoCancel(true); - - SharedPreferences prefs = context.getSharedPreferences(PushPlugin.COM_ADOBE_PHONEGAP_PUSH, Context.MODE_PRIVATE); - String localIcon = prefs.getString(ICON, null); - String localIconColor = prefs.getString(ICON_COLOR, null); - boolean soundOption = prefs.getBoolean(SOUND, true); - boolean vibrateOption = prefs.getBoolean(VIBRATE, true); - Log.d(LOG_TAG, "stored icon=" + localIcon); - Log.d(LOG_TAG, "stored iconColor=" + localIconColor); - Log.d(LOG_TAG, "stored sound=" + soundOption); - Log.d(LOG_TAG, "stored vibrate=" + vibrateOption); - - /* - * Notification Vibration - */ - - setNotificationVibration(extras, vibrateOption, mBuilder); - - /* - * Notification Icon Color - * - * Sets the small-icon background color of the notification. - * To use, add the `iconColor` key to plugin android options - * - */ - setNotificationIconColor(extras.getString("color"), mBuilder, localIconColor); - - /* - * Notification Icon - * - * Sets the small-icon of the notification. - * - * - checks the plugin options for `icon` key - * - if none, uses the application icon - * - * The icon value must be a string that maps to a drawable resource. - * If no resource is found, falls - * - */ - setNotificationSmallIcon(context, extras, packageName, resources, mBuilder, localIcon); - - /* - * Notification Large-Icon - * - * Sets the large-icon of the notification - * - * - checks the gcm data for the `image` key - * - checks to see if remote image, loads it. - * - checks to see if assets image, Loads It. - * - checks to see if resource image, LOADS IT! - * - if none, we don't set the large icon - * - */ - setNotificationLargeIcon(extras, packageName, resources, mBuilder); - - /* - * Notification Sound - */ - if (soundOption) { - setNotificationSound(context, extras, mBuilder); - } - - /* - * LED Notification - */ - setNotificationLedColor(extras, mBuilder); - - /* - * Priority Notification - */ - setNotificationPriority(extras, mBuilder); - - /* - * Notification message - */ - setNotificationMessage(notId, extras, mBuilder); - - /* - * Notification count - */ - setNotificationCount(context, extras, mBuilder); - - /* - * Notification count - */ - setVisibility(context, extras, mBuilder); - - /* - * Notification add actions - */ - createActions(extras, mBuilder, resources, packageName, notId); - - mNotificationManager.notify(appName, notId, mBuilder.build()); - } - - private void updateIntent(Intent intent, String callback, Bundle extras, boolean foreground, int notId) { - intent.putExtra(CALLBACK, callback); - intent.putExtra(PUSH_BUNDLE, extras); - intent.putExtra(FOREGROUND, foreground); - intent.putExtra(NOT_ID, notId); - } - - private void createActions(Bundle extras, NotificationCompat.Builder mBuilder, Resources resources, String packageName, int notId) { - Log.d(LOG_TAG, "create actions: with in-line"); - String actions = extras.getString(ACTIONS); - if (actions != null) { - try { - JSONArray actionsArray = new JSONArray(actions); - ArrayList wActions = new ArrayList(); - for (int i=0; i < actionsArray.length(); i++) { - int min = 1; - int max = 2000000000; - Random random = new Random(); - int uniquePendingIntentRequestCode = random.nextInt((max - min) + 1) + min; - Log.d(LOG_TAG, "adding action"); - JSONObject action = actionsArray.getJSONObject(i); - Log.d(LOG_TAG, "adding callback = " + action.getString(CALLBACK)); - boolean foreground = action.optBoolean(FOREGROUND, true); - boolean inline = action.optBoolean("inline", false); - Intent intent = null; - PendingIntent pIntent = null; - if (inline) { - Log.d(LOG_TAG, "Version: " + android.os.Build.VERSION.SDK_INT + " = " + android.os.Build.VERSION_CODES.M); - if (android.os.Build.VERSION.SDK_INT <= android.os.Build.VERSION_CODES.M) { - Log.d(LOG_TAG, "push activity"); - intent = new Intent(this, PushHandlerActivity.class); - } else { - Log.d(LOG_TAG, "push receiver"); - intent = new Intent(this, BackgroundActionButtonHandler.class); - } - - updateIntent(intent, action.getString(CALLBACK), extras, foreground, notId); - - if (android.os.Build.VERSION.SDK_INT <= android.os.Build.VERSION_CODES.M) { - Log.d(LOG_TAG, "push activity for notId " + notId); - pIntent = PendingIntent.getActivity(this, uniquePendingIntentRequestCode, intent, PendingIntent.FLAG_ONE_SHOT); - } else { - Log.d(LOG_TAG, "push receiver for notId " + notId); - pIntent = PendingIntent.getBroadcast(this, uniquePendingIntentRequestCode, intent, PendingIntent.FLAG_ONE_SHOT); - } - } else if (foreground) { - intent = new Intent(this, PushHandlerActivity.class); - updateIntent(intent, action.getString(CALLBACK), extras, foreground, notId); - pIntent = PendingIntent.getActivity(this, uniquePendingIntentRequestCode, intent, PendingIntent.FLAG_UPDATE_CURRENT); - } else { - intent = new Intent(this, BackgroundActionButtonHandler.class); - updateIntent(intent, action.getString(CALLBACK), extras, foreground, notId); - pIntent = PendingIntent.getBroadcast(this, uniquePendingIntentRequestCode, intent, PendingIntent.FLAG_UPDATE_CURRENT); - } - - NotificationCompat.Action.Builder actionBuilder = - new NotificationCompat.Action.Builder(resources.getIdentifier(action.optString(ICON, ""), DRAWABLE, packageName), - action.getString(TITLE), pIntent); - - RemoteInput remoteInput = null; - if (inline) { - Log.d(LOG_TAG, "create remote input"); - String replyLabel = "Enter your reply here"; - remoteInput = - new RemoteInput.Builder(INLINE_REPLY) - .setLabel(replyLabel) - .build(); - actionBuilder.addRemoteInput(remoteInput); - } - - NotificationCompat.Action wAction = actionBuilder.build(); - wActions.add(actionBuilder.build()); - - if (inline) { - mBuilder.addAction(wAction); - } else { - mBuilder.addAction(resources.getIdentifier(action.optString(ICON, ""), DRAWABLE, packageName), - action.getString(TITLE), pIntent); - } - wAction = null; - pIntent = null; - } - mBuilder.extend(new WearableExtender().addActions(wActions)); - wActions.clear(); - } catch(JSONException e) { - // nope - } - } - } - - private void setNotificationCount(Context context, Bundle extras, NotificationCompat.Builder mBuilder) { - int count = extractBadgeCount(extras); - if (count >= 0) { - Log.d(LOG_TAG, "count =[" + count + "]"); - mBuilder.setNumber(count); - } - } - - - private void setVisibility(Context context, Bundle extras, NotificationCompat.Builder mBuilder) { - String visibilityStr = extras.getString(VISIBILITY); - if (visibilityStr != null) { - try { - Integer visibility = Integer.parseInt(visibilityStr); - if (visibility >= NotificationCompat.VISIBILITY_SECRET && visibility <= NotificationCompat.VISIBILITY_PUBLIC) { - mBuilder.setVisibility(visibility); - } else { - Log.e(LOG_TAG, "Visibility parameter must be between -1 and 1"); - } - } catch (NumberFormatException e) { - e.printStackTrace(); - } - } - } - - private void setNotificationVibration(Bundle extras, Boolean vibrateOption, NotificationCompat.Builder mBuilder) { - String vibrationPattern = extras.getString(VIBRATION_PATTERN); - if (vibrationPattern != null) { - String[] items = vibrationPattern.replaceAll("\\[", "").replaceAll("\\]", "").split(","); - long[] results = new long[items.length]; - for (int i = 0; i < items.length; i++) { - try { - results[i] = Long.parseLong(items[i].trim()); - } catch (NumberFormatException nfe) {} - } - mBuilder.setVibrate(results); - } else { - if (vibrateOption) { - mBuilder.setDefaults(Notification.DEFAULT_VIBRATE); - } - } - } - - private void setNotificationMessage(int notId, Bundle extras, NotificationCompat.Builder mBuilder) { - String message = extras.getString(MESSAGE); - - String style = extras.getString(STYLE, STYLE_TEXT); - if(STYLE_INBOX.equals(style)) { - setNotification(notId, message); - - mBuilder.setContentText(fromHtml(message)); - - ArrayList messageList = messageMap.get(notId); - Integer sizeList = messageList.size(); - if (sizeList > 1) { - String sizeListMessage = sizeList.toString(); - String stacking = sizeList + " more"; - if (extras.getString(SUMMARY_TEXT) != null) { - stacking = extras.getString(SUMMARY_TEXT); - stacking = stacking.replace("%n%", sizeListMessage); - } - NotificationCompat.InboxStyle notificationInbox = new NotificationCompat.InboxStyle() - .setBigContentTitle(fromHtml(extras.getString(TITLE))) - .setSummaryText(fromHtml(stacking)); - - for (int i = messageList.size() - 1; i >= 0; i--) { - notificationInbox.addLine(fromHtml(messageList.get(i))); - } - - mBuilder.setStyle(notificationInbox); - } else { - NotificationCompat.BigTextStyle bigText = new NotificationCompat.BigTextStyle(); - if (message != null) { - bigText.bigText(fromHtml(message)); - bigText.setBigContentTitle(fromHtml(extras.getString(TITLE))); - mBuilder.setStyle(bigText); - } - } - } else if (STYLE_PICTURE.equals(style)) { - setNotification(notId, ""); - - NotificationCompat.BigPictureStyle bigPicture = new NotificationCompat.BigPictureStyle(); - bigPicture.bigPicture(getBitmapFromURL(extras.getString(PICTURE))); - bigPicture.setBigContentTitle(fromHtml(extras.getString(TITLE))); - bigPicture.setSummaryText(fromHtml(extras.getString(SUMMARY_TEXT))); - - mBuilder.setContentTitle(fromHtml(extras.getString(TITLE))); - mBuilder.setContentText(fromHtml(message)); - - mBuilder.setStyle(bigPicture); - } else { - setNotification(notId, ""); - - NotificationCompat.BigTextStyle bigText = new NotificationCompat.BigTextStyle(); - - if (message != null) { - mBuilder.setContentText(fromHtml(message)); - - bigText.bigText(fromHtml(message)); - bigText.setBigContentTitle(fromHtml(extras.getString(TITLE))); - - String summaryText = extras.getString(SUMMARY_TEXT); - if (summaryText != null) { - bigText.setSummaryText(fromHtml(summaryText)); - } - - mBuilder.setStyle(bigText); - } - /* - else { - mBuilder.setContentText(""); - } - */ - } - } - - private void setNotificationSound(Context context, Bundle extras, NotificationCompat.Builder mBuilder) { - String soundname = extras.getString(SOUNDNAME); - if (soundname == null) { - soundname = extras.getString(SOUND); - } - if (SOUND_RINGTONE.equals(soundname)) { - mBuilder.setSound(android.provider.Settings.System.DEFAULT_RINGTONE_URI); - } else if (soundname != null && !soundname.contentEquals(SOUND_DEFAULT)) { - Uri sound = Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE - + "://" + context.getPackageName() + "/raw/" + soundname); - Log.d(LOG_TAG, sound.toString()); - mBuilder.setSound(sound); - } else { - mBuilder.setSound(android.provider.Settings.System.DEFAULT_NOTIFICATION_URI); - } - } - - private void setNotificationLedColor(Bundle extras, NotificationCompat.Builder mBuilder) { - String ledColor = extras.getString(LED_COLOR); - if (ledColor != null) { - // Converts parse Int Array from ledColor - String[] items = ledColor.replaceAll("\\[", "").replaceAll("\\]", "").split(","); - int[] results = new int[items.length]; - for (int i = 0; i < items.length; i++) { - try { - results[i] = Integer.parseInt(items[i].trim()); - } catch (NumberFormatException nfe) {} - } - if (results.length == 4) { - mBuilder.setLights(Color.argb(results[0], results[1], results[2], results[3]), 500, 500); - } else { - Log.e(LOG_TAG, "ledColor parameter must be an array of length == 4 (ARGB)"); - } - } - } - - private void setNotificationPriority(Bundle extras, NotificationCompat.Builder mBuilder) { - String priorityStr = extras.getString(PRIORITY); - if (priorityStr != null) { - try { - Integer priority = Integer.parseInt(priorityStr); - if (priority >= NotificationCompat.PRIORITY_MIN && priority <= NotificationCompat.PRIORITY_MAX) { - mBuilder.setPriority(priority); - } else { - Log.e(LOG_TAG, "Priority parameter must be between -2 and 2"); - } - } catch (NumberFormatException e) { - e.printStackTrace(); - } - } - } - - private Bitmap getCircleBitmap(Bitmap bitmap) { - if (bitmap == null) { - return null; - } - - final Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.ARGB_8888); - final Canvas canvas = new Canvas(output); - final int color = Color.RED; - final Paint paint = new Paint(); - final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight()); - final RectF rectF = new RectF(rect); - - paint.setAntiAlias(true); - canvas.drawARGB(0, 0, 0, 0); - paint.setColor(color); - float cx = bitmap.getWidth()/2; - float cy = bitmap.getHeight()/2; - float radius = cx < cy ? cx : cy; - canvas.drawCircle(cx,cy,radius,paint); - - paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN)); - canvas.drawBitmap(bitmap, rect, rect, paint); - - bitmap.recycle(); - - return output; - } - - private void setNotificationLargeIcon(Bundle extras, String packageName, Resources resources, NotificationCompat.Builder mBuilder) { - String gcmLargeIcon = extras.getString(IMAGE); // from gcm - String imageType = extras.getString(IMAGE_TYPE, IMAGE_TYPE_SQUARE); - if (gcmLargeIcon != null && !"".equals(gcmLargeIcon)) { - if (gcmLargeIcon.startsWith("http://") || gcmLargeIcon.startsWith("https://")) { - Bitmap bitmap = getBitmapFromURL(gcmLargeIcon); - if (IMAGE_TYPE_SQUARE.equalsIgnoreCase(imageType)) { - mBuilder.setLargeIcon(bitmap); - } else { - Bitmap bm = getCircleBitmap(bitmap); - mBuilder.setLargeIcon(bm); - } - Log.d(LOG_TAG, "using remote large-icon from gcm"); - } else { - AssetManager assetManager = getAssets(); - InputStream istr; - try { - istr = assetManager.open(gcmLargeIcon); - Bitmap bitmap = BitmapFactory.decodeStream(istr); - if (IMAGE_TYPE_SQUARE.equalsIgnoreCase(imageType)) { - mBuilder.setLargeIcon(bitmap); - } else { - Bitmap bm = getCircleBitmap(bitmap); - mBuilder.setLargeIcon(bm); - } - Log.d(LOG_TAG, "using assets large-icon from gcm"); - } catch (IOException e) { - int largeIconId = 0; - largeIconId = resources.getIdentifier(gcmLargeIcon, DRAWABLE, packageName); - if (largeIconId != 0) { - Bitmap largeIconBitmap = BitmapFactory.decodeResource(resources, largeIconId); - mBuilder.setLargeIcon(largeIconBitmap); - Log.d(LOG_TAG, "using resources large-icon from gcm"); - } else { - Log.d(LOG_TAG, "Not setting large icon"); - } - } - } - } - } - - private void setNotificationSmallIcon(Context context, Bundle extras, String packageName, Resources resources, NotificationCompat.Builder mBuilder, String localIcon) { - int iconId = 0; - String icon = extras.getString(ICON); - if (icon != null && !"".equals(icon)) { - iconId = resources.getIdentifier(icon, DRAWABLE, packageName); - Log.d(LOG_TAG, "using icon from plugin options"); - } - else if (localIcon != null && !"".equals(localIcon)) { - iconId = resources.getIdentifier(localIcon, DRAWABLE, packageName); - Log.d(LOG_TAG, "using icon from plugin options"); - } - if (iconId == 0) { - Log.d(LOG_TAG, "no icon resource found - using application icon"); - iconId = context.getApplicationInfo().icon; - } - mBuilder.setSmallIcon(iconId); - } - - private void setNotificationIconColor(String color, NotificationCompat.Builder mBuilder, String localIconColor) { - int iconColor = 0; - if (color != null && !"".equals(color)) { - try { - iconColor = Color.parseColor(color); - } catch (IllegalArgumentException e) { - Log.e(LOG_TAG, "couldn't parse color from android options"); - } - } - else if (localIconColor != null && !"".equals(localIconColor)) { - try { - iconColor = Color.parseColor(localIconColor); - } catch (IllegalArgumentException e) { - Log.e(LOG_TAG, "couldn't parse color from android options"); - } - } - if (iconColor != 0) { - mBuilder.setColor(iconColor); - } - } - - public Bitmap getBitmapFromURL(String strURL) { - try { - URL url = new URL(strURL); - HttpURLConnection connection = (HttpURLConnection) url.openConnection(); - connection.setConnectTimeout(15000); - connection.setDoInput(true); - connection.connect(); - InputStream input = connection.getInputStream(); - return BitmapFactory.decodeStream(input); - } catch (IOException e) { - e.printStackTrace(); - return null; - } - } - - public static String getAppName(Context context) { - CharSequence appName = context.getPackageManager().getApplicationLabel(context.getApplicationInfo()); - return (String)appName; - } - - private int parseInt(String value, Bundle extras) { - int retval = 0; - - try { - retval = Integer.parseInt(extras.getString(value)); - } - catch(NumberFormatException e) { - Log.e(LOG_TAG, "Number format exception - Error parsing " + value + ": " + e.getMessage()); - } - catch(Exception e) { - Log.e(LOG_TAG, "Number format exception - Error parsing " + value + ": " + e.getMessage()); - } - - return retval; - } - - private Spanned fromHtml(String source) { - if (source != null) - return Html.fromHtml(source); - else - return null; - } - - private boolean isAvailableSender(String from) { - SharedPreferences sharedPref = getApplicationContext().getSharedPreferences(PushPlugin.COM_ADOBE_PHONEGAP_PUSH, Context.MODE_PRIVATE); - String savedSenderID = sharedPref.getString(SENDER_ID, ""); - - return from.equals(savedSenderID) || from.startsWith("/topics/"); - } -} diff --git a/StoneIsland/platforms/android/src/com/adobe/phonegap/push/GCMIntentService.java b/StoneIsland/platforms/android/src/com/adobe/phonegap/push/GCMIntentService.java new file mode 100644 index 00000000..e1a2b75c --- /dev/null +++ b/StoneIsland/platforms/android/src/com/adobe/phonegap/push/GCMIntentService.java @@ -0,0 +1,802 @@ +package com.adobe.phonegap.push; + +import android.annotation.SuppressLint; +import android.app.Notification; +import android.app.NotificationManager; +import android.app.PendingIntent; +import android.content.ContentResolver; +import android.content.Context; +import android.content.Intent; +import android.content.SharedPreferences; +import android.content.res.AssetManager; +import android.content.res.Resources; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.graphics.Color; +import android.net.Uri; +import android.os.Bundle; +import android.support.v4.app.NotificationCompat; +import android.support.v4.app.NotificationManagerCompat; +import android.support.v4.app.NotificationCompat.WearableExtender; +import android.support.v4.app.RemoteInput; +import android.text.Html; +import android.text.Spanned; +import android.util.Log; + +import com.google.android.gms.gcm.GcmListenerService; + +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +import java.io.IOException; +import java.io.InputStream; +import java.net.HttpURLConnection; +import java.net.URL; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Random; + +@SuppressLint("NewApi") +public class GCMIntentService extends GcmListenerService implements PushConstants { + + private static final String LOG_TAG = "PushPlugin_GCMIntentService"; + private static HashMap> messageMap = new HashMap>(); + + public void setNotification(int notId, String message){ + ArrayList messageList = messageMap.get(notId); + if(messageList == null) { + messageList = new ArrayList(); + messageMap.put(notId, messageList); + } + + if(message.isEmpty()){ + messageList.clear(); + }else{ + messageList.add(message); + } + } + + @Override + public void onMessageReceived(String from, Bundle extras) { + Log.d(LOG_TAG, "onMessage - from: " + from); + + if (extras != null) { + Context applicationContext = getApplicationContext(); + + SharedPreferences prefs = applicationContext.getSharedPreferences(PushPlugin.COM_ADOBE_PHONEGAP_PUSH, Context.MODE_PRIVATE); + boolean forceShow = prefs.getBoolean(FORCE_SHOW, false); + boolean clearBadge = prefs.getBoolean(CLEAR_BADGE, false); + + extras = normalizeExtras(applicationContext, extras); + + if (clearBadge) { + PushPlugin.setApplicationIconBadgeNumber(getApplicationContext(), 0); + } + + // if we are in the foreground and forceShow is `false` only send data + if (!forceShow && PushPlugin.isInForeground()) { + Log.d(LOG_TAG, "foreground"); + extras.putBoolean(FOREGROUND, true); + extras.putBoolean(COLDSTART, false); + PushPlugin.sendExtras(extras); + } + // if we are in the foreground and forceShow is `true`, force show the notification if the data has at least a message or title + else if (forceShow && PushPlugin.isInForeground()) { + Log.d(LOG_TAG, "foreground force"); + extras.putBoolean(FOREGROUND, true); + extras.putBoolean(COLDSTART, false); + + showNotificationIfPossible(applicationContext, extras); + } + // if we are not in the foreground always send notification if the data has at least a message or title + else { + Log.d(LOG_TAG, "background"); + extras.putBoolean(FOREGROUND, false); + extras.putBoolean(COLDSTART, PushPlugin.isActive()); + + showNotificationIfPossible(applicationContext, extras); + } + } + } + + /* + * Change a values key in the extras bundle + */ + private void replaceKey(Context context, String oldKey, String newKey, Bundle extras, Bundle newExtras) { + Object value = extras.get(oldKey); + if ( value != null ) { + if (value instanceof String) { + value = localizeKey(context, newKey, (String) value); + + newExtras.putString(newKey, (String) value); + } else if (value instanceof Boolean) { + newExtras.putBoolean(newKey, (Boolean) value); + } else if (value instanceof Number) { + newExtras.putDouble(newKey, ((Number) value).doubleValue()); + } else { + newExtras.putString(newKey, String.valueOf(value)); + } + } + } + + /* + * Normalize localization for key + */ + private String localizeKey(Context context, String key, String value) { + if (key.equals(TITLE) || key.equals(MESSAGE) || key.equals(SUMMARY_TEXT)) { + try { + JSONObject localeObject = new JSONObject(value); + + String localeKey = localeObject.getString(LOC_KEY); + + ArrayList localeFormatData = new ArrayList(); + if (!localeObject.isNull(LOC_DATA)) { + String localeData = localeObject.getString(LOC_DATA); + JSONArray localeDataArray = new JSONArray(localeData); + for (int i = 0 ; i < localeDataArray.length(); i++) { + localeFormatData.add(localeDataArray.getString(i)); + } + } + + String packageName = context.getPackageName(); + Resources resources = context.getResources(); + + int resourceId = resources.getIdentifier(localeKey, "string", packageName); + + if (resourceId != 0) { + return resources.getString(resourceId, localeFormatData.toArray()); + } + else { + Log.d(LOG_TAG, "can't find resource for locale key = " + localeKey); + + return value; + } + } + catch(JSONException e) { + Log.d(LOG_TAG, "no locale found for key = " + key + ", error " + e.getMessage()); + + return value; + } + } + + return value; + } + + /* + * Replace alternate keys with our canonical value + */ + private String normalizeKey(String key) { + if (key.equals(BODY) || key.equals(ALERT) || key.equals(GCM_NOTIFICATION_BODY) || key.equals(TWILIO_BODY)) { + return MESSAGE; + } else if (key.equals(TWILIO_TITLE)) { + return TITLE; + }else if (key.equals(MSGCNT) || key.equals(BADGE)) { + return COUNT; + } else if (key.equals(SOUNDNAME) || key.equals(TWILIO_SOUND)) { + return SOUND; + } else if (key.startsWith(GCM_NOTIFICATION)) { + return key.substring(GCM_NOTIFICATION.length()+1, key.length()); + } else if (key.startsWith(GCM_N)) { + return key.substring(GCM_N.length()+1, key.length()); + } else if (key.startsWith(UA_PREFIX)) { + key = key.substring(UA_PREFIX.length()+1, key.length()); + return key.toLowerCase(); + } else { + return key; + } + } + + /* + * Parse bundle into normalized keys. + */ + private Bundle normalizeExtras(Context context, Bundle extras) { + Log.d(LOG_TAG, "normalize extras"); + Iterator it = extras.keySet().iterator(); + Bundle newExtras = new Bundle(); + + while (it.hasNext()) { + String key = it.next(); + + Log.d(LOG_TAG, "key = " + key); + + // If normalizeKeythe key is "data" or "message" and the value is a json object extract + // This is to support parse.com and other services. Issue #147 and pull #218 + if (key.equals(PARSE_COM_DATA) || key.equals(MESSAGE)) { + Object json = extras.get(key); + // Make sure data is json object stringified + if ( json instanceof String && ((String) json).startsWith("{") ) { + Log.d(LOG_TAG, "extracting nested message data from key = " + key); + try { + // If object contains message keys promote each value to the root of the bundle + JSONObject data = new JSONObject((String) json); + if ( data.has(ALERT) || data.has(MESSAGE) || data.has(BODY) || data.has(TITLE) ) { + Iterator jsonIter = data.keys(); + while (jsonIter.hasNext()) { + String jsonKey = jsonIter.next(); + + Log.d(LOG_TAG, "key = data/" + jsonKey); + + String value = data.getString(jsonKey); + jsonKey = normalizeKey(jsonKey); + value = localizeKey(context, jsonKey, value); + + newExtras.putString(jsonKey, value); + } + } + } catch( JSONException e) { + Log.e(LOG_TAG, "normalizeExtras: JSON exception"); + } + } + } else if (key.equals(("notification"))) { + Bundle value = extras.getBundle(key); + Iterator iterator = value.keySet().iterator(); + while (iterator.hasNext()) { + String notifkey = iterator.next(); + + Log.d(LOG_TAG, "notifkey = " + notifkey); + String newKey = normalizeKey(notifkey); + Log.d(LOG_TAG, "replace key " + notifkey + " with " + newKey); + + String valueData = value.getString(notifkey); + valueData = localizeKey(context, newKey, valueData); + + newExtras.putString(newKey, valueData); + } + continue; + } + + String newKey = normalizeKey(key); + Log.d(LOG_TAG, "replace key " + key + " with " + newKey); + replaceKey(context, key, newKey, extras, newExtras); + + } // while + + return newExtras; + } + + private int extractBadgeCount(Bundle extras) { + int count = -1; + String msgcnt = extras.getString(COUNT); + + try { + if (msgcnt != null) { + count = Integer.parseInt(msgcnt); + } + } catch (NumberFormatException e) { + Log.e(LOG_TAG, e.getLocalizedMessage(), e); + } + + return count; + } + + private void showNotificationIfPossible (Context context, Bundle extras) { + + // Send a notification if there is a message or title, otherwise just send data + String message = extras.getString(MESSAGE); + String title = extras.getString(TITLE); + String contentAvailable = extras.getString(CONTENT_AVAILABLE); + String forceStart = extras.getString(FORCE_START); + int badgeCount = extractBadgeCount(extras); + if (badgeCount >= 0) { + Log.d(LOG_TAG, "count =[" + badgeCount + "]"); + PushPlugin.setApplicationIconBadgeNumber(context, badgeCount); + } + + Log.d(LOG_TAG, "message =[" + message + "]"); + Log.d(LOG_TAG, "title =[" + title + "]"); + Log.d(LOG_TAG, "contentAvailable =[" + contentAvailable + "]"); + Log.d(LOG_TAG, "forceStart =[" + forceStart + "]"); + + if ((message != null && message.length() != 0) || + (title != null && title.length() != 0)) { + + Log.d(LOG_TAG, "create notification"); + + if(title == null || title.isEmpty()){ + extras.putString(TITLE, getAppName(this)); + } + + createNotification(context, extras); + } + + if(!PushPlugin.isActive() && "1".equals(forceStart)){ + Log.d(LOG_TAG, "app is not running but we should start it and put in background"); + Intent intent = new Intent(this, PushHandlerActivity.class); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + intent.putExtra(PUSH_BUNDLE, extras); + intent.putExtra(START_IN_BACKGROUND, true); + intent.putExtra(FOREGROUND, false); + startActivity(intent); + } else if ("1".equals(contentAvailable)) { + Log.d(LOG_TAG, "app is not running and content available true"); + Log.d(LOG_TAG, "send notification event"); + PushPlugin.sendExtras(extras); + } + } + + public void createNotification(Context context, Bundle extras) { + NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); + String appName = getAppName(this); + String packageName = context.getPackageName(); + Resources resources = context.getResources(); + + int notId = parseInt(NOT_ID, extras); + Intent notificationIntent = new Intent(this, PushHandlerActivity.class); + notificationIntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP); + notificationIntent.putExtra(PUSH_BUNDLE, extras); + notificationIntent.putExtra(NOT_ID, notId); + + int requestCode = new Random().nextInt(); + PendingIntent contentIntent = PendingIntent.getActivity(this, requestCode, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT); + + NotificationCompat.Builder mBuilder = + new NotificationCompat.Builder(context) + .setWhen(System.currentTimeMillis()) + .setContentTitle(fromHtml(extras.getString(TITLE))) + .setTicker(fromHtml(extras.getString(TITLE))) + .setContentIntent(contentIntent) + .setAutoCancel(true); + + SharedPreferences prefs = context.getSharedPreferences(PushPlugin.COM_ADOBE_PHONEGAP_PUSH, Context.MODE_PRIVATE); + String localIcon = prefs.getString(ICON, null); + String localIconColor = prefs.getString(ICON_COLOR, null); + boolean soundOption = prefs.getBoolean(SOUND, true); + boolean vibrateOption = prefs.getBoolean(VIBRATE, true); + Log.d(LOG_TAG, "stored icon=" + localIcon); + Log.d(LOG_TAG, "stored iconColor=" + localIconColor); + Log.d(LOG_TAG, "stored sound=" + soundOption); + Log.d(LOG_TAG, "stored vibrate=" + vibrateOption); + + /* + * Notification Vibration + */ + + setNotificationVibration(extras, vibrateOption, mBuilder); + + /* + * Notification Icon Color + * + * Sets the small-icon background color of the notification. + * To use, add the `iconColor` key to plugin android options + * + */ + setNotificationIconColor(extras.getString("color"), mBuilder, localIconColor); + + /* + * Notification Icon + * + * Sets the small-icon of the notification. + * + * - checks the plugin options for `icon` key + * - if none, uses the application icon + * + * The icon value must be a string that maps to a drawable resource. + * If no resource is found, falls + * + */ + setNotificationSmallIcon(context, extras, packageName, resources, mBuilder, localIcon); + + /* + * Notification Large-Icon + * + * Sets the large-icon of the notification + * + * - checks the gcm data for the `image` key + * - checks to see if remote image, loads it. + * - checks to see if assets image, Loads It. + * - checks to see if resource image, LOADS IT! + * - if none, we don't set the large icon + * + */ + setNotificationLargeIcon(extras, packageName, resources, mBuilder); + + /* + * Notification Sound + */ + if (soundOption) { + setNotificationSound(context, extras, mBuilder); + } + + /* + * LED Notification + */ + setNotificationLedColor(extras, mBuilder); + + /* + * Priority Notification + */ + setNotificationPriority(extras, mBuilder); + + /* + * Notification message + */ + setNotificationMessage(notId, extras, mBuilder); + + /* + * Notification count + */ + setNotificationCount(context, extras, mBuilder); + + /* + * Notification count + */ + setVisibility(context, extras, mBuilder); + + /* + * Notification add actions + */ + createActions(extras, mBuilder, resources, packageName, notId); + + mNotificationManager.notify(appName, notId, mBuilder.build()); + } + + private void updateIntent(Intent intent, String callback, Bundle extras, boolean foreground, int notId) { + intent.putExtra(CALLBACK, callback); + intent.putExtra(PUSH_BUNDLE, extras); + intent.putExtra(FOREGROUND, foreground); + intent.putExtra(NOT_ID, notId); + } + + private void createActions(Bundle extras, NotificationCompat.Builder mBuilder, Resources resources, String packageName, int notId) { + Log.d(LOG_TAG, "create actions: with in-line"); + String actions = extras.getString(ACTIONS); + if (actions != null) { + try { + JSONArray actionsArray = new JSONArray(actions); + ArrayList wActions = new ArrayList(); + for (int i=0; i < actionsArray.length(); i++) { + int min = 1; + int max = 2000000000; + Random random = new Random(); + int uniquePendingIntentRequestCode = random.nextInt((max - min) + 1) + min; + Log.d(LOG_TAG, "adding action"); + JSONObject action = actionsArray.getJSONObject(i); + Log.d(LOG_TAG, "adding callback = " + action.getString(CALLBACK)); + boolean foreground = action.optBoolean(FOREGROUND, true); + boolean inline = action.optBoolean("inline", false); + Intent intent = null; + PendingIntent pIntent = null; + if (inline) { + Log.d(LOG_TAG, "Version: " + android.os.Build.VERSION.SDK_INT + " = " + android.os.Build.VERSION_CODES.M); + if (android.os.Build.VERSION.SDK_INT <= android.os.Build.VERSION_CODES.M) { + Log.d(LOG_TAG, "push activity"); + intent = new Intent(this, PushHandlerActivity.class); + } else { + Log.d(LOG_TAG, "push receiver"); + intent = new Intent(this, BackgroundActionButtonHandler.class); + } + + updateIntent(intent, action.getString(CALLBACK), extras, foreground, notId); + + if (android.os.Build.VERSION.SDK_INT <= android.os.Build.VERSION_CODES.M) { + Log.d(LOG_TAG, "push activity for notId " + notId); + pIntent = PendingIntent.getActivity(this, uniquePendingIntentRequestCode, intent, PendingIntent.FLAG_ONE_SHOT); + } else { + Log.d(LOG_TAG, "push receiver for notId " + notId); + pIntent = PendingIntent.getBroadcast(this, uniquePendingIntentRequestCode, intent, PendingIntent.FLAG_ONE_SHOT); + } + } else if (foreground) { + intent = new Intent(this, PushHandlerActivity.class); + updateIntent(intent, action.getString(CALLBACK), extras, foreground, notId); + pIntent = PendingIntent.getActivity(this, uniquePendingIntentRequestCode, intent, PendingIntent.FLAG_UPDATE_CURRENT); + } else { + intent = new Intent(this, BackgroundActionButtonHandler.class); + updateIntent(intent, action.getString(CALLBACK), extras, foreground, notId); + pIntent = PendingIntent.getBroadcast(this, uniquePendingIntentRequestCode, intent, PendingIntent.FLAG_UPDATE_CURRENT); + } + + NotificationCompat.Action.Builder actionBuilder = + new NotificationCompat.Action.Builder(resources.getIdentifier(action.optString(ICON, ""), DRAWABLE, packageName), + action.getString(TITLE), pIntent); + + RemoteInput remoteInput = null; + if (inline) { + Log.d(LOG_TAG, "create remote input"); + String replyLabel = "Enter your reply here"; + remoteInput = + new RemoteInput.Builder(INLINE_REPLY) + .setLabel(replyLabel) + .build(); + actionBuilder.addRemoteInput(remoteInput); + } + + NotificationCompat.Action wAction = actionBuilder.build(); + wActions.add(actionBuilder.build()); + + if (inline) { + mBuilder.addAction(wAction); + } else { + mBuilder.addAction(resources.getIdentifier(action.optString(ICON, ""), DRAWABLE, packageName), + action.getString(TITLE), pIntent); + } + wAction = null; + pIntent = null; + } + mBuilder.extend(new WearableExtender().addActions(wActions)); + wActions.clear(); + } catch(JSONException e) { + // nope + } + } + } + + private void setNotificationCount(Context context, Bundle extras, NotificationCompat.Builder mBuilder) { + int count = extractBadgeCount(extras); + if (count >= 0) { + Log.d(LOG_TAG, "count =[" + count + "]"); + mBuilder.setNumber(count); + } + } + + + private void setVisibility(Context context, Bundle extras, NotificationCompat.Builder mBuilder) { + String visibilityStr = extras.getString(VISIBILITY); + if (visibilityStr != null) { + try { + Integer visibility = Integer.parseInt(visibilityStr); + if (visibility >= NotificationCompat.VISIBILITY_SECRET && visibility <= NotificationCompat.VISIBILITY_PUBLIC) { + mBuilder.setVisibility(visibility); + } else { + Log.e(LOG_TAG, "Visibility parameter must be between -1 and 1"); + } + } catch (NumberFormatException e) { + e.printStackTrace(); + } + } + } + + private void setNotificationVibration(Bundle extras, Boolean vibrateOption, NotificationCompat.Builder mBuilder) { + String vibrationPattern = extras.getString(VIBRATION_PATTERN); + if (vibrationPattern != null) { + String[] items = vibrationPattern.replaceAll("\\[", "").replaceAll("\\]", "").split(","); + long[] results = new long[items.length]; + for (int i = 0; i < items.length; i++) { + try { + results[i] = Long.parseLong(items[i].trim()); + } catch (NumberFormatException nfe) {} + } + mBuilder.setVibrate(results); + } else { + if (vibrateOption) { + mBuilder.setDefaults(Notification.DEFAULT_VIBRATE); + } + } + } + + private void setNotificationMessage(int notId, Bundle extras, NotificationCompat.Builder mBuilder) { + String message = extras.getString(MESSAGE); + + String style = extras.getString(STYLE, STYLE_TEXT); + if(STYLE_INBOX.equals(style)) { + setNotification(notId, message); + + mBuilder.setContentText(fromHtml(message)); + + ArrayList messageList = messageMap.get(notId); + Integer sizeList = messageList.size(); + if (sizeList > 1) { + String sizeListMessage = sizeList.toString(); + String stacking = sizeList + " more"; + if (extras.getString(SUMMARY_TEXT) != null) { + stacking = extras.getString(SUMMARY_TEXT); + stacking = stacking.replace("%n%", sizeListMessage); + } + NotificationCompat.InboxStyle notificationInbox = new NotificationCompat.InboxStyle() + .setBigContentTitle(fromHtml(extras.getString(TITLE))) + .setSummaryText(fromHtml(stacking)); + + for (int i = messageList.size() - 1; i >= 0; i--) { + notificationInbox.addLine(fromHtml(messageList.get(i))); + } + + mBuilder.setStyle(notificationInbox); + } else { + NotificationCompat.BigTextStyle bigText = new NotificationCompat.BigTextStyle(); + if (message != null) { + bigText.bigText(fromHtml(message)); + bigText.setBigContentTitle(fromHtml(extras.getString(TITLE))); + mBuilder.setStyle(bigText); + } + } + } else if (STYLE_PICTURE.equals(style)) { + setNotification(notId, ""); + + NotificationCompat.BigPictureStyle bigPicture = new NotificationCompat.BigPictureStyle(); + bigPicture.bigPicture(getBitmapFromURL(extras.getString(PICTURE))); + bigPicture.setBigContentTitle(fromHtml(extras.getString(TITLE))); + bigPicture.setSummaryText(fromHtml(extras.getString(SUMMARY_TEXT))); + + mBuilder.setContentTitle(fromHtml(extras.getString(TITLE))); + mBuilder.setContentText(fromHtml(message)); + + mBuilder.setStyle(bigPicture); + } else { + setNotification(notId, ""); + + NotificationCompat.BigTextStyle bigText = new NotificationCompat.BigTextStyle(); + + if (message != null) { + mBuilder.setContentText(fromHtml(message)); + + bigText.bigText(fromHtml(message)); + bigText.setBigContentTitle(fromHtml(extras.getString(TITLE))); + + String summaryText = extras.getString(SUMMARY_TEXT); + if (summaryText != null) { + bigText.setSummaryText(fromHtml(summaryText)); + } + + mBuilder.setStyle(bigText); + } + /* + else { + mBuilder.setContentText(""); + } + */ + } + } + + private void setNotificationSound(Context context, Bundle extras, NotificationCompat.Builder mBuilder) { + String soundname = extras.getString(SOUNDNAME); + if (soundname == null) { + soundname = extras.getString(SOUND); + } + if (SOUND_RINGTONE.equals(soundname)) { + mBuilder.setSound(android.provider.Settings.System.DEFAULT_RINGTONE_URI); + } else if (soundname != null && !soundname.contentEquals(SOUND_DEFAULT)) { + Uri sound = Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE + + "://" + context.getPackageName() + "/raw/" + soundname); + Log.d(LOG_TAG, sound.toString()); + mBuilder.setSound(sound); + } else { + mBuilder.setSound(android.provider.Settings.System.DEFAULT_NOTIFICATION_URI); + } + } + + private void setNotificationLedColor(Bundle extras, NotificationCompat.Builder mBuilder) { + String ledColor = extras.getString(LED_COLOR); + if (ledColor != null) { + // Converts parse Int Array from ledColor + String[] items = ledColor.replaceAll("\\[", "").replaceAll("\\]", "").split(","); + int[] results = new int[items.length]; + for (int i = 0; i < items.length; i++) { + try { + results[i] = Integer.parseInt(items[i].trim()); + } catch (NumberFormatException nfe) {} + } + if (results.length == 4) { + mBuilder.setLights(Color.argb(results[0], results[1], results[2], results[3]), 500, 500); + } else { + Log.e(LOG_TAG, "ledColor parameter must be an array of length == 4 (ARGB)"); + } + } + } + + private void setNotificationPriority(Bundle extras, NotificationCompat.Builder mBuilder) { + String priorityStr = extras.getString(PRIORITY); + if (priorityStr != null) { + try { + Integer priority = Integer.parseInt(priorityStr); + if (priority >= NotificationCompat.PRIORITY_MIN && priority <= NotificationCompat.PRIORITY_MAX) { + mBuilder.setPriority(priority); + } else { + Log.e(LOG_TAG, "Priority parameter must be between -2 and 2"); + } + } catch (NumberFormatException e) { + e.printStackTrace(); + } + } + } + + private void setNotificationLargeIcon(Bundle extras, String packageName, Resources resources, NotificationCompat.Builder mBuilder) { + String gcmLargeIcon = extras.getString(IMAGE); // from gcm + if (gcmLargeIcon != null && !"".equals(gcmLargeIcon)) { + if (gcmLargeIcon.startsWith("http://") || gcmLargeIcon.startsWith("https://")) { + mBuilder.setLargeIcon(getBitmapFromURL(gcmLargeIcon)); + Log.d(LOG_TAG, "using remote large-icon from gcm"); + } else { + AssetManager assetManager = getAssets(); + InputStream istr; + try { + istr = assetManager.open(gcmLargeIcon); + Bitmap bitmap = BitmapFactory.decodeStream(istr); + mBuilder.setLargeIcon(bitmap); + Log.d(LOG_TAG, "using assets large-icon from gcm"); + } catch (IOException e) { + int largeIconId = 0; + largeIconId = resources.getIdentifier(gcmLargeIcon, DRAWABLE, packageName); + if (largeIconId != 0) { + Bitmap largeIconBitmap = BitmapFactory.decodeResource(resources, largeIconId); + mBuilder.setLargeIcon(largeIconBitmap); + Log.d(LOG_TAG, "using resources large-icon from gcm"); + } else { + Log.d(LOG_TAG, "Not setting large icon"); + } + } + } + } + } + + private void setNotificationSmallIcon(Context context, Bundle extras, String packageName, Resources resources, NotificationCompat.Builder mBuilder, String localIcon) { + int iconId = 0; + String icon = extras.getString(ICON); + if (icon != null && !"".equals(icon)) { + iconId = resources.getIdentifier(icon, DRAWABLE, packageName); + Log.d(LOG_TAG, "using icon from plugin options"); + } + else if (localIcon != null && !"".equals(localIcon)) { + iconId = resources.getIdentifier(localIcon, DRAWABLE, packageName); + Log.d(LOG_TAG, "using icon from plugin options"); + } + if (iconId == 0) { + Log.d(LOG_TAG, "no icon resource found - using application icon"); + iconId = context.getApplicationInfo().icon; + } + mBuilder.setSmallIcon(iconId); + } + + private void setNotificationIconColor(String color, NotificationCompat.Builder mBuilder, String localIconColor) { + int iconColor = 0; + if (color != null && !"".equals(color)) { + try { + iconColor = Color.parseColor(color); + } catch (IllegalArgumentException e) { + Log.e(LOG_TAG, "couldn't parse color from android options"); + } + } + else if (localIconColor != null && !"".equals(localIconColor)) { + try { + iconColor = Color.parseColor(localIconColor); + } catch (IllegalArgumentException e) { + Log.e(LOG_TAG, "couldn't parse color from android options"); + } + } + if (iconColor != 0) { + mBuilder.setColor(iconColor); + } + } + + public Bitmap getBitmapFromURL(String strURL) { + try { + URL url = new URL(strURL); + HttpURLConnection connection = (HttpURLConnection) url.openConnection(); + connection.setDoInput(true); + connection.connect(); + InputStream input = connection.getInputStream(); + return BitmapFactory.decodeStream(input); + } catch (IOException e) { + e.printStackTrace(); + return null; + } + } + + public static String getAppName(Context context) { + CharSequence appName = context.getPackageManager().getApplicationLabel(context.getApplicationInfo()); + return (String)appName; + } + + private int parseInt(String value, Bundle extras) { + int retval = 0; + + try { + retval = Integer.parseInt(extras.getString(value)); + } + catch(NumberFormatException e) { + Log.e(LOG_TAG, "Number format exception - Error parsing " + value + ": " + e.getMessage()); + } + catch(Exception e) { + Log.e(LOG_TAG, "Number format exception - Error parsing " + value + ": " + e.getMessage()); + } + + return retval; + } + + private Spanned fromHtml(String source) { + if (source != null) + return Html.fromHtml(source); + else + return null; + } +} diff --git a/StoneIsland/platforms/android/src/com/adobe/phonegap/push/PermissionUtils.java b/StoneIsland/platforms/android/src/com/adobe/phonegap/push/PermissionUtils.java index 41bc6a6f..6aa5c9bf 100644 --- a/StoneIsland/platforms/android/src/com/adobe/phonegap/push/PermissionUtils.java +++ b/StoneIsland/platforms/android/src/com/adobe/phonegap/push/PermissionUtils.java @@ -10,12 +10,8 @@ import java.lang.reflect.Method; public class PermissionUtils { private static final String CHECK_OP_NO_THROW = "checkOpNoThrow"; - private static final int MIN_API_LEVEL = 19; // required by AppOpsManager public static boolean hasPermission(Context appContext, String appOpsServiceId) throws UnknownError { - if (android.os.Build.VERSION.SDK_INT < MIN_API_LEVEL) { - return true; - } ApplicationInfo appInfo = appContext.getApplicationInfo(); diff --git a/StoneIsland/platforms/android/src/com/adobe/phonegap/push/PushConstants.java b/StoneIsland/platforms/android/src/com/adobe/phonegap/push/PushConstants.java index e3aa217c..37874e04 100644 --- a/StoneIsland/platforms/android/src/com/adobe/phonegap/push/PushConstants.java +++ b/StoneIsland/platforms/android/src/com/adobe/phonegap/push/PushConstants.java @@ -3,7 +3,6 @@ package com.adobe.phonegap.push; public interface PushConstants { public static final String COM_ADOBE_PHONEGAP_PUSH = "com.adobe.phonegap.push"; public static final String REGISTRATION_ID = "registrationId"; - public static final String REGISTRATION_TYPE = "registrationType"; public static final String FOREGROUND = "foreground"; public static final String TITLE = "title"; public static final String NOT_ID = "notId"; @@ -56,11 +55,10 @@ public interface PushConstants { public static final String FROM = "from"; public static final String COLLAPSE_KEY = "collapse_key"; public static final String FORCE_SHOW = "forceShow"; - public static final String FCM = "FCM"; + public static final String GCM = "GCM"; public static final String CONTENT_AVAILABLE = "content-available"; public static final String TOPICS = "topics"; public static final String SET_APPLICATION_ICON_BADGE_NUMBER = "setApplicationIconBadgeNumber"; - public static final String GET_APPLICATION_ICON_BADGE_NUMBER = "getApplicationIconBadgeNumber"; public static final String CLEAR_ALL_NOTIFICATIONS = "clearAllNotifications"; public static final String VISIBILITY = "visibility"; public static final String INLINE_REPLY = "inlineReply"; @@ -69,18 +67,6 @@ public interface PushConstants { public static final String TWILIO_BODY = "twi_body"; public static final String TWILIO_TITLE = "twi_title"; public static final String TWILIO_SOUND = "twi_sound"; - public static final String MP_MESSAGE = "mp_message"; public static final String START_IN_BACKGROUND = "cdvStartInBackground"; public static final String FORCE_START = "force-start"; - public static final String MESSAGE_KEY = "messageKey"; - public static final String TITLE_KEY = "titleKey"; - public static final String NO_CACHE = "no-cache"; - public static final String DISMISSED = "dismissed"; - public static final String IMAGE_TYPE = "image-type"; - public static final String IMAGE_TYPE_SQUARE = "square"; - public static final String IMAGE_TYPE_CIRCLE = "circle"; - public static final String SUBJECT = "subject"; - public static final String GOOGLE_APP_ID = "google_app_id"; - public static final String GCM_DEFAULT_SENDER_ID = "gcm_defaultSenderId"; - public static final String PUSH_DISMISSED = "push_dismissed"; } diff --git a/StoneIsland/platforms/android/src/com/adobe/phonegap/push/PushDismissedHandler.java b/StoneIsland/platforms/android/src/com/adobe/phonegap/push/PushDismissedHandler.java deleted file mode 100644 index a517bc1e..00000000 --- a/StoneIsland/platforms/android/src/com/adobe/phonegap/push/PushDismissedHandler.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.adobe.phonegap.push; -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; -import android.os.Bundle; -import android.util.Log; - -public class PushDismissedHandler extends BroadcastReceiver implements PushConstants { - private static String LOG_TAG = "Push_DismissedHandler"; - - @Override - public void onReceive(Context context, Intent intent) { - Bundle extras = intent.getExtras(); - FCMService fcm = new FCMService(); - String action = intent.getAction(); - int notID = intent.getIntExtra(NOT_ID, 0); - - if (action.equals(PUSH_DISMISSED)) { - Log.d(LOG_TAG, "PushDismissedHandler = " + extras); - Log.d(LOG_TAG, "not id = " + notID); - - fcm.setNotification(notID, ""); - } - } -} diff --git a/StoneIsland/platforms/android/src/com/adobe/phonegap/push/PushHandlerActivity.java b/StoneIsland/platforms/android/src/com/adobe/phonegap/push/PushHandlerActivity.java index 0d399a61..23682ac8 100644 --- a/StoneIsland/platforms/android/src/com/adobe/phonegap/push/PushHandlerActivity.java +++ b/StoneIsland/platforms/android/src/com/adobe/phonegap/push/PushHandlerActivity.java @@ -11,7 +11,7 @@ import android.support.v4.app.RemoteInput; public class PushHandlerActivity extends Activity implements PushConstants { - private static String LOG_TAG = "Push_HandlerActivity"; + private static String LOG_TAG = "PushPlugin_PushHandlerActivity"; /* * this activity will be started if the user touches a notification that we own. @@ -21,7 +21,7 @@ public class PushHandlerActivity extends Activity implements PushConstants { */ @Override public void onCreate(Bundle savedInstanceState) { - FCMService gcm = new FCMService(); + GCMIntentService gcm = new GCMIntentService(); Intent intent = getIntent(); @@ -34,18 +34,16 @@ public class PushHandlerActivity extends Activity implements PushConstants { Log.d(LOG_TAG, "callback = " + callback); boolean foreground = getIntent().getExtras().getBoolean("foreground", true); boolean startOnBackground = getIntent().getExtras().getBoolean(START_IN_BACKGROUND, false); - boolean dismissed = getIntent().getExtras().getBoolean(DISMISSED, false); - Log.d(LOG_TAG, "dismissed = " + dismissed); if(!startOnBackground){ NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); - notificationManager.cancel(FCMService.getAppName(this), notId); + notificationManager.cancel(GCMIntentService.getAppName(this), notId); } boolean isPushPluginActive = PushPlugin.isActive(); boolean inline = processPushBundle(isPushPluginActive, intent); - if(inline && android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.N && !startOnBackground){ + if(inline && android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.N){ foreground = true; } @@ -53,17 +51,15 @@ public class PushHandlerActivity extends Activity implements PushConstants { finish(); - if(!dismissed) { - Log.d(LOG_TAG, "isPushPluginActive = " + isPushPluginActive); - if (!isPushPluginActive && foreground && inline) { - Log.d(LOG_TAG, "forceMainActivityReload"); - forceMainActivityReload(false); - } else if(startOnBackground) { - Log.d(LOG_TAG, "startOnBackgroundTrue"); - forceMainActivityReload(true); - } else { - Log.d(LOG_TAG, "don't want main activity"); - } + Log.d(LOG_TAG, "isPushPluginActive = " + isPushPluginActive); + if (!isPushPluginActive && foreground && inline) { + Log.d(LOG_TAG, "forceMainActivityReload"); + forceMainActivityReload(false); + } else if(startOnBackground) { + Log.d(LOG_TAG, "startOnBackgroundTrue"); + forceMainActivityReload(true); + } else { + Log.d(LOG_TAG, "don't want main activity"); } } @@ -80,9 +76,7 @@ public class PushHandlerActivity extends Activity implements PushConstants { originalExtras.putBoolean(FOREGROUND, false); originalExtras.putBoolean(COLDSTART, !isPushPluginActive); - originalExtras.putBoolean(DISMISSED, extras.getBoolean(DISMISSED)); originalExtras.putString(ACTION_CALLBACK, extras.getString(CALLBACK)); - originalExtras.remove(NO_CACHE); remoteInput = RemoteInput.getResultsFromIntent(intent); if (remoteInput != null) { diff --git a/StoneIsland/platforms/android/src/com/adobe/phonegap/push/PushInstanceIDListenerService.java b/StoneIsland/platforms/android/src/com/adobe/phonegap/push/PushInstanceIDListenerService.java index 176b7419..eaa39a48 100644 --- a/StoneIsland/platforms/android/src/com/adobe/phonegap/push/PushInstanceIDListenerService.java +++ b/StoneIsland/platforms/android/src/com/adobe/phonegap/push/PushInstanceIDListenerService.java @@ -5,22 +5,23 @@ import android.content.Context; import android.content.SharedPreferences; import android.util.Log; -import com.google.firebase.iid.FirebaseInstanceId; -import com.google.firebase.iid.FirebaseInstanceIdService; +import com.google.android.gms.iid.InstanceID; +import com.google.android.gms.iid.InstanceIDListenerService; import org.json.JSONException; import java.io.IOException; -public class PushInstanceIDListenerService extends FirebaseInstanceIdService implements PushConstants { - public static final String LOG_TAG = "Push_InsIdService"; +public class PushInstanceIDListenerService extends InstanceIDListenerService implements PushConstants { + public static final String LOG_TAG = "PushPlugin_PushInstanceIDListenerService"; @Override public void onTokenRefresh() { - // Get updated InstanceID token. - String refreshedToken = FirebaseInstanceId.getInstance().getToken(); - Log.d(LOG_TAG, "Refreshed token: " + refreshedToken); - // TODO: Implement this method to send any registration to your app's servers. - //sendRegistrationToServer(refreshedToken); + SharedPreferences sharedPref = getApplicationContext().getSharedPreferences(COM_ADOBE_PHONEGAP_PUSH, Context.MODE_PRIVATE); + String senderID = sharedPref.getString(SENDER_ID, ""); + if (!"".equals(senderID)) { + Intent intent = new Intent(this, RegistrationIntentService.class); + startService(intent); + } } } diff --git a/StoneIsland/platforms/android/src/com/adobe/phonegap/push/PushPlugin.java b/StoneIsland/platforms/android/src/com/adobe/phonegap/push/PushPlugin.java index 32f72bf3..f6faaa2b 100644 --- a/StoneIsland/platforms/android/src/com/adobe/phonegap/push/PushPlugin.java +++ b/StoneIsland/platforms/android/src/com/adobe/phonegap/push/PushPlugin.java @@ -1,14 +1,13 @@ package com.adobe.phonegap.push; -import android.app.Activity; import android.app.NotificationManager; import android.content.Context; import android.content.SharedPreferences; import android.os.Bundle; import android.util.Log; -import com.google.firebase.iid.FirebaseInstanceId; -import com.google.firebase.messaging.FirebaseMessaging; +import com.google.android.gms.gcm.GcmPubSub; +import com.google.android.gms.iid.InstanceID; import org.apache.cordova.CallbackContext; import org.apache.cordova.CordovaInterface; @@ -30,7 +29,7 @@ import me.leolin.shortcutbadger.ShortcutBadger; public class PushPlugin extends CordovaPlugin implements PushConstants { - public static final String LOG_TAG = "Push_Plugin"; + public static final String LOG_TAG = "PushPlugin"; private static CallbackContext pushContext; private static CordovaWebView gWebView; @@ -60,7 +59,6 @@ public class PushPlugin extends CordovaPlugin implements PushConstants { Log.v(LOG_TAG, "execute: data=" + data.toString()); SharedPreferences sharedPref = getApplicationContext().getSharedPreferences(COM_ADOBE_PHONEGAP_PUSH, Context.MODE_PRIVATE); - String token = null; String senderID = null; try { @@ -68,19 +66,15 @@ public class PushPlugin extends CordovaPlugin implements PushConstants { Log.v(LOG_TAG, "execute: jo=" + jo.toString()); - senderID = getStringResourceByName(GCM_DEFAULT_SENDER_ID); + senderID = jo.getString(SENDER_ID); Log.v(LOG_TAG, "execute: senderID=" + senderID); - token = FirebaseInstanceId.getInstance().getToken(); + String savedSenderID = sharedPref.getString(SENDER_ID, ""); + registration_id = InstanceID.getInstance(getApplicationContext()).getToken(senderID, GCM); - if (token == null) { - token = FirebaseInstanceId.getInstance().getToken(senderID,FCM); - } - - if (!"".equals(token)) { - JSONObject json = new JSONObject().put(REGISTRATION_ID, token); - json.put(REGISTRATION_TYPE, FCM); + if (!"".equals(registration_id)) { + JSONObject json = new JSONObject().put(REGISTRATION_ID, registration_id); Log.v(LOG_TAG, "onRegistered: " + json.toString()); @@ -89,14 +83,14 @@ public class PushPlugin extends CordovaPlugin implements PushConstants { PushPlugin.sendEvent( json ); } else { - callbackContext.error("Empty registration ID received from FCM"); + callbackContext.error("Empty registration ID received from GCM"); return; } } catch (JSONException e) { Log.e(LOG_TAG, "execute: Got JSON Exception " + e.getMessage()); callbackContext.error(e.getMessage()); } catch (IOException e) { - Log.e(LOG_TAG, "execute: Got IO Exception " + e.getMessage()); + Log.e(LOG_TAG, "execute: Got JSON Exception " + e.getMessage()); callbackContext.error(e.getMessage()); } @@ -124,8 +118,6 @@ public class PushPlugin extends CordovaPlugin implements PushConstants { editor.putBoolean(CLEAR_NOTIFICATIONS, jo.optBoolean(CLEAR_NOTIFICATIONS, true)); editor.putBoolean(FORCE_SHOW, jo.optBoolean(FORCE_SHOW, false)); editor.putString(SENDER_ID, senderID); - editor.putString(MESSAGE_KEY, jo.optString(MESSAGE_KEY)); - editor.putString(TITLE_KEY, jo.optString(TITLE_KEY)); editor.commit(); } @@ -151,7 +143,7 @@ public class PushPlugin extends CordovaPlugin implements PushConstants { if (topics != null && !"".equals(registration_id)) { unsubscribeFromTopics(topics, registration_id); } else { - FirebaseInstanceId.getInstance().deleteInstanceId(); + InstanceID.getInstance(getApplicationContext()).deleteInstanceID(); Log.v(LOG_TAG, "UNREGISTER"); // Remove shared prefs @@ -202,13 +194,6 @@ public class PushPlugin extends CordovaPlugin implements PushConstants { callbackContext.success(); } }); - } else if (GET_APPLICATION_ICON_BADGE_NUMBER.equals(action)) { - cordova.getThreadPool().execute(new Runnable() { - public void run() { - Log.v(LOG_TAG, "getApplicationIconBadgeNumber"); - callbackContext.success(getApplicationIconBadgeNumber(getApplicationContext())); - } - }); } else if (CLEAR_ALL_NOTIFICATIONS.equals(action)) { cordova.getThreadPool().execute(new Runnable() { public void run() { @@ -227,6 +212,8 @@ public class PushPlugin extends CordovaPlugin implements PushConstants { callbackContext.success(); } catch (JSONException e) { callbackContext.error(e.getMessage()); + } catch (IOException e) { + callbackContext.error(e.getMessage()); } } }); @@ -240,6 +227,8 @@ public class PushPlugin extends CordovaPlugin implements PushConstants { callbackContext.success(); } catch (JSONException e) { callbackContext.error(e.getMessage()); + } catch (IOException e) { + callbackContext.error(e.getMessage()); } } }); @@ -270,41 +259,25 @@ public class PushPlugin extends CordovaPlugin implements PushConstants { /* * Sends the pushbundle extras to the client application. - * If the client application isn't currently active and the no-cache flag is not set, it is cached for later processing. + * If the client application isn't currently active, it is cached for later processing. */ public static void sendExtras(Bundle extras) { if (extras != null) { - String noCache = extras.getString(NO_CACHE); if (gWebView != null) { sendEvent(convertBundleToJson(extras)); - } else if(!"1".equals(noCache)){ + } else { Log.v(LOG_TAG, "sendExtras: caching extras to send at a later time."); gCachedExtras.add(extras); } } } - /* - * Retrives badge count from SharedPreferences - */ - public static int getApplicationIconBadgeNumber(Context context){ - SharedPreferences settings = context.getSharedPreferences(BADGE, Context.MODE_PRIVATE); - return settings.getInt(BADGE, 0); - } - - /* - * Sets badge count on application icon and in SharedPreferences - */ public static void setApplicationIconBadgeNumber(Context context, int badgeCount) { if (badgeCount > 0) { ShortcutBadger.applyCount(context, badgeCount); - }else{ + } else { ShortcutBadger.removeCount(context); } - - SharedPreferences.Editor editor = context.getSharedPreferences(BADGE, Context.MODE_PRIVATE).edit(); - editor.putInt(BADGE, Math.max(badgeCount, 0)); - editor.apply(); } @Override @@ -342,7 +315,23 @@ public class PushPlugin extends CordovaPlugin implements PushConstants { notificationManager.cancelAll(); } - private void subscribeToTopics(JSONArray topics, String registrationToken) { + /** + * Transform `topic name` to `topic path` + * Normally, the `topic` inputed from end-user is `topic name` only. + * We should convert them to GCM `topic path` + * Example: + * when topic name = 'my-topic' + * then topic path = '/topics/my-topic' + * + * @param String topic The topic name + * @return The topic path + */ + private String getTopicPath(String topic) + { + return "/topics/" + topic; + } + + private void subscribeToTopics(JSONArray topics, String registrationToken) throws IOException { if (topics != null) { String topic = null; for (int i=0; iCordova.xcscheme orderHint - 7 + 3 CordovaLib.xcscheme orderHint - 6 + 2 diff --git a/StoneIsland/platforms/ios/CordovaLib/VERSION b/StoneIsland/platforms/ios/CordovaLib/VERSION index fdc66988..6cedcff6 100644 --- a/StoneIsland/platforms/ios/CordovaLib/VERSION +++ b/StoneIsland/platforms/ios/CordovaLib/VERSION @@ -1 +1 @@ -4.4.0 +4.5.2 diff --git a/StoneIsland/platforms/ios/CordovaLib/cordova.js b/StoneIsland/platforms/ios/CordovaLib/cordova.js index 3540a020..a320f5ee 100644 --- a/StoneIsland/platforms/ios/CordovaLib/cordova.js +++ b/StoneIsland/platforms/ios/CordovaLib/cordova.js @@ -1,5 +1,5 @@ // Platform: ios -// 7c5fcc5a5adfbf3fb8ceaf36fbdd4bd970bd9c20 +// ff66178b108b93be36a1aafe341af17381a727a3 /* Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file @@ -19,35 +19,33 @@ under the License. */ ;(function() { -var PLATFORM_VERSION_BUILD_LABEL = '4.4.0'; +var PLATFORM_VERSION_BUILD_LABEL = '4.5.2'; // file: src/scripts/require.js -/*jshint -W079 */ -/*jshint -W020 */ +/* jshint -W079 */ +/* jshint -W020 */ -var require, - define; +var require; +var define; (function () { - var modules = {}, + var modules = {}; // Stack of moduleIds currently being built. - requireStack = [], + var requireStack = []; // Map of module ID -> index into requireStack of modules currently being built. - inProgressModules = {}, - SEPARATOR = "."; - - - - function build(module) { - var factory = module.factory, - localRequire = function (id) { - var resultantId = id; - //Its a relative path, so lop off the last portion and add the id (minus "./") - if (id.charAt(0) === ".") { - resultantId = module.id.slice(0, module.id.lastIndexOf(SEPARATOR)) + SEPARATOR + id.slice(2); - } - return require(resultantId); - }; + var inProgressModules = {}; + var SEPARATOR = '.'; + + function build (module) { + var factory = module.factory; + var localRequire = function (id) { + var resultantId = id; + // Its a relative path, so lop off the last portion and add the id (minus "./") + if (id.charAt(0) === '.') { + resultantId = module.id.slice(0, module.id.lastIndexOf(SEPARATOR)) + SEPARATOR + id.slice(2); + } + return require(resultantId); + }; module.exports = {}; delete module.factory; factory(localRequire, module.exports, module); @@ -56,10 +54,10 @@ var require, require = function (id) { if (!modules[id]) { - throw "module " + id + " not found"; + throw 'module ' + id + ' not found'; } else if (id in inProgressModules) { var cycle = requireStack.slice(inProgressModules[id]).join('->') + '->' + id; - throw "Cycle in require graph: " + cycle; + throw 'Cycle in require graph: ' + cycle; } if (modules[id].factory) { try { @@ -76,7 +74,7 @@ var require, define = function (id, factory) { if (modules[id]) { - throw "module " + id + " already defined"; + throw 'module ' + id + ' already defined'; } modules[id] = { @@ -92,8 +90,8 @@ var require, define.moduleMap = modules; })(); -//Export for use in node -if (typeof module === "object" && typeof require === "function") { +// Export for use in node +if (typeof module === 'object' && typeof require === 'function') { module.exports.require = require; module.exports.define = define; } @@ -103,15 +101,13 @@ define("cordova", function(require, exports, module) { // Workaround for Windows 10 in hosted environment case // http://www.w3.org/html/wg/drafts/html/master/browsers.html#named-access-on-the-window-object -if (window.cordova && !(window.cordova instanceof HTMLElement)) { - throw new Error("cordova already defined"); +if (window.cordova && !(window.cordova instanceof HTMLElement)) { // eslint-disable-line no-undef + throw new Error('cordova already defined'); } - var channel = require('cordova/channel'); var platform = require('cordova/platform'); - /** * Intercept calls to addEventListener + removeEventListener and handle deviceready, * resume, and pause events. @@ -124,48 +120,48 @@ var m_window_removeEventListener = window.removeEventListener; /** * Houses custom event handlers to intercept on document + window event listeners. */ -var documentEventHandlers = {}, - windowEventHandlers = {}; +var documentEventHandlers = {}; +var windowEventHandlers = {}; -document.addEventListener = function(evt, handler, capture) { +document.addEventListener = function (evt, handler, capture) { var e = evt.toLowerCase(); - if (typeof documentEventHandlers[e] != 'undefined') { + if (typeof documentEventHandlers[e] !== 'undefined') { documentEventHandlers[e].subscribe(handler); } else { m_document_addEventListener.call(document, evt, handler, capture); } }; -window.addEventListener = function(evt, handler, capture) { +window.addEventListener = function (evt, handler, capture) { var e = evt.toLowerCase(); - if (typeof windowEventHandlers[e] != 'undefined') { + if (typeof windowEventHandlers[e] !== 'undefined') { windowEventHandlers[e].subscribe(handler); } else { m_window_addEventListener.call(window, evt, handler, capture); } }; -document.removeEventListener = function(evt, handler, capture) { +document.removeEventListener = function (evt, handler, capture) { var e = evt.toLowerCase(); // If unsubscribing from an event that is handled by a plugin - if (typeof documentEventHandlers[e] != "undefined") { + if (typeof documentEventHandlers[e] !== 'undefined') { documentEventHandlers[e].unsubscribe(handler); } else { m_document_removeEventListener.call(document, evt, handler, capture); } }; -window.removeEventListener = function(evt, handler, capture) { +window.removeEventListener = function (evt, handler, capture) { var e = evt.toLowerCase(); // If unsubscribing from an event that is handled by a plugin - if (typeof windowEventHandlers[e] != "undefined") { + if (typeof windowEventHandlers[e] !== 'undefined') { windowEventHandlers[e].unsubscribe(handler); } else { m_window_removeEventListener.call(window, evt, handler, capture); } }; -function createEvent(type, data) { +function createEvent (type, data) { var event = document.createEvent('Events'); event.initEvent(type, false, false); if (data) { @@ -178,29 +174,32 @@ function createEvent(type, data) { return event; } - +/* eslint-disable no-undef */ var cordova = { - define:define, - require:require, - version:PLATFORM_VERSION_BUILD_LABEL, - platformVersion:PLATFORM_VERSION_BUILD_LABEL, - platformId:platform.id, + define: define, + require: require, + version: PLATFORM_VERSION_BUILD_LABEL, + platformVersion: PLATFORM_VERSION_BUILD_LABEL, + platformId: platform.id, + + /* eslint-enable no-undef */ + /** * Methods to add/remove your own addEventListener hijacking on document + window. */ - addWindowEventHandler:function(event) { + addWindowEventHandler: function (event) { return (windowEventHandlers[event] = channel.create(event)); }, - addStickyDocumentEventHandler:function(event) { + addStickyDocumentEventHandler: function (event) { return (documentEventHandlers[event] = channel.createSticky(event)); }, - addDocumentEventHandler:function(event) { + addDocumentEventHandler: function (event) { return (documentEventHandlers[event] = channel.create(event)); }, - removeWindowEventHandler:function(event) { + removeWindowEventHandler: function (event) { delete windowEventHandlers[event]; }, - removeDocumentEventHandler:function(event) { + removeDocumentEventHandler: function (event) { delete documentEventHandlers[event]; }, /** @@ -208,24 +207,23 @@ var cordova = { * * @return object */ - getOriginalHandlers: function() { + getOriginalHandlers: function () { return {'document': {'addEventListener': m_document_addEventListener, 'removeEventListener': m_document_removeEventListener}, - 'window': {'addEventListener': m_window_addEventListener, 'removeEventListener': m_window_removeEventListener}}; + 'window': {'addEventListener': m_window_addEventListener, 'removeEventListener': m_window_removeEventListener}}; }, /** * Method to fire event from native code * bNoDetach is required for events which cause an exception which needs to be caught in native code */ - fireDocumentEvent: function(type, data, bNoDetach) { + fireDocumentEvent: function (type, data, bNoDetach) { var evt = createEvent(type, data); - if (typeof documentEventHandlers[type] != 'undefined') { - if( bNoDetach ) { + if (typeof documentEventHandlers[type] !== 'undefined') { + if (bNoDetach) { documentEventHandlers[type].fire(evt); - } - else { - setTimeout(function() { + } else { + setTimeout(function () { // Fire deviceready on listeners that were registered before cordova.js was loaded. - if (type == 'deviceready') { + if (type === 'deviceready') { document.dispatchEvent(evt); } documentEventHandlers[type].fire(evt); @@ -235,10 +233,10 @@ var cordova = { document.dispatchEvent(evt); } }, - fireWindowEvent: function(type, data) { - var evt = createEvent(type,data); - if (typeof windowEventHandlers[type] != 'undefined') { - setTimeout(function() { + fireWindowEvent: function (type, data) { + var evt = createEvent(type, data); + if (typeof windowEventHandlers[type] !== 'undefined') { + setTimeout(function () { windowEventHandlers[type].fire(evt); }, 0); } else { @@ -252,7 +250,7 @@ var cordova = { // Randomize the starting callbackId to avoid collisions after refreshing or navigating. // This way, it's very unlikely that any new callback would get the same callbackId as an old callback. callbackId: Math.floor(Math.random() * 2000000000), - callbacks: {}, + callbacks: {}, callbackStatus: { NO_RESULT: 0, OK: 1, @@ -269,14 +267,14 @@ var cordova = { /** * Called by native code when returning successful result from an action. */ - callbackSuccess: function(callbackId, args) { + callbackSuccess: function (callbackId, args) { cordova.callbackFromNative(callbackId, true, args.status, [args.message], args.keepCallback); }, /** * Called by native code when returning error result from an action. */ - callbackError: function(callbackId, args) { + callbackError: function (callbackId, args) { // TODO: Deprecate callbackSuccess and callbackError in favour of callbackFromNative. // Derive success from status. cordova.callbackFromNative(callbackId, false, args.status, [args.message], args.keepCallback); @@ -285,11 +283,11 @@ var cordova = { /** * Called by native code when returning the result from an action. */ - callbackFromNative: function(callbackId, isSuccess, status, args, keepCallback) { + callbackFromNative: function (callbackId, isSuccess, status, args, keepCallback) { try { var callback = cordova.callbacks[callbackId]; if (callback) { - if (isSuccess && status == cordova.callbackStatus.OK) { + if (isSuccess && status === cordova.callbackStatus.OK) { callback.success && callback.success.apply(null, args); } else if (!isSuccess) { callback.fail && callback.fail.apply(null, args); @@ -306,26 +304,24 @@ var cordova = { delete cordova.callbacks[callbackId]; } } - } - catch (err) { - var msg = "Error in " + (isSuccess ? "Success" : "Error") + " callbackId: " + callbackId + " : " + err; + } catch (err) { + var msg = 'Error in ' + (isSuccess ? 'Success' : 'Error') + ' callbackId: ' + callbackId + ' : ' + err; console && console.log && console.log(msg); - cordova.fireWindowEvent("cordovacallbackerror", { 'message': msg }); + cordova.fireWindowEvent('cordovacallbackerror', { 'message': msg }); throw err; } }, - addConstructor: function(func) { - channel.onCordovaReady.subscribe(function() { + addConstructor: function (func) { + channel.onCordovaReady.subscribe(function () { try { func(); - } catch(e) { - console.log("Failed to run constructor: " + e); + } catch (e) { + console.log('Failed to run constructor: ' + e); } }); } }; - module.exports = cordova; }); @@ -346,29 +342,29 @@ var typeMap = { 'O': 'Object' }; -function extractParamName(callee, argIndex) { +function extractParamName (callee, argIndex) { return (/.*?\((.*?)\)/).exec(callee)[1].split(', ')[argIndex]; } -function checkArgs(spec, functionName, args, opt_callee) { +function checkArgs (spec, functionName, args, opt_callee) { if (!moduleExports.enableChecks) { return; } var errMsg = null; var typeName; for (var i = 0; i < spec.length; ++i) { - var c = spec.charAt(i), - cUpper = c.toUpperCase(), - arg = args[i]; + var c = spec.charAt(i); + var cUpper = c.toUpperCase(); + var arg = args[i]; // Asterix means allow anything. - if (c == '*') { + if (c === '*') { continue; } typeName = utils.typeName(arg); - if ((arg === null || arg === undefined) && c == cUpper) { + if ((arg === null || arg === undefined) && c === cUpper) { continue; } - if (typeName != typeMap[cUpper]) { + if (typeName !== typeMap[cUpper]) { errMsg = 'Expected ' + typeMap[cUpper]; break; } @@ -377,14 +373,14 @@ function checkArgs(spec, functionName, args, opt_callee) { errMsg += ', but got ' + typeName + '.'; errMsg = 'Wrong type for parameter "' + extractParamName(opt_callee || args.callee, i) + '" of ' + functionName + ': ' + errMsg; // Don't log when running unit tests. - if (typeof jasmine == 'undefined') { + if (typeof jasmine === 'undefined') { console.error(errMsg); } throw TypeError(errMsg); } } -function getValue(value, defaultValue) { +function getValue (value, defaultValue) { return value === undefined ? defaultValue : value; } @@ -392,7 +388,6 @@ moduleExports.checkArgs = checkArgs; moduleExports.getValue = getValue; moduleExports.enableChecks = true; - }); // file: src/common/base64.js @@ -400,58 +395,58 @@ define("cordova/base64", function(require, exports, module) { var base64 = exports; -base64.fromArrayBuffer = function(arrayBuffer) { +base64.fromArrayBuffer = function (arrayBuffer) { var array = new Uint8Array(arrayBuffer); return uint8ToBase64(array); }; -base64.toArrayBuffer = function(str) { - var decodedStr = typeof atob != 'undefined' ? atob(str) : new Buffer(str,'base64').toString('binary'); +base64.toArrayBuffer = function (str) { + var decodedStr = typeof atob !== 'undefined' ? atob(str) : Buffer.from(str, 'base64').toString('binary'); // eslint-disable-line no-undef var arrayBuffer = new ArrayBuffer(decodedStr.length); var array = new Uint8Array(arrayBuffer); - for (var i=0, len=decodedStr.length; i < len; i++) { + for (var i = 0, len = decodedStr.length; i < len; i++) { array[i] = decodedStr.charCodeAt(i); } return arrayBuffer; }; -//------------------------------------------------------------------------------ +// ------------------------------------------------------------------------------ /* This code is based on the performance tests at http://jsperf.com/b64tests * This 12-bit-at-a-time algorithm was the best performing version on all * platforms tested. */ -var b64_6bit = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; +var b64_6bit = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; var b64_12bit; -var b64_12bitTable = function() { +var b64_12bitTable = function () { b64_12bit = []; - for (var i=0; i<64; i++) { - for (var j=0; j<64; j++) { - b64_12bit[i*64+j] = b64_6bit[i] + b64_6bit[j]; + for (var i = 0; i < 64; i++) { + for (var j = 0; j < 64; j++) { + b64_12bit[i * 64 + j] = b64_6bit[i] + b64_6bit[j]; } } - b64_12bitTable = function() { return b64_12bit; }; + b64_12bitTable = function () { return b64_12bit; }; return b64_12bit; }; -function uint8ToBase64(rawData) { +function uint8ToBase64 (rawData) { var numBytes = rawData.byteLength; - var output=""; + var output = ''; var segment; var table = b64_12bitTable(); - for (var i=0;i> 12]; output += table[segment & 0xfff]; } - if (numBytes - i == 2) { - segment = (rawData[i] << 16) + (rawData[i+1] << 8); + if (numBytes - i === 2) { + segment = (rawData[i] << 16) + (rawData[i + 1] << 8); output += table[segment >> 12]; output += b64_6bit[(segment & 0xfff) >> 6]; output += '='; - } else if (numBytes - i == 1) { + } else if (numBytes - i === 1) { segment = (rawData[i] << 16); output += table[segment >> 12]; output += '=='; @@ -466,7 +461,7 @@ define("cordova/builder", function(require, exports, module) { var utils = require('cordova/utils'); -function each(objects, func, context) { +function each (objects, func, context) { for (var prop in objects) { if (objects.hasOwnProperty(prop)) { func.apply(context, [objects[prop], prop]); @@ -474,7 +469,7 @@ function each(objects, func, context) { } } -function clobber(obj, key, value) { +function clobber (obj, key, value) { exports.replaceHookForTesting(obj, key); var needsProperty = false; try { @@ -484,15 +479,15 @@ function clobber(obj, key, value) { } // Getters can only be overridden by getters. if (needsProperty || obj[key] !== value) { - utils.defineGetter(obj, key, function() { + utils.defineGetter(obj, key, function () { return value; }); } } -function assignOrWrapInDeprecateGetter(obj, key, value, message) { +function assignOrWrapInDeprecateGetter (obj, key, value, message) { if (message) { - utils.defineGetter(obj, key, function() { + utils.defineGetter(obj, key, function () { console.log(message); delete obj[key]; clobber(obj, key, value); @@ -503,7 +498,7 @@ function assignOrWrapInDeprecateGetter(obj, key, value, message) { } } -function include(parent, objects, clobber, merge) { +function include (parent, objects, clobber, merge) { each(objects, function (obj, key) { try { var result = obj.path ? require(obj.path) : {}; @@ -523,7 +518,7 @@ function include(parent, objects, clobber, merge) { result = parent[key]; } else { // Overwrite if not currently defined. - if (typeof parent[key] == 'undefined') { + if (typeof parent[key] === 'undefined') { assignOrWrapInDeprecateGetter(parent, key, result, obj.deprecated); } else { // Set result to what already exists, so we can build children into it if they exist. @@ -534,7 +529,7 @@ function include(parent, objects, clobber, merge) { if (obj.children) { include(result, obj.children, clobber, merge); } - } catch(e) { + } catch (e) { utils.alert('Exception building Cordova JS globals: ' + e + ' for key "' + key + '"'); } }); @@ -547,7 +542,7 @@ function include(parent, objects, clobber, merge) { * @param target Object to merge properties into. * @param src Object to merge properties from. */ -function recursiveMerge(target, src) { +function recursiveMerge (target, src) { for (var prop in src) { if (src.hasOwnProperty(prop)) { if (target.prototype && target.prototype.constructor === target) { @@ -564,26 +559,26 @@ function recursiveMerge(target, src) { } } -exports.buildIntoButDoNotClobber = function(objects, target) { +exports.buildIntoButDoNotClobber = function (objects, target) { include(target, objects, false, false); }; -exports.buildIntoAndClobber = function(objects, target) { +exports.buildIntoAndClobber = function (objects, target) { include(target, objects, true, false); }; -exports.buildIntoAndMerge = function(objects, target) { +exports.buildIntoAndMerge = function (objects, target) { include(target, objects, true, true); }; exports.recursiveMerge = recursiveMerge; exports.assignOrWrapInDeprecateGetter = assignOrWrapInDeprecateGetter; -exports.replaceHookForTesting = function() {}; +exports.replaceHookForTesting = function () {}; }); // file: src/common/channel.js define("cordova/channel", function(require, exports, module) { -var utils = require('cordova/utils'), - nextGuid = 1; +var utils = require('cordova/utils'); +var nextGuid = 1; /** * Custom pub-sub "channel" that can have functions subscribed to it @@ -623,7 +618,7 @@ var utils = require('cordova/utils'), * @constructor * @param type String the channel name */ -var Channel = function(type, sticky) { +var Channel = function (type, sticky) { this.type = type; // Map of guid -> function. this.handlers = {}; @@ -636,72 +631,73 @@ var Channel = function(type, sticky) { // Function that is called when the first listener is subscribed, or when // the last listener is unsubscribed. this.onHasSubscribersChange = null; -}, - channel = { - /** - * Calls the provided function only after all of the channels specified - * have been fired. All channels must be sticky channels. - */ - join: function(h, c) { - var len = c.length, - i = len, - f = function() { - if (!(--i)) h(); - }; - for (var j=0; j - if (strategy == 'r') { + if (strategy === 'r') { continue; } var symbolPath = symbolList[i + 2]; @@ -1443,9 +1435,9 @@ exports.mapModules = function(context) { var parentObj = prepareNamespace(namespace, context); var target = parentObj[lastName]; - if (strategy == 'm' && target) { + if (strategy === 'm' && target) { builder.recursiveMerge(target, module); - } else if ((strategy == 'd' && !target) || (strategy != 'd')) { + } else if ((strategy === 'd' && !target) || (strategy !== 'd')) { if (!(symbolPath in origSymbols)) { origSymbols[symbolPath] = target; } @@ -1454,7 +1446,7 @@ exports.mapModules = function(context) { } }; -exports.getOriginalSymbol = function(context, symbolPath) { +exports.getOriginalSymbol = function (context, symbolPath) { var origSymbols = context.CDV_origSymbols; if (origSymbols && (symbolPath in origSymbols)) { return origSymbols[symbolPath]; @@ -1469,22 +1461,21 @@ exports.getOriginalSymbol = function(context, symbolPath) { exports.reset(); - }); // file: src/common/modulemapper_b.js define("cordova/modulemapper_b", function(require, exports, module) { -var builder = require('cordova/builder'), - symbolList = [], - deprecationMap; +var builder = require('cordova/builder'); +var symbolList = []; +var deprecationMap; -exports.reset = function() { +exports.reset = function () { symbolList = []; deprecationMap = {}; }; -function addEntry(strategy, moduleName, symbolPath, opt_deprecationMessage) { +function addEntry (strategy, moduleName, symbolPath, opt_deprecationMessage) { symbolList.push(strategy, moduleName, symbolPath); if (opt_deprecationMessage) { deprecationMap[symbolPath] = opt_deprecationMessage; @@ -1492,35 +1483,35 @@ function addEntry(strategy, moduleName, symbolPath, opt_deprecationMessage) { } // Note: Android 2.3 does have Function.bind(). -exports.clobbers = function(moduleName, symbolPath, opt_deprecationMessage) { +exports.clobbers = function (moduleName, symbolPath, opt_deprecationMessage) { addEntry('c', moduleName, symbolPath, opt_deprecationMessage); }; -exports.merges = function(moduleName, symbolPath, opt_deprecationMessage) { +exports.merges = function (moduleName, symbolPath, opt_deprecationMessage) { addEntry('m', moduleName, symbolPath, opt_deprecationMessage); }; -exports.defaults = function(moduleName, symbolPath, opt_deprecationMessage) { +exports.defaults = function (moduleName, symbolPath, opt_deprecationMessage) { addEntry('d', moduleName, symbolPath, opt_deprecationMessage); }; -exports.runs = function(moduleName) { +exports.runs = function (moduleName) { addEntry('r', moduleName, null); }; -function prepareNamespace(symbolPath, context) { +function prepareNamespace (symbolPath, context) { if (!symbolPath) { return context; } var parts = symbolPath.split('.'); var cur = context; - for (var i = 0, part; part = parts[i]; ++i) { + for (var i = 0, part; part = parts[i]; ++i) { // eslint-disable-line no-cond-assign cur = cur[part] = cur[part] || {}; } return cur; } -exports.mapModules = function(context) { +exports.mapModules = function (context) { var origSymbols = {}; context.CDV_origSymbols = origSymbols; for (var i = 0, len = symbolList.length; i < len; i += 3) { @@ -1528,7 +1519,7 @@ exports.mapModules = function(context) { var moduleName = symbolList[i + 1]; var module = require(moduleName); // - if (strategy == 'r') { + if (strategy === 'r') { continue; } var symbolPath = symbolList[i + 2]; @@ -1540,9 +1531,9 @@ exports.mapModules = function(context) { var parentObj = prepareNamespace(namespace, context); var target = parentObj[lastName]; - if (strategy == 'm' && target) { + if (strategy === 'm' && target) { builder.recursiveMerge(target, module); - } else if ((strategy == 'd' && !target) || (strategy != 'd')) { + } else if ((strategy === 'd' && !target) || (strategy !== 'd')) { if (!(symbolPath in origSymbols)) { origSymbols[symbolPath] = target; } @@ -1551,7 +1542,7 @@ exports.mapModules = function(context) { } }; -exports.getOriginalSymbol = function(context, symbolPath) { +exports.getOriginalSymbol = function (context, symbolPath) { var origSymbols = context.CDV_origSymbols; if (origSymbols && (symbolPath in origSymbols)) { return origSymbols[symbolPath]; @@ -1566,19 +1557,531 @@ exports.getOriginalSymbol = function(context, symbolPath) { exports.reset(); - }); -// file: /Users/shazron/Documents/git/apache/cordova-ios/cordova-js-src/platform.js +// file: /Users/spindori/Documents/Cordova/cordova-ios/cordova-js-src/platform.js define("cordova/platform", function(require, exports, module) { module.exports = { id: 'ios', - bootstrap: function() { + bootstrap: function () { + // Attach the console polyfill that is iOS-only to window.console + // see the file under plugin/ios/console.js + require('cordova/modulemapper').clobbers('cordova/plugin/ios/console', 'window.console'); + require('cordova/channel').onNativeReady.fire(); } }; +}); + +// file: /Users/spindori/Documents/Cordova/cordova-ios/cordova-js-src/plugin/ios/console.js +define("cordova/plugin/ios/console", function(require, exports, module) { + +//------------------------------------------------------------------------------ + +var logger = require('cordova/plugin/ios/logger'); + +//------------------------------------------------------------------------------ +// object that we're exporting +//------------------------------------------------------------------------------ +var console = module.exports; + +//------------------------------------------------------------------------------ +// copy of the original console object +//------------------------------------------------------------------------------ +var WinConsole = window.console; + +//------------------------------------------------------------------------------ +// whether to use the logger +//------------------------------------------------------------------------------ +var UseLogger = false; + +//------------------------------------------------------------------------------ +// Timers +//------------------------------------------------------------------------------ +var Timers = {}; + +//------------------------------------------------------------------------------ +// used for unimplemented methods +//------------------------------------------------------------------------------ +function noop() {} + +//------------------------------------------------------------------------------ +// used for unimplemented methods +//------------------------------------------------------------------------------ +console.useLogger = function (value) { + if (arguments.length) UseLogger = !!value; + + if (UseLogger) { + if (logger.useConsole()) { + throw new Error("console and logger are too intertwingly"); + } + } + + return UseLogger; +}; + +//------------------------------------------------------------------------------ +console.log = function() { + if (logger.useConsole()) return; + logger.log.apply(logger, [].slice.call(arguments)); +}; + +//------------------------------------------------------------------------------ +console.error = function() { + if (logger.useConsole()) return; + logger.error.apply(logger, [].slice.call(arguments)); +}; + +//------------------------------------------------------------------------------ +console.warn = function() { + if (logger.useConsole()) return; + logger.warn.apply(logger, [].slice.call(arguments)); +}; + +//------------------------------------------------------------------------------ +console.info = function() { + if (logger.useConsole()) return; + logger.info.apply(logger, [].slice.call(arguments)); +}; + +//------------------------------------------------------------------------------ +console.debug = function() { + if (logger.useConsole()) return; + logger.debug.apply(logger, [].slice.call(arguments)); +}; + +//------------------------------------------------------------------------------ +console.assert = function(expression) { + if (expression) return; + + var message = logger.format.apply(logger.format, [].slice.call(arguments, 1)); + console.log("ASSERT: " + message); +}; + +//------------------------------------------------------------------------------ +console.clear = function() {}; + +//------------------------------------------------------------------------------ +console.dir = function(object) { + console.log("%o", object); +}; + +//------------------------------------------------------------------------------ +console.dirxml = function(node) { + console.log(node.innerHTML); +}; + +//------------------------------------------------------------------------------ +console.trace = noop; + +//------------------------------------------------------------------------------ +console.group = console.log; + +//------------------------------------------------------------------------------ +console.groupCollapsed = console.log; + +//------------------------------------------------------------------------------ +console.groupEnd = noop; + +//------------------------------------------------------------------------------ +console.time = function(name) { + Timers[name] = new Date().valueOf(); +}; + +//------------------------------------------------------------------------------ +console.timeEnd = function(name) { + var timeStart = Timers[name]; + if (!timeStart) { + console.warn("unknown timer: " + name); + return; + } + + var timeElapsed = new Date().valueOf() - timeStart; + console.log(name + ": " + timeElapsed + "ms"); +}; + +//------------------------------------------------------------------------------ +console.timeStamp = noop; + +//------------------------------------------------------------------------------ +console.profile = noop; + +//------------------------------------------------------------------------------ +console.profileEnd = noop; + +//------------------------------------------------------------------------------ +console.count = noop; + +//------------------------------------------------------------------------------ +console.exception = console.log; + +//------------------------------------------------------------------------------ +console.table = function(data, columns) { + console.log("%o", data); +}; + +//------------------------------------------------------------------------------ +// return a new function that calls both functions passed as args +//------------------------------------------------------------------------------ +function wrappedOrigCall(orgFunc, newFunc) { + return function() { + var args = [].slice.call(arguments); + try { orgFunc.apply(WinConsole, args); } catch (e) {} + try { newFunc.apply(console, args); } catch (e) {} + }; +} + +//------------------------------------------------------------------------------ +// For every function that exists in the original console object, that +// also exists in the new console object, wrap the new console method +// with one that calls both +//------------------------------------------------------------------------------ +for (var key in console) { + if (typeof WinConsole[key] == "function") { + console[key] = wrappedOrigCall(WinConsole[key], console[key]); + } +} + +}); + +// file: /Users/spindori/Documents/Cordova/cordova-ios/cordova-js-src/plugin/ios/logger.js +define("cordova/plugin/ios/logger", function(require, exports, module) { + +//------------------------------------------------------------------------------ +// The logger module exports the following properties/functions: +// +// LOG - constant for the level LOG +// ERROR - constant for the level ERROR +// WARN - constant for the level WARN +// INFO - constant for the level INFO +// DEBUG - constant for the level DEBUG +// logLevel() - returns current log level +// logLevel(value) - sets and returns a new log level +// useConsole() - returns whether logger is using console +// useConsole(value) - sets and returns whether logger is using console +// log(message,...) - logs a message at level LOG +// error(message,...) - logs a message at level ERROR +// warn(message,...) - logs a message at level WARN +// info(message,...) - logs a message at level INFO +// debug(message,...) - logs a message at level DEBUG +// logLevel(level,message,...) - logs a message specified level +// +//------------------------------------------------------------------------------ + +var logger = exports; + +var exec = require('cordova/exec'); + +var UseConsole = false; +var UseLogger = true; +var Queued = []; +var DeviceReady = false; +var CurrentLevel; + +var originalConsole = console; + +/** + * Logging levels + */ + +var Levels = [ + "LOG", + "ERROR", + "WARN", + "INFO", + "DEBUG" +]; + +/* + * add the logging levels to the logger object and + * to a separate levelsMap object for testing + */ + +var LevelsMap = {}; +for (var i=0; i 0){ + formatArgs.unshift(fmtString); // add formatString + } + + var message = logger.format.apply(logger.format, formatArgs); + + if (LevelsMap[level] === null) { + throw new Error("invalid logging level: " + level); + } + + if (LevelsMap[level] > CurrentLevel) return; + + // queue the message if not yet at deviceready + if (!DeviceReady && !UseConsole) { + Queued.push([level, message]); + return; + } + + // Log using the native logger if that is enabled + if (UseLogger) { + exec(null, null, "Console", "logLevel", [level, message]); + } + + // Log using the console if that is enabled + if (UseConsole) { + // make sure console is not using logger + if (console.useLogger()) { + throw new Error("console and logger are too intertwingly"); + } + + // log to the console + switch (level) { + case logger.LOG: originalConsole.log(message); break; + case logger.ERROR: originalConsole.log("ERROR: " + message); break; + case logger.WARN: originalConsole.log("WARN: " + message); break; + case logger.INFO: originalConsole.log("INFO: " + message); break; + case logger.DEBUG: originalConsole.log("DEBUG: " + message); break; + } + } +}; + + +/** + * Formats a string and arguments following it ala console.log() + * + * Any remaining arguments will be appended to the formatted string. + * + * for rationale, see FireBug's Console API: + * http://getfirebug.com/wiki/index.php/Console_API + */ +logger.format = function(formatString, args) { + return __format(arguments[0], [].slice.call(arguments,1)).join(' '); +}; + + +//------------------------------------------------------------------------------ +/** + * Formats a string and arguments following it ala vsprintf() + * + * format chars: + * %j - format arg as JSON + * %o - format arg as JSON + * %c - format arg as '' + * %% - replace with '%' + * any other char following % will format it's + * arg via toString(). + * + * Returns an array containing the formatted string and any remaining + * arguments. + */ +function __format(formatString, args) { + if (formatString === null || formatString === undefined) return [""]; + if (arguments.length == 1) return [formatString.toString()]; + + if (typeof formatString != "string") + formatString = formatString.toString(); + + var pattern = /(.*?)%(.)(.*)/; + var rest = formatString; + var result = []; + + while (args.length) { + var match = pattern.exec(rest); + if (!match) break; + + var arg = args.shift(); + rest = match[3]; + result.push(match[1]); + + if (match[2] == '%') { + result.push('%'); + args.unshift(arg); + continue; + } + + result.push(__formatted(arg, match[2])); + } + + result.push(rest); + + var remainingArgs = [].slice.call(args); + remainingArgs.unshift(result.join('')); + return remainingArgs; +} + +function __formatted(object, formatChar) { + + try { + switch(formatChar) { + case 'j': + case 'o': return JSON.stringify(object); + case 'c': return ''; + } + } + catch (e) { + return "error JSON.stringify()ing argument: " + e; + } + + if ((object === null) || (object === undefined)) { + return Object.prototype.toString.call(object); + } + + return object.toString(); +} + + +//------------------------------------------------------------------------------ +// when deviceready fires, log queued messages +logger.__onDeviceReady = function() { + if (DeviceReady) return; + + DeviceReady = true; + + for (var i=0; i tag. // Exported for testing. -exports.injectScript = function(url, onload, onerror) { - var script = document.createElement("script"); +exports.injectScript = function (url, onload, onerror) { + var script = document.createElement('script'); // onload fires even when script fails loads with an error. script.onload = onload; // onerror fires for malformed URLs. @@ -1600,13 +2102,13 @@ exports.injectScript = function(url, onload, onerror) { document.head.appendChild(script); }; -function injectIfNecessary(id, url, onload, onerror) { +function injectIfNecessary (id, url, onload, onerror) { onerror = onerror || onload; - if (id in define.moduleMap) { + if (id in define.moduleMap) { // eslint-disable-line no-undef onload(); } else { - exports.injectScript(url, function() { - if (id in define.moduleMap) { + exports.injectScript(url, function () { + if (id in define.moduleMap) { // eslint-disable-line no-undef onload(); } else { onerror(); @@ -1615,9 +2117,9 @@ function injectIfNecessary(id, url, onload, onerror) { } } -function onScriptLoadingComplete(moduleList, finishPluginLoading) { +function onScriptLoadingComplete (moduleList, finishPluginLoading) { // Loop through all the plugins and then through their clobbers and merges. - for (var i = 0, module; module = moduleList[i]; i++) { + for (var i = 0, module; module = moduleList[i]; i++) { // eslint-disable-line no-cond-assign if (module.clobbers && module.clobbers.length) { for (var j = 0; j < module.clobbers.length; j++) { modulemapper.clobbers(module.id, module.clobbers[j]); @@ -1643,7 +2145,7 @@ function onScriptLoadingComplete(moduleList, finishPluginLoading) { // See plugman's plugin_loader.js for the details of this object. // This function is only called if the really is a plugins array that isn't empty. // Otherwise the onerror response handler will just call finishPluginLoading(). -function handlePluginsObject(path, moduleList, finishPluginLoading) { +function handlePluginsObject (path, moduleList, finishPluginLoading) { // Now inject the scripts. var scriptCounter = moduleList.length; @@ -1651,7 +2153,7 @@ function handlePluginsObject(path, moduleList, finishPluginLoading) { finishPluginLoading(); return; } - function scriptLoadedCallback() { + function scriptLoadedCallback () { if (!--scriptCounter) { onScriptLoadingComplete(moduleList, finishPluginLoading); } @@ -1662,13 +2164,13 @@ function handlePluginsObject(path, moduleList, finishPluginLoading) { } } -function findCordovaPath() { +function findCordovaPath () { var path = null; var scripts = document.getElementsByTagName('script'); var term = '/cordova.js'; - for (var n = scripts.length-1; n>-1; n--) { + for (var n = scripts.length - 1; n > -1; n--) { var src = scripts[n].src.replace(/\?.*$/, ''); // Strip any query param (CB-6007). - if (src.indexOf(term) == (src.length - term.length)) { + if (src.indexOf(term) === (src.length - term.length)) { path = src.substring(0, src.length - term.length) + '/'; break; } @@ -1679,19 +2181,18 @@ function findCordovaPath() { // Tries to load all plugins' js-modules. // This is an async process, but onDeviceReady is blocked on onPluginsReady. // onPluginsReady is fired when there are no plugins to load, or they are all done. -exports.load = function(callback) { +exports.load = function (callback) { var pathPrefix = findCordovaPath(); if (pathPrefix === null) { console.log('Could not find cordova.js script tag. Plugin loading may fail.'); pathPrefix = ''; } - injectIfNecessary('cordova/plugin_list', pathPrefix + 'cordova_plugins.js', function() { - var moduleList = require("cordova/plugin_list"); + injectIfNecessary('cordova/plugin_list', pathPrefix + 'cordova_plugins.js', function () { + var moduleList = require('cordova/plugin_list'); handlePluginsObject(pathPrefix, moduleList, callback); }, callback); }; - }); // file: src/common/pluginloader_b.js @@ -1701,14 +2202,14 @@ var modulemapper = require('cordova/modulemapper'); // Handler for the cordova_plugins.js content. // See plugman's plugin_loader.js for the details of this object. -function handlePluginsObject(moduleList) { +function handlePluginsObject (moduleList) { // if moduleList is not defined or empty, we've nothing to do if (!moduleList || !moduleList.length) { return; } // Loop through all the modules and then through their clobbers and merges. - for (var i = 0, module; module = moduleList[i]; i++) { + for (var i = 0, module; module = moduleList[i]; i++) { // eslint-disable-line no-cond-assign if (module.clobbers && module.clobbers.length) { for (var j = 0; j < module.clobbers.length; j++) { modulemapper.clobbers(module.id, module.clobbers[j]); @@ -1732,31 +2233,28 @@ function handlePluginsObject(moduleList) { // but the method accepts callback to be compatible with non-browserify flow. // onDeviceReady is blocked on onPluginsReady. onPluginsReady is fired when there are // no plugins to load, or they are all done. -exports.load = function(callback) { - var moduleList = require("cordova/plugin_list"); +exports.load = function (callback) { + var moduleList = require('cordova/plugin_list'); handlePluginsObject(moduleList); callback(); }; - }); // file: src/common/urlutil.js define("cordova/urlutil", function(require, exports, module) { - /** * For already absolute URLs, returns what is passed in. * For relative URLs, converts them to absolute ones. */ -exports.makeAbsolute = function makeAbsolute(url) { +exports.makeAbsolute = function makeAbsolute (url) { var anchorEl = document.createElement('a'); anchorEl.href = url; return anchorEl.href; }; - }); // file: src/common/utils.js @@ -1767,7 +2265,7 @@ var utils = exports; /** * Defines a property getter / setter for obj[key]. */ -utils.defineGetterSetter = function(obj, key, getFunc, opt_setFunc) { +utils.defineGetterSetter = function (obj, key, getFunc, opt_setFunc) { if (Object.defineProperty) { var desc = { get: getFunc, @@ -1790,13 +2288,13 @@ utils.defineGetterSetter = function(obj, key, getFunc, opt_setFunc) { */ utils.defineGetter = utils.defineGetterSetter; -utils.arrayIndexOf = function(a, item) { +utils.arrayIndexOf = function (a, item) { if (a.indexOf) { return a.indexOf(item); } var len = a.length; for (var i = 0; i < len; ++i) { - if (a[i] == item) { + if (a[i] === item) { return i; } } @@ -1806,15 +2304,15 @@ utils.arrayIndexOf = function(a, item) { /** * Returns whether the item was found in the array. */ -utils.arrayRemove = function(a, item) { +utils.arrayRemove = function (a, item) { var index = utils.arrayIndexOf(a, item); - if (index != -1) { + if (index !== -1) { a.splice(index, 1); } - return index != -1; + return index !== -1; }; -utils.typeName = function(val) { +utils.typeName = function (val) { return Object.prototype.toString.call(val).slice(8, -1); }; @@ -1822,39 +2320,39 @@ utils.typeName = function(val) { * Returns an indication of whether the argument is an array or not */ utils.isArray = Array.isArray || - function(a) {return utils.typeName(a) == 'Array';}; + function (a) { return utils.typeName(a) === 'Array'; }; /** * Returns an indication of whether the argument is a Date or not */ -utils.isDate = function(d) { +utils.isDate = function (d) { return (d instanceof Date); }; /** * Does a deep clone of the object. */ -utils.clone = function(obj) { - if(!obj || typeof obj == 'function' || utils.isDate(obj) || typeof obj != 'object') { +utils.clone = function (obj) { + if (!obj || typeof obj === 'function' || utils.isDate(obj) || typeof obj !== 'object') { return obj; } var retVal, i; - if(utils.isArray(obj)){ + if (utils.isArray(obj)) { retVal = []; - for(i = 0; i < obj.length; ++i){ + for (i = 0; i < obj.length; ++i) { retVal.push(utils.clone(obj[i])); } return retVal; } retVal = {}; - for(i in obj){ + for (i in obj) { // https://issues.apache.org/jira/browse/CB-11522 'unknown' type may be returned in // custom protocol activation case on Windows Phone 8.1 causing "No such interface supported" exception // on cloning. - if((!(i in retVal) || retVal[i] != obj[i]) && typeof obj[i] != 'undefined' && typeof obj[i] != 'unknown') { + if ((!(i in retVal) || retVal[i] !== obj[i]) && typeof obj[i] !== 'undefined' && typeof obj[i] !== 'unknown') { // eslint-disable-line valid-typeof retVal[i] = utils.clone(obj[i]); } } @@ -1864,20 +2362,20 @@ utils.clone = function(obj) { /** * Returns a wrapped version of the function */ -utils.close = function(context, func, params) { - return function() { +utils.close = function (context, func, params) { + return function () { var args = params || arguments; return func.apply(context, args); }; }; -//------------------------------------------------------------------------------ -function UUIDcreatePart(length) { - var uuidpart = ""; - for (var i=0; i 2.0.0' + pod 'GoogleCloudMessaging', '~> 1.2.0' + pod 'GGLInstanceID', '~> 1.2.1' end diff --git a/StoneIsland/platforms/ios/Podfile.lock b/StoneIsland/platforms/ios/Podfile.lock index 14e0fb64..0fe15b8a 100644 --- a/StoneIsland/platforms/ios/Podfile.lock +++ b/StoneIsland/platforms/ios/Podfile.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/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/FirebaseAnalytics b/StoneIsland/platforms/ios/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/FirebaseAnalytics deleted file mode 100755 index 4a346c5d..00000000 Binary files a/StoneIsland/platforms/ios/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/FirebaseAnalytics and /dev/null differ 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 - -#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 - -#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 the developer guides 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: -///
    -///
  • ad_activeview
  • -///
  • ad_click
  • -///
  • ad_exposure
  • -///
  • ad_impression
  • -///
  • ad_query
  • -///
  • adunit_exposure
  • -///
  • app_clear_data
  • -///
  • app_remove
  • -///
  • app_update
  • -///
  • error
  • -///
  • first_open
  • -///
  • in_app_purchase
  • -///
  • notification_dismiss
  • -///
  • notification_foreground
  • -///
  • notification_open
  • -///
  • notification_receive
  • -///
  • os_update
  • -///
  • screen_view
  • -///
  • session_start
  • -///
  • user_engagement
  • -///
-/// -/// @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 *)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: -///
    -///
  • first_open_time
  • -///
  • last_deep_link_referrer
  • -///
  • user_id
  • -///
-/// -/// @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 -/// Google's Privacy Policy -/// -/// @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 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 - -// 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 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 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: -/// -///
    -///
  • @c kFIRParameterQuantity (signed 64-bit integer as NSNumber)
  • -///
  • @c kFIRParameterItemID (NSString)
  • -///
  • @c kFIRParameterItemName (NSString)
  • -///
  • @c kFIRParameterItemCategory (NSString)
  • -///
  • @c kFIRParameterItemLocationID (NSString) (optional)
  • -///
  • @c kFIRParameterPrice (double as NSNumber) (optional)
  • -///
  • @c kFIRParameterCurrency (NSString) (optional)
  • -///
  • @c kFIRParameterValue (double as NSNumber) (optional)
  • -///
  • @c kFIRParameterOrigin (NSString) (optional)
  • -///
  • @c kFIRParameterDestination (NSString) (optional)
  • -///
  • @c kFIRParameterStartDate (NSString) (optional)
  • -///
  • @c kFIRParameterEndDate (NSString) (optional)
  • -///
-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: -/// -///
    -///
  • @c kFIRParameterQuantity (signed 64-bit integer as NSNumber)
  • -///
  • @c kFIRParameterItemID (NSString)
  • -///
  • @c kFIRParameterItemName (NSString)
  • -///
  • @c kFIRParameterItemCategory (NSString)
  • -///
  • @c kFIRParameterItemLocationID (NSString) (optional)
  • -///
  • @c kFIRParameterPrice (double as NSNumber) (optional)
  • -///
  • @c kFIRParameterCurrency (NSString) (optional)
  • -///
  • @c kFIRParameterValue (double as NSNumber) (optional)
  • -///
-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: -/// -///
    -///
  • @c kFIRParameterValue (double as NSNumber) (optional)
  • -///
  • @c kFIRParameterCurrency (NSString) (optional)
  • -///
  • @c kFIRParameterTransactionID (NSString) (optional)
  • -///
  • @c kFIRParameterStartDate (NSString) (optional)
  • -///
  • @c kFIRParameterEndDate (NSString) (optional)
  • -///
  • @c kFIRParameterNumberOfNights (signed 64-bit integer as NSNumber) (optional) for -/// hotel bookings
  • -///
  • @c kFIRParameterNumberOfRooms (signed 64-bit integer as NSNumber) (optional) for -/// hotel bookings
  • -///
  • @c kFIRParameterNumberOfPassengers (signed 64-bit integer as NSNumber) (optional) -/// for travel bookings
  • -///
  • @c kFIRParameterOrigin (NSString) (optional)
  • -///
  • @c kFIRParameterDestination (NSString) (optional)
  • -///
  • @c kFIRParameterTravelClass (NSString) (optional) for travel bookings
  • -///
-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: -/// -///
    -///
  • @c kFIRParameterSource (NSString)
  • -///
  • @c kFIRParameterMedium (NSString)
  • -///
  • @c kFIRParameterCampaign (NSString)
  • -///
  • @c kFIRParameterTerm (NSString) (optional)
  • -///
  • @c kFIRParameterContent (NSString) (optional)
  • -///
  • @c kFIRParameterAdNetworkClickID (NSString) (optional)
  • -///
  • @c kFIRParameterCP1 (NSString) (optional)
  • -///
-static NSString *const kFIREventCampaignDetails FIR_SWIFT_NAME(AnalyticsEventCampaignDetails) = - @"campaign_details"; - -/// Checkout progress. Params: -/// -///
    -///
  • @c kFIRParameterCheckoutStep (unsigned 64-bit integer as NSNumber)
  • -///
  • @c kFIRParameterCheckoutOption (NSString) (optional)
  • -///
-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: -/// -///
    -///
  • @c kFIRParameterVirtualCurrencyName (NSString)
  • -///
  • @c kFIRParameterValue (signed 64-bit integer or double as NSNumber)
  • -///
-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: -/// -///
    -///
  • @c kFIRParameterCurrency (NSString) (optional)
  • -///
  • @c kFIRParameterValue (double as NSNumber) (optional)
  • -///
  • @c kFIRParameterTransactionID (NSString) (optional)
  • -///
  • @c kFIRParameterTax (double as NSNumber) (optional)
  • -///
  • @c kFIRParameterShipping (double as NSNumber) (optional)
  • -///
  • @c kFIRParameterCoupon (NSString) (optional)
  • -///
  • @c kFIRParameterLocation (NSString) (optional)
  • -///
  • @c kFIRParameterStartDate (NSString) (optional)
  • -///
  • @c kFIRParameterEndDate (NSString) (optional)
  • -///
  • @c kFIRParameterNumberOfNights (signed 64-bit integer as NSNumber) (optional) for -/// hotel bookings
  • -///
  • @c kFIRParameterNumberOfRooms (signed 64-bit integer as NSNumber) (optional) for -/// hotel bookings
  • -///
  • @c kFIRParameterNumberOfPassengers (signed 64-bit integer as NSNumber) (optional) -/// for travel bookings
  • -///
  • @c kFIRParameterOrigin (NSString) (optional)
  • -///
  • @c kFIRParameterDestination (NSString) (optional)
  • -///
  • @c kFIRParameterTravelClass (NSString) (optional) for travel bookings
  • -///
-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: -/// -///
    -///
  • @c kFIRParameterCurrency (NSString) (optional)
  • -///
  • @c kFIRParameterValue (double as NSNumber) (optional)
  • -///
-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: -/// -///
    -///
  • @c kFIRParameterGroupID (NSString)
  • -///
-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: -/// -///
    -///
  • @c kFIRParameterLevel (signed 64-bit integer as NSNumber)
  • -///
  • @c kFIRParameterCharacter (NSString) (optional)
  • -///
-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: -/// -///
    -///
  • @c kFIRParameterScore (signed 64-bit integer as NSNumber)
  • -///
  • @c kFIRParameterLevel (signed 64-bit integer as NSNumber) (optional)
  • -///
  • @c kFIRParameterCharacter (NSString) (optional)
  • -///
-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: -/// -///
    -///
  • @c kFIRParameterQuantity (signed 64-bit integer as NSNumber)
  • -///
  • @c kFIRParameterItemID (NSString)
  • -///
  • @c kFIRParameterItemName (NSString)
  • -///
  • @c kFIRParameterItemCategory (NSString)
  • -///
  • @c kFIRParameterItemLocationID (NSString) (optional)
  • -///
  • @c kFIRParameterPrice (double as NSNumber) (optional)
  • -///
  • @c kFIRParameterCurrency (NSString) (optional)
  • -///
  • @c kFIRParameterValue (double as NSNumber) (optional)
  • -///
-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: -/// -///
    -///
  • @c kFIRParameterCurrency (NSString) (optional)
  • -///
  • @c kFIRParameterValue (double as NSNumber) (optional)
  • -///
  • @c kFIRParameterTransactionID (NSString) (optional)
  • -///
-static NSString *const kFIREventPurchaseRefund FIR_SWIFT_NAME(AnalyticsEventPurchaseRefund) = - @"purchase_refund"; - -/// Remove from cart event. Params: -/// -///
    -///
  • @c kFIRParameterQuantity (signed 64-bit integer as NSNumber)
  • -///
  • @c kFIRParameterItemID (NSString)
  • -///
  • @c kFIRParameterItemName (NSString)
  • -///
  • @c kFIRParameterItemCategory (NSString)
  • -///
  • @c kFIRParameterItemLocationID (NSString) (optional)
  • -///
  • @c kFIRParameterPrice (double as NSNumber) (optional)
  • -///
  • @c kFIRParameterCurrency (NSString) (optional)
  • -///
  • @c kFIRParameterValue (double as NSNumber) (optional)
  • -///
  • @c kFIRParameterOrigin (NSString) (optional)
  • -///
  • @c kFIRParameterDestination (NSString) (optional)
  • -///
  • @c kFIRParameterStartDate (NSString) (optional)
  • -///
  • @c kFIRParameterEndDate (NSString) (optional)
  • -///
-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: -/// -///
    -///
  • @c kFIRParameterSearchTerm (NSString)
  • -///
  • @c kFIRParameterStartDate (NSString) (optional)
  • -///
  • @c kFIRParameterEndDate (NSString) (optional)
  • -///
  • @c kFIRParameterNumberOfNights (signed 64-bit integer as NSNumber) (optional) for -/// hotel bookings
  • -///
  • @c kFIRParameterNumberOfRooms (signed 64-bit integer as NSNumber) (optional) for -/// hotel bookings
  • -///
  • @c kFIRParameterNumberOfPassengers (signed 64-bit integer as NSNumber) (optional) -/// for travel bookings
  • -///
  • @c kFIRParameterOrigin (NSString) (optional)
  • -///
  • @c kFIRParameterDestination (NSString) (optional)
  • -///
  • @c kFIRParameterTravelClass (NSString) (optional) for travel bookings
  • -///
-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: -/// -///
    -///
  • @c kFIRParameterContentType (NSString)
  • -///
  • @c kFIRParameterItemID (NSString)
  • -///
-static NSString *const kFIREventSelectContent FIR_SWIFT_NAME(AnalyticsEventSelectContent) = - @"select_content"; - -/// Set checkout option. Params: -/// -///
    -///
  • @c kFIRParameterCheckoutStep (unsigned 64-bit integer as NSNumber)
  • -///
  • @c kFIRParameterCheckoutOption (NSString)
  • -///
-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: -/// -///
    -///
  • @c kFIRParameterContentType (NSString)
  • -///
  • @c kFIRParameterItemID (NSString)
  • -///
-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: -/// -///
    -///
  • @c kFIRParameterSignUpMethod (NSString)
  • -///
-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: -/// -///
    -///
  • @c kFIRParameterItemName (NSString)
  • -///
  • @c kFIRParameterVirtualCurrencyName (NSString)
  • -///
  • @c kFIRParameterValue (signed 64-bit integer or double as NSNumber)
  • -///
-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: -/// -///
    -///
  • @c kFIRParameterAchievementID (NSString)
  • -///
-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: -/// -///
    -///
  • @c kFIRParameterItemID (NSString)
  • -///
  • @c kFIRParameterItemName (NSString)
  • -///
  • @c kFIRParameterItemCategory (NSString)
  • -///
  • @c kFIRParameterItemLocationID (NSString) (optional)
  • -///
  • @c kFIRParameterPrice (double as NSNumber) (optional)
  • -///
  • @c kFIRParameterQuantity (signed 64-bit integer as NSNumber) (optional)
  • -///
  • @c kFIRParameterCurrency (NSString) (optional)
  • -///
  • @c kFIRParameterValue (double as NSNumber) (optional)
  • -///
  • @c kFIRParameterStartDate (NSString) (optional)
  • -///
  • @c kFIRParameterEndDate (NSString) (optional)
  • -///
  • @c kFIRParameterFlightNumber (NSString) (optional) for travel bookings
  • -///
  • @c kFIRParameterNumberOfPassengers (signed 64-bit integer as NSNumber) (optional) -/// for travel bookings
  • -///
  • @c kFIRParameterNumberOfNights (signed 64-bit integer as NSNumber) (optional) for -/// travel bookings
  • -///
  • @c kFIRParameterNumberOfRooms (signed 64-bit integer as NSNumber) (optional) for -/// travel bookings
  • -///
  • @c kFIRParameterOrigin (NSString) (optional)
  • -///
  • @c kFIRParameterDestination (NSString) (optional)
  • -///
  • @c kFIRParameterSearchTerm (NSString) (optional) for travel bookings
  • -///
  • @c kFIRParameterTravelClass (NSString) (optional) for travel bookings
  • -///
-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: -/// -///
    -///
  • @c kFIRParameterItemCategory (NSString)
  • -///
-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: -/// -///
    -///
  • @c kFIRParameterSearchTerm (NSString)
  • -///
-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 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). -///
-///     NSDictionary *params = @{
-///       kFIRParameterAchievementID : @"10_matches_won",
-///       // ...
-///     };
-/// 
-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. -///
-///     NSDictionary *params = @{
-///       kFIRParameterAdNetworkClickID : @"1234567",
-///       // ...
-///     };
-/// 
-static NSString *const kFIRParameterAdNetworkClickID - FIR_SWIFT_NAME(AnalyticsParameterAdNetworkClickID) = @"aclid"; - -/// The store or affiliation from which this transaction occurred (NSString). -///
-///     NSDictionary *params = @{
-///       kFIRParameterAffiliation : @"Google Store",
-///       // ...
-///     };
-/// 
-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). -///
-///     NSDictionary *params = @{
-///       kFIRParameterCampaign : @"winter_promotion",
-///       // ...
-///     };
-/// 
-static NSString *const kFIRParameterCampaign FIR_SWIFT_NAME(AnalyticsParameterCampaign) = - @"campaign"; - -/// Character used in game (NSString). -///
-///     NSDictionary *params = @{
-///       kFIRParameterCharacter : @"beat_boss",
-///       // ...
-///     };
-/// 
-static NSString *const kFIRParameterCharacter FIR_SWIFT_NAME(AnalyticsParameterCharacter) = - @"character"; - -/// The checkout step (1..N) (unsigned 64-bit integer as NSNumber). -///
-///     NSDictionary *params = @{
-///       kFIRParameterCheckoutStep : @"1",
-///       // ...
-///     };
-/// 
-static NSString *const kFIRParameterCheckoutStep FIR_SWIFT_NAME(AnalyticsParameterCheckoutStep) = - @"checkout_step"; - -/// Some option on a step in an ecommerce flow (NSString). -///
-///     NSDictionary *params = @{
-///       kFIRParameterCheckoutOption : @"Visa",
-///       // ...
-///     };
-/// 
-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). -///
-///     NSDictionary *params = @{
-///       kFIRParameterContentType : @"news article",
-///       // ...
-///     };
-/// 
-static NSString *const kFIRParameterContentType FIR_SWIFT_NAME(AnalyticsParameterContentType) = - @"content_type"; - -/// Coupon code for a purchasable item (NSString). -///
-///     NSDictionary *params = @{
-///       kFIRParameterCoupon : @"zz123",
-///       // ...
-///     };
-/// 
-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. -///
-///     NSDictionary *params = @{
-///       kFIRParameterCP1 : @"custom_data",
-///       // ...
-///     };
-/// 
-static NSString *const kFIRParameterCP1 FIR_SWIFT_NAME(AnalyticsParameterCP1) = @"cp1"; - -/// The name of a creative used in a promotional spot (NSString). -///
-///     NSDictionary *params = @{
-///       kFIRParameterCreativeName : @"Summer Sale",
-///       // ...
-///     };
-/// 
-static NSString *const kFIRParameterCreativeName FIR_SWIFT_NAME(AnalyticsParameterCreativeName) = - @"creative_name"; - -/// The name of a creative slot (NSString). -///
-///     NSDictionary *params = @{
-///       kFIRParameterCreativeSlot : @"summer_banner2",
-///       // ...
-///     };
-/// 
-static NSString *const kFIRParameterCreativeSlot FIR_SWIFT_NAME(AnalyticsParameterCreativeSlot) = - @"creative_slot"; - -/// Purchase currency in 3-letter -/// ISO_4217 format (NSString). -///
-///     NSDictionary *params = @{
-///       kFIRParameterCurrency : @"USD",
-///       // ...
-///     };
-/// 
-static NSString *const kFIRParameterCurrency FIR_SWIFT_NAME(AnalyticsParameterCurrency) = - @"currency"; - -/// Flight or Travel destination (NSString). -///
-///     NSDictionary *params = @{
-///       kFIRParameterDestination : @"Mountain View, CA",
-///       // ...
-///     };
-/// 
-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). -///
-///     NSDictionary *params = @{
-///       kFIRParameterEndDate : @"2015-09-14",
-///       // ...
-///     };
-/// 
-static NSString *const kFIRParameterEndDate FIR_SWIFT_NAME(AnalyticsParameterEndDate) = @"end_date"; - -/// Flight number for travel events (NSString). -///
-///     NSDictionary *params = @{
-///       kFIRParameterFlightNumber : @"ZZ800",
-///       // ...
-///     };
-/// 
-static NSString *const kFIRParameterFlightNumber FIR_SWIFT_NAME(AnalyticsParameterFlightNumber) = - @"flight_number"; - -/// Group/clan/guild ID (NSString). -///
-///     NSDictionary *params = @{
-///       kFIRParameterGroupID : @"g1",
-///       // ...
-///     };
-/// 
-static NSString *const kFIRParameterGroupID FIR_SWIFT_NAME(AnalyticsParameterGroupID) = @"group_id"; - -/// Index of an item in a list (signed 64-bit integer as NSNumber). -///
-///     NSDictionary *params = @{
-///       kFIRParameterIndex : @(1),
-///       // ...
-///     };
-/// 
-static NSString *const kFIRParameterIndex FIR_SWIFT_NAME(AnalyticsParameterIndex) = @"index"; - -/// Item brand (NSString). -///
-///     NSDictionary *params = @{
-///       kFIRParameterItemBrand : @"Google",
-///       // ...
-///     };
-/// 
-static NSString *const kFIRParameterItemBrand FIR_SWIFT_NAME(AnalyticsParameterItemBrand) = - @"item_brand"; - -/// Item category (NSString). -///
-///     NSDictionary *params = @{
-///       kFIRParameterItemCategory : @"t-shirts",
-///       // ...
-///     };
-/// 
-static NSString *const kFIRParameterItemCategory FIR_SWIFT_NAME(AnalyticsParameterItemCategory) = - @"item_category"; - -/// Item ID (NSString). -///
-///     NSDictionary *params = @{
-///       kFIRParameterItemID : @"p7654",
-///       // ...
-///     };
-/// 
-static NSString *const kFIRParameterItemID FIR_SWIFT_NAME(AnalyticsParameterItemID) = @"item_id"; - -/// The Google Place ID (NSString) that -/// corresponds to the associated item. Alternatively, you can supply your own custom Location ID. -///
-///     NSDictionary *params = @{
-///       kFIRParameterItemLocationID : @"ChIJiyj437sx3YAR9kUWC8QkLzQ",
-///       // ...
-///     };
-/// 
-static NSString *const kFIRParameterItemLocationID - FIR_SWIFT_NAME(AnalyticsParameterItemLocationID) = @"item_location_id"; - -/// Item name (NSString). -///
-///     NSDictionary *params = @{
-///       kFIRParameterItemName : @"abc",
-///       // ...
-///     };
-/// 
-static NSString *const kFIRParameterItemName FIR_SWIFT_NAME(AnalyticsParameterItemName) = - @"item_name"; - -/// The list in which the item was presented to the user (NSString). -///
-///     NSDictionary *params = @{
-///       kFIRParameterItemList : @"Search Results",
-///       // ...
-///     };
-/// 
-static NSString *const kFIRParameterItemList FIR_SWIFT_NAME(AnalyticsParameterItemList) = - @"item_list"; - -/// Item variant (NSString). -///
-///     NSDictionary *params = @{
-///       kFIRParameterItemVariant : @"Red",
-///       // ...
-///     };
-/// 
-static NSString *const kFIRParameterItemVariant FIR_SWIFT_NAME(AnalyticsParameterItemVariant) = - @"item_variant"; - -/// Level in game (signed 64-bit integer as NSNumber). -///
-///     NSDictionary *params = @{
-///       kFIRParameterLevel : @(42),
-///       // ...
-///     };
-/// 
-static NSString *const kFIRParameterLevel FIR_SWIFT_NAME(AnalyticsParameterLevel) = @"level"; - -/// Location (NSString). The Google Place ID -/// that corresponds to the associated event. Alternatively, you can supply your own custom -/// Location ID. -///
-///     NSDictionary *params = @{
-///       kFIRParameterLocation : @"ChIJiyj437sx3YAR9kUWC8QkLzQ",
-///       // ...
-///     };
-/// 
-static NSString *const kFIRParameterLocation FIR_SWIFT_NAME(AnalyticsParameterLocation) = - @"location"; - -/// The advertising or marketing medium, for example: cpc, banner, email, push. Highly recommended -/// (NSString). -///
-///     NSDictionary *params = @{
-///       kFIRParameterMedium : @"email",
-///       // ...
-///     };
-/// 
-static NSString *const kFIRParameterMedium FIR_SWIFT_NAME(AnalyticsParameterMedium) = @"medium"; - -/// Number of nights staying at hotel (signed 64-bit integer as NSNumber). -///
-///     NSDictionary *params = @{
-///       kFIRParameterNumberOfNights : @(3),
-///       // ...
-///     };
-/// 
-static NSString *const kFIRParameterNumberOfNights - FIR_SWIFT_NAME(AnalyticsParameterNumberOfNights) = @"number_of_nights"; - -/// Number of passengers traveling (signed 64-bit integer as NSNumber). -///
-///     NSDictionary *params = @{
-///       kFIRParameterNumberOfPassengers : @(11),
-///       // ...
-///     };
-/// 
-static NSString *const kFIRParameterNumberOfPassengers - FIR_SWIFT_NAME(AnalyticsParameterNumberOfPassengers) = @"number_of_passengers"; - -/// Number of rooms for travel events (signed 64-bit integer as NSNumber). -///
-///     NSDictionary *params = @{
-///       kFIRParameterNumberOfRooms : @(2),
-///       // ...
-///     };
-/// 
-static NSString *const kFIRParameterNumberOfRooms FIR_SWIFT_NAME(AnalyticsParameterNumberOfRooms) = - @"number_of_rooms"; - -/// Flight or Travel origin (NSString). -///
-///     NSDictionary *params = @{
-///       kFIRParameterOrigin : @"Mountain View, CA",
-///       // ...
-///     };
-/// 
-static NSString *const kFIRParameterOrigin FIR_SWIFT_NAME(AnalyticsParameterOrigin) = @"origin"; - -/// Purchase price (double as NSNumber). -///
-///     NSDictionary *params = @{
-///       kFIRParameterPrice : @(1.0),
-///       kFIRParameterCurrency : @"USD",  // e.g. $1.00 USD
-///       // ...
-///     };
-/// 
-static NSString *const kFIRParameterPrice FIR_SWIFT_NAME(AnalyticsParameterPrice) = @"price"; - -/// Purchase quantity (signed 64-bit integer as NSNumber). -///
-///     NSDictionary *params = @{
-///       kFIRParameterQuantity : @(1),
-///       // ...
-///     };
-/// 
-static NSString *const kFIRParameterQuantity FIR_SWIFT_NAME(AnalyticsParameterQuantity) = - @"quantity"; - -/// Score in game (signed 64-bit integer as NSNumber). -///
-///     NSDictionary *params = @{
-///       kFIRParameterScore : @(4200),
-///       // ...
-///     };
-/// 
-static NSString *const kFIRParameterScore FIR_SWIFT_NAME(AnalyticsParameterScore) = @"score"; - -/// The search string/keywords used (NSString). -///
-///     NSDictionary *params = @{
-///       kFIRParameterSearchTerm : @"periodic table",
-///       // ...
-///     };
-/// 
-static NSString *const kFIRParameterSearchTerm FIR_SWIFT_NAME(AnalyticsParameterSearchTerm) = - @"search_term"; - -/// Shipping cost (double as NSNumber). -///
-///     NSDictionary *params = @{
-///       kFIRParameterShipping : @(9.50),
-///       kFIRParameterCurrency : @"USD",  // e.g. $9.50 USD
-///       // ...
-///     };
-/// 
-static NSString *const kFIRParameterShipping FIR_SWIFT_NAME(AnalyticsParameterShipping) = - @"shipping"; - -/// Sign up method (NSString). -///
-///     NSDictionary *params = @{
-///       kFIRParameterSignUpMethod : @"google",
-///       // ...
-///     };
-/// 
-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). -///
-///     NSDictionary *params = @{
-///       kFIRParameterSource : @"InMobi",
-///       // ...
-///     };
-/// 
-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). -///
-///     NSDictionary *params = @{
-///       kFIRParameterStartDate : @"2015-09-14",
-///       // ...
-///     };
-/// 
-static NSString *const kFIRParameterStartDate FIR_SWIFT_NAME(AnalyticsParameterStartDate) = - @"start_date"; - -/// Tax amount (double as NSNumber). -///
-///     NSDictionary *params = @{
-///       kFIRParameterTax : @(1.0),
-///       kFIRParameterCurrency : @"USD",  // e.g. $1.00 USD
-///       // ...
-///     };
-/// 
-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). -///
-///     NSDictionary *params = @{
-///       kFIRParameterTerm : @"game",
-///       // ...
-///     };
-/// 
-static NSString *const kFIRParameterTerm FIR_SWIFT_NAME(AnalyticsParameterTerm) = @"term"; - -/// A single ID for a ecommerce group transaction (NSString). -///
-///     NSDictionary *params = @{
-///       kFIRParameterTransactionID : @"ab7236dd9823",
-///       // ...
-///     };
-/// 
-static NSString *const kFIRParameterTransactionID FIR_SWIFT_NAME(AnalyticsParameterTransactionID) = - @"transaction_id"; - -/// Travel class (NSString). -///
-///     NSDictionary *params = @{
-///       kFIRParameterTravelClass : @"business",
-///       // ...
-///     };
-/// 
-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 -/// currency code for conversion events will cause that -/// conversion to be omitted from reporting. -///
-///     NSDictionary *params = @{
-///       kFIRParameterValue : @(3.99),
-///       kFIRParameterCurrency : @"USD",  // e.g. $3.99 USD
-///       // ...
-///     };
-/// 
-static NSString *const kFIRParameterValue FIR_SWIFT_NAME(AnalyticsParameterValue) = @"value"; - -/// Name of virtual currency type (NSString). -///
-///     NSDictionary *params = @{
-///       kFIRParameterVirtualCurrencyName : @"virtual_currency_name",
-///       // ...
-///     };
-/// 
-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 deleted file mode 100755 index 7561ad5a..00000000 Binary files a/StoneIsland/platforms/ios/Pods/FirebaseCore/Frameworks/FirebaseCore.framework/FirebaseCore and /dev/null differ 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 - -#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 - -#if TARGET_OS_IOS -// TODO: Remove UIKit import on next breaking change release -#import -#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 *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 *)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 - -#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 - -// 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 - -#import "FIRCoreSwiftNameSupport.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * This class provides constant fields of Google APIs. - */ -FIR_SWIFT_NAME(FirebaseOptions) -@interface FIROptions : NSObject - -/** - * 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 deleted file mode 100755 index f8b09d47..00000000 Binary files a/StoneIsland/platforms/ios/Pods/FirebaseCore/Frameworks/FirebaseCoreDiagnostics.framework/FirebaseCoreDiagnostics and /dev/null differ 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 deleted file mode 100755 index 13965a90..00000000 Binary files a/StoneIsland/platforms/ios/Pods/FirebaseCore/Frameworks/FirebaseNanoPB.framework/FirebaseNanoPB and /dev/null differ 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 deleted file mode 100755 index 8bde6c14..00000000 Binary files a/StoneIsland/platforms/ios/Pods/FirebaseInstanceID/Frameworks/FirebaseInstanceID.framework/FirebaseInstanceID and /dev/null differ diff --git a/StoneIsland/platforms/ios/Pods/FirebaseInstanceID/Frameworks/FirebaseInstanceID.framework/Headers/FIRInstanceID.h b/StoneIsland/platforms/ios/Pods/FirebaseInstanceID/Frameworks/FirebaseInstanceID.framework/Headers/FIRInstanceID.h deleted file mode 100755 index 4b3c546c..00000000 --- a/StoneIsland/platforms/ios/Pods/FirebaseInstanceID/Frameworks/FirebaseInstanceID.framework/Headers/FIRInstanceID.h +++ /dev/null @@ -1,279 +0,0 @@ -#import - -// 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 - -/** - * @memberof FIRInstanceID - * - * The scope to be used when fetching/deleting a token for Firebase Messaging. - */ -FOUNDATION_EXPORT NSString * __nonnull const kFIRInstanceIDScopeFirebaseMessaging - FIR_SWIFT_NAME(InstanceIDScopeFirebaseMessaging); - -#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. - * - * Instance ID service will throttle the refresh event across all devices - * to control the rate of token updates on application servers. - */ -FOUNDATION_EXPORT const NSNotificationName __nonnull kFIRInstanceIDTokenRefreshNotification - FIR_SWIFT_NAME(InstanceIDTokenRefresh); -#else -/** - * 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. - * - * Instance ID service will throttle the refresh event across all devices - * to control the rate of token updates on application servers. - */ -FOUNDATION_EXPORT NSString * __nonnull const kFIRInstanceIDTokenRefreshNotification - FIR_SWIFT_NAME(InstanceIDTokenRefreshNotification); -#endif // defined(__IPHONE_10_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0 - -/** - * @related FIRInstanceID - * - * The completion handler invoked when the InstanceID token returns. If - * the call fails we return the appropriate `error code` as described below. - * - * @param token The valid token as returned by InstanceID backend. - * - * @param error The error describing why generating a new token - * failed. See the error codes below for a more detailed - * description. - */ -typedef void(^FIRInstanceIDTokenHandler)( NSString * __nullable token, NSError * __nullable error) - FIR_SWIFT_NAME(InstanceIDTokenHandler); - - -/** - * @related FIRInstanceID - * - * The completion handler invoked when the InstanceID `deleteToken` returns. If - * the call fails we return the appropriate `error code` as described below - * - * @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); - -/** - * @related FIRInstanceID - * - * 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. - * - * @param identity A valid identity for the app instance, nil if there was an 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); - -/** - * @related FIRInstanceID - * - * 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. - * - * @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); - -/** - * @enum FIRInstanceIDError - */ -typedef NS_ENUM(NSUInteger, FIRInstanceIDError) { - // Http related errors. - - /// Unknown error. - FIRInstanceIDErrorUnknown = 0, - - /// Auth Error -- GCM couldn't validate request from this client. - FIRInstanceIDErrorAuthentication = 1, - - /// NoAccess -- InstanceID service cannot be accessed. - FIRInstanceIDErrorNoAccess = 2, - - /// Timeout -- Request to InstanceID backend timed out. - FIRInstanceIDErrorTimeout = 3, - - /// Network -- No network available to reach the servers. - FIRInstanceIDErrorNetwork = 4, - - /// OperationInProgress -- Another similar operation in progress, - /// bailing this one. - FIRInstanceIDErrorOperationInProgress = 5, - - /// InvalidRequest -- Some parameters of the request were invalid. - FIRInstanceIDErrorInvalidRequest = 7, -} FIR_SWIFT_NAME(InstanceIDError); - -/** - * 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."); - -/** - * Instance ID provides a unique identifier for each app instance and a mechanism - * to authenticate and authorize actions (for example, sending an FCM 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 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]`. - */ -FIR_SWIFT_NAME(InstanceID) -@interface FIRInstanceID : NSObject - -/** - * FIRInstanceID. - * - * @return A shared instance of FIRInstanceID. - */ -+ (nonnull instancetype)instanceID FIR_SWIFT_NAME(instanceID()); - -/** - * Unavailable. Use +instanceID instead. - */ -- (nonnull instancetype)init __attribute__((unavailable("Use +instanceID instead."))); - -/** - * 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. - */ -- (void)setAPNSToken:(nonnull NSData *)token - type:(FIRInstanceIDAPNSTokenType)type - __deprecated_msg("Use FIRMessaging's APNSToken property instead."); - -#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. - * - * This is similar to an OAuth2 token except, it applies to the - * application instance instead of a user. - * - * This is an asynchronous call. If the token fetching fails for some reason - * we invoke the completion callback with nil `token` and the appropriate - * error. - * - * Note, you can only have one `token` or `deleteToken` call for a given - * authorizedEntity and scope at any point of time. Making another such call with the - * same authorizedEntity and scope before the last one finishes will result in an - * error with code `OperationInProgress`. - * - * @see FIRInstanceID deleteTokenWithAuthorizedEntity:scope:handler: - * - * @param authorizedEntity Entity authorized by the token. - * @param scope Action authorized for authorizedEntity. - * @param options The extra options to be sent with your token request. The - * value for the `apns_token` should be the NSData object - * passed to UIApplication's - * `didRegisterForRemoteNotificationsWithDeviceToken` method. - * All other keys and values in the options dict need to be - * instances of NSString or else they will be discarded. Bundle - * keys starting with 'GCM.' and 'GOOGLE.' are reserved. - * @param handler The callback handler which is invoked when the token is - * successfully fetched. In case of success a valid `token` and - * `nil` error are returned. In case of any error the `token` - * 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; - -/** - * Revokes access to a scope (action) for an entity previously - * authorized by `[FIRInstanceID 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 - * `handler` callback passed in with the appropriate error code. - * - * Note, you can only have one `token` or `deleteToken` call for a given - * authorizedEntity and scope at a point of time. Making another such call with the - * same authorizedEntity and scope before the last one finishes will result in an error - * with code `OperationInProgress`. - * - * @param authorizedEntity Entity that must no longer have access. - * @param scope Action that entity is no longer authorized to perform. - * @param handler The handler that is invoked once the unsubscribe call ends. - * 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; - -#pragma mark - Identity - -/** - * Asynchronously fetch a stable identifier that uniquely identifies the app - * instance. If the identifier has been revoked or has expired, this method will - * return a new identifier. - * - * - * @param handler The handler to invoke once the identifier has been fetched. - * In case of error an appropriate error object is returned else - * a valid identifier is returned and a valid identifier for the - * application instance. - */ -- (void)getIDWithHandler:(nonnull FIRInstanceIDHandler)handler - FIR_SWIFT_NAME(getID(handler:)); - -/** - * Resets Instance ID and revokes all tokens. - */ -- (void)deleteIDWithHandler:(nonnull FIRInstanceIDDeleteHandler)handler - FIR_SWIFT_NAME(deleteID(handler:)); - -@end 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/FirebaseInstanceID/README.md b/StoneIsland/platforms/ios/Pods/FirebaseInstanceID/README.md deleted file mode 100755 index 25fe2196..00000000 --- a/StoneIsland/platforms/ios/Pods/FirebaseInstanceID/README.md +++ /dev/null @@ -1,10 +0,0 @@ -# InstanceID SDK for iOS - -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). - - -Please visit [our developer -site](https://developers.google.com/instance-id/) for integration instructions, -documentation, support information, and terms of service. diff --git a/StoneIsland/platforms/ios/Pods/FirebaseMessaging/Frameworks/FirebaseMessaging.framework/FirebaseMessaging b/StoneIsland/platforms/ios/Pods/FirebaseMessaging/Frameworks/FirebaseMessaging.framework/FirebaseMessaging deleted file mode 100755 index 095a9fc4..00000000 Binary files a/StoneIsland/platforms/ios/Pods/FirebaseMessaging/Frameworks/FirebaseMessaging.framework/FirebaseMessaging and /dev/null differ 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 - - -// 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 - -/// 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 delegate; - - -/** - * Delegate to handle remote data messages received via FCM for devices running iOS 10 or above. - */ -@property(nonatomic, weak, nullable) id 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/GGLInstanceID/Headers/Public/GGLInstanceID.h b/StoneIsland/platforms/ios/Pods/GGLInstanceID/Headers/Public/GGLInstanceID.h new file mode 100644 index 00000000..e3fd3c64 --- /dev/null +++ b/StoneIsland/platforms/ios/Pods/GGLInstanceID/Headers/Public/GGLInstanceID.h @@ -0,0 +1,273 @@ +#import + +@class GGLInstanceIDConfig; + +/** + * @memberof GGLInstanceID + * + * 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 *const kGGLInstanceIDRegisterAPNSOption; + +/** + * @memberof GGLInstanceID + * + * 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 NSString *const kGGLInstanceIDAPNSServerTypeSandboxOption; + +/** + * @memberof GGLInstanceID + * + * The scope to be used when fetching/deleting a token for + * GCM (Google Cloud Messaging). + */ +FOUNDATION_EXPORT NSString *const kGGLInstanceIDScopeGCM; + +/** + * @related GGLInstanceID + * + * The completion handler invoked when the InstanceID token returns. If + * the call fails we return the appropriate `error code` as described below. + * + * @param token The valid token as returned by InstanceID backend. + * + * @param error The error describing why generating a new token + * failed. See the error codes below for a more detailed + * description. + */ +typedef void(^GGLInstanceIDTokenHandler)(NSString *token, NSError *error); + + +/** + * @related GGLInstanceID + * + * The completion handler invoked when the InstanceID `deleteToken` returns. If + * the call fails we return the appropriate `error code` as described below + * + * @param error The error describing why deleting the token failed. + * See the error codes below for a more detailed description. + */ +typedef void(^GGLInstanceIDDeleteTokenHandler)(NSError *error); + +/** + * @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. + * + * @param identity A valid identity for the app instance, nil if there was an error + * while creating an identity. + * @param error The error if fetching the identity fails else nil. + */ +typedef void(^GGLInstanceIDHandler)(NSString *identity, NSError *error); + +/** + * @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. + * + * @param error The error if deleting the identity and all the tokens associated with + * it fails else nil. + */ +typedef void(^GGLInstanceIDDeleteHandler)(NSError *error); + +/** + * @enum GGLInstanceIDOperationErrorCode + * Description of error codes + */ +typedef NS_ENUM(NSUInteger, GGLInstanceIDOperationErrorCode) { + // Http related errors. + + /// InvalidRequest -- Some parameters of the request were invalid. + kGGLInstanceIDOperationErrorCodeInvalidRequest = 0, + + /// Auth Error -- GCM couldn't validate request from this client. + kGGLInstanceIDOperationErrorCodeAuthentication = 1, + + /// NoAccess -- InstanceID service cannot be accessed. + kGGLInstanceIDOperationErrorCodeNoAccess = 2, + + /// Timeout -- Request to InstanceID backend timed out. + kGGLInstanceIDOperationErrorCodeTimeout = 3, + + + /// Network -- No network available to reach the servers. + kGGLInstanceIDOperationErrorCodeNetwork = 4, + + /// OperationInProgress -- Another similar operation in progress, + /// bailing this one. + kGGLInstanceIDOperationErrorCodeOperationInProgress = 5, + + /// Unknown error. + kGGLInstanceIDOperationErrorCodeUnknown = 7, + + // 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 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 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 + * `[GGLInstanceID tokenWithAuthorizedEntity:scope:options:handler]`. + */ +@interface GGLInstanceID : NSObject + +/** + * GGLInstanceID. + * + * @return A shared instance of GGLInstanceID. + */ ++ (instancetype)sharedInstance; + +/** + * Start `GGLInstanceID` with the specified config. + * + * @see GGLInstanceIDConfig + * + * @param config The `GGLInstanceIDConfig` used to build the service. + */ +- (void)startWithConfig:(GGLInstanceIDConfig *)config; + +/** + * Stop any network requests started by the client and release any handlers + * associated with it. + */ +- (void)stopAllRequests; + +#pragma mark - Tokens + +/** + * Returns a token that authorizes an Entity (example: cloud service) to perform + * an action on behalf of the application identified by Instance ID. + * + * This is similar to an OAuth2 token except, it applies to the + * application instance instead of a user. + * + * This is an asynchronous call. If the token fetching fails for some reason + * we invoke the completion callback with nil `token` and the appropriate + * error. + * + * Note, you can only have one `token` or `deleteToken` call for a given + * authorizedEntity and scope at any point of time. Making another such call with the + * same authorizedEntity and scope before the last one finishes will result in an + * error with code `OperationInProgress`. + * + * @see GGLInstanceID deleteTokenWithAuthorizedEntity:scope:handler: + * + * @param authorizedEntity Entity authorized by the token. + * @param scope Action authorized for authorizedEntity. + * @param options The extra options to be sent with your token request. The + * value for the `apns_token` should be the NSData object + * passed to UIApplication's + * `didRegisterForRemoteNotificationsWithDeviceToken` method. + * All other keys and values in the options dict need to be + * instances of NSString or else they will be discarded. Bundle + * keys starting with 'GCM.' and 'GOOGLE.' are reserved. + * @param handler The callback handler which is invoked when the token is + * successfully fetched. In case of success a valid `token` and + * `nil` error are returned. In case of any error the `token` + * is nil and a valid `error` is returned. The valid error + * codes have been documented above. + */ +- (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 `[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 + * `handler` callback passed in with the appropriate error code. + * + * Note, you can only have one `token` or `deleteToken` call for a given + * authorizedEntity and scope at a point of time. Making another such call with the + * same authorizedEntity and scope before the last one finishes will result in an error + * with code `OperationInProgress`. + * + * @param authorizedEntity Entity that must no longer have access. + * @param scope Action that entity is no longer authorized to perform. + * @param handler The handler that is invoked once the unsubscribe call ends. + * In case of error an appropriate error object is returned + * else error is nil. + */ +- (void)deleteTokenWithAuthorizedEntity:(NSString *)authorizedEntity + scope:(NSString *)scope + handler:(GGLInstanceIDDeleteTokenHandler)handler; + +#pragma mark - Identity + +/** + * Asynchronously fetch a stable identifier that uniquely identifies the app + * instance. If the identifier has been revoked or has expired, this method will + * return a new identifier. + * + * + * @param handler The handler to invoke once the identifier has been fetched. + * In case of error an appropriate error object is returned else + * a valid identifier is returned and a valid identifier for the + * application instance. + */ +- (void)getIDWithHandler:(GGLInstanceIDHandler)handler; + +/** + * Resets Instance ID and revokes all tokens. + */ +- (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 + +/** + * Set the GGLInstanceIDDelegate to receive callbacks. + * + * @see GGLInstanceIDDelegate + */ +@property(nonatomic, readwrite, weak) id 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 + +/** + * 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 new file mode 100755 index 00000000..d5e6b3a4 Binary files /dev/null and b/StoneIsland/platforms/ios/Pods/GGLInstanceID/Libraries/libGGLInstanceIDLib.a differ diff --git a/StoneIsland/platforms/ios/Pods/GGLInstanceID/README.md b/StoneIsland/platforms/ios/Pods/GGLInstanceID/README.md new file mode 100644 index 00000000..e6fb90db --- /dev/null +++ b/StoneIsland/platforms/ios/Pods/GGLInstanceID/README.md @@ -0,0 +1,10 @@ +# InstanceID SDK for iOS + +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 +Google Cloud Messaging (GCM). + + +Please visit [our developer +site](https://developers.google.com/instance-id/) for integration instructions, +documentation, support information, and terms of service. 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 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/"`. + * @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 + +@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 + * Cloud Connection Server, + * + */ +@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 new file mode 100755 index 00000000..a9356d23 Binary files /dev/null and b/StoneIsland/platforms/ios/Pods/GoogleCloudMessaging/Libraries/libGcmLib.a differ 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 new file mode 100644 index 00000000..7ab2cf26 Binary files /dev/null and b/StoneIsland/platforms/ios/Pods/GoogleIPhoneUtilities/Frameworks/GoogleIPhoneUtilities.framework/GoogleIPhoneUtilities differ diff --git a/StoneIsland/platforms/ios/Pods/GoogleInterchangeUtilities/Frameworks/frameworks/GoogleInterchangeUtilities.framework/GoogleInterchangeUtilities b/StoneIsland/platforms/ios/Pods/GoogleInterchangeUtilities/Frameworks/frameworks/GoogleInterchangeUtilities.framework/GoogleInterchangeUtilities new file mode 100755 index 00000000..de404247 Binary files /dev/null and b/StoneIsland/platforms/ios/Pods/GoogleInterchangeUtilities/Frameworks/frameworks/GoogleInterchangeUtilities.framework/GoogleInterchangeUtilities differ diff --git a/StoneIsland/platforms/ios/Pods/GoogleSymbolUtilities/Frameworks/frameworks/GoogleSymbolUtilities.framework/GoogleSymbolUtilities b/StoneIsland/platforms/ios/Pods/GoogleSymbolUtilities/Frameworks/frameworks/GoogleSymbolUtilities.framework/GoogleSymbolUtilities new file mode 100755 index 00000000..408a0026 Binary files /dev/null and b/StoneIsland/platforms/ios/Pods/GoogleSymbolUtilities/Frameworks/frameworks/GoogleSymbolUtilities.framework/GoogleSymbolUtilities differ 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 -#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= -// -// 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 writer_; - id formatter_; - id 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)writer - formatter:(id)formatter - filter:(id)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)writer - formatter:(id)formatter - filter:(id)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)writer; -- (void)setWriter:(id)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)formatter; -- (void)setFormatter:(id)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)filter; -- (void)setFilter:(id)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 -// 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) -// 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) -@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) -@end // GTMLoggerLogWriter - - -// -// Log Formatters -// - -// Protocol to be implemented by a GTMLogFormatter instance. -@protocol GTMLogFormatter -// 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 - -// 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 -// 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 { - @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 -@end // GTMLogNoFilter - - -// Base class for custom level filters. Not for direct use, use the minimum -// or maximum level subclasses below. -@interface GTMLogAllowedLevelFilter : NSObject { - @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 -#import -#import -#import - - -#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 writer = [NSFileHandle fileHandleWithStandardOutput]; - id fr = [[[GTMLogStandardFormatter alloc] init] - autorelease]; - id 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)writer - formatter:(id)formatter - filter:(id)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)writer - formatter:(id)formatter - filter:(id)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)writer { - return [[writer_ retain] autorelease]; -} - -- (void)setWriter:(id)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)formatter { - return [[formatter_ retain] autorelease]; -} - -- (void)setFormatter:(id)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)filter { - return [[filter_ retain] autorelease]; -} - -- (void)setFilter:(id)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 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 -#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 -#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 -#include - -#ifdef __OBJC__ -#include -#endif // __OBJC__ - -#if TARGET_OS_IPHONE -#include -#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**
-**Discussion group** - -# 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 new file mode 100755 index 00000000..0fd17b65 Binary files /dev/null and b/StoneIsland/platforms/ios/Pods/GoogleUtilities/Frameworks/frameworks/GoogleUtilities.framework/GoogleUtilities differ 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 = ""; }; 0C86D2D78080EDCEE85A13AA1692ACD6 /* Pods-Stone Island.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Stone Island.release.xcconfig"; sourceTree = ""; }; - 0F444CCFE63D2832F35B8837ED408165 /* GPBUtilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBUtilities.h; path = objectivec/GPBUtilities.h; sourceTree = ""; }; - 103D9CA08917A78B44AC60345EE69379 /* nanopb-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "nanopb-dummy.m"; sourceTree = ""; }; 10B3D03939EC1F098DF4D390572E7A70 /* Pods-Stone Island-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-Stone Island-acknowledgements.markdown"; sourceTree = ""; }; - 10F4575D8B6A691A550472225DDF3F0F /* SourceContext.pbobjc.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SourceContext.pbobjc.m; path = objectivec/google/protobuf/SourceContext.pbobjc.m; sourceTree = ""; }; - 115E69164EF7A408741D07C2086D2C25 /* Duration.pbobjc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Duration.pbobjc.h; path = objectivec/google/protobuf/Duration.pbobjc.h; sourceTree = ""; }; - 12A858169F9A81AF89F6583B8E966025 /* Api.pbobjc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Api.pbobjc.h; path = objectivec/google/protobuf/Api.pbobjc.h; sourceTree = ""; }; - 14DB8CD0793D1700939269B1162FC634 /* GPBUtilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBUtilities.m; path = objectivec/GPBUtilities.m; sourceTree = ""; }; - 15595CD747174AB281B75E0EC911F6E2 /* GPBExtensionInternals.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBExtensionInternals.h; path = objectivec/GPBExtensionInternals.h; sourceTree = ""; }; - 192AB16212B37CEBDD9BD2D13A435C4A /* FirebaseNanoPB.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = FirebaseNanoPB.framework; path = Frameworks/FirebaseNanoPB.framework; sourceTree = ""; }; - 1F905482AB614EB3193EC09019806C5D /* GoogleToolboxForMac-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "GoogleToolboxForMac-dummy.m"; sourceTree = ""; }; - 22BA7C1126445EE94A49FE02FE9FFD6B /* GPBProtocolBuffers.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBProtocolBuffers.h; path = objectivec/GPBProtocolBuffers.h; sourceTree = ""; }; + 173B36DA9A5ED406088A50C1589B0B4E /* GGLInstanceID.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GGLInstanceID.h; path = Headers/Public/GGLInstanceID.h; sourceTree = ""; }; 2313F1DCFFF1A82931A5DF3F158D5DA3 /* Pods-Stone Island.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Stone Island.debug.xcconfig"; sourceTree = ""; }; - 265B5F2D8D23C8DAE5A2EC4C45482BB2 /* Type.pbobjc.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = Type.pbobjc.m; path = objectivec/google/protobuf/Type.pbobjc.m; sourceTree = ""; }; - 2C72AF407EBF46522014F5E384F2DF2B /* GPBArray.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBArray.m; path = objectivec/GPBArray.m; sourceTree = ""; }; - 2F32BA3D0167408D03707E0C4EDBA4A6 /* pb_decode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = pb_decode.h; sourceTree = ""; }; - 346156D12F225C5435732E3752CE2FE8 /* Empty.pbobjc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Empty.pbobjc.h; path = objectivec/google/protobuf/Empty.pbobjc.h; sourceTree = ""; }; - 3504481E0B537B019882F670155CDDA2 /* GPBCodedOutputStream.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBCodedOutputStream.m; path = objectivec/GPBCodedOutputStream.m; sourceTree = ""; }; - 35A06A6FAC89255798D0D4BD7AE185C5 /* Wrappers.pbobjc.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = Wrappers.pbobjc.m; path = objectivec/google/protobuf/Wrappers.pbobjc.m; sourceTree = ""; }; - 3BF4A1DADA8860F20B2307BA21E0DDA7 /* GPBDescriptor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBDescriptor.m; path = objectivec/GPBDescriptor.m; sourceTree = ""; }; - 3E49413C1602C72986E35FE55B15AA9D /* GPBExtensionInternals.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBExtensionInternals.m; path = objectivec/GPBExtensionInternals.m; sourceTree = ""; }; - 40D25B6E40FCFF039CD02F31F19588B8 /* GPBCodedInputStream.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBCodedInputStream.h; path = objectivec/GPBCodedInputStream.h; sourceTree = ""; }; - 4240053415DBD5B52DBD9497BD0984FD /* GPBDescriptor_PackagePrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBDescriptor_PackagePrivate.h; path = objectivec/GPBDescriptor_PackagePrivate.h; sourceTree = ""; }; - 43351FEC3BCA8AB1743C40C96030E1C6 /* FirebaseMessaging.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = FirebaseMessaging.framework; path = Frameworks/FirebaseMessaging.framework; sourceTree = ""; }; - 45DE04F35C065C20F9213E57D5F936D5 /* GoogleToolboxForMac.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = GoogleToolboxForMac.xcconfig; sourceTree = ""; }; - 493A2403E3A377D0C8D3B18E72BD9948 /* GPBCodedInputStream_PackagePrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBCodedInputStream_PackagePrivate.h; path = objectivec/GPBCodedInputStream_PackagePrivate.h; sourceTree = ""; }; - 4950A34F093D61FB39CE30CCADE17BBE /* GPBRootObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBRootObject.m; path = objectivec/GPBRootObject.m; sourceTree = ""; }; - 4A49C9D5CD03434E366BE7C82C206817 /* Type.pbobjc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Type.pbobjc.h; path = objectivec/google/protobuf/Type.pbobjc.h; sourceTree = ""; }; - 4AE7E7D7FC01B98294A0293EF649BD95 /* GPBArray_PackagePrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBArray_PackagePrivate.h; path = objectivec/GPBArray_PackagePrivate.h; sourceTree = ""; }; - 4C8C2723080839DDB0C24FEDD0D73096 /* GPBDictionary_PackagePrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBDictionary_PackagePrivate.h; path = objectivec/GPBDictionary_PackagePrivate.h; sourceTree = ""; }; - 4E6187654126ABEF16075E772E203E1D /* GTMLogger.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GTMLogger.m; path = Foundation/GTMLogger.m; sourceTree = ""; }; - 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 = ""; }; - 524B0176A9FCF760DD5807E536CD4F89 /* GPBWireFormat.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBWireFormat.h; path = objectivec/GPBWireFormat.h; sourceTree = ""; }; - 545A0FB5DF2C8FFCCF42EB58D5A81ED0 /* GPBRuntimeTypes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBRuntimeTypes.h; path = objectivec/GPBRuntimeTypes.h; sourceTree = ""; }; + 36F75FFC47B4DBEB5982F58544A7B2FC /* GoogleInterchangeUtilities.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GoogleInterchangeUtilities.framework; path = Frameworks/frameworks/GoogleInterchangeUtilities.framework; sourceTree = ""; }; + 474CBC9EAF59DE318EE6611AAE5D0291 /* GoogleIPhoneUtilities.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GoogleIPhoneUtilities.framework; path = Frameworks/GoogleIPhoneUtilities.framework; sourceTree = ""; }; + 4A59C4528E6B71DFA7011DF095E0C8B8 /* GCMReceiverDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCMReceiverDelegate.h; path = Headers/Public/GCMReceiverDelegate.h; sourceTree = ""; }; 5890B2B91852CF430B0772AD7C3B4C2B /* Pods-Stone Island-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-Stone Island-frameworks.sh"; sourceTree = ""; }; - 58A83A189DC1BFBFAC7F399BB9751F14 /* GPBCodedOutputStream.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBCodedOutputStream.h; path = objectivec/GPBCodedOutputStream.h; sourceTree = ""; }; - 5B9EF4385DB7EA2E2DEE11B2B6DFE1A0 /* GoogleToolboxForMac-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "GoogleToolboxForMac-prefix.pch"; sourceTree = ""; }; - 5D11E9C49AAF09E786C50401B18C3DC4 /* GPBUnknownFieldSet.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBUnknownFieldSet.h; path = objectivec/GPBUnknownFieldSet.h; sourceTree = ""; }; - 6500BB56ED633DA52D3173D059F8378D /* GPBArray.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBArray.h; path = objectivec/GPBArray.h; sourceTree = ""; }; - 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 = ""; }; - 6B1DD76026CC0D86BA2FD2A023EBF3B1 /* Any.pbobjc.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = Any.pbobjc.m; path = objectivec/google/protobuf/Any.pbobjc.m; sourceTree = ""; }; - 6CCDD9C7666644E2535222D173D76CC1 /* pb_common.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = pb_common.h; sourceTree = ""; }; - 6F2E775643AFE2BFF0D572961BBC381E /* Duration.pbobjc.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = Duration.pbobjc.m; path = objectivec/google/protobuf/Duration.pbobjc.m; sourceTree = ""; }; - 6FE2C2FC17101A63229827673FE63277 /* GPBExtensionRegistry.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBExtensionRegistry.m; path = objectivec/GPBExtensionRegistry.m; sourceTree = ""; }; - 7180FC87E2294112BACEA059A5831595 /* Timestamp.pbobjc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Timestamp.pbobjc.h; path = objectivec/google/protobuf/Timestamp.pbobjc.h; sourceTree = ""; }; - 72A904D3D8B863EED50A4A1E3FFADC0D /* Empty.pbobjc.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = Empty.pbobjc.m; path = objectivec/google/protobuf/Empty.pbobjc.m; sourceTree = ""; }; - 7CD04E4A14DCEB9584A09B6CCAF0CCD4 /* GPBWellKnownTypes.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBWellKnownTypes.m; path = objectivec/GPBWellKnownTypes.m; sourceTree = ""; }; - 7D645CF003B6E3608A32FF8B3EC5D589 /* GPBCodedInputStream.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBCodedInputStream.m; path = objectivec/GPBCodedInputStream.m; sourceTree = ""; }; - 828B35BEFD155F90F6A506A514E9373D /* FieldMask.pbobjc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FieldMask.pbobjc.h; path = objectivec/google/protobuf/FieldMask.pbobjc.h; sourceTree = ""; }; - 83147647FF520FEBC086F33609ECA938 /* GTMNSData+zlib.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "GTMNSData+zlib.h"; path = "Foundation/GTMNSData+zlib.h"; sourceTree = ""; }; - 83FF0A5AF2500AE469AE6047A4A795DD /* FirebaseInstanceID.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = FirebaseInstanceID.framework; path = Frameworks/FirebaseInstanceID.framework; sourceTree = ""; }; - 8485EE3EE516E1C76E274ED63FD32675 /* GTMDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = GTMDefines.h; sourceTree = ""; }; - 85161CE483D0D52918F3658155149F93 /* GPBRootObject_PackagePrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBRootObject_PackagePrivate.h; path = objectivec/GPBRootObject_PackagePrivate.h; sourceTree = ""; }; - 870C6D914891D286B54687025379F80A /* GPBWireFormat.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBWireFormat.m; path = objectivec/GPBWireFormat.m; sourceTree = ""; }; - 8A608890EC1AF8EC42A14397D3A5894B /* GPBBootstrap.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBBootstrap.h; path = objectivec/GPBBootstrap.h; sourceTree = ""; }; - 8CD49F4DAD4E018B49D62F07A50020C3 /* GTMNSData+zlib.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "GTMNSData+zlib.m"; path = "Foundation/GTMNSData+zlib.m"; sourceTree = ""; }; - 8E9DF1F8DEF9920EC67FFDBBACE310D6 /* GPBUnknownField.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBUnknownField.h; path = objectivec/GPBUnknownField.h; sourceTree = ""; }; - 8EB5760CCB2AC6808AD433F462BA5B40 /* GPBUnknownField.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBUnknownField.m; path = objectivec/GPBUnknownField.m; sourceTree = ""; }; - 9251C49A032CCBDAE109D0A0CD2DD92E /* GPBMessage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBMessage.m; path = objectivec/GPBMessage.m; sourceTree = ""; }; - 9315DD9048DB523B31C2B0B63880F185 /* GPBMessage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBMessage.h; path = objectivec/GPBMessage.h; sourceTree = ""; }; + 6A055A93C3564E5CDA417C640324E176 /* GoogleUtilities.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GoogleUtilities.framework; path = Frameworks/frameworks/GoogleUtilities.framework; sourceTree = ""; }; + 6A52371D28A634057B785F5B581084AF /* GoogleSymbolUtilities.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GoogleSymbolUtilities.framework; path = Frameworks/frameworks/GoogleSymbolUtilities.framework; sourceTree = ""; }; + 8127A92CEFC4B6BC0D037BBDADA1B051 /* GGLInstanceIDConfig.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GGLInstanceIDConfig.h; path = Headers/Public/GGLInstanceIDConfig.h; sourceTree = ""; }; 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 = ""; }; - 98A18E81D2E0C6AF12C4E040F92CEEE7 /* nanopb-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "nanopb-prefix.pch"; sourceTree = ""; }; - 99E63D80EC2BCAC4383FAB765DA50EC0 /* GPBUnknownFieldSet.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBUnknownFieldSet.m; path = objectivec/GPBUnknownFieldSet.m; sourceTree = ""; }; - 9C39A2A98031E5843DD0CC795958C690 /* Api.pbobjc.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = Api.pbobjc.m; path = objectivec/google/protobuf/Api.pbobjc.m; sourceTree = ""; }; - 9E7C6CABB305C6F18E115008557D510A /* FieldMask.pbobjc.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FieldMask.pbobjc.m; path = objectivec/google/protobuf/FieldMask.pbobjc.m; sourceTree = ""; }; A110B0A704D9AE1951A8F07D446042C1 /* Pods-Stone Island-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-Stone Island-resources.sh"; sourceTree = ""; }; - A4F87C21CB7A6B68E245AB8373CE92F3 /* SourceContext.pbobjc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SourceContext.pbobjc.h; path = objectivec/google/protobuf/SourceContext.pbobjc.h; sourceTree = ""; }; - A5428F00BC2E563C54345DD10FBC64B9 /* GPBWellKnownTypes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBWellKnownTypes.h; path = objectivec/GPBWellKnownTypes.h; sourceTree = ""; }; - A5E70F2734E0CCB2FEA59727473D14D4 /* pb_encode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = pb_encode.h; sourceTree = ""; }; - A9F42493FCDAB7940BB6EEBACF55FD92 /* GTMLogger.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GTMLogger.h; path = Foundation/GTMLogger.h; sourceTree = ""; }; - ABDBCAF813D5B069AD91028508742BC2 /* GPBDictionary.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBDictionary.h; path = objectivec/GPBDictionary.h; sourceTree = ""; }; - 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 = ""; }; - B77AE850AC471E6D53586C630AE90ACF /* Struct.pbobjc.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = Struct.pbobjc.m; path = objectivec/google/protobuf/Struct.pbobjc.m; sourceTree = ""; }; - 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 = ""; }; - C1669FD3E74618D9183A1227FBBF4050 /* pb_decode.c */ = {isa = PBXFileReference; includeInIndex = 1; path = pb_decode.c; sourceTree = ""; }; - C5F5070398EA6EBF049CB8770A127136 /* pb.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = pb.h; sourceTree = ""; }; - C6CC9FDA24E3A6607E12BFFEE4275B45 /* GPBDescriptor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBDescriptor.h; path = objectivec/GPBDescriptor.h; sourceTree = ""; }; - CBAC1AE6755D17C79F857D660B23B118 /* GPBCodedOutputStream_PackagePrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBCodedOutputStream_PackagePrivate.h; path = objectivec/GPBCodedOutputStream_PackagePrivate.h; sourceTree = ""; }; + BD469413B9D194472712F81C4C19217C /* GGLInstanceIDHeaders.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GGLInstanceIDHeaders.h; path = Headers/Public/GGLInstanceIDHeaders.h; sourceTree = ""; }; + BD5E36BF0B6CBFDEC0927984332B535A /* GCMService.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCMService.h; path = Headers/Public/GCMService.h; sourceTree = ""; }; 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 = ""; }; - D708F677F238A988C8234E48AC22776D /* GPBDictionary.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBDictionary.m; path = objectivec/GPBDictionary.m; sourceTree = ""; }; - D7846CA9DBB7357D0A5145648AA01620 /* GPBMessage_PackagePrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBMessage_PackagePrivate.h; path = objectivec/GPBMessage_PackagePrivate.h; sourceTree = ""; }; - E1DD1E636FBF87375DD28325F85E9F9B /* GPBRootObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBRootObject.h; path = objectivec/GPBRootObject.h; sourceTree = ""; }; - E4C8A849B8401F02161470ADD18F89E7 /* Protobuf-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Protobuf-prefix.pch"; sourceTree = ""; }; - E84A0F52367C4369A4CD78E715FD3316 /* Any.pbobjc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Any.pbobjc.h; path = objectivec/google/protobuf/Any.pbobjc.h; sourceTree = ""; }; - EB57A28C36332095328E9BCE71ECC618 /* Timestamp.pbobjc.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = Timestamp.pbobjc.m; path = objectivec/google/protobuf/Timestamp.pbobjc.m; sourceTree = ""; }; - F1A5E09DC081BEC3AF27803E648E1367 /* GPBUnknownField_PackagePrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBUnknownField_PackagePrivate.h; path = objectivec/GPBUnknownField_PackagePrivate.h; sourceTree = ""; }; + D6448B738D0F834A89872ACF4F33A1AA /* libGGLInstanceIDLib.a */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = archive.ar; name = libGGLInstanceIDLib.a; path = Libraries/libGGLInstanceIDLib.a; sourceTree = ""; }; + E04BE7A3CBD84DBAA76FC51758B7CED6 /* GCMConfig.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCMConfig.h; path = Headers/Public/GCMConfig.h; sourceTree = ""; }; + 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 = ""; }; + EE0A605C9B1A1EA6221D258D4E528AD7 /* GGLInstanceIDDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GGLInstanceIDDelegate.h; path = Headers/Public/GGLInstanceIDDelegate.h; sourceTree = ""; }; + EEFE0B43B6BEB77AB2B72163776B3431 /* libGcmLib.a */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = archive.ar; name = libGcmLib.a; path = Libraries/libGcmLib.a; sourceTree = ""; }; F1E17C0998C78916667291BC7B0048B0 /* Pods-Stone Island-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Stone Island-dummy.m"; sourceTree = ""; }; - F411F93549CC18B1041B6089FD7D6328 /* FirebaseCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = FirebaseCore.framework; path = Frameworks/FirebaseCore.framework; sourceTree = ""; }; - F4217831202D96492E9AA5A8C1317D16 /* Protobuf-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Protobuf-dummy.m"; sourceTree = ""; }; - F6DA253821905085377C5B375CF7B4C3 /* GPBUnknownFieldSet_PackagePrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBUnknownFieldSet_PackagePrivate.h; path = objectivec/GPBUnknownFieldSet_PackagePrivate.h; sourceTree = ""; }; - F89A42940C946E790697D23E21C634DA /* Protobuf.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Protobuf.xcconfig; sourceTree = ""; }; - FB1E980B5EEC2800E922D5076A11EFA7 /* FirebaseAnalytics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = FirebaseAnalytics.framework; path = Frameworks/FirebaseAnalytics.framework; sourceTree = ""; }; - FB7C030E89839D647194E5CA2D2DF745 /* pb_common.c */ = {isa = PBXFileReference; includeInIndex = 1; path = pb_common.c; sourceTree = ""; }; - FBA0788F3CA6A1FC7E1E87517F07ADD1 /* pb_encode.c */ = {isa = PBXFileReference; includeInIndex = 1; path = pb_encode.c; sourceTree = ""; }; - FE50E6A13848DC8387C0F2467E5BC858 /* Wrappers.pbobjc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Wrappers.pbobjc.h; path = objectivec/google/protobuf/Wrappers.pbobjc.h; sourceTree = ""; }; + F3E864806D6F83145EA52D163BA1A423 /* GoogleCloudMessaging.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GoogleCloudMessaging.h; path = Headers/Public/GoogleCloudMessaging.h; sourceTree = ""; }; /* 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 = ""; - }; - 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 = ""; - }; - 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 = ""; }; - 21FD76479585CF6ADCFBF61ED1315196 /* Logger */ = { - isa = PBXGroup; - children = ( - A9F42493FCDAB7940BB6EEBACF55FD92 /* GTMLogger.h */, - 4E6187654126ABEF16075E772E203E1D /* GTMLogger.m */, - ); - name = Logger; - sourceTree = ""; - }; - 2201A4F92BCC4567C0DB2C680592833A /* Frameworks */ = { + 2FD026630DDFF013082B2945DB20B798 /* Frameworks */ = { isa = PBXGroup; children = ( - 43351FEC3BCA8AB1743C40C96030E1C6 /* FirebaseMessaging.framework */, + 474CBC9EAF59DE318EE6611AAE5D0291 /* GoogleIPhoneUtilities.framework */, ); name = Frameworks; sourceTree = ""; }; - 2CCC828646DB6E2832930EA338092B5C /* FirebaseAnalytics */ = { - isa = PBXGroup; - children = ( - AC4F8E9E10982FDB105BC8855C8D52CD /* Frameworks */, - ); - name = FirebaseAnalytics; - path = FirebaseAnalytics; - sourceTree = ""; - }; - 4475247DC75238DBB0E37086D31D3363 /* encode */ = { - isa = PBXGroup; - children = ( - ); - name = encode; - sourceTree = ""; - }; - 4628802902B2FF79E0AD76BAEF165D70 /* NSData+zlib */ = { + 3758E30E87F41188A58D53252E8DC67F /* GGLInstanceID */ = { isa = PBXGroup; children = ( - 83147647FF520FEBC086F33609ECA938 /* GTMNSData+zlib.h */, - 8CD49F4DAD4E018B49D62F07A50020C3 /* GTMNSData+zlib.m */, - ); - name = "NSData+zlib"; - sourceTree = ""; - }; - 543B9265B46C52AA018AC9B5349C1A41 /* GoogleToolboxForMac */ = { - isa = PBXGroup; - children = ( - 004912157DF4BDCD49123543CE0FF6DD /* Defines */, - 21FD76479585CF6ADCFBF61ED1315196 /* Logger */, - 4628802902B2FF79E0AD76BAEF165D70 /* NSData+zlib */, - B4A3391D3ABAF454717C12C6AFD946A0 /* Support Files */, - ); - name = GoogleToolboxForMac; - path = GoogleToolboxForMac; + 173B36DA9A5ED406088A50C1589B0B4E /* GGLInstanceID.h */, + 8127A92CEFC4B6BC0D037BBDADA1B051 /* GGLInstanceIDConfig.h */, + EE0A605C9B1A1EA6221D258D4E528AD7 /* GGLInstanceIDDelegate.h */, + BD469413B9D194472712F81C4C19217C /* GGLInstanceIDHeaders.h */, + FEEE277DB90FD41AA0B77E6258108DFB /* Frameworks */, + ); + name = GGLInstanceID; + path = GGLInstanceID; sourceTree = ""; }; - 55ACDAF2E6E0245F2ABA46141FF54B0D /* FirebaseInstanceID */ = { + 5E3943FF863A867D4D99F3E17093D9D7 /* GoogleInterchangeUtilities */ = { isa = PBXGroup; children = ( - 5EBBA78CDFF493B4DA3AC46DE5C89650 /* Frameworks */, + CAFDBEDBC9861619C5BC0B5A525B32E5 /* Frameworks */, ); - name = FirebaseInstanceID; - path = FirebaseInstanceID; + name = GoogleInterchangeUtilities; + path = GoogleInterchangeUtilities; sourceTree = ""; }; - 58DE47AAAC06564307E7255D1B5E1D62 /* decode */ = { + 736A89F858E6E6D5DDEC5BBDA2E1C51B /* GoogleUtilities */ = { isa = PBXGroup; children = ( + E8A2173F40F6AA192DD2A76C1203C416 /* Frameworks */, ); - name = decode; - sourceTree = ""; - }; - 5EBBA78CDFF493B4DA3AC46DE5C89650 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 83FF0A5AF2500AE469AE6047A4A795DD /* FirebaseInstanceID.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 5F1C6D3FD3BF644DCE67E28E83281951 /* FirebaseMessaging */ = { - isa = PBXGroup; - children = ( - 2201A4F92BCC4567C0DB2C680592833A /* Frameworks */, - ); - name = FirebaseMessaging; - path = FirebaseMessaging; + name = GoogleUtilities; + path = GoogleUtilities; sourceTree = ""; }; 7531C8F8DE19F1AA3C8A7AC97A91DC29 /* iOS */ = { @@ -396,8 +116,8 @@ children = ( 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */, BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */, - 11914593C579DC3B903834F9370FDE0C /* Pods */, - B35F7395675A25A46729AD5CE270066C /* Products */, + 121A86CC4AAF79B70266B959308D3CA7 /* Pods */, + EA7DD587FC2EAD1ECAA75B2850B62903 /* Products */, 838A3B364ADE24D6443C58DDBACFF0C2 /* Targets Support Files */, ); sourceTree = ""; @@ -410,45 +130,29 @@ name = "Targets Support Files"; sourceTree = ""; }; - 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 = ""; }; - AC4F8E9E10982FDB105BC8855C8D52CD /* Frameworks */ = { + A770D2EDC6FA25DCD787792DF757FA50 /* Frameworks */ = { isa = PBXGroup; children = ( - FB1E980B5EEC2800E922D5076A11EFA7 /* FirebaseAnalytics.framework */, + EEFE0B43B6BEB77AB2B72163776B3431 /* libGcmLib.a */, ); name = Frameworks; sourceTree = ""; }; - B35F7395675A25A46729AD5CE270066C /* Products */ = { - isa = PBXGroup; - children = ( - BA922E76DF7B2D530FCDC0089D2C20A5 /* libGoogleToolboxForMac.a */, - 686BB4055630DC19822F9F3B407B37C3 /* libnanopb.a */, - AD8B585B5662EF1E7DFC64FFF59A1A6F /* libPods-Stone Island.a */, - 4EC1DF8B3DD81B34C5AB861B8C76C717 /* libProtobuf.a */, - ); - name = Products; - sourceTree = ""; - }; - 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 = ""; }; BA3FA15D22651C0425DF92E8A2A4517F /* Pods-Stone Island */ = { @@ -466,6 +170,15 @@ path = "Target Support Files/Pods-Stone Island"; sourceTree = ""; }; + BBD88AD6F1DF792566DB101E1D7A50AB /* GoogleSymbolUtilities */ = { + isa = PBXGroup; + children = ( + B9E958B53590711D484747E648D2BBAF /* Frameworks */, + ); + name = GoogleSymbolUtilities; + path = GoogleSymbolUtilities; + sourceTree = ""; + }; BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */ = { isa = PBXGroup; children = ( @@ -474,247 +187,69 @@ name = Frameworks; sourceTree = ""; }; - D322B836323040BCA8E139D202457EBA /* FirebaseCore */ = { + CAFDBEDBC9861619C5BC0B5A525B32E5 /* Frameworks */ = { isa = PBXGroup; children = ( - E04C7679B4512CF8CDD79D4392692C6C /* Frameworks */, + 36F75FFC47B4DBEB5982F58544A7B2FC /* GoogleInterchangeUtilities.framework */, ); - name = FirebaseCore; - path = FirebaseCore; + name = Frameworks; sourceTree = ""; }; - E04C7679B4512CF8CDD79D4392692C6C /* Frameworks */ = { + E8A2173F40F6AA192DD2A76C1203C416 /* Frameworks */ = { isa = PBXGroup; children = ( - F411F93549CC18B1041B6089FD7D6328 /* FirebaseCore.framework */, - 50B4982BCC4F07991409560B718F590C /* FirebaseCoreDiagnostics.framework */, - 192AB16212B37CEBDD9BD2D13A435C4A /* FirebaseNanoPB.framework */, + 6A055A93C3564E5CDA417C640324E176 /* GoogleUtilities.framework */, ); name = Frameworks; sourceTree = ""; }; - 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 = ""; }; - FA0ADBF3B95DD4DD510DA2EF9D9B0B9A /* Support Files */ = { + F52CA7A5CDCB3F8FEAEAD0AD400F9313 /* GoogleCloudMessaging */ = { isa = PBXGroup; children = ( - 9837A32494666A348405234344442538 /* nanopb.xcconfig */, - 103D9CA08917A78B44AC60345EE69379 /* nanopb-dummy.m */, - 98A18E81D2E0C6AF12C4E040F92CEEE7 /* nanopb-prefix.pch */, - ); - name = "Support Files"; - path = "../Target Support Files/nanopb"; + E04BE7A3CBD84DBAA76FC51758B7CED6 /* GCMConfig.h */, + EA6ECB7498639194EA9C76AA5A5335AA /* GCMPubSub.h */, + 4A59C4528E6B71DFA7011DF095E0C8B8 /* GCMReceiverDelegate.h */, + BD5E36BF0B6CBFDEC0927984332B535A /* GCMService.h */, + F3E864806D6F83145EA52D163BA1A423 /* GoogleCloudMessaging.h */, + A770D2EDC6FA25DCD787792DF757FA50 /* Frameworks */, + ); + name = GoogleCloudMessaging; + path = GoogleCloudMessaging; sourceTree = ""; }; -/* 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 = ""; }; -/* 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 */ = { + 5B7429374B6EEABBFC1E1EABA7B4556D /* 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-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 */ = { - 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 @@ - - - - - - - - - - - - - - - - - - - - - - - - - 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"> 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 @@ - - - - - - - - - - - - - - - - - - - - - - - - - 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 @@ - - - - - - - - - - - - - - - - - - - - - - - - - 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 @@ SchemeUserState - GoogleToolboxForMac.xcscheme - - isShown - - orderHint - 0 - Pods-Stone Island.xcscheme isShown orderHint - 2 - - Protobuf.xcscheme - - isShown - - orderHint - 3 - - nanopb.xcscheme - - isShown - - orderHint - 1 + 0 SuppressBuildableAutocreation 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 -=================================================== - -[![Build Status](https://travis-ci.org/google/protobuf.svg?branch=master)](https://travis-ci.org/google/protobuf) [![Build status](https://ci.appveyor.com/api/projects/status/73ctee6ua4w2ruin?svg=true)](https://ci.appveyor.com/project/protobuf/protobuf) [![Build Status](https://grpc-testing.appspot.com/buildStatus/icon?job=protobuf_branch)](https://grpc-testing.appspot.com/job/protobuf_branch) [![Build Status](https://grpc-testing.appspot.com/job/protobuf_branch_32/badge/icon)](https://grpc-testing.appspot.com/job/protobuf_branch_32) [![Build Status](http://ci.bazel.io/buildStatus/icon?job=protobuf)](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 - -#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 - -/** 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 - -/** 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 - -/** 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 - -/** 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 - -/** 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 - -/** 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 - -/** 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 - -/** 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 -//% -//%/** 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 -//% -//%/** 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 - -@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 - -@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 - -#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 *)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 *)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 *)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 *)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 *)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 - -#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 - -#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 - -/** Name of the message. */ -@property(nonatomic, readonly, copy) NSString *name; -/** Fields declared in the message. */ -@property(nonatomic, readonly, strong, nullable) NSArray *fields; -/** Oneofs declared in the message. */ -@property(nonatomic, readonly, strong, nullable) NSArray *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 *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 -/** 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 - -#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 - -#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 - * values. This performs better than boxing into NSNumbers in NSDictionaries. - * - * @note This class is not meant to be subclassed. - **/ -@interface GPBUInt32UInt32Dictionary : NSObject - -/** 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 - * values. This performs better than boxing into NSNumbers in NSDictionaries. - * - * @note This class is not meant to be subclassed. - **/ -@interface GPBUInt32Int32Dictionary : NSObject - -/** 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 - * values. This performs better than boxing into NSNumbers in NSDictionaries. - * - * @note This class is not meant to be subclassed. - **/ -@interface GPBUInt32UInt64Dictionary : NSObject - -/** 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 - * values. This performs better than boxing into NSNumbers in NSDictionaries. - * - * @note This class is not meant to be subclassed. - **/ -@interface GPBUInt32Int64Dictionary : NSObject - -/** 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 - * values. This performs better than boxing into NSNumbers in NSDictionaries. - * - * @note This class is not meant to be subclassed. - **/ -@interface GPBUInt32BoolDictionary : NSObject - -/** 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 - * values. This performs better than boxing into NSNumbers in NSDictionaries. - * - * @note This class is not meant to be subclassed. - **/ -@interface GPBUInt32FloatDictionary : NSObject - -/** 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 - * values. This performs better than boxing into NSNumbers in NSDictionaries. - * - * @note This class is not meant to be subclassed. - **/ -@interface GPBUInt32DoubleDictionary : NSObject - -/** 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 - * values. This performs better than boxing into NSNumbers in NSDictionaries. - * - * @note This class is not meant to be subclassed. - **/ -@interface GPBUInt32EnumDictionary : NSObject - -/** 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 - * values. This performs better than boxing into NSNumbers in NSDictionaries. - * - * @note This class is not meant to be subclassed. - **/ -@interface GPBUInt32ObjectDictionary<__covariant ObjectType> : NSObject - -/** 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 - * values. This performs better than boxing into NSNumbers in NSDictionaries. - * - * @note This class is not meant to be subclassed. - **/ -@interface GPBInt32UInt32Dictionary : NSObject - -/** 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 - * values. This performs better than boxing into NSNumbers in NSDictionaries. - * - * @note This class is not meant to be subclassed. - **/ -@interface GPBInt32Int32Dictionary : NSObject - -/** 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 - * values. This performs better than boxing into NSNumbers in NSDictionaries. - * - * @note This class is not meant to be subclassed. - **/ -@interface GPBInt32UInt64Dictionary : NSObject - -/** 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 - * values. This performs better than boxing into NSNumbers in NSDictionaries. - * - * @note This class is not meant to be subclassed. - **/ -@interface GPBInt32Int64Dictionary : NSObject - -/** 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 - * values. This performs better than boxing into NSNumbers in NSDictionaries. - * - * @note This class is not meant to be subclassed. - **/ -@interface GPBInt32BoolDictionary : NSObject - -/** 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 - * values. This performs better than boxing into NSNumbers in NSDictionaries. - * - * @note This class is not meant to be subclassed. - **/ -@interface GPBInt32FloatDictionary : NSObject - -/** 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 - * values. This performs better than boxing into NSNumbers in NSDictionaries. - * - * @note This class is not meant to be subclassed. - **/ -@interface GPBInt32DoubleDictionary : NSObject - -/** 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 - * values. This performs better than boxing into NSNumbers in NSDictionaries. - * - * @note This class is not meant to be subclassed. - **/ -@interface GPBInt32EnumDictionary : NSObject - -/** 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 - * values. This performs better than boxing into NSNumbers in NSDictionaries. - * - * @note This class is not meant to be subclassed. - **/ -@interface GPBInt32ObjectDictionary<__covariant ObjectType> : NSObject - -/** 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 - * values. This performs better than boxing into NSNumbers in NSDictionaries. - * - * @note This class is not meant to be subclassed. - **/ -@interface GPBUInt64UInt32Dictionary : NSObject - -/** 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 - * values. This performs better than boxing into NSNumbers in NSDictionaries. - * - * @note This class is not meant to be subclassed. - **/ -@interface GPBUInt64Int32Dictionary : NSObject - -/** 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 - * values. This performs better than boxing into NSNumbers in NSDictionaries. - * - * @note This class is not meant to be subclassed. - **/ -@interface GPBUInt64UInt64Dictionary : NSObject - -/** 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 - * values. This performs better than boxing into NSNumbers in NSDictionaries. - * - * @note This class is not meant to be subclassed. - **/ -@interface GPBUInt64Int64Dictionary : NSObject - -/** 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 - * values. This performs better than boxing into NSNumbers in NSDictionaries. - * - * @note This class is not meant to be subclassed. - **/ -@interface GPBUInt64BoolDictionary : NSObject - -/** 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 - * values. This performs better than boxing into NSNumbers in NSDictionaries. - * - * @note This class is not meant to be subclassed. - **/ -@interface GPBUInt64FloatDictionary : NSObject - -/** 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 - * values. This performs better than boxing into NSNumbers in NSDictionaries. - * - * @note This class is not meant to be subclassed. - **/ -@interface GPBUInt64DoubleDictionary : NSObject - -/** 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 - * values. This performs better than boxing into NSNumbers in NSDictionaries. - * - * @note This class is not meant to be subclassed. - **/ -@interface GPBUInt64EnumDictionary : NSObject - -/** 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 - * values. This performs better than boxing into NSNumbers in NSDictionaries. - * - * @note This class is not meant to be subclassed. - **/ -@interface GPBUInt64ObjectDictionary<__covariant ObjectType> : NSObject - -/** 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 - * values. This performs better than boxing into NSNumbers in NSDictionaries. - * - * @note This class is not meant to be subclassed. - **/ -@interface GPBInt64UInt32Dictionary : NSObject - -/** 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 - * values. This performs better than boxing into NSNumbers in NSDictionaries. - * - * @note This class is not meant to be subclassed. - **/ -@interface GPBInt64Int32Dictionary : NSObject - -/** 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 - * values. This performs better than boxing into NSNumbers in NSDictionaries. - * - * @note This class is not meant to be subclassed. - **/ -@interface GPBInt64UInt64Dictionary : NSObject - -/** 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 - * values. This performs better than boxing into NSNumbers in NSDictionaries. - * - * @note This class is not meant to be subclassed. - **/ -@interface GPBInt64Int64Dictionary : NSObject - -/** 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 - * values. This performs better than boxing into NSNumbers in NSDictionaries. - * - * @note This class is not meant to be subclassed. - **/ -@interface GPBInt64BoolDictionary : NSObject - -/** 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 - * values. This performs better than boxing into NSNumbers in NSDictionaries. - * - * @note This class is not meant to be subclassed. - **/ -@interface GPBInt64FloatDictionary : NSObject - -/** 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 - * values. This performs better than boxing into NSNumbers in NSDictionaries. - * - * @note This class is not meant to be subclassed. - **/ -@interface GPBInt64DoubleDictionary : NSObject - -/** 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 - * values. This performs better than boxing into NSNumbers in NSDictionaries. - * - * @note This class is not meant to be subclassed. - **/ -@interface GPBInt64EnumDictionary : NSObject - -/** 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 - * values. This performs better than boxing into NSNumbers in NSDictionaries. - * - * @note This class is not meant to be subclassed. - **/ -@interface GPBInt64ObjectDictionary<__covariant ObjectType> : NSObject - -/** 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 - * values. This performs better than boxing into NSNumbers in NSDictionaries. - * - * @note This class is not meant to be subclassed. - **/ -@interface GPBBoolUInt32Dictionary : NSObject - -/** 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 - * values. This performs better than boxing into NSNumbers in NSDictionaries. - * - * @note This class is not meant to be subclassed. - **/ -@interface GPBBoolInt32Dictionary : NSObject - -/** 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 - * values. This performs better than boxing into NSNumbers in NSDictionaries. - * - * @note This class is not meant to be subclassed. - **/ -@interface GPBBoolUInt64Dictionary : NSObject - -/** 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 - * values. This performs better than boxing into NSNumbers in NSDictionaries. - * - * @note This class is not meant to be subclassed. - **/ -@interface GPBBoolInt64Dictionary : NSObject - -/** 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 - * values. This performs better than boxing into NSNumbers in NSDictionaries. - * - * @note This class is not meant to be subclassed. - **/ -@interface GPBBoolBoolDictionary : NSObject - -/** 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 - * values. This performs better than boxing into NSNumbers in NSDictionaries. - * - * @note This class is not meant to be subclassed. - **/ -@interface GPBBoolFloatDictionary : NSObject - -/** 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 - * values. This performs better than boxing into NSNumbers in NSDictionaries. - * - * @note This class is not meant to be subclassed. - **/ -@interface GPBBoolDoubleDictionary : NSObject - -/** 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 - * values. This performs better than boxing into NSNumbers in NSDictionaries. - * - * @note This class is not meant to be subclassed. - **/ -@interface GPBBoolEnumDictionary : NSObject - -/** 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 - * values. This performs better than boxing into NSNumbers in NSDictionaries. - * - * @note This class is not meant to be subclassed. - **/ -@interface GPBBoolObjectDictionary<__covariant ObjectType> : NSObject - -/** 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 - * values. This performs better than boxing into NSNumbers in NSDictionaries. - * - * @note This class is not meant to be subclassed. - **/ -@interface GPBStringUInt32Dictionary : NSObject - -/** 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 - * values. This performs better than boxing into NSNumbers in NSDictionaries. - * - * @note This class is not meant to be subclassed. - **/ -@interface GPBStringInt32Dictionary : NSObject - -/** 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 - * values. This performs better than boxing into NSNumbers in NSDictionaries. - * - * @note This class is not meant to be subclassed. - **/ -@interface GPBStringUInt64Dictionary : NSObject - -/** 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 - * values. This performs better than boxing into NSNumbers in NSDictionaries. - * - * @note This class is not meant to be subclassed. - **/ -@interface GPBStringInt64Dictionary : NSObject - -/** 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 - * values. This performs better than boxing into NSNumbers in NSDictionaries. - * - * @note This class is not meant to be subclassed. - **/ -@interface GPBStringBoolDictionary : NSObject - -/** 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 - * values. This performs better than boxing into NSNumbers in NSDictionaries. - * - * @note This class is not meant to be subclassed. - **/ -@interface GPBStringFloatDictionary : NSObject - -/** 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 - * values. This performs better than boxing into NSNumbers in NSDictionaries. - * - * @note This class is not meant to be subclassed. - **/ -@interface GPBStringDoubleDictionary : NSObject - -/** 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 - * values. This performs better than boxing into NSNumbers in NSDictionaries. - * - * @note This class is not meant to be subclassed. - **/ -@interface GPBStringEnumDictionary : NSObject - -/** 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 -//% -//%/** 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 -//% -//%/** 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 [])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)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)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 - -#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 () { -//% @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 () { - @package - GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; -} -@end - -@interface GPBUInt32Int32Dictionary () { - @package - GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; -} -@end - -@interface GPBUInt32UInt64Dictionary () { - @package - GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; -} -@end - -@interface GPBUInt32Int64Dictionary () { - @package - GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; -} -@end - -@interface GPBUInt32BoolDictionary () { - @package - GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; -} -@end - -@interface GPBUInt32FloatDictionary () { - @package - GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; -} -@end - -@interface GPBUInt32DoubleDictionary () { - @package - GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; -} -@end - -@interface GPBUInt32EnumDictionary () { - @package - GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; -} -- (NSData *)serializedDataForUnknownValue:(int32_t)value - forKey:(GPBGenericValue *)key - keyDataType:(GPBDataType)keyDataType; -@end - -@interface GPBUInt32ObjectDictionary () { - @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 () { - @package - GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; -} -@end - -@interface GPBInt32Int32Dictionary () { - @package - GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; -} -@end - -@interface GPBInt32UInt64Dictionary () { - @package - GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; -} -@end - -@interface GPBInt32Int64Dictionary () { - @package - GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; -} -@end - -@interface GPBInt32BoolDictionary () { - @package - GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; -} -@end - -@interface GPBInt32FloatDictionary () { - @package - GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; -} -@end - -@interface GPBInt32DoubleDictionary () { - @package - GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; -} -@end - -@interface GPBInt32EnumDictionary () { - @package - GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; -} -- (NSData *)serializedDataForUnknownValue:(int32_t)value - forKey:(GPBGenericValue *)key - keyDataType:(GPBDataType)keyDataType; -@end - -@interface GPBInt32ObjectDictionary () { - @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 () { - @package - GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; -} -@end - -@interface GPBUInt64Int32Dictionary () { - @package - GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; -} -@end - -@interface GPBUInt64UInt64Dictionary () { - @package - GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; -} -@end - -@interface GPBUInt64Int64Dictionary () { - @package - GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; -} -@end - -@interface GPBUInt64BoolDictionary () { - @package - GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; -} -@end - -@interface GPBUInt64FloatDictionary () { - @package - GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; -} -@end - -@interface GPBUInt64DoubleDictionary () { - @package - GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; -} -@end - -@interface GPBUInt64EnumDictionary () { - @package - GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; -} -- (NSData *)serializedDataForUnknownValue:(int32_t)value - forKey:(GPBGenericValue *)key - keyDataType:(GPBDataType)keyDataType; -@end - -@interface GPBUInt64ObjectDictionary () { - @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 () { - @package - GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; -} -@end - -@interface GPBInt64Int32Dictionary () { - @package - GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; -} -@end - -@interface GPBInt64UInt64Dictionary () { - @package - GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; -} -@end - -@interface GPBInt64Int64Dictionary () { - @package - GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; -} -@end - -@interface GPBInt64BoolDictionary () { - @package - GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; -} -@end - -@interface GPBInt64FloatDictionary () { - @package - GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; -} -@end - -@interface GPBInt64DoubleDictionary () { - @package - GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; -} -@end - -@interface GPBInt64EnumDictionary () { - @package - GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; -} -- (NSData *)serializedDataForUnknownValue:(int32_t)value - forKey:(GPBGenericValue *)key - keyDataType:(GPBDataType)keyDataType; -@end - -@interface GPBInt64ObjectDictionary () { - @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 () { - @package - GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; -} -@end - -@interface GPBBoolInt32Dictionary () { - @package - GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; -} -@end - -@interface GPBBoolUInt64Dictionary () { - @package - GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; -} -@end - -@interface GPBBoolInt64Dictionary () { - @package - GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; -} -@end - -@interface GPBBoolBoolDictionary () { - @package - GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; -} -@end - -@interface GPBBoolFloatDictionary () { - @package - GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; -} -@end - -@interface GPBBoolDoubleDictionary () { - @package - GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; -} -@end - -@interface GPBBoolEnumDictionary () { - @package - GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; -} -- (NSData *)serializedDataForUnknownValue:(int32_t)value - forKey:(GPBGenericValue *)key - keyDataType:(GPBDataType)keyDataType; -@end - -@interface GPBBoolObjectDictionary () { - @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 () { - @package - GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; -} -@end - -@interface GPBStringInt32Dictionary () { - @package - GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; -} -@end - -@interface GPBStringUInt64Dictionary () { - @package - GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; -} -@end - -@interface GPBStringInt64Dictionary () { - @package - GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; -} -@end - -@interface GPBStringBoolDictionary () { - @package - GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; -} -@end - -@interface GPBStringFloatDictionary () { - @package - GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; -} -@end - -@interface GPBStringDoubleDictionary () { - @package - GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator; -} -@end - -@interface GPBStringEnumDictionary () { - @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 - -#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 - -#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 - -@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 - -/** - * 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)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 - -#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 - -// 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 -#import - -#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 - -#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 - #import - #import - #import - #import - #import - #import - #import - #import - #import -#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 - -@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 - -#import - -#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 - -#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 - -#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 - -@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 - -/** 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 *lengthDelimitedList; - -/** An array of groups of values for this field. */ -@property(nonatomic, readonly, strong) NSArray *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 *mutableLengthDelimitedList_; - NSMutableArray *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 - -@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 - -/** - * 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 *)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 - -#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 - -#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 - -#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 - -#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 -@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 - -#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 - -// 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 - #import - #import -#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 -#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": , - * "lastName": - * } - * - * 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 -#else - #import "GPBProtocolBuffers_RuntimeSupport.h" -#endif - -#if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS - #import -#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 -#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 *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 *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`, 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 *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 *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 -#else - #import "GPBProtocolBuffers_RuntimeSupport.h" -#endif - -#if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS - #import - #import - #import -#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 -#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 -#else - #import "GPBProtocolBuffers_RuntimeSupport.h" -#endif - -#if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS - #import -#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 -#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 -#else - #import "GPBProtocolBuffers_RuntimeSupport.h" -#endif - -#if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS - #import -#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 -#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 *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 -#else - #import "GPBProtocolBuffers_RuntimeSupport.h" -#endif - -#if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS - #import -#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 -#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 -#else - #import "GPBProtocolBuffers_RuntimeSupport.h" -#endif - -#if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS - #import -#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 -#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 *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 *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 -#else - #import "GPBProtocolBuffers_RuntimeSupport.h" -#endif - -#if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS - #import -#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 -#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 -#else - #import "GPBProtocolBuffers_RuntimeSupport.h" -#endif - -#if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS - #import -#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 -#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 *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 *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 *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 *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 *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 *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 *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 -#else - #import "GPBProtocolBuffers_RuntimeSupport.h" -#endif - -#if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS - #import - #import - #import -#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 -#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 -#else - #import "GPBProtocolBuffers_RuntimeSupport.h" -#endif - -#if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS - #import -#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 -@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 -#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 - -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 @@ FooterText - Copyright 2017 Google + Copyright 2015 Google Inc. License Copyright Title - FirebaseAnalytics + GGLInstanceID Type PSGroupSpecifier FooterText - Copyright 2017 Google + Copyright 2015 Google Inc. License Copyright Title - FirebaseCore + GoogleCloudMessaging Type PSGroupSpecifier FooterText - Copyright 2017 Google + Copyright 2015 Google Inc. License Copyright Title - FirebaseInstanceID + GoogleIPhoneUtilities Type PSGroupSpecifier FooterText - Copyright 2017 Google + Copyright 2016 Google License Copyright Title - FirebaseMessaging + GoogleInterchangeUtilities Type PSGroupSpecifier FooterText - - 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. - + Copyright 2016 Google License - Apache - Title - GoogleToolboxForMac - Type - PSGroupSpecifier - - - FooterText - 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. - - License - 3-Clause BSD License + Copyright Title - Protobuf + GoogleSymbolUtilities Type PSGroupSpecifier FooterText - 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. - + Copyright 2016 Google License - zlib + Copyright Title - nanopb + GoogleUtilities Type PSGroupSpecifier 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 -@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 -#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 -@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 -#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 - -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 -============================================== - -[![Build Status](https://travis-ci.org/nanopb/nanopb.svg?branch=master)](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 -#include -#include -#include - -#ifdef PB_ENABLE_MALLOC -#include -#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 - */ - -#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 - */ - -/* 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 - */ - -#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 diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Info.plist b/StoneIsland/platforms/ios/Stone Island.xcarchive/Info.plist deleted file mode 100644 index a2fb2bab..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Info.plist +++ /dev/null @@ -1,27 +0,0 @@ - - - - - ApplicationProperties - - ApplicationPath - Applications/Stone Island.app - CFBundleIdentifier - us.okfoc.stoneisland - CFBundleShortVersionString - 0.9.1 - CFBundleVersion - 0.9.1 - SigningIdentity - iPhone Developer: Francesca Agusani (3ECUPBTQ5W) - - ArchiveVersion - 2 - CreationDate - 2017-09-26T00:25:58Z - Name - Stone Island - SchemeName - Stone Island - - diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon29x29.png b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon29x29.png deleted file mode 100644 index 1bc2ef3a..00000000 Binary files a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon29x29.png and /dev/null differ diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon29x29@2x.png b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon29x29@2x.png deleted file mode 100644 index f2b09580..00000000 Binary files a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon29x29@2x.png and /dev/null differ diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon29x29@2x~ipad.png b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon29x29@2x~ipad.png deleted file mode 100644 index f2b09580..00000000 Binary files a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon29x29@2x~ipad.png and /dev/null differ diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon29x29@3x.png b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon29x29@3x.png deleted file mode 100644 index cd9d0c5b..00000000 Binary files a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon29x29@3x.png and /dev/null differ diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon29x29~ipad.png b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon29x29~ipad.png deleted file mode 100644 index 1bc2ef3a..00000000 Binary files a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon29x29~ipad.png and /dev/null differ diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon40x40@2x.png b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon40x40@2x.png deleted file mode 100644 index e8748382..00000000 Binary files a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon40x40@2x.png and /dev/null differ diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon40x40@2x~ipad.png b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon40x40@2x~ipad.png deleted file mode 100644 index e8748382..00000000 Binary files a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon40x40@2x~ipad.png and /dev/null differ diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon40x40@3x.png b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon40x40@3x.png deleted file mode 100644 index cce0af8d..00000000 Binary files a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon40x40@3x.png and /dev/null differ diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon40x40~ipad.png b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon40x40~ipad.png deleted file mode 100644 index 3fbeff4f..00000000 Binary files a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon40x40~ipad.png and /dev/null differ diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon50x50@2x~ipad.png b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon50x50@2x~ipad.png deleted file mode 100644 index d57ee90d..00000000 Binary files a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon50x50@2x~ipad.png and /dev/null differ diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon50x50~ipad.png b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon50x50~ipad.png deleted file mode 100644 index e54ea306..00000000 Binary files a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon50x50~ipad.png and /dev/null differ diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon57x57.png b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon57x57.png deleted file mode 100644 index 90da1bf7..00000000 Binary files a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon57x57.png and /dev/null differ diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon57x57@2x.png b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon57x57@2x.png deleted file mode 100644 index 43a52b41..00000000 Binary files a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon57x57@2x.png and /dev/null differ diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon60x60@2x.png b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon60x60@2x.png deleted file mode 100644 index cce0af8d..00000000 Binary files a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon60x60@2x.png and /dev/null differ diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon60x60@3x.png b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon60x60@3x.png deleted file mode 100644 index 77bf6c1d..00000000 Binary files a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon60x60@3x.png and /dev/null differ diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon72x72@2x~ipad.png b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon72x72@2x~ipad.png deleted file mode 100644 index 3fad3673..00000000 Binary files a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon72x72@2x~ipad.png and /dev/null differ diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon72x72~ipad.png b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon72x72~ipad.png deleted file mode 100644 index 5b99b007..00000000 Binary files a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon72x72~ipad.png and /dev/null differ diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon76x76@2x~ipad.png b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon76x76@2x~ipad.png deleted file mode 100644 index 2ca4f28f..00000000 Binary files a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon76x76@2x~ipad.png and /dev/null differ diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon76x76~ipad.png b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon76x76~ipad.png deleted file mode 100644 index 5a7a3184..00000000 Binary files a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon76x76~ipad.png and /dev/null differ diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon83.5x83.5@2x~ipad.png b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon83.5x83.5@2x~ipad.png deleted file mode 100644 index ba9b6287..00000000 Binary files a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/AppIcon83.5x83.5@2x~ipad.png and /dev/null differ diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/Assets.car b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/Assets.car deleted file mode 100644 index 7801cf64..00000000 Binary files a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/Assets.car and /dev/null differ diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/CDVLaunchScreen.storyboardc/01J-lp-oVM-view-Ze5-6b-2t3.nib b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/CDVLaunchScreen.storyboardc/01J-lp-oVM-view-Ze5-6b-2t3.nib deleted file mode 100644 index e336c7c1..00000000 Binary files a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/CDVLaunchScreen.storyboardc/01J-lp-oVM-view-Ze5-6b-2t3.nib and /dev/null differ diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/CDVLaunchScreen.storyboardc/Info.plist b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/CDVLaunchScreen.storyboardc/Info.plist deleted file mode 100644 index 32288e88..00000000 Binary files a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/CDVLaunchScreen.storyboardc/Info.plist and /dev/null differ diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/CDVLaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/CDVLaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib deleted file mode 100644 index b14290ac..00000000 Binary files a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/CDVLaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib and /dev/null differ diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/CDVNotification.bundle/beep.wav b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/CDVNotification.bundle/beep.wav deleted file mode 100644 index 05f5997f..00000000 Binary files a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/CDVNotification.bundle/beep.wav and /dev/null differ diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/Info.plist b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/Info.plist deleted file mode 100644 index 27ba8ec9..00000000 Binary files a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/Info.plist and /dev/null differ diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/LaunchImage-568h@2x.png b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/LaunchImage-568h@2x.png deleted file mode 100644 index 7fdd75b1..00000000 Binary files a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/LaunchImage-568h@2x.png and /dev/null differ diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/LaunchImage-700-568h@2x.png b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/LaunchImage-700-568h@2x.png deleted file mode 100644 index 7fdd75b1..00000000 Binary files a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/LaunchImage-700-568h@2x.png and /dev/null differ diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/LaunchImage-700-Landscape@2x~ipad.png b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/LaunchImage-700-Landscape@2x~ipad.png deleted file mode 100644 index ecd0e167..00000000 Binary files a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/LaunchImage-700-Landscape@2x~ipad.png and /dev/null differ diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/LaunchImage-700-Landscape~ipad.png b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/LaunchImage-700-Landscape~ipad.png deleted file mode 100644 index 2ff86bb6..00000000 Binary files a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/LaunchImage-700-Landscape~ipad.png and /dev/null differ diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/LaunchImage-700-Portrait@2x~ipad.png b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/LaunchImage-700-Portrait@2x~ipad.png deleted file mode 100644 index 9bcb4a4a..00000000 Binary files a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/LaunchImage-700-Portrait@2x~ipad.png and /dev/null differ diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/LaunchImage-700-Portrait~ipad.png b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/LaunchImage-700-Portrait~ipad.png deleted file mode 100644 index 858c3509..00000000 Binary files a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/LaunchImage-700-Portrait~ipad.png and /dev/null differ diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/LaunchImage-700@2x.png b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/LaunchImage-700@2x.png deleted file mode 100644 index 26f77e6a..00000000 Binary files a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/LaunchImage-700@2x.png and /dev/null differ diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/LaunchImage-800-667h@2x.png b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/LaunchImage-800-667h@2x.png deleted file mode 100644 index c98b2486..00000000 Binary files a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/LaunchImage-800-667h@2x.png and /dev/null differ diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/LaunchImage-800-Landscape-736h@3x.png b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/LaunchImage-800-Landscape-736h@3x.png deleted file mode 100644 index 7dfc309c..00000000 Binary files a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/LaunchImage-800-Landscape-736h@3x.png and /dev/null differ diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/LaunchImage-800-Portrait-736h@3x.png b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/LaunchImage-800-Portrait-736h@3x.png deleted file mode 100644 index d6561fd7..00000000 Binary files a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/LaunchImage-800-Portrait-736h@3x.png and /dev/null differ diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/LaunchImage-Portrait@2x~ipad.png b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/LaunchImage-Portrait@2x~ipad.png deleted file mode 100644 index 9bcb4a4a..00000000 Binary files a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/LaunchImage-Portrait@2x~ipad.png and /dev/null differ diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/LaunchImage-Portrait~ipad.png b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/LaunchImage-Portrait~ipad.png deleted file mode 100644 index 858c3509..00000000 Binary files a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/LaunchImage-Portrait~ipad.png and /dev/null differ diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/LaunchImage.png b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/LaunchImage.png deleted file mode 100644 index be1bd783..00000000 Binary files a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/LaunchImage.png and /dev/null differ diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/LaunchImage@2x.png b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/LaunchImage@2x.png deleted file mode 100644 index 26f77e6a..00000000 Binary files a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/LaunchImage@2x.png and /dev/null differ diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/MainViewController.nib b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/MainViewController.nib deleted file mode 100644 index a43f8f57..00000000 Binary files a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/MainViewController.nib and /dev/null differ diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/PkgInfo b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/PkgInfo deleted file mode 100644 index bd04210f..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/PkgInfo +++ /dev/null @@ -1 +0,0 @@ -APPL???? \ No newline at end of file diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/Stone Island b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/Stone Island deleted file mode 100755 index 177512d2..00000000 Binary files a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/Stone Island and /dev/null differ diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/_CodeSignature/CodeResources b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/_CodeSignature/CodeResources deleted file mode 100644 index a3926777..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/_CodeSignature/CodeResources +++ /dev/null @@ -1,2810 +0,0 @@ - - - - - files - - AppIcon29x29.png - - Is6VLMY4XWleZkWcLbcHYvQLtEk= - - AppIcon29x29@2x.png - - 4gqvmmThxGuR+05NtIXr5Ppfu/I= - - AppIcon29x29@2x~ipad.png - - 4gqvmmThxGuR+05NtIXr5Ppfu/I= - - AppIcon29x29@3x.png - - 34x3jkHPlzEFjwiLm8KS7t+JvIY= - - AppIcon29x29~ipad.png - - Is6VLMY4XWleZkWcLbcHYvQLtEk= - - AppIcon40x40@2x.png - - LeIV1eZoNuUJDTs/qhgVylBiRzs= - - AppIcon40x40@2x~ipad.png - - LeIV1eZoNuUJDTs/qhgVylBiRzs= - - AppIcon40x40@3x.png - - qEWfmlsV73kzUbX2cXG+CfBLDa8= - - AppIcon40x40~ipad.png - - BfrJs8fg9gDZfCk3YmssJmOtgmk= - - AppIcon50x50@2x~ipad.png - - OzeMJWcikSMMGOVldVzY1Dlw+OY= - - AppIcon50x50~ipad.png - - EHAZVskQFYgH6vjOsUHwdujCUZ4= - - AppIcon57x57.png - - rQB+5Bku/vInsAJhWWsR17i00ko= - - AppIcon57x57@2x.png - - jB03yEyAL00AGpbq/ZXJzAFWMRY= - - AppIcon60x60@2x.png - - qEWfmlsV73kzUbX2cXG+CfBLDa8= - - AppIcon60x60@3x.png - - n6ptVnfuiunMFRI0tO58YCR5mUI= - - AppIcon72x72@2x~ipad.png - - Kud0eilmgIYWXUjRTVvvq77WfWc= - - AppIcon72x72~ipad.png - - bR9bIHiTC8lSBVHRxDzuC0WOKzs= - - AppIcon76x76@2x~ipad.png - - ucEjmUt3wRwY8ZsUGGPM+DCV3gY= - - AppIcon76x76~ipad.png - - uWdap5QW+re3BS+RMlQ8LQktl10= - - AppIcon83.5x83.5@2x~ipad.png - - X2Z6kGsoxHnLhCoBbeIhFHAScMs= - - Assets.car - - j3XIGS0AOWm9CN+7YAnMPPKdCcQ= - - CDVLaunchScreen.storyboardc/01J-lp-oVM-view-Ze5-6b-2t3.nib - - a/gMVEDo/igdesy9Qmqr41WM4j0= - - CDVLaunchScreen.storyboardc/Info.plist - - n2t8gsDpfE6XkhG31p7IQJRxTxU= - - CDVLaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib - - f0suWQT3Sw78SVx6bHgyDYepvdE= - - CDVNotification.bundle/beep.wav - - /kSUVvLLJcbtfXnxFEolil3/NRk= - - Info.plist - - 9iyiByBCxU6Y0jPNuBVBJOllumQ= - - LaunchImage-568h@2x.png - - O7BTaeYy02zZ5Z1Io4P9qbW0GhI= - - LaunchImage-700-568h@2x.png - - O7BTaeYy02zZ5Z1Io4P9qbW0GhI= - - LaunchImage-700-Landscape@2x~ipad.png - - EShK0rbY/hX73zQlYBPjN7j7V2k= - - LaunchImage-700-Landscape~ipad.png - - iGeMgwhUrOx2h8Ma1F2C3HUzRbk= - - LaunchImage-700-Portrait@2x~ipad.png - - otkRNyorWpU7SNgjZfOOUJGsySs= - - LaunchImage-700-Portrait~ipad.png - - WGypni7nsuVcJryGUSh+OL4RyKE= - - LaunchImage-700@2x.png - - yI6y+H/t6sdofwdf70F120ErFrE= - - LaunchImage-800-667h@2x.png - - 4tBfXaUz4b31BBqG6M0aS0WPOTM= - - LaunchImage-800-Landscape-736h@3x.png - - wwM/Q+MMTFzMHV8MKCAeCifpsRM= - - LaunchImage-800-Portrait-736h@3x.png - - MpK2Hes1RkoIUvQGNXsKHRLbHQM= - - LaunchImage-Portrait@2x~ipad.png - - otkRNyorWpU7SNgjZfOOUJGsySs= - - LaunchImage-Portrait~ipad.png - - WGypni7nsuVcJryGUSh+OL4RyKE= - - LaunchImage.png - - O8VNFJ4huf4alLfKtKkSKMHM88A= - - LaunchImage@2x.png - - yI6y+H/t6sdofwdf70F120ErFrE= - - MainViewController.nib - - cdyprXlG8Bp7k3NJZR96ikcFEI8= - - PkgInfo - - n57qDP4tZfLD1rCS43W0B4LQjzE= - - archived-expanded-entitlements.xcent - - uVC4UsEAjsaAorNMAW+mHUKgk9o= - - config.xml - - SQpapncz+hIueHEFmGTkBC0yseQ= - - embedded.mobileprovision - - 6a29fgIuenXjxvHTXPZvMubF7Mk= - - www/cordova-js-src/exec.js - - 3QDPaUQrAr8Wq2XcQhqcl8DLabQ= - - www/cordova-js-src/platform.js - - s+KdzB0mMHQsQQTAofDqS0ApWpY= - - www/cordova.js - - U5qD+h8czHzRSMNDeKZnVmgA3ao= - - www/cordova_plugins.js - - ZLiJikY3+FWToLfZjEmru0f7jFE= - - www/css/account.css - - iqX2jg1B1fMIoMZ9UDOmdeXY5R4= - - www/css/blogs.css - - uoDbpZ20pX9gG/U1j4RiYqBz1oc= - - www/css/cart.css - - f8AmevHsGVmWkazWNR/SkQ8ctDE= - - www/css/fonts/andale_mono.ttf - - LNdqAJjPnsKnT1GghSkYxImlFvQ= - - www/css/fonts/andale_mono.woff - - uOPMweytjo+6Egyqhu+4GdPmgq8= - - www/css/fonts/fonts.css - - NKnz6tasTlqoICSI4V4YlOeHVJM= - - www/css/fonts/ionicons.css - - gzPAFostLVCiwxkgMsSWmTe+A/c= - - www/css/fonts/ionicons.eot - - YVMuieIS+N0WujHz6881wKczQDU= - - www/css/fonts/ionicons.svg - - Pxyij8sELSvMbuak492BflEy7uo= - - www/css/fonts/ionicons.ttf - - GwoN4ISQWUaiAwDKjDVIZd7EZ2Q= - - www/css/fonts/ionicons.woff - - 5GgZ6GOkZ1HWIsEZDE6Kg+vCBhI= - - www/css/fonts/pfdintextpro-bold-webfont.woff - - mDYay3ArKzHK+mu3l0GGL7AJYI8= - - www/css/fonts/pfdintextpro-italic-webfont.woff - - gtSnNX5Vtd1JOciHX7Q2IGnhYEk= - - www/css/fonts/pfdintextpro-light-webfont.woff - - 2ZQAPshoOfFBipDEgccDh0IDokQ= - - www/css/fonts/pfdintextpro-medium-webfont.woff - - KyUoyPHWVunK8heDhzHDUKbf1VA= - - www/css/fonts/pfdintextpro-regular-webfont.woff - - zn1xFRXWNWSV7oJEL0mt+0JLjNE= - - www/css/index.css - - sS5Z897GbFcFtJaWKk9Ft6T/Vtg= - - www/css/nav.css - - tNCurPA7ni1EDWw/jvw9w67DpVU= - - www/css/products.css - - bY2IfaCUQ+Rz5riamQVF0rOVe6A= - - www/css/vendor/flickity.css - - xW5wsn/T/+uaGvIT+Sl9WY/IM2k= - - www/db.json - - FHbZPD9DyP+Prfwo3urgg0f3pwo= - - www/img/Resources/CDVNotification.bundle/beep.wav - - /kSUVvLLJcbtfXnxFEolil3/NRk= - - www/img/Resources/splash/Default-568h@2x~iphone.png - - J8BakinXs4g2c3rjIlkaUKc1m3k= - - www/img/Resources/splash/Default-667h.png - - KeM+qh3e57f5eeltxETo6kNL/lk= - - www/img/Resources/splash/Default-736h.png - - 5egepTM4V7rMvBkpkxUc8RAcJaI= - - www/img/Resources/splash/Default-Landscape-736h.png - - OakZWPocy5SHfGOIcwCCOoHVEqA= - - www/img/Resources/splash/Default-Landscape@2x~ipad.png - - q8VJZgMwFNZmWGD/Lf1/2KJt42c= - - www/img/Resources/splash/Default-Landscape~ipad.png - - PhNiOU4rbDZLXNv3olAhvfd9XQk= - - www/img/Resources/splash/Default-Portrait@2x~ipad.png - - CwZQXSzj9Gai0+MUt1mGzHuYO4U= - - www/img/Resources/splash/Default-Portrait~ipad.png - - ONniQfICjQTe8yPDO4mhWp9I2pM= - - www/img/Resources/splash/Default@2x~iphone.png - - uMF7RsyJGko7JaycVJ1sdu4hN/A= - - www/img/Resources/splash/Default~iphone.png - - btYS0PqHlIXDTLPf+7ZkA8uadDw= - - www/img/angle-down.png - - I9z7X0QqPVunkk2Pp6QVBfjF/Ug= - - www/img/bottom-fade.png - - doxZCcQch8Yt0UXMMvPBppxacg0= - - www/img/cart-box.png - - 76PMCjdfolbYk9wB0iPxqaLwpzk= - - www/img/cart-handle.png - - DIrmugvltD/RB0iy1latRCJGUec= - - www/img/compass-logo.png - - hO/U4zzOyjwTppKJ9FKI73NPrGU= - - www/img/compass-logo.png.old - - vwVmYayeHMzxccFD/TN328PqiVk= - - www/img/fade-to-bottom-threshold.gif - - GR0zpcR8KMByQIz2FFd4chj4bGE= - - www/img/fade-to-bottom.png - - doxZCcQch8Yt0UXMMvPBppxacg0= - - www/img/left-arrow.png - - gJa/2uVfymH2Yxi4/cvGN+OdrWM= - - www/img/right-arrow.png - - MSgmEvsEIKkviNZIWWCPJeKdJqY= - - www/img/small-cart-box.png - - DJxx7Sxv9HGOumgrHLmIk1YfW7c= - - www/img/small-cart-handle.png - - SlZeorPNUiYlNNv0UCnVXxyNZPc= - - www/img/small-logo.png - - FRbH5vLd9Z1i4k0dBsW+I5+g4qo= - - www/img/spinner.gif - - oEyz0SzCG90twGaMhPwiIjXakkg= - - www/img/wide-logo.png - - WJ/FbJfrZcN2Pg0w6S5c202hwSs= - - www/index.html - - 3y6+VOdsGYg9Yra+PEvciIC8teE= - - www/js/index.js - - C8DUPKVibVPQVD9HXKKoIuRguHw= - - www/js/lib/_router.js - - O4eZM5nyghVF7WELlWxgCniAfZc= - - www/js/lib/account/AccountView.js - - g8Rl32cI413Hgc7ish5t2vtrS9k= - - www/js/lib/account/OrdersView.js - - zEEbcESh8kYxm6fkztCPSUnjOLI= - - www/js/lib/account/PaymentView.js - - cSoU0cfID6oqM8fLFH19k6OQ9Mo= - - www/js/lib/account/ProfileView.js - - g81ByC4WQ4lAdrDltz7b/C/MqNY= - - www/js/lib/account/SettingsView.js - - hXT8T0eaN6o3ERCH5Ai1nMlVrQI= - - www/js/lib/account/ShippingView.js - - +2iaJJaoZoD+N0LlfGHz6WzH5FM= - - www/js/lib/auth/LoginView.js - - 2nZGYC2LOCDPymoAm3yBxHwgYgY= - - www/js/lib/auth/LogoutView.js - - jhf/Pzr8A/yk68t3W15g32q4eQ4= - - www/js/lib/auth/SignupView.js - - n92NvoUdaRUMNZmUVqMCg77V/tM= - - www/js/lib/blogs/ArchiveView.js - - 0MoYu/cf89T9Yj3/GqkxVS5Kn0s= - - www/js/lib/blogs/BlogView.js - - XZ57l39rkb5nXmank50SQ81rtds= - - www/js/lib/blogs/HubView.js - - 4oI73qy2Z5DyyiA8Kz+k1+9vLnQ= - - www/js/lib/blogs/PageView.js - - fnTO0QKgJ08PPNTrTuT+hgmLtqc= - - www/js/lib/blogs/StoryView.js - - 0uCBjGnwq8xsO5chZu/C1rGZ/SQ= - - www/js/lib/cart/CartConfirm.js - - jqryKPHj843xlpHaPq2On9mfaeM= - - www/js/lib/cart/CartError.js - - AeAnmVjk6HP4fhuICpuG8nHnFuI= - - www/js/lib/cart/CartPayment.js - - 4SLlztcXjDFBhv19I8bRmWhUyd0= - - www/js/lib/cart/CartShipping.js - - 8O97NpkLXlSPzbhrgsE/a0tIGuY= - - www/js/lib/cart/CartSummary.js - - YYiOPlDBi/ESvBJZ+bBt5ElQ254= - - www/js/lib/cart/CartThanks.js - - JOo957U9zyzfOkwPIJ7K0oMB5SA= - - www/js/lib/cart/CartView.js - - +kmEZ9ukx0LiHKArz7oWZyBZr/4= - - www/js/lib/etc/backup_db.js - - LS64v8X6RPikJtQ057nQlmza3m4= - - www/js/lib/etc/deeplink.js - - Xjr3J9pMm16R4X4Ez0w2889N4Is= - - www/js/lib/etc/geo.js - - xaQ5M8Pao+Ewh6usOyD5UV/49gc= - - www/js/lib/etc/push.js - - +3CWZcxp1Ao9A/4KiM4nA82Hia8= - - www/js/lib/nav/AddressView.js - - JFoETIdARQvI5GU6tc1YJhhttEc= - - www/js/lib/nav/CreditCardView.js - - uV1Y5XohZktnJXSKPs/gt/vhlzk= - - www/js/lib/nav/CurtainView.js - - VHa9pwxWtQ31RhBknlTCAqrKA7c= - - www/js/lib/nav/FooterView.js - - WaOKgFizQ3W8RPEhwga57tf3sLM= - - www/js/lib/nav/HeaderView.js - - Ui2nti/7MEoaanRA/U1QuO6cVSQ= - - www/js/lib/nav/IntroView.js - - FSNPuiLwJs4MyLmkvAY6k3RPRF8= - - www/js/lib/nav/NavView.js - - vVy7+c8F2D+3VFixaG8D1GqdHL4= - - www/js/lib/nav/SearchView.js - - b8Xg3rQZIafOl+uBceHrk6yVqYU= - - www/js/lib/products/ClosedStoreView.js - - iDWe+pvx3vGBohpZ05biGudY71o= - - www/js/lib/products/CollectionView.js - - g7ama0ca186rxP6eho2Lcqqlaxo= - - www/js/lib/products/GalleryView.js - - CpqSBwnIKxV0wFGD8GdU82L9oqI= - - www/js/lib/products/ProductView.js - - y8oQIYrgG+mfj1RXFIyCOzFLNaU= - - www/js/lib/products/Selector.js - - QxR583tVoXxutmfsJwO9Trbb8QE= - - www/js/lib/products/filters/CategoryFilter.js - - z8glR9hNUq3u4RpoKJRCV6oag8o= - - www/js/lib/products/filters/DepartmentFilter.js - - 8NWvfVz9fG9fo5KCmaEw/J3WOjQ= - - www/js/lib/products/filters/SizeFilter.js - - o/z0F+RylPMY7gYqKn5AUSGjkGE= - - www/js/lib/view/Router.js - - nC19loTSWgo+YghXIQTdo2qViKw= - - www/js/lib/view/Scrollable.js - - w8k3ObVeDwNmo5N4RSbu094FfTk= - - www/js/lib/view/Serializable.js - - TZu3vDiiaHeg3ApJ+HZowCDsPvE= - - www/js/lib/view/View.js - - 1vOGv/o4d073vpU6t8Dn08nZsnY= - - www/js/sdk/_sdk.js - - +RIDPxfqUZwaTbuh+hEYSte1cv0= - - www/js/sdk/account.js - - iFcyfpZSqqeP8RQ80FNBdRFrjNI= - - www/js/sdk/address.js - - 58zTcGuj9yQkjVJYaxboOYe+LiI= - - www/js/sdk/auth.js - - +1ZjnlN26KDrimArQWfhljcz3CM= - - www/js/sdk/cart.js - - TWij8pn0/F4YBj04iBZzNX2NyuQ= - - www/js/sdk/payment.js - - j3efOwLU577n/V2UAVxVHU/0NB8= - - www/js/sdk/product.js - - ZYf0fQuZdLIS1ZXTJSingxo32Hs= - - www/js/sdk/shipping.js - - 04qsgSJ7isNdqyVfM1LQ7Q6wRwM= - - www/js/vendor/fastclick.js - - GsPVekcRLSRd6GYRskvAbulostc= - - www/js/vendor/flickity.pkgd.js - - 7+L7DJW+IWJnI8uOkBFuyww3Bk0= - - www/js/vendor/iscroll.js - - zmIJQRtMdsZHuPuHvHEe8K1HC7w= - - www/js/vendor/jquery-2.1.4.min.js - - Q9xVRgjfiFpZ3e7OFZjGrOQ010c= - - www/js/vendor/jquery.creditCardValidator.js - - Y27vkeRB6sxVVgVnzd82mRHab3g= - - www/js/vendor/loader.js - - MNfNXlpvgsuGkqhXhawkjJxwGGU= - - www/js/vendor/lodash.min.js - - QH5J71GV/YmbKvW8dOzPWmIy2Js= - - www/js/vendor/moment.js - - up6xZ/qvAr5h9VNpOTtzN9Jzv6Y= - - www/js/vendor/oktween.js - - IbqDpG6Qitgu8bvKthKC6hJyb1g= - - www/js/vendor/prefixfree.js - - ImNOjml3qilBB3P2Q+D2oh0XZlo= - - www/js/vendor/promise.js - - c/6/xZdHlYR9yLjMoxE3Tk2wdgc= - - www/js/vendor/util.js - - awGO8rHbB+UyNdCDbLXrp2nihQg= - - www/plugins/cordova-plugin-console/www/console-via-logger.js - - NyUkntRl9vFIiOC3onmXNsxpedU= - - www/plugins/cordova-plugin-console/www/logger.js - - tmAfmQQR8NZd7y+bTWuju4/TbY0= - - www/plugins/cordova-plugin-customurlscheme/www/ios/LaunchMyApp.js - - 0NrlXTwBHUS5u9XaqkoSJ+waVDo= - - www/plugins/cordova-plugin-device/www/device.js - - DgD9WKGqlbNViEZBSi4Wenbl/uM= - - www/plugins/cordova-plugin-dialogs/www/notification.js - - 7DTImwpj5B7VCelKiHdmmFLX6h0= - - www/plugins/cordova-plugin-geolocation/www/Coordinates.js - - B+vlNAwNL/8E91a2w8xN/QZtP9o= - - www/plugins/cordova-plugin-geolocation/www/Position.js - - 1DZ/xrP/zFT+anCeCYYt+uuQIyU= - - www/plugins/cordova-plugin-geolocation/www/PositionError.js - - NZQ0MpOiURNiYMJS79+bdtSDnzI= - - www/plugins/cordova-plugin-geolocation/www/geolocation.js - - DBMSf1DRKjXfKMDgaSJHjnx+wgI= - - www/plugins/cordova-plugin-inappbrowser/www/inappbrowser.js - - EfUzmAcUagDDJeG2yHQTy4FngxU= - - www/plugins/cordova-plugin-network-information/www/Connection.js - - QP5YzumNbUCPIZ96Xkpu5RegRY0= - - www/plugins/cordova-plugin-network-information/www/network.js - - jxeuXL/JPk6C5eQC7iVThLg7NPc= - - www/plugins/cordova-plugin-splashscreen/www/splashscreen.js - - n2E0W8B/grOxM2ORx/haAYOWIcA= - - www/plugins/cordova-plugin-statusbar/www/statusbar.js - - hDT++3ZaOTp3t16AAFAibxtovj0= - - www/plugins/cordova-plugin-x-socialsharing/www/SocialSharing.js - - p2ovf3IcCK49/GvqK+j7UmFu1zI= - - www/plugins/ionic-plugin-keyboard/www/ios/keyboard.js - - gexyZjGUVvhbQiJbBzCrImXWv34= - - www/plugins/phonegap-plugin-push/www/push.js - - AF+WnBEprzr+ql8AKjlyCUKSiTI= - - - files2 - - AppIcon29x29.png - - hash - - Is6VLMY4XWleZkWcLbcHYvQLtEk= - - hash2 - - B335YAj6s7XMv/1E833Dg8f6gsJ1KuRtXQmsfHRxAvI= - - - AppIcon29x29@2x.png - - hash - - 4gqvmmThxGuR+05NtIXr5Ppfu/I= - - hash2 - - CnKF0jydrQtaoddcpz6pxsEzDcKUn0vXo+CuFs4NYvs= - - - AppIcon29x29@2x~ipad.png - - hash - - 4gqvmmThxGuR+05NtIXr5Ppfu/I= - - hash2 - - CnKF0jydrQtaoddcpz6pxsEzDcKUn0vXo+CuFs4NYvs= - - - AppIcon29x29@3x.png - - hash - - 34x3jkHPlzEFjwiLm8KS7t+JvIY= - - hash2 - - ILfuARqTyA3SWNRU8D8qGDMwoS7kIxYKiVX9XpFnlbg= - - - AppIcon29x29~ipad.png - - hash - - Is6VLMY4XWleZkWcLbcHYvQLtEk= - - hash2 - - B335YAj6s7XMv/1E833Dg8f6gsJ1KuRtXQmsfHRxAvI= - - - AppIcon40x40@2x.png - - hash - - LeIV1eZoNuUJDTs/qhgVylBiRzs= - - hash2 - - Cs68urmuQk75aZI1ubqpLGbrIgq1ycRUlVprV5Z9ieI= - - - AppIcon40x40@2x~ipad.png - - hash - - LeIV1eZoNuUJDTs/qhgVylBiRzs= - - hash2 - - Cs68urmuQk75aZI1ubqpLGbrIgq1ycRUlVprV5Z9ieI= - - - AppIcon40x40@3x.png - - hash - - qEWfmlsV73kzUbX2cXG+CfBLDa8= - - hash2 - - qaLhWGCk5HFcWOT5PhOSw/vn84MmZVGS9WB7EOTh2jg= - - - AppIcon40x40~ipad.png - - hash - - BfrJs8fg9gDZfCk3YmssJmOtgmk= - - hash2 - - wi5HOidnJoX8nwwgrXijerxiqxdrMpkMMq73DKq5YQI= - - - AppIcon50x50@2x~ipad.png - - hash - - OzeMJWcikSMMGOVldVzY1Dlw+OY= - - hash2 - - HEblwClOX1fWKLUOwFSu2VKE12rZHBJY32bcoqg+bUs= - - - AppIcon50x50~ipad.png - - hash - - EHAZVskQFYgH6vjOsUHwdujCUZ4= - - hash2 - - nfnbIxAobJY7zJnQ1BbIv6HI5UiddeprMQQLZ8l1RGQ= - - - AppIcon57x57.png - - hash - - rQB+5Bku/vInsAJhWWsR17i00ko= - - hash2 - - Z6AAl5oxyywqIUAkaMagEZzOumh3bRb8Ybx6F7Bh/yk= - - - AppIcon57x57@2x.png - - hash - - jB03yEyAL00AGpbq/ZXJzAFWMRY= - - hash2 - - kzCz1nkpfM9pninXy4mMRWZG22qrVz+LAEHL3SK2PlQ= - - - AppIcon60x60@2x.png - - hash - - qEWfmlsV73kzUbX2cXG+CfBLDa8= - - hash2 - - qaLhWGCk5HFcWOT5PhOSw/vn84MmZVGS9WB7EOTh2jg= - - - AppIcon60x60@3x.png - - hash - - n6ptVnfuiunMFRI0tO58YCR5mUI= - - hash2 - - B6jAjmSmuYvBgiXdpsQSrguJjHxFL0Lxxwdn/1wCM4A= - - - AppIcon72x72@2x~ipad.png - - hash - - Kud0eilmgIYWXUjRTVvvq77WfWc= - - hash2 - - 9WhRCRC/iUpCIEXiwwkTYuhsp7h2UiTcVKEV0Pvpo/0= - - - AppIcon72x72~ipad.png - - hash - - bR9bIHiTC8lSBVHRxDzuC0WOKzs= - - hash2 - - PiDu5TKAuOfLfBW9o4A8/MiLPeOIaNoCDBl40HruL5A= - - - AppIcon76x76@2x~ipad.png - - hash - - ucEjmUt3wRwY8ZsUGGPM+DCV3gY= - - hash2 - - SgAwWn7JngXGGKnpn5eaPFHA0cqNZ2CPY8RD4y3BBfs= - - - AppIcon76x76~ipad.png - - hash - - uWdap5QW+re3BS+RMlQ8LQktl10= - - hash2 - - AN/PK9BtVMFnYMvUdNfLBrju1yncLHGeQa+xB1ZFwTs= - - - AppIcon83.5x83.5@2x~ipad.png - - hash - - X2Z6kGsoxHnLhCoBbeIhFHAScMs= - - hash2 - - 15Cm7tc8cAJKkYbrN6RdRBQO5Bh9xFr7kecMvjgJR2s= - - - Assets.car - - hash - - j3XIGS0AOWm9CN+7YAnMPPKdCcQ= - - hash2 - - MD7nPimOIluVWUNbEeDxNDqAcYc5LLaiW7YgRYAl5lk= - - - CDVLaunchScreen.storyboardc/01J-lp-oVM-view-Ze5-6b-2t3.nib - - hash - - a/gMVEDo/igdesy9Qmqr41WM4j0= - - hash2 - - sW+LF70tbPn5sngT0Vur2hUvwnZC/FqqYT4x7O1RdKU= - - - CDVLaunchScreen.storyboardc/Info.plist - - hash - - n2t8gsDpfE6XkhG31p7IQJRxTxU= - - hash2 - - HyVdXMU7Ux4/KalAao30mpWOK/lEPT4gvYN09wf31cg= - - - CDVLaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib - - hash - - f0suWQT3Sw78SVx6bHgyDYepvdE= - - hash2 - - 3TdP9o4nuganddFVBVEjYT1LmPqcUjq0nDLAS6lsyKs= - - - CDVNotification.bundle/beep.wav - - hash - - /kSUVvLLJcbtfXnxFEolil3/NRk= - - hash2 - - KfYd4hFlyPwinBGKi4ruYae1MyeQ2TKrPJvIngKdC38= - - - LaunchImage-568h@2x.png - - hash - - O7BTaeYy02zZ5Z1Io4P9qbW0GhI= - - hash2 - - 3yB+TvpsbLRHSe6MsvqKLnT+hxIqLdGVTx8+Slu6xas= - - - LaunchImage-700-568h@2x.png - - hash - - O7BTaeYy02zZ5Z1Io4P9qbW0GhI= - - hash2 - - 3yB+TvpsbLRHSe6MsvqKLnT+hxIqLdGVTx8+Slu6xas= - - - LaunchImage-700-Landscape@2x~ipad.png - - hash - - EShK0rbY/hX73zQlYBPjN7j7V2k= - - hash2 - - jZlmx2dzTd/zRbVAqyWoGWMu097ZBPtnMnpCsfU3u4k= - - - LaunchImage-700-Landscape~ipad.png - - hash - - iGeMgwhUrOx2h8Ma1F2C3HUzRbk= - - hash2 - - VSyZwXMGID7Djb3Hv8IoZVMlW/M1WNjWmQ0ARPFWM+A= - - - LaunchImage-700-Portrait@2x~ipad.png - - hash - - otkRNyorWpU7SNgjZfOOUJGsySs= - - hash2 - - X7YAT13G2HbvGhKWkMt4c1u38Ndx8MB0NdhBeZBaMyg= - - - LaunchImage-700-Portrait~ipad.png - - hash - - WGypni7nsuVcJryGUSh+OL4RyKE= - - hash2 - - nzHoSI+eflawPHVT1I/kFhyw1HDCvmc2BozfmRUV0jA= - - - LaunchImage-700@2x.png - - hash - - yI6y+H/t6sdofwdf70F120ErFrE= - - hash2 - - Kz5c0HxeKYKzsnJmmy8ctEh/DnJen+4EiuAunRCPsEc= - - - LaunchImage-800-667h@2x.png - - hash - - 4tBfXaUz4b31BBqG6M0aS0WPOTM= - - hash2 - - Z0hOhUQUUrzsTIuUGx08TObi18hU8LRAAruKs4tEFtY= - - - LaunchImage-800-Landscape-736h@3x.png - - hash - - wwM/Q+MMTFzMHV8MKCAeCifpsRM= - - hash2 - - 8Qpu0xsBl6Ydyf9I3CokAS//k6Eg66QMtm8wezC3EQ0= - - - LaunchImage-800-Portrait-736h@3x.png - - hash - - MpK2Hes1RkoIUvQGNXsKHRLbHQM= - - hash2 - - GjJU+UZ0nON5M7H4HlApb7kI4Qg1IH5BvxFWEFkBS74= - - - LaunchImage-Portrait@2x~ipad.png - - hash - - otkRNyorWpU7SNgjZfOOUJGsySs= - - hash2 - - X7YAT13G2HbvGhKWkMt4c1u38Ndx8MB0NdhBeZBaMyg= - - - LaunchImage-Portrait~ipad.png - - hash - - WGypni7nsuVcJryGUSh+OL4RyKE= - - hash2 - - nzHoSI+eflawPHVT1I/kFhyw1HDCvmc2BozfmRUV0jA= - - - LaunchImage.png - - hash - - O8VNFJ4huf4alLfKtKkSKMHM88A= - - hash2 - - 7zGpZrOb/lITBp0TKyhXRzOKNOPPO9fat+8NoIvD6U8= - - - LaunchImage@2x.png - - hash - - yI6y+H/t6sdofwdf70F120ErFrE= - - hash2 - - Kz5c0HxeKYKzsnJmmy8ctEh/DnJen+4EiuAunRCPsEc= - - - MainViewController.nib - - hash - - cdyprXlG8Bp7k3NJZR96ikcFEI8= - - hash2 - - 5u2ohEtpQiPZRGmKPEoflAv8qemJPs6p0nfWIq0WbSw= - - - archived-expanded-entitlements.xcent - - hash - - uVC4UsEAjsaAorNMAW+mHUKgk9o= - - hash2 - - e/joE7ObU4L5jO1+1JUxZxM/FUkgLPoVg6yex5UVEFk= - - - config.xml - - hash - - SQpapncz+hIueHEFmGTkBC0yseQ= - - hash2 - - 4zT1hAPT/UnVlRTVWU/tIdeLXU/jy5yFsKhZpy+g968= - - - embedded.mobileprovision - - hash - - 6a29fgIuenXjxvHTXPZvMubF7Mk= - - hash2 - - bsbcK855Yy1AFdFbpZOEfNlwpqtrxpMeWJJkDULt+D8= - - - www/cordova-js-src/exec.js - - hash - - 3QDPaUQrAr8Wq2XcQhqcl8DLabQ= - - hash2 - - 3k+JZ8ZeHITt5+/EQNMxMv9o6gJ7PJ7TdGiLTUKTJlU= - - - www/cordova-js-src/platform.js - - hash - - s+KdzB0mMHQsQQTAofDqS0ApWpY= - - hash2 - - VC59qcohWe5Awbx7BGlb0BBJtIPuhBSwQNM2k5RQi/8= - - - www/cordova.js - - hash - - U5qD+h8czHzRSMNDeKZnVmgA3ao= - - hash2 - - vvROt4nAghiz/nS7ekznMtV1kOKlu40f/Me6P8Npd+4= - - - www/cordova_plugins.js - - hash - - ZLiJikY3+FWToLfZjEmru0f7jFE= - - hash2 - - wwWxpCP0qmAuV4RuUx2DnJnMTPMZAtjGSnrEH1SLn/E= - - - www/css/account.css - - hash - - iqX2jg1B1fMIoMZ9UDOmdeXY5R4= - - hash2 - - gMqNEgIOHD+Z9Gy63ewBuCTkzHwIFKxy5ZoW5F8j34I= - - - www/css/blogs.css - - hash - - uoDbpZ20pX9gG/U1j4RiYqBz1oc= - - hash2 - - QqQZ5BjyBPjGxiUx+SBuzLiem6repcQ61KRxr4s9fI0= - - - www/css/cart.css - - hash - - f8AmevHsGVmWkazWNR/SkQ8ctDE= - - hash2 - - TnNnjg3PuKGERZhJmaiUD+YBWeRPFEwYC0zwkBHo1TE= - - - www/css/fonts/andale_mono.ttf - - hash - - LNdqAJjPnsKnT1GghSkYxImlFvQ= - - hash2 - - ykNqjwf2aZEHVC6+GdzJR48SqmZpJ2men6EBFefS7pU= - - - www/css/fonts/andale_mono.woff - - hash - - uOPMweytjo+6Egyqhu+4GdPmgq8= - - hash2 - - +E6sojOf4n4Euc8WeVtrjWQrtJ6yUKGjmLUrgURiacs= - - - www/css/fonts/fonts.css - - hash - - NKnz6tasTlqoICSI4V4YlOeHVJM= - - hash2 - - 6whr8edBMPAq5ujWe3GmyVrDTPnYdaDkBaujq1xY2Ng= - - - www/css/fonts/ionicons.css - - hash - - gzPAFostLVCiwxkgMsSWmTe+A/c= - - hash2 - - D3+gw6JE4hEJ9pnCs+BglSfZ2yG5gF+JGdPJ/v183fo= - - - www/css/fonts/ionicons.eot - - hash - - YVMuieIS+N0WujHz6881wKczQDU= - - hash2 - - pIA9e960eKW5I4/nTYqqmNr+Lo5o/MvQ4/Tc7YI/J/A= - - - www/css/fonts/ionicons.svg - - hash - - Pxyij8sELSvMbuak492BflEy7uo= - - hash2 - - pifZBowSNdmzyVxAXrbstkopCxWc9ekmwNltibJM1fw= - - - www/css/fonts/ionicons.ttf - - hash - - GwoN4ISQWUaiAwDKjDVIZd7EZ2Q= - - hash2 - - K6fyCx2JkOF6R/49iOTHZmKKqiuvHdMPygoNtZg29fk= - - - www/css/fonts/ionicons.woff - - hash - - 5GgZ6GOkZ1HWIsEZDE6Kg+vCBhI= - - hash2 - - cJ8nidqv9ECCDruXXTrkCa9FEhvexH456DUjSQsbwPw= - - - www/css/fonts/pfdintextpro-bold-webfont.woff - - hash - - mDYay3ArKzHK+mu3l0GGL7AJYI8= - - hash2 - - Mr9MAjLLumdjs3kpKuEjOL20HLiXJZzLyNsL8wfwMlA= - - - www/css/fonts/pfdintextpro-italic-webfont.woff - - hash - - gtSnNX5Vtd1JOciHX7Q2IGnhYEk= - - hash2 - - DZtjhCJwbqDykQhUD7a2pXF4SuaAPaBDEPgkWudYe+s= - - - www/css/fonts/pfdintextpro-light-webfont.woff - - hash - - 2ZQAPshoOfFBipDEgccDh0IDokQ= - - hash2 - - F+hV+FwInuuHFMLsS4MZD1PdnQzw1vzXQVbCJFwlWsQ= - - - www/css/fonts/pfdintextpro-medium-webfont.woff - - hash - - KyUoyPHWVunK8heDhzHDUKbf1VA= - - hash2 - - zPyc85Aaq/qrdWWmXzB/97AZAv+K3DClUoTfft2s8fE= - - - www/css/fonts/pfdintextpro-regular-webfont.woff - - hash - - zn1xFRXWNWSV7oJEL0mt+0JLjNE= - - hash2 - - BPa4/HL0H3SjK3xPZ8/6nnn1s3soajNDFqHBlhuOJoo= - - - www/css/index.css - - hash - - sS5Z897GbFcFtJaWKk9Ft6T/Vtg= - - hash2 - - qLqkLu+A+Gm5um2jDESMTABAps+BlbF8PY/8VBk4hRs= - - - www/css/nav.css - - hash - - tNCurPA7ni1EDWw/jvw9w67DpVU= - - hash2 - - 2o4b/avhcyA5pKh3T6ScNPY7gsTaD0+B9b8rFdYm+Gc= - - - www/css/products.css - - hash - - bY2IfaCUQ+Rz5riamQVF0rOVe6A= - - hash2 - - hPZUQWrlZ/hGqd0scKaIjhli7AmNraugdxjdk5UoORg= - - - www/css/vendor/flickity.css - - hash - - xW5wsn/T/+uaGvIT+Sl9WY/IM2k= - - hash2 - - T95IzwnM3icXTFFGjaoJ60KBvjBZRIGdOLBHp6g1odc= - - - www/db.json - - hash - - FHbZPD9DyP+Prfwo3urgg0f3pwo= - - hash2 - - QSN93k1zzgvbBpJ+82WBuRuad5jnucly7dhUFIsaWhw= - - - www/img/Resources/CDVNotification.bundle/beep.wav - - hash - - /kSUVvLLJcbtfXnxFEolil3/NRk= - - hash2 - - KfYd4hFlyPwinBGKi4ruYae1MyeQ2TKrPJvIngKdC38= - - - www/img/Resources/splash/Default-568h@2x~iphone.png - - hash - - J8BakinXs4g2c3rjIlkaUKc1m3k= - - hash2 - - uvT5oIiijLZlJapbQ9RysTS/jK0BcBTE5WiVsg7Uy4A= - - - www/img/Resources/splash/Default-667h.png - - hash - - KeM+qh3e57f5eeltxETo6kNL/lk= - - hash2 - - TP25WIPiu3seh7We8uUKVM2XxyNxbYcSOIuPsC2/c8M= - - - www/img/Resources/splash/Default-736h.png - - hash - - 5egepTM4V7rMvBkpkxUc8RAcJaI= - - hash2 - - f0PPi0IKMgqz/hNWp+nerz3Sinndoa+Y3UfQ70+Bpxw= - - - www/img/Resources/splash/Default-Landscape-736h.png - - hash - - OakZWPocy5SHfGOIcwCCOoHVEqA= - - hash2 - - +25+atV9U37SxrS9VG7luxH2gf37etsNY9y41SPmRAg= - - - www/img/Resources/splash/Default-Landscape@2x~ipad.png - - hash - - q8VJZgMwFNZmWGD/Lf1/2KJt42c= - - hash2 - - u/2vuEKdgIS+PhWktUxa01LpDF1+oj0R2alV8U77uoU= - - - www/img/Resources/splash/Default-Landscape~ipad.png - - hash - - PhNiOU4rbDZLXNv3olAhvfd9XQk= - - hash2 - - k1DyhDTDnyEsp5CTBmXGFLb5GPUxtSz7DYuKH9VfPd4= - - - www/img/Resources/splash/Default-Portrait@2x~ipad.png - - hash - - CwZQXSzj9Gai0+MUt1mGzHuYO4U= - - hash2 - - IrqXTW8vE/sSWrxeHHh+ogEUfLLh9S6UAb9O/Cv0mqU= - - - www/img/Resources/splash/Default-Portrait~ipad.png - - hash - - ONniQfICjQTe8yPDO4mhWp9I2pM= - - hash2 - - VOUUyEtLaabk1zWFRoIpVJ2CT4HvyAAwJwP8PXCAoS8= - - - www/img/Resources/splash/Default@2x~iphone.png - - hash - - uMF7RsyJGko7JaycVJ1sdu4hN/A= - - hash2 - - 3M1zeVVJGsu8AbH7VOeCoqVk3NPIi2/P614XXBm4fzw= - - - www/img/Resources/splash/Default~iphone.png - - hash - - btYS0PqHlIXDTLPf+7ZkA8uadDw= - - hash2 - - cNB/ov2CcA7c5BelPGxHt5XRjwMhBMpvF+toOgTsuUE= - - - www/img/angle-down.png - - hash - - I9z7X0QqPVunkk2Pp6QVBfjF/Ug= - - hash2 - - XTqh7PVCqKrR9bHekJv7T1AKLcaV5XqNHsDyip5gOfo= - - - www/img/bottom-fade.png - - hash - - doxZCcQch8Yt0UXMMvPBppxacg0= - - hash2 - - Pff1Ybbi/LcFEr93RMVw5B9TNzY/InXaijmBXgbL8GM= - - - www/img/cart-box.png - - hash - - 76PMCjdfolbYk9wB0iPxqaLwpzk= - - hash2 - - EOY/TzuWeRD2XbpDFRhcadQUenAHRKJYyZZ1OmE9168= - - - www/img/cart-handle.png - - hash - - DIrmugvltD/RB0iy1latRCJGUec= - - hash2 - - CS+LvOUhp2HGJ6bbl2Em+uRul8MWYY+d8Q8O1S4Q/UA= - - - www/img/compass-logo.png - - hash - - hO/U4zzOyjwTppKJ9FKI73NPrGU= - - hash2 - - q+hTZPeR3ZlnfIlbmw3qFgGx3U4+Gqw0lB9A8B1pa+o= - - - www/img/compass-logo.png.old - - hash - - vwVmYayeHMzxccFD/TN328PqiVk= - - hash2 - - dL4FPsLS5KaresAAXchnvd8tLEGbseaQRSFPjwpKD6A= - - - www/img/fade-to-bottom-threshold.gif - - hash - - GR0zpcR8KMByQIz2FFd4chj4bGE= - - hash2 - - EhYFmqatsT26q8SuaY5acyYcyhrxoXVH74n6mqmbkx0= - - - www/img/fade-to-bottom.png - - hash - - doxZCcQch8Yt0UXMMvPBppxacg0= - - hash2 - - Pff1Ybbi/LcFEr93RMVw5B9TNzY/InXaijmBXgbL8GM= - - - www/img/left-arrow.png - - hash - - gJa/2uVfymH2Yxi4/cvGN+OdrWM= - - hash2 - - kxHzwZ36AHmQA6dWhC8QcWWRtHfCDiGSgoU8qx2s67Q= - - - www/img/right-arrow.png - - hash - - MSgmEvsEIKkviNZIWWCPJeKdJqY= - - hash2 - - 8Z+N/wNcrZ61JKyWhtE/lTCOTSB8l8ocMsRlVzjOltc= - - - www/img/small-cart-box.png - - hash - - DJxx7Sxv9HGOumgrHLmIk1YfW7c= - - hash2 - - QCLuWju4XnHojaJKdRIz7mc/W8rzM52K8bN0C+xodhQ= - - - www/img/small-cart-handle.png - - hash - - SlZeorPNUiYlNNv0UCnVXxyNZPc= - - hash2 - - Y0j22p39dCI1uo+wL9lRWYD93TqGGzY05TrYQ2+8mEQ= - - - www/img/small-logo.png - - hash - - FRbH5vLd9Z1i4k0dBsW+I5+g4qo= - - hash2 - - Nf3Hre2AEyspVkhMOs9DjkoxjyPS5Z2A0gLcGxw+bAg= - - - www/img/spinner.gif - - hash - - oEyz0SzCG90twGaMhPwiIjXakkg= - - hash2 - - UxUEYiPRNko3znL6nzrwY2Yb8GLH4ShsrH+my7nsPKU= - - - www/img/wide-logo.png - - hash - - WJ/FbJfrZcN2Pg0w6S5c202hwSs= - - hash2 - - JcHH+opfUENsrDllQYVp4Z803WLSOfIBKRsdqUFeqEg= - - - www/index.html - - hash - - 3y6+VOdsGYg9Yra+PEvciIC8teE= - - hash2 - - jZfMoE+wrnWv/uf/P1ANIH/CiY+m51GnNEPuB7yPZDc= - - - www/js/index.js - - hash - - C8DUPKVibVPQVD9HXKKoIuRguHw= - - hash2 - - 3UXGHe/2SlMai39hVs8y22F61zarqDgmUSe+bmKbS3w= - - - www/js/lib/_router.js - - hash - - O4eZM5nyghVF7WELlWxgCniAfZc= - - hash2 - - eiZImA/5F7g1thdb5LR3bhPmWAf53J6gAxt+2MsEw4c= - - - www/js/lib/account/AccountView.js - - hash - - g8Rl32cI413Hgc7ish5t2vtrS9k= - - hash2 - - 4IJ+CAHsOandtDQ6bcHuxGfQMI7QbY+l7WTXtvp2c74= - - - www/js/lib/account/OrdersView.js - - hash - - zEEbcESh8kYxm6fkztCPSUnjOLI= - - hash2 - - I66S9cwl0i9jb3niGM/5/M6lfKdz7nNlVHsKfvgq2TM= - - - www/js/lib/account/PaymentView.js - - hash - - cSoU0cfID6oqM8fLFH19k6OQ9Mo= - - hash2 - - 1HGak3nqoYhz7z1MwA8T6yqQvjxJfXLvgAy2Tcpf3aM= - - - www/js/lib/account/ProfileView.js - - hash - - g81ByC4WQ4lAdrDltz7b/C/MqNY= - - hash2 - - eV4PAhtf/St/MYaS5Koc1N1RUYoGLWjleg4o9+fh6cQ= - - - www/js/lib/account/SettingsView.js - - hash - - hXT8T0eaN6o3ERCH5Ai1nMlVrQI= - - hash2 - - j8caL5+0diGO/X+OkO2DCzwDe0fKlnpDr11KIIear4E= - - - www/js/lib/account/ShippingView.js - - hash - - +2iaJJaoZoD+N0LlfGHz6WzH5FM= - - hash2 - - FkxpG51ZUcofE8UXSuevfTY3EmOPAIdjs+kFKfjy66k= - - - www/js/lib/auth/LoginView.js - - hash - - 2nZGYC2LOCDPymoAm3yBxHwgYgY= - - hash2 - - 3RDWoVVhjr+IH7U5MC5ADOe9jNo/zbo6u2kPV2PGtXo= - - - www/js/lib/auth/LogoutView.js - - hash - - jhf/Pzr8A/yk68t3W15g32q4eQ4= - - hash2 - - WUOCYL3XOiQkxLTopAv/dlhluzFRrJM4HRU9NlkUw4Q= - - - www/js/lib/auth/SignupView.js - - hash - - n92NvoUdaRUMNZmUVqMCg77V/tM= - - hash2 - - +5Rr9Rwd1h1h1A7Xy5ti7Pbdi03yjo0/h/089DV1UmY= - - - www/js/lib/blogs/ArchiveView.js - - hash - - 0MoYu/cf89T9Yj3/GqkxVS5Kn0s= - - hash2 - - v3axxDFmZxOIUfaVfkbvZECsJNT7TIo2cw8PXjfm2P8= - - - www/js/lib/blogs/BlogView.js - - hash - - XZ57l39rkb5nXmank50SQ81rtds= - - hash2 - - uDNYBYkepNo957b+bXnG0qorjTjFOskXi9r3zwnUEkY= - - - www/js/lib/blogs/HubView.js - - hash - - 4oI73qy2Z5DyyiA8Kz+k1+9vLnQ= - - hash2 - - J7ZclyOypLHuMdugOZQJ1O372GtIB66AoF1qFr05X+c= - - - www/js/lib/blogs/PageView.js - - hash - - fnTO0QKgJ08PPNTrTuT+hgmLtqc= - - hash2 - - VsXsi+sWVrMIqMfJaVbz1F8vRRBCjD2567f9s/CCY0o= - - - www/js/lib/blogs/StoryView.js - - hash - - 0uCBjGnwq8xsO5chZu/C1rGZ/SQ= - - hash2 - - P24JvyHX4Qjfs2Qa+rzt0M9SmSftEC6wuXzTPYoun9k= - - - www/js/lib/cart/CartConfirm.js - - hash - - jqryKPHj843xlpHaPq2On9mfaeM= - - hash2 - - hwM8ywf2UkBfn5K+v8iYkHBdURnsPGGwBs1vX47bskE= - - - www/js/lib/cart/CartError.js - - hash - - AeAnmVjk6HP4fhuICpuG8nHnFuI= - - hash2 - - URcrCrG0fi/wB6NRqqTlI8g3la+JFFbmRBD/LWhctFM= - - - www/js/lib/cart/CartPayment.js - - hash - - 4SLlztcXjDFBhv19I8bRmWhUyd0= - - hash2 - - ZXTk0vvbJFKlWQolPRcoel3J88qHqHdP3Ex0xNUFrCM= - - - www/js/lib/cart/CartShipping.js - - hash - - 8O97NpkLXlSPzbhrgsE/a0tIGuY= - - hash2 - - bs4wuVl4Cq88V/xwSIbykmJ1NKUltTyCXtWHJt8q+7c= - - - www/js/lib/cart/CartSummary.js - - hash - - YYiOPlDBi/ESvBJZ+bBt5ElQ254= - - hash2 - - ctAGdJM1VwXGTVUdpT9sXBETsIAdWS5Rbl/NGP/Qkic= - - - www/js/lib/cart/CartThanks.js - - hash - - JOo957U9zyzfOkwPIJ7K0oMB5SA= - - hash2 - - l+oEvv8XpnQdQeuTutSxtdQZG0UBvlIjNvo8DtlPdec= - - - www/js/lib/cart/CartView.js - - hash - - +kmEZ9ukx0LiHKArz7oWZyBZr/4= - - hash2 - - FQeeZlPKs/Ma/jhjSRzHRtl4LTWr5JJMQAyutOIbmbo= - - - www/js/lib/etc/backup_db.js - - hash - - LS64v8X6RPikJtQ057nQlmza3m4= - - hash2 - - EBINa1CgwwZ0Apb2OjVvYgRgGx9qSqomyu1zDCNpwDU= - - - www/js/lib/etc/deeplink.js - - hash - - Xjr3J9pMm16R4X4Ez0w2889N4Is= - - hash2 - - dwd1KWvpTJljBVWokg9OGGiAbSMHP2o5wW87A00AXLg= - - - www/js/lib/etc/geo.js - - hash - - xaQ5M8Pao+Ewh6usOyD5UV/49gc= - - hash2 - - oxNHfAVByZZMvhua5IaksimLkMzcuIPc+KfyEM6tQm8= - - - www/js/lib/etc/push.js - - hash - - +3CWZcxp1Ao9A/4KiM4nA82Hia8= - - hash2 - - 1kY0DEwWFQO8RFoncYf/51g2MWyKHwesCyP/Nt7xDXk= - - - www/js/lib/nav/AddressView.js - - hash - - JFoETIdARQvI5GU6tc1YJhhttEc= - - hash2 - - tlqapPZSqJXPu1tVTEPiqafuJYdHnff/lCfnLeAzXrs= - - - www/js/lib/nav/CreditCardView.js - - hash - - uV1Y5XohZktnJXSKPs/gt/vhlzk= - - hash2 - - kTv/+Lvcpehdpd3a6ZDzFFKSBtfBm5D77mIZwNOusHE= - - - www/js/lib/nav/CurtainView.js - - hash - - VHa9pwxWtQ31RhBknlTCAqrKA7c= - - hash2 - - m1y+MtkztLia5cyx9E5WrAch10YftRlFUZnP0EtrmDs= - - - www/js/lib/nav/FooterView.js - - hash - - WaOKgFizQ3W8RPEhwga57tf3sLM= - - hash2 - - Z2+GeBAj/oHQ6m3AxNvY8tIeLbh2Kv4ScrteiHlFdm8= - - - www/js/lib/nav/HeaderView.js - - hash - - Ui2nti/7MEoaanRA/U1QuO6cVSQ= - - hash2 - - 6lCUODPVbVjct435xG/PZL/QEtmKxzMj702T2xVy5sU= - - - www/js/lib/nav/IntroView.js - - hash - - FSNPuiLwJs4MyLmkvAY6k3RPRF8= - - hash2 - - Ex044mlBP+DCpAFwCDbsYSIAPyFSB8owff1K4+5gNx4= - - - www/js/lib/nav/NavView.js - - hash - - vVy7+c8F2D+3VFixaG8D1GqdHL4= - - hash2 - - GZ1IlXF1CFdDOhLEAbLhaRC7+M6rji5WGXKoyWg0yS8= - - - www/js/lib/nav/SearchView.js - - hash - - b8Xg3rQZIafOl+uBceHrk6yVqYU= - - hash2 - - JDO4vy0leucXMPsoEpMJ2/hXdJ9gIkGmarDk9ev5ZsY= - - - www/js/lib/products/ClosedStoreView.js - - hash - - iDWe+pvx3vGBohpZ05biGudY71o= - - hash2 - - yQ+emjRXzZ9ubsvwSI6Uw3d8Msi7FA1HBrqOKErjK2g= - - - www/js/lib/products/CollectionView.js - - hash - - g7ama0ca186rxP6eho2Lcqqlaxo= - - hash2 - - NcitCXjEiXmYPy2MrX5QRfk41qI0GFkD0kZTTx7uFr8= - - - www/js/lib/products/GalleryView.js - - hash - - CpqSBwnIKxV0wFGD8GdU82L9oqI= - - hash2 - - n3fH37jyJVsN6JkJvkx3OIotptVwo/xM41D0vs6EefY= - - - www/js/lib/products/ProductView.js - - hash - - y8oQIYrgG+mfj1RXFIyCOzFLNaU= - - hash2 - - q44Y3/AkLJes50oNASO7J22TPTk2wx71qMwVvXQF0Aw= - - - www/js/lib/products/Selector.js - - hash - - QxR583tVoXxutmfsJwO9Trbb8QE= - - hash2 - - KDQ0bOdXozaa7mbPZwIkDY0Vm4va6sTjWqOg1TLsNPY= - - - www/js/lib/products/filters/CategoryFilter.js - - hash - - z8glR9hNUq3u4RpoKJRCV6oag8o= - - hash2 - - fi59s2GbjQHohiAgsq3FrGeWsxe0gKfBjOnPcCqi69o= - - - www/js/lib/products/filters/DepartmentFilter.js - - hash - - 8NWvfVz9fG9fo5KCmaEw/J3WOjQ= - - hash2 - - 6gaF1qrD9qw36meq0L5sR0tc8WHABwpqex19+ggSMu8= - - - www/js/lib/products/filters/SizeFilter.js - - hash - - o/z0F+RylPMY7gYqKn5AUSGjkGE= - - hash2 - - 9bxD78h/TRL6HppSlXF3bc2mUsHW/YOCeWZAHPgtD90= - - - www/js/lib/view/Router.js - - hash - - nC19loTSWgo+YghXIQTdo2qViKw= - - hash2 - - 6Y3/Vpzh9KunOo/v0vAvMT8rf25acj/6OB74XRISu4s= - - - www/js/lib/view/Scrollable.js - - hash - - w8k3ObVeDwNmo5N4RSbu094FfTk= - - hash2 - - 8fhfyk4Wi6tf1yJbkt57+eNjgJpsGqWKvHM2hKIu4aM= - - - www/js/lib/view/Serializable.js - - hash - - TZu3vDiiaHeg3ApJ+HZowCDsPvE= - - hash2 - - 8Ctj4kMul3md0vu7ihiR3Fz8H7X1/CcMMZ0Jctd4S2Q= - - - www/js/lib/view/View.js - - hash - - 1vOGv/o4d073vpU6t8Dn08nZsnY= - - hash2 - - DHHSWtioHVLGu5C7QPQdLXBY5ufUvieTSsf2k19yLkw= - - - www/js/sdk/_sdk.js - - hash - - +RIDPxfqUZwaTbuh+hEYSte1cv0= - - hash2 - - PjbBMjYeor9n8QefRZ4/bthUR0xgliIr5i1w89Wp7Ws= - - - www/js/sdk/account.js - - hash - - iFcyfpZSqqeP8RQ80FNBdRFrjNI= - - hash2 - - 3ENHjzZacCXTS8uC2zYOnkx2MidichrC10T67Ydgop0= - - - www/js/sdk/address.js - - hash - - 58zTcGuj9yQkjVJYaxboOYe+LiI= - - hash2 - - K0b2odCsO18fnoXffNL5d80Bcm3aZdP84y3cRjwDZIE= - - - www/js/sdk/auth.js - - hash - - +1ZjnlN26KDrimArQWfhljcz3CM= - - hash2 - - HqJDZULqlG5IKEg7hjVHwXPq953Qvy5Lai7Q6ucCqdo= - - - www/js/sdk/cart.js - - hash - - TWij8pn0/F4YBj04iBZzNX2NyuQ= - - hash2 - - V382WXrermJ4bUwIGFZPVpATsxPPKYP6wGf4eYf9D1M= - - - www/js/sdk/payment.js - - hash - - j3efOwLU577n/V2UAVxVHU/0NB8= - - hash2 - - H1YwKYswGAw+HMPtyd1wps5fQFx3NoXd9sGW7IZbsmU= - - - www/js/sdk/product.js - - hash - - ZYf0fQuZdLIS1ZXTJSingxo32Hs= - - hash2 - - 1pf0iSfyvVwyQgWo2RFIHGyYEGn/8ZszSzJ0MDZ4zNI= - - - www/js/sdk/shipping.js - - hash - - 04qsgSJ7isNdqyVfM1LQ7Q6wRwM= - - hash2 - - 580ij6TiPbA/d/1bB4nVY6ooXNZevcTCExA0YQ9vJxc= - - - www/js/vendor/fastclick.js - - hash - - GsPVekcRLSRd6GYRskvAbulostc= - - hash2 - - ZrSDQkfU6EtN7AI5A0E6m+oQPEubPVStTwGmPXfwGTk= - - - www/js/vendor/flickity.pkgd.js - - hash - - 7+L7DJW+IWJnI8uOkBFuyww3Bk0= - - hash2 - - vF2sYxgNn4r/4NnhBHz/44B9O8nWsxHRUd0Gf1FOK3w= - - - www/js/vendor/iscroll.js - - hash - - zmIJQRtMdsZHuPuHvHEe8K1HC7w= - - hash2 - - 9xQKJ2r3WFI2Tu+IDxNHP9R5FFW6LNZQt0RuZWJ0Kp0= - - - www/js/vendor/jquery-2.1.4.min.js - - hash - - Q9xVRgjfiFpZ3e7OFZjGrOQ010c= - - hash2 - - 8WqyJLuWKRBVhxXIL1jBDD7SDxU936oZkCnxQbWwJVw= - - - www/js/vendor/jquery.creditCardValidator.js - - hash - - Y27vkeRB6sxVVgVnzd82mRHab3g= - - hash2 - - FfTayl3QgyS4UvFgbGlNPSlDtkC28Q3RUhSVQV0CwKg= - - - www/js/vendor/loader.js - - hash - - MNfNXlpvgsuGkqhXhawkjJxwGGU= - - hash2 - - +OqOjwnNrePNGE3Ysj4ZPjCFUTgVSlnMDU0NxGVQwWs= - - - www/js/vendor/lodash.min.js - - hash - - QH5J71GV/YmbKvW8dOzPWmIy2Js= - - hash2 - - v2PESRFA3ocCdVenwVx0H2XIPZgnQ0exBaBqIOBc540= - - - www/js/vendor/moment.js - - hash - - up6xZ/qvAr5h9VNpOTtzN9Jzv6Y= - - hash2 - - 9ZXOLpTlQ1GMKN+vOTmxc+Vm4sRw7L9QDtZ50hJI+sc= - - - www/js/vendor/oktween.js - - hash - - IbqDpG6Qitgu8bvKthKC6hJyb1g= - - hash2 - - 6y0dV3eCnszS6gNMOt5VQ7k92tajbtVRGERxEVEp8No= - - - www/js/vendor/prefixfree.js - - hash - - ImNOjml3qilBB3P2Q+D2oh0XZlo= - - hash2 - - mGlBZZ4/+6zoe8Imph39ztEQhANPhQDDew+fggkgXso= - - - www/js/vendor/promise.js - - hash - - c/6/xZdHlYR9yLjMoxE3Tk2wdgc= - - hash2 - - TPK5MrYxjIfzZUK1ZamFwPo26qfMm+jiEB2C9FoWMRQ= - - - www/js/vendor/util.js - - hash - - awGO8rHbB+UyNdCDbLXrp2nihQg= - - hash2 - - abyzwamkkJLDbsXnk/TE74wXjj9SlJX9kA+53MuezZA= - - - www/plugins/cordova-plugin-console/www/console-via-logger.js - - hash - - NyUkntRl9vFIiOC3onmXNsxpedU= - - hash2 - - cCcOHB0gfKqE6bS4NoAZMvlzcHaWDemJfOWOOw+cI/8= - - - www/plugins/cordova-plugin-console/www/logger.js - - hash - - tmAfmQQR8NZd7y+bTWuju4/TbY0= - - hash2 - - ESzk4H7ypO9esEfCCJl4Sw+BH3M31e0OkRdbsNe0Wcc= - - - www/plugins/cordova-plugin-customurlscheme/www/ios/LaunchMyApp.js - - hash - - 0NrlXTwBHUS5u9XaqkoSJ+waVDo= - - hash2 - - SbvHr9WKyz3ru8I7xjp3L/R4cE0LwxQb91YQEXPQIi4= - - - www/plugins/cordova-plugin-device/www/device.js - - hash - - DgD9WKGqlbNViEZBSi4Wenbl/uM= - - hash2 - - 75fkIus2+MF7kZSUTo0HFvPQWqyneMrHDoQXHcvK/fk= - - - www/plugins/cordova-plugin-dialogs/www/notification.js - - hash - - 7DTImwpj5B7VCelKiHdmmFLX6h0= - - hash2 - - OY9J4siJjz0x+SKUjBVqdprLf2olxAVAx0TuQi2zSHg= - - - www/plugins/cordova-plugin-geolocation/www/Coordinates.js - - hash - - B+vlNAwNL/8E91a2w8xN/QZtP9o= - - hash2 - - OMLyPkrlZ2a8QPIWTLVOYtPW/6JKdiOvR5V4pO/Covs= - - - www/plugins/cordova-plugin-geolocation/www/Position.js - - hash - - 1DZ/xrP/zFT+anCeCYYt+uuQIyU= - - hash2 - - bajmSfpMjHjoSzrL1TPI1J8K3SrZyVFPoU11T0if/Y8= - - - www/plugins/cordova-plugin-geolocation/www/PositionError.js - - hash - - NZQ0MpOiURNiYMJS79+bdtSDnzI= - - hash2 - - W7UeIudqey1Q4CAafAS1HMHib9BAeyvfD0Kj20Dx0m0= - - - www/plugins/cordova-plugin-geolocation/www/geolocation.js - - hash - - DBMSf1DRKjXfKMDgaSJHjnx+wgI= - - hash2 - - c0FvNwJUoj6DTFiJbDJ//4pUO/Nc0Pmmq+lh9eVocuE= - - - www/plugins/cordova-plugin-inappbrowser/www/inappbrowser.js - - hash - - EfUzmAcUagDDJeG2yHQTy4FngxU= - - hash2 - - CKuxAFfWQy3W36zfMt2eAc22BRQLnyWoCbuM+jlEBuk= - - - www/plugins/cordova-plugin-network-information/www/Connection.js - - hash - - QP5YzumNbUCPIZ96Xkpu5RegRY0= - - hash2 - - e+LNrLCJeaza8OmeupCA7JOSHM6BaBjmEt95Z5DDRZo= - - - www/plugins/cordova-plugin-network-information/www/network.js - - hash - - jxeuXL/JPk6C5eQC7iVThLg7NPc= - - hash2 - - 6BrhkQ/LskQvmM1rbhciH8KThNK7PeYwvje9PZsZIro= - - - www/plugins/cordova-plugin-splashscreen/www/splashscreen.js - - hash - - n2E0W8B/grOxM2ORx/haAYOWIcA= - - hash2 - - YSn19P0zRIG9MxdesT37iqYB1WqXVOFIXyjmnTn6foU= - - - www/plugins/cordova-plugin-statusbar/www/statusbar.js - - hash - - hDT++3ZaOTp3t16AAFAibxtovj0= - - hash2 - - JVFddhH/G0jM/7U0DOdpW1CvUNswIGcQB9WylyRtCBM= - - - www/plugins/cordova-plugin-x-socialsharing/www/SocialSharing.js - - hash - - p2ovf3IcCK49/GvqK+j7UmFu1zI= - - hash2 - - vaAJBb/wNtJKRgYT7sxU/Sv+fqB5bfWIw3SyBSUukCI= - - - www/plugins/ionic-plugin-keyboard/www/ios/keyboard.js - - hash - - gexyZjGUVvhbQiJbBzCrImXWv34= - - hash2 - - s8oy4VvWgJx67mjrcY9CWo7fZ0VqTuZEyLnykDMBTXs= - - - www/plugins/phonegap-plugin-push/www/push.js - - hash - - AF+WnBEprzr+ql8AKjlyCUKSiTI= - - hash2 - - DM9CphyuhWhvXVU7i7uP/StHfzN+/Qa2dT8+dOaab6I= - - - - rules - - ^ - - ^.*\.lproj/ - - optional - - weight - 1000 - - ^.*\.lproj/locversion.plist$ - - omit - - weight - 1100 - - ^Base\.lproj/ - - weight - 1010 - - ^version.plist$ - - - rules2 - - .*\.dSYM($|/) - - weight - 11 - - ^ - - weight - 20 - - ^(.*/)?\.DS_Store$ - - omit - - weight - 2000 - - ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/ - - nested - - weight - 10 - - ^.* - - ^.*\.lproj/ - - optional - - weight - 1000 - - ^.*\.lproj/locversion.plist$ - - omit - - weight - 1100 - - ^Base\.lproj/ - - weight - 1010 - - ^Info\.plist$ - - omit - - weight - 20 - - ^PkgInfo$ - - omit - - weight - 20 - - ^[^/]+$ - - nested - - weight - 10 - - ^embedded\.provisionprofile$ - - weight - 20 - - ^version\.plist$ - - weight - 20 - - - - diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/archived-expanded-entitlements.xcent b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/archived-expanded-entitlements.xcent deleted file mode 100644 index 903def2a..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/archived-expanded-entitlements.xcent +++ /dev/null @@ -1,8 +0,0 @@ - - - - - aps-environment - development - - diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/config.xml b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/config.xml deleted file mode 100755 index eec4a35a..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/config.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Stone Island - - Stone Island - - - Jules Laplace - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/embedded.mobileprovision b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/embedded.mobileprovision deleted file mode 100644 index 7ef37a30..00000000 Binary files a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/embedded.mobileprovision and /dev/null differ diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/cordova-js-src/exec.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/cordova-js-src/exec.js deleted file mode 100644 index 3fb7fa19..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/cordova-js-src/exec.js +++ /dev/null @@ -1,262 +0,0 @@ -/* - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - * -*/ - -/*global require, module, atob, document */ - -/** - * Creates a gap bridge iframe used to notify the native code about queued - * commands. - */ -var cordova = require('cordova'), - utils = require('cordova/utils'), - base64 = require('cordova/base64'), - execIframe, - commandQueue = [], // Contains pending JS->Native messages. - isInContextOfEvalJs = 0, - failSafeTimerId = 0; - -function massageArgsJsToNative(args) { - if (!args || utils.typeName(args) != 'Array') { - return args; - } - var ret = []; - args.forEach(function(arg, i) { - if (utils.typeName(arg) == 'ArrayBuffer') { - ret.push({ - 'CDVType': 'ArrayBuffer', - 'data': base64.fromArrayBuffer(arg) - }); - } else { - ret.push(arg); - } - }); - return ret; -} - -function massageMessageNativeToJs(message) { - if (message.CDVType == 'ArrayBuffer') { - var stringToArrayBuffer = function(str) { - var ret = new Uint8Array(str.length); - for (var i = 0; i < str.length; i++) { - ret[i] = str.charCodeAt(i); - } - return ret.buffer; - }; - var base64ToArrayBuffer = function(b64) { - return stringToArrayBuffer(atob(b64)); - }; - message = base64ToArrayBuffer(message.data); - } - return message; -} - -function convertMessageToArgsNativeToJs(message) { - var args = []; - if (!message || !message.hasOwnProperty('CDVType')) { - args.push(message); - } else if (message.CDVType == 'MultiPart') { - message.messages.forEach(function(e) { - args.push(massageMessageNativeToJs(e)); - }); - } else { - args.push(massageMessageNativeToJs(message)); - } - return args; -} - -function iOSExec() { - - var successCallback, failCallback, service, action, actionArgs; - var callbackId = null; - if (typeof arguments[0] !== 'string') { - // FORMAT ONE - successCallback = arguments[0]; - failCallback = arguments[1]; - service = arguments[2]; - action = arguments[3]; - actionArgs = arguments[4]; - - // Since we need to maintain backwards compatibility, we have to pass - // an invalid callbackId even if no callback was provided since plugins - // will be expecting it. The Cordova.exec() implementation allocates - // an invalid callbackId and passes it even if no callbacks were given. - callbackId = 'INVALID'; - } else { - throw new Error('The old format of this exec call has been removed (deprecated since 2.1). Change to: ' + - 'cordova.exec(null, null, \'Service\', \'action\', [ arg1, arg2 ]);' - ); - } - - // If actionArgs is not provided, default to an empty array - actionArgs = actionArgs || []; - - // Register the callbacks and add the callbackId to the positional - // arguments if given. - if (successCallback || failCallback) { - callbackId = service + cordova.callbackId++; - cordova.callbacks[callbackId] = - {success:successCallback, fail:failCallback}; - } - - actionArgs = massageArgsJsToNative(actionArgs); - - var command = [callbackId, service, action, actionArgs]; - - // Stringify and queue the command. We stringify to command now to - // effectively clone the command arguments in case they are mutated before - // the command is executed. - commandQueue.push(JSON.stringify(command)); - - // If we're in the context of a stringByEvaluatingJavaScriptFromString call, - // then the queue will be flushed when it returns; no need for a poke. - // Also, if there is already a command in the queue, then we've already - // poked the native side, so there is no reason to do so again. - if (!isInContextOfEvalJs && commandQueue.length == 1) { - pokeNative(); - } -} - -// CB-10530 -function proxyChanged() { - var cexec = cordovaExec(); - - return (execProxy !== cexec && // proxy objects are different - iOSExec !== cexec // proxy object is not the current iOSExec - ); -} - -// CB-10106 -function handleBridgeChange() { - if (proxyChanged()) { - var commandString = commandQueue.shift(); - while(commandString) { - var command = JSON.parse(commandString); - var callbackId = command[0]; - var service = command[1]; - var action = command[2]; - var actionArgs = command[3]; - var callbacks = cordova.callbacks[callbackId] || {}; - - execProxy(callbacks.success, callbacks.fail, service, action, actionArgs); - - commandString = commandQueue.shift(); - }; - return true; - } - - return false; -} - -function pokeNative() { - // CB-5488 - Don't attempt to create iframe before document.body is available. - if (!document.body) { - setTimeout(pokeNative); - return; - } - - // Check if they've removed it from the DOM, and put it back if so. - if (execIframe && execIframe.contentWindow) { - execIframe.contentWindow.location = 'gap://ready'; - } else { - execIframe = document.createElement('iframe'); - execIframe.style.display = 'none'; - execIframe.src = 'gap://ready'; - document.body.appendChild(execIframe); - } - // Use a timer to protect against iframe being unloaded during the poke (CB-7735). - // This makes the bridge ~ 7% slower, but works around the poke getting lost - // when the iframe is removed from the DOM. - // An onunload listener could be used in the case where the iframe has just been - // created, but since unload events fire only once, it doesn't work in the normal - // case of iframe reuse (where unload will have already fired due to the attempted - // navigation of the page). - failSafeTimerId = setTimeout(function() { - if (commandQueue.length) { - // CB-10106 - flush the queue on bridge change - if (!handleBridgeChange()) { - pokeNative(); - } - } - }, 50); // Making this > 0 improves performance (marginally) in the normal case (where it doesn't fire). -} - -iOSExec.nativeFetchMessages = function() { - // Stop listing for window detatch once native side confirms poke. - if (failSafeTimerId) { - clearTimeout(failSafeTimerId); - failSafeTimerId = 0; - } - // Each entry in commandQueue is a JSON string already. - if (!commandQueue.length) { - return ''; - } - var json = '[' + commandQueue.join(',') + ']'; - commandQueue.length = 0; - return json; -}; - -iOSExec.nativeCallback = function(callbackId, status, message, keepCallback, debug) { - return iOSExec.nativeEvalAndFetch(function() { - var success = status === 0 || status === 1; - var args = convertMessageToArgsNativeToJs(message); - function nc2() { - cordova.callbackFromNative(callbackId, success, status, args, keepCallback); - } - setTimeout(nc2, 0); - }); -}; - -iOSExec.nativeEvalAndFetch = function(func) { - // This shouldn't be nested, but better to be safe. - isInContextOfEvalJs++; - try { - func(); - return iOSExec.nativeFetchMessages(); - } finally { - isInContextOfEvalJs--; - } -}; - -// Proxy the exec for bridge changes. See CB-10106 - -function cordovaExec() { - var cexec = require('cordova/exec'); - var cexec_valid = (typeof cexec.nativeFetchMessages === 'function') && (typeof cexec.nativeEvalAndFetch === 'function') && (typeof cexec.nativeCallback === 'function'); - return (cexec_valid && execProxy !== cexec)? cexec : iOSExec; -} - -function execProxy() { - cordovaExec().apply(null, arguments); -}; - -execProxy.nativeFetchMessages = function() { - return cordovaExec().nativeFetchMessages.apply(null, arguments); -}; - -execProxy.nativeEvalAndFetch = function() { - return cordovaExec().nativeEvalAndFetch.apply(null, arguments); -}; - -execProxy.nativeCallback = function() { - return cordovaExec().nativeCallback.apply(null, arguments); -}; - -module.exports = execProxy; diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/cordova-js-src/platform.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/cordova-js-src/platform.js deleted file mode 100644 index 36529ba5..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/cordova-js-src/platform.js +++ /dev/null @@ -1,28 +0,0 @@ -/* - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - * -*/ - -module.exports = { - id: 'ios', - bootstrap: function() { - require('cordova/channel').onNativeReady.fire(); - } -}; - diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/cordova.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/cordova.js deleted file mode 100644 index 3540a020..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/cordova.js +++ /dev/null @@ -1,1938 +0,0 @@ -// Platform: ios -// 7c5fcc5a5adfbf3fb8ceaf36fbdd4bd970bd9c20 -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you 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. -*/ -;(function() { -var PLATFORM_VERSION_BUILD_LABEL = '4.4.0'; -// file: src/scripts/require.js - -/*jshint -W079 */ -/*jshint -W020 */ - -var require, - define; - -(function () { - var modules = {}, - // Stack of moduleIds currently being built. - requireStack = [], - // Map of module ID -> index into requireStack of modules currently being built. - inProgressModules = {}, - SEPARATOR = "."; - - - - function build(module) { - var factory = module.factory, - localRequire = function (id) { - var resultantId = id; - //Its a relative path, so lop off the last portion and add the id (minus "./") - if (id.charAt(0) === ".") { - resultantId = module.id.slice(0, module.id.lastIndexOf(SEPARATOR)) + SEPARATOR + id.slice(2); - } - return require(resultantId); - }; - module.exports = {}; - delete module.factory; - factory(localRequire, module.exports, module); - return module.exports; - } - - require = function (id) { - if (!modules[id]) { - throw "module " + id + " not found"; - } else if (id in inProgressModules) { - var cycle = requireStack.slice(inProgressModules[id]).join('->') + '->' + id; - throw "Cycle in require graph: " + cycle; - } - if (modules[id].factory) { - try { - inProgressModules[id] = requireStack.length; - requireStack.push(id); - return build(modules[id]); - } finally { - delete inProgressModules[id]; - requireStack.pop(); - } - } - return modules[id].exports; - }; - - define = function (id, factory) { - if (modules[id]) { - throw "module " + id + " already defined"; - } - - modules[id] = { - id: id, - factory: factory - }; - }; - - define.remove = function (id) { - delete modules[id]; - }; - - define.moduleMap = modules; -})(); - -//Export for use in node -if (typeof module === "object" && typeof require === "function") { - module.exports.require = require; - module.exports.define = define; -} - -// file: src/cordova.js -define("cordova", function(require, exports, module) { - -// Workaround for Windows 10 in hosted environment case -// http://www.w3.org/html/wg/drafts/html/master/browsers.html#named-access-on-the-window-object -if (window.cordova && !(window.cordova instanceof HTMLElement)) { - throw new Error("cordova already defined"); -} - - -var channel = require('cordova/channel'); -var platform = require('cordova/platform'); - - -/** - * Intercept calls to addEventListener + removeEventListener and handle deviceready, - * resume, and pause events. - */ -var m_document_addEventListener = document.addEventListener; -var m_document_removeEventListener = document.removeEventListener; -var m_window_addEventListener = window.addEventListener; -var m_window_removeEventListener = window.removeEventListener; - -/** - * Houses custom event handlers to intercept on document + window event listeners. - */ -var documentEventHandlers = {}, - windowEventHandlers = {}; - -document.addEventListener = function(evt, handler, capture) { - var e = evt.toLowerCase(); - if (typeof documentEventHandlers[e] != 'undefined') { - documentEventHandlers[e].subscribe(handler); - } else { - m_document_addEventListener.call(document, evt, handler, capture); - } -}; - -window.addEventListener = function(evt, handler, capture) { - var e = evt.toLowerCase(); - if (typeof windowEventHandlers[e] != 'undefined') { - windowEventHandlers[e].subscribe(handler); - } else { - m_window_addEventListener.call(window, evt, handler, capture); - } -}; - -document.removeEventListener = function(evt, handler, capture) { - var e = evt.toLowerCase(); - // If unsubscribing from an event that is handled by a plugin - if (typeof documentEventHandlers[e] != "undefined") { - documentEventHandlers[e].unsubscribe(handler); - } else { - m_document_removeEventListener.call(document, evt, handler, capture); - } -}; - -window.removeEventListener = function(evt, handler, capture) { - var e = evt.toLowerCase(); - // If unsubscribing from an event that is handled by a plugin - if (typeof windowEventHandlers[e] != "undefined") { - windowEventHandlers[e].unsubscribe(handler); - } else { - m_window_removeEventListener.call(window, evt, handler, capture); - } -}; - -function createEvent(type, data) { - var event = document.createEvent('Events'); - event.initEvent(type, false, false); - if (data) { - for (var i in data) { - if (data.hasOwnProperty(i)) { - event[i] = data[i]; - } - } - } - return event; -} - - -var cordova = { - define:define, - require:require, - version:PLATFORM_VERSION_BUILD_LABEL, - platformVersion:PLATFORM_VERSION_BUILD_LABEL, - platformId:platform.id, - /** - * Methods to add/remove your own addEventListener hijacking on document + window. - */ - addWindowEventHandler:function(event) { - return (windowEventHandlers[event] = channel.create(event)); - }, - addStickyDocumentEventHandler:function(event) { - return (documentEventHandlers[event] = channel.createSticky(event)); - }, - addDocumentEventHandler:function(event) { - return (documentEventHandlers[event] = channel.create(event)); - }, - removeWindowEventHandler:function(event) { - delete windowEventHandlers[event]; - }, - removeDocumentEventHandler:function(event) { - delete documentEventHandlers[event]; - }, - /** - * Retrieve original event handlers that were replaced by Cordova - * - * @return object - */ - getOriginalHandlers: function() { - return {'document': {'addEventListener': m_document_addEventListener, 'removeEventListener': m_document_removeEventListener}, - 'window': {'addEventListener': m_window_addEventListener, 'removeEventListener': m_window_removeEventListener}}; - }, - /** - * Method to fire event from native code - * bNoDetach is required for events which cause an exception which needs to be caught in native code - */ - fireDocumentEvent: function(type, data, bNoDetach) { - var evt = createEvent(type, data); - if (typeof documentEventHandlers[type] != 'undefined') { - if( bNoDetach ) { - documentEventHandlers[type].fire(evt); - } - else { - setTimeout(function() { - // Fire deviceready on listeners that were registered before cordova.js was loaded. - if (type == 'deviceready') { - document.dispatchEvent(evt); - } - documentEventHandlers[type].fire(evt); - }, 0); - } - } else { - document.dispatchEvent(evt); - } - }, - fireWindowEvent: function(type, data) { - var evt = createEvent(type,data); - if (typeof windowEventHandlers[type] != 'undefined') { - setTimeout(function() { - windowEventHandlers[type].fire(evt); - }, 0); - } else { - window.dispatchEvent(evt); - } - }, - - /** - * Plugin callback mechanism. - */ - // Randomize the starting callbackId to avoid collisions after refreshing or navigating. - // This way, it's very unlikely that any new callback would get the same callbackId as an old callback. - callbackId: Math.floor(Math.random() * 2000000000), - callbacks: {}, - callbackStatus: { - NO_RESULT: 0, - OK: 1, - CLASS_NOT_FOUND_EXCEPTION: 2, - ILLEGAL_ACCESS_EXCEPTION: 3, - INSTANTIATION_EXCEPTION: 4, - MALFORMED_URL_EXCEPTION: 5, - IO_EXCEPTION: 6, - INVALID_ACTION: 7, - JSON_EXCEPTION: 8, - ERROR: 9 - }, - - /** - * Called by native code when returning successful result from an action. - */ - callbackSuccess: function(callbackId, args) { - cordova.callbackFromNative(callbackId, true, args.status, [args.message], args.keepCallback); - }, - - /** - * Called by native code when returning error result from an action. - */ - callbackError: function(callbackId, args) { - // TODO: Deprecate callbackSuccess and callbackError in favour of callbackFromNative. - // Derive success from status. - cordova.callbackFromNative(callbackId, false, args.status, [args.message], args.keepCallback); - }, - - /** - * Called by native code when returning the result from an action. - */ - callbackFromNative: function(callbackId, isSuccess, status, args, keepCallback) { - try { - var callback = cordova.callbacks[callbackId]; - if (callback) { - if (isSuccess && status == cordova.callbackStatus.OK) { - callback.success && callback.success.apply(null, args); - } else if (!isSuccess) { - callback.fail && callback.fail.apply(null, args); - } - /* - else - Note, this case is intentionally not caught. - this can happen if isSuccess is true, but callbackStatus is NO_RESULT - which is used to remove a callback from the list without calling the callbacks - typically keepCallback is false in this case - */ - // Clear callback if not expecting any more results - if (!keepCallback) { - delete cordova.callbacks[callbackId]; - } - } - } - catch (err) { - var msg = "Error in " + (isSuccess ? "Success" : "Error") + " callbackId: " + callbackId + " : " + err; - console && console.log && console.log(msg); - cordova.fireWindowEvent("cordovacallbackerror", { 'message': msg }); - throw err; - } - }, - addConstructor: function(func) { - channel.onCordovaReady.subscribe(function() { - try { - func(); - } catch(e) { - console.log("Failed to run constructor: " + e); - } - }); - } -}; - - -module.exports = cordova; - -}); - -// file: src/common/argscheck.js -define("cordova/argscheck", function(require, exports, module) { - -var utils = require('cordova/utils'); - -var moduleExports = module.exports; - -var typeMap = { - 'A': 'Array', - 'D': 'Date', - 'N': 'Number', - 'S': 'String', - 'F': 'Function', - 'O': 'Object' -}; - -function extractParamName(callee, argIndex) { - return (/.*?\((.*?)\)/).exec(callee)[1].split(', ')[argIndex]; -} - -function checkArgs(spec, functionName, args, opt_callee) { - if (!moduleExports.enableChecks) { - return; - } - var errMsg = null; - var typeName; - for (var i = 0; i < spec.length; ++i) { - var c = spec.charAt(i), - cUpper = c.toUpperCase(), - arg = args[i]; - // Asterix means allow anything. - if (c == '*') { - continue; - } - typeName = utils.typeName(arg); - if ((arg === null || arg === undefined) && c == cUpper) { - continue; - } - if (typeName != typeMap[cUpper]) { - errMsg = 'Expected ' + typeMap[cUpper]; - break; - } - } - if (errMsg) { - errMsg += ', but got ' + typeName + '.'; - errMsg = 'Wrong type for parameter "' + extractParamName(opt_callee || args.callee, i) + '" of ' + functionName + ': ' + errMsg; - // Don't log when running unit tests. - if (typeof jasmine == 'undefined') { - console.error(errMsg); - } - throw TypeError(errMsg); - } -} - -function getValue(value, defaultValue) { - return value === undefined ? defaultValue : value; -} - -moduleExports.checkArgs = checkArgs; -moduleExports.getValue = getValue; -moduleExports.enableChecks = true; - - -}); - -// file: src/common/base64.js -define("cordova/base64", function(require, exports, module) { - -var base64 = exports; - -base64.fromArrayBuffer = function(arrayBuffer) { - var array = new Uint8Array(arrayBuffer); - return uint8ToBase64(array); -}; - -base64.toArrayBuffer = function(str) { - var decodedStr = typeof atob != 'undefined' ? atob(str) : new Buffer(str,'base64').toString('binary'); - var arrayBuffer = new ArrayBuffer(decodedStr.length); - var array = new Uint8Array(arrayBuffer); - for (var i=0, len=decodedStr.length; i < len; i++) { - array[i] = decodedStr.charCodeAt(i); - } - return arrayBuffer; -}; - -//------------------------------------------------------------------------------ - -/* This code is based on the performance tests at http://jsperf.com/b64tests - * This 12-bit-at-a-time algorithm was the best performing version on all - * platforms tested. - */ - -var b64_6bit = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; -var b64_12bit; - -var b64_12bitTable = function() { - b64_12bit = []; - for (var i=0; i<64; i++) { - for (var j=0; j<64; j++) { - b64_12bit[i*64+j] = b64_6bit[i] + b64_6bit[j]; - } - } - b64_12bitTable = function() { return b64_12bit; }; - return b64_12bit; -}; - -function uint8ToBase64(rawData) { - var numBytes = rawData.byteLength; - var output=""; - var segment; - var table = b64_12bitTable(); - for (var i=0;i> 12]; - output += table[segment & 0xfff]; - } - if (numBytes - i == 2) { - segment = (rawData[i] << 16) + (rawData[i+1] << 8); - output += table[segment >> 12]; - output += b64_6bit[(segment & 0xfff) >> 6]; - output += '='; - } else if (numBytes - i == 1) { - segment = (rawData[i] << 16); - output += table[segment >> 12]; - output += '=='; - } - return output; -} - -}); - -// file: src/common/builder.js -define("cordova/builder", function(require, exports, module) { - -var utils = require('cordova/utils'); - -function each(objects, func, context) { - for (var prop in objects) { - if (objects.hasOwnProperty(prop)) { - func.apply(context, [objects[prop], prop]); - } - } -} - -function clobber(obj, key, value) { - exports.replaceHookForTesting(obj, key); - var needsProperty = false; - try { - obj[key] = value; - } catch (e) { - needsProperty = true; - } - // Getters can only be overridden by getters. - if (needsProperty || obj[key] !== value) { - utils.defineGetter(obj, key, function() { - return value; - }); - } -} - -function assignOrWrapInDeprecateGetter(obj, key, value, message) { - if (message) { - utils.defineGetter(obj, key, function() { - console.log(message); - delete obj[key]; - clobber(obj, key, value); - return value; - }); - } else { - clobber(obj, key, value); - } -} - -function include(parent, objects, clobber, merge) { - each(objects, function (obj, key) { - try { - var result = obj.path ? require(obj.path) : {}; - - if (clobber) { - // Clobber if it doesn't exist. - if (typeof parent[key] === 'undefined') { - assignOrWrapInDeprecateGetter(parent, key, result, obj.deprecated); - } else if (typeof obj.path !== 'undefined') { - // If merging, merge properties onto parent, otherwise, clobber. - if (merge) { - recursiveMerge(parent[key], result); - } else { - assignOrWrapInDeprecateGetter(parent, key, result, obj.deprecated); - } - } - result = parent[key]; - } else { - // Overwrite if not currently defined. - if (typeof parent[key] == 'undefined') { - assignOrWrapInDeprecateGetter(parent, key, result, obj.deprecated); - } else { - // Set result to what already exists, so we can build children into it if they exist. - result = parent[key]; - } - } - - if (obj.children) { - include(result, obj.children, clobber, merge); - } - } catch(e) { - utils.alert('Exception building Cordova JS globals: ' + e + ' for key "' + key + '"'); - } - }); -} - -/** - * Merge properties from one object onto another recursively. Properties from - * the src object will overwrite existing target property. - * - * @param target Object to merge properties into. - * @param src Object to merge properties from. - */ -function recursiveMerge(target, src) { - for (var prop in src) { - if (src.hasOwnProperty(prop)) { - if (target.prototype && target.prototype.constructor === target) { - // If the target object is a constructor override off prototype. - clobber(target.prototype, prop, src[prop]); - } else { - if (typeof src[prop] === 'object' && typeof target[prop] === 'object') { - recursiveMerge(target[prop], src[prop]); - } else { - clobber(target, prop, src[prop]); - } - } - } - } -} - -exports.buildIntoButDoNotClobber = function(objects, target) { - include(target, objects, false, false); -}; -exports.buildIntoAndClobber = function(objects, target) { - include(target, objects, true, false); -}; -exports.buildIntoAndMerge = function(objects, target) { - include(target, objects, true, true); -}; -exports.recursiveMerge = recursiveMerge; -exports.assignOrWrapInDeprecateGetter = assignOrWrapInDeprecateGetter; -exports.replaceHookForTesting = function() {}; - -}); - -// file: src/common/channel.js -define("cordova/channel", function(require, exports, module) { - -var utils = require('cordova/utils'), - nextGuid = 1; - -/** - * Custom pub-sub "channel" that can have functions subscribed to it - * This object is used to define and control firing of events for - * cordova initialization, as well as for custom events thereafter. - * - * The order of events during page load and Cordova startup is as follows: - * - * onDOMContentLoaded* Internal event that is received when the web page is loaded and parsed. - * onNativeReady* Internal event that indicates the Cordova native side is ready. - * onCordovaReady* Internal event fired when all Cordova JavaScript objects have been created. - * onDeviceReady* User event fired to indicate that Cordova is ready - * onResume User event fired to indicate a start/resume lifecycle event - * onPause User event fired to indicate a pause lifecycle event - * - * The events marked with an * are sticky. Once they have fired, they will stay in the fired state. - * All listeners that subscribe after the event is fired will be executed right away. - * - * The only Cordova events that user code should register for are: - * deviceready Cordova native code is initialized and Cordova APIs can be called from JavaScript - * pause App has moved to background - * resume App has returned to foreground - * - * Listeners can be registered as: - * document.addEventListener("deviceready", myDeviceReadyListener, false); - * document.addEventListener("resume", myResumeListener, false); - * document.addEventListener("pause", myPauseListener, false); - * - * The DOM lifecycle events should be used for saving and restoring state - * window.onload - * window.onunload - * - */ - -/** - * Channel - * @constructor - * @param type String the channel name - */ -var Channel = function(type, sticky) { - this.type = type; - // Map of guid -> function. - this.handlers = {}; - // 0 = Non-sticky, 1 = Sticky non-fired, 2 = Sticky fired. - this.state = sticky ? 1 : 0; - // Used in sticky mode to remember args passed to fire(). - this.fireArgs = null; - // Used by onHasSubscribersChange to know if there are any listeners. - this.numHandlers = 0; - // Function that is called when the first listener is subscribed, or when - // the last listener is unsubscribed. - this.onHasSubscribersChange = null; -}, - channel = { - /** - * Calls the provided function only after all of the channels specified - * have been fired. All channels must be sticky channels. - */ - join: function(h, c) { - var len = c.length, - i = len, - f = function() { - if (!(--i)) h(); - }; - for (var j=0; jNative messages. - isInContextOfEvalJs = 0, - failSafeTimerId = 0; - -function massageArgsJsToNative(args) { - if (!args || utils.typeName(args) != 'Array') { - return args; - } - var ret = []; - args.forEach(function(arg, i) { - if (utils.typeName(arg) == 'ArrayBuffer') { - ret.push({ - 'CDVType': 'ArrayBuffer', - 'data': base64.fromArrayBuffer(arg) - }); - } else { - ret.push(arg); - } - }); - return ret; -} - -function massageMessageNativeToJs(message) { - if (message.CDVType == 'ArrayBuffer') { - var stringToArrayBuffer = function(str) { - var ret = new Uint8Array(str.length); - for (var i = 0; i < str.length; i++) { - ret[i] = str.charCodeAt(i); - } - return ret.buffer; - }; - var base64ToArrayBuffer = function(b64) { - return stringToArrayBuffer(atob(b64)); - }; - message = base64ToArrayBuffer(message.data); - } - return message; -} - -function convertMessageToArgsNativeToJs(message) { - var args = []; - if (!message || !message.hasOwnProperty('CDVType')) { - args.push(message); - } else if (message.CDVType == 'MultiPart') { - message.messages.forEach(function(e) { - args.push(massageMessageNativeToJs(e)); - }); - } else { - args.push(massageMessageNativeToJs(message)); - } - return args; -} - -function iOSExec() { - - var successCallback, failCallback, service, action, actionArgs; - var callbackId = null; - if (typeof arguments[0] !== 'string') { - // FORMAT ONE - successCallback = arguments[0]; - failCallback = arguments[1]; - service = arguments[2]; - action = arguments[3]; - actionArgs = arguments[4]; - - // Since we need to maintain backwards compatibility, we have to pass - // an invalid callbackId even if no callback was provided since plugins - // will be expecting it. The Cordova.exec() implementation allocates - // an invalid callbackId and passes it even if no callbacks were given. - callbackId = 'INVALID'; - } else { - throw new Error('The old format of this exec call has been removed (deprecated since 2.1). Change to: ' + - 'cordova.exec(null, null, \'Service\', \'action\', [ arg1, arg2 ]);' - ); - } - - // If actionArgs is not provided, default to an empty array - actionArgs = actionArgs || []; - - // Register the callbacks and add the callbackId to the positional - // arguments if given. - if (successCallback || failCallback) { - callbackId = service + cordova.callbackId++; - cordova.callbacks[callbackId] = - {success:successCallback, fail:failCallback}; - } - - actionArgs = massageArgsJsToNative(actionArgs); - - var command = [callbackId, service, action, actionArgs]; - - // Stringify and queue the command. We stringify to command now to - // effectively clone the command arguments in case they are mutated before - // the command is executed. - commandQueue.push(JSON.stringify(command)); - - // If we're in the context of a stringByEvaluatingJavaScriptFromString call, - // then the queue will be flushed when it returns; no need for a poke. - // Also, if there is already a command in the queue, then we've already - // poked the native side, so there is no reason to do so again. - if (!isInContextOfEvalJs && commandQueue.length == 1) { - pokeNative(); - } -} - -// CB-10530 -function proxyChanged() { - var cexec = cordovaExec(); - - return (execProxy !== cexec && // proxy objects are different - iOSExec !== cexec // proxy object is not the current iOSExec - ); -} - -// CB-10106 -function handleBridgeChange() { - if (proxyChanged()) { - var commandString = commandQueue.shift(); - while(commandString) { - var command = JSON.parse(commandString); - var callbackId = command[0]; - var service = command[1]; - var action = command[2]; - var actionArgs = command[3]; - var callbacks = cordova.callbacks[callbackId] || {}; - - execProxy(callbacks.success, callbacks.fail, service, action, actionArgs); - - commandString = commandQueue.shift(); - }; - return true; - } - - return false; -} - -function pokeNative() { - // CB-5488 - Don't attempt to create iframe before document.body is available. - if (!document.body) { - setTimeout(pokeNative); - return; - } - - // Check if they've removed it from the DOM, and put it back if so. - if (execIframe && execIframe.contentWindow) { - execIframe.contentWindow.location = 'gap://ready'; - } else { - execIframe = document.createElement('iframe'); - execIframe.style.display = 'none'; - execIframe.src = 'gap://ready'; - document.body.appendChild(execIframe); - } - // Use a timer to protect against iframe being unloaded during the poke (CB-7735). - // This makes the bridge ~ 7% slower, but works around the poke getting lost - // when the iframe is removed from the DOM. - // An onunload listener could be used in the case where the iframe has just been - // created, but since unload events fire only once, it doesn't work in the normal - // case of iframe reuse (where unload will have already fired due to the attempted - // navigation of the page). - failSafeTimerId = setTimeout(function() { - if (commandQueue.length) { - // CB-10106 - flush the queue on bridge change - if (!handleBridgeChange()) { - pokeNative(); - } - } - }, 50); // Making this > 0 improves performance (marginally) in the normal case (where it doesn't fire). -} - -iOSExec.nativeFetchMessages = function() { - // Stop listing for window detatch once native side confirms poke. - if (failSafeTimerId) { - clearTimeout(failSafeTimerId); - failSafeTimerId = 0; - } - // Each entry in commandQueue is a JSON string already. - if (!commandQueue.length) { - return ''; - } - var json = '[' + commandQueue.join(',') + ']'; - commandQueue.length = 0; - return json; -}; - -iOSExec.nativeCallback = function(callbackId, status, message, keepCallback, debug) { - return iOSExec.nativeEvalAndFetch(function() { - var success = status === 0 || status === 1; - var args = convertMessageToArgsNativeToJs(message); - function nc2() { - cordova.callbackFromNative(callbackId, success, status, args, keepCallback); - } - setTimeout(nc2, 0); - }); -}; - -iOSExec.nativeEvalAndFetch = function(func) { - // This shouldn't be nested, but better to be safe. - isInContextOfEvalJs++; - try { - func(); - return iOSExec.nativeFetchMessages(); - } finally { - isInContextOfEvalJs--; - } -}; - -// Proxy the exec for bridge changes. See CB-10106 - -function cordovaExec() { - var cexec = require('cordova/exec'); - var cexec_valid = (typeof cexec.nativeFetchMessages === 'function') && (typeof cexec.nativeEvalAndFetch === 'function') && (typeof cexec.nativeCallback === 'function'); - return (cexec_valid && execProxy !== cexec)? cexec : iOSExec; -} - -function execProxy() { - cordovaExec().apply(null, arguments); -}; - -execProxy.nativeFetchMessages = function() { - return cordovaExec().nativeFetchMessages.apply(null, arguments); -}; - -execProxy.nativeEvalAndFetch = function() { - return cordovaExec().nativeEvalAndFetch.apply(null, arguments); -}; - -execProxy.nativeCallback = function() { - return cordovaExec().nativeCallback.apply(null, arguments); -}; - -module.exports = execProxy; - -}); - -// file: src/common/exec/proxy.js -define("cordova/exec/proxy", function(require, exports, module) { - - -// internal map of proxy function -var CommandProxyMap = {}; - -module.exports = { - - // example: cordova.commandProxy.add("Accelerometer",{getCurrentAcceleration: function(successCallback, errorCallback, options) {...},...); - add:function(id,proxyObj) { - console.log("adding proxy for " + id); - CommandProxyMap[id] = proxyObj; - return proxyObj; - }, - - // cordova.commandProxy.remove("Accelerometer"); - remove:function(id) { - var proxy = CommandProxyMap[id]; - delete CommandProxyMap[id]; - CommandProxyMap[id] = null; - return proxy; - }, - - get:function(service,action) { - return ( CommandProxyMap[service] ? CommandProxyMap[service][action] : null ); - } -}; -}); - -// file: src/common/init.js -define("cordova/init", function(require, exports, module) { - -var channel = require('cordova/channel'); -var cordova = require('cordova'); -var modulemapper = require('cordova/modulemapper'); -var platform = require('cordova/platform'); -var pluginloader = require('cordova/pluginloader'); -var utils = require('cordova/utils'); - -var platformInitChannelsArray = [channel.onNativeReady, channel.onPluginsReady]; - -function logUnfiredChannels(arr) { - for (var i = 0; i < arr.length; ++i) { - if (arr[i].state != 2) { - console.log('Channel not fired: ' + arr[i].type); - } - } -} - -window.setTimeout(function() { - if (channel.onDeviceReady.state != 2) { - console.log('deviceready has not fired after 5 seconds.'); - logUnfiredChannels(platformInitChannelsArray); - logUnfiredChannels(channel.deviceReadyChannelsArray); - } -}, 5000); - -// Replace navigator before any modules are required(), to ensure it happens as soon as possible. -// We replace it so that properties that can't be clobbered can instead be overridden. -function replaceNavigator(origNavigator) { - var CordovaNavigator = function() {}; - CordovaNavigator.prototype = origNavigator; - var newNavigator = new CordovaNavigator(); - // This work-around really only applies to new APIs that are newer than Function.bind. - // Without it, APIs such as getGamepads() break. - if (CordovaNavigator.bind) { - for (var key in origNavigator) { - if (typeof origNavigator[key] == 'function') { - newNavigator[key] = origNavigator[key].bind(origNavigator); - } - else { - (function(k) { - utils.defineGetterSetter(newNavigator,key,function() { - return origNavigator[k]; - }); - })(key); - } - } - } - return newNavigator; -} - -if (window.navigator) { - window.navigator = replaceNavigator(window.navigator); -} - -if (!window.console) { - window.console = { - log: function(){} - }; -} -if (!window.console.warn) { - window.console.warn = function(msg) { - this.log("warn: " + msg); - }; -} - -// Register pause, resume and deviceready channels as events on document. -channel.onPause = cordova.addDocumentEventHandler('pause'); -channel.onResume = cordova.addDocumentEventHandler('resume'); -channel.onActivated = cordova.addDocumentEventHandler('activated'); -channel.onDeviceReady = cordova.addStickyDocumentEventHandler('deviceready'); - -// Listen for DOMContentLoaded and notify our channel subscribers. -if (document.readyState == 'complete' || document.readyState == 'interactive') { - channel.onDOMContentLoaded.fire(); -} else { - document.addEventListener('DOMContentLoaded', function() { - channel.onDOMContentLoaded.fire(); - }, false); -} - -// _nativeReady is global variable that the native side can set -// to signify that the native code is ready. It is a global since -// it may be called before any cordova JS is ready. -if (window._nativeReady) { - channel.onNativeReady.fire(); -} - -modulemapper.clobbers('cordova', 'cordova'); -modulemapper.clobbers('cordova/exec', 'cordova.exec'); -modulemapper.clobbers('cordova/exec', 'Cordova.exec'); - -// Call the platform-specific initialization. -platform.bootstrap && platform.bootstrap(); - -// Wrap in a setTimeout to support the use-case of having plugin JS appended to cordova.js. -// The delay allows the attached modules to be defined before the plugin loader looks for them. -setTimeout(function() { - pluginloader.load(function() { - channel.onPluginsReady.fire(); - }); -}, 0); - -/** - * Create all cordova objects once native side is ready. - */ -channel.join(function() { - modulemapper.mapModules(window); - - platform.initialize && platform.initialize(); - - // Fire event to notify that all objects are created - channel.onCordovaReady.fire(); - - // Fire onDeviceReady event once page has fully loaded, all - // constructors have run and cordova info has been received from native - // side. - channel.join(function() { - require('cordova').fireDocumentEvent('deviceready'); - }, channel.deviceReadyChannelsArray); - -}, platformInitChannelsArray); - - -}); - -// file: src/common/init_b.js -define("cordova/init_b", function(require, exports, module) { - -var channel = require('cordova/channel'); -var cordova = require('cordova'); -var modulemapper = require('cordova/modulemapper'); -var platform = require('cordova/platform'); -var pluginloader = require('cordova/pluginloader'); -var utils = require('cordova/utils'); - -var platformInitChannelsArray = [channel.onDOMContentLoaded, channel.onNativeReady, channel.onPluginsReady]; - -// setting exec -cordova.exec = require('cordova/exec'); - -function logUnfiredChannels(arr) { - for (var i = 0; i < arr.length; ++i) { - if (arr[i].state != 2) { - console.log('Channel not fired: ' + arr[i].type); - } - } -} - -window.setTimeout(function() { - if (channel.onDeviceReady.state != 2) { - console.log('deviceready has not fired after 5 seconds.'); - logUnfiredChannels(platformInitChannelsArray); - logUnfiredChannels(channel.deviceReadyChannelsArray); - } -}, 5000); - -// Replace navigator before any modules are required(), to ensure it happens as soon as possible. -// We replace it so that properties that can't be clobbered can instead be overridden. -function replaceNavigator(origNavigator) { - var CordovaNavigator = function() {}; - CordovaNavigator.prototype = origNavigator; - var newNavigator = new CordovaNavigator(); - // This work-around really only applies to new APIs that are newer than Function.bind. - // Without it, APIs such as getGamepads() break. - if (CordovaNavigator.bind) { - for (var key in origNavigator) { - if (typeof origNavigator[key] == 'function') { - newNavigator[key] = origNavigator[key].bind(origNavigator); - } - else { - (function(k) { - utils.defineGetterSetter(newNavigator,key,function() { - return origNavigator[k]; - }); - })(key); - } - } - } - return newNavigator; -} -if (window.navigator) { - window.navigator = replaceNavigator(window.navigator); -} - -if (!window.console) { - window.console = { - log: function(){} - }; -} -if (!window.console.warn) { - window.console.warn = function(msg) { - this.log("warn: " + msg); - }; -} - -// Register pause, resume and deviceready channels as events on document. -channel.onPause = cordova.addDocumentEventHandler('pause'); -channel.onResume = cordova.addDocumentEventHandler('resume'); -channel.onActivated = cordova.addDocumentEventHandler('activated'); -channel.onDeviceReady = cordova.addStickyDocumentEventHandler('deviceready'); - -// Listen for DOMContentLoaded and notify our channel subscribers. -if (document.readyState == 'complete' || document.readyState == 'interactive') { - channel.onDOMContentLoaded.fire(); -} else { - document.addEventListener('DOMContentLoaded', function() { - channel.onDOMContentLoaded.fire(); - }, false); -} - -// _nativeReady is global variable that the native side can set -// to signify that the native code is ready. It is a global since -// it may be called before any cordova JS is ready. -if (window._nativeReady) { - channel.onNativeReady.fire(); -} - -// Call the platform-specific initialization. -platform.bootstrap && platform.bootstrap(); - -// Wrap in a setTimeout to support the use-case of having plugin JS appended to cordova.js. -// The delay allows the attached modules to be defined before the plugin loader looks for them. -setTimeout(function() { - pluginloader.load(function() { - channel.onPluginsReady.fire(); - }); -}, 0); - -/** - * Create all cordova objects once native side is ready. - */ -channel.join(function() { - modulemapper.mapModules(window); - - platform.initialize && platform.initialize(); - - // Fire event to notify that all objects are created - channel.onCordovaReady.fire(); - - // Fire onDeviceReady event once page has fully loaded, all - // constructors have run and cordova info has been received from native - // side. - channel.join(function() { - require('cordova').fireDocumentEvent('deviceready'); - }, channel.deviceReadyChannelsArray); - -}, platformInitChannelsArray); - -}); - -// file: src/common/modulemapper.js -define("cordova/modulemapper", function(require, exports, module) { - -var builder = require('cordova/builder'), - moduleMap = define.moduleMap, - symbolList, - deprecationMap; - -exports.reset = function() { - symbolList = []; - deprecationMap = {}; -}; - -function addEntry(strategy, moduleName, symbolPath, opt_deprecationMessage) { - if (!(moduleName in moduleMap)) { - throw new Error('Module ' + moduleName + ' does not exist.'); - } - symbolList.push(strategy, moduleName, symbolPath); - if (opt_deprecationMessage) { - deprecationMap[symbolPath] = opt_deprecationMessage; - } -} - -// Note: Android 2.3 does have Function.bind(). -exports.clobbers = function(moduleName, symbolPath, opt_deprecationMessage) { - addEntry('c', moduleName, symbolPath, opt_deprecationMessage); -}; - -exports.merges = function(moduleName, symbolPath, opt_deprecationMessage) { - addEntry('m', moduleName, symbolPath, opt_deprecationMessage); -}; - -exports.defaults = function(moduleName, symbolPath, opt_deprecationMessage) { - addEntry('d', moduleName, symbolPath, opt_deprecationMessage); -}; - -exports.runs = function(moduleName) { - addEntry('r', moduleName, null); -}; - -function prepareNamespace(symbolPath, context) { - if (!symbolPath) { - return context; - } - var parts = symbolPath.split('.'); - var cur = context; - for (var i = 0, part; part = parts[i]; ++i) { - cur = cur[part] = cur[part] || {}; - } - return cur; -} - -exports.mapModules = function(context) { - var origSymbols = {}; - context.CDV_origSymbols = origSymbols; - for (var i = 0, len = symbolList.length; i < len; i += 3) { - var strategy = symbolList[i]; - var moduleName = symbolList[i + 1]; - var module = require(moduleName); - // - if (strategy == 'r') { - continue; - } - var symbolPath = symbolList[i + 2]; - var lastDot = symbolPath.lastIndexOf('.'); - var namespace = symbolPath.substr(0, lastDot); - var lastName = symbolPath.substr(lastDot + 1); - - var deprecationMsg = symbolPath in deprecationMap ? 'Access made to deprecated symbol: ' + symbolPath + '. ' + deprecationMsg : null; - var parentObj = prepareNamespace(namespace, context); - var target = parentObj[lastName]; - - if (strategy == 'm' && target) { - builder.recursiveMerge(target, module); - } else if ((strategy == 'd' && !target) || (strategy != 'd')) { - if (!(symbolPath in origSymbols)) { - origSymbols[symbolPath] = target; - } - builder.assignOrWrapInDeprecateGetter(parentObj, lastName, module, deprecationMsg); - } - } -}; - -exports.getOriginalSymbol = function(context, symbolPath) { - var origSymbols = context.CDV_origSymbols; - if (origSymbols && (symbolPath in origSymbols)) { - return origSymbols[symbolPath]; - } - var parts = symbolPath.split('.'); - var obj = context; - for (var i = 0; i < parts.length; ++i) { - obj = obj && obj[parts[i]]; - } - return obj; -}; - -exports.reset(); - - -}); - -// file: src/common/modulemapper_b.js -define("cordova/modulemapper_b", function(require, exports, module) { - -var builder = require('cordova/builder'), - symbolList = [], - deprecationMap; - -exports.reset = function() { - symbolList = []; - deprecationMap = {}; -}; - -function addEntry(strategy, moduleName, symbolPath, opt_deprecationMessage) { - symbolList.push(strategy, moduleName, symbolPath); - if (opt_deprecationMessage) { - deprecationMap[symbolPath] = opt_deprecationMessage; - } -} - -// Note: Android 2.3 does have Function.bind(). -exports.clobbers = function(moduleName, symbolPath, opt_deprecationMessage) { - addEntry('c', moduleName, symbolPath, opt_deprecationMessage); -}; - -exports.merges = function(moduleName, symbolPath, opt_deprecationMessage) { - addEntry('m', moduleName, symbolPath, opt_deprecationMessage); -}; - -exports.defaults = function(moduleName, symbolPath, opt_deprecationMessage) { - addEntry('d', moduleName, symbolPath, opt_deprecationMessage); -}; - -exports.runs = function(moduleName) { - addEntry('r', moduleName, null); -}; - -function prepareNamespace(symbolPath, context) { - if (!symbolPath) { - return context; - } - var parts = symbolPath.split('.'); - var cur = context; - for (var i = 0, part; part = parts[i]; ++i) { - cur = cur[part] = cur[part] || {}; - } - return cur; -} - -exports.mapModules = function(context) { - var origSymbols = {}; - context.CDV_origSymbols = origSymbols; - for (var i = 0, len = symbolList.length; i < len; i += 3) { - var strategy = symbolList[i]; - var moduleName = symbolList[i + 1]; - var module = require(moduleName); - // - if (strategy == 'r') { - continue; - } - var symbolPath = symbolList[i + 2]; - var lastDot = symbolPath.lastIndexOf('.'); - var namespace = symbolPath.substr(0, lastDot); - var lastName = symbolPath.substr(lastDot + 1); - - var deprecationMsg = symbolPath in deprecationMap ? 'Access made to deprecated symbol: ' + symbolPath + '. ' + deprecationMsg : null; - var parentObj = prepareNamespace(namespace, context); - var target = parentObj[lastName]; - - if (strategy == 'm' && target) { - builder.recursiveMerge(target, module); - } else if ((strategy == 'd' && !target) || (strategy != 'd')) { - if (!(symbolPath in origSymbols)) { - origSymbols[symbolPath] = target; - } - builder.assignOrWrapInDeprecateGetter(parentObj, lastName, module, deprecationMsg); - } - } -}; - -exports.getOriginalSymbol = function(context, symbolPath) { - var origSymbols = context.CDV_origSymbols; - if (origSymbols && (symbolPath in origSymbols)) { - return origSymbols[symbolPath]; - } - var parts = symbolPath.split('.'); - var obj = context; - for (var i = 0; i < parts.length; ++i) { - obj = obj && obj[parts[i]]; - } - return obj; -}; - -exports.reset(); - - -}); - -// file: /Users/shazron/Documents/git/apache/cordova-ios/cordova-js-src/platform.js -define("cordova/platform", function(require, exports, module) { - -module.exports = { - id: 'ios', - bootstrap: function() { - require('cordova/channel').onNativeReady.fire(); - } -}; - - -}); - -// file: src/common/pluginloader.js -define("cordova/pluginloader", function(require, exports, module) { - -var modulemapper = require('cordova/modulemapper'); -var urlutil = require('cordova/urlutil'); - -// Helper function to inject a - - - - -
-
-

HUB

-
- -
-
-
-
- -
-
-
- - - -
-
- -
-

ARCHIVE

-
'982'015
-
-
- -
-
-

PRIVACY POLICY

-
-
-
-
-
-

TERMS AND CONDITIONS

-
-
-
-
-
-

RETURN POLICY

-
-
-
-
-
-

CUSTOMER CARE

-
-
-
- - - - -
-
-

LOADING...

-
-
- -
-
-
- - - -
-
-
- - - -
-
- -
-
- - -
-
- -
- - -
-
- -
-
Fits Large
-
-
-
- Sizing: The products of this collaboration fit slightly larger than the classic Stone Island garments. -

- We suggest you choose a smaller size than yours. -
-
-
-
- -
-
-

- LOADING THE STORE, PLEASE WAIT -

-

-

- -
-
- - - - -
-
-

LOGIN

-
-
-
- -
-
-
-
-
New User?
-
Forgot Password?
-
-
- -
-
-
- -
-
-
- -
-
-

LOGOUT

-
-
- - You are now logged out. - -
-
-
-
- -
-
-

NEW USER

-
-
-
- - - - -
- BIRTHDAY (OPTIONAL) - -
- -

PASSWORD

- - -
- -
-
-
-
- - -
- -
-
-
- - -
- -
-
- Consult our PRIVACY POLICY for further information. -
-
-
-
-
-
-
- -
-
-

PROFILE

-
-
-
- - - -
- BIRTHDAY (MM/DD/YYYY) - -
- -

CHANGE PASSWORD

- - -
-
- - -
-
-
-
-
-
- - -
- -
-
-
- - -
- -
-
- Consult our PRIVACY POLICY for further information. -
-
-
-
-
-
-
-
- - -
-
-

SHIPPING

-
-
-
-
-
-
-
- - * Your personal and payment
- information will always remain private -
-
-
-
-
-
-
- -
-
-

PAYMENT

-
-
-
-
-
-
-
-
- - * Your personal and payment
- information will always remain private -
-
-
-
-
-
-
- -
-
-

NOTIFICATIONS

-
-
-
-
-

Store

- Receive notifications for Store -
-
- - -
-
-
-
-

Hub

- Receive notifications for Hub -
-
- - -
-
-
-
-
-
- -
-
-

ORDERS

-
-
-
You have no orders.
- -
- -
-
-

ORDER SUMMARY

- -
- -
-
-
- SUB TOTAL - -
-
- ESTIMATED SHIPPING & HANDLING - -
-
- TAX - -
-
- TOTAL - -
-
-
- -
-

SHIP TO

-
-
-
-
-
- -
-
-
- - - -
-

- - YOUR CART / - - - YOUR CART IS EMPTY - -

- -
- SUMMARY - SHIPPING - BILLING -
- -
-
-
-
-
-
- -
-
-
- SUB TOTAL - -
-
- ESTIMATED SHIPPING
& HANDLING
- -
-
- TAX - -
-
- TOTAL - -
-
-
-
-
-
- You have nothing in your cart. -
-
-
-
-
- -
-
-
- -
- -
-
- -

SHIPPING METHOD

- -
-
-
- - -
- -
-
-
- - -
- -
-
- -
-
-
- - * Your personal and payment
- information will always remain private -
-
-
-
- -
-
-
- -
-
-
- -
-
- -
-
-
- - -
- -
-
- -
- - -
- -
- -
- -
- - - -
- -
- -
- -
-

PLEASE ENTER YOUR SECURITY CODE TO CONFIRM

- -
-
- -
-
- - * Your personal and payment
- information will always remain private -
-
-
-
-



- -
-
-
- -
-
-

CONFIRM

- -
-

ORDER SUMMARY

- -
- -
-
-
- SUB TOTAL - -
-
- ESTIMATED SHIPPING
& HANDLING
- -
-
- TAX - -
-
- TOTAL - -
-
-
- -
-

SHIP TO

- -
-
-
- -
-

BILL TO

- -
-
-
- -
-
- -
-
- THANK YOU -

- Please check your inbox for your confirmation email. -

-
-
- -
-
- WE'RE SORRY -

-
-
- -
- -
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/index.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/index.js deleted file mode 100755 index a28faabf..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/index.js +++ /dev/null @@ -1,142 +0,0 @@ -var app = (function(){ - var app = {} - - app.init = function(){ - console.log("init") - - if (window.location.hostname === 'lvh.me' || window.location.hostname === 'stone.giraffe.life' || window.location.hostname === 'dev.stone.giraffe.life') { - console.log('launching in test mode') - sdk.init({ env: "test" }) - } - else { - sdk.init({ env: "production" }) - } - - app.bind() - app.build() - - app.iscroll_options = { - mouseWheel: true, - scrollbars: true, - } - - if (window.cordova) { - document.addEventListener('deviceready', app.ready, false) - } - else { - app.ready() - } - } - - app.bind = function(){ - document.addEventListener('touchmove', function(e){ e.preventDefault() }) - FastClick.attach(document.body) - } - - app.build = function(){ - app.blog = new BlogView () - app.archive = new ArchiveView () - app.hub = new HubView () - app.story = new StoryView () - app.cart = new CartView () - - app.intro = new IntroView () - app.header = new HeaderView () - app.footer = new FooterView () - app.curtain = new CurtainView () - app.nav = new NavView () - - app.account = new AccountView () - app.login = new LoginView () - app.logout = new LogoutView () - app.signup = new SignupView () - app.profile = new ProfileView () - app.payment = new PaymentView () - app.shipping = new ShippingView () - app.settings = new SettingsView () - app.orders = new OrdersView () - - app.terms = new PageView ({ page: "terms" }) - app.privacy = new PageView ({ page: "privacy" }) - app.returns = new PageView ({ page: "returns" }) - app.care = new PageView ({ page: "care" }) - - app.collection = new CollectionView () - app.product = new ProductView () - app.closed = new ClosedStoreView () - app.search = new SearchView () - - app.selector = new Selector () - } - - app.ready = function(){ - console.log(">> READY") - if (window.cordova) { - document.addEventListener('pause', app.paused, false) - document.addEventListener('resume', app.resumed, false) - document.addEventListener('online', app.online, false) - document.addEventListener('offline', app.offline, false) - cordova.plugins.Keyboard.disableScroll(true) - cordova.plugins.Keyboard.hideKeyboardAccessoryBar(false) - geo.fetch() - var image = new Image - image.src = "./img/compass-logo.png" - } - - app.view = null - app.router = new SiteRouter () - -// if (sdk.env == "test") { -// app.router.launch() -// } -// else { -// } - - if (navigator.onLine) { - app.account.connect() - app.blog.fetch(function(){ - app.router.initial_route = "/intro" - app.router.launch() - }) - } - else { - console.log(">> LAUNCHED WHILE OFFLINE") - app.router.go("intro") - app.finished_launching() - } - - push.init() - } - - app.finished_launching = function(){ - console.log(">> FINISHED LAUNCHING") - if (window.cordova) { - navigator.splashscreen.hide() - } - $("body").removeClass("loading") - } - - var refresh_time = +Date.now() - app.paused = function(){} - app.resumed = function(){ - console.log( "app is ready?", app.is_ready ) - - geo.fetch() - var now = +Date.now() - if (now - refresh_time > 60 * 60 * 1000) { - refresh_time = now - app.blog.refresh() - } - } - - app.online = function(){ - console.log(">> ONLINE") - } - app.offline = function(){ - console.log(">> OFFLINE") - } - - return app -})() - -app.init() diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/_router.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/_router.js deleted file mode 100755 index 19bd3247..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/_router.js +++ /dev/null @@ -1,110 +0,0 @@ -var SiteRouter = Router.extend({ - - el: 'body', - routeByHash: true, - - routes: { - '/': 'intro', - '/intro': 'intro', - '/hub': 'hub', - '/story': 'story', - '/archive': 'archive', - - '/store': 'collection', - '/store/closed': 'closed', - '/store/:code': 'product', - - '/account/login': 'login', - '/account/logout': 'logout', - '/account/signup': 'signup', - '/account/profile': 'profile', - '/account/payment': 'payment', - '/account/shipping': 'shipping', - '/account/orders': 'orders', - '/account/settings': 'settings', - - '/page/terms': 'terms', - '/page/privacy': 'privacy', - '/page/returns': 'returns', - '/page/care': 'care', - - '/search': 'search', - - '/cart': 'cart.summary', - '/cart/summary': 'cart.summary', - '/cart/payment': 'cart.payment', - '/cart/shipping': 'cart.shipping', - '/cart/confirm': 'cart.confirm', - '/cart/thanks': 'cart.thanks', - '/cart/error': 'cart.error', - }, - - initialize: function(){ - var fn - for (var route in this.routes) { - fn = this.routes[route] - if (! this[fn]) { - this[fn] = this.default_view(fn) - } - } - }, - - initial_route: null, - launch: function(){ - if (this.initial_route) { - this.parseRoute( this.initial_route ) - } - else { - this.route() - } - this.initial_route = null - - app.finished_launching() - }, - - go: function(url){ - if (app.view && app.view.hide) { - app.view.hide() - } - window.location.href = "#/" + url - this.parseRoute(url) - }, - - default_view: function(name){ - var fn = function(){ - console.log(name) - if (app.view != app.login && app.view != app.signin) { - app.last_view = app.view - } - if (app.view && app.view.hide) { - app.view.hide() - } - if (name.match(/\./)) { - var n = name.split(".") - console.log(name, n) - app.view = app[n[0]][n[1]] - } - else { - app.view = app[name] - } - - // window.FirebasePlugin && window.FirebasePlugin.setScreenName(name) - - app.header.set_back( !! app.view.back ) - app.view.show() - }.bind(this) - return fn - }, - - product: function(code){ - if (app.view && app.view.hide) { - app.view.hide() - } - app.view = app.product - app.header.set_back( true ) - app.product.load(code) - app.product.show() - }, - -}) - diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/account/AccountView.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/account/AccountView.js deleted file mode 100755 index 80738be0..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/account/AccountView.js +++ /dev/null @@ -1,162 +0,0 @@ -var AccountView = View.extend({ - - initialize: function(){ - }, - - connect: function(cb){ - auth.init(this.ready.bind(this, cb)) - }, - - ready: function(cb){ - if (auth.logged_in()) { - this.logged_in(cb) - } - else { - this.logged_out(cb) - } - }, - - addresses: [], - addressLookup: {}, - ccs: [], - ccLookup: {}, - - listAddresses: function(opt){ - opt = opt || {} - sdk.address.list({ - success: function(data){ - this.populateAddresses(data, opt.success) - }.bind(this), - error: function(data){ - console.log("error listing addresses!") - console.log(data.responseText) - opt.error && opt.error() - }.bind(this), - }) - }, - - populateAddresses: function(data, cb){ - console.log("populate addresses:", data.AddressBook.addressBookItem) - - if (! data.AddressBook) { - console.log("no addresses") - cb && cb() - return - } - - this.addresses = data.AddressBook.addressBookItem - this.addressLookup = {} - data.AddressBook.addressBookItem.forEach(function(item){ - this.addressLookup[ item.Id ] = item - if (item.IsDefault) { - console.log("SHIPPING ADDRESS", item) - app.shipping.populate(item) - } - if (item.IsBillingDefault) { - console.log("BILLING ADDRESS") - app.payment.populate(item) - } - }.bind(this)) - - app.cart.shipping.populate() - app.cart.payment.populate() - - cb && cb() - }, - - listCreditCards: function(cb){ - sdk.payment.list_credit_cards({ - success: function(data){ - this.populateCreditCards(data, cb) - }.bind(this) - }) - }, - - populateCreditCards: function(data, cb){ - console.log("populate ccs:", data.CreditCards) - this.ccs = data.CreditCards - this.ccLookup = {} - if (! data.CreditCards || ! data.CreditCards.length) { - } - else { - data.CreditCards.forEach(function(cc){ - this.ccLookup[cc.Id] = cc - }.bind(this)) - app.payment.populate( data.CreditCards[0] ) - app.cart.payment.populate() - } - cb && cb() - }, - - logged_in: function(cb){ - this.listAddresses() - this.listCreditCards() - $("#nav .login").hide() - $("#nav .account, #nav .logout").show() - if (! auth.deferred_product && app.last_view) { - if (app.last_view != app.login && app.last_view != app.signin && app.last_view != app.logout) { - app.view && app.view.hide && app.view.hide() - app.view = app.last_view - app.view.show() - } - } - else { - cb && cb() - } - if ( ! auth.has_cart() ) { - app.curtain.show("loading") - auth.create_cart({ - success: function(){ - if (auth.deferred_product) { - auth.add_deferred_product_to_cart({ - success: function(){ - app.router.go("cart") - setTimeout(function(){ - app.curtain.hide("loading") - }, 500) - }, - error: function(){ - // TODO: should not be called because cart was just created - console.log("ERROR ADDING PRODUCT TO NEW CART") - }, - }) - } - else { - app.router.go("account/profile") - app.curtain.hide("loading") - } - }, - error: function(){ - // error CREATING cart... - console.log("ERROR CREATING CART") - auth.log_out() - app.account.logged_out() - }, - }) - } - else { - if (auth.deferred_product) { - auth.add_deferred_product_to_cart({ - success: function(){ - app.router.go("cart") - }, - error: function(){ - // TODO: cart might be invalid.. - console.log("CALLED LOGGED_IN, HAD DEFERRED PRODUCT") - }, - }) - } - else { - app.cart.load() - } - } - }, - - logged_out: function(cb){ - $("#nav .login").show() - $("#nav .account, #nav .logout").hide() - $("#nav").removeClass("account") - cb && cb() - }, - -}) diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/account/OrdersView.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/account/OrdersView.js deleted file mode 100755 index b3ff3e7a..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/account/OrdersView.js +++ /dev/null @@ -1,194 +0,0 @@ -var OrdersView = ScrollableView.extend({ - - el: "#orders", - - loaded: false, - - list_template: $("#orders .list_template").html(), - item_template: $("#orders .item_template").html(), - - events: { - "click .back": "back", - "click .item": "load_single", - }, - - initialize: function(){ - this.$list = this.$(".list") - this.$empty = this.$(".empty") - this.$single_order = this.$("#single_order") - - this.$rows = this.$(".rows") - this.$subtotal = this.$(".subtotal") - this.$shipping = this.$(".shipping") - this.$tax = this.$(".tax") - this.$total = this.$(".total") - - this.$shipping_address = this.$(".shipping_address") - this.$shipping_method = this.$(".shipping_method") - - this.scroller = new IScroll('#orders', app.iscroll_options) - }, - - show: function(){ - if (! auth.logged_in()) { return app.router.go("intro") } - if (! navigator.onLine) { - app.closed.showElement() - app.closed.setMessage("PLEASE GO ONLINE TO VIEW
YOUR ORDERS.", "") - return - } - app.header.set_back(false) - app.footer.hide() - document.body.className = "orders" - this.deferScrollToTop() - this.el.className = "" - - if (this.loaded) { - this.populate() - } - else { - this.fetch() - } - }, - - orders: null, - orderLookup: {}, - - fetch: function(){ - this.$list.empty() - this.$empty.hide() - this.loader = new Loader(this.ready.bind(this)) - app.curtain.show("loading") - sdk.account.fetch_orders({ - success: function(data){ - this.loader.register("orders") - this.orders = data.OrderDetails - data.OrderDetails.forEach(function(row){ - this.loader.register(row.OrderNumber) - sdk.account.fetch_single_order({ - id: row.OrderNumber, - success: function(row_data){ - this.orderLookup[ row.OrderNumber ] = row_data.OrderFullDetails - this.loader.ready(row.OrderNumber) - }.bind(this), - error: function(){ - this.orderLookup[ row.OrderNumber ] = null - this.loader.ready(row.OrderNumber) - }.bind(this), - }) - }.bind(this)) - this.loader.ready("orders") - }.bind(this), - error: function(){ - console.log("error fetching orders") - }.bind(this), - }) - }, - - ready: function(){ - this.populate() - app.curtain.hide("loading") - }, - - populate: function(){ - this.$list.empty() - - if (! this.orders.length) { - this.$empty.show() - return - } - else { - this.$empty.hide() - } - this.orders.forEach(function(row){ - var order = this.orderLookup[ row.OrderNumber ] - if (! order) { return } - var t = this.list_template.replace(/{{date}}/g, moment(order['Date']).format("ddd MM/DD/YYYY").toUpperCase()) - .replace(/{{id}}/g, row.OrderNumber) - .replace(/{{total}}/g, as_cash( order.TotalAmount )) - var $t = $(t), $images = $t.find(".images") - order.Items.forEach(function(item){ - var img = new Image () - img.src = sdk.image(item['Code10'], "11_f") - $images.append(img) - }.bind(this)) - this.$list.append($t) - }.bind(this)) - - this.refreshScroller() - }, - - load_single: function(e){ - var id = $(e.currentTarget).data("id") - var order = this.orderLookup[ id ] - if (! order) { return } - - console.log(order) - - this.$rows.empty() - - order.Items.forEach(function(item){ - var $el = $("
") - this.$rows.append($el) - var code_ten = item.Code10 - - var code = code_ten.substr(0, 8) - app.product.find(code, function(data, details){ - var descriptions = app.product.get_descriptions( details ) - - var name_partz = descriptions['ModelNames'].split(' ') - var num = name_partz.shift() - var title = name_partz.join(' ') - var type = title_case( descriptions['MicroCategory'] ) - - var color_name, size_name - - details.Item.ModelColors.some(function(color){ - if (color['Code10'] == code_ten) { - color_name = color['ColorDescription'] - return true - } - return false - }) - size_name = item.DefaultSize + " " + item.DefaultSizeClassFamily - - var t = this.item_template - .replace(/{{image}}/, sdk.image(item['Code10'], '11_f')) - .replace(/{{sku}}/, num) - .replace(/{{title}}/, title) - .replace(/{{type}}/, type) - .replace(/{{size}}/, size_name || "DEFAULT") - .replace(/{{color}}/, color_name || "DEFAULT") - .replace(/{{quantity}}/, 1) - .replace(/{{price}}/, as_cash(details.Item.Price.DiscountedPrice)) - $el.data("price", details.Item.Price.DiscountedPrice) - $el.html(t) - this.refreshScroller() - }.bind(this)) - }.bind(this)) - - var subtotal = order.ItemsTotalAmount - var shipping_cost = order.Delivery.Amount - var tax = order.SalesTaxAmount - var total = order.TotalToPay - - this.$subtotal.html( as_cash(subtotal) ) - this.$shipping.html( as_cash(shipping_cost) ) - this.$tax.html( as_cash(tax) ) - this.$total.html( as_cash(total) ) - - var street = order.Delivery.Address.replace(/\n$/,"").replace("\n","
") - var address = order.Delivery.Name + "
" + street + "
" + order.Delivery.City + " " + order.Delivery.ZipCode - this.$shipping_address.html(address) - this.$shipping_method.html(order.Delivery.Type + " - " + order.Delivery.Time) - - app.header.set_back(true) - this.$el.addClass("single") - }, - - back: function(){ - app.header.set_back(false) - this.el.className = "" - }, - -}) - diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/account/PaymentView.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/account/PaymentView.js deleted file mode 100755 index 796ea188..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/account/PaymentView.js +++ /dev/null @@ -1,126 +0,0 @@ -var PaymentView = FormView.extend({ - - el: "#payment", - - action: sdk.payment.add_credit_card, - - events: { - }, - - test_data: { - "Name":"Name", - "Surname":"Surname", - "Address1":"address", - "Address2":"address2", - "City":"Ferrara", - "Province":"NY", - "HolderIsoCountry":"IT", - "CreditCardCountry": "US", - "ZipCode":"40200", - "Type":"Visa", - "Number":"4111111111111111", - "ExpirationMonth":"09", - "ExpirationYear":"2017", - "Cvv":"1233", - }, - - initialize: function(){ - this.$form = this.$(".form") - this.$msg = this.$(".msg") - this.address = new AddressView ({ parent: this, checkPhone: false }) - this.cc = new CreditCardView ({ parent: this }) - this.scroller = new IScroll('#payment', app.iscroll_options) - }, - - show: function(){ - if (! auth.logged_in()) { return app.router.go("intro") } - if (! navigator.onLine) { - app.closed.showElement() - app.closed.setMessage("PLEASE GO ONLINE TO CHANGE
YOUR PAYMENT INFO.", "") - return - } - app.footer.show("SAVE") - document.body.className = "payment" - this.deferScrollToTop() - // this.preload() - }, - - populate: function(data){ - this.data = data || this.data - this.address.populate(data) - this.cc.populate(data) - }, - - finalize: function(data){ - if (this.cc.data && this.cc.data.Guid) { - sdk.payment.delete_credit_card({ - guid: this.cc.data.Guid, - success: function(){ console.log("deleted credit card") }, - error: function(){ console.log("error deleting credit card") }, - }) - } - - data.IsDefault = "true" // this.$isDefault.prop("checked") ? "true" : "false" - data.UserId = sdk.auth.user_id - data.HolderIsoCountry = "US" - data.CreditCardNumber = data.Number - data.IsPreferred = "true" - - console.log(data) - return data - }, - - success: function(data){ - app.curtain.show("loading") - app.account.listAddresses({ - success: function(){ - app.curtain.hide("loading") - }, - error: function(){ - app.curtain.hide("loading") - }, - }) - }, - - error: function(data){ - console.log("ERROR WITH PAYMENT") - console.log(data) - }, - - cancel: function(){ - app.router.go("intro") - }, - -}) - -/* - var new_card = { - "Name":"Name", - "Surname":"Surname", - "Address":"address", - "City":"Ferrara", - "Province":"FE", - "HolderIsoCountry":"IT", - "ZipCode":"40200", - "Type":"Visa", - "Number":"0000567890124285", - "ExpirationMonth":"02", - "ExpirationYear":"2017", - } - promise(sdk.payment.add_credit_card, { data: new_card }).then(function(data){ - last_guid = data['CreditCard']['Guid'] - assert(data.Header.StatusCode == 201) - assert(!! last_guid) - done() - }) - - promise(sdk.payment.list_credit_cards, { data: {} }).then(function(data){ - assert(data.Header.StatusCode == 201) - console.log(data) - done() - }) - - promise(sdk.payment.delete_credit_card, { guid: last_guid }).then(function(data){ - assert(data.Header.StatusCode == 200) - done() -*/ \ No newline at end of file diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/account/ProfileView.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/account/ProfileView.js deleted file mode 100755 index 52ef8056..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/account/ProfileView.js +++ /dev/null @@ -1,115 +0,0 @@ -var ProfileView = FormView.extend({ - - el: "#profile", - - events: { - "click .privacy-msg": "privacy_link", - }, - - action: sdk.account.update, - - initialize: function(){ - this.$form = this.$(".form") - this.$msg = this.$(".msg") - this.scroller = new IScroll('#profile', app.iscroll_options) - }, - - show: function(){ - if (! auth.logged_in()) { return app.router.go("intro") } - if (! navigator.onLine) { - app.closed.showElement() - app.closed.setMessage("PLEASE GO ONLINE TO
EDIT YOUR PROFILE.", "") - return - } - app.footer.show("SAVE") - document.body.className = "profile" - if (auth.user.BirthDay.match(/T/)) { - auth.user.BirthDay = auth.user.BirthDay.split("T")[0] - } - if (auth.user.name && ! auth.user.Name) { - auth.user.Name = auth.user.name - } - if (auth.user.surname && ! auth.user.Surname) { - auth.user.Surname = auth.user.surname - } - if (auth.user.email && ! auth.user.Email) { - auth.user.Email = auth.user.email - } - console.log(auth.user) - this.preload(auth.user) - this.deferScrollToTop() - }, - - validate_presence: { - "Name": "Please enter your first name.", - "Surname": "Please enter your last name.", - "Email": "Please enter a valid email address.", - }, - - validate_fields: function(data, errors){ - if (! data.Email.match("@")) { errors.push([ "Email", "Email address is not valid." ]) } - if (! data.CurrentPassword && (data.NewPassword || data.Email !== auth.user.Email)) { errors.push([ "CurrentPassword", "Please enter your current password." ]) } - if (data.CurrentPassword && ! data.NewPassword) { errors.push([ "NewPassword", "Please enter your new password." ]) } - if (data.NewPassword && data.NewPassword.length < 7) { errors.push([ "CurrentPassword", "New password must be 7 characters or more." ]) } - // if (data.Gender === "NONE") { errors.push([ "Gender", "Please supply your gender." ]) } - }, - - finalize: function(data){ - if (data.CurrentPassword && (data.NewPassword || data.Email !== auth.user.Email)) { - data.NewPassword = data.NewPassword || data.CurrentPassword - data.NewEmail = data.NewEmail || auth.user.Email - - sdk.account.update_mail_and_password({ - data: { - Password: data.CurrentPassword, - NewPassword: data.NewPassword || data.CurrentPassword, - Email: auth.user, - NewEmail: data.NewEmail || auth.user.Email, - }, - success: function(){ console.log("updated password") }, - error: function(){ console.log("error updating password") }, - }) - } - - var submissible_data = _.pick(data, "Name Surname BirthDay YooxLetter".split(" ")) - submissible_data.Gender = "U" -// submissible_data.idUser = auth.user_id -// submissible_data.AccessToken = auth.access_token -// submissible_data.Premium = "false" -// submissible_data.LanguageId = "" -// submissible_data.SiteCode = "STONEISLAND_US" -// submissible_data.FuriganaName = "" -// submissible_data.FuriganaSurname = "" -// submissible_data.UserPromocode = "" - submissible_data.BirthDay += "T00:00:00Z" - submissible_data.YooxLetter = this.$("[name=YooxLetter]").prop("checked") - submissible_data.DataProfiling = this.$("[name=DataProfiling]").prop("checked") - - console.log(data.DataProfiling, submissible_data.DataProfiling) - console.log(submissible_data) - - return submissible_data - }, - - privacy_link: function(){ - // rewrite app.privacy instance temporarily - app.privacy.back = function(){ - app.router.go("account/profile") - } - app.privacy.hide = function(){ - app.privacy.back = app.privacy.hide = null - } - app.router.go("page/privacy") - }, - - success: function(data){ - }, - - error: function(data){ - }, - - cancel: function(){ - app.router.go("intro") - }, - -}) \ No newline at end of file diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/account/SettingsView.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/account/SettingsView.js deleted file mode 100755 index 90ace549..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/account/SettingsView.js +++ /dev/null @@ -1,45 +0,0 @@ -var SettingsView = FormView.extend({ - - el: "#settings", - - events: { - "change [name=store]": "changeStore", - "change [name=hub]": "changeHub", - }, - - initialize: function(){ - this.$form = this.$(".form") - this.$msg = this.$(".msg") - this.$store = this.$("[name=store]") - this.$hub = this.$("[name=hub]") - this.scroller = new IScroll('#settings', app.iscroll_options) - }, - - show: function(){ - if (! auth.logged_in()) { return app.router.go("intro") } - if (! navigator.onLine) { - app.closed.showElement() - app.closed.setMessage("PLEASE GO ONLINE TO CHANGE
YOUR NOTIFICATION SETTINGS.", "") - return - } - document.body.className = "settings" - this.deferScrollToTop() - - this.$store.prop("checked", !! push.settings.store) - this.$hub.prop("checked", !! push.settings.hub) - // push.subscribe("store") - // push.subscribe("hub") - }, - - changeStore: function(){ - var state = app.settings.$store.prop("checked") - if (state) { push.subscribe("store") } - else { push.unsubscribe('store') } - }, - changeHub: function(){ - var state = app.settings.$hub.prop("checked") - if (state) { push.subscribe("hub") } - else { push.unsubscribe('hub') } - }, - -}) \ No newline at end of file diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/account/ShippingView.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/account/ShippingView.js deleted file mode 100755 index 67a1cfec..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/account/ShippingView.js +++ /dev/null @@ -1,87 +0,0 @@ -var ShippingView = FormView.extend({ - - el: "#shipping", - - action: sdk.address.add, - - events: { - }, - - test_data: { - "Name":"name", - "Surname":"surname", - "Address":"address1\naddress2", - "IsDefault":false, - "IsBillingDefault":false, - "IsOwner":false, - "ZipCode":"88040", - "City":"City", - "Province":"NY", - "Phone":"1234567890", - "Mobile":"Mobile", - "Mail":"Mail", - "UserId": sdk.auth.user_id, - }, - - initialize: function(){ - this.$form = this.$(".form") - this.$msg = this.$(".msg") - this.address = new AddressView ({ parent: this }) - this.scroller = new IScroll('#shipping', app.iscroll_options) - }, - - show: function(){ - if (! auth.logged_in()) { return app.router.go("intro") } - if (! navigator.onLine) { - app.closed.showElement() - app.closed.setMessage("PLEASE GO ONLINE TO
EDIT YOUR SHIPPING INFO.", "") - return - } -// this.preload( this.data || this.test_data ) - app.footer.show("SAVE") - document.body.className = "shipping" - this.deferScrollToTop() - }, - - populate: function(data){ - this.data = data || this.data - this.address.populate(data) - }, - - finalize: function(data){ - if (this.address.data && this.address.data.Id) { - sdk.address.destroy({ - id: this.address.data.Id, - success: function(){}, - error: function(){}, - }) - } - - data.IsDefault = "true" // this.$isDefault.prop("checked") ? "true" : "false" - data.UserId = sdk.auth.user_id - - console.log(data) - return data - }, - - success: function(data){ - app.curtain.show("loading") - app.account.listAddresses({ - success: function(){ - app.curtain.hide("loading") - }, - error: function(){ - app.curtain.hide("loading") - }, - }) - }, - - error: function(data){ - console.log(data) - }, - - cancel: function(){ - app.router.go("intro") - }, - -}) \ No newline at end of file diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/auth/LoginView.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/auth/LoginView.js deleted file mode 100755 index aeb15d1d..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/auth/LoginView.js +++ /dev/null @@ -1,60 +0,0 @@ -var LoginView = FormView.extend({ - - el: "#login", - - action: sdk.account.login, - - events: { - "click .newuser": "new_user", - "click .forgotpassword": "forgot_password", - "submit form": "save", - }, - - initialize: function(){ - this.$form = this.$(".form") - this.$msg = this.$(".msg") - this.scroller = new IScroll('#login', app.iscroll_options) - }, - - show: function(){ - if (auth.logged_in()) { - app.router.go("intro") - return - } - var msg = "* Your personal and payment
information will always remain private" - app.footer.show("SUBMIT") - this.$("input").val("") - this.$msg.html(msg) - document.body.className = "login" - }, - - new_user: function(){ - app.router.go("account/signup") - }, - - forgot_password: function(){ - window.open("http://www.stoneisland.com/", '_system') - }, - - validate_presence: { - "Email": "Please enter a valid email address.", - "Password": "Please enter your password.", - }, - - success: function(data){ - console.log(data) - app.account.logged_in(function(){ - app.router.go("store") - }) - }, - - error: function(data){ - this.$msg.html("There was an error logging you in. Bad password?") - this.$msg.addClass('alert-notice') - }, - - cancel: function(){ - auth.deferred_product = null - }, - -}) diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/auth/LogoutView.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/auth/LogoutView.js deleted file mode 100755 index 481dcb8d..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/auth/LogoutView.js +++ /dev/null @@ -1,16 +0,0 @@ -var LogoutView = View.extend({ - - el: "#logout", - - events: { - }, - - show: function(){ - document.body.className = "logout" - app.header.set_cart_count(0) - app.footer.hide() - auth.log_out() - app.account.logged_out() - }, - -}) \ No newline at end of file diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/auth/SignupView.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/auth/SignupView.js deleted file mode 100755 index 220026c0..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/auth/SignupView.js +++ /dev/null @@ -1,121 +0,0 @@ -var SignupView = FormView.extend({ - - el: "#signup", - - action: sdk.account.signup, - last_data: null, - -/* - test_data: { - "Email": "testit.account" + Math.floor(Math.random() * 10000000) + "@yoox.com", - "Password": "TestPassword", - "Password2": "TestPassword", - "Gender": "U", - "Name": "TestName", - "Surname": "TestSurname", - "BirthDay": "1978-11-12", - "DataProfiling": true, - }, -*/ - - events: { - "click .privacy-msg": "privacy_link", - "submit form": "save", - }, - - initialize: function(){ - this.$form = this.$(".form") - this.$msg = this.$(".msg") - this.scroller = new IScroll('#signup', app.iscroll_options) - }, - - show: function(){ - if (auth.logged_in()) { - app.router.go("intro") - return - } - var msg = "* Your personal and payment
information will always remain private" - app.footer.show("SUBMIT") - this.$("input").val("") - this.$msg.html(msg) - document.body.className = "signup" - - this.preload() - this.deferScrollToTop() - }, - - validate_presence: { - "Name": "Please enter your first name.", - "Surname": "Please enter your last name.", - "Email": "Please enter a valid email address.", - "ConfirmEmail": "Please enter a valid email address.", - // "BirthDay": "Please enter your birthday.", - "Password": "Please enter your password.", - "Password2": "Please enter your password again.", - "DataProfiling": "You must agree to data profiling.", - }, - - validate_fields: function(data, errors){ - if (data.Password.length < 7) { errors.push([ "Password", "Password must be 7 characters or more." ]) } - if (data.Password !== data.Password2) { errors.push([ "Password2", "Passwords don't match." ]) } - if (! data.Email.match("@")) { errors.push([ "Email", "Email address is not valid." ]) } - if (data.Email.toLowerCase() !== data.ConfirmEmail.toLowerCase()) { errors.push([ "ConfirmEmail", "Email addresses don't match." ]) } - // if (data.Gender === "NONE") { errors.push([ "Gender", "Please supply your gender." ]) } - if (data.DataProfiling !== "true") { errors.push([ "DataProfiling", "You must consent to use this service." ]) } - data.YooxLetter = this.$("[name=YooxLetter]").prop("checked") - }, - - finalize: function(data){ - delete data.ConfirmEmail - - data.Gender = "U" - data.BirthDay += "T00:00:00Z" - - this.last_data = data - console.log(data) - return data - }, - - privacy_link: function(){ - // rewrite app.privacy instance temporarily - app.privacy.back = function(){ - app.router.go("account/signup") - } - app.privacy.hide = function(){ - app.privacy.back = app.privacy.hide = null - } - app.router.go("page/privacy") - }, - - success: function(data){ - console.log('success', data) - auth.user = auth.user || {} - auth.user.Name = this.last_data.Name - auth.user.Surname = this.last_data.Surname - auth.user.Email = this.last_data.Email - auth.user.BirthDay = this.last_data.BirthDay - app.account.logged_in(function(){ app.router.go("store") }) - }, - - error: function(data){ - try { - data = JSON.parse(data.responseText) - app.signup.show_errors([[ 'Name', data['Error']['Description'] ]]) - } - catch (e) { - switch (data.status) { - case 409: - app.signup.show_errors([[ 'Email', "Email is already in use." ]]) - break - default: - app.signup.show_errors([[ 'Name', "There was an unknown error." ]]) - break - } - } - }, - - cancel: function(){ - auth.deferred_product = null - }, - -}) \ No newline at end of file diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/blogs/ArchiveView.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/blogs/ArchiveView.js deleted file mode 100755 index 12aaf7de..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/blogs/ArchiveView.js +++ /dev/null @@ -1,235 +0,0 @@ -var ArchiveView = ScrollableView.extend({ - - el: "#archive", - menu_template: $("#archive .menu .template").html(), - row_template: $("#archive .scroll .template").html(), - - events: { - "click .item": "pick", - "mousedown .row": "mousedown", - "touchstart .row": "touchstart", - "mousemove .row": "mousemove", - "touchmove .row": "touchmove", - "mouseup .row": "mouseup", - "touchend .row": "touchend", - }, - - initialize: function(){ - this.$menu_items = this.$(".menu .items") - this.$content = this.$(".content") - this.$loader = this.$(".loader") - this.scroller = new IScroll('#archive .scroll', app.iscroll_options) - this.$subtitle = this.$('.subtitle') - this.subtitle_html = this.$subtitle.html() - - }, - - back: function(){ - this.$el.addClass("menu") - app.header.set_back(false) - this.$subtitle.html( this.subtitle_html ) - }, - - pick: function(e){ - this.$el.removeClass("menu") - app.header.set_back(true) - var index = $(e.currentTarget).data("index") - this.$subtitle.html( $(e.currentTarget).text() ) - this.populateDecade(index) - this.deferScrollToTop() - }, - - show: function(){ - this.deferScrollToTop() - app.footer.hide() - this.back() - document.body.className = "archive" - if (! this.populated) { - this.populate( BACKUP_DB.archive ) - } - }, - - populate: function(data){ - if (this.loaded) { return } - this.loaded = true - this.data = data - this.$loader.hide() - this.$content.empty() - - // id title images[ uri label code caption ] - this.data.forEach(function(row, index){ - - var t = this.menu_template.replace(/{{title}}/, row.title) - var $t = $(t) - $t.data("title", row.title) - $t.data("index", index) - this.$menu_items.append($t) - }.bind(this)) - - this.back() - this.populateDecade(0, 3) - this.deferScrollToTop() - }, - - populateDecade: function(index, count){ - this.$content.empty() - - var loader = new Loader() - - var row = this.data[index] - - count = count || row.images.length - - row.images.forEach(function(cell, i){ - if (count && i > count) { return } - var $t = $("
") - $t.addClass("row").addClass("loading") - var t = this.row_template.replace(/{{image}}/, cell.uri) - .replace(/{{label}}/, cell.label) - .replace(/{{code}}/, cell.code) - .replace(/{{caption}}/, cell.caption) - $t.html(t) - $t.data("flipped", false) - this.$content.append($t) - - var item = $t[0] - var aa = this.build_aa_item( item ) - aa.q = 0 - this.render( aa, 0 ) - aa.flipped = true - this.fix_z_index( aa ) - - var $text = $t.find(".text") - if ( ($text.height() % 2) == 1) { - $text.css("margin-bottom", "1px") - } - - loader.preloadImage(cell.uri, function(){ - aa.flipped = false - this.fix_z_index( aa ) - $t.removeClass('loading') - }.bind(this)) - }.bind(this)) - - this.deferRefresh() - setTimeout(function(){ - this.deferScrollToTop() - }.bind(this), 100) - }, - -// ['transformProp'] = "translateZ(0) translateX(-50%) translateY(-50%) "; -// .image, .text - - touchstart: function(e){ - app.archive.row = e.currentTarget - app.archive.mousedown(e.originalEvent.touches[0]) - }, - touchmove: function(e){ - app.archive.mousemove(e.originalEvent.touches[0]) - }, - touchend: function(e){ - app.archive.mouseup() - }, - - row: null, - image: null, - text: null, - flipped: false, - q: 0, - - mousedown: function(e){ - var aa = app.archive.item = app.archive.build_aa_item( app.archive.row || e.currentTarget ) - aa.mouse_x = e.pageX - aa.mouse_y = e.pageY - }, - - build_aa_item: function(el){ - var aa = {} - aa.row = el - aa.flipped = $(aa.row).data('flipped') - aa.image = $(aa.row).find(".image")[0] - aa.text = $(aa.row).find(".text")[0] - aa.q = 0 - return aa - }, - - mousemove: function(e){ - if (! app.archive.item) return - aa = app.archive.item - var dx = ( aa.mouse_x - e.pageX ) / window.innerWidth - var dy = ( aa.mouse_y - e.pageY ) / window.innerWidth - - var gray, opacity, q - - dx = Math.abs(dx) - dx *= 2 - q = clamp( dx, 0, 1 ) - - this.render(aa, q) - - aa.q = q -/* - aa.row.style['transformProp'] = [ - "translateZ(0)", - "translateX(-50%)", - "translateY(-50%)", - "rotateY(" + dx + "deg)", - ].join(" ") -*/ - }, - - render: function(aa, q){ - if ( aa.flipped ) { - gray = Math.round( (1-q) * 100 ) - opacity = lerp(q, 0.2, 1) - text_opacity = lerp(q, 1, 0.3) - } - else { - gray = Math.round( q * 100 ) - opacity = lerp(q, 1, 0.2) - text_opacity = lerp(q, 0.3, 1) - } - aa.image.style.WebkitFilter = "grayscale(" + gray + "%)" - aa.image.style.opacity = opacity - aa.text.style.opacity = text_opacity - }, - - margin: 0.3, - - mouseup: function(e){ - aa = app.archive.item - app.archive.row = null - app.archive.item = null - var was_flipped = aa.flipped - var flipped = aa.flipped ? (aa.q < app.archive.margin) : (aa.q > app.archive.margin) - var dest = was_flipped == flipped ? 0 : 1 - $(aa.row).data('flipped', flipped) - - oktween.add({ - obj: {q: aa.q}, - to: {q: dest}, - duration: 200 * Math.abs(aa.q-dest), - update: function(o, dt){ - app.archive.render(aa, o.q) - }, - }) - - this.fix_z_index(aa) - }, - - fix_z_index: function (aa) { - if ( aa.flipped ) { - console.log(aa.q) - z = aa.q > app.archive.margin ? 2 : 1 - zz = aa.q > app.archive.margin ? 1 : 2 - } - else { - z = aa.q < app.archive.margin ? 2 : 1 - zz = aa.q < app.archive.margin ? 1 : 2 - } - aa.image.style.zIndex = z - aa.text.style.zIndex = zz - - }, - -}) \ No newline at end of file diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/blogs/BlogView.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/blogs/BlogView.js deleted file mode 100755 index fd7b5212..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/blogs/BlogView.js +++ /dev/null @@ -1,104 +0,0 @@ -var BlogView = View.extend({ - - data: null, - loaded: false, - initialize: function(){ - this.loader = new Loader () - }, - - fetch: function(fn){ - $.ajax({ - method: "GET", - url: sdk.env === 'test' ? '/db.json' : sdk.cms() + '/db.json', - // url: "https://stone.giraffe.life/db.json", - success: function(data){ - this.success(data) - fn && fn() - }.bind(this), - cache: true, - }) - }, - - refresh: function(){ - this.loaded = false - this.fetch() - }, - - success: function(data){ - - if (this.loaded) return - - this.loaded = true - this.data = data = typeof data == "string" ? JSON.parse(data) : data - - // sdk.env = 'test' - - if (sdk.env === 'test') { - app.store = data.store[1] - } - else { - app.store = data.store[0] - } - - switch (app.store.DepartmentStoreStatus) { - case "open": - app.closed.storeIsClosed = false - break - case "closed": - app.closed.storeIsClosed = true - app.closed.storeClosedMessageOne = app.store.StoreClosedMessageOne - app.closed.storeClosedMessageTwo = app.store.StoreClosedMessageTwo - break - } - - if (app.closed.storeIsClosed && sdk.env !== 'test') { - app.closed.populate(app.store.ClosedStoreImages) - } - else { - app.departments = app.store.Departments - app.department_id = app.store.Departments[0].uri - $("#collections h1").toggleClass("single-dept", app.store.Departments.length == 1) - app.collection.setCollectionName( app.store.Departments[0].text ) - //// demo department for shoes with weird SizeTypeId - // app.department_id = "NKDrtSC" - if (sdk.env === 'test') { - app.department_id = window.location.search.substr(1) || app.department_id - console.log('using test department id', app.department_id) - // app.department_id = 'TSTSZS' - } - app.collection.loaded = false - app.collection.fetch() - } - - app.archive.populate(data.archive) - this.loader.preloadImage(data.hub[0].image[0].uri, function(img){ - app.hub.populate(data.hub) - }.bind(this)) - this.loader.preloadImage(data.story[0].image.uri, function(img){ - app.story.populate(data.story) - setTimeout(function(){ - this.loader.preloadImage(data.story[1].image.uri) - this.loader.preloadImage(data.story[2].image.uri) - }.bind(this), 2000) - }.bind(this)) - - data.page.forEach(function(page){ - app[page.tag].populate(page) - }) - - console.log(app.store.StoreStatus) - - app.product.fitLargeCodes = {} - if (app.store.FittingCodes.length) { - app.store.FittingCodes.split("\n").forEach(function(code){ - app.product.fitLargeCodes[code] = true - }) - } - - if (app.store.BackgroundIsGray === "true") { - app.collection.$el.addClass("gray") - app.product.gallery.$el.addClass("gray") - } - }, - -}) \ No newline at end of file diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/blogs/HubView.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/blogs/HubView.js deleted file mode 100755 index 38a7eecf..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/blogs/HubView.js +++ /dev/null @@ -1,176 +0,0 @@ -var HubView = ScrollableView.extend({ - - el: "#hub", - template: $("#hub .template").html(), - - events: { - "click .content-share": "share", - "click .store": "store_link", - "click .gallery-left": "gallery_left", - "click .gallery-right": "gallery_right", - "click .play": "play_video", - }, - - initialize: function(){ - this.$content = this.$(".content") - this.$loader = this.$(".loader") - this.scroller = new IScroll('#hub', app.iscroll_options) - HubLoader.init(this) - }, - - show: function(){ - this.deferScrollToTop() - app.footer.hide() - document.body.className = "hub" - if (! this.populated) { - this.populate( BACKUP_DB.hub ) - } - }, - - galleries: {}, - populated: false, - populate: function(data){ - // sort posts by date, reversed - this.populated = true - this.data = data.map(function(s){ - return [ +moment(s.date), s ] - }).sort(function(a,b){ - return a[0] > b[0] ? -1 : a[0] == b[0] ? 0 : 1 - }).map(function(pair){ - // console.log(pair[1]) - return pair[1] - }) - this.$loader.hide() - this.$content.empty() - this.galleries = {} - HubLoader.add(this.data) - - this.deferScrollToTop() - }, - - append: function(row){ - // id date subtitle body link store image[uri caption] - // console.log(row) - // console.log(moment(row.date)) - var t = this.template.replace(/{{id}}/g, row.id) - .replace(/{{date}}/, moment(row.date).format("MM.DD.YYYY")) - .replace(/{{title}}/, row.title) - .replace(/{{subtitle}}/, row.subtitle) - .replace(/{{link}}/, row.link) - .replace(/{{body}}/, row.body.replace(/\n/g, "
")) - var $t = $(t) - if (row.store != "true") { - $t.find(".store").remove() - } - this.$content.append($t) - - if (row.image && row.image.length > 1) { - // image gallery - var $gallery = $(".gallery-" + row.id) - row.image.forEach(function(img){ - var el = document.createElement("div") - el.style.backgroundImage = "url(" + img.uri + ")" - el.className = "item" - $gallery.append(el) - }) - this.galleries[row.id] = new Flickity( ".gallery-" + row.id, { - selector: '.item', - cellAlign: 'center', - autoPlay: false, - freeScroll: false, - wrapAround: true, - imagesLoaded: true, - prevNextButtons: false, - pageDots: false, - contain: true, - draggable: true, - }) - } - else { - // single image - var el = document.createElement("div") - if (row.image && row.image.length) { - el.style.backgroundImage = "url(" + row.image[0].uri + ")" - } - el.className = "item" - $(".gallery-" + row.id).append(el) - $(".gallery-" + row.id).data("row", row) - - // video, append play button - if (row.link.match(/youtube|youtu.be|vimeo/)) { - var play = document.createElement("div") - play.className = "play" - $(".gallery-" + row.id).append(play) - $(".gallery-" + row.id).addClass("gallery-video-post") - if (! row.image) { - var url = row.link - var ytid = (url.match(/v=([-_a-zA-Z0-9]{11})/i) || url.match(/youtu.be\/([-_a-zA-Z0-9]{11})/i) || url.match(/embed\/([-_a-zA-Z0-9]{11})/i))[1].split('&')[0]; - e.style.backgroundImage = "url(https://i.ytimg.com/vi/" + ytid + "/maxresdefault.jpg" - } - } - $t.find(".gallery-left").remove() - $t.find(".gallery-right").remove() - } - }, - - store_link: function(){ - app.router.go("store") - }, - play_video: function(e){ - var row = $(e.currentTarget).closest('.gallery-video-post').data("row") - window.open(row.link, '_system') - }, - - gallery_left: function(e){ - var id = $(e.currentTarget).closest(".hub_item").data('id') - this.galleries[id].previous() - }, - gallery_right: function(e){ - var id = $(e.currentTarget).closest(".hub_item").data('id') - this.galleries[id].next() - }, - - share: function(e){ - var title = $(e.currentTarget).parent().find(".title").text() - console.log("share", title) - window.plugins.socialsharing.share(title, null, null, "http://deeplink.me/www.stoneisland.com/hub" ) - }, - -}) - -var HubLoader = (function(){ - var queue, view, item, loader - var count = 0 - var HubLoader = {} - var loader - HubLoader.init = function(v){ - view = v - } - HubLoader.add = function(items){ - queue = items - this.load() - } - HubLoader.load = function(){ - item = queue.shift() - count++ - if (! item) return - if (item.image && item.image.length) { - loader = new Loader (HubLoader.build) - images = item.image.map(function(img){ - return img.uri.replace("http:","https:") - }).filter(function(img){ - return img.uri - }) - loader.preloadImages(images, true) - } - else { - HubLoader.build() - } - } - HubLoader.build = function(){ - view.append(item) - view.scroller.refresh() - setTimeout(HubLoader.load, count < 4 ? 50 : 5000) - } - return HubLoader -})() diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/blogs/PageView.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/blogs/PageView.js deleted file mode 100755 index f5f8ab2e..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/blogs/PageView.js +++ /dev/null @@ -1,41 +0,0 @@ -var PageView = ScrollableView.extend({ - - events: { - "click a": "follow_link" - }, - - initialize: function(opt){ - this.page = opt.page - this.setElement("#" + opt.page) - this.$content = this.$(".content") - this.$loader = this.$(".loader") - this.scroller = new IScroll('#' + this.page, app.iscroll_options) - }, - - show: function(){ - this.deferScrollToTop() - app.footer.hide() - document.body.className = this.page - }, - - populate: function(data){ - this.$content.html(data.body.replace(/\n/g, "
")) - this.$content.find("a").each(function(){ - var href = $(this).attr("href") // .substr(1, "fuck".length-2) - if (href.indexOf("“")) { - href = href.substr(1, href.length-2) - $(this).attr("href", href) - } - $(this).attr("target", "_system") - }) - }, - - follow_link: function(e){ - e.stopPropagation() - e.preventDefault() - var href = $(e.currentTarget).attr("href") - console.log(href) - window.open(href, '_system') - }, - -}) \ No newline at end of file diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/blogs/StoryView.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/blogs/StoryView.js deleted file mode 100755 index 5a7a56d1..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/blogs/StoryView.js +++ /dev/null @@ -1,76 +0,0 @@ -var StoryView = ScrollableView.extend({ - - loaded: false, - - el: "#story", - template: $("#story .template").html(), - - events: { - "click .links li": "pick", - }, - - initialize: function(){ - this.sections = {} - this.$img = this.$("img") - this.$content = this.$(".content") - this.$links = this.$(".links") - this.$loader = this.$(".loader") - this.loader = new Loader () - this.scroller = new IScroll('#story', app.iscroll_options) - }, - - show: function(){ - this.deferScrollToTop() - app.footer.hide() - document.body.className = "story" - if (! this.loaded) { - this.populate( BACKUP_DB.story ) - } - }, - - populate: function(data){ - if (this.loaded) { return } - this.loaded = true - this.data = data - this.$loader.hide() - this.$content.empty() - // id title image[uri caption] body - this.data.forEach(function(row){ - var t = this.template.replace(/{{id}}/, row.id) - .replace(/{{body}}/, row.body.replace(/\n/g, "
")) - var li = document.createElement("li") - li.dataset.id = row.id - li.innerHTML = row.title - this.sections[row.id] = row - this.$links.append(li) - this.$content.append(t) - }.bind(this)) - - this.set_active( this.data[0].id ) - }, - - pick: function(e){ - var id = e.currentTarget.dataset.id - this.set_active(id) - }, - - set_active: function(id){ - this.$(".active").removeClass("active") - - this.$links.find("[data-id=" + id + "]").addClass("active") - this.$content.find("[data-id=" + id + "]").addClass("active") - - var section = this.sections[id] - - if (navigator.onLine) { - var $replace = this.$img - - this.$img.stop().fadeTo(110,0.65, function() { - $replace.attr("src", section.image.uri) - }).fadeTo(130,1) - } - - this.deferScrollToTop() - }, - -}) \ No newline at end of file diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/cart/CartConfirm.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/cart/CartConfirm.js deleted file mode 100755 index a82509af..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/cart/CartConfirm.js +++ /dev/null @@ -1,178 +0,0 @@ -var CartConfirm = FormView.extend({ - - el: "#cart_confirm", - - template: $("#cart_confirm .template").html(), - - events: { - }, - - initialize: function(opt){ - this.parent = opt.parent - this.$rows = this.$(".rows") - this.$subtotal = this.$(".subtotal") - this.$shipping = this.$(".shipping") - this.$tax = this.$(".tax") - this.$total = this.$(".total") - - this.$shipping_address = this.$(".shipping_address") - this.$shipping_method = this.$(".shipping_method") - - this.$payment_name = this.$(".payment_name") - this.$payment_method = this.$(".payment_method") - this.$payment_address = this.$(".payment_address") - - this.scroller = new IScroll('#cart_confirm', app.iscroll_options) - }, - - show: function(){ - document.body.className = "cart" - app.cart.el.className = "confirm" - app.footer.show("PLACE ORDER") - window.location.hash = "#/cart/confirm" - this.deferScrollToTop() - - app.view = this - app.curtain.show("loading") - promise(sdk.cart.get_status).then( this.populate.bind(this) ) - }, - - populate: function(data){ - console.log(data) - - data = data.Cart - - this.$rows.empty() - - data.Items.forEach(function(item){ - var $el = $("
") - this.$rows.append($el) - var code_ten = item.Code10 - var size_id = item.Size - - var code = code_ten.substr(0, 8) - app.product.find(code, function(data, details){ - var descriptions = app.product.get_descriptions( details ) - - var name_partz = descriptions['ModelNames'].split(' ') - var num = name_partz.shift() - var title = name_partz.join(' ') - var type = title_case( descriptions['MicroCategory'] ) - - var color_name, size_name - - details.Item.ModelColors.some(function(color){ - if (color['Code10'] == code_ten) { - color_name = color['ColorDescription'] - return true - } - return false - }) - - details.Item.ModelSizes.some(function(size){ - if (size['SizeId'] == size_id) { - // console.log(size) - size_name = size['Default']['Text'] - size_name = SIZE_LOOKUP[ size_name ] || size_name - if (! size_name && ! size['Default']['Labeled']) { - size_name = size['Default']['Text'] + " " + size['Default']['ClassFamily'] - } - - return true - } - return false - }) - -// size_name = item.DefaultSize + " " + item.DefaultSizeClassFamily - - var t = this.template - .replace(/{{image}}/, sdk.image(item['Code10'], '11_f')) - .replace(/{{sku}}/, num) - .replace(/{{title}}/, title) - .replace(/{{type}}/, type) - .replace(/{{size}}/, size_name || "DEFAULT") - .replace(/{{color}}/, color_name || "DEFAULT") - .replace(/{{quantity}}/, 1) - .replace(/{{price}}/, as_cash(details.Item.Price.DiscountedPrice)) - $el.data("price", details.Item.Price.DiscountedPrice) - $el.html(t) - this.refreshScroller() - }.bind(this)) - }.bind(this)) - - var subtotal = data.Totals.TotalWithoutPromotions - var shipping_cost = data.DeliveryMethod.Selected.Amount.Total - var tax = data.Totals.TotalSalesTax - var total = data.Totals.TotalToPay - - this.$subtotal.html( as_cash(subtotal) ) - this.$shipping.html( as_cash(shipping_cost) ) - this.$tax.html( as_cash(tax) ) - this.$total.html( as_cash(total) ) - - var street = data.Receiver.StreetWithNumber.replace(/\n$/,"").replace("\n", ", ") - var address = data.Receiver.Name.toUpperCase() + " " + data.Receiver.Surname.toUpperCase() + "
" + street + ", " - address += data.Receiver.City + ", " + data.Receiver.Region + " " + data.Receiver.PostalCode - - this.$shipping_address.html(address) - this.$shipping_method.html(data.DeliveryMethod.Selected.Type == 1 ? "* STANDARD SHIPPING" : "* EXPRESS SHIPPING") - - var cc = data.Payment.CreditCard - var cc_street = cc.HolderAddress.replace(/\n$/,"").replace("\n", ", ") - var cc_type = cc.Type == "AmericanExpress" ? "American Express" : cc.Type - - this.$payment_name.html( cc.HolderName.toUpperCase() + " " + cc.HolderSurname.toUpperCase() ) - this.$payment_method.html( cc_type.toUpperCase() + " XXXX-XXXX-XXXX-" + cc.Last4 ) - - app.curtain.hide("loading") - }, - - save: function(){ - app.curtain.show("loading") - promise(sdk.cart.finalize, {}).then(function(){ - app.curtain.hide("loading") - app.router.go('cart/thanks') - }.bind(this)).error(function(data){ - app.curtain.hide("loading") - // {"Header":{"StatusCode":403,"Description":"403 Forbidden"},"Error":{"Description":"GenericApiError:CartAlreadyClosed"}} - // {"Header":{"StatusCode":409,"Description":"304 NotModified"},"Error":{"Description":"FinalizationError:\\"Item has been removed from cart because it is no longer available.\\"\\n235"}}' - // {"Header":{"StatusCode":409,"Description":"304 NotModified"},"Error":{"Description":"FinalizationError:\"The cart cannot be empty.\"\n233"}} - // {"Header":{"StatusCode":409,"Description":"304 NotModified"},"Error":{"Description":"FinalizationError:\"The reciever validation fails."}} - // {"Header":{"StatusCode":440,"Description":"304 NotModified"},"Error":{"Description":"GenericApiError:CartFinalizationNotYetCompleted"}} - // {"Header":{"StatusCode":441,"Description":"304 NotModified"},"Error":{"Description":"GenericApiError:EmptyCreditCard"}} - switch (data.StatusCode) { - case 403: // cart already closed - auth.clear_cart(auth.create_cart) - app.router.go('thanks') - break - case 409: // finalization error - this.finalization_error(data) - break - case 440: // genericapierror (credit card error!) - case 441: // genericapierror (credit card empty) - app.router.go('cart/payment') - app.cart.payment.show_errors([["Number","There was a problem with your credit card."]]) - break - } - }.bind(this)) - }, - - finalization_error: function(data){ - if (data['Error']['Description'].match(/receiver validation fails/)) { - app.router.go('cart/shipping') - app.cart.payment.show_errors([["Number","There was a problem with your credit card."]]) - } - else if (data['Error']['Description'].match(/cart cannot be empty/)) { - app.router.go('cart/summary') - } - else if (data['Error']['Description'].match(/Item has been removed/)) { - app.router.go('cart/error') - app.cart.error.show_error("We're sorry, but one or more items was out of stock. Please check your cart and try again.") - } - }, - - cancel: function(){ - app.router.go('cart/payment') - }, - -}) \ No newline at end of file diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/cart/CartError.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/cart/CartError.js deleted file mode 100755 index f9a1963e..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/cart/CartError.js +++ /dev/null @@ -1,28 +0,0 @@ -var CartError = View.extend({ - - el: "#cart_error", - - events: { - }, - - initialize: function(opt){ - this.parent = opt.parent - this.$error = this.$(".errrrrrrrrrrrrrrr") - }, - - show: function(){ - document.body.className = "cart" - app.cart.el.className = "error" - app.footer.show("< BACK TO CART") - app.footer.hide() - }, - - show_error: function(msg){ - this.$error.html(msg) - }, - - ok: function(){ - app.router.go("cart/summary") - }, - -}) \ No newline at end of file diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/cart/CartPayment.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/cart/CartPayment.js deleted file mode 100755 index 31c371a5..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/cart/CartPayment.js +++ /dev/null @@ -1,188 +0,0 @@ -var CartPayment = FormView.extend({ - - el: "#cart_payment", - - address_template: $("#cart_payment .address_row_template").html(), - cc_template: $("#cart_payment .cc_template").html(), - - action: sdk.cart.set_credit_card, - - address_list_mode: false, - cc_list_mode: false, - data: {}, - - events: { - "change [name=SameAsShipping]": "toggle_shipping", - "click .address_dropdown": "toggle_address", - "click .cc_dropdown": "toggle_cc", - }, - - initialize: function(opt){ - this.parent = opt.parent - this.$form = this.$(".form") - this.$msg = this.$(".msg") - this.$same_as_shipping = this.$("[name=SameAsShipping]") - this.$billing_address_rapper = this.$(".billing_address_rapper") - this.$address_list = this.$(".address_list") - this.$address_form = this.$(".address") - this.$address_dropdown = this.$(".address_dropdown") - this.$cc_list = this.$(".cc_list") - this.$cc_form = this.$(".cc") - this.$cc_dropdown = this.$(".cc_dropdown") - this.$cc_confirm = this.$(".cc_confirm") - - this.address = new AddressView ({ parent: this, checkPhone: false }) - this.cc = new CreditCardView ({ parent: this }) - this.scroller = new IScroll('#cart_payment', app.iscroll_options) - this.address.disabled = true - this.cc.disabled = true - }, - - show: function(){ - document.body.className = "cart" - app.cart.el.className = "payment" - app.footer.show("CONFIRM >") - window.location.hash = "#/cart/payment" - - app.view = this - this.populate() - this.deferScrollToTop() - }, - - toggle_shipping: function(){ - setTimeout(function(){ - var state = this.$same_as_shipping.prop("checked") - this.$billing_address_rapper.toggle( ! state ) - this.address.disabled = state - }.bind(this)) - }, - - toggle_address: function(state){ - if (! app.account.ccs.length) { - state = false - } - // this.$address_dropdown.toggle( !! app.account.ccs.length ) - - this.address_list_mode = typeof state == "boolean" ? state : ! this.list_mode - this.address.disabled = this.address_list_mode - this.$address_form.toggle(! this.address_list_mode) - this.$address_list.toggle(this.address_list_mode) - }, - - toggle_cc: function(state){ - if (! app.account.ccs.length) { - state = false - } - // this.$cc_dropdown.toggle( !! app.account.ccs.length ) - - this.cc_list_mode = typeof state == "boolean" ? state : ! this.cc_list_mode - this.cc.disabled = this.cc_list_mode - this.$cc_form.toggle(! this.cc_list_mode) - this.$cc_list.toggle(this.cc_list_mode) - this.$cc_confirm.toggle(this.cc_list_mode) - }, - - populate: function(){ - this.$(".save_as_default").show() - this.$address_list.empty() - this.$cc_list.empty() - this.toggle_address( !! app.account.ccs.length ) - this.toggle_cc( !! app.account.ccs.length ) - - app.account.ccs.forEach(function(cc){ - var address_t = this.address_template.replace(/{{id}}/g, cc.Id) - .replace(/{{checked}}/g, cc.IsDefault ? "checked" : "") - .replace(/{{name}}/g, (cc.Name + " " + cc.Surname).toUpperCase()) - .replace(/{{address}}/g, cc.Address.replace(/\n$/,"").replace("\n", ", ")) - .replace(/{{city}}/g, cc.City) - .replace(/{{state}}/g, cc.Province) - .replace(/{{zip}}/g, cc.ZipCode) - - var cc_t = this.cc_template.replace(/{{id}}/g, cc.Id) - .replace(/{{checked}}/g, cc.IsDefault ? "checked" : "") - .replace(/{{number}}/g, cc['Number']) - .replace(/{{type}}/g, cc.Type.toUpperCase()) - .replace(/{{exp}}/g, cc.ExpirationMonth + "/" + cc.ExpirationYear) - - this.$address_list.append(address_t) - this.$cc_list.append(cc_t) - }.bind(this)) - }, - - finalize: function(data){ - var shipping_info = {}, address_data, address_id, cc_info = {}, cc_data, cc_id - var shipping_type = $("[name=ShippingType]").filter(function(){ return $(this).prop("checked") }).val() - - if (this.$same_as_shipping.prop("checked")) { - address_data = app.cart.shipping.data - } - else if (this.address_list_mode) { - address_id = this.$("[name=AddressId]").filter(function(){ return $(this).prop("checked") }).val() - address_data = app.account.addressLookup[ address_id ] - } - else { - address_data = data - } - - if (this.cc_list_mode) { - cc_id = this.$("[name=CCId]").filter(function(){ return $(this).prop("checked") }).val() - cc_data = app.account.ccLookup[ cc_id ] - - var card_on_file = { - "guid": cc_data.Guid, - "cvv": this.$("[name=CvvConfirm]"), - } - - app.curtain.show("loading") - promise(sdk.cart.use_stored_credit_card, { data: card_on_file }).then(function(data){ - app.curtain.hide("loading") - this.success() - }.bind(this)).error(function(data){ - app.curtain.hide("loading") - console.log("card payment error") - console.log(data) - app.cart.payment.show_errors([["","There was a problem with your credit card."]]) - }.bind(this)) - - return - } - else { - cc_data = data - } - - var credit_info = { - "HolderName": address_data.Name, - "HolderSurname": address_data.Surname, - "HolderAddress": address_data.Address || address_data.StreetWithNumber, - "HolderCity": address_data.City, - "HolderProvince": address_data.Province, - "HolderZip": address_data.PostalCode || address_data.ZipCode, - "HolderISOCountry": CANADIAN_LOOKUP[ address_data.Province ] ? "CA" : "US", - "HolderEmail": auth.user.Email, - "CardNumber": cc_data['Number'], - "Type": cc_data.Type, - "ExpirationMonth": cc_data.ExpirationMonth, - "ExpirationYear": cc_data.ExpirationYear.substr(2,3), - "Cvv": cc_data.Cvv, - } - - console.log( credit_info ) - - return credit_info - }, - - success: function(){ - app.router.go('cart/confirm') - }, - - error: function(data){ - console.log("card payment error") - console.log(data) - app.cart.payment.show_errors([["Number","There was a problem with your credit card."]]) - }, - - cancel: function(){ - app.router.go('cart/shipping') - }, - -}) \ No newline at end of file diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/cart/CartShipping.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/cart/CartShipping.js deleted file mode 100755 index 536b5161..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/cart/CartShipping.js +++ /dev/null @@ -1,137 +0,0 @@ -var CartShipping = FormView.extend({ - - el: "#cart_shipping", - - action: sdk.cart.set_shipping_address, - - list_mode: true, - data: {}, - - template: $("#cart_shipping .template").html(), - - events: { - "click .dropdown-wrapper": "toggle_dropdown", - }, - - initialize: function(opt){ - this.parent = opt.parent - this.$form = this.$(".form") - this.$dropdown_wrapper = this.$(".dropdown-wrapper") - this.$address_list = this.$(".address_list") - this.$address_form = this.$(".address") - this.$msg = this.$(".msg") - this.address = new AddressView ({ parent: this }) - this.scroller = new IScroll('#cart_shipping', app.iscroll_options) - this.address.disabled = true - }, - - show: function(){ - document.body.className = "cart" - app.cart.el.className = "shipping" - app.footer.show("PAYMENT >") - window.location.hash = "#/cart/shipping" - app.view = this - this.populate() - this.deferScrollToTop() - }, - - populate: function(){ - // id checked name address city state zip - this.$(".save_as_default").show() - this.$address_list.empty() - if (! app.account.addresses.length) { - this.toggle_dropdown(false) - return - } - app.account.addresses.forEach(function(address){ - var t = this.template.replace(/{{id}}/g, address.Id) - .replace(/{{checked}}/g, address.IsDefault ? "checked" : "") - .replace(/{{name}}/g, (address.Name + " " + address.Surname).toUpperCase()) - .replace(/{{address}}/g, address.Address.replace(/\n$/,"").replace("\n", ", ")) - .replace(/{{city}}/g, address.City) - .replace(/{{state}}/g, address.Province) - .replace(/{{zip}}/g, address.ZipCode) - this.$address_list.append(t) - }.bind(this)) - }, - - load_form: function(cart_data){ - var data = cart_data.Cart.Receiver - var addy = data.StreetWithNumber.split("\n") - data.Address1 = addy[0] || "" - data.Address2 = addy[1] || "" - data.ZipCode = data.PostalCode - data.Province = data.Region - this.load_data(data) - - this.data = data - if (cart_data.Cart.DeliveryMethod && cart_data.Cart.DeliveryMethod.Selected && cart_data.Cart.DeliveryMethod.Type) { - $("#standard-shipping").prop("checked", cart_data.Cart.DeliveryMethod.Type == 1) - $("#express-shipping").prop("checked", cart_data.Cart.DeliveryMethod.Type == 2) - } - }, - - toggle_dropdown: function(state){ - if (! app.account.addresses.length) { - state = false - } - this.list_mode = typeof state == "boolean" ? state : ! this.list_mode - this.$dropdown_wrapper.toggle( !! app.account.addresses.length ) - this.address.disabled = this.list_mode - this.$address_form.toggle(! this.list_mode) - this.$address_list.toggle(this.list_mode) - }, - - // sdk.cart.set_shipping_address - // sdk.shipping.get_delivery_types - // sdk.shipping.set_delivery_type - - shipping_types: { - Standard: 1, - Express: 2, - }, - - finalize: function(data){ - var shipping_info = {}, address_data, address_id - var shipping_type = $("[name=ShippingType]").filter(function(){ return $(this).prop("checked") }).val() - - sdk.shipping.set_delivery_type({ - id: this.shipping_types[shipping_type], - success: function(data){ console.log("set shipping type", data) }, - error: function(data){ console.log("didnt set shipping type", data) }, - }) - - if (this.list_mode) { - address_id = this.$("[name=AddressId]").filter(function(){ return $(this).prop("checked") }).val() - address_data = app.account.addressLookup[ address_id ] - } - else { - address_data = data - } - - shipping_info.Name = address_data.Name - shipping_info.Surname = address_data.Surname - shipping_info.Email = auth.user.Email - shipping_info.Phone = address_data.Phone - shipping_info.Mobile = address_data.Phone - shipping_info.StreetWithNumber = address_data.Address - shipping_info.PostalCode = address_data.ZipCode - shipping_info.City = address_data.City - shipping_info.Province = address_data.Province - shipping_info.Region = address_data.Province - shipping_info.CountryCode = CANADIAN_LOOKUP[ address_data.Province ] ? "CA" : "US" - - this.data = shipping_info - - return shipping_info - }, - - success: function(){ - app.router.go('cart/payment') - }, - - cancel: function(){ - app.router.go('cart/summary') - }, - -}) \ No newline at end of file diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/cart/CartSummary.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/cart/CartSummary.js deleted file mode 100755 index 9b5da7b7..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/cart/CartSummary.js +++ /dev/null @@ -1,212 +0,0 @@ -var CartSummary = ScrollableView.extend({ - - el: "#cart_summary", - - template: $("#cart_summary .template").html(), - - events: { - "click .remove": "remove_item", - }, - - data: null, - - initialize: function(opt){ - this.parent = opt.parent - this.$loader = this.$(".loader") - this.$cart_body = this.$(".cart_body") - this.$cart_empty = this.$(".cart_empty") - this.scroller = new IScroll('#cart_summary', app.iscroll_options) - - this.$rows = this.$(".rows") - this.$subtotal = this.$(".subtotal") - this.$shipping = this.$(".shipping") - this.$tax = this.$(".tax") - this.$total = this.$(".total") - }, - - show: function(){ - document.body.className = "cart" - app.cart.el.className = "summary" - window.location.hash = "#/cart/summary" - app.view = this - if (auth.has_cart()) { - this.load() - } - else { - this.empty() - } - }, - - load: function(){ - this.el.className = "loading" - app.footer.show("SHIPPING >") - app.curtain.show("loading") - sdk.cart.get_status({ - success: this.populate.bind(this), - error: this.empty.bind(this), - }) - }, - - populate: function(data){ - this.data = data - - console.log("CART", data) - - if (! data.Cart.Items || data.Cart.Items.length == 0) { - return this.empty() - } - - this.parent.$steps.show() - this.updateCounts() - - this.$rows.empty() - - data.Cart.Items.forEach(function(item){ - var code_ten = item['Code10'] - var code = code_ten.substr(0, 8) - var size_id = item['Size'] - - var $el = $("
").addClass("cart_item_row") - $el.html("") - $el.data({ - code: code_ten, - size: size_id, - }) - this.$rows.append($el) - app.product.find(code, function(data, details){ - // console.log(data, details) - - var descriptions = app.product.get_descriptions( details ) - // console.log(descriptions) - - var name_partz = descriptions['ModelNames'].split(' ') - var num = name_partz.shift() - var title = name_partz.join(' ') - var type = title_case( descriptions['MicroCategory'] ) - - var color_name, size_name - // console.log(code) - details.Item.ModelColors.some(function(color){ - if (color['Code10'] == code_ten) { - color_name = color['ColorDescription'] - // console.log(color) - return true - } - return false - }) - details.Item.ModelSizes.some(function(size){ - if (size['SizeId'] == size_id) { - // console.log(size) - size_name = size['Default']['Text'] - size_name = SIZE_LOOKUP[ size_name ] || size_name - if (! size_name && ! size['Default']['Labeled']) { - size_name = size['Default']['Text'] + " " + size['Default']['ClassFamily'] - } - - return true - } - return false - }) - - var t = this.template - .replace(/{{image}}/, sdk.image(item['Code10'], '11_f')) - .replace(/{{sku}}/, num) - .replace(/{{title}}/, title) - .replace(/{{type}}/, type) - .replace(/{{size}}/, size_name) - .replace(/{{color}}/, color_name) - .replace(/{{quantity}}/, 1) - .replace(/{{price}}/, as_cash(details.Item.Price.DiscountedPrice)) - $el.html(t) - this.refreshScroller() - }.bind(this)) - }.bind(this)) - - if (data.Cart.Receiver && data.Cart.Receiver.City) { - app.cart.shipping.load_form( data ) - } - - this.updateTotals() - - this.el.className = "full" - this.refreshScroller() - app.curtain.hide("loading") - }, - - updateCounts: function(){ - app.header.set_cart_count( this.data.Cart.Items.length ) - this.parent.setHeaderCount( this.data.Cart.Items.length ) - }, - - updateTotals: function(){ - var subtotal = this.data.Cart.Totals.TotalWithoutPromotions - var shipping_cost = this.data.Cart.DeliveryMethod.Selected.Amount.Total - var tax = this.data.Cart.Totals.TotalSalesTax - var total = this.data.Cart.Totals.TotalToPay - - this.$subtotal.html( as_cash(subtotal) ) - this.$shipping.html( as_cash(shipping_cost) ) - this.$tax.html( as_cash(tax) ) - this.$total.html( as_cash(total) ) - }, - - empty: function(){ - app.footer.hide() - app.header.set_cart_count(0) - this.parent.setHeaderCount( 0 ) - this.parent.$itemcount.html("0 ITEMS") - this.el.className = "empty" - this.parent.$steps.hide() - app.curtain.hide("loading") - }, - - save: function(){ - app.router.go('cart/shipping') - }, - - cancel: function(){ - app.router.go('intro') - }, - - remove_item: function(e){ - var $el = $( e.currentTarget ).closest(".cart_item_row") - var data = $el.data() - - console.log("REMOVE FROM CART") - console.log(data.size + " " + data.code) - - console.log(this.data.Cart) - - this.data.Cart.Totals.TotalWithoutPromotions -= data.price - this.data.Cart.Totals.TotalToPay -= data.price - this.data.Cart.Items = this.data.Cart.Items.filter(function(item){ - return ( item['Code10'] !== data.code || item['Size'] !== data.size) - }) - - this.updateTotals() - this.updateCounts() - $el.remove() - this.refreshScroller() - - if (this.data.Cart.Items.length == 0) { - this.empty() - } - - app.curtain.show("loading") - console.log("loading") - sdk.cart.delete_item({ - data: { - Code10: data.code, - Size: data.size, - }, - success: function(){ - console.log("success") - app.curtain.hide("loading") - }, - error: function(){ - app.curtain.hide("loading") - }, - }) - }, - -}) \ No newline at end of file diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/cart/CartThanks.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/cart/CartThanks.js deleted file mode 100755 index 03a45d4d..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/cart/CartThanks.js +++ /dev/null @@ -1,28 +0,0 @@ -var CartThanks = View.extend({ - - el: "#cart_thanks", - - events: { - }, - - initialize: function(opt){ - this.parent = opt.parent - }, - - show: function(){ - document.body.className = "cart" - app.cart.el.className = "thanks" - app.header.set_cart_count(0) - app.footer.show("< BACK TO COLLECTION") - app.footer.hide() - - app.orders.loaded = false - - sdk.auth.clear_cart() - }, - - ok: function(){ - app.router.go("store") - }, - -}) \ No newline at end of file diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/cart/CartView.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/cart/CartView.js deleted file mode 100755 index 6ed8238f..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/cart/CartView.js +++ /dev/null @@ -1,72 +0,0 @@ -var CartView = View.extend({ - - el: "#cart", - - events: { - "click .summary_step": "show_summary", - "click .shipping_step": "show_shipping", - "click .payment_step": "show_payment", - }, - - initialize: function(){ - this.summary = new CartSummary ({ parent: this }) - this.payment = new CartPayment ({ parent: this }) - this.shipping = new CartShipping ({ parent: this }) - this.confirm = new CartConfirm ({ parent: this }) - this.thanks = new CartThanks ({ parent: this }) - this.error = new CartError ({ parent: this }) - - this.$steps = this.$(".steps") - this.$full_msg = this.$(".full_msg") - this.$empty_msg = this.$(".empty_msg") - this.$itemcount = this.$(".itemcount") - }, - - load: function(){ - sdk.cart.get_status({ - success: function(data){ - this.summary.data = data - this.summary.updateCounts() - }.bind(this), - error: function(data){ - console.log(data) - auth.clear_cart() - }, - }) - }, - - show: function(){ - if (! navigator.onLine) { - app.closed.showElement() - app.closed.setMessage("PLEASE GO ONLINE TO
VIEW YOUR CART.", "") - return - } - document.body.className = "cart" - this.show_summary() - }, - - show_summary: function(){ - this.summary.show() - }, - - show_shipping: function(){ - this.shipping.show() - }, - - show_payment: function(){ - this.payment.show() - }, - - setHeaderCount: function(n){ - if (n) { - this.$itemcount.html(pluralize(n, "ITEM", "S")) - this.$full_msg.show() - this.$empty_msg.hide() - } - else { - this.$full_msg.hide() - this.$empty_msg.show() - } - }, - -}) \ No newline at end of file diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/etc/backup_db.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/etc/backup_db.js deleted file mode 100755 index dce8835a..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/etc/backup_db.js +++ /dev/null @@ -1,405 +0,0 @@ -var BACKUP_DB = { - "story": [ - { - "id": "philosophy", - "title": "Philosophy", - "image": { - "uri": "http://cdn3.yoox.biz/stoneisland/wp-content/uploads/2013/11/philosophy1.jpg", - "caption": "" - }, - "body": "A culture of research, experimentation, function and use are the matrixes that have always defined Stone Island: the sportswear brand established in 1982, designed to become a symbol of extreme research on fibers and textiles, applied to an innovative design. Season after season, it is through the study of form and the “manipulation” of the matter that Stone Island has found its own language with the aim of establishing new boundaries in the world of garment making. \r\n\r\nThe study of uniforms and of work wear, its evolution according to new requirements of use, has become Stone Island’s observation post for defining a project in which the clothing item’s function is never just aesthetic.\r\n\r\nAn ongoing investigation, thorough and without frontiers, on the processing and ennobling of fibers and textiles, leading to discover materials and production techniques never used before in the clothing industry.\r\n\r\nJackets constructed in nylon monofilament, deriving from the water filtering technology. Highly reflective or thermo-sensitive fabrics, changing color with the variation of temperature. Featherweight polyester cloth vacuum- coated with a 100% stainless steel film used in aviation technology to protect the on-board computers. Non-woven materials, Kevlar® and polyester felt, rhomboidal nets in polyester used in the construction industry and coated in polyurethane. These are some examples of materials conceived by Stone Island philosophy.\r\n\r\nStone Island’s strength is also based on the unique ability to intervene on the finished item, through the continuous tests on dyeing and treatments carried out in the Sportswear Company’s laboratory of color. A department able to combine advanced technology, experience and human capacity and that has developed more than 60,000 different recipes of dyes throughout the years.\r\n\r\nAll the accumulated knowledge and experience, an inalienable heritage, on which great part of Stone Island’s know-how is based, is kept in the historical archive that collects the trial tests, and the recipes for textile dyeing and handling that have been developed by all those people who have worked on this project with passion.", - "__index": "0", - "dateCreated": "Thu, 05 Nov 2015 00:24:44 GMT" - }, - { - "id": "history", - "title": "History", - "image": { - "uri": "https://ltho.s3.amazonaws.com/ce68408c-34b3-40ca-8ddf-c10cd1412c5f.jpg", - "caption": "" - }, - "body": "Stone Island, the Italian brand that reinvented the concept of casual wear, was founded in 1982 out of the passion and brilliant research into textile finishing performed by its creator and art director, intellectual from Bologna, Massimo Osti. It was Osti, in the mid-Seventies, who researched thousands of uniforms and pieces of work clothing and catalogued their functional characteristics. In Ravarino, in the province of Modena, he created a company whose hub was a full-scale center of research into materials and treatments became a sophisticated laboratory for garment and experimental dyeing.\r\n\r\nThe story of Stone Island began, almost by chance, with research into a special material, a thick truck tarpaulin, the outstanding feature of which was that it had been resin-treated in red on one side and blue on the other. The first prototype was too stiff, so it was washed for a long period in water with pumice stones to break down the structure of the material. The result was surprising, a worn-look garment with great appeal. It was therefore decided to create seven jackets in that unique fabric called Tela Stella, and to give this product a name. The strong identity of the project called for an important name, which was identified by analyzing the most commonly occurring words in Joseph Conrad’s novels: the words Stone and Island were chosen.\r\n\r\nStone Island has a marine feel, conjuring up old oilskins corroded by the sea and a military feel, which is drawn from the fund of research completed until that time. The name also evokes a love of the sea and that first treatment selected to “process” the garments. The badge, the detachable fabric label that has distinguished Stone Island garments since the first season, showed a Compass Rose, displayed like a military badge.\r\n\r\nThe reaction is immediate. Stone Island became a success phenomenon, with no set plan or marketing research behind it: a uniquely Italian mix of creativity, intuition and entrepreneurial spirit. A star was born.", - "__index": "1", - "dateCreated": "Thu, 05 Nov 2015 00:27:25 GMT" - }, - { - "id": "carlo-rivetti", - "title": "Carlo Rivetti", - "image": { - "uri": "https://ltho.s3.amazonaws.com/2fe16d85-e85f-4f12-ae55-72622c8efafd.jpg", - "caption": "" - }, - "body": "My family has deep roots within the clothing industry. In the 19th century, Giuseppe Rivetti – son of Giovanni Battista, Italy’s first carding machine operator, inherited his father’s passion and in order to fund his own wool factory he secretly sold cows from the family farms to buy looms. By 1872 he had his own wool factory: “Giuseppe Rivetti e Figli”, which later merged with the Turin based GFT group (Gruppo Finanziario Tessile). There, my uncle Pinot had the unique idea of rubberizing wool fabrics to increase their performance.
This fondness for research also drove my father, Silvio. In the immediate post-war period, he set off for the United States where he found the Palm Beach Incorporated company, who produced something that didn’t yet exist in Europe: clothing constructed on theoretical measurements; what we now know as sizes.
My father was stunned, working for six months as a laborer, before returning and convincing his brothers to give up their shares in the wool factories in order to buy out GFT. \r\n\r\nIn the early 1950’s GFT measured more than 25,000 Italians, which allowed them to effectively dress the whole nation for the first time with non-tailored garments. \r\n\r\nThe 1973 oil crisis brought severe yet swift recession, and something had to be done to recover sales. My cousin, Marco Rivetti, noticed a French couturier working in a women’s outerwear firm we’d acquired one year earlier. He would design and fit the garments, write orders in Paris and then use our company to manufacture them. He was Emanuel Ungaro. This led us to realize that in order to re-launch the sector we needed to add a fundamental ingredient to the clothing industry: fashion.
As a result, GFT became a licensee of the rising stars of Italian fashion, including Giorgio Armani and Valentino. The rise of Italian-made Prêt à Porter was due to the ability to combine entrepreneurial ability with creativity.\r\n\r\nI joined GFT in 1975. Towards the end of that decade, I had the idea to start a new area within the group; to generate something more timeless: sportswear. In the early 1980’s, I discovered C.P. Company, a firm known for being innovative and cutting edge in this field. The company was owned by Trabaldo Togna and Massimo Osti, a graphic artist by profession and the firm’s designer and art director. We bought first 50% in 1983 and later on the entire company.
That was the beginning of my journey. In 1993 I left GFT and, together with my sister Cristina, acquired 100% of the firm which is known today as Sportswear Company.
\r\n\r\nIt was in 1983 that I got to know Massimo Osti, who had brought Stone Island into existence almost by chance, a year earlier. A special fabric named ‘Tela Stella’ had arrived in the company: a cloth that had a different color on each side, used to make truck tarpaulins. The effect was very interesting but had little to do with the existing C.P. Company line. Osti decided to do something special with that fabric and created a collection of just seven jackets. The collection strongly referenced military style with the now iconic badge inspired by military insignia. The compass symbolized love for the sea and an aim for constant research.\r\n\r\nMassimo was at least ten years ahead of others in his field. He saw himself as a producer rather than a fashion designer.
His achievement establishing Stone Island was not only appealing and saleable, but also true to his core belief in informal wear. His ideas were drawn from military and work wear, accompanying them with endless textile research.\r\n\r\nIn the mid-nineties, Massimo our paths eventually came apart, and I found myself with the difficult task of finding someone to design Stone Island.
In 1994 as I wandered through a Munich trade fair I came across the work of designer Paul Harvey, an English designer who lived in Sant’Arcangelo di Romagna, Italy. I was struck by a strange feeling of familiarity and cried out: “so here’s the Stone of the 21st Century!”. From 1996, with Paul, we embarked on the second era of our brand.\r\n\r\nPaul designed 24 collections, each consistent in the evolution and research that has always set Stone Island apart.
He is another extraordinary character. After graduating Central Saint Martins, he decided fashion was not his career path and worked as a truck driver! Only after marrying a fantastic Italian lady and moving to Italy did he start designing clothes.
His approach to design has functionality in its blood, which allowed him to interpret Stone Island perfectly. He led the brand masterfully into the new century. \r\n\r\nAfter 12 marvelous years, Paul needed to leave the fashion world to “do something for the Planet”. With such a noble ambition, I could only accept and support his decision.
In that moment, facing another crucial decision, I came to the conclusion the era of “one man at the helm” was over.
Times had changed. It was necessary to be multicultural in order to be truly contemporary.
I built a design team. I felt that in this era it is this possible to face all aspects of a world only with several minds and several visions: and this has been Stone Island from 2008 to today.
\r\n\r\nI feel like the coach. I choose which men to send onto the pitch, depending upon who we have to play: We need to be more sensitive, faster, and ready to grasp the signs of strength and weakness.
As a result, we need multi-cultural people that travel the world and observe it from different viewpoints: people of different ages and from different cultures.\r\n\r\nThis, in short, is my story. I like to think there’s a common thread that binds us all. A desire for continual experimentation and research, not without a touch of healthy insanity: that special something that makes our Stone Island much more than a just a clothing brand.\r\n\r\nCarlo Rivetti,\r\nPresident and Creative Director, Stone Island", - "__index": "2", - "dateCreated": "Thu, 05 Nov 2015 00:27:38 GMT" - } - ], - "archive": [ - { - "id": "-010-015", - "title": "'010'015", - "images": [ - { - "uri": "https://ltho.s3.amazonaws.com/2bafd7a2-fbbb-4904-8e64-ff394888fd24.png", - "label": "LIQUID REFLECTIVE", - "code": "5315 42944", - "caption": "Fabric that is highly reflective owing to its coating made up\r\nof thousands of glass microspheres. Each finished garment\r\nis hand sprayed individually and individually baked dry.\r\nThe varying intensity of the reflective element and varying\r\nintensity of color, the dribbling and speckled effect, are\r\nowing to the high level of craftsmanship involved in the\r\nprocess, making each garment unique and unrepeatable.\r\nLining in quilted microfiber with polyester padding.\r\nStone Island badge with white embroidery, reserved for\r\ngarments that are made using advanced research into\r\nfabrics or processes." - }, - { - "uri": "https://ltho.s3.amazonaws.com/a0714935-2800-425f-9b34-63fdc4a7fc78.png", - "label": "30/30 JACKET", - "code": "5715 4TTY2", - "caption": "The 30/30 jacket is a cross section of the state of the art of Stone Island. A testament to three decades of exploration and development, it has been designed to embody the spirit of Stone Island’s endless creativity. Linked by the signature looped rigging system, both the jacket shell and jacket liner are reversible. These can be worn, either together or alone, in a total of 10 different ways. The transformative\r\nproperties of the fabrics mean that these 10 ways can each be worn in 3 different modes: Ice, Reflective,\r\nand Normal; resulting in a total of 30 different jacket states.\r\nThis piece features is our 30th anniversary special edition badge.\r\nJACKET /SHELL _ RASO GOMMATO PRISMATIC COVER.\r\nSatin weave cotton of military origin bonded on the inside to a a shiny transparent fine-grained polyurethane film reflecting the light, magnifying the color effects and bestowing the surface with a three-dimensional and ‘liquid’ appearance.\r\nJACKET/ LINER_ THERMO REFLECTIVE / ENGINEERED WOOL\r\nThis material merges two of Stone Island’s most avant-garde research paths. It explores the interaction between light refraction and thermosensitivity technologies. The resins used to coat the nylon substrate host both the glass microspheres allowing fabric refraction and the micro-encapsulated pigments modifying the passage of light and thus enabling color changes in relation to temperature. The final effect is an organic and dynamic interaction of light and color. On the reverse side, an engineered wool face made with a double knit machine." - }, - { - "uri": "https://ltho.s3.amazonaws.com/d51dce63-d467-45ea-88a6-5b077ffe3c3c.png", - "label": "REFLECTIVE KNIT WITH WINDSTOPPER® 3L", - "code": "5715 587Y5", - "caption": "To celebrate the thirtieth anniversary of Stone Island, a yarn has been engineered that represents the\r\nheight of our tireless research. The President’S Knit 5715 has been created in Reflective yarn, made\r\nup of micro plates coated with glass microspheres trapped inside a polyester mesh. The structure of\r\nthe jumper has been made double, reflective on the outside and wool on the inside. The outer face\r\nhas then been printed in a darker shade using heat and pressure sublimation printing to amalgamate\r\nthe fibers, obtain an even surface and reduce the strong reflective appearance.\r\nThe detachable padded and quilted lining has been created in a polyester jersey laminated with a\r\nWindstopper® membrane, which provides an unbeatable balance between protection and comfort.\r\nThis piece features is our 30th anniversary special edition badge." - }, - { - "uri": "https://ltho.s3.amazonaws.com/5883b275-a2eb-4a34-890f-69b30250a62b.png", - "label": "RASO HAND PAINTED TORTOISE SHELL", - "code": "6115 70565", - "caption": "Trench coat in a satin-weave cotton fabric of military origin. The garment has been dyed and then faded in selected areas with a corrosive paste. The bleached parts have then been hand-painted with a tortoiseshell-inspired motif also appearing on the Stone Island badge on the left sleeve. This extraordinary manual process makes each piece unique and unrepeatable. Detachable hood in garment-dyed padded iridescent nylon. Detachable lining in GARMENT-DYED DOWN_26 GR X SQM_N, an ultra-light nylon weighing only 26 grams per square meter, filled with the finest down specially treated to bear the stress of the garment dyeing procedure. Garment-dyed with special dye recipes. It is secured to the outer garment by the iconic Stone Island fastening system." - }, - { - "uri": "https://ltho.s3.amazonaws.com/a25cc013-5c2c-4221-974a-987b8fd00ab4.png", - "label": "HAND PAINTED SHEEPSKIN", - "code": "6115 00379", - "caption": "Sheepskin parka. The finished piece has been hand-sprayed on the outer face with a resin based product and then hand waxed to achieve a softer feel. Hood edged by fur trim. " - }, - { - "uri": "https://ltho.s3.amazonaws.com/fa5ed231-8b04-4ecc-b126-7a5543d5614a.png", - "label": "ICE JACKET THERMO-SENSITIVE FABRIC", - "code": "6115 43098", - "caption": "Hooded jacket in thermo sensitive fabric. A water- and wind-resistant polyurethane film is embedded with micro-encapsulated pigments. The molecules of these pigments modify the path of light and change color according to the temperature. The garment is then padded with the finest down.Two chest patch pockets, with snap-flap fastening and second pocket with vertical zip fastening. Adjustable elastic at cuffs. Cotton terry lined hood. Hidden zip and button fastening." - }, - { - "uri": "https://ltho.s3.amazonaws.com/bfd9defc-a1ef-4322-9e53-9505ec606ed9.png", - "label": "RASO GOMMATO REVERSE COLOR PROCESS", - "code": "6215 42338", - "caption": "Jacket in Raso Gommato -rubberized satin- a mil. spec. cotton satin bonded with a polyurethane cover making the fabric wind and water resistant. In this version, the transparent cover is bonded to a previously piece dyed and printed the cotton satin. The finished garment undergoes an exclusive procedure named Reverse Color Process, a fading technique followed by an overdyeing process on the finished garment, owing to the piece unparalleled shaded print effects, resist print areas and residual color deposits, unique to each single item." - }, - { - "uri": "https://ltho.s3.amazonaws.com/390b68f3-7f9a-41af-a09c-bd15ac7008a3.png", - "label": "POLYPROPYLENE TELA", - "code": "6315 40534", - "caption": "Down filled parka in polypropylene tela treated with an anti-drop agent. Polypropylene, a material with antibacterial properties, is the lightest man-made fibre. Even very bulky garments astonish for their specific lightness. The paste colored yarn is texturized to obtain a cotton looking opaque aspect. " - }, - { - "uri": "https://ltho.s3.amazonaws.com/cc9f8c72-bbac-4d34-9762-4eae85374abf.png", - "label": "HIDDEN REFLECTIVE", - "code": "6315 G0598", - "caption": "Vest in a reflective, water and wind resistant polyester fabric owing its features to a coating made of thousands of glass microspheres. An opaque black plating totally covers the refraction of the material which is unveiled when photographed in flash mode. The reflective features will be revealed through usage, with diverse effects and intensities from piece to piece, depending on its wearer usage. Stone Island logo on the back obtained through laser printing. Filled with the finest down. Sheepskin over collar. " - }, - { - "uri": "https://ltho.s3.amazonaws.com/512029b0-f4a3-469a-9d7d-1cd7fc15c1c8.png", - "label": "POLY COVER COMPOSITE + POLY FUR SILVER DETACHABLE LINING", - "code": "6315 491Y1", - "caption": "Hooded jacket in Poly Cover Composite, a matte, colorless and opaque two-component water and wind resistant film. The garment dyeing technique colors the film without affecting its transparency. Completely heat sealed seams.\r\nDetachable hooded lining in Poly Fur, a synthetic fur with external silver colored coating. Snap fastening on nylon tape." - } - ], - "__index": "4", - "dateCreated": "Thu, 05 Nov 2015 01:48:39 GMT" - }, - { - "id": "-000-009", - "title": "'000'009", - "images": [ - { - "uri": "https://ltho.s3.amazonaws.com/725e1b3f-58ee-49f6-8413-0a7e3dc9890f.png", - "label": "KEVLAR®", - "code": "3315 4031", - "caption": "Kevlar® felt. Five times more robust than steel given the same weight, Kevlar® is lightweight and\r\nhighly insulating. It is resistant to even extreme changes in temperature and to both fresh and salt\r\nwater. Owing to its qualities, it is used in the aerospace field, in competitive sailing and for Formula\r\n1 racing. With its soft yellow color, dyeing this material is usually impossible, but with Stone Island\r\ngarment dyeing expertise, laminating the hydro-cohered Kevlar® fibers to an invisible nylon mesh and\r\na polyurethane coating on the outer side and a simple polyurethane coating on the inside this has been\r\nmade possible.\r\nDetachable lining in triple woven fabric, two nylon honeycomb patterns have been machine raised\r\nwith a further nylon yarn. The detachable lining is attached to the outer garment using a system of ties,\r\nadapted from those used in the sailing world. Stone Island badge with white embroidery, reserved for\r\ngarments that are made using advanced research into fabrics or processes." - }, - { - "uri": "https://ltho.s3.amazonaws.com/c1c9db4f-5aa9-4698-9fe3-04a58a631653.png", - "label": "MONOFILAMENT-S", - "code": "3715 4316", - "caption": "Nylon twill monofilament mesh. On the inside, a cotton muslin\r\nlayer is laminated on the outer face with a black breathable\r\nand water resistant membrane, with the application of\r\nwhite polyester taped seams. The monofilament mesh has\r\na protecting function for the inner membrane. From the\r\naesthetic point of view, its transparency is designed to reveal\r\nthe internal construction of the garment. The piece is lined in\r\na brushed cotton fabric quilted with polyester padding. The\r\nfinished garment is over-dyed with a double cotton and nylon\r\nrecipe." - }, - { - "uri": "https://ltho.s3.amazonaws.com/4f1783c2-1ff7-4054-9d18-faebbd617305.png", - "label": "LIGHT", - "code": "3715 4Q30", - "caption": "Stone Island anticipated the use of light in clothing. Also for safety purposes in cases of\r\ndiminished visibility. The beginning of the Nineties, saw the introduction of the Reflective\r\nJacket - the first reflective garment ever - and in ‘002, to mark its twentieth anniversary,\r\nthe use of light went from being passive to active and self-generated with the use of optical\r\nfibres.\r\nThe fabric’s cotton warp is woven with polyester yarns as well as with optical fibre\r\nfilaments forming a band of light along the front fastening and around the edge of the hood.\r\nThe light is switched on using a small battery hidden inside the garment.\r\nHooded detachable lining in microfiber quilted to a polyester padding, attached to the\r\nouter garment using a system of ties, adapted from those used in the sailing world." - }, - { - "uri": "https://ltho.s3.amazonaws.com/c62f3de3-a639-4818-988c-3aba9db057e5.png", - "label": "COMPACT", - "code": "3915 4N40", - "caption": "Compact treated linen felt. The Compact process is the transfer to finished garments of a textile process that is usually used to cleanse the natural fibers of their impurities. The garments are boiled at 130°C under pressure, with special additives. In the finished garments the material shrinks approximately 50%, the material becomes extraordinarily compact, the hand of the fabrics becomes dryer and naturally elastic. The fabrics take on an uneven, hand crafted appearance, as if they had been woven on antique looms. The fabric volume reduction involved with the Compact treatment creates very important pattern making complexities. The garment can be fitted to the body with a strings and loops system on the sides, front and hood. This system is inspired by anti-G suits of military aviators. Garment dyed; Compact pieces are very receptive to the garment dyeing recipes, the colors result far more intense than those of untreated garments.\r\nDetachable lining in peached microfiber, quilted with polyester padding. The detachable lining is attached to the outer garment using a system of ties, adapted from those used in the sailing world." - }, - { - "uri": "https://ltho.s3.amazonaws.com/ba287902-7b92-4128-867f-69d6b1e40cc0.png", - "label": "OPAQUE NYLON TELA", - "code": "4315 4C24 30GR", - "caption": "Japanese featherweight nylon canvas, weighing just 30 grams per square\r\nmeter. The Stone Island badge is ultra light, in embroidered nylon mesh in\r\norder to avoid weighing down the sleeve. The garment is padded with the\r\nfinest down. The lightweight construction of the down bags and the direct\r\ninjection of feathers heightens the lightness of the garments." - }, - { - "uri": "https://ltho.s3.amazonaws.com/320c3a59-c8ae-4dec-b863-15b15ccc368a.png", - "label": "OPAQUE NYLON CANVAS", - "code": "4515 4H24", - "caption": "Japanese featherweight nylon canvas, weighing just 37 grams\r\nper square meter. The Stone Island badge is ultra light, in\r\nembroidered nylon mesh in order to avoid weighing down the\r\nsleeve. The garment is padded with direct injection finest down.\r\nApart from highlighting the lightness of the fabric, the black\r\nedging under the fabric underscores the removal of the feather\r\nbags to increase the lightness of the garment. The yoke on the\r\nchest is disguised by the horizontal quilting motive. Inside the\r\nhood of the garment, an extra fabric hood with external coating\r\nand PVC print may be laced up by loops." - }, - { - "uri": "https://ltho.s3.amazonaws.com/35f9ec2a-fc52-42e5-b015-899e40ae9e89.png", - "label": "DAVID-TC SUBLIMATION PRINT", - "code": "4615 4C44", - "caption": "Reversible garment. Star-shaped cross-section polyester / polyamide\r\nJapanese microfiber. During garment dyeing under pressure at 130°C,\r\nthe heat transforms the structure and hand of the material radically.\r\nBeyond the depth of color and despite maintaining an industrial\r\nappearance, the David-TC garments take on an appearance and\r\nhand that grant a unique tactile experience, similar to both chamois\r\nleather and non-woven coagulated fabric. One of the two faces has\r\nbeen over printed on the finished garment with a dark color, using\r\na hot sublimation / pressure printing technique that reveals the\r\nconstruction details of both sides of the garment." - }, - { - "uri": "https://ltho.s3.amazonaws.com/03785345-d63c-4c18-addf-fb7461949cec.png", - "label": "ANTIQUED REFLECTIVE", - "code": "4715 7423", - "caption": "Cotton Batavia with a coating made up of thousands of glass microspheres. Antiqued Reflective fabric\r\nhas a strong capacity to reflect even the weakest light sources and is enhanced by a color patina that is\r\nparticularly evident in the folds of the garment, granting to the piece a three-dimensional appearance.\r\nThe shape and details of the garment have been deliberately designed with a retro style in order to\r\ncreate a contrast with the modernity of the reflective face. The hood is lined in a khaki colored wool\r\nwith parallel stripes, reminiscent of military blankets.\r\nDetachable lining in microfiber quilted to a thin polyester padding. The lining is attached to the outer\r\ngarment using a system of ties, adapted from those used in the sailing world.\r\nStone Island badge with white embroidery, reserved for garments that are made using advanced\r\nresearch into fabrics or processes." - }, - { - "uri": "https://ltho.s3.amazonaws.com/b7b6db65-3688-4472-839d-38852b074790.png", - "label": "RASO GOMMATO - HAND PAINTED CAMOUFLAGE", - "code": "4915 4C43", - "caption": "Drawing inspiration from the actions of soldiers during the First World War, who\r\nused earth from the trenches to make their uniforms dirty, thus inventing the\r\nconcept of camouflage, the fabric base in black satin weave cotton of military\r\norigin bonded to a black polyurethane cover on the inner face, has been faded\r\nwith a corrosive paste and then hand painted on the finished garment to create\r\na camouflage effect. By means of this manual process, each garment is rendered\r\nunique and unrepeatable.\r\nThe detachable quilted nylon lining with polyester padding, with front edging\r\nand collar in felted wool, is attached to the outer garment using a system of ties,\r\nadapted from those used in the sailing world." - }, - { - "uri": "https://ltho.s3.amazonaws.com/9a25ed8c-2293-4d6e-b63a-c17580113d63.png", - "label": "WAXED ICE - THERMO SENSITIVE FABRIC", - "code": "5115 7498", - "caption": "Cotton moleskin with a resin treatment containing thermo sensitive\r\nquartz. The color of the garment ranges from bright yellow at\r\nroom temperature to a deeper and deeper shade of olive green as\r\nthe temperature drops. The garment is washed and then waxed.\r\nThe detachable black woolen lining with Stone Island logo in the\r\ncentre is attached to the outer garment using a system of ties,\r\nadapted from those used in the sailing world.\r\nStone Island badge with white embroidery, reserved for garments\r\nthat are made using advanced research into fabrics or processes." - } - ], - "__index": "3", - "dateCreated": "Thu, 05 Nov 2015 01:49:03 GMT" - }, - { - "id": "-990-999", - "title": "'990'999", - "images": [ - { - "uri": "https://ltho.s3.amazonaws.com/f58db57f-a469-4c7b-b248-6cab5a927c8a.png", - "label": "RASO GOMMATO COLORED COVER", - "code": "05 4001", - "caption": "Satin weave cotton of military origin bonded to a\r\nmustard yellow polyurethane cover on the outside\r\nand white on the hood. The inner fabric face takes its\r\ncoloring from garment dyeing. Double parallel row\r\nof snap fasteners mounted on small rubber disks\r\nallow the garment to be tightened or loosened to fit." - }, - { - "uri": "https://ltho.s3.amazonaws.com/56189889-630b-4293-95e9-2c747d1209fe.png", - "label": "ICE JACKET CAMOUFLAGE THERMO-SENSITIVE FABRIC", - "code": "05 4N06", - "caption": "Cotton poplin with a camouflage print in a thermo-sensitive\r\ncoating with liquid crystals that change color based on\r\nthe temperature. Over dyed on the finished garment. As the\r\ntemperature drops, the fabric print gradually disappears\r\nas it takes on the same shade as the solid color of the\r\ngarment dye." - }, - { - "uri": "https://ltho.s3.amazonaws.com/d46fc981-d51c-4001-a72a-7d5bc3bedc15.png", - "label": "RUBBERISED SATIN SILVER COVER", - "code": "35 4405", - "caption": "Satin weave cotton of military origin bonded to a silver\r\npolyurethane cover on the outside. Padded with goose down.\r\nDouble parallel row of snap fasteners mounted on small rubber\r\ndisks allow the garment to be tightened or loosened to fit.\r\nLining in colored peached polyester microfiber. Hood in the\r\nRaso Gommato Silver Cover garment dyed, with detachable wolf\r\nfur edging." - }, - { - "uri": "https://ltho.s3.amazonaws.com/65a6a008-a634-4155-8dba-0e2f22e1dc74.png", - "label": "REFLECTIVE JACKET", - "code": "1815 4N02", - "caption": "Owing to a coating made up of thousands of glass\r\nmicrospheres on a polyester base, the Reflective\r\nfabric has a strong capacity to reflect even the\r\nweakest light sources. It reflects and intensifies\r\nthe brightness of the color of the fabric itself,\r\nparticularly if placed in the dark. If it is photographed\r\nusing a flash, it detracts light from the other\r\ncomponents in the shot, which show up as black.\r\nPocket linings in cotton mesh." - }, - { - "uri": "https://ltho.s3.amazonaws.com/7011fe4a-22de-4bf0-bd4d-4440c49d8409.png", - "label": "WQR WATER RESISTANT QUILTING", - "code": "2515 6L51", - "caption": "Nylon jersey quilted with polyester padding,\r\nwith a special external coating used to close\r\nall the needle holes produced in the quilting\r\nprocess, rendering the garment totally\r\nwaterproof. The garment takes its final\r\ncoloring from garment dyeing." - }, - { - "uri": "https://ltho.s3.amazonaws.com/ca0447d1-3bd3-4702-a7d5-f1da98764ffb.png", - "label": "LINO GOMMATO REVERSE COLOR PROCESS", - "code": "2815 4P49", - "caption": "Black linen canvas bonded to a transparent polyurethane\r\ncover on the outside. By means of an exclusive process\r\ncarried out on the finished garment, the original color of\r\nthe fabric is corroded, with the exclusion of the Stone Island\r\nlettering, of the two parallel stripes and of the name of the\r\nprocess on the left sleeve. The collar, placket, pocket flaps,\r\ncuffs and bottom hem are less faded owing to the double\r\nlayer of fabric and the seams. Light garment over dye." - }, - { - "uri": "https://ltho.s3.amazonaws.com/23b746d9-311b-4f9f-b356-d1f49046bda9.png", - "label": "THE PRESIDENT’S KNIT", - "code": "2915 5784", - "caption": "The President’s Knit is the name of a knitted garment introduced in the autumn winter ‘998-’999\r\nseason and then retaken with different processes in the years that followed. It is an innovative knitted\r\ngarment that takes on the functions of a jacket owing to its detachable lining.\r\nThe first of these garments was created in a double face knit, nylon chenille on the outside, cotton on\r\nthe inside. Three black nylon parallel stripes on the cuff. Ends of the sleeves and bottom hem as well\r\nin black nylon. The garment takes its final coloring from garment dyeing.\r\nDetachable lightweight nylon fabric lining with water resistant polyurethane resin finish, quilted\r\nwith polyester padding. The detachable lining is attached to the outer garment using a system of ties,\r\nadapted from those used in the sailing world." - }, - { - "uri": "https://ltho.s3.amazonaws.com/ebaf6ae8-f465-4a8d-b6d0-ff45a93f0350.png", - "label": "LAMINATE - NOC 1", - "code": "3015 4C41", - "caption": "Two ultra light cotton gauzes laminated by means of a\r\nmatte colored resin. This slightly stretch fabric provides\r\ntechnical features owing to its light lamination. This fabric\r\nhas a natural appearance but high-tech performance and\r\nis waterproof, windproof and breathable. Fully thermotaped\r\nseams on the inside.\r\nInjection moulded PVC NOC 1 hood. The shape of the\r\nhood is taken by the shape of gas masks. A research by\r\nStone Island into the making of non-fabric components." - }, - { - "uri": "https://ltho.s3.amazonaws.com/a39caa9e-4dbe-4c31-8bda-41ebc2a508b4.png", - "label": "PURE METAL SHELL – BRONZE", - "code": "3115 4T43", - "caption": "100% bronze mesh applied to a black nylon jersey base. The polyurethane adhesive\r\nprovides a light protection for the mesh. A Teflon® treatment makes the garment water\r\nresistant. The metal mesh is a living material with the features of metallic materials when\r\nused untreated, and therefore they are subject to oxidation over time, losing its shine.\r\nThe worn look, creases and breaks that form on the surface are features that make each\r\ngarment different from the next.\r\nDetachable woolen lining with raw cut edging, attached to the outer garment using a\r\nsystem of ties adapted from those used in the sailing world.\r\nThe Autumn Winter ´999-´000 collection saw the introduction of the Stone Island badge\r\nwith white embroidery, dedicated to garments created using advanced research into\r\nfabrics or processes." - }, - { - "uri": "https://ltho.s3.amazonaws.com/f221b596-7cc0-493c-9cea-6755f64d1641.png", - "label": "PURE METAL SHELL - SILVER SPRAY", - "code": "3115 4U39", - "caption": "Ultra light polyester fabric with the application, through\r\na patented procedure, of a micro stainless steel film in a\r\nvacuum and sterile environment. This Japanese fabric,\r\nused in airplanes to shield the on-board computers from\r\nelectromagnetic radiation. Cotton canvas lining. The garment is\r\npadded with goose down.\r\nThe Autumn Winter ´999-´000 collection saw the introduction\r\nof the Stone Island badge with white embroidery for pieces\r\ninvolving advanced research." - } - ], - "__index": "2", - "dateCreated": "Thu, 05 Nov 2015 01:49:20 GMT" - }, - { - "id": "-982-989", - "title": "'982'989", - "__index": "1", - "dateCreated": "Wed, 02 Dec 2015 05:15:20 GMT", - "images": [ - { - "uri": "https://ltho.s3.amazonaws.com/e486c7c7-798e-4bf7-9e67-973f2cb02368.png", - "label": "TELA STELLA", - "code": "45 4NN", - "caption": "Stone Island was founded on this fabric. Tela Stella was born out of the study\r\nof the technical and functional characteristics of military truck tarpaulins. It\r\nis a cotton canvas impregnated on both sides with special pigmented resins\r\nin contrasting colors. The finished garment then undergoes an extended\r\nenzyme wash in order to give it a faded look and to break down the density of\r\nthe material. The result is a windproof garment that has an air of old oilskins\r\ncorroded by the sea, which, at the same time, has a marked military feel." - }, - { - "uri": "https://ltho.s3.amazonaws.com/757164f9-0699-482a-9187-e7d097f84319.png", - "label": "TELA STELA DUAL COATED", - "code": "65 404", - "caption": "Cotton canvas impregnated on both sides with special pigmented resins in contrasting colors.\r\nWhite outside, sand colored inside. Garment dyed midnight blue; a mélange effect is obtained with\r\ndifferent textured depths of color on the outside and inside of the garment. Appliqués in reflective\r\nfabric and stretch cotton tape on the pockets. Metal buckles on the bottom hem. Long cotton strap\r\nsewn under the collar label and attached to one of the buckles by means of a snap hook to allow the\r\ngarment to be worn over the shoulders." - }, - { - "uri": "https://ltho.s3.amazonaws.com/eb9cadb6-9712-41cf-9984-086518c7c391.png", - "label": "TELA STELLA DUAL COATED", - "code": "65 410", - "caption": "Cotton canvas impregnated on both sides with special pigmented resins in\r\ncontrasting colors. White outside, sand colored inside. Neither washed,\r\nnor garment dyed, it maintains the body and intensity of the coating.\r\nAppliqués in reflective fabric and stretch cotton tape. Adjustable straps at\r\nthe sides." - }, - { - "uri": "https://ltho.s3.amazonaws.com/8237f317-5272-4760-a6ab-b56c475b50d3.png", - "label": "JOCK-23", - "code": "75 436", - "caption": "Cotton canvas with thick matte PVC coating. Appliqués in the same fabric\r\nwith contrasting color coating. On the back, appliqué in mélange felted wool\r\npolyester on the collar. On the inside the neckline and shoulders are lined\r\nin cotton jersey. Rubber buttons created from a mould. Detachable lining in\r\ngarment dyed cotton fleece, attached with snap fasteners." - }, - { - "uri": "https://ltho.s3.amazonaws.com/c790cbf7-0a92-449e-8557-f6174946ab68.png", - "label": "JOCK-23", - "code": "75 460", - "caption": "Cotton canvas with thick matte PVC coating. Hood and buckled inserts at the cuff, with\r\ncontrasting color coating. Appliqué in latex right around the edge. Metal eyelets.\r\nRubber buttons created from a mould." - }, - { - "uri": "https://ltho.s3.amazonaws.com/1062f397-c1d7-4012-ae8d-9ddf13363743.png", - "label": "JOCK-23", - "code": "75 409", - "caption": "Cotton canvas with thick matte PVC coating. Inner flap in a contrasting\r\ncolor. Collar in felted wool polyester, lined with latex. Latex band at cuffs.\r\nRubber buttons created from a mould. Detachable lining in garment dyed\r\ncotton fleece, attached with snap fasteners." - }, - { - "uri": "https://ltho.s3.amazonaws.com/5f315b73-1572-460c-abfe-cda498886abe.png", - "label": "RASO GOMMATO BLACK COVER", - "code": "35 4NN", - "caption": "Satin weave cotton of military origin bonded to a black\r\npolyurethane cover on the inside. The garment takes its\r\nfinal coloring from garment dyeing. Detachable hood in Silk\r\nLight, an ultra light, slightly resin treated shiny trilobate nylon\r\nfabric, quilted with polyester padding.\r\nDetachable lining in Silk Light, quilted with polyester padding.\r\nThe detachable lining is attached to the outer garment using\r\na system of ties, adapted from those used in the sailing world.\r\nThe hood and detachable lining are also garment dyed." - }, - { - "uri": "https://ltho.s3.amazonaws.com/cd370f63-4fab-41e1-bbb6-d9e4955d068e.png", - "label": "GLAZED SILK LIGHT", - "code": "55 4910", - "caption": "Fine shiny trilobate nylon with thick, glazed effect\r\nPVC coating, creating a translucent, semi-transparent\r\nappearance. Hood part lined in a layer of PVC and with a\r\nstrip of honeycomb pattern non-woven fabric in microfibre.\r\nPVC windproof cuffs inside the sleeves. Lining made with\r\na layer of heat-sealed PVC, with interlining in polyester\r\nmesh quilted with polyester padding. The piece takes its\r\nfinal color from a double cotton and nylon garment dyeing\r\nrecipe, to obtain different shades on the finished garment." - }, - { - "uri": "https://ltho.s3.amazonaws.com/417e64df-f318-4500-977b-2eaed1668bc4.png", - "label": "RASO GOMMATO BLACK COVER", - "code": "65 4A10", - "caption": "Satin weave cotton of military origin bonded to a\r\nblack polyurethane cover on the inside. Removable\r\neye mask in the hood, which folds away in the\r\ncollar. The garment takes its final coloring from\r\ngarment dyeing." - }, - { - "uri": "https://ltho.s3.amazonaws.com/93d8d8fa-ad6e-4fe5-9182-c9e45c7e4ff5.png", - "label": "NYLON RIP-STOP COVER", - "code": "75 4503", - "caption": "Khaki iridescent nylon with rip-stop twill, laminated on the\r\noutside with a transparent amber polyurethane film. The\r\ndepth of color is obtained by adding together the color of\r\nthe textile base and that of the coating. Lined in iridescent\r\nnylon rip-stop quilted with polyester padding." - } - ] - } - ], - "hub": [ - { - "id": "loading", - "date": "Tue, 12 Jan 2016 12:00:00 GMT", - "title": "STONE ISLAND", - "subtitle": "", - "body": "The unrelenting research by Stone Island results in a collection full of textiles evolutions, finishing and dyeing, featuring pop colors and extraordinary visual effects.", - "link": "", - "store": "true", - "image": [ - { - "uri": "https://ltho.s3.amazonaws.com/1ee6abef-0677-41a6-91eb-029303995073.png", - "caption": "" - }, - ], - "__index": 1, - "dateCreated": "Tue, 12 Jan 2016 15:55:24 GMT" - } - ], - "page": [ - { - "id": "terms-and-conditions", - "title": "Terms and Conditions", - "image": { - "uri": "", - "caption": "" - }, - "body": "
TERMS AND CONDITIONS OF USE
\r\nWelcome to www.stoneisland.com. These terms and conditions (the “General Terms and Conditions of Use”) govern your use of, access to, and purchase of products from the United States section of www.stoneisland.com (the \"US Site\"). By using the US Site, you agree to comply with and be bound by these General Terms and Conditions of Use. If you do not agree to these General Terms and Conditions of Use, please do not use the US Site.\r\n\r\n1. GENERAL\r\nwww.stoneisland.com is the property of SPORTSWEAR COMPANY, a company having an address at Galleria Cavour 4, 40124 Bologna, Italy (\"STONE ISLAND and STONE ISLAND DENIMS\") and is operated under license by YOOX Corporation, a Delaware corporation having an address at 148 Lafayette Street, 10th Floor, New York, NY, 10013, United States of America (the \"Provider\"). \r\n\r\n2. OTHER SITE POLICIES\r\nPlease review our General Terms and Conditions of Sale, Return Policy and Privacy Policy (collectively, the “Site Policies\"). All Site Policies are incorporated in these General Terms and Conditions of Use by this reference and, therefore, apply to your access to, use of and purchase of products from the US Site. If you do not agree to our Site Policies, please do not use the US Site. We reserve the right to make changes to the US Site, the Site Policies, and these General Terms and Conditions of Use at any time. If any of these conditions shall be deemed invalid, void, or for any reason unenforceable, that condition shall be deemed severable and shall not affect the validity and enforceability of any remaining condition. \r\n\r\n3. PURCHASE FOR PERSONAL USE ONLY\r\nYou may purchase products on the US Site only for personal use and not for resale. By placing your order, you certify that you are purchasing products for personal use only and not for resale and you accept our General Terms and Conditions of Sale. WE RESERVE THE RIGHT TO REFUSE ORDERS FOR ANY REASON WITHOUT EXPLANATION. \r\n\r\n4. USER'S SUBMISSIONS\r\nWe welcome your comments and feedback regarding the US Site, our products and our services. We do not, however, accept confidential or proprietary information. Accordingly, all comments, feedback, reviews, ideas, suggestions, materials, images, information and other submissions (collectively, the “Submissions”) disclosed, submitted or offered to the Provider via the US Site, or otherwise, are not confidential. You represent and warrant that any Submissions that you submit to the Provider are made in compliance with applicable laws, do not violate any right of any third party, including privacy and intellectual property rights. By disclosing, submitting or offering any Submissions to the Provider, you grant the Provider and STONE ISLAND and STONE ISLAND DENIMS a nonexclusive, royalty-free, perpetual, irrevocable, and fully sublicensable right to use, reproduce, modify, adapt, publish, translate, create derivative work from, distribute, display such Material throughout the world in any media. You are and shall remain solely responsible for any Submissions you disclose, submit or offer to the Provider or STONE ISLAND and STONE ISLAND DENIMS. \r\n\r\n5. PRIVACY\r\nWe recommend that you read our Privacy Policy, which explains our online privacy practices. \r\n\r\n6. COPYRIGHT\r\nAll content included on www.stoneisland.com US Site, such as works, images, pictures, dialogues, music, sounds, videos, documents, drawings, figures, logos, menus, web pages, graphics, colors, schemes, tools, fonts, designs, diagrams, layouts, methods, processes, functions and software (collectively, the \"Content\"), is the property of STONE ISLAND and STONE ISLAND DENIMS or its content suppliers and is protected by national and international copyright and other intellectual property laws. You may not reproduce, publish, distribute, display, modify, create derivative work from, or exploit in any way, in whole or in part, the Content without the prior express written consent of STONE ISLAND and STONE ISLAND DENIMS, or its content suppliers, as the case may be. STONE ISLAND and STONE ISLAND DENIMS and its content suppliers shall have the exclusive right to authorize or prohibit in their sole discretion any reproduction, publication, distribution, display, modification, creation of derivative work from, or exploitation in any way of, in whole or in part, the Content. STONE ISLAND and STONE ISLAND DENIMS and its content suppliers shall have the right, at any time, to claim the authorship of any Content posted on the US Site and to object to any use, distortion or other modification of such Content. Any reproduction, publication, distribution, display, modification, creation of derivative work from, or exploitation in any way of, the Content expressly authorized in writing by STONE ISLAND and STONE ISLAND DENIMS or its content suppliers shall be carried out by you for lawful purposes only and in compliance with all applicable laws. \r\n\r\n7. LICENSE AND SITE ACCESS\r\nThe viewing, printing or downloading of any Content from the US Site grants you only a limited, nonexclusive and nontransferable license for use solely by you for your own personal use and not for republication, distribution, assignment, sublicense, sale, preparation of derivative works or other use. No part of any Content may be reproduced in any form or incorporated into any information system, electronic or mechanical, other than for your personal use (but not for resale or redistribution). Any unauthorized use of the US Site and the Content immediately terminates the license granted by the Provider. \r\nYou will be solely responsible for all damages and other harm resulting from your use of the US Site and the Content. STONE ISLAND and STONE ISLAND DENIMS and the Provider shall not be deemed liable for any use of the US Site and the Content made by you in violation of any applicable laws and regulations and these General Terms and Conditions of Use. \r\n\r\n8. COPYRIGHT COMPLAINTS\r\nWe respect the intellectual property of others. If you believe that your work has been copied in a way that constitutes copyright infringement, please contact a STONE ISLAND and STONE ISLAND DENIMS copyright representative for further information at privacy@mail.stoneisland.com. \r\n\r\n9. LINKS TO OTHER WEB SITES\r\nThe US Site may provide hyperlinks to third party websites (“Third Party Websites\"). The Provider and STONE ISLAND and STONE ISLAND DENIMS do not operate, control, endorse or guarantee any Third Party Websites. You agree that the Provider and STONE ISLAND and STONE ISLAND DENIMS are not responsible for any content, services and/or products provided by any Third Party Website, nor are the Provider and STONE ISLAND and STONE ISLAND DENIMS responsible for any practice followed by such Third Party Website with respect to the collection and processing of personal data of their users. When you access any Third Party Website through a hyperlink posted on the US Site, please carefully read the terms and conditions of use, privacy policy and other policies of such Third Party Website. Our policies do not apply to any Third Party Website. \r\nYou The Provider provides hyperlinks to Third Party Websites only for the convenience of its users. By providing hyperlinks to Third Party Websites, the Provider does not recommend that its users access such Third Party Websites. \r\n\r\nYOU AGREE THAT YOUR USE OF ANY THIRD PARTY WEBSITE IS AT YOUR SOLE RISK AND WITHOUT WARRANTIES OF ANY KIND BY THE PROVIDER, EXPRESSED, IMPLIED OR OTHERWISE, INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY OR NONINFRINGEMENT. UNDER NO CIRCUMSTANCES ARE THE PROVIDER AND/OR STONE ISLAND and STONE ISLAND DENIMS LIABLE FOR DAMAGES ARISING FROM ANY TRANSACTION BETWEEN YOU AND ANY THIRD PARTY WEBSITE OR FOR ANY INFORMATION APPEARING ON THIRD PARTY WEBSITES. \r\n\r\n10. GOVERNING LAW AND CHOICE OF FORUM\r\nThe laws of the State of New York (without giving effect to its conflicts of law principles) govern all matters arising out of or relating to these General Terms and Conditions of Sale, including, without limitation, their validity, interpretation, construction, performance, and enforcement. All legal proceedings arising out of or in connection with these General Terms and Conditions of Sale shall be brought solely in the City of New York, State of New York. \r\n\r\n11. DISCLAIMER OF WARRANTIES AND LIMITATION OF LIABILITY\r\nTHE US SITE AND ALL INFORMATION, CONTENT, MATERIALS, PRODUCTS (INCLUDING SOFTWARE) AND SERVICES INCLUDED ON OR OTHERWISE MADE AVAILABLE TO YOU THROUGH THIS SITE ARE PROVIDED BY THE PROVIDER ON AN \"AS IS\" AND \"AS AVAILABLE\" BASIS, UNLESS OTHERWISE SPECIFIED IN WRITING. THE PROVIDER MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED, AS TO THE OPERATION OF THIS SITE OR THE INFORMATION, CONTENT, MATERIALS, PRODUCTS (INCLUDING SOFTWARE) OR SERVICES INCLUDED ON OR OTHERWISE MADE AVAILABLE TO YOU THROUGH THIS SITE, UNLESS OTHERWISE SPECIFIED IN WRITING. YOU EXPRESSLY AGREE THAT YOUR USE OF THIS SITE IS AT YOUR SOLE RISK. \r\n\r\nTO THE FULL EXTENT PERMISSIBLE BY APPLICABLE LAW, THE PROVIDER DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE PROVIDER DOES NOT WARRANT THAT THIS SITE; INFORMATION, CONTENT, MATERIALS, PRODUCTS (INCLUDING SOFTWARE) OR SERVICES INCLUDED ON OR OTHERWISE MADE AVAILABLE TO YOU THROUGH THIS SITE; THEIR SERVERS; OR E-MAIL SENT FROM THE PROVIDER ARE FREE OF VIRUSES OR OTHER HARMFUL COMPONENTS. THE PROVIDER WILL NOT BE LIABLE FOR ANY DAMAGES OF ANY KIND ARISING FROM THE USE OF THIS SITE OR FROM ANY INFORMATION, CONTENT, MATERIALS, PRODUCTS (INCLUDING SOFTWARE) OR SERVICES INCLUDED ON OR OTHERWISE MADE AVAILABLE TO YOU THROUGH THIS SITE, INCLUDING, BUT NOT LIMITED TO DIRECT, INDIRECT, INCIDENTAL, PUNITIVE, AND CONSEQUENTIAL DAMAGES, UNLESS OTHERWISE SPECIFIED IN WRITING. \r\n\r\nCERTAIN STATE LAWS DO NOT ALLOW LIMITATIONS ON IMPLIED WARRANTIES OR THE EXCLUSION OR LIMITATION OF CERTAIN DAMAGES. IF THESE LAWS APPLY TO YOU, SOME OR ALL OF THE ABOVE DISCLAIMERS, EXCLUSIONS, OR LIMITATIONS MAY NOT APPLY TO YOU, AND YOU MIGHT HAVE ADDITIONAL RIGHTS.\r\n\r\n
TERMS AND CONDITIONS OF SALE
\r\nThe following General Terms and Conditions of Sale govern the sale of merchandise by YOOX Corporation, an affiliate of YOOX NET-A-PORTER GROUP S.p.A. (the \"Provider\" or \"we\") to you through the US section of www.stoneisland.com (\"US Site\"). The US Site is available only for purchases made and delivered within the United States. Your use of the US Site to purchase merchandise indicates your agreement to follow and to be bound by these General Terms and Conditions of Sale.\r\n\r\n1. ORDERS & PRODUCTS\r\nAll orders are subject to e-mail confirmation by us. Please note that the products displayed on the US Site may be out-of-stock or discontinued, and availability is not guaranteed. Please note that while we have tried to accurately display the colors of products, the actual colors you see will depend on your monitor and may not be accurate. \r\n\r\n2. PRICES\r\nAll prices are in US Dollars. Prices may change without notice from time to time. The total amount due is inclusive of sales tax applied in accordance with applicable state and local regulations based on your shipping address. The applicable sales tax amount is indicated on the payment page of the cart.\r\n\r\nThe amount of sales tax charged on your order will depend upon various factors, including type of item purchased, sales price and destination of the shipment. Sales tax regulations may change between the time you place an order and the time of credit card charge authorization and this may affect the calculation of sales taxes. The amount appearing on your payment page of the cart may differ from the sales taxes ultimately charged as indicated in the invoice you will receive with the shipping confirmation e-mail.\r\n\r\nAll prices are inclusive of customs and import duties.\r\n\r\n3. SHIPPING COSTS\r\nYou are responsible for the shipping costs associated with the delivery of the products you purchase on the US Site as specified on your order confirmation. \r\n\r\n4. SHIPMENTS AND DELIVERY\r\nYou bear all risks of loss and damage to the products from the time the same have cleared our fulfillment house. Delivery is deemed complete and title to the products passes to you upon acceptance of shipment by a common carrier.\r\n\r\n5. RETURNS AND REFUNDS\r\nPlease refer to our Return and Refund Policy, which forms an integral part of these General Terms and Conditions of Sale. \r\n\r\n6. BINDING AGREEMENT\r\nOur order confirmation, these General Terms and Conditions of Sale and our other Site Policies shall be deemed the final and integrated agreement between you and us on the matters contained in these General Terms and Conditions of Sale. \r\n\r\n7. GOVERNING LAW AND CHOICE OF FORUM\r\nThe laws of the State of New York (without giving effect to its conflicts of law principles) govern all matters arising out of or relating to these General Terms and Conditions of Sale, including, without limitation, their validity, interpretation, construction, performance, and enforcement. All legal proceedings arising out of or in connection with these General Terms and Conditions of Sale shall be brought solely in the City of New York, State of New York. \r\n\r\n8. DISCLAIMERS AND LIMITATIONS OF LIABILITY\r\nTHE PROVIDER MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED, AS TO THE PRODUCTS INCLUDED IN THE www.stoneisland.com US SITE NOR AS TO THE MERCHANDISE BEING SOLD TO YOU. TO THE FULLEST EXTENT PERMISSIBLE BY APPLICABLE LAW, THE PROVIDER DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT, AND THERE ARE NO WARRANTIES, EXPRESS OR IMPLIED, WHICH EXTEND BEYOND THE DESCRIPTION OF THE MERCHANDISE CONTAINED ON OUR ORDER CONFIRMATION. THE PROVIDER WILL NOT BE LIABLE FOR ANY DAMAGES OF ANY KIND ARISING FROM THE USE OF THE US SITE, INCLUDING BUT NOT LIMITED TO DIRECT, INDIRECT, INCIDENTAL, PUNITIVE AND CONSEQUENTIAL DAMAGES \r\nCERTAIN STATE LAWS DO NOT ALLOW LIMITATIONS ON IMPLIED WARRANTIES OR THE EXCLUSION OR LIMITATION OF CERTAIN DAMAGES. IF THESE LAWS APPLY TO YOU, SOME OR ALL OF THE ABOVE DISCLAIMERS, EXCLUSIONS, OR LIMITATIONS MAY NOT APPLY TO YOU, AND YOU MIGHT HAVE ADDITIONAL RIGHTS.\r\n\r\n9. SEVERABILITY\r\nIf any provision of these General Terms and Conditions of Sale is determined to be invalid, illegal or unenforceable, the remaining provisions of these General Terms and Conditions of Sale remain in full force to the extent permitted by law.\r\n\r\n10. PRIVACY\r\nThe terms and conditions of the our Privacy Policy govern the processing of all personal data collected from you in connection with your purchase of products through the US Site.\r\n\r\n11. FORCE MAJEURE\r\nProvider shall not be liable for any delay or failure in performance caused by circumstances beyond its reasonable control.\r\n\r\n12. ERRORS AND INACCURACIES\r\nOur goal is to provide complete, accurate, and up-to-date information on our website. Unfortunately, it is not possible to ensure that any website is completely free of human or technological errors. This website may contain typographical mistakes, inaccuracies, or omissions, some of which may relate to pricing and availability, and product information. We reserve the right to correct any errors, inaccuracies or omissions, including after an order has been submitted, and to change or update information at any time without prior notice.\r\n", - "__index": "1", - "dateCreated": "Tue, 17 Nov 2015 20:31:52 GMT", - "tag": "terms" - }, - { - "id": "privacy-policy", - "title": "Privacy Policy", - "image": { - "uri": "", - "caption": "" - }, - "body": "Welcome to www.stoneisland.com. Please read our Privacy Policy carefully. This Privacy Policy applies when you visit and surf the United States section of www.stoneisland.com (the \"www.stoneisland.com US Site\") regardless of whether you purchase products or not, when you register with the www.stoneisland.com US Site, and when you use our services. By using the www.stoneisland.com US Site, you accept the practices described in this Privacy Policy. If you do not want to accept the practices described in this Privacy Policy, please do not use the www.stoneisland.com US Site. \r\nThe www.stoneisland.com US Site is operated under license by , a Delaware corporation having an address at 148 Lafayette Street, 10th Floor, New York, NY, 10013, United States of America (\"YOOX USA\"). YOOX USA is a subsidiary of YOOX NET-A-PORTER GROUP S.p.A., an Italian company having its registered address at via Morimondo, 17 – Milano 20143 (\"YOOX\") and controls the personal data of users and customers of the www.stoneisland.com US Site together with SPORTSWEAR COMPANY, having address at Galleria Cavour 4, 40124 Bologna, Italy, Italy, VAT, 01046470371 (jointly referred to as \"YOOX NET-A-PORTER GROUP and SPORTSWEAR COMPANY\"). \r\nSince personal data of users and customers of the www.stoneisland.com US Site may be processed in Italy, any such processing of personal data will be conducted in compliance with applicable US law as well as the Italian Data Protection Code (Legislative Decree no. 196 dated June 30, 2003). Pursuant to the Italian Data Protection Code, YOOX USA is the controller of personal data of users and customers of the www.stoneisland.com US Site. As controller of personal data, YOOX USA independently determines the purposes and means by which your personal data are processed, including all security measures. As required by the Italian Data Protection Code, YOOX USA has appointed YOOX NET-A-PORTER GROUP as its data protection representative in Italy. As our data protection representative in Italy, YOOX, together with SPORTSWEAR COMPANY, independently ensures that personal data are processed in Italy in a correct and lawful manner and in accordance with good practice.\r\n\r\n1. OUR POLICY\r\nEveryone has the right to the protection of his/her personal data. YOOX NET-A-PORTER GROUP and SPORTSWEAR COMPANY respect our users' right to be informed about the collection and processing of their personal data. The www.stoneisland.com US Site has been designed in such a way that the use of your personal data will be minimal and will not exceed the original purpose for which your personal data are collected and/or processed. In particular, we do not disclose your identity when the purpose for which your personal data are being processed can be achieved by using anonymous aggregate information. This Privacy Policy is intended to provide you with all the information you need in order to understand our privacy practices.\r\nHowever, if you have any questions regarding our privacy practices and this Privacy Policy, please contact us at the following e-mail address:privacy@mail.stoneisland.com.\r\nThe www.stoneisland.com US Site is not directed at, nor do we knowingly collect personally identifiable information from children under the age of 13, although we may sell children's products or services for purchase by adults. If you are under 18, you may use the www.stoneisland.com US Site only with the involvement of a parent or guardian. \r\n\r\n2. WHO PROCESSES YOUR PERSONAL DATA\r\nFor organizational and operational purposes only, YOOX NET-A-PORTER GROUP and SPORTSWEAR COMPANY have appointed certain entities that will also process personal data of users and customers of the www.stoneisland.com US Site. Such purposes are strictly connected to the performance of services provided on the www.stoneisland.com US Site by YOOX NET-A-PORTER GROUP and SPORTSWEAR COMPANY, including the sale of products.\r\nThe above-mentioned data processors have been chosen by YOOX NET-A-PORTER GROUP and SPORTSWEAR COMPANY because of their experience in processing personal data, their sufficient guarantees with respect to compliance with applicable laws and regulations, including the Italian Data Protection Code (Legislative Decree no. 196 of 30 June 2003) as well as the technical security measures adopted by them in connection with the processing of personal data. In processing personal data of the users of the www.stoneisland.com US Site, our processors will act only in accordance with instructions provided by YOOX NET-A-PORTER GROUP and SPORTSWEAR COMPANY. We regularly verify that our processors comply with our instructions and that they provide sufficient guarantees with respect to their compliance with applicable laws and regulations. The following is a list of the companies primarily involved in the processing of personal data of users and customers of the www.stoneisland.com US Site:\r\n\t•\tUnited Parcel Service S.p.A.(“UPS\"). We provide UPS, by electronic means, with customers' addresses and other personal data for the purpose of shipping, delivering and returning products purchased on the www.stoneisland.com US Site;\r\n\t•\tBT Italia S.p.A., for purposes related to the maintenance of YOOX NET-A-PORTER GROUP servers;\r\n\t•\tYOOX NET-A-PORTER GROUP Italy. We provide YOOX NET-A-PORTER GROUP Italy with personal data of users and customers for purposes related to direct marketing services of YOOX NET-A-PORTER GROUP and SPORTSWEAR COMPANY and in connection with other services provided by YOOX NET-A-PORTER GROUP Italy to YOOX USA, such as call center and help desk services.\r\nPlease contact our Customer Care or send us an e-mail at privacy@mail.stoneisland.com if you would like to receive a full list of our data processors.\r\n\r\n3. HOW DO WE USE PERSONAL DATA AND FOR WHAT PURPOSES\r\nYour personal data are collected and processed by YOOX NET-A-PORTER GROUP and SPORTSWEAR COMPANY for purposes which are strictly connected to the use of the www.stoneisland.com US Site, its services and the purchase of products on the www.stoneisland.com US Site. However, your personal data may also be used for other processing operations within the limits of such purposes. In particular, your personal data may be processed for the following purposes:\r\n\t•\twhen you register with the www.stoneisland.com US Site we collect your personal data (for example, your personal information, e-mail address, gender) through the relevant registration form (My Account) in order to provide you with services in reserved access areas of the www.stoneisland.com US Site and in order to send you our Newsletter, when specifically requested;\r\n\t•\twhen you request Customer Care services, we collect your personal data (for example, your password) for purposes strictly necessary to provide you with customer care services relevant to the US Site and to the purchase of products on the US Site;\r\n\t•\twhen you request Customer Service assistance, we collect your personal data (for example, your first and last names, e-mail address and password) for purposes strictly necessary to provide you with Customer Service relevant to the www.stoneisland.com US Site and to the purchase of products on the www.stoneisland.com US Site;\r\n\t•\twhen you are executing purchasing procedures for products sold on the www.stoneisland.com US Site, including conclusion of an agreement for the purchase of products, we collect your personal data (for example, personal information, e-mail address, address, Credit Card numbers, bank account number and telephone number) on your order form only for the purpose of selling the products ordered by you;\r\n\t•\twhen you request technical assistance, we collect your personal data in order to provide you with information on net-surfing, Internet browsing or viewing and downloading web pages;\r\n\t•\twhen creating your Wish List, we process your personal data in order to customize our services for the purchase of products on the www.stoneisland.com US Site.\r\nYour personal data are generally processed by electronic means; however, in certain circumstances, paper-based means may be used (for example, when the processing of your personal data is required for the prevention of fraud against us). Your personal data are stored in a way which allows YOOX NET-A-PORTER GROUP and SPORTSWEAR COMPANY to identify you for the period that is strictly necessary for the original purposes for which such personal data are collected and subsequently processed, all in accordance with applicable laws.\r\nPlease report any changes to your personal data to the e-mail address privacy@mail.stoneisland.com in order to ensure that your personal data are always accurate and kept up-to-date.\r\nYour personal data will not be disclosed to third parties for purposes not permitted by law or without your explicit consent. Your personal data may only be disclosed to third parties when it is necessary to process an order placed by you. For example, your personal data are disclosed to Banca Sella S.p.A. for the performance electronic payment services, through Credit/Debit Cards. Moreover, your personal data may be disclosed to the police or to judicial authorities, in compliance with applicable laws and regulations and upon a formal request by such authorities for the purposes of preventing a fraud against us (anti-fraud services). Data processors will also have access to your personal data, as stated in Section 2 of this Privacy Policy, for the specific purposes stated in that Section. In all the above circumstances, your consent for data processing will not be specifically requested.\r\nYour personal data will not be transferred to any countries outside the United States and Italy if such countries do not provide for an adequate level of protection of the privacy of individuals. Should the above be necessary in order to supply services to you or to execute contracts for the purchase of products, the transfer of your personal data to any such countries will be carried out only after the execution of specific contracts between YOOX NET-A-PORTER GROUP and SPORTSWEAR COMPANY and all parties involved, in accordance with applicable laws and regulations.\r\nWe wish to inform you that YOOX NET-A-PORTER GROUP and SPORTSWEAR COMPANY process users' personal data for purposes that are strictly connected to the supply of services through the www.stoneisland.com US Site, the execution of contracts related to the sale and purchase of products on the www.stoneisland.com US Site and, after receiving your consent, in order to send you information on new commercial initiatives which are strictly related to the www.stoneisland.com US Site's activities and services. YOOX NET-A-PORTER GROUP and SPORTSWEAR COMPANY process your personal data for direct marketing purposes, including by e-mail, only after receiving your consent.\r\nYOOX NET-A-PORTER GROUP and SPORTSWEAR COMPANY may have access to third parties' personal data which is directly disclosed by their users to YOOX NET-A-PORTER GROUP and SPORTSWEAR COMPANY, for instance when the user buys a product to be sent to a friend, when the user who pays the purchase price for a product is different from the recipient of such product, or when a user wishes to recommend to a friend a service provided through the www.stoneisland.com US Site or the sale of a particular product posted on the www.stoneisland.com US Site.\r\nIn all cases involving the disclosure of information of a third party, you must obtain the consent of such individuals before disclosing their personal data to YOOX USA, YOOX NET-A-PORTER GROUP and SPORTSWEAR COMPANY and have informed said individuals about this Privacy Policy. You will be the only person liable in connection with the disclosure of information and data relevant to such third parties and with any other incompatible and unlawful use of such data if they have not provided you with their consent. You agree to indemnify, defend and hold each of YOOX USA, YOOX NET-A-PORTER GROUP and SPORTSWEAR COMPANY harmless from any liability, claims and expenses, including reasonable attorneys' fees, arising from or related to any unauthorized disclosure of personally identifiable information of third parties.\r\n\r\n4. WHAT HAPPENS IF YOU DO NOT DISCLOSE YOUR PERSONAL DATA\r\nThe personal data we request you to provide to YOOX NET-A-PORTER GROUP and SPORTSWEAR COMPANY, including your e-mail address, your address, your Credit/Debit Card numbers, bank account number and your telephone number, is necessary for the processing of your order for the purchase of products on the www.stoneisland.com US Site, to supply other services provided on the www.stoneisland.com US Site upon your request, or to carry out obligations arising out of applicable laws and regulations.\r\nYour refusal to provide certain personal data to YOOX NET-A-PORTER GROUP and SPORTSWEAR COMPANY may prevent YOOX NET-A-PORTER GROUP and SPORTSWEAR COMPANY from processing your order for the purchase of products sold on the www.stoneisland.com US Site or from providing other services through the www.stoneisland.com US Site, such as Customer Services, sending the Newsletter, use of the Wish List, recommending a product to a friend.\r\nYour failure to provide personal data to YOOX NET-A-PORTER GROUP and SPORTSWEAR COMPANY may prevent the processing of your order for the purchase of products sold or to provide services through the www.stoneisland.com US Site. \r\nThe disclosure of personal data to YOOX NET-A-PORTER GROUP and SPORTSWEAR COMPANY other than that required in order to fulfill legal or contractual obligations or to provide the services requested by you is optional and does not have any effect on the use of the www.stoneisland.com US Site and its services or on the purchase of products on the www.stoneisland.com US Site. We will inform you if the personal data we ask you to provide is necessary or optional by marking with an asterisk (*) the information that is necessary. Your failure to disclose optional personal data will not pose any obligation or disadvantage to you, except to the extent that we may no be able to offer you some of our optional, personalized features of the www.stoneisland.com US Site. \r\n\r\n5. TO WHOM YOUR PERSONAL DATA WILL BE DISCLOSED \r\nYour personal data may be disclosed to third parties who provide specific services as Data Processors on behalf of YOOX NET-A-PORTER GROUP and SPORTSWEAR COMPANY or who autonomously process personal data collected by YOOX NET-A-PORTER GROUP and SPORTSWEAR COMPANY in connection with the performance of a contract for the purchase of products on the www.stoneisland.com US Site (for example, Banca Sella, S.p.A.). \r\nAny such disclosure will be conducted, in each instance, without exceeding the original purposes for which your personal data were collected and subsequently processed. In addition, your personal data may be disclosed to third parties in order to (1) comply with applicable laws, (2) respond to governmental and judiciary inquiries, (3) comply with valid legal process, and (4) protect the rights or property of YOOX NET-A-PORTER GROUP and SPORTSWEAR COMPANY. \r\nAny third party information disclosed to YOOX NET-A-PORTER GROUP and SPORTSWEAR COMPANY in accordance with this Privacy Policy will not be used for any purpose other than as required to technically operate the service, to complete a transaction, or as otherwise required by law. \r\nIn the event there is a change in the corporate structure of YOOX NET-A-PORTER GROUP and SPORTSWEAR COMPANY including, without limitation, by merger, consolidation, sale, liquidation, or transfer of substantial assets, YOOX NET-A-PORTER GROUP and SPORTSWEAR COMPANY may, in their sole discretion, transfer, sell or assign personal data collected on and through the www.stoneisland.com US Site, including, without limitation, personally identifiable information and aggregate information concerning users and customers, to one or more affiliated or unaffiliated third parties. \r\nIn any event, your personal data will not be disclosed to third parties without you being informed or without your consent, when such consent is required by law.\r\n\r\n6. HOW DO WE COLLECT YOUR DATA ON www.stoneisland.com \r\nCookies\r\nWhen you are using the www.stoneisland.com US Site, some personal data may be collected automatically through so-called \"cookies\". A cookie is a device transmitted to the hard drive of an Internet user. While cookies do not contain intelligible information, they allow us to link an Internet user to personal information provided by such user through the www.stoneisland.com US Site. YOOX NET-A-PORTER GROUP and SPORTSWEAR COMPANY process information collected by cookies in a collective and anonymous way, in order to optimize our services and the www.stoneisland.com US Site for the needs and preferences of its users. We use cookies to collect users' IP addresses and other information regarding users' data traffic or preferences in the choice of services provided and products purchased through the www.stoneisland.com US Site.\r\nWe disseminate cookies in connection with functions such as browsing the catalogue, purchasing products on-line and supplying \"My Account\" services.\r\nAs you may know, each Internet browser allows the deletion of cookies after each session. Your Internet browser contains instructions on how to carry out these procedures of deletion. Please access the appropriate instructions section on your Internet browser if you wish to delete cookies. \r\nYour acceptance of our automatic procedures of collection of data and the use of cookies is necessary to take advantage of many features and services offered by the www.stoneisland.com US Site, including the purchase of products. If you set your browser to block or delete cookies, we cannot guarantee that you will have access to all the features and services offered by the US Site (for example, your computer may not be able to display the image of the product you are in the process of purchasing).\r\nOther Methods of Collecting User Information. \r\nYOOX NET-A-PORTER GROUP and SPORTSWEAR COMPANY directly collect personal data and information from users when they register on-line with the www.stoneisland.com US Site or when they send purchase orders for products sold on the www.stoneisland.com US Site in order to finalize their transactions.\r\n\r\n7. SECURITY MEASURES\r\nWe have adopted security measures to protect personal data against accidental or unlawful destruction, loss, alteration, unauthorized disclosure or access and against other unlawful forms of data processing, as provided in our Privacy Policy. \r\nNevertheless, YYOOX NET-A-PORTER GROUP and SPORTSWEAR COMPANY cannot guarantee that the security measures adopted for the protection of the www.stoneisland.com US Site and the transmission of data and information through the www.stoneisland.com US Site will prevent or exclude any risk of unauthorized access to or loss of data. It is advisable that your computer be equipped with software devices for the protection of network data transmission and receipt (such as, updated antivirus systems) and that your Internet service provider take appropriate measures for the security of network data transmission (such as, firewalls and anti-spam filtering).\r\n\r\n8. OPT-IN/OPT OUT Advertising material and direct marketing or other commercial communications which are not specifically requested by you or necessary to provide a service you requested, including the purchase of products on the US Site, will be sent to you only after we receive your consent. Please note that each time your consent is required, we will inform you in advance and we will give you the option to either provide or refuse your consent by selecting the appropriate box.\r\nYOOX and STONE ISLAND and STONE ISLAND DENIMS may process your personal data without your consent when such processing is necessary to comply with applicable laws and regulations or to provide you with services you requested, including the purchase of products on the US Site.\r\nEven when your prior consent is not necessary, you may exercise, at any time, your right not to receive future communications regarding services you requested, such as the Newsletter.\r\n\r\n9. YOUR RIGHT TO ACCESS PERSONAL DATA AND FURTHER RIGHTS\r\nYou are entitled to obtain, at any time, confirmation from YOOX NET-A-PORTER GROUP and SPORTSWEAR COMPANY as to whether or not data relating to you is being processed, even if not yet registered, and the communication of any such data in an intelligible form. \r\nMoreover, you are entitled to receive from YOOX NET-A-PORTER GROUP and SPORTSWEAR COMPANY information on the source from which we received your personal data; the purposes and means of processing your personal data; the logic involved in any electronic data processing; information regarding the data controller and the data processors and the names of subjects and categories of subjects to whom your personal data may be disclosed or who may access your personal data (for example, the names of data processors). You can also find the above information in our Privacy Policy. \r\nYou are entitled to obtain at any time from YOOX NET-A-PORTER GROUP and SPORTSWEAR COMPANY:\r\n\t•\tthe updating, rectification or integration of your personal data;\r\n\t•\tthe deletion, transformation into anonymous form or blocking of your personal data, which are processed in violation of the law, including when the storage of data is not necessary for the purposes for which it has been collected and subsequently processed;\r\n\t•\tthe confirmation that the operations under letters a) and b) have been reported to whom the data were disclosed or disseminated, except when it becomes impossible to do so or if it means exceeding the protection of the right you are claiming.\r\nYou are entitled to object, in all or in part:\r\n\t•\tfor legitimate reasons, to the processing of your personal data, even if it is related to the purposes for which it was collected;\r\n\t•\tto the processing of your personal data for advertising or direct marketing purposes or in order to carry out marketing research or commercial communications.\r\nYou may freely and at any time exercise your rights, provided that you do so in compliance with applicable laws and regulations, by sending your request to YOOX NET-A-PORTER GROUP and SPORTSWEAR COMPANY at the following e-mail address: privacy@mail.stoneisland.com.\r\n\r\n10. LINKS TO OTHER WEB SITES\r\nThe www.stoneisland.com US Site may provide hyperlinks to third party websites (the \"Third Party Websites\"). YOOX NET-A-PORTER GROUP and SPORTSWEAR COMPANY do not operate, control, endorse or guarantee any Third Party Websites. You agree that and SPORTSWEAR COMPANY are not responsible for any content, services and/or products provided by any Third Party Website, nor are YOOX NET-A-PORTER GROUP and SPORTSWEAR COMPANY responsible for any practice followed by such Third Party Website with respect to the collection and processing of personal data of their users. When you access any Third Party Website through a hyperlink posted on the www.stoneisland.com US Site, please carefully read the Privacy Policy and other policies of such Third Party Website.\r\nOur Privacy Policy and other policies do not apply to any Third Party Website. YOOX NET-A-PORTER GROUP and SPORTSWEAR COMPANY provide hyperlinks to Third Party Websites only for the convenience of our users. By providing hyperlinks to Third Party Websites, YOOX NET-A-PORTER GROUP and SPORTSWEAR COMPANY do not recommend that users access such Third Party Websites.\r\nYOU AGREE THAT YOUR USE OF ANY THIRD PARTY WEBSITE IS AT YOUR SOLE RISK AND WITHOUT WARRANTIES OF ANY KIND BY YOOX, YOOX USA, AND/OR SPORTSWEAR COMPANY, EXPRESSED, IMPLIED OR OTHERWISE, INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY OR NONINFRINGEMENT. UNDER NO CIRCUMSTANCES ARE YOOX, YOOX USA, AND/OR SPORTSWEAR COMPANY LIABLE FOR DAMAGES ARISING FROM ANY TRANSACTION BETWEEN YOU AND ANY THIRD PARTY WEBSITE OR FOR ANY INFORMATION APPEARING ON THIRD PARTY WEBSITES. \r\n\r\n11. CONTACTS\r\nIf you wish to receive further information regarding our privacy practices, please contact us at the following e-mail address: privacy@mail.stoneisland.com. For more information regarding your rights under the Italian Data Protection Code, please go to the web site of the Italian Data Protection Authority at www.garanteprivacy.it. \r\n\r\n12. GOVERNING LAW\r\nThe processing of personal data by YOOX NET-A-PORTER GROUP and SPORTSWEAR COMPANY will be conducted in compliance with applicable US laws. The laws of Italy, including the Italian Personal Data Protection Code (Legislative Decree no. 196 dated June 30, 2003), also apply to the processing of personal data carried out by YOOX NET-A-PORTER GROUP and SPORTSWEAR COMPANY (see the Companies of YOOX NET-A-PORTER GROUP and SPORTSWEAR COMPANY Group). The Italian Personal Data Protection Code guarantees that the processing of your personal data will be carried out in compliance with the fundamental rights and freedoms of individuals and their dignity, with particular reference to confidentiality, identity and the right to personal data protection. \r\n\r\n13. MODIFICATION AND UPDATING\r\nYOOX NET-A-PORTER GROUP and SPORTSWEAR COMPANY may amend or update from time to time all or any part of this Privacy Policy, whether or not required by a change in the applicable laws and regulation. Our users will be notified of any amendment to or update of our Privacy Policy on our homepage. All amendments and updates will become effective upon publication on this section of the www.stoneisland.com US Site. You should regularly access this section of the www.stoneisland.com US Site in order to review the most recent and updated version of our Privacy Policy.", - "__index": "2", - "dateCreated": "Tue, 17 Nov 2015 20:32:07 GMT", - "tag": "privacy" - }, - { - "id": "returns-policy", - "title": "Returns Policy", - "image": { - "uri": "", - "caption": "" - }, - "body": "We want to make sure that you are completely satisfied with your purchases on this Site. If, for any reason, you are not satisfied with your order, you may return any UNUSED products within twenty (20) days from the date of delivery. Before sending any products back to us, please make sure that all of the following conditions have been correctly satisfied. \r\nThe product you wish to return:\r\n
  • can be sent back to us only after you have completed and submitted the online Return Form available on the www.stoneisland.com US Site within twenty (20) days of delivery; by completing and submitting our online return form you will receive your Return Number, which you must include on your return shipping label;
  • \r\n
  • must be unused, unworn, unwashed and in the same condition in which it was received by you;
  • \r\n
  • must have all disposable seals still attached with the disposable seal that must still be intact;
  • \r\n
  • must be returned complete with all of its parts and accessories;
  • \r\n
  • must be sent in its original packaging;
  • \r\n
  • must be shipped back to our fulfillment house within twenty (20) days of the date of delivery;
  • \r\n
  • must be sent in one single shipment; products that belong to the same order must be returned to us at the same time; and
  • \r\n
  • must be shipped from the United States.
  • \r\nIf all of these conditions are satisfied, we will refund the value of the returned product(s), Sales Tax included, less any original shipping costs. If you send the package with UPS, return shipping costs charged to the customer will correspond to $6.00. If you prefer you can send the return at your expense, with a courier of your choice. We will not issue any refunds for returns that do not satisfy all of the conditions indicated above; provided, however, that you will have the option to request within thirty (30) days of being notified that you are not entitled to a refund that your merchandise be shipped back to you, at your own cost, in the condition in which it was received by Provider’s fulfillment house.\r\nIf you do not request the return of your merchandise within said thirty-day period, you authorize Provider, and any of its affiliates or agents, to dispose of such merchandise as it sees fit. \r\n\r\nSALES OF BEACHWEAR AND UNDERWEAR ARE FINAL. WE RESERVE THE RIGHT TO DESIGNATE ON THE SITE OTHER NON-RETURNABLE MERCHANDISE. ANY SUCH DESIGNATION WILL BE NOTED ON THE DETAIL PAGE OF THE MERCHANDISE WHICH IS NON-RETURNABLE. \r\n\r\nREFUND POLICY\r\nRefunds are processed within approximately three (3) business days of our receipt of your merchandise. Your refund will be credited back to the same payment method used to make the original purchase on the US Site. If you paid by credit card, refund times will depend on the credit or debit card company’s policies. Be aware that the refund date for the credit will coincide with the date of the original payment, therefore you will not be charged any interest fees. If you paid by PayPal (where available), refunds will be credited to your PayPal account and will be visible immediately. The date of reimbursement to the credit card associated with your PayPal account depends on the company that issued the card. WE OFFER NO REFUNDS ON ANY PRODUCTS DESIGNATED ON THIS SITE AS NON-RETURNABLE. \r\n\r\nIDENTIFICATION TAG\r\nAll of our products come with an identification tag with a disposable seal. Please try your item on before removing the tag and seal, since we do not accept returns once the disposable seal has been removed, broken or damaged in any way. Shoes come with a sticker under the sole; if you remove or alter this sticker, you may no longer return your purchase. \r\n\r\nUPS\r\nYour return can be sent to us by UPS, using the pre-printed label which you can find within the original shipment. If you send the package with UPS, return shipping costs charged to the customer will correspond to $6.00. Please visit http://www.ups.com/dropoff?loc=en_US to find the UPS drop-off location nearest to you. If you prefer you can send the return at your expense, with a courier of your choice. We are not responsible for any loss or damage to products if you ship your return without using UPS. \r\n\r\nWE OFFER NO EXCHANGES ON MERCHANDISE PURCHASED ON THE www.stoneisland.com US SITE\r\n\r\nDISCLAIMER OF WARRANTIES AND LIMITATION OF LIABILITY\r\n\r\nPROVIDER MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED, AS TO THE PRODUCTS INCLUDED ON THE SITE NOR AS TO THE MERCHANDISE BEING SOLD TO YOU. TO THE FULLEST EXTENT PERMISSIBLE BY APPLICABLE LAW, PROVIDER DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT, AND THERE ARE NO WARRANTIES, EXPRESS OR IMPLIED, WHICH EXTEND BEYOND THE DESCRIPTION OF THE MERCHANDISE CONTAINED ON OUR ORDER CONFIRMATION. PROVIDER WILL NOT BE LIABLE FOR ANY DAMAGES OF ANY KIND ARISING FROM THE USE OF THE SITE, INCLUDING BUT NOT LIMITED TO DIRECT, INDIRECT, INCIDENTAL, PUNITIVE AND CONSEQUENTIAL DAMAGES. \r\n\r\nCERTAIN STATE LAWS DO NOT ALLOW LIMITATIONS ON IMPLIED WARRANTIES OR THE EXCLUSION OR LIMITATION OF CERTAIN DAMAGES. IF THESE LAWS APPLY TO YOU, SOME OR ALL OF THE ABOVE DISCLAIMERS, EXCLUSIONS, OR LIMITATIONS MAY NOT APPLY TO YOU, AND YOU MIGHT HAVE ADDITIONAL RIGHTS.\r\n\r\nForce Majeure\r\nProvider shall not be liable for any delay or failure in performance caused by circumstances beyond its reasonable control.", - "__index": "3", - "dateCreated": "Tue, 17 Nov 2015 21:03:44 GMT", - "tag": "returns" - }, - { - "id": "customer-care", - "title": "Customer Care", - "image": { - "uri": "", - "caption": "" - }, - "body": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam blandit in risus sit amet maximus. Phasellus ullamcorper auctor fermentum. Aenean diam libero, rhoncus vel efficitur sed, dictum vel neque. Aliquam mollis leo vitae est vehicula, non pulvinar elit congue. Phasellus sit amet mauris neque. Integer volutpat nisl est, vel finibus purus lacinia vehicula. Proin dapibus velit quis sapien ultricies accumsan. Sed accumsan dui id porta efficitur.\r\n\r\nCurabitur pretium ut libero a varius. Morbi in lacinia felis. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nullam dolor justo, consequat eu lectus at, interdum sollicitudin arcu. Nunc accumsan velit volutpat, venenatis leo eu, rhoncus nibh. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Phasellus semper consequat ipsum, sed fringilla ligula tincidunt at.\r\n\r\nMauris vehicula, purus ut iaculis facilisis, mi leo dignissim libero, at lobortis lectus odio consequat urna. Etiam accumsan volutpat nibh, eget ultricies mi feugiat eu. Duis id aliquam enim. Pellentesque quis enim eu dolor bibendum interdum. Cras ultrices erat velit, eu volutpat erat consequat non. Nam ut nibh facilisis, egestas sapien vitae, scelerisque sapien. Nullam tortor ex, convallis vel nisi vitae, efficitur dapibus nunc. In hac habitasse platea dictumst. Nam posuere ligula lorem, sit amet ultricies odio tristique in. Etiam gravida tincidunt mollis. Duis quis nulla ligula. Etiam ut vehicula tellus. Sed ipsum lacus, tincidunt sit amet velit et, aliquet hendrerit erat. Nam sed velit dapibus, congue odio non, ultrices ligula. Suspendisse at quam eu lorem finibus ultricies id tempus lorem. Nulla vel quam luctus, viverra nulla cursus, faucibus tellus.\r\n\r\nPraesent magna ex, posuere at hendrerit varius, auctor a nisl. Nullam sodales erat ut nisl vestibulum luctus. Donec id sagittis orci. Cras imperdiet, erat non dictum feugiat, elit turpis viverra neque, interdum cursus mi turpis vitae dolor. Suspendisse potenti. Aenean et auctor diam, vel eleifend eros. Praesent viverra felis at enim elementum fermentum. Etiam convallis, elit porta molestie condimentum, arcu ligula vestibulum nisi, et aliquet massa tellus quis eros. Aliquam a dignissim tellus, non ullamcorper purus. Phasellus in risus mattis dui vehicula cursus in at urna.\r\n\r\nCurabitur laoreet lorem eu euismod volutpat. Suspendisse vulputate aliquet tempor. Pellentesque purus augue, eleifend a maximus eu, commodo nec felis. Mauris mattis turpis nec volutpat tincidunt. Mauris imperdiet ante at orci mollis sagittis. Etiam lacus risus, consectetur ut dui non, pulvinar pulvinar libero. Aliquam ut rhoncus justo, quis sollicitudin nisi. Proin et iaculis sem. Pellentesque id tempor elit, et tincidunt nunc. Quisque laoreet et massa quis imperdiet. Morbi dapibus, felis sed auctor porttitor, massa nunc sollicitudin urna, non congue odio enim eget nisi. Suspendisse semper vehicula nisl vitae vehicula. Maecenas sed justo quis nisi auctor ultrices. Nam vel dolor fringilla, accumsan nulla eu, rutrum ex. Donec ante quam, molestie vel ex eget, dictum luctus nunc. Phasellus tincidunt libero non quam finibus, at convallis sem laoreet.\r\n\r\nDonec consequat, leo tincidunt elementum consectetur, nisl augue sollicitudin dolor, vel fringilla dui lorem non enim. Morbi id arcu felis. Integer malesuada ex enim, sed consectetur massa condimentum id. In mollis libero eu neque sollicitudin, sit amet interdum orci bibendum. Curabitur tincidunt purus vel vestibulum placerat. Aliquam erat volutpat. Praesent ac eros diam. Mauris ultrices euismod sodales. Vestibulum dui leo, auctor sit amet finibus eu, suscipit eu diam. Cras ac rhoncus turpis, at sagittis mi. Praesent urna metus, euismod vitae nunc eget, suscipit auctor lectus. Pellentesque maximus arcu justo. Duis mi arcu, rutrum et vulputate nec, mattis sit amet risus. Donec posuere velit sed enim accumsan, eu lobortis nulla sagittis.\r\n\r\nDonec viverra consectetur turpis sit amet malesuada. Sed sit amet urna luctus, sodales est porta, aliquam mi. Curabitur et ullamcorper odio, dapibus facilisis nisl. Fusce tortor leo, mattis sit amet massa ut, ultrices aliquam massa. Pellentesque consectetur metus in molestie egestas. Quisque vehicula at mauris ut eleifend. Duis eu ipsum quis ipsum bibendum luctus.\r\n\r\nSed sed viverra diam. Quisque lacinia nisl orci. Fusce vulputate dui ut nunc vulputate feugiat. Praesent felis quam, semper nec dapibus eget, venenatis vitae leo. Maecenas rutrum egestas dapibus. Vestibulum sodales molestie varius. Ut ac laoreet est, nec posuere ipsum. Cras ac eros sapien. Quisque eu dui lorem. Donec congue varius tortor ac ullamcorper. Curabitur vulputate faucibus finibus. Donec tellus neque, euismod ac aliquet at, vehicula in mauris. Vivamus justo nulla, maximus sit amet quam ac, vulputate dapibus purus. Mauris ante urna, posuere varius vehicula sed, fringilla sed quam. In eget ex tincidunt, ultrices elit id, congue quam. Suspendisse congue tristique dolor, rhoncus venenatis purus tempor at.\r\n\r\nVivamus efficitur, odio in tempor rutrum, quam nunc congue orci, non posuere lorem lacus et arcu. Aenean sit amet diam quis dui dapibus semper ac vitae est. Aenean ornare arcu justo, id sodales odio maximus interdum. Curabitur sit amet augue pretium metus bibendum imperdiet vitae vitae nunc. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nunc euismod ante eu justo mollis dignissim. Maecenas et velit eu lorem laoreet ornare. Sed accumsan est nec rutrum dignissim.\r\n\r\nIn bibendum mattis ligula. Pellentesque gravida felis sed congue viverra. Nam volutpat quam at velit sodales, nec egestas dolor consectetur. Etiam id tortor tincidunt, sollicitudin risus ut, lacinia diam. Morbi consequat euismod justo vitae sagittis. Pellentesque interdum orci ligula, tincidunt maximus nulla sollicitudin sed. Duis finibus odio eros, eget consequat ante tristique ac. Suspendisse at interdum leo. Nunc sagittis ante ac felis iaculis fermentum. Sed elementum dictum dictum. Aliquam eget metus molestie, varius mi ac, auctor quam.", - "__index": "4", - "dateCreated": "Tue, 17 Nov 2015 21:03:57 GMT", - "tag": "care" - } - ], - "store": [ - { - "id": "stone-island", - "title": "Stone Island", - "StoreIsOpen": "false", - "ClosedStoreImages": [ - { - "uri": "https://ltho.s3.amazonaws.com/fe9a4c24-eb7f-42be-9c36-d0ab5936bb13.png", - "caption": "" - }, - { - "uri": "https://ltho.s3.amazonaws.com/52b447ec-8635-4182-ae39-25dca98afae1.png", - "caption": "" - } - ], - "__index": "0", - "dateCreated": "Fri, 20 Nov 2015 00:45:03 GMT", - "collection": "SS_'016 PREVIEW", - "FitsLarge": "false", - "BackgroundIsGray": "true", - "CollectionId": "33064", - "StoreStatus": "closed", - "OpensOn": "Invalid Date" - } - ] -} \ No newline at end of file diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/etc/deeplink.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/etc/deeplink.js deleted file mode 100755 index 7667cfcd..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/etc/deeplink.js +++ /dev/null @@ -1,5 +0,0 @@ -function handleOpenURL (url) { - console.log("DEEP LINKING DETECTED", url) - url = url.replace("stoneisland:/", "") - app.router.parseRoute( url ) -} \ No newline at end of file diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/etc/geo.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/etc/geo.js deleted file mode 100755 index 22899141..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/etc/geo.js +++ /dev/null @@ -1,71 +0,0 @@ -var geo = (function(){ - var geo = {} - - var polling = false, fetching = false, poll_timeout = null - - geo.fetch = function(){ - fetching = true - navigator.geolocation.getCurrentPosition(geo.success, geo.error, {timeout: 15000}) - } - - geo.success = function(position){ - var lat_str = as_degrees( position.coords.latitude || 40.99167, "N", "S" ) - var lng_str = as_degrees( position.coords.longitude || -74.07944, "E", "W" ) - $(".latlng").html( lat_str + "     " + lng_str ) - geo.done() - } - - geo.error = function(error){ - $(".latlng").html( "+40° 58' 90.9\" N     74° 04' 46.3\" W" ) - geo.done() - } - - geo.done = function(){ - fetching = false - if (polling) { - clearTimeout( poll_timeout ) - poll_timeout = setTimeout(geo.fetch, 15000) - } - } - - geo.start_polling = function(){ - polling = true - if (! fetching) { - geo.fetch() - } - } - - geo.stop_polling = function(){ - polling = false - clearTimeout(poll_timeout) - } - - function as_degrees (n, pos, neg) { - var s = "" - var sig = n >= 0 ? pos : neg - - n = Math.abs(n) - s += Math.floor(n) + "° " - - n %= 1 - n *= 60 - nn = Math.floor(n) - if (nn < 10) nn = "0" + nn - s += nn + "' " - - n %= 1 - n *= 60 - nn = Math.floor(n) - if (nn < 10) nn = "0" + nn - s += nn - - n %= 1 - n *= 10 - nn = Math.floor(n) - s += "." + nn + '\" ' + sig - - return s - } - - return geo -})() \ No newline at end of file diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/etc/push.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/etc/push.js deleted file mode 100755 index 29d2938f..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/etc/push.js +++ /dev/null @@ -1,149 +0,0 @@ -var push = (function(){ - var push = { settings: {}, disabled: false } - var pushPlugin - push.init = function(){ - if (! ('device' in window) || (device.platform || "").toLowerCase() !== "ios") { - console.log("push disabled") - push.disabled = true - return - } - - pushPlugin = PushNotification.init({ - ios: { - alert: true, - badge: true, - sound: false, - clearBadge: true, - }, - }) - - console.log("push init") - - PushNotification.hasPermission(push.did_initialize) - pushPlugin.on('registration', push.got_registration) - pushPlugin.on('notification', push.got_push_notification) - } - push.did_initialize = function(data) { - // console.log(data) - if (! data.isEnabled) { - console.log("push did not initialize") - return - } - console.log("push did initialize") - var hub_status = localStorage.getItem("yoox.push_hub") - var store_status = localStorage.getItem("yoox.push_store") - - push.settings.requested = localStorage.getItem("yoox.push_requested") == "true" - push.settings.hub = hub_status == "true" - push.settings.store = store_status == "true" - - if (! hub_status || hub_status == "true") { - push.subscribe("hub") - } - if (! store_status || store_status == "true") { - push.subscribe("store") - } - } - push.got_registration = function(data){ - var registrationId = data.registrationId - var oldRegistrationId = localStorage.getItem("yoox.registrationId") - // console.log(registrationId, oldRegistrationId) - - if (registrationId !== oldRegistrationId || ! push.settings.requested) { - localStorage.setItem("yoox.registrationId", registrationId) - push.subscribe("hub", function(){ - push.subscribe("store") - }) - } - } - push.subscribe = function(channel, cb){ - if (push.disabled) return - push.settings[channel] = true - localStorage.setItem("yoox.push_" + channel, "true") - var data = { - registrationId: localStorage.getItem("yoox.registrationId"), - channel: channel, - platform: device.platform, - } - pushPlugin.subscribe(channel, function(){ - console.log("subscribed to", channel) - }) - $.ajax({ - method: "POST", - url: push.url('add'), - data: data, - contentType: 'application/x-www-form-urlencoded; charset=UTF-8', - success: function(){ - console.log("subscribed to", channel) - cb && cb() - }, - error: push.error, - }) - } - push.unsubscribe = function(channel, cb){ - if (push.disabled) return - push.settings[channel] = false - localStorage.setItem("yoox.push_" + channel, "false") - var data = { - registrationId: localStorage.getItem("yoox.registrationId"), - channel: channel, - platform: device.platform, - } - $.ajax({ - method: "POST", - url: push.url('remove'), - data: data, - contentType: 'application/x-www-form-urlencoded; charset=UTF-8', - success: function(){ - console.log("unsubscribed from", channel) - cb && cb() - }, - error: push.error, - }) - } - push.url = function(key){ - return sdk.cms() + '/_services/push/' + key - } - push.got_push_notification = function(push_obj) { - // console.log('We received this push notification: ' + JSON.stringify(push_obj)); - - app.blog.refresh() - - push_obj.additionalData = push_obj.additionalData || {} - - var is_hub = true - - try { - is_hub = JSON.stringify(push_obj || {}).match(/hub/i) - } - catch (e) { - } - - if (is_hub) { - app.intro.$alert.show().html("[ HUB UPDATED ]") - } - else if (! push_obj.additionalData.url) { - auth.clear_cart() - app.intro.$alert.show().html("[ STORE UPDATED ]") - } - - if (push_obj.additionalData.foreground === false) { - // TODO: route the user to the uri in push_obj - pushPlugin.finish(function(){}, function(){}) - - if (push_obj.additionalData.url) { - app.router.go(push_obj.additionalData.url) - } - } - else if (is_hub) { - app.router.go("hub") - } - else { - app.router.go("intro") - } - } - push.error = function(e){ - console.log("push error") - } - return push -})() \ No newline at end of file diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/nav/AddressView.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/nav/AddressView.js deleted file mode 100755 index 4a05c4b6..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/nav/AddressView.js +++ /dev/null @@ -1,272 +0,0 @@ - -var AddressView = SerializableView.extend({ - - template: $("#address_template").html(), - - disabled: false, - - events: { - "change [name=Province]": 'update_country', - "focus [name]": 'scroll_up_to_phone', - }, - - initialize: function(opt){ - this.parent = opt.parent - this.checkPhone = 'checkPhone' in opt ? opt.checkPhone : true - this.setElement( this.parent.$(".address") ) - this.$el.html(this.template) - }, - - populate: function(data){ - this.data = data - var address = data.Address.split("\n") - data.Address1 = address[0] - data.Address2 = address[1] - this.$(".address input").val("") - this.load_data(data) - this.update_country() - }, - - validate_presence: { - "Name": "Please enter your first name.", - "Surname": "Please enter your last name.", - "Address1": "Please enter your street address.", - "City": "Please enter your city.", - "ZipCode": "Please enter your zip code.", - }, - - validate_fields: function(data, errors){ - if (this.disabled) { return } - if (this.checkPhone && ! data.Phone) { errors.push([ "Phone", "Please enter your phone number." ]) } - if (this.checkPhone && data.Phone && data.Phone.replace(/[^0-9]/g, "").length < 10) { errors.push([ "Phone", "Phone numbers must be at least 10 digits." ]) } - if (! data.Province || data.Province == "NONE") { errors.push([ "Province", "Please choose your state." ]) } - data.Address = data.Address1 + "\n" + data.Address2 - data.UserId = auth.user_id - delete data.Address1 - delete data.Address2 - }, - - update_country: function(){ - var state = this.$("[name=Province]").val() - console.log(state) - if (CANADIAN_LOOKUP[state]) { - this.$(".country-label").html("CANADA") - } - else { - this.$(".country-label").html("UNITED STATES") - } - }, - - scroll_up_to_phone: function(e){ - app.view.scroller && app.view.scroller.scrollTo(0, -$(e.currentTarget).position().top) - }, - -}) - -var CANADIAN_PROVINCES = "AB BC MB NB NL NS NT NU ON PE SK QC YT".split(" ") -var CANADIAN_LOOKUP = {} -CANADIAN_PROVINCES.forEach(function(k){ CANADIAN_LOOKUP[k] = true }) - -var COUNTRIES = [ - ['Country Name', 'NONE'], - ['United States', 'US'], - ['Abkhazia', 'GE'], - ['Afghanistan', 'AF'], - ['Albania', 'AL'], - ['Algeria', 'DZ'], - ['Andorra', 'AD'], - ['Angola', 'AO'], - ['Antigua and Barbuda', 'AG'], - ['Argentina', 'AR'], - ['Armenia', 'AM'], - ['Australia', 'AU'], - ['Austria', 'AT'], - ['Azerbaijan', 'AZ'], - ['Bahamas', 'BS'], - ['Bahrain', 'BH'], - ['Bangladesh', 'BD'], - ['Barbados', 'BB'], - ['Belarus', 'BY'], - ['Belgium', 'BE'], - ['Belize', 'BZ'], - ['Benin', 'BJ'], - ['Bhutan', 'BT'], - ['Bolivia', 'BO'], - ['Bosnia and Herzegovina', 'BA'], - ['Botswana', 'BW'], - ['Brazil', 'BR'], - ['Brunei', 'BN'], - ['Bulgaria', 'BG'], - ['Burkina Faso', 'BF'], - ['Burundi', 'BI'], - ['Cambodia', 'KH'], - ['Cameroon', 'CM'], - ['Canada', 'CA'], - ['Cape Verde', 'CV'], - ['Central African Republic', 'CF'], - ['Chad', 'TD'], - ['Chile', 'CL'], - ['China', 'CN'], - ['Colombia', 'CO'], - ['Comoros', 'KM'], - ['Congo', 'CD'], - ['Congo-Brazzaville', 'CG'], - ['Costa Rica', 'CR'], - ['Cote d\'Ivoire (Ivory Coast)', 'CI'], - ['Croatia', 'HR'], - ['Cuba', 'CU'], - ['Cyprus', 'CY'], - ['Czech Republic', 'CZ'], - ['Denmark', 'DK'], - ['Djibouti', 'DJ'], - ['Dominica', 'DM'], - ['Dominican Republic', 'DO'], - ['Ecuador', 'EC'], - ['Egypt', 'EG'], - ['El Salvador', 'SV'], - ['Equatorial Guinea', 'GQ'], - ['Eritrea', 'ER'], - ['Estonia', 'EE'], - ['Ethiopia', 'ET'], - ['Fiji', 'FJ'], - ['Finland', 'FI'], - ['France', 'FR'], - ['Gabon', 'GA'], - ['Gambia', '220'], - ['Georgia', 'GE'], - ['Germany', 'DE'], - ['Ghana', 'GH'], - ['Greece', 'GR'], - ['Grenada', 'GD'], - ['Guatemala', 'GT'], - ['Guinea', 'GN'], - ['Guinea-Bissau', 'GW'], - ['Guyana', 'GY'], - ['Haiti', 'HT'], - ['Honduras', 'HN'], - ['Hungary', 'HU'], - ['Iceland', 'IS'], - ['India', 'IN'], - ['Indonesia', 'ID'], - ['Iran', 'IR'], - ['Iraq', 'IQ'], - ['Ireland', 'IE'], - ['Israel', 'IL'], - ['Italy', 'IT'], - ['Jamaica', 'JM'], - ['Japan', 'JP'], - ['Jordan', 'JO'], - ['Kazakhstan', 'KZ'], - ['Kenya', 'KE'], - ['Kiribati', 'KI'], - ['Kuwait', 'KW'], - ['Kyrgyzstan', 'KG'], - ['Laos', 'LA'], - ['Latvia', 'LV'], - ['Lebanon', 'LB'], - ['Lesotho', 'LS'], - ['Liberia', 'LR'], - ['Libya', 'LY'], - ['Liechtenstein', 'LI'], - ['Lithuania', 'LT'], - ['Luxembourg', 'LU'], - ['Macedonia', 'MK'], - ['Madagascar', 'MG'], - ['Malawi', 'MW'], - ['Malaysia', 'MY'], - ['Maldives', 'MV'], - ['Mali', 'ML'], - ['Malta', 'MT'], - ['Marshall Islands', 'MH'], - ['Mauritania', 'MR'], - ['Mauritius', 'MU'], - ['Mexico', 'MX'], - ['Micronesia', 'FM'], - ['Moldova', 'MD'], - ['Monaco', 'MC'], - ['Mongolia', 'MN'], - ['Montenegro', 'ME'], - ['Morocco', 'MA'], - ['Mozambique', 'MZ'], - ['Myanmar', 'MM'], - ['Nagorno-Karabakh', 'AZ'], - ['Namibia', 'NA'], - ['Nauru', 'NR'], - ['Nepal', 'NP'], - ['Netherlands', 'NL'], - ['New Zealand', 'NZ'], - ['Nicaragua', 'NI'], - ['Niger', 'NE'], - ['Nigeria', 'NG'], - ['North Korea', 'KP'], - ['Northern Cyprus', 'CY'], - ['Norway', 'NO'], - ['Oman', 'OM'], - ['Pakistan', 'PK'], - ['Palau', 'PW'], - ['Panama', 'PA'], - ['Papua New Guinea', 'PG'], - ['Paraguay', 'PY'], - ['Peru', 'PE'], - ['Philippines', 'PH'], - ['Poland', 'PL'], - ['Portugal', 'PT'], - ['Qatar', 'QA'], - ['Romania', 'RO'], - ['Russia', 'RU'], - ['Rwanda', 'RW'], - ['Saint Kitts and Nevis', 'KN'], - ['Saint Lucia', 'LC'], - ['Saint Vincent and the Grenadines', 'VC'], - ['Samoa', 'WS'], - ['San Marino', 'SM'], - ['Sao Tome and Principe', 'ST'], - ['Saudi Arabia', 'SA'], - ['Senegal', 'SN'], - ['Serbia', 'RS'], - ['Seychelles', 'SC'], - ['Sierra Leone', 'SL'], - ['Singapore', 'SG'], - ['Slovakia', 'SK'], - ['Slovenia', 'SI'], - ['Solomon Islands', 'SB'], - ['Somalia', 'SO'], - ['Somaliland', 'SO'], - ['South Africa', 'Rand'], - ['South Korea', 'KR'], - ['South Ossetia', 'GE'], - ['Spain', 'ES'], - ['Sri Lanka', 'LK'], - ['Sudan', 'SD'], - ['Suriname', 'SR'], - ['Swaziland', 'SZ'], - ['Sweden', 'SE'], - ['Switzerland', 'CH'], - ['Syria', 'SY'], - ['Taiwan', 'TW'], - ['Tajikistan', 'TJ'], - ['Tanzania', 'TZ'], - ['Thailand', 'TH'], - ['Timor-Leste', 'TL'], - ['Togo', 'TG'], - ['Tonga', 'TO'], - ['Transnistria', 'MD'], - ['Trinidad and Tobago', 'TT'], - ['Tunisia', 'TN'], - ['Turkey', 'TR'], - ['Turkmenistan', 'TM'], - ['Tuvalu', 'TV'], - ['Uganda', 'UG'], - ['Ukraine', 'UA'], - ['United Arab Emirates', 'AE'], - ['United Kingdom', 'GB'], - ['Uruguay', 'UY'], - ['Uzbekistan', 'UZ'], - ['Vanuatu', 'VU'], - ['Vatican City', 'VA'], - ['Venezuela', 'VE'], - ['Vietnam', 'VN'], - ['Yemen', 'YE'], - ['Zambia', 'ZM'], - ['Zimbabwe', 'ZW'], -] diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/nav/CreditCardView.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/nav/CreditCardView.js deleted file mode 100755 index 63784618..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/nav/CreditCardView.js +++ /dev/null @@ -1,61 +0,0 @@ - -var CreditCardView = SerializableView.extend({ - - template: $("#creditcard_template").html(), - - cardOptions: { - accept: ['visa', 'mastercard', 'amex', 'jcb'], - }, - - events: { - }, - - initialize: function(opt){ - this.parent = opt.parent - this.setElement( this.parent.$(".cc") ) - this.$el.html(this.template) - - this.$number = this.$("[name=Number]") - this.$number.validateCreditCard(this.updateCard.bind(this), this.cardOptions) - }, - - populate: function(data){ - this.data = data - data.Number = "XXXX XXXX XXXX " + data.Number - this.$number.attr("type", "text") - this.parent.$(".cc input").val("") - this.$(".cc input").val("") - this.load_data(data) - }, - - updateCard: function(card){ - // console.log(card) - // card.card_type.name - // card.card_type.valid - }, - - validate_presence: { - 'Number': 'Please enter your credit card number.', - 'Cvv': 'Please enter your security code.', - }, - - validate_fields: function(data, errors){ - if (this.disabled) { return } - var card = this.$number.validateCreditCard(this.cardOptions) - if (! card.valid) { errors.push([ "Number", "Your card number is invalid." ]) } - if (! data.ExpirationMonth || data.ExpirationMonth == "NONE") { errors.push([ "ExpirationMonth", "Please enter the expiration month." ]) } - if (! data.ExpirationYear || data.ExpirationYear == "NONE") { errors.push([ "ExpirationYear", "Please select the expiration month." ]) } - data.UserId = auth.user_id - if (card.valid) { - data.Type = YOOX_CREDIT_CARD_NAME_LOOKUP[ card.card_type.name ] - } - }, - -}) - -var YOOX_CREDIT_CARD_NAME_LOOKUP = { - "visa": "Visa", - "mastercard": "Mastercard", - "amex": "AmericanExpress", - "jcb": "JCB", -} diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/nav/CurtainView.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/nav/CurtainView.js deleted file mode 100755 index d444fd60..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/nav/CurtainView.js +++ /dev/null @@ -1,39 +0,0 @@ -var CurtainView = View.extend({ - - el: "#curtain", - - events: { - "click": "click", - }, - - initialize: function(){ - }, - - klass: null, - show: function(klass){ - this.$el.addClass("visible") - if (klass) { - this.klass = klass - this.$el.addClass(klass) - } - }, - - hide: function(k){ - this.$el.removeClass("visible") - if (this.klass) { - setTimeout( function(){ - this.$el.removeClass(this.klass) - }.bind(this), 200 ) - } - }, - - click: function(){ - if (document.body.classList.contains("nav")) { - app.nav.hide() - } - if (app.selector.visible) { - app.selector.hide() - } - }, - -}) \ No newline at end of file diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/nav/FooterView.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/nav/FooterView.js deleted file mode 100755 index 8641668f..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/nav/FooterView.js +++ /dev/null @@ -1,41 +0,0 @@ -var FooterView = View.extend({ - - el: "#footer", - - events: { - "click .ok": "ok", - "click .cancel": "cancel", - }, - - initialize: function(){ - this.$ok = this.$(".ok") - this.$cancel = this.$(".cancel") - this.hide() - }, - - show: function(ok, cancel){ - if (cancel) { - this.$ok.removeClass("wide") - this.$cancel.show().html(cancel) - } - else { - this.$ok.addClass("wide") - this.$cancel.hide() - } - this.$ok.html(ok) - this.$el.show() - }, - - hide: function(){ - this.$el.hide() - }, - - ok: function(){ - (app.view.save || app.view.ok).bind(app.view)() - }, - - cancel: function(){ - app.view.cancel ? app.view.cancel() : app.intro.show() - }, - -}) \ No newline at end of file diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/nav/HeaderView.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/nav/HeaderView.js deleted file mode 100755 index 0961a5e8..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/nav/HeaderView.js +++ /dev/null @@ -1,57 +0,0 @@ -var HeaderView = View.extend({ - - el: "#header", - - events: { - "click .burger": "nav", - "click .logo": "logo", - "click .cart_rapper": "cart", - }, - - initialize: function(){ - this.$burger = this.$(".burger") - this.$cart = this.$(".cart") - this.$cart_count = this.$(".cart_count") - }, - - back_state: false, - set_back: function(state){ - this.back_state = state - if (state) { - this.$burger[0].className = "burger ion-ios-arrow-left" - } - else { - this.$burger[0].className = "burger ion-android-menu" - } - }, - - nav: function(){ - if (this.back_state) { - app.view.back() - } - else { - app.nav.show() - } - }, - - logo: function(){ - app.router.go("intro") - }, - - cart: function(){ - app.router.go("cart") - }, - - count: 0, - set_cart_count: function(n){ - this.count = n - this.$cart_count.html(n || "0") - }, - increment_cart_count: function(){ - this.$cart_count.html( ++this.count ) - }, - decrement_cart_count: function(){ - this.$cart_count.html( --this.count ) - }, - -}) diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/nav/IntroView.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/nav/IntroView.js deleted file mode 100755 index c075619a..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/nav/IntroView.js +++ /dev/null @@ -1,64 +0,0 @@ -var IntroView = View.extend({ - - el: "#intro", - - events: { - "click .store": "store", - "click .hub": "hub", - "click .story": "story", - "click .archive": "archive", - }, - - initialize: function(){ - this.$alert = this.$(".alert") - this.compass = this.$("#compass").get(0) - this.orient = this.deviceorientation.bind(this) - this.$alert.hide() - }, - - show: function(){ - document.body.className = "intro" - window.addEventListener("deviceorientation", this.orient) - app.footer.hide() - this.orient({ alpha: 0 }) - }, - - hide: function(){ - window.removeEventListener("deviceorientation", this.orient) - this.$alert.hide() - }, - - deviceorientation: function(e){ - var heading - if ('webkitCompassHeading' in e) { - heading = e.webkitCompassHeading || 0 - } - else { - heading = e.alpha || 0 - } - heading = - heading - this.compass.style[transformProp] = "translateZ(0) translateX(-50%) translateY(-50%) rotate(" + heading + "deg)" - }, - - store: function(e){ - e.preventDefault() - e.stopPropagation() - app.router.go("store") - }, - hub: function(e){ - e.preventDefault() - e.stopPropagation() - app.router.go("hub") - }, - story: function(e){ - e.preventDefault() - e.stopPropagation() - app.router.go("story") - }, - archive: function(e){ - e.preventDefault() - e.stopPropagation() - app.router.go("archive") - }, - -}) diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/nav/NavView.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/nav/NavView.js deleted file mode 100755 index cfb39ff6..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/nav/NavView.js +++ /dev/null @@ -1,162 +0,0 @@ -var NavView = View.extend({ - - el: "#nav", - - events: { - "click .logo": "intro", - - "click .store": "store", - "click .hub": "hub", - "click .story": "story", - "click .archive": "archive", - - "click .login": "login", - "click .logout": "logout", - "click .account": "account", - "click .faq": "faq", - "click .search": "search", - - "click .main": "back", - "click .account_back": "back", - "click .profile": "profile", - "click .payment": "payment", - "click .shipping": "shipping", - "click .settings": "settings", - "click .orders": "orders", - "click .return_link": "return_link", - - "click .faq_back": "back", - "click .privacy": "privacy", - "click .returns": "returns", - "click .terms": "terms", - "click .care": "care", - - "click .fb": "fb", - "click .insta": "insta", - "click .tw": "tw", - "click .yt": "yt", - }, - - initialize: function(){ - }, - - show: function(klass){ - $("body").addClass("nav") - app.curtain.show("dark") - if (klass) { - setTimeout(function(){ - this.addClass(klass) - }.bind(this), 500) - } - }, - - hide: function(){ - $("body").removeClass("nav") - app.curtain.hide("dark") - }, - - intro: function(){ - this.hide() - app.router.go("intro") - }, - store: function(){ - this.hide() - app.router.go("store") - }, - hub: function(){ - this.hide() - app.router.go("hub") - }, - story: function(){ - this.hide() - app.router.go("story") - }, - archive: function(){ - this.hide() - app.router.go("archive") - }, - - login: function(){ - this.hide() - auth.last_view = app.view - app.router.go("account/login") - }, - logout: function(){ - this.hide() - auth.last_view = app.view - app.router.go("account/logout") - }, - account: function(){ - this.el.className = "account" - }, - - back: function(){ - this.el.className = "" - }, - - profile: function(){ - this.hide() - app.router.go("account/profile") - }, - payment: function(){ - this.hide() - app.router.go("account/payment") - }, - shipping: function(){ - this.hide() - app.router.go("account/shipping") - }, - orders: function(){ - this.hide() - app.router.go("account/orders") - }, - settings: function(){ - this.hide() - app.router.go("account/settings") - }, - return_link: function(){ - window.open("http://www.stoneisland.com/yTos/Plugins/AreaLocalizer/Redirectarea?area=ProductExchange&controllerName=SearchOrder&actionName=Index", '_system') - }, - - - faq: function(){ - this.el.className = "faq" - }, - privacy: function(){ - this.hide() - app.router.go("page/privacy") - }, - returns: function(){ - this.hide() - app.router.go("page/returns") - }, - terms: function(){ - this.hide() - app.router.go("page/terms") - }, - care: function(e){ - e.preventDefault() - window.open("http://www.stoneisland.com/system/web/custom/hp/email.jsp", '_system') - }, - - - search: function(){ - this.hide() - app.router.go("search") - }, - - - fb: function(){ - window.open(is_ios ? "facebook://profile/231623463406" : "https://www.facebook.com/StoneIsland", '_system') - }, - insta: function(){ - window.open("https://instagram.com/stoneisland_official", '_system') - }, - tw: function(){ - window.open("https://twitter.com/stoneisland", '_system') - }, - yt: function(){ - window.open("https://www.youtube.com/user/StoneIslandOfficial", '_system') - }, - -}) diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/nav/SearchView.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/nav/SearchView.js deleted file mode 100755 index b477d72f..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/nav/SearchView.js +++ /dev/null @@ -1,16 +0,0 @@ -var SearchView = View.extend({ - - el: "#search", - - events: { - }, - - show: function(){ - app.footer.show("SEARCH") - document.body.className = "search" - }, - - save: function(){ - }, - -}) \ No newline at end of file diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/ClosedStoreView.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/ClosedStoreView.js deleted file mode 100755 index 97b46006..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/ClosedStoreView.js +++ /dev/null @@ -1,75 +0,0 @@ -var ClosedStoreView = View.extend({ - - el: "#closed", - - storeIsClosed: false, - - events: { - "click .website_link": "website_link", - }, - - delay: 8000, - - timeout: -1, - images: null, - images_loaded: {}, - - initialize: function(){ - this.loader = new Loader () - }, - - show: function(){ - this.setMessage(app.closed.storeClosedMessageOne, app.closed.storeClosedMessageTwo) - this.showElement() - }, - - showElement: function(){ - document.body.className = "closed" - this.animate() - app.footer.hide() - }, - - setMessage: function(msg_one, msg_two){ - $(".closed_store_msg h3").html(msg_one || "THIS STORE IS CURRENTLY CLOSED") - if (app.closed.storeClosedMessageTwo) { - $(".closed_store_msg h4").show().html(msg_two) - } - else { - $(".closed_store_msg h4").hide() - } - }, - - hide: function(){ - clearTimeout(this.timeout) - }, - - animate: function(){ - this.timeout = setTimeout(this.animate.bind(this), this.delay) - this.next() - }, - - next: function(){ - if (! this.images) return - var url = choice(this.images) - - if (this.images_loaded[url]) { - this.el.style.backgroundImage = 'url(' + url + ')' - } - else { - this.loader.preloadImage(url, function(img){ - this.el.style.backgroundImage = 'url(' + url + ')' - this.images_loaded[url] = true - }.bind(this)) - } - }, - - populate: function(data){ - this.images = data.map(function(img){ return img.uri }) - this.next() - }, - - website_link: function(){ - window.open("http://www.stoneisland.com/", '_system') - }, - -}) \ No newline at end of file diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/CollectionView.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/CollectionView.js deleted file mode 100755 index 7c73d66f..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/CollectionView.js +++ /dev/null @@ -1,246 +0,0 @@ - -var CollectionView = ScrollableView.extend({ - - el: "#collection", - template: $("#collection .template").html(), - loaded: false, - data: null, - filtered_items: null, - items: {}, - - events: { - "touchstart .item": "touchstart", - "touchmove .item": "touchmove", - "touchend .item": "touchend", - "mousedown .item": "touchstart", - "mousemove .item": "touchmove", - "mouseup .item": "touchend", - "touchstart h1": "showDepartmentSelector", - }, - - initialize: function(){ - this.$title = this.$("h1") - this.$content = this.$(".content") - this.$loader = this.$(".loader") - this.scroller = new IScroll('#collection', app.iscroll_options) - this.departmentFilterView = new DepartmentFilter ({ parent: this }) - this.sizeFilterView = new SizeFilter ({ parent: this }) - }, - - show: function(){ - if (! navigator.onLine) { - app.closed.showElement() - app.closed.setMessage("PLEASE GO ONLINE TO BROWSE
    THE STONE ISLAND STORE.", "") - return - } - if (sdk.env !== "test" && app.closed.storeIsClosed) { - return app.closed.show() - } - -// if (sdk.env === 'test' && this.data.SearchResponseFull.Results.Items.length < 4) { -// var items = this.data.SearchResponseFull.Results.Items -// items = items.concat(items).concat(items).concat(items) -// items = items.concat(items).concat(items).concat(items) -// this.data.SearchResponseFull.Results.Items = items -// } - - if (this.data && this.data.SearchResponseFull.Results.Items.length < 4) { - app.footer.hide() - } - if (app.store.FilterBy !== "none") { - if (app.store.FilterBy === "category") { - app.footer.show("FILTER") - } - else { - app.footer.show("FILTER BY " + app.store.FilterBy.toUpperCase()) - } - } - document.body.className = "collection" - if (this.loaded) { - console.log("collection this loaded") - return this.populate(this.data) - } - else { - this.fetch() - } - }, - - // called when footer is tapped - filter by (x) - save: function(){ - switch (app.store.FilterBy) { - case 'none': - this.departmentFilterView.filter() - break - case 'size': - this.sizeFilterView.filter() - break - } - }, - - fetch: function(){ - console.log("collection fetch") - if (this.loaded) { - console.log("collection loaded") - return - } - this.$loader.show() - console.log("fetching", app.department_id) - sdk.product.collection({ - department_id: app.department_id, - success: this.populate.bind(this) - }) - }, - - refresh: function(){ - this.loaded = false - this.fetch() - }, - - populate: function(data){ - if (this.loaded && ! data) { - console.log("populate 1") - data = this.data - } - else { - console.log("populate 2") - this.data = data - this.loaded = false - // console.log(data) - } - console.log(">>>>>>>> YES ") - if (! this.loaded) { - console.log("populate 3", data.SearchResponseFull.Results.Items.length) - this.loaded = true - this.$loader.hide() - this.$content.empty() - // DefaultCode10 -// data.SearchResponseFull.Results.Items.length = 1 - var is_single_product = (data.SearchResponseFull.Results.Items.length < 4) - this.$el.toggleClass("single", is_single_product) - - if (is_single_product) { - console.log("IS SINGLE PRODUCT") - var item = data.SearchResponseFull.Results.Items[0] - var url = sdk.image(item['DefaultCode10'], '13_f') - console.log(url) - var img = new Image () - img.src = url - } - -// if (data.SearchResponseFull.Results.Items.length == 1) { -// app.footer.hide() -// } -// else { -// app.footer.show("FILTER") -// } - - console.log( data.SearchResponseFull.Results.Items.length ) - - var items = this.filtered_items || data.SearchResponseFull.Results.Items - if (app.store.GroupBy === 'size') { - this.groupBySize( items, is_single_product ) - } - else { - this.appendItems( items, is_single_product ) - } - // this.restoreScroll() - // this.deferScrollToTop() - } - this.afterFetchCallback && this.afterFetchCallback() - this.deferRefresh() - this.restoreScroll() - }, - - groupBySize: function(items, is_single_product){ - var groups = {} - items.forEach(function(item){ - if (! item.Sizes.length) return - var size = item.Sizes[0] - var id = size['Text'] - if ( ! (id in groups) ) { - groups[id] = { - label: SIZE_LOOKUP[ id ], - items: [], - } - } - groups[id].items.push( item ) - }.bind(this)) - - Object.keys(groups).sort(function(a,b){ - var ao = SIZE_ORDER.indexOf( a ) - var bo = SIZE_ORDER.indexOf( b ) - return ao - bo - }).forEach(function(id){ - var size = groups[id] - var $el = $("
    ") - $el.addClass("product-group") - $el.html( size.label ) - this.$content.append($el) - this.appendItems( size.items, is_single_product ) - }.bind(this)) - }, - - appendItems: function(items, is_single_product){ - items.forEach(function(item){ - this.append(item, is_single_product) - }.bind(this)) - }, - - append: function(item, is_single_product){ - this.items[ item['Code8'] ] = item - var t = this.template.replace(/{{image}}/, sdk.image(item['DefaultCode10'], is_single_product ? '13_f' : '11_f')) - .replace(/{{code8}}/, item['Code8']) - var $t = $(t) - if (app.store.ShowProductNameOnCollectionPage) { - var $title = $("") - $title.addClass("product-title") - $title.html( item['ModelNames'] ) - $t.append($title) - } - this.$content.append($t) - }, - - pick: function(e){ - var code = $(e.currentTarget).data("code") - var data = this.items[code] - this.saveScroll() - app.product.load(code, data) - }, - - collectionName: "STONE ISLAND", - setCollectionName: function(name){ - this.collectionName = name - this.$title.html(this.collectionName) - }, - - // filter by department - showDepartmentSelector: function(){ - if (this.$("h1").hasClass("single-dept")) { - this.departmentFilterView.filter() - } - }, - - firstTouch: { x: 0, y: 0, id: "" }, - lastTouch: { x: 0, y: 0, id: "" }, - touchstart: function(e){ - var p = e.originalEvent.touches ? e.originalEvent.touches[0] : e.originalEvent - this.firstTouch.x = this.lastTouch.x = p.pageX - this.firstTouch.y = this.lastTouch.y = p.pageY - this.firstTouch.id = e.currentTarget.dataset.id - }, - touchmove: function(e){ - var p = e.originalEvent.touches ? e.originalEvent.touches[0] : e.originalEvent - this.lastTouch.x = p.pageX - this.lastTouch.y = p.pageY - this.lastTouch.id = e.currentTarget.dataset.id - }, - touchend: function(e){ - var first = app.collection.firstTouch - var last = app.collection.lastTouch - var distance = Math.sqrt( Math.pow(first.x - last.x, 2) + Math.pow(first.y - last.y, 2) ) - if (distance < 20) { - this.pick(e) - } - }, - -}) diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/GalleryView.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/GalleryView.js deleted file mode 100755 index 1428aca9..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/GalleryView.js +++ /dev/null @@ -1,65 +0,0 @@ -var GalleryView = View.extend({ - - el: "#gallery", - template: $("#gallery .template").html(), - - events: { -// "click .left": "prev", -// "click .right": "next", -// "touchstart .gallery": "touchstart", -// "touchmove .gallery": "touchmove", -// "touchend .gallery": "touchend", - }, - - initialize: function(){ - this.$(".template").remove() - }, - - reset: function(){ - this.gallery && this.gallery.destroy() - this.$el.empty() - }, - - populate: function(code, image_ids){ - var valid_styles = {} - image_ids.forEach(function(id){ - if (id.indexOf("_") == -1) return - var partz = id.split("_") - var size = parseInt(partz[0]), style = partz[1] - if (size > 13) return; - if (! valid_styles[style] || valid_styles[style] < size) { - valid_styles[style] = size - } - }) - Object.keys(valid_styles).sort(sort_image_styles).forEach(function(style){ - var id = valid_styles[style] + "_" + style - var t = this.template.replace(/{{image}}/, sdk.image(code, id)) - this.$el.append(t) - }.bind(this)) - - this.gallery = new Flickity( "#gallery", { - selector: '.item', - cellAlign: 'center', - autoPlay: false, - freeScroll: false, - wrapAround: true, - imagesLoaded: true, - prevNextButtons: false, - pageDots: false, - contain: true, - draggable: true, - }) - }, - - touchstart: function(e){ - }, - touchmove: function(e){ - }, - touchend: function(e){ - }, - -}) - -var YOOX_IMAGE_STYLE_ORDER = "ZZZ f r d e a b c g l".split(" ") - -function sort_image_styles (b,a){ return (YOOX_IMAGE_STYLE_ORDER.indexOf(b)) - (YOOX_IMAGE_STYLE_ORDER.indexOf(a)) } \ No newline at end of file diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/ProductView.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/ProductView.js deleted file mode 100755 index 6972b436..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/ProductView.js +++ /dev/null @@ -1,497 +0,0 @@ - -var ProductView = ScrollableView.extend({ - - el: "#product", - - events: { - "click .fit": "scroll_to_bottom", - "click .size": "select_size", - "click .color": "select_color", - "click .share": "share", - "click .gallery-left": "gallery_left", - "click .gallery-right": "gallery_right", - }, - - initialize: function(){ - this.gallery = new GalleryView () - this.scroller = new IScroll('#product', app.iscroll_options) - - this.$productHeader = this.$(".product-header") - this.$title = this.$(".title") - this.$type = this.$(".type") - this.$price = this.$(".price") - this.$size = this.$(".size") - this.$share = this.$(".share") - this.$color = this.$(".color") - this.$body = this.$(".body") - this.$fit = this.$(".fit") - this.$sizing = this.$(".sizing") - this.$style = this.$(".style") - }, - - show: function(){ - this.showFooter() - document.body.className = "product" - }, - hide: function(){ - }, - - showFooter: function(){ - if (this.not_available) { - app.footer.show("SOLD OUT") - } - else { - app.footer.show("ADD TO CART", "BUY NOW") - } - }, - - item: null, - details: null, - size: null, - color: null, - code: null, - is_onesize: false, - fitLargeCodes: {}, - - sizes: null, - colors: null, - - cache: {}, - - gallery_left: function(){ - app.product.gallery.gallery.previous() - }, - gallery_right: function(){ - app.product.gallery.gallery.next() - }, - - find: function(code, cb){ - data = app.collection.items[code] || {} - if (code in this.cache) { - return cb(data, this.cache[code]) - } - sdk.product.item({ - code: code - }).done(function(details){ - this.cache[code] = details - cb(data, details) - }.bind(this)) - }, - - load: function(code, data){ - this.gallery.reset() - this.show() - if (app.view && app.view.hide) { - app.view.hide() - } - app.view = this - app.header.set_back(true) - - if (! app.collection.loaded) { - this.el.className = "loading" - app.collection.afterFetchCallback = this.load.bind(this, code, data) - app.collection.fetch() - return - } - else { - app.collection.afterFetchCallback = null - } - window.location.href = "#/store/" + code - - if (data) { - app.collection.items[code] = data - } - - this.el.className = "loading" - this.find(code, this.populate.bind(this)) - }, - - populate: function(data, details){ - this.el.className = "" - - console.log(data, details) - - var descriptions = this.get_descriptions(details) - - var title = data['ModelNames'] - var type = title_case( data['MicroCategory'] ) - var price = "$" + data['DiscountedPrice'] + ".00" - var details_description = descriptions['Details'] || "" - var editorial = descriptions['EditorialDescription'] || "" - var body = details_description + " " + editorial - // body = body.replace(/
    /g, "

    ").replace(/(
    )+$/, "") - - var default_color_id = this.populate_selectors(data, details) - - if (this.not_available) { - this.$style.css("opacity", 0) - this.$color.html("NOT AVAILABLE") - this.$size.hide() - this.gallery.populate( data['Code8'], details['Item']['ImageTypes'] ) - } - else { - this.$style.css("opacity", 1) - - var color = this.colors[default_color_id] - var color_label = color.label - var sizes = this.find_sizes_for_color(default_color_id) - var size = sizes[0] - var size_label = this.sizes[size].label - - this.gallery.populate( color.code, details['Item']['ImageTypes'] ) - - this.color = color - this.size = size - - this.is_onesize = !! this.sizes[1] - - this.$size.show().html(size_label) - if (color_label) { - this.$color.html(color_label) - } - else { - this.$color.hide() - } - } - - // console.log(color, color_label, size, size_label) - - this.item = data - this.details = details['Item'] - this.code = data['DefaultCode10'] - - console.log( data['DefaultCode10'] ) - - this.$title.html(title) - this.$type.html(type) - this.$price.html(price) - this.$body.html(body) - - // window.FirebasePlugin && window.FirebasePlugin.setScreenName('product:' + code) - - this.$productHeader.toggleClass("wide", title.length > 48) - - var fits_large = !! this.fitLargeCodes[this.code] - app.product.$fit.toggle( fits_large ) - app.product.$sizing.toggle( fits_large ) - - this.showFooter() - - this.deferScrollToTop() - }, - - get_descriptions: function (details){ - var descriptions = {} - details['Item']['Descriptions'].forEach(function(pair){ - descriptions[pair.Key] = pair.Value - }) - return descriptions - }, - find_sizes_for_color: function(color_id){ - return Object.keys( this.colors[color_id].sizes ).sort(function(a,b){ - var ao = SIZE_ORDER[ a.label ], bo = SIZE_ORDER[ b.label ] - return aoShort sleeve T-Shirt in cotton jersey. Garment dyed.
    Stone Island Compass logo print on the front, made up of a series of numbers." -ItemDescription: "Logo detail
    Jersey
    Round collar
    Solid color
    " -KeywordDescription: "Logo detail Jersey Round collar Solid color Jersey Woven not made of fur " -Kind of fabric: "Woven" -MFC: "631520081CC-6315-81V0060" -MacroCategory: "POLO SHIRTS & T-SHIRTS" -MadeIn: "Made In Turkmenistan" -MadeInIsoCode: "TN" -MainMaterial: "Cotton" -Material Description: "Jersey" -MicroCategory: "Short sleeve t-shirt" -MicroCategoryPlural: "Short sleeve t-shirts" -ModelFabric: "631520081CC-6315-81" -ModelNames: "20081 DATA DRIP PIN" -Neckline: "Claudine or round collar" - -*/ diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/Selector.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/Selector.js deleted file mode 100755 index 9c1109f6..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/Selector.js +++ /dev/null @@ -1,70 +0,0 @@ -var Selector = View.extend({ - - el: "#selector", - template: $("#selector .template").html(), - - events: { - "click .close": "hide", - "touchstart .options div": "pick", - }, - - initialize: function(){ - this.$options = this.$(".options") - }, - - lookup: null, - callback: null, - select: function(origin, options, callback){ - this.lookup = {} - this.callback = callback || function(item){ console.log(item) } - this.$options.empty() - options.forEach(function(opt){ - this.lookup[String(opt.id)] = opt - var t = this.template.replace(/{{id}}/, opt.id) - .replace(/{{label}}/, opt.label) - this.$options.append(t) - }.bind(this)) - this.$el.show() - app.curtain.show("white") - this.visible = true - $("#selector").removeClass("selector-outer-wrap") - if ( origin == "wide") { - $("#selector").addClass("selector-full") - } - else { - $("#selector").removeClass("selector-full") - } - var originXY = $("." + origin).offset() - var originWidth = $("." + origin).width() - var selectorHeight = $('#selector').height() - var originHeight = $("." + origin).height() - console.log(selectorHeight) - if ((selectorHeight > 250) && (!$("#selector").hasClass("selector-full"))) { - $("#selector").addClass("selector-outer-wrap") - } - var selectorHeight = $('#selector').height() - $("#selector").css({"top":(originXY.top - selectorHeight - originHeight + 20),"left":originXY.left}) - originXY = null; - originWidth = null; - originHeight = null; - selectorHeight = null; - }, - - hide: function(){ - this.lookup = this.callback = null - this.$el.hide() - app.curtain.hide() - this.visible = false - }, - - pick: function(e){ - e.preventDefault() - e.stopPropagation() - var $option = $(e.currentTarget) - var id = String($option.data("id")) - var selection = this.lookup[id] - this.callback( selection ) - this.hide() - }, - -}) diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/filters/CategoryFilter.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/filters/CategoryFilter.js deleted file mode 100755 index 53f9a59b..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/filters/CategoryFilter.js +++ /dev/null @@ -1,40 +0,0 @@ -var CategoryFilter = View.extend({ - - initialize: function(opt){ - this.parent = opt.parent - }, - - filter: function(){ - var cats = this.parent.data.SearchResponseFull.Refinements.Filters.Categories.map(function(cat){ - return { - id: cat.Id, - label: cat.Value - } - }) - if (this.last_choice) { - cats.push({ - id: "__remove_filter", - label: "REMOVE FILTER", - }) - } - app.selector.select("wide", cats, this.pick.bind(this)) - }, - - last_choice: null, - - pick: function(choice){ - this.parent.$content.empty() - if (choice.id == "__remove_filter") { - this.last_choice = null - this.parent.data.SearchResponseFull.Results.Items.forEach(this.parent.append.bind(this.parent)) - } - else { - this.last_choice = choice - this.parent.data.SearchResponseFull.Results.Items.filter(function(item){ - return item.MacroCategory == choice.label - }).forEach(this.parent.append.bind(this.parent)) - } - this.parent.deferScrollToTop() - }, - -}) diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/filters/DepartmentFilter.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/filters/DepartmentFilter.js deleted file mode 100644 index 7d5ccf3d..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/filters/DepartmentFilter.js +++ /dev/null @@ -1,30 +0,0 @@ -var DepartmentFilter = View.extend({ - - initialize: function(opt){ - this.parent = opt.parent - }, - - filter: function(){ - var deps = app.departments.map(function(dep){ - return { - id: dep.uri, - label: dep.text, - } - }) - app.selector.select("wide", deps, this.pick.bind(this)) - }, - - last_choice: null, - - pick: function(choice){ - this.parent.$content.empty() - this.last_choice = choice - app.department_id = choice.id - app.collection.loaded = false - app.collection.fetch() - app.footer.hide() - app.collection.setCollectionName(choice.label) - this.parent.deferScrollToTop() - }, - -}) diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/filters/SizeFilter.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/filters/SizeFilter.js deleted file mode 100644 index d0231021..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/filters/SizeFilter.js +++ /dev/null @@ -1,60 +0,0 @@ -var SizeFilter = View.extend({ - - initialize: function(opt){ - this.parent = opt.parent - }, - - filter: function(){ - var seen_sizes = {} - var sizes = [] - this.parent.data.SearchResponseFull.Results.Items.forEach(function(item){ - item.Sizes.forEach(function(size){ - if (size.Id in seen_sizes) { - return - } - seen_sizes[size.Id] = true - sizes.push(size) - }) - }) - sizes.sort(function(a,b){ - return a.Id - b.Id - }) - - var cats = sizes.map(function(cat){ - return { - id: cat.Id, - label: cat.Text, - } - }) - if (this.last_choice) { - cats.push({ - id: "__remove_filter", - label: "REMOVE FILTER", - }) - } - app.selector.select("wide", cats, this.pick.bind(this)) - }, - - last_choice: null, - - pick: function(choice){ - this.parent.$content.empty() - if (choice.id == "__remove_filter") { - this.last_choice = null - this.parent.filtered_items = null - this.parent.data.SearchResponseFull.Results.Items.forEach(this.parent.append.bind(this.parent)) - } - else { - this.last_choice = choice - console.log("filtering for size", choice.id) - var items = this.parent.data.SearchResponseFull.Results.Items.filter(function(item){ - console.log(item.Sizes.map(function(s){ return s })) - return item.Sizes.some(function(size){ return size.Id == choice.id }) - }) - this.parent.filtered_items = items - items.forEach(this.parent.append.bind(this.parent)) - } - this.parent.deferScrollToTop() - }, - -}) diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/view/Router.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/view/Router.js deleted file mode 100755 index a8ec331f..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/view/Router.js +++ /dev/null @@ -1,75 +0,0 @@ -var Router = View.extend({ - - routeByHash: false, - - go: function(url){ - this.parseRoute(url) - }, - - route: function(){ - var path = this.routeByHash ? window.location.hash.substr(0) : window.location.pathname - path = path || "/" - this.originalPath = path - this.parseRoute(path) - }, - - parseRoute: function(pathname){ - - pathname = pathname.replace(/^#/, "") - - if (pathname[0] !== "/") { pathname = "/" + pathname } - - var routes = this.routes, - path = pathname.split("/"); - - for (var i = 0; i < path.length; i++) { - if (! path[i].length) { - path[i] = null - } - } - - if (pathname in routes) { - this[this.routes[pathname]]() - return - } - - if (path[path.length-1] == null) { - path.pop() - } - - for (var route in routes) { - var routePath = route.split("/") - if (routePath[1] == path[1]) { - if (routePath[2] && routePath[2].indexOf(":") !== -1 && path[2] && (path[3] === routePath[3]) ) { - this[this.routes[route]](path[2]) - return - } - else if (routePath[2] == path[2]) { - if (routePath[3] && path[3]) { - if (routePath[3].indexOf(":") !== -1) { - this[this.routes[route]](path[3]) - return - } - else if (routePath[3] == path[3]) { - this[this.routes[route]]() - return - } - } - else if (! routePath[3] && ! path[3]) { - this[this.routes[route]]() - return - } - } - else if (! routePath[2] && (! path[2].length || ! path[2])) { - this[this.routes[route]]() - return - } - } - } - - if (is_mobile) { - window.location.href = "/" - } - } - -}) diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/view/Scrollable.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/view/Scrollable.js deleted file mode 100755 index 7f90929a..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/view/Scrollable.js +++ /dev/null @@ -1,44 +0,0 @@ -var ScrollableView = View.extend({ - - events: { - "load img": "deferRefresh", - }, - - deferScrollToTop: function(){ - this.scrollPosition = 0 - setTimeout(this.scrollToTop.bind(this), 0) - }, - - scrollPosition: 0, - - resetScroll: function(){ - this.scrollPosition = 0 - }, - - saveScroll: function(){ - this.scrollPosition = this.scroller.y - }, - - restoreScroll: function(){ - setTimeout(function(){ - this.scroller.scrollTo(0, this.scrollPosition) - }.bind(this), 0) - }, - - refreshScroller: function(){ - this.scroller.refresh() - clearTimeout( this.scrollerRefreshTimeout ) - }, - - scrollerRefreshTimeout: null, - deferRefresh: function(){ - clearTimeout( this.scrollerRefreshTimeout ) - this.scrollerRefreshTimeout = setTimeout(this.refreshScroller.bind(this)) - }, - - scrollToTop: function(){ - this.scroller.refresh() - this.scroller.scrollTo(0, 0) - }, - -}) \ No newline at end of file diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/view/Serializable.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/view/Serializable.js deleted file mode 100755 index fa4eba02..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/view/Serializable.js +++ /dev/null @@ -1,169 +0,0 @@ -var SerializableView = View.extend({ - - events: { - "change select": "update_select", - "change [type=date]": "update_date", - "focus input": "focus_input", - "click .date-wrapper": "focus_date", - "submit form": "save", - }, - - preload: function(data){ - if (! data && sdk.env == "production") { return } - data = data || this.test_data - if (! data) { return } - this.load_data(data) - }, - - load_data: function(data){ - Object.keys(data).forEach(function(key){ - var value = data[key] - var $el = this.$("[name=" + key + "]") - - if ($el.attr("type") == "checkbox") { - $el.prop("checked", value) - } - if ($el.attr("type") == "date") { - $el.val( value ) - this.update_date({ currentTarget: $el }) - } - else if ($el.prop("tagName") == "SELECT") { - $el.val( value ) - this.update_select({ currentTarget: $el }) - } - else { - $el.val( value ) - } - }.bind(this)) - }, - - serialize: function(){ - var fields = {} - this.$("input[name], select[name], textarea[name]").each( function(){ - if (this.type == "checkbox") { - if ($(this).prop("checked")) { - fields[this.name] = this.value - } - } - else { - fields[this.name] = this.value - } - }) - return fields - }, - - deserialize: function(data){ - this.$("input[name], textarea[name]").val("") - Object.keys(data).forEach(function(k){ - this.$("[" + k + "]").val(data[k]) - }) - }, - - focus_input: function(e){ - $(e.currentTarget).removeClass("error_hilite") - }, - - focus_date: function(e){ - $(e.currentTarget).find("input").focus() - }, - - update_select: function(e){ - var $target = $(e.currentTarget), value = $target.val() - var label = $target.find("option").filter(function(){ return this.value === value }).html() - $target.parent().addClass("picked") - $target.parent().find("span").html(label) - }, - - update_date: function(e){ - var $target = $(e.currentTarget), value = $target.val() - var label = moment(value).format("MM/DD/YYYY") - $target.parent().addClass("picked") - $target.parent().find("span").html(label) - }, - - validate: function(data, errors){ - var data = data || this.serialize() - var errors = errors || [] - var presence_msgs = this.validate_presence || {} - if (! this.disabled) { - Object.keys(presence_msgs).forEach(function(k){ - if (! data[k]) errors.push( [ k, presence_msgs[k] ] ) - }) - } - this.validate_fields && this.validate_fields(data, errors) - this.cc && this.cc.validate(data, errors) - this.address && this.address.validate(data, errors) - return { errors: errors, data: data } - }, - - show_errors: function(errors){ - console.log("showing errors") - console.log(errors) - var msgs = [] - errors.forEach(function(e, i){ - if (i > 0) { return } - this.$("[name=" + e[0] + "]").addClass('error_hilite') - msgs.push(e[1]) - }.bind(this)) - this.$msg.html(msgs.join("
    ")) - this.$msg.addClass('alert-notice') - }, - - hide_errors: function(){ - this.$msg.removeClass('alert-notice') - this.$msg.html("") - }, - - finalize: function(data){ - return data - }, - - save: function(e){ - e && e.preventDefault() - - var valid = this.validate() - if (valid.errors.length) { - this.show_errors(valid.errors) - return - } - else { - this.hide_errors() - cordova.plugins.Keyboard.close() - } - - var finalized_data = this.finalize(valid.data) - this.submit( finalized_data ) - }, - - submit: function(data){ - if (! data) { - return - } - app.curtain.show("loading") - this.action({ - data: data, - success: function(data){ - app.curtain.hide("loading") - this.success(data) - }.bind(this), - error: function(data){ - app.curtain.hide("loading") - console.log("api error") - this.error(data) - }.bind(this), - }) - }, - - success: function(data){ - console.log("SUCCESS") - console.log(data) - }, - - error: function(data){ - console.log("FAIL") - console.log(data) - }, - -}) - -var FormView = View.extend(SerializableView.prototype).extend(ScrollableView.prototype) diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/view/View.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/view/View.js deleted file mode 100755 index 2401df0d..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/view/View.js +++ /dev/null @@ -1,147 +0,0 @@ -var View = (function($, _){ - - var View = function(options) { - this._id = _.uniqueId('view') - this.type = "view" - options || (options = {}); - _.extend(this, _.pick(options, viewOptions)) - this._ensureElement() - this.initialize.apply(this, arguments) - this.delegateEvents() - } - - var delegateEventSplitter = /^(\S+)\s*(.*)$/; - - var viewOptions = ['model', 'collection', 'el', 'id', 'attributes', 'className', 'tagName', 'events']; - - _.extend(View.prototype, { - - // The default `tagName` of a View's element is `"div"`. - tagName: 'div', - - $: function(selector) { - return this.$el.find(selector); - }, - - initialize: function(){}, - - setElement: function(element, delegate) { - if (this.$el) this.undelegateEvents(); - this.$el = element instanceof $ ? element : $(element); - this.el = this.$el[0]; - if (delegate !== false) this.delegateEvents(); - return this; - }, - - // Set callbacks, where `this.events` is a hash of - // - // *{"event selector": "callback"}* - // - // { - // 'mousedown .title': 'edit', - // 'click .button': 'save', - // 'click .open': function(e) { ... } - // } - // - // pairs. Callbacks will be bound to the view, with `this` set properly. - // Uses event delegation for efficiency. - // Omitting the selector binds the event to `this.el`. - // This only works for delegate-able events: not `focus`, `blur`, and - // not `change`, `submit`, and `reset` in Internet Explorer. - delegateEvents: function(events) { - if (!(events || (events = _.result(this, 'events')))) return this; - this.undelegateEvents(); - for (var key in events) { - var method = events[key]; - if (!_.isFunction(method)) method = this[events[key]]; - if (!method) continue; - - var match = key.match(delegateEventSplitter); - var eventName = match[1], selector = match[2]; - method = _.bind(method, this); - if (is_mobile) { - if (eventName === 'mouseenter' || eventName === 'mouseleave') { - continue - } - if (is_android && eventName === 'click') { - eventName = 'touchstart' - } - } - eventName += '.delegateEvents' + this._id; - if (selector === '') { - this.$el.on(eventName, method); - } else { - this.$el.on(eventName, selector, method); - } - } - return this; - }, - - // Clears all callbacks previously bound to the view with `delegateEvents`. - undelegateEvents: function() { - this.$el.off('.delegateEvents' + this._id); - return this; - }, - - // Ensure that the View has a DOM element to render into. - // If `this.el` is a string, pass it through `$()`, take the first - // matching element, and re-assign it to `el`. Otherwise, create - // an element from the `id`, `className` and `tagName` properties. - _ensureElement: function() { - this.setElement(_.result(this, 'el'), false); - }, - - preventDefault: function(e){ - e && e.preventDefault() - }, - - stopPropagation: function(e){ - e && e.stopPropagation() - }, - - }); - - - var extend = function(protoProps, staticProps) { - var staticProps = staticProps || {} - var parent = this; - var child; - var childEvents = {}; - - // The constructor function for the new subclass is either defined by you - // (the "constructor" property in your `extend` definition), or defaulted - // by us to simply call the parent's constructor. - if (protoProps && _.has(protoProps, 'constructor')) { - child = protoProps.constructor; - } else { - child = function(){ return parent.apply(this, arguments); }; - } - - // Extend events so we can subclass views - _.extend(childEvents, parent.prototype.events, protoProps.events) - - // Add static properties to the constructor function, if supplied. - _.extend(child, parent, staticProps); - - // Set the prototype chain to inherit from `parent`, without calling - // `parent`'s constructor function. - var Surrogate = function(){ this.constructor = child; }; - Surrogate.prototype = parent.prototype; - child.prototype = new Surrogate; - - // Add prototype properties (instance properties) to the subclass, - // if supplied. - if (protoProps) _.extend(child.prototype, protoProps); - - // Set a convenience property in case the parent's prototype is needed - // later. - child.prototype.__super__ = parent.prototype; - child.prototype.events = childEvents - - return child; - }; - - View.extend = extend; - - return View; -})(jQuery, _) diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/sdk/_sdk.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/sdk/_sdk.js deleted file mode 100755 index 7b4966a5..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/sdk/_sdk.js +++ /dev/null @@ -1,43 +0,0 @@ -var sdk = (function(){ - var sdk = {} - - sdk.env = "development" - - var endpoint = "https://secure.api.yoox.biz/" - // var endpoint = "http://api.yoox.biz/" - - sdk.init = function(opt){ - switch (sdk.env = opt.env || "development") { - case 'test': - endpoint = window.location.origin + "/" - break - default: - case 'development': - endpoint = "/" - break - case 'production': - endpoint = "https://secure.api.yoox.biz/" - break - } - } - - sdk.path = function(api, path){ - return endpoint + api + "/STONEISLAND_US/" + path - } - - sdk.image = function(code, size){ - return "https://cdn.yoox.biz/" + code.substr(0,2) + "/" + code + "_" + size + ".jpg" - } - - sdk.cms = function(){ - return "https://stone.giraffe.life" - // return "https://staging.stone.giraffe.life" - } - - $.ajaxSetup({ - // possibly: application/json; charset=utf-8" - contentType: "application/json", - }) - - return sdk -})() \ No newline at end of file diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/sdk/account.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/sdk/account.js deleted file mode 100755 index 3eb3f3bd..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/sdk/account.js +++ /dev/null @@ -1,133 +0,0 @@ -sdk.account = (function(){ - - var user_id, access_token - - // https://gist.github.com/fanfare/d18498e7fa25acbd4486 - var account = {} - account.signup = function(opt){ - return $.ajax({ - method: "POST", - url: sdk.path("Account.API/1.5", "users.json"), - headers: { - "x-yoox-appname": auth.appname, - "x-yoox-api-key": auth.apikey, - }, - data: JSON.stringify( opt.data ), - success: function(data){ - user_id = data['UserAccount']['UserId'] - access_token = data['UserAccount']['AccessToken'] - - auth.set_user(user_id, access_token) - - opt.success(data) - }, - error: opt.error, - }) - } - - account.login = function(opt){ - return $.ajax({ - method: "POST", - url: sdk.path("Account.API/1.5", "authfull.json"), - headers: { - "x-yoox-appname": auth.appname, - "x-yoox-account-token": auth.access_token, - }, - data: JSON.stringify( opt.data ), - success: function(data){ - auth.user = data['UserFull'] - user_id = data['UserFull']['idUser'] - access_token = data['UserFull']['AccessToken'] - - auth.set_user(user_id, access_token) - - opt.success(data) - }, - error: opt.error, - }) - } - - account.checkin = function(opt){ - return $.ajax({ - method: "GET", - url: sdk.path("Account.API/1.5", "users/" + auth.user_id + ".json"), - headers: { - "x-yoox-appname": auth.appname, - "x-yoox-account-token": auth.access_token, - }, - data: "{}", - success: function(data){ - auth.user = data.User - opt.success(data) - }, - error: opt.error, - }) - } - - account.update = function(opt){ - return $.ajax({ - method: "PUT", - url: sdk.path("Account.API/1.5", "users/" + auth.user_id + ".json"), - headers: { - "x-yoox-appname": auth.appname, - "x-yoox-account-token": auth.access_token, - }, - data: JSON.stringify( opt.data ), - success: function(data){ - opt.success(data) - }, - error: opt.error, - }) - } - - account.update_mail_and_password = function(opt){ - return $.ajax({ - method: "PUT", - url: sdk.path("Account.API/1.5", "auth/" + auth.user_id + ".json"), - headers: { - "x-yoox-appname": auth.appname, - "x-yoox-account-token": auth.access_token, - }, - data: JSON.stringify( opt.data ), - success: function(data){ - opt.success(data) - }, - error: opt.error, - }) - } - - account.fetch_orders = function(opt){ - return $.ajax({ - method: "GET", - url: sdk.path("Account.API/1.5", "users/" + auth.user_id + "/orders.json"), - headers: { - "x-yoox-appname": auth.appname, - "x-yoox-account-token": auth.access_token, - }, - data: JSON.stringify( opt.data ), - success: function(data){ - opt.success(data) - }, - error: opt.error, - }) - } - - account.fetch_single_order = function(opt){ - return $.ajax({ - method: "GET", - url: sdk.path("Account.API/1.5", "users/" + auth.user_id + "/orders/" + opt.id + ".json"), - headers: { - "x-yoox-appname": auth.appname, - "x-yoox-account-token": auth.access_token, - }, - data: JSON.stringify( opt.data ), - success: function(data){ - opt.success(data) - }, - error: opt.error, - }) - } - - return account - -})() diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/sdk/address.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/sdk/address.js deleted file mode 100755 index 1256df54..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/sdk/address.js +++ /dev/null @@ -1,78 +0,0 @@ -sdk.address = (function(){ - var address = {} - - address.list = function(opt){ - return $.ajax({ - method: "GET", - url: sdk.path("Account.API/1.5", "users/" + auth.user_id + "/addressBook.json"), - headers: { - "x-yoox-appname": auth.appname, - "x-yoox-account-token": auth.access_token, - }, - data: opt.data, - success: function(data){ - // console.log(data) - opt.success(data) - }, - error: opt.error, - complete: function(data){ - console.log("really weird") - console.log(data) - } - }) - } - - address.add = function(opt){ - return $.ajax({ - method: "POST", - url: sdk.path("Account.API/1.5", "users/" + auth.user_id + "/addressBook/item.json"), - headers: { - "x-yoox-appname": auth.appname, - "x-yoox-account-token": auth.access_token, - }, - data: JSON.stringify( opt.data ), - success: function(data){ - // console.log(data) - opt.success(data) - }, - error: opt.error, - }) - } - - address.update = function(opt){ - return $.ajax({ - method: "PUT", - url: sdk.path("Account.API/1.5", "users/" + auth.user_id + "/addressBook/item.json"), - headers: { - "x-yoox-appname": auth.appname, - "x-yoox-account-token": auth.access_token, - }, - data: JSON.stringify( opt.data ), - success: function(data){ - // console.log(data) - opt.success(data) - }, - error: opt.error, - }) - } - - address.destroy = function(opt){ - return $.ajax({ - method: "DELETE", - url: sdk.path("Account.API/1.5", "users/" + auth.user_id + "/" + opt.id + "/addressBook.json"), - headers: { - "x-yoox-appname": auth.appname, - "x-yoox-account-token": auth.access_token, - }, - data: JSON.stringify( opt.data ), - success: function(data){ - // console.log(data) - opt.success(data) - }, - error: opt.error, - }) - } - - return address - -})() \ No newline at end of file diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/sdk/auth.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/sdk/auth.js deleted file mode 100755 index bcfb2d3a..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/sdk/auth.js +++ /dev/null @@ -1,152 +0,0 @@ -/* - headers: { - "x-yoox-appname": auth.appname, - "x-yoox-account-token": auth.access_token, - "x-yoox-device": auth.device, - "x-yoox-api-key": auth.apikey, - }, -*/ - -var auth = sdk.auth = (function(){ - var auth = {} - - auth.appname = is_iphone ? "native-iphone-stoneisland/1.0.0" : "native-android-stoneisland/1.0.0" - auth.apikey = "U2FsdGVkX18fThqg9bF0/ZgE9Jg948hn8O9EXli4B2729nAESCQaexv//M5+7+za" - auth.device = "smartphone" - - auth.access_token = "" - auth.user_id = -1 - - auth.next_view = null - auth.deferred_product = null - - // ios: integrate keychain api - // android: cordova.file.externalRootDirectory api - - auth.init = function(fn){ - console.log("AUTH INIT") - auth.get_user(function(){ - if (auth.logged_in()) { - sdk.account.checkin({ - success: function(data){ - fn && fn( auth.logged_in() ) - }, - error: function(){ - auth.log_out() - fn && fn( false ) - // - }, - }) - auth.get_cart() - } - else { - fn && fn( auth.logged_in() ) - } - }) - } - - auth.set_user = function(user_id, access_token, cb){ - auth.access_token = access_token - auth.user_id = user_id - - localStorage.setItem("yoox.access_token", access_token) - localStorage.setItem("yoox.user_id", user_id) - - window.FirebasePlugin && window.FirebasePlugin.setUserId(user_id) - - cb && cb() - } - auth.get_user = function(cb){ - auth.access_token = localStorage.getItem("yoox.access_token") || "" - auth.user_id = localStorage.getItem("yoox.user_id") || -1 - cb && cb() - } - auth.clear_user = function(cb){ - auth.access_token = "" - auth.user_id = -1 - localStorage.removeItem("yoox.access_token") - localStorage.removeItem("yoox.user_id") - - cb && cb() - } - - auth.set_cart = function(cart_id, cart_token, cb){ - localStorage.setItem("yoox.cart_token", cart_token) - localStorage.setItem("yoox.cart_id", cart_id) - cb && cb() - } - auth.get_cart = function(cb){ - sdk.cart.token = localStorage.getItem("yoox.cart_token") || "" - sdk.cart.id = localStorage.getItem("yoox.cart_id") || -1 - cb && cb() - } - auth.clear_cart = function(cb){ - sdk.cart.token = "" - sdk.cart.id = -1 - localStorage.removeItem("yoox.cart_token") - localStorage.removeItem("yoox.cart_id") - cb && cb() - } - auth.create_cart = function(opt){ - opt = opt || {} - if (auth.has_cart()) { - opt.success && opt.success() - return - } - sdk.cart.initialize({ - success: function(data){ - sdk.cart.set_user({ - success: function(){ - auth.set_cart(sdk.cart.id, sdk.cart.token, function(){ - opt.success && opt.success() - }) - }, - error: function(){ - opt.clear_cart() - opt.error && opt.error() - }, - }) - }, - error: function(){ - opt.clear_cart() - opt.error && opt.error() - } - }) - } - - auth.add_deferred_product_to_cart = function(opt){ - opt = opt || {} - // auth.deferred_product - if (! auth.deferred_product) { - console.log("VV NO DEFERRED PROD") - opt.success && opt.success() - return - } - sdk.cart.add_item({ - data: auth.deferred_product, - success: function(){ - console.log("ADDED ITEM") - app.header.increment_cart_count() - opt.success && opt.success() - }, - error: function(data){ - console.log("ERROR ADDING ITEM") - opt.error && opt.error() - }, - }) - auth.deferred_product = null - } - - auth.log_out = function(){ - auth.clear_user() - auth.clear_cart() - } - auth.logged_in = function(){ - return (auth.user_id && auth.user_id !== -1 && auth.user_id !== "undefined") - } - auth.has_cart = function(){ - return (sdk.cart.id && sdk.cart.id !== -1 && sdk.cart.id !== "undefined") - } - - return auth -})() \ No newline at end of file diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/sdk/cart.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/sdk/cart.js deleted file mode 100755 index 3ff2e1d2..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/sdk/cart.js +++ /dev/null @@ -1,248 +0,0 @@ -sdk.cart = (function(){ - var cart = {} - - cart.id = "" - cart.token = "" - - // https://gist.github.com/fanfare/9a50c524aea417d0bf3e - cart.initialize = function(opt){ - return $.ajax({ - method: "POST", - url: sdk.path("Cart.API/1.6", "carts.json"), - headers: { - "x-yoox-appname": auth.appname, - "x-yoox-device": auth.device, - }, - data: "{}", - // data: opt.data, - success: function(data){ - cart.id = data["CartSession"]["CartId"] - cart.token = data["CartSession"]["CartToken"] - auth.set_cart( cart.id, cart.token ) - opt.success(data) - }, - error: opt.error, - }) - } - - cart.set_user = function(opt){ - return $.ajax({ - method: "PUT", - url: sdk.path("Cart.API/1.6", "carts/" + cart.id + "/user.json"), - headers: { - "x-yoox-appname": auth.appname, - "x-yoox-cart-token": cart.token, - }, - data: JSON.stringify({ - "UserId": auth.user_id, - "UserToken": auth.access_token, - }), - success: function(data){ - opt.success(data) - }, - error: opt.error, - }) - } - - // Code10, Size, Section - cart.add_item = function(opt){ - return $.ajax({ - method: "POST", - url: sdk.path("Cart.API/1.6", "carts/" + cart.id + "/items.json"), - headers: { - "x-yoox-appname": auth.appname, - "x-yoox-cart-token": cart.token, - }, - data: JSON.stringify( opt.data ), - success: function(data){ - // console.log(data) - opt.success(data) - }, - error: opt.error, - }) - } - - cart.delete_item = function(opt){ - return $.ajax({ - method: "DELETE", - url: sdk.path("Cart.API/1.6", "carts/" + cart.id + - "/items/" + opt.data.Code10 + - "/" + opt.data.Size + ".json"), - headers: { - "x-yoox-appname": auth.appname, - "x-yoox-cart-token": cart.token, - }, - data: "{}", - success: function(data){ - // console.log(data) - opt.success(data) - }, - error: opt.error, - }) - } - - cart.get_status = function(opt){ - if (! cart.id) { - return opt.error({ error: "no cart" }) - } - return $.ajax({ - method: "GET", - url: sdk.path("Cart.API/1.6", "carts/" + cart.id + ".json"), - headers: { - "x-yoox-appname": auth.appname, - "x-yoox-cart-token": cart.token, - "x-yoox-device": auth.device, - }, - success: function(data){ - if (data['Error']) { - opt.error && opt.error(data) - } - else { - opt.success(data) - } - }, - error: opt.error, - }) - } - - cart.set_shipping_address = function(opt){ - return $.ajax({ - method: "PUT", - url: sdk.path("Cart.API/1.6", "carts/" + cart.id + "/receiver.json"), - headers: { - "x-yoox-appname": auth.appname, - "x-yoox-cart-token": cart.token, - }, - data: JSON.stringify(opt.data), - success: function(data){ - // console.log(data) - opt.success(data) - }, - error: opt.error, - }) - } - - // NB: Payment type may simply be 1 (credit card) - cart.set_payment_type = function(opt){ - return $.ajax({ - method: "PUT", - url: sdk.path("Cart.API/1.6", "carts/" + cart.id + "/paymentType.json"), - headers: { - "x-yoox-appname": auth.appname, - "x-yoox-cart-token": cart.token, - }, - data: JSON.stringify( opt.data ), - success: function(data){ - // console.log(data) - opt.success(data) - }, - error: opt.error, - }) - } - - cart.get_card_types = function(opt){ - return $.ajax({ - method: "GET", - url: sdk.path("Cart.API/1.6", "cardTypes.json"), - headers: { - "x-yoox-appname": auth.appname, - "x-yoox-cart-token": cart.token, - }, - data: "", - success: function(data){ - opt.success(data) - }, - error: opt.error, - }) - } - - // use with full CC data if not storing it in wallet - cart.set_credit_card = function(opt){ - return $.ajax({ - method: "PUT", - url: sdk.path("Cart.API/1.6", "carts/" + cart.id + "/creditCard.json"), - headers: { - "x-yoox-appname": auth.appname, - "x-yoox-cart-token": cart.token, - }, - data: JSON.stringify( opt.data ), - success: function(data){ - // console.log(data) - opt.success(data) - }, - error: opt.error, - }) - } - - // use with a stored GUID - // NB: if "verification number" is 1, use CVV/CID/CVC security code - // if "verification number" is 2, use "Issue Number" - cart.use_stored_credit_card = function(opt){ - var data = { - "Guid": opt.data.guid, - "UserId": auth.user_id, - "AccessToken": auth.access_token, - } - if (opt.data.cvv) { - data["Cvv"] = opt.data.cvv - } - if (opt.data.issue) { - data["Issue"] = opt.data.issue - } - return $.ajax({ - method: "PUT", - url: sdk.path("Cart.API/1.6", "carts/" + cart.id + "/userCreditCard.json"), - headers: { - "x-yoox-appname": auth.appname, - "x-yoox-cart-token": cart.token, - }, - data: JSON.stringify(data), - success: function(data){ - // console.log(data) - opt.success(data) - }, - error: opt.error, - }) - } - - cart.secure_finalize = function(opt){ - return $.ajax({ - method: "POST", - url: sdk.path("Cart.API/1.6", "carts/" + cart.id + "/secureFinalizer.json"), - headers: { - "x-yoox-appname": auth.appname, - "x-yoox-cart-token": cart.token, - "x-yoox-device": auth.device, - }, - data: JSON.stringify( opt.data || {} ), - success: function(data){ - console.log(data) - // order number is: - // "Info": "2905Y07FA13020" - opt.success(data) - }, - error: opt.error, - }) - } - - cart.finalize = function(opt){ - return $.ajax({ - method: "POST", - url: sdk.path("Cart.API/1.6", "carts/" + cart.id + "/finalizer.json"), - headers: { - "x-yoox-appname": auth.appname, - "x-yoox-cart-token": cart.token, - }, - data: JSON.stringify( opt.data || {} ), - success: function(data){ - console.log(data) - // order number is: - // "Info": "2905Y07FA13020" - opt.success(data) - }, - error: opt.error, - }) - } - - return cart -})() \ No newline at end of file diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/sdk/payment.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/sdk/payment.js deleted file mode 100755 index 283fee92..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/sdk/payment.js +++ /dev/null @@ -1,72 +0,0 @@ -sdk.payment = (function(){ - var payment = {} - - payment.add_credit_card = function(opt){ - return $.ajax({ - method: "POST", - url: sdk.path("Account.API/1.5", "users/" + auth.user_id + "/cards.json"), - headers: { - "x-yoox-appname": auth.appname, - "x-yoox-account-token": auth.access_token, - }, - data: JSON.stringify( opt.data ), - success: function(data){ - // console.log(data) - opt.success(data) - }, - error: opt.error, - }) - } - - payment.list_credit_cards = function(opt){ - return $.ajax({ - method: "GET", - url: sdk.path("Account.API/1.5", "users/" + auth.user_id + "/cards.json"), - headers: { - "x-yoox-appname": auth.appname, - "x-yoox-account-token": auth.access_token, - }, - data: opt.data, - success: function(data){ - opt.success(data) - }, - error: opt.error, - }) - } - - payment.delete_credit_card = function(opt){ - return $.ajax({ - method: "DELETE", - url: sdk.path("Account.API/1.5", "users/" + auth.user_id + "/cards/" + opt.guid + ".json"), - headers: { - "x-yoox-appname": auth.appname, - "x-yoox-account-token": auth.access_token, - }, - data: "{}", - success: function(data){ - // console.log(data) - opt.success(data) - }, - error: opt.error, - }) - } - - payment.get_payment_types = function(opt){ - return $.ajax({ - method: "GET", - url: sdk.path("Cart.API/1.6", "availablePaymentTypes.json"), - headers: { - "x-yoox-appname": auth.appname, - "x-yoox-device": auth.device, - }, - data: opt.data, - success: function(data){ - // console.log(data) - opt.success(data) - }, - error: opt.error, - }) - } - - return payment -})() \ No newline at end of file diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/sdk/product.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/sdk/product.js deleted file mode 100755 index 671d1fea..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/sdk/product.js +++ /dev/null @@ -1,68 +0,0 @@ -sdk.product = (function(){ - var product = {} - - var default_gallery = 31617 - var default_department = "NkXStnsl" - - product.all = function(opt){ - return $.ajax({ - method: "GET", - url: sdk.path("Search.API/1.3", "search.json"), - data: { format: "full", productsPerPage: 100 }, - success: opt.success, - error: opt.error, - }) - } - - product.collection = function(opt){ - return $.ajax({ - method: "GET", - url: sdk.path("Search.API/1.3", "search.json"), - data: { format: "full", department: opt.department_id || default_department, productsPerPage: 100 }, - success: opt.success, - error: opt.error, - }) - } - - product.department_codes = function(opt){ - return $.ajax({ - method: "GET", - url: sdk.path("Search.API/1.3", "search/results.json"), - data: { format: "full", department: opt.department_id || default_department, page: 1 }, - success: opt.success, - error: opt.error, - }) - } - - product.collection_by_gallery = function(opt){ - return $.ajax({ - method: "GET", - url: sdk.path("Search.API/1.2", "search.json"), - data: { format: "full", gallery: opt.gallery_id || default_gallery, productsPerPage: 100 }, - success: opt.success, - error: opt.error, - }) - } - - // https://gist.github.com/fanfare/2d25d1b36944188948ff - product.item = function(opt){ - return $.ajax({ - method: "GET", - url: sdk.path("Item.API/1.0", "item/" + opt.code + ".json"), - success: opt.success, - error: opt.error, - }) - } - - product.search = function(opt){ - return $.ajax({ - method: "GET", - url: sdk.path("Search.API/1.2", "search.json"), - data: { format: "full", gallery: opt.gallery_id || default_gallery, textSearch: opt.query, productsPerPage: 100 }, - success: opt.success, - error: opt.error, - }) - } - - return product -})() \ No newline at end of file diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/sdk/shipping.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/sdk/shipping.js deleted file mode 100755 index 28a0db76..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/sdk/shipping.js +++ /dev/null @@ -1,85 +0,0 @@ -sdk.shipping = (function() { - var shipping = {} - - - // https://gist.github.com/fanfare/edb524128461b573d833 - - // BOX TYPE - - shipping.get_box_types = function(opt){ - return $.ajax({ - method: "GET", - url: sdk.path("Cart.API/1.6", "carts/" + sdk.cart.id + "/availableBoxTypes.json"), - headers: { - "x-yoox-appname": auth.appname, - "x-yoox-cart-token": sdk.cart.token, - }, - success: function(data){ - // console.log(data) - opt.success(data) - }, - error: opt.error, - }) - } - - shipping.set_box_type = function(opt){ - return $.ajax({ - method: "PUT", - url: sdk.path("Cart.API/1.6", "carts/" + sdk.cart.id + "/boxType.json"), - headers: { - "x-yoox-appname": auth.appname, - "x-yoox-cart-token": sdk.cart.token, - }, - data: JSON.stringify({ - "Type": opt.type, - }), - success: function(data){ - // console.log(data) - opt.success(data) - }, - error: opt.error, - }) - } - - - // DELIVERY TYPES - - // The response is different than described in the API reference.. - // https://gist.github.com/fanfare/15dfbca6a16ae6bed503 - - shipping.get_delivery_types = function(opt){ - return $.ajax({ - method: "GET", - url: sdk.path("Cart.API/1.6", "carts/" + sdk.cart.id + "/availableDeliveryTypes.json"), - headers: { - "x-yoox-appname": auth.appname, - "x-yoox-cart-token": sdk.cart.token, - }, - success: function(data){ - opt.success(data) - }, - error: opt.error, - }) - } - - shipping.set_delivery_type = function(opt){ - return $.ajax({ - method: "PUT", - url: sdk.path("Cart.API/1.6", "carts/" + sdk.cart.id + "/deliveryType.json"), - headers: { - "x-yoox-appname": auth.appname, - "x-yoox-cart-token": sdk.cart.token, - }, - data: JSON.stringify({ - "Id": opt.id, - }), - success: function(data){ - //console.log(data) - opt.success(data) - }, - error: opt.error, - }) - } - - return shipping -})() diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/vendor/fastclick.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/vendor/fastclick.js deleted file mode 100755 index 9c746c2b..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/vendor/fastclick.js +++ /dev/null @@ -1,790 +0,0 @@ -/** - * @preserve FastClick: polyfill to remove click delays on browsers with touch UIs. - * - * @version 1.0.1 - * @codingstandard ftlabs-jsv2 - * @copyright The Financial Times Limited [All Rights Reserved] - * @license MIT License (see LICENSE.txt) - */ - -/*jslint browser:true, node:true*/ -/*global define, Event, Node*/ - - -/** - * Instantiate fast-clicking listeners on the specified layer. - * - * @constructor - * @param {Element} layer The layer to listen on - * @param {Object} options The options to override the defaults - */ -function FastClick(layer, options) { - 'use strict'; - var oldOnClick; - - options = options || {}; - - /** - * Whether a click is currently being tracked. - * - * @type boolean - */ - this.trackingClick = false; - - - /** - * Timestamp for when click tracking started. - * - * @type number - */ - this.trackingClickStart = 0; - - - /** - * The element being tracked for a click. - * - * @type EventTarget - */ - this.targetElement = null; - - - /** - * X-coordinate of touch start event. - * - * @type number - */ - this.touchStartX = 0; - - - /** - * Y-coordinate of touch start event. - * - * @type number - */ - this.touchStartY = 0; - - - /** - * ID of the last touch, retrieved from Touch.identifier. - * - * @type number - */ - this.lastTouchIdentifier = 0; - - - /** - * Touchmove boundary, beyond which a click will be cancelled. - * - * @type number - */ - this.touchBoundary = options.touchBoundary || 10; - - - /** - * The FastClick layer. - * - * @type Element - */ - this.layer = layer; - - /** - * The minimum time between tap(touchstart and touchend) events - * - * @type number - */ - this.tapDelay = options.tapDelay || 200; - - if (FastClick.notNeeded(layer)) { - return; - } - - // Some old versions of Android don't have Function.prototype.bind - function bind(method, context) { - return function() { return method.apply(context, arguments); }; - } - - - var methods = ['onMouse', 'onClick', 'onTouchStart', 'onTouchMove', 'onTouchEnd', 'onTouchCancel']; - var context = this; - for (var i = 0, l = methods.length; i < l; i++) { - context[methods[i]] = bind(context[methods[i]], context); - } - - // Set up event handlers as required - if (deviceIsAndroid) { - layer.addEventListener('mouseover', this.onMouse, true); - layer.addEventListener('mousedown', this.onMouse, true); - layer.addEventListener('mouseup', this.onMouse, true); - } - - layer.addEventListener('click', this.onClick, true); - layer.addEventListener('touchstart', this.onTouchStart, false); - layer.addEventListener('touchmove', this.onTouchMove, false); - layer.addEventListener('touchend', this.onTouchEnd, false); - layer.addEventListener('touchcancel', this.onTouchCancel, false); - - // Hack is required for browsers that don't support Event#stopImmediatePropagation (e.g. Android 2) - // which is how FastClick normally stops click events bubbling to callbacks registered on the FastClick - // layer when they are cancelled. - if (!Event.prototype.stopImmediatePropagation) { - layer.removeEventListener = function(type, callback, capture) { - var rmv = Node.prototype.removeEventListener; - if (type === 'click') { - rmv.call(layer, type, callback.hijacked || callback, capture); - } else { - rmv.call(layer, type, callback, capture); - } - }; - - layer.addEventListener = function(type, callback, capture) { - var adv = Node.prototype.addEventListener; - if (type === 'click') { - adv.call(layer, type, callback.hijacked || (callback.hijacked = function(event) { - if (!event.propagationStopped) { - callback(event); - } - }), capture); - } else { - adv.call(layer, type, callback, capture); - } - }; - } - - // If a handler is already declared in the element's onclick attribute, it will be fired before - // FastClick's onClick handler. Fix this by pulling out the user-defined handler function and - // adding it as listener. - if (typeof layer.onclick === 'function') { - - // Android browser on at least 3.2 requires a new reference to the function in layer.onclick - // - the old one won't work if passed to addEventListener directly. - oldOnClick = layer.onclick; - layer.addEventListener('click', function(event) { - oldOnClick(event); - }, false); - layer.onclick = null; - } -} - - -/** - * Android requires exceptions. - * - * @type boolean - */ -var deviceIsAndroid = navigator.userAgent.indexOf('Android') > 0; - - -/** - * iOS requires exceptions. - * - * @type boolean - */ -var deviceIsIOS = /iP(ad|hone|od)/.test(navigator.userAgent); - - -/** - * iOS 4 requires an exception for select elements. - * - * @type boolean - */ -var deviceIsIOS4 = deviceIsIOS && (/OS 4_\d(_\d)?/).test(navigator.userAgent); - - -/** - * iOS 6.0(+?) requires the target element to be manually derived - * - * @type boolean - */ -var deviceIsIOSWithBadTarget = deviceIsIOS && (/OS ([6-9]|\d{2})_\d/).test(navigator.userAgent); - - -/** - * Determine whether a given element requires a native click. - * - * @param {EventTarget|Element} target Target DOM element - * @returns {boolean} Returns true if the element needs a native click - */ -FastClick.prototype.needsClick = function(target) { - 'use strict'; - switch (target.nodeName.toLowerCase()) { - - // Don't send a synthetic click to disabled inputs (issue #62) - case 'button': - case 'select': - case 'textarea': - if (target.disabled) { - return true; - } - - break; - case 'input': - - // File inputs need real clicks on iOS 6 due to a browser bug (issue #68) - if ((deviceIsIOS && target.type === 'file') || target.disabled) { - return true; - } - - break; - case 'label': - case 'video': - return true; - } - - return (/\bneedsclick\b/).test(target.className); -}; - - -/** - * Determine whether a given element requires a call to focus to simulate click into element. - * - * @param {EventTarget|Element} target Target DOM element - * @returns {boolean} Returns true if the element requires a call to focus to simulate native click. - */ -FastClick.prototype.needsFocus = function(target) { - 'use strict'; - switch (target.nodeName.toLowerCase()) { - case 'textarea': - return true; - case 'select': - return !deviceIsAndroid; - case 'input': - switch (target.type) { - case 'button': - case 'checkbox': - case 'file': - case 'image': - case 'radio': - case 'submit': - return false; - } - - // No point in attempting to focus disabled inputs - return !target.disabled && !target.readOnly; - default: - return (/\bneedsfocus\b/).test(target.className); - } -}; - - -/** - * Send a click event to the specified element. - * - * @param {EventTarget|Element} targetElement - * @param {Event} event - */ -FastClick.prototype.sendClick = function(targetElement, event) { - 'use strict'; - var clickEvent, touch; - - // On some Android devices activeElement needs to be blurred otherwise the synthetic click will have no effect (#24) - if (document.activeElement && document.activeElement !== targetElement) { - document.activeElement.blur(); - } - - touch = event.changedTouches[0]; - - // Synthesise a click event, with an extra attribute so it can be tracked - clickEvent = document.createEvent('MouseEvents'); - clickEvent.initMouseEvent(this.determineEventType(targetElement), true, true, window, 1, touch.screenX, touch.screenY, touch.clientX, touch.clientY, false, false, false, false, 0, null); - clickEvent.forwardedTouchEvent = true; - targetElement.dispatchEvent(clickEvent); -}; - -FastClick.prototype.determineEventType = function(targetElement) { - 'use strict'; - - //Issue #159: Android Chrome Select Box does not open with a synthetic click event - if (deviceIsAndroid && targetElement.tagName.toLowerCase() === 'select') { - return 'mousedown'; - } - - return 'click'; -}; - - -/** - * @param {EventTarget|Element} targetElement - */ -FastClick.prototype.focus = function(targetElement) { - 'use strict'; - var length; - - // Issue #160: on iOS 7, some input elements (e.g. date datetime) throw a vague TypeError on setSelectionRange. These elements don't have an integer value for the selectionStart and selectionEnd properties, but unfortunately that can't be used for detection because accessing the properties also throws a TypeError. Just check the type instead. Filed as Apple bug #15122724. - if (deviceIsIOS && targetElement.setSelectionRange && targetElement.type.indexOf('date') !== 0 && targetElement.type !== 'time') { - length = targetElement.value.length; - targetElement.setSelectionRange(length, length); - } else { - targetElement.focus(); - } -}; - - -/** - * Check whether the given target element is a child of a scrollable layer and if so, set a flag on it. - * - * @param {EventTarget|Element} targetElement - */ -FastClick.prototype.updateScrollParent = function(targetElement) { - 'use strict'; - var scrollParent, parentElement; - - scrollParent = targetElement.fastClickScrollParent; - - // Attempt to discover whether the target element is contained within a scrollable layer. Re-check if the - // target element was moved to another parent. - if (!scrollParent || !scrollParent.contains(targetElement)) { - parentElement = targetElement; - do { - if (parentElement.scrollHeight > parentElement.offsetHeight) { - scrollParent = parentElement; - targetElement.fastClickScrollParent = parentElement; - break; - } - - parentElement = parentElement.parentElement; - } while (parentElement); - } - - // Always update the scroll top tracker if possible. - if (scrollParent) { - scrollParent.fastClickLastScrollTop = scrollParent.scrollTop; - } -}; - - -/** - * @param {EventTarget} targetElement - * @returns {Element|EventTarget} - */ -FastClick.prototype.getTargetElementFromEventTarget = function(eventTarget) { - 'use strict'; - - // On some older browsers (notably Safari on iOS 4.1 - see issue #56) the event target may be a text node. - if (eventTarget.nodeType === Node.TEXT_NODE) { - return eventTarget.parentNode; - } - - return eventTarget; -}; - - -/** - * On touch start, record the position and scroll offset. - * - * @param {Event} event - * @returns {boolean} - */ -FastClick.prototype.onTouchStart = function(event) { - 'use strict'; - var targetElement, touch, selection; - - // Ignore multiple touches, otherwise pinch-to-zoom is prevented if both fingers are on the FastClick element (issue #111). - if (event.targetTouches.length > 1) { - return true; - } - - targetElement = this.getTargetElementFromEventTarget(event.target); - touch = event.targetTouches[0]; - - if (deviceIsIOS) { - - // Only trusted events will deselect text on iOS (issue #49) - selection = window.getSelection(); - if (selection.rangeCount && !selection.isCollapsed) { - return true; - } - - if (!deviceIsIOS4) { - - // Weird things happen on iOS when an alert or confirm dialog is opened from a click event callback (issue #23): - // when the user next taps anywhere else on the page, new touchstart and touchend events are dispatched - // with the same identifier as the touch event that previously triggered the click that triggered the alert. - // Sadly, there is an issue on iOS 4 that causes some normal touch events to have the same identifier as an - // immediately preceeding touch event (issue #52), so this fix is unavailable on that platform. - if (touch.identifier === this.lastTouchIdentifier) { - event.preventDefault(); - return false; - } - - this.lastTouchIdentifier = touch.identifier; - - // If the target element is a child of a scrollable layer (using -webkit-overflow-scrolling: touch) and: - // 1) the user does a fling scroll on the scrollable layer - // 2) the user stops the fling scroll with another tap - // then the event.target of the last 'touchend' event will be the element that was under the user's finger - // when the fling scroll was started, causing FastClick to send a click event to that layer - unless a check - // is made to ensure that a parent layer was not scrolled before sending a synthetic click (issue #42). - this.updateScrollParent(targetElement); - } - } - - this.trackingClick = true; - this.trackingClickStart = event.timeStamp; - this.targetElement = targetElement; - - this.touchStartX = touch.pageX; - this.touchStartY = touch.pageY; - - // Prevent phantom clicks on fast double-tap (issue #36) - if ((event.timeStamp - this.lastClickTime) < this.tapDelay) { - event.preventDefault(); - } - - return true; -}; - - -/** - * Based on a touchmove event object, check whether the touch has moved past a boundary since it started. - * - * @param {Event} event - * @returns {boolean} - */ -FastClick.prototype.touchHasMoved = function(event) { - 'use strict'; - var touch = event.changedTouches[0], boundary = this.touchBoundary; - - if (Math.abs(touch.pageX - this.touchStartX) > boundary || Math.abs(touch.pageY - this.touchStartY) > boundary) { - return true; - } - - return false; -}; - - -/** - * Update the last position. - * - * @param {Event} event - * @returns {boolean} - */ -FastClick.prototype.onTouchMove = function(event) { - 'use strict'; - if (!this.trackingClick) { - return true; - } - - // If the touch has moved, cancel the click tracking - if (this.targetElement !== this.getTargetElementFromEventTarget(event.target) || this.touchHasMoved(event)) { - this.trackingClick = false; - this.targetElement = null; - } - - return true; -}; - - -/** - * Attempt to find the labelled control for the given label element. - * - * @param {EventTarget|HTMLLabelElement} labelElement - * @returns {Element|null} - */ -FastClick.prototype.findControl = function(labelElement) { - 'use strict'; - - // Fast path for newer browsers supporting the HTML5 control attribute - if (labelElement.control !== undefined) { - return labelElement.control; - } - - // All browsers under test that support touch events also support the HTML5 htmlFor attribute - if (labelElement.htmlFor) { - return document.getElementById(labelElement.htmlFor); - } - - // If no for attribute exists, attempt to retrieve the first labellable descendant element - // the list of which is defined here: http://www.w3.org/TR/html5/forms.html#category-label - return labelElement.querySelector('button, input:not([type=hidden]), keygen, meter, output, progress, select, textarea'); -}; - - -/** - * On touch end, determine whether to send a click event at once. - * - * @param {Event} event - * @returns {boolean} - */ -FastClick.prototype.onTouchEnd = function(event) { - 'use strict'; - var forElement, trackingClickStart, targetTagName, scrollParent, touch, targetElement = this.targetElement; - - if (!this.trackingClick) { - return true; - } - - // Prevent phantom clicks on fast double-tap (issue #36) - if ((event.timeStamp - this.lastClickTime) < this.tapDelay) { - this.cancelNextClick = true; - return true; - } - - // Reset to prevent wrong click cancel on input (issue #156). - this.cancelNextClick = false; - - this.lastClickTime = event.timeStamp; - - trackingClickStart = this.trackingClickStart; - this.trackingClick = false; - this.trackingClickStart = 0; - - // On some iOS devices, the targetElement supplied with the event is invalid if the layer - // is performing a transition or scroll, and has to be re-detected manually. Note that - // for this to function correctly, it must be called *after* the event target is checked! - // See issue #57; also filed as rdar://13048589 . - if (deviceIsIOSWithBadTarget) { - touch = event.changedTouches[0]; - - // In certain cases arguments of elementFromPoint can be negative, so prevent setting targetElement to null - targetElement = document.elementFromPoint(touch.pageX - window.pageXOffset, touch.pageY - window.pageYOffset) || targetElement; - targetElement.fastClickScrollParent = this.targetElement.fastClickScrollParent; - } - - targetTagName = targetElement.tagName.toLowerCase(); - if (targetTagName === 'label') { - forElement = this.findControl(targetElement); - if (forElement) { - this.focus(targetElement); - if (deviceIsAndroid) { - return false; - } - - targetElement = forElement; - } - } else if (this.needsFocus(targetElement)) { - - // Case 1: If the touch started a while ago (best guess is 100ms based on tests for issue #36) then focus will be triggered anyway. Return early and unset the target element reference so that the subsequent click will be allowed through. - // Case 2: Without this exception for input elements tapped when the document is contained in an iframe, then any inputted text won't be visible even though the value attribute is updated as the user types (issue #37). - if ((event.timeStamp - trackingClickStart) > 100 || (deviceIsIOS && window.top !== window && targetTagName === 'input')) { - this.targetElement = null; - return false; - } - - this.focus(targetElement); - this.sendClick(targetElement, event); - - // Select elements need the event to go through on iOS 4, otherwise the selector menu won't open. - // Also this breaks opening selects when VoiceOver is active on iOS6, iOS7 (and possibly others) - if (!deviceIsIOS || targetTagName !== 'select') { - this.targetElement = null; - event.preventDefault(); - } - - return false; - } - - if (deviceIsIOS && !deviceIsIOS4) { - - // Don't send a synthetic click event if the target element is contained within a parent layer that was scrolled - // and this tap is being used to stop the scrolling (usually initiated by a fling - issue #42). - scrollParent = targetElement.fastClickScrollParent; - if (scrollParent && scrollParent.fastClickLastScrollTop !== scrollParent.scrollTop) { - return true; - } - } - - // Prevent the actual click from going though - unless the target node is marked as requiring - // real clicks or if it is in the whitelist in which case only non-programmatic clicks are permitted. - if (!this.needsClick(targetElement)) { - event.preventDefault(); - this.sendClick(targetElement, event); - } - - return false; -}; - - -/** - * On touch cancel, stop tracking the click. - * - * @returns {void} - */ -FastClick.prototype.onTouchCancel = function() { - 'use strict'; - this.trackingClick = false; - this.targetElement = null; -}; - - -/** - * Determine mouse events which should be permitted. - * - * @param {Event} event - * @returns {boolean} - */ -FastClick.prototype.onMouse = function(event) { - 'use strict'; - - // If a target element was never set (because a touch event was never fired) allow the event - if (!this.targetElement) { - return true; - } - - if (event.forwardedTouchEvent) { - return true; - } - - // Programmatically generated events targeting a specific element should be permitted - if (!event.cancelable) { - return true; - } - - // Derive and check the target element to see whether the mouse event needs to be permitted; - // unless explicitly enabled, prevent non-touch click events from triggering actions, - // to prevent ghost/doubleclicks. - if (!this.needsClick(this.targetElement) || this.cancelNextClick) { - - // Prevent any user-added listeners declared on FastClick element from being fired. - if (event.stopImmediatePropagation) { - event.stopImmediatePropagation(); - } else { - - // Part of the hack for browsers that don't support Event#stopImmediatePropagation (e.g. Android 2) - event.propagationStopped = true; - } - - // Cancel the event - event.stopPropagation(); - event.preventDefault(); - - return false; - } - - // If the mouse event is permitted, return true for the action to go through. - return true; -}; - - -/** - * On actual clicks, determine whether this is a touch-generated click, a click action occurring - * naturally after a delay after a touch (which needs to be cancelled to avoid duplication), or - * an actual click which should be permitted. - * - * @param {Event} event - * @returns {boolean} - */ -FastClick.prototype.onClick = function(event) { - 'use strict'; - var permitted; - - // It's possible for another FastClick-like library delivered with third-party code to fire a click event before FastClick does (issue #44). In that case, set the click-tracking flag back to false and return early. This will cause onTouchEnd to return early. - if (this.trackingClick) { - this.targetElement = null; - this.trackingClick = false; - return true; - } - - // Very odd behaviour on iOS (issue #18): if a submit element is present inside a form and the user hits enter in the iOS simulator or clicks the Go button on the pop-up OS keyboard the a kind of 'fake' click event will be triggered with the submit-type input element as the target. - if (event.target.type === 'submit' && event.detail === 0) { - return true; - } - - permitted = this.onMouse(event); - - // Only unset targetElement if the click is not permitted. This will ensure that the check for !targetElement in onMouse fails and the browser's click doesn't go through. - if (!permitted) { - this.targetElement = null; - } - - // If clicks are permitted, return true for the action to go through. - return permitted; -}; - - -/** - * Remove all FastClick's event listeners. - * - * @returns {void} - */ -FastClick.prototype.destroy = function() { - 'use strict'; - var layer = this.layer; - - if (deviceIsAndroid) { - layer.removeEventListener('mouseover', this.onMouse, true); - layer.removeEventListener('mousedown', this.onMouse, true); - layer.removeEventListener('mouseup', this.onMouse, true); - } - - layer.removeEventListener('click', this.onClick, true); - layer.removeEventListener('touchstart', this.onTouchStart, false); - layer.removeEventListener('touchmove', this.onTouchMove, false); - layer.removeEventListener('touchend', this.onTouchEnd, false); - layer.removeEventListener('touchcancel', this.onTouchCancel, false); -}; - - -/** - * Check whether FastClick is needed. - * - * @param {Element} layer The layer to listen on - */ -FastClick.notNeeded = function(layer) { - 'use strict'; - var metaViewport; - var chromeVersion; - - // Devices that don't support touch don't need FastClick - if (typeof window.ontouchstart === 'undefined') { - return true; - } - - // Chrome version - zero for other browsers - chromeVersion = +(/Chrome\/([0-9]+)/.exec(navigator.userAgent) || [,0])[1]; - - if (chromeVersion) { - - if (deviceIsAndroid) { - metaViewport = document.querySelector('meta[name=viewport]'); - - if (metaViewport) { - // Chrome on Android with user-scalable="no" doesn't need FastClick (issue #89) - if (metaViewport.content.indexOf('user-scalable=no') !== -1) { - return true; - } - // Chrome 32 and above with width=device-width or less don't need FastClick - if (chromeVersion > 31 && document.documentElement.scrollWidth <= window.outerWidth) { - return true; - } - } - - // Chrome desktop doesn't need FastClick (issue #15) - } else { - return true; - } - } - - // IE10 with -ms-touch-action: none, which disables double-tap-to-zoom (issue #97) - if (layer.style.msTouchAction === 'none') { - return true; - } - - return false; -}; - - -/** - * Factory method for creating a FastClick object - * - * @param {Element} layer The layer to listen on - * @param {Object} options The options to override the defaults - */ -FastClick.attach = function(layer, options) { - 'use strict'; - return new FastClick(layer, options); -}; - - -if (typeof define !== 'undefined' && define.amd) { - - // AMD. Register as an anonymous module. - define(function() { - 'use strict'; - return FastClick; - }); -} else if (typeof module !== 'undefined' && module.exports) { - module.exports = FastClick.attach; - module.exports.FastClick = FastClick; -} else { - window.FastClick = FastClick; -} diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/vendor/flickity.pkgd.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/vendor/flickity.pkgd.js deleted file mode 100755 index 0471fa5b..00000000 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/vendor/flickity.pkgd.js +++ /dev/null @@ -1,5090 +0,0 @@ -/*! - * Flickity PACKAGED v1.0.1 - * Touch, responsive, flickable galleries - * - * Licensed GPLv3 for open source use - * or Flickity Commercial License for commercial use - * - * http://flickity.metafizzy.co - * Copyright 2015 Metafizzy - */ - -/** - * Bridget makes jQuery widgets - * v1.1.0 - * MIT license - */ - -( function( window ) { - - - -// -------------------------- utils -------------------------- // - -var slice = Array.prototype.slice; - -function noop() {} - -// -------------------------- definition -------------------------- // - -function defineBridget( $ ) { - -// bail if no jQuery -if ( !$ ) { - return; -} - -// -------------------------- addOptionMethod -------------------------- // - -/** - * adds option method -> $().plugin('option', {...}) - * @param {Function} PluginClass - constructor class - */ -function addOptionMethod( PluginClass ) { - // don't overwrite original option method - if ( PluginClass.prototype.option ) { - return; - } - - // option setter - PluginClass.prototype.option = function( opts ) { - // bail out if not an object - if ( !$.isPlainObject( opts ) ){ - return; - } - this.options = $.extend( true, this.options, opts ); - }; -} - -// -------------------------- plugin bridge -------------------------- // - -// helper function for logging errors -// $.error breaks jQuery chaining -var logError = typeof console === 'undefined' ? noop : - function( message ) { - console.error( message ); - }; - -/** - * jQuery plugin bridge, access methods like $elem.plugin('method') - * @param {String} namespace - plugin name - * @param {Function} PluginClass - constructor class - */ -function bridge( namespace, PluginClass ) { - // add to jQuery fn namespace - $.fn[ namespace ] = function( options ) { - if ( typeof options === 'string' ) { - // call plugin method when first argument is a string - // get arguments for method - var args = slice.call( arguments, 1 ); - - for ( var i=0, len = this.length; i < len; i++ ) { - var elem = this[i]; - var instance = $.data( elem, namespace ); - if ( !instance ) { - logError( "cannot call methods on " + namespace + " prior to initialization; " + - "attempted to call '" + options + "'" ); - continue; - } - if ( !$.isFunction( instance[options] ) || options.charAt(0) === '_' ) { - logError( "no such method '" + options + "' for " + namespace + " instance" ); - continue; - } - - // trigger method with arguments - var returnValue = instance[ options ].apply( instance, args ); - - // break look and return first value if provided - if ( returnValue !== undefined ) { - return returnValue; - } - } - // return this if no return value - return this; - } else { - return this.each( function() { - var instance = $.data( this, namespace ); - if ( instance ) { - // apply options & init - instance.option( options ); - instance._init(); - } else { - // initialize new instance - instance = new PluginClass( this, options ); - $.data( this, namespace, instance ); - } - }); - } - }; - -} - -// -------------------------- bridget -------------------------- // - -/** - * converts a Prototypical class into a proper jQuery plugin - * the class must have a ._init method - * @param {String} namespace - plugin name, used in $().pluginName - * @param {Function} PluginClass - constructor class - */ -$.bridget = function( namespace, PluginClass ) { - addOptionMethod( PluginClass ); - bridge( namespace, PluginClass ); -}; - -return $.bridget; - -} - -// transport -if ( typeof define === 'function' && define.amd ) { - // AMD - define( 'jquery-bridget/jquery.bridget',[ 'jquery' ], defineBridget ); -} else if ( typeof exports === 'object' ) { - defineBridget( require('jquery') ); -} else { - // get jquery from browser global - defineBridget( window.jQuery ); -} - -})( window ); - -/*! - * classie v1.0.1 - * class helper functions - * from bonzo https://github.com/ded/bonzo - * MIT license - * - * classie.has( elem, 'my-class' ) -> true/false - * classie.add( elem, 'my-new-class' ) - * classie.remove( elem, 'my-unwanted-class' ) - * classie.toggle( elem, 'my-class' ) - */ - -/*jshint browser: true, strict: true, undef: true, unused: true */ -/*global define: false, module: false */ - -( function( window ) { - - - -// class helper functions from bonzo https://github.com/ded/bonzo - -function classReg( className ) { - return new RegExp("(^|\\s+)" + className + "(\\s+|$)"); -} - -// classList support for class management -// altho to be fair, the api sucks because it won't accept multiple classes at once -var hasClass, addClass, removeClass; - -if ( 'classList' in document.documentElement ) { - hasClass = function( elem, c ) { - return elem.classList.contains( c ); - }; - addClass = function( elem, c ) { - elem.classList.add( c ); - }; - removeClass = function( elem, c ) { - elem.classList.remove( c ); - }; -} -else { - hasClass = function( elem, c ) { - return classReg( c ).test( elem.className ); - }; - addClass = function( elem, c ) { - if ( !hasClass( elem, c ) ) { - elem.className = elem.className + ' ' + c; - } - }; - removeClass = function( elem, c ) { - elem.className = elem.className.replace( classReg( c ), ' ' ); - }; -} - -function toggleClass( elem, c ) { - var fn = hasClass( elem, c ) ? removeClass : addClass; - fn( elem, c ); -} - -var classie = { - // full names - hasClass: hasClass, - addClass: addClass, - removeClass: removeClass, - toggleClass: toggleClass, - // short names - has: hasClass, - add: addClass, - remove: removeClass, - toggle: toggleClass -}; - -// transport -if ( typeof define === 'function' && define.amd ) { - // AMD - define( 'classie/classie',classie ); -} else if ( typeof exports === 'object' ) { - // CommonJS - module.exports = classie; -} else { - // browser global - window.classie = classie; -} - -})( window ); - -/*! - * EventEmitter v4.2.11 - git.io/ee - * Unlicense - http://unlicense.org/ - * Oliver Caldwell - http://oli.me.uk/ - * @preserve - */ - -;(function () { - - - /** - * Class for managing events. - * Can be extended to provide event functionality in other classes. - * - * @class EventEmitter Manages event registering and emitting. - */ - function EventEmitter() {} - - // Shortcuts to improve speed and size - var proto = EventEmitter.prototype; - var exports = this; - var originalGlobalValue = exports.EventEmitter; - - /** - * Finds the index of the listener for the event in its storage array. - * - * @param {Function[]} listeners Array of listeners to search through. - * @param {Function} listener Method to look for. - * @return {Number} Index of the specified listener, -1 if not found - * @api private - */ - function indexOfListener(listeners, listener) { - var i = listeners.length; - while (i--) { - if (listeners[i].listener === listener) { - return i; - } - } - - return -1; - } - - /** - * Alias a method while keeping the context correct, to allow for overwriting of target method. - * - * @param {String} name The name of the target method. - * @return {Function} The aliased method - * @api private - */ - function alias(name) { - return function aliasClosure() { - return this[name].apply(this, arguments); - }; - } - - /** - * Returns the listener array for the specified event. - * Will initialise the event object and listener arrays if required. - * Will return an object if you use a regex search. The object contains keys for each matched event. So /ba[rz]/ might return an object containing bar and baz. But only if you have either defined them with defineEvent or added some listeners to them. - * Each property in the object response is an array of listener functions. - * - * @param {String|RegExp} evt Name of the event to return the listeners from. - * @return {Function[]|Object} All listener functions for the event. - */ - proto.getListeners = function getListeners(evt) { - var events = this._getEvents(); - var response; - var key; - - // Return a concatenated array of all matching events if - // the selector is a regular expression. - if (evt instanceof RegExp) { - response = {}; - for (key in events) { - if (events.hasOwnProperty(key) && evt.test(key)) { - response[key] = events[key]; - } - } - } - else { - response = events[evt] || (events[evt] = []); - } - - return response; - }; - - /** - * Takes a list of listener objects and flattens it into a list of listener functions. - * - * @param {Object[]} listeners Raw listener objects. - * @return {Function[]} Just the listener functions. - */ - proto.flattenListeners = function flattenListeners(listeners) { - var flatListeners = []; - var i; - - for (i = 0; i < listeners.length; i += 1) { - flatListeners.push(listeners[i].listener); - } - - return flatListeners; - }; - - /** - * Fetches the requested listeners via getListeners but will always return the results inside an object. This is mainly for internal use but others may find it useful. - * - * @param {String|RegExp} evt Name of the event to return the listeners from. - * @return {Object} All listener functions for an event in an object. - */ - proto.getListenersAsObject = function getListenersAsObject(evt) { - var listeners = this.getListeners(evt); - var response; - - if (listeners instanceof Array) { - response = {}; - response[evt] = listeners; - } - - return response || listeners; - }; - - /** - * Adds a listener function to the specified event. - * The listener will not be added if it is a duplicate. - * If the listener returns true then it will be removed after it is called. - * If you pass a regular expression as the event name then the listener will be added to all events that match it. - * - * @param {String|RegExp} evt Name of the event to attach the listener to. - * @param {Function} listener Method to be called when the event is emitted. If the function returns true then it will be removed after calling. - * @return {Object} Current instance of EventEmitter for chaining. - */ - proto.addListener = function addListener(evt, listener) { - var listeners = this.getListenersAsObject(evt); - var listenerIsWrapped = typeof listener === 'object'; - var key; - - for (key in listeners) { - if (listeners.hasOwnProperty(key) && indexOfListener(listeners[key], listener) === -1) { - listeners[key].push(listenerIsWrapped ? listener : { - listener: listener, - once: false - }); - } - } - - return this; - }; - - /** - * Alias of addListener - */ - proto.on = alias('addListener'); - - /** - * Semi-alias of addListener. It will add a listener that will be - * automatically removed after its first execution. - * - * @param {String|RegExp} evt Name of the event to attach the listener to. - * @param {Function} listener Method to be called when the event is emitted. If the function returns true then it will be removed after calling. - * @return {Object} Current instance of EventEmitter for chaining. - */ - proto.addOnceListener = function addOnceListener(evt, listener) { - return this.addListener(evt, { - listener: listener, - once: true - }); - }; - - /** - * Alias of addOnceListener. - */ - proto.once = alias('addOnceListener'); - - /** - * Defines an event name. This is required if you want to use a regex to add a listener to multiple events at once. If you don't do this then how do you expect it to know what event to add to? Should it just add to every possible match for a regex? No. That is scary and bad. - * You need to tell it what event names should be matched by a regex. - * - * @param {String} evt Name of the event to create. - * @return {Object} Current instance of EventEmitter for chaining. - */ - proto.defineEvent = function defineEvent(evt) { - this.getListeners(evt); - return this; - }; - - /** - * Uses defineEvent to define multiple events. - * - * @param {String[]} evts An array of event names to define. - * @return {Object} Current instance of EventEmitter for chaining. - */ - proto.defineEvents = function defineEvents(evts) { - for (var i = 0; i < evts.length; i += 1) { - this.defineEvent(evts[i]); - } - return this; - }; - - /** - * Removes a listener function from the specified event. - * When passed a regular expression as the event name, it will remove the listener from all events that match it. - * - * @param {String|RegExp} evt Name of the event to remove the listener from. - * @param {Function} listener Method to remove from the event. - * @return {Object} Current instance of EventEmitter for chaining. - */ - proto.removeListener = function removeListener(evt, listener) { - var listeners = this.getListenersAsObject(evt); - var index; - var key; - - for (key in listeners) { - if (listeners.hasOwnProperty(key)) { - index = indexOfListener(listeners[key], listener); - - if (index !== -1) { - listeners[key].splice(index, 1); - } - } - } - - return this; - }; - - /** - * Alias of removeListener - */ - proto.off = alias('removeListener'); - - /** - * Adds listeners in bulk using the manipulateListeners method. - * If you pass an object as the second argument you can add to multiple events at once. The object should contain key value pairs of events and listeners or listener arrays. You can also pass it an event name and an array of listeners to be added. - * You can also pass it a regular expression to add the array of listeners to all events that match it. - * Yeah, this function does quite a bit. That's probably a bad thing. - * - * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to add to multiple events at once. - * @param {Function[]} [listeners] An optional array of listener functions to add. - * @return {Object} Current instance of EventEmitter for chaining. - */ - proto.addListeners = function addListeners(evt, listeners) { - // Pass through to manipulateListeners - return this.manipulateListeners(false, evt, listeners); - }; - - /** - * Removes listeners in bulk using the manipulateListeners method. - * If you pass an object as the second argument you can remove from multiple events at once. The object should contain key value pairs of events and listeners or listener arrays. - * You can also pass it an event name and an array of listeners to be removed. - * You can also pass it a regular expression to remove the listeners from all events that match it. - * - * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to remove from multiple events at once. - * @param {Function[]} [listeners] An optional array of listener functions to remove. - * @return {Object} Current instance of EventEmitter for chaining. - */ - proto.removeListeners = function removeListeners(evt, listeners) { - // Pass through to manipulateListeners - return this.manipulateListeners(true, evt, listeners); - }; - - /** - * Edits listeners in bulk. The addListeners and removeListeners methods both use this to do their job. You should really use those instead, this is a little lower level. - * The first argument will determine if the listeners are removed (true) or added (false). - * If you pass an object as the second argument you can add/remove from multiple events at once. The object should contain key value pairs of events and listeners or listener arrays. - * You can also pass it an event name and an array of listeners to be added/removed. - * You can also pass it a regular expression to manipulate the listeners of all events that match it. - * - * @param {Boolean} remove True if you want to remove listeners, false if you want to add. - * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to add/remove from multiple events at once. - * @param {Function[]} [listeners] An optional array of listener functions to add/remove. - * @return {Object} Current instance of EventEmitter for chaining. - */ - proto.manipulateListeners = function manipulateListeners(remove, evt, listeners) { - var i; - var value; - var single = remove ? this.removeListener : this.addListener; - var multiple = remove ? this.removeListeners : this.addListeners; - - // If evt is an object then pass each of its properties to this method - if (typeof evt === 'object' && !(evt instanceof RegExp)) { - for (i in evt) { - if (evt.hasOwnProperty(i) && (value = evt[i])) { - // Pass the single listener straight through to the singular method - if (typeof value === 'function') { - single.call(this, i, value); - } - else { - // Otherwise pass back to the multiple function - multiple.call(this, i, value); - } - } - } - } - else { - // So evt must be a string - // And listeners must be an array of listeners - // Loop over it and pass each one to the multiple method - i = listeners.length; - while (i--) { - single.call(this, evt, listeners[i]); - } - } - - return this; - }; - - /** - * Removes all listeners from a specified event. - * If you do not specify an event then all listeners will be removed. - * That means every event will be emptied. - * You can also pass a regex to remove all events that match it. - * - * @param {String|RegExp} [evt] Optional name of the event to remove all listeners for. Will remove from every event if not passed. - * @return {Object} Current instance of EventEmitter for chaining. - */ - proto.removeEvent = function removeEvent(evt) { - var type = typeof evt; - var events = this._getEvents(); - var key; - - // Remove different things depending on the state of evt - if (type === 'string') { - // Remove all listeners for the specified event - delete events[evt]; - } - else if (evt instanceof RegExp) { - // Remove all events matching the regex. - for (key in events) { - if (events.hasOwnProperty(key) && evt.test(key)) { - delete events[key]; - } - } - } - else { - // Remove all listeners in all events - delete this._events; - } - - return this; - }; - - /** - * Alias of removeEvent. - * - * Added to mirror the node API. - */ - proto.removeAllListeners = alias('removeEvent'); - - /** - * Emits an event of your choice. - * When emitted, every listener attached to that event will be executed. - * If you pass the optional argument array then those arguments will be passed to every listener upon execution. - * Because it uses `apply`, your array of arguments will be passed as if you wrote them out separately. - * So they will not arrive within the array on the other side, they will be separate. - * You can also pass a regular expression to emit to all events that match it. - * - * @param {String|RegExp} evt Name of the event to emit and execute listeners for. - * @param {Array} [args] Optional array of arguments to be passed to each listener. - * @return {Object} Current instance of EventEmitter for chaining. - */ - proto.emitEvent = function emitEvent(evt, args) { - var listeners = this.getListenersAsObject(evt); - var listener; - var i; - var key; - var response; - - for (key in listeners) { - if (listeners.hasOwnProperty(key)) { - i = listeners[key].length; - - while (i--) { - // If the listener returns true then it shall be removed from the event - // The function is executed either with a basic call or an apply if there is an args array - listener = listeners[key][i]; - - if (listener.once === true) { - this.removeListener(evt, listener.listener); - } - - response = listener.listener.apply(this, args || []); - - if (response === this._getOnceReturnValue()) { - this.removeListener(evt, listener.listener); - } - } - } - } - - return this; - }; - - /** - * Alias of emitEvent - */ - proto.trigger = alias('emitEvent'); - - /** - * Subtly different from emitEvent in that it will pass its arguments on to the listeners, as opposed to taking a single array of arguments to pass on. - * As with emitEvent, you can pass a regex in place of the event name to emit to all events that match it. - * - * @param {String|RegExp} evt Name of the event to emit and execute listeners for. - * @param {...*} Optional additional arguments to be passed to each listener. - * @return {Object} Current instance of EventEmitter for chaining. - */ - proto.emit = function emit(evt) { - var args = Array.prototype.slice.call(arguments, 1); - return this.emitEvent(evt, args); - }; - - /** - * Sets the current value to check against when executing listeners. If a - * listeners return value matches the one set here then it will be removed - * after execution. This value defaults to true. - * - * @param {*} value The new value to check for when executing listeners. - * @return {Object} Current instance of EventEmitter for chaining. - */ - proto.setOnceReturnValue = function setOnceReturnValue(value) { - this._onceReturnValue = value; - return this; - }; - - /** - * Fetches the current value to check against when executing listeners. If - * the listeners return value matches this one then it should be removed - * automatically. It will return true by default. - * - * @return {*|Boolean} The current value to check for or the default, true. - * @api private - */ - proto._getOnceReturnValue = function _getOnceReturnValue() { - if (this.hasOwnProperty('_onceReturnValue')) { - return this._onceReturnValue; - } - else { - return true; - } - }; - - /** - * Fetches the events object and creates one if required. - * - * @return {Object} The events storage object. - * @api private - */ - proto._getEvents = function _getEvents() { - return this._events || (this._events = {}); - }; - - /** - * Reverts the global {@link EventEmitter} to its previous value and returns a reference to this version. - * - * @return {Function} Non conflicting EventEmitter class. - */ - EventEmitter.noConflict = function noConflict() { - exports.EventEmitter = originalGlobalValue; - return EventEmitter; - }; - - // Expose the class either via AMD, CommonJS or the global object - if (typeof define === 'function' && define.amd) { - define('eventEmitter/EventEmitter',[],function () { - return EventEmitter; - }); - } - else if (typeof module === 'object' && module.exports){ - module.exports = EventEmitter; - } - else { - exports.EventEmitter = EventEmitter; - } -}.call(this)); - -/*! - * eventie v1.0.6 - * event binding helper - * eventie.bind( elem, 'click', myFn ) - * eventie.unbind( elem, 'click', myFn ) - * MIT license - */ - -/*jshint browser: true, undef: true, unused: true */ -/*global define: false, module: false */ - -( function( window ) { - - - -var docElem = document.documentElement; - -var bind = function() {}; - -function getIEEvent( obj ) { - var event = window.event; - // add event.target - event.target = event.target || event.srcElement || obj; - return event; -} - -if ( docElem.addEventListener ) { - bind = function( obj, type, fn ) { - obj.addEventListener( type, fn, false ); - }; -} else if ( docElem.attachEvent ) { - bind = function( obj, type, fn ) { - obj[ type + fn ] = fn.handleEvent ? - function() { - var event = getIEEvent( obj ); - fn.handleEvent.call( fn, event ); - } : - function() { - var event = getIEEvent( obj ); - fn.call( obj, event ); - }; - obj.attachEvent( "on" + type, obj[ type + fn ] ); - }; -} - -var unbind = function() {}; - -if ( docElem.removeEventListener ) { - unbind = function( obj, type, fn ) { - obj.removeEventListener( type, fn, false ); - }; -} else if ( docElem.detachEvent ) { - unbind = function( obj, type, fn ) { - obj.detachEvent( "on" + type, obj[ type + fn ] ); - try { - delete obj[ type + fn ]; - } catch ( err ) { - // can't delete window object properties - obj[ type + fn ] = undefined; - } - }; -} - -var eventie = { - bind: bind, - unbind: unbind -}; - -// ----- module definition ----- // - -if ( typeof define === 'function' && define.amd ) { - // AMD - define( 'eventie/eventie',eventie ); -} else if ( typeof exports === 'object' ) { - // CommonJS - module.exports = eventie; -} else { - // browser global - window.eventie = eventie; -} - -})( window ); - -/*! - * getStyleProperty v1.0.4 - * original by kangax - * http://perfectionkills.com/feature-testing-css-properties/ - * MIT license - */ - -/*jshint browser: true, strict: true, undef: true */ -/*global define: false, exports: false, module: false */ - -( function( window ) { - - - -var prefixes = 'Webkit Moz ms Ms O'.split(' '); -var docElemStyle = document.documentElement.style; - -function getStyleProperty( propName ) { - if ( !propName ) { - return; - } - - // test standard property first - if ( typeof docElemStyle[ propName ] === 'string' ) { - return propName; - } - - // capitalize - propName = propName.charAt(0).toUpperCase() + propName.slice(1); - - // test vendor specific properties - var prefixed; - for ( var i=0, len = prefixes.length; i < len; i++ ) { - prefixed = prefixes[i] + propName; - if ( typeof docElemStyle[ prefixed ] === 'string' ) { - return prefixed; - } - } -} - -// transport -if ( typeof define === 'function' && define.amd ) { - // AMD - define( 'get-style-property/get-style-property',[],function() { - return getStyleProperty; - }); -} else if ( typeof exports === 'object' ) { - // CommonJS for Component - module.exports = getStyleProperty; -} else { - // browser global - window.getStyleProperty = getStyleProperty; -} - -})( window ); - -/*! - * getSize v1.2.2 - * measure size of elements - * MIT license - */ - -/*jshint browser: true, strict: true, undef: true, unused: true */ -/*global define: false, exports: false, require: false, module: false, console: false */ - -( function( window, undefined ) { - - - -// -------------------------- helpers -------------------------- // - -// get a number from a string, not a percentage -function getStyleSize( value ) { - var num = parseFloat( value ); - // not a percent like '100%', and a number - var isValid = value.indexOf('%') === -1 && !isNaN( num ); - return isValid && num; -} - -function noop() {} - -var logError = typeof console === 'undefined' ? noop : - function( message ) { - console.error( message ); - }; - -// -------------------------- measurements -------------------------- // - -var measurements = [ - 'paddingLeft', - 'paddingRight', - 'paddingTop', - 'paddingBottom', - 'marginLeft', - 'marginRight', - 'marginTop', - 'marginBottom', - 'borderLeftWidth', - 'borderRightWidth', - 'borderTopWidth', - 'borderBottomWidth' -]; - -function getZeroSize() { - var size = { - width: 0, - height: 0, - innerWidth: 0, - innerHeight: 0, - outerWidth: 0, - outerHeight: 0 - }; - for ( var i=0, len = measurements.length; i < len; i++ ) { - var measurement = measurements[i]; - size[ measurement ] = 0; - } - return size; -} - - - -function defineGetSize( getStyleProperty ) { - -// -------------------------- setup -------------------------- // - -var isSetup = false; - -var getStyle, boxSizingProp, isBoxSizeOuter; - -/** - * setup vars and functions - * do it on initial getSize(), rather than on script load - * For Firefox bug https://bugzilla.mozilla.org/show_bug.cgi?id=548397 - */ -function setup() { - // setup once - if ( isSetup ) { - return; - } - isSetup = true; - - var getComputedStyle = window.getComputedStyle; - getStyle = ( function() { - var getStyleFn = getComputedStyle ? - function( elem ) { - return getComputedStyle( elem, null ); - } : - function( elem ) { - return elem.currentStyle; - }; - - return function getStyle( elem ) { - var style = getStyleFn( elem ); - if ( !style ) { - logError( 'Style returned ' + style + - '. Are you running this code in a hidden iframe on Firefox? ' + - 'See http://bit.ly/getsizebug1' ); - } - return style; - }; - })(); - - // -------------------------- box sizing -------------------------- // - - boxSizingProp = getStyleProperty('boxSizing'); - - /** - * WebKit measures the outer-width on style.width on border-box elems - * IE & Firefox measures the inner-width - */ - if ( boxSizingProp ) { - var div = document.createElement('div'); - div.style.width = '200px'; - div.style.padding = '1px 2px 3px 4px'; - div.style.borderStyle = 'solid'; - div.style.borderWidth = '1px 2px 3px 4px'; - div.style[ boxSizingProp ] = 'border-box'; - - var body = document.body || document.documentElement; - body.appendChild( div ); - var style = getStyle( div ); - - isBoxSizeOuter = getStyleSize( style.width ) === 200; - body.removeChild( div ); - } - -} - -// -------------------------- getSize -------------------------- // - -function getSize( elem ) { - setup(); - - // use querySeletor if elem is string - if ( typeof elem === 'string' ) { - elem = document.querySelector( elem ); - } - - // do not proceed on non-objects - if ( !elem || typeof elem !== 'object' || !elem.nodeType ) { - return; - } - - var style = getStyle( elem ); - - // if hidden, everything is 0 - if ( style.display === 'none' ) { - return getZeroSize(); - } - - var size = {}; - size.width = elem.offsetWidth; - size.height = elem.offsetHeight; - - var isBorderBox = size.isBorderBox = !!( boxSizingProp && - style[ boxSizingProp ] && style[ boxSizingProp ] === 'border-box' ); - - // get all measurements - for ( var i=0, len = measurements.length; i < len; i++ ) { - var measurement = measurements[i]; - var value = style[ measurement ]; - value = mungeNonPixel( elem, value ); - var num = parseFloat( value ); - // any 'auto', 'medium' value will be 0 - size[ measurement ] = !isNaN( num ) ? num : 0; - } - - var paddingWidth = size.paddingLeft + size.paddingRight; - var paddingHeight = size.paddingTop + size.paddingBottom; - var marginWidth = size.marginLeft + size.marginRight; - var marginHeight = size.marginTop + size.marginBottom; - var borderWidth = size.borderLeftWidth + size.borderRightWidth; - var borderHeight = size.borderTopWidth + size.borderBottomWidth; - - var isBorderBoxSizeOuter = isBorderBox && isBoxSizeOuter; - - // overwrite width and height if we can get it from style - var styleWidth = getStyleSize( style.width ); - if ( styleWidth !== false ) { - size.width = styleWidth + - // add padding and border unless it's already including it - ( isBorderBoxSizeOuter ? 0 : paddingWidth + borderWidth ); - } - - var styleHeight = getStyleSize( style.height ); - if ( styleHeight !== false ) { - size.height = styleHeight + - // add padding and border unless it's already including it - ( isBorderBoxSizeOuter ? 0 : paddingHeight + borderHeight ); - } - - size.innerWidth = size.width - ( paddingWidth + borderWidth ); - size.innerHeight = size.height - ( paddingHeight + borderHeight ); - - size.outerWidth = size.width + marginWidth; - size.outerHeight = size.height + marginHeight; - - return size; -} - -// IE8 returns percent values, not pixels -// taken from jQuery's curCSS -function mungeNonPixel( elem, value ) { - // IE8 and has percent value - if ( window.getComputedStyle || value.indexOf('%') === -1 ) { - return value; - } - var style = elem.style; - // Remember the original values - var left = style.left; - var rs = elem.runtimeStyle; - var rsLeft = rs && rs.left; - - // Put in the new values to get a computed value out - if ( rsLeft ) { - rs.left = elem.currentStyle.left; - } - style.left = value; - value = style.pixelLeft; - - // Revert the changed values - style.left = left; - if ( rsLeft ) { - rs.left = rsLeft; - } - - return value; -} - -return getSize; - -} - -// transport -if ( typeof define === 'function' && define.amd ) { - // AMD for RequireJS - define( 'get-size/get-size',[ 'get-style-property/get-style-property' ], defineGetSize ); -} else if ( typeof exports === 'object' ) { - // CommonJS for Component - module.exports = defineGetSize( require('desandro-get-style-property') ); -} else { - // browser global - window.getSize = defineGetSize( window.getStyleProperty ); -} - -})( window ); - -/*! - * docReady v1.0.4 - * Cross browser DOMContentLoaded event emitter - * MIT license - */ - -/*jshint browser: true, strict: true, undef: true, unused: true*/ -/*global define: false, require: false, module: false */ - -( function( window ) { - - - -var document = window.document; -// collection of functions to be triggered on ready -var queue = []; - -function docReady( fn ) { - // throw out non-functions - if ( typeof fn !== 'function' ) { - return; - } - - if ( docReady.isReady ) { - // ready now, hit it - fn(); - } else { - // queue function when ready - queue.push( fn ); - } -} - -docReady.isReady = false; - -// triggered on various doc ready events -function onReady( event ) { - // bail if already triggered or IE8 document is not ready just yet - var isIE8NotReady = event.type === 'readystatechange' && document.readyState !== 'complete'; - if ( docReady.isReady || isIE8NotReady ) { - return; - } - - trigger(); -} - -function trigger() { - docReady.isReady = true; - // process queue - for ( var i=0, len = queue.length; i < len; i++ ) { - var fn = queue[i]; - fn(); - } -} - -function defineDocReady( eventie ) { - // trigger ready if page is ready - if ( document.readyState === 'complete' ) { - trigger(); - } else { - // listen for events - eventie.bind( document, 'DOMContentLoaded', onReady ); - eventie.bind( document, 'readystatechange', onReady ); - eventie.bind( window, 'load', onReady ); - } - - return docReady; -} - -// transport -if ( typeof define === 'function' && define.amd ) { - // AMD - define( 'doc-ready/doc-ready',[ 'eventie/eventie' ], defineDocReady ); -} else if ( typeof exports === 'object' ) { - module.exports = defineDocReady( require('eventie') ); -} else { - // browser global - window.docReady = defineDocReady( window.eventie ); -} - -})( window ); - -/** - * matchesSelector v1.0.3 - * matchesSelector( element, '.selector' ) - * MIT license - */ - -/*jshint browser: true, strict: true, undef: true, unused: true */ -/*global define: false, module: false */ - -( function( ElemProto ) { - - - - var matchesMethod = ( function() { - // check for the standard method name first - if ( ElemProto.matches ) { - return 'matches'; - } - // check un-prefixed - if ( ElemProto.matchesSelector ) { - return 'matchesSelector'; - } - // check vendor prefixes - var prefixes = [ 'webkit', 'moz', 'ms', 'o' ]; - - for ( var i=0, len = prefixes.length; i < len; i++ ) { - var prefix = prefixes[i]; - var method = prefix + 'MatchesSelector'; - if ( ElemProto[ method ] ) { - return method; - } - } - })(); - - // ----- match ----- // - - function match( elem, selector ) { - return elem[ matchesMethod ]( selector ); - } - - // ----- appendToFragment ----- // - - function checkParent( elem ) { - // not needed if already has parent - if ( elem.parentNode ) { - return; - } - var fragment = document.createDocumentFragment(); - fragment.appendChild( elem ); - } - - // ----- query ----- // - - // fall back to using QSA - // thx @jonathantneal https://gist.github.com/3062955 - function query( elem, selector ) { - // append to fragment if no parent - checkParent( elem ); - - // match elem with all selected elems of parent - var elems = elem.parentNode.querySelectorAll( selector ); - for ( var i=0, len = elems.length; i < len; i++ ) { - // return true if match - if ( elems[i] === elem ) { - return true; - } - } - // otherwise return false - return false; - } - - // ----- matchChild ----- // - - function matchChild( elem, selector ) { - checkParent( elem ); - return match( elem, selector ); - } - - // ----- matchesSelector ----- // - - var matchesSelector; - - if ( matchesMethod ) { - // IE9 supports matchesSelector, but doesn't work on orphaned elems - // check for that - var div = document.createElement('div'); - var supportsOrphans = match( div, 'div' ); - matchesSelector = supportsOrphans ? match : matchChild; - } else { - matchesSelector = query; - } - - // transport - if ( typeof define === 'function' && define.amd ) { - // AMD - define( 'matches-selector/matches-selector',[],function() { - return matchesSelector; - }); - } else if ( typeof exports === 'object' ) { - module.exports = matchesSelector; - } - else { - // browser global - window.matchesSelector = matchesSelector; - } - -})( Element.prototype ); - -/** - * Fizzy UI utils v1.0.1 - * MIT license - */ - -/*jshint browser: true, undef: true, unused: true, strict: true */ - -( function( window, factory ) { - /*global define: false, module: false, require: false */ - - // universal module definition - - if ( typeof define == 'function' && define.amd ) { - // AMD - define( 'fizzy-ui-utils/utils',[ - 'doc-ready/doc-ready', - 'matches-selector/matches-selector' - ], function( docReady, matchesSelector ) { - return factory( window, docReady, matchesSelector ); - }); - } else if ( typeof exports == 'object' ) { - // CommonJS - module.exports = factory( - window, - require('doc-ready'), - require('desandro-matches-selector') - ); - } else { - // browser global - window.fizzyUIUtils = factory( - window, - window.docReady, - window.matchesSelector - ); - } - -}( window, function factory( window, docReady, matchesSelector ) { - - - -var utils = {}; - -// ----- extend ----- // - -// extends objects -utils.extend = function( a, b ) { - for ( var prop in b ) { - a[ prop ] = b[ prop ]; - } - return a; -}; - -// ----- modulo ----- // - -utils.modulo = function( num, div ) { - return ( ( num % div ) + div ) % div; -}; - -// ----- isArray ----- // - -var objToString = Object.prototype.toString; -utils.isArray = function( obj ) { - return objToString.call( obj ) == '[object Array]'; -}; - -// ----- makeArray ----- // - -// turn element or nodeList into an array -utils.makeArray = function( obj ) { - var ary = []; - if ( utils.isArray( obj ) ) { - // use object if already an array - ary = obj; - } else if ( obj && typeof obj.length == 'number' ) { - // convert nodeList to array - for ( var i=0, len = obj.length; i < len; i++ ) { - ary.push( obj[i] ); - } - } else { - // array of single index - ary.push( obj ); - } - return ary; -}; - -// ----- indexOf ----- // - -// index of helper cause IE8 -utils.indexOf = Array.prototype.indexOf ? function( ary, obj ) { - return ary.indexOf( obj ); - } : function( ary, obj ) { - for ( var i=0, len = ary.length; i < len; i++ ) { - if ( ary[i] === obj ) { - return i; - } - } - return -1; - }; - -// ----- removeFrom ----- // - -utils.removeFrom = function( ary, obj ) { - var index = utils.indexOf( ary, obj ); - if ( index != -1 ) { - ary.splice( index, 1 ); - } -}; - -// ----- isElement ----- // - -// http://stackoverflow.com/a/384380/182183 -utils.isElement = ( typeof HTMLElement == 'function' || typeof HTMLElement == 'object' ) ? - function isElementDOM2( obj ) { - return obj instanceof HTMLElement; - } : - function isElementQuirky( obj ) { - return obj && typeof obj == 'object' && - obj.nodeType == 1 && typeof obj.nodeName == 'string'; - }; - -// ----- setText ----- // - -utils.setText = ( function() { - var setTextProperty; - function setText( elem, text ) { - // only check setTextProperty once - setTextProperty = setTextProperty || ( document.documentElement.textContent !== undefined ? 'textContent' : 'innerText' ); - elem[ setTextProperty ] = text; - } - return setText; -})(); - -// ----- getParent ----- // - -utils.getParent = function( elem, selector ) { - while ( elem != document.body ) { - elem = elem.parentNode; - if ( matchesSelector( elem, selector ) ) { - return elem; - } - } -}; - -// ----- getQueryElement ----- // - -// use element as selector string -utils.getQueryElement = function( elem ) { - if ( typeof elem == 'string' ) { - return document.querySelector( elem ); - } - return elem; -}; - -// ----- handleEvent ----- // - -// enable .ontype to trigger from .addEventListener( elem, 'type' ) -utils.handleEvent = function( event ) { - var method = 'on' + event.type; - if ( this[ method ] ) { - this[ method ]( event ); - } -}; - -// ----- filterFindElements ----- // - -utils.filterFindElements = function( elems, selector ) { - // make array of elems - elems = utils.makeArray( elems ); - var ffElems = []; - - for ( var i=0, len = elems.length; i < len; i++ ) { - var elem = elems[i]; - // check that elem is an actual element - if ( !utils.isElement( elem ) ) { - continue; - } - // filter & find items if we have a selector - if ( selector ) { - // filter siblings - if ( matchesSelector( elem, selector ) ) { - ffElems.push( elem ); - } - // find children - var childElems = elem.querySelectorAll( selector ); - // concat childElems to filterFound array - for ( var j=0, jLen = childElems.length; j < jLen; j++ ) { - ffElems.push( childElems[j] ); - } - } else { - ffElems.push( elem ); - } - } - - return ffElems; -}; - -// ----- debounceMethod ----- // - -utils.debounceMethod = function( _class, methodName, threshold ) { - // original method - var method = _class.prototype[ methodName ]; - var timeoutName = methodName + 'Timeout'; - - _class.prototype[ methodName ] = function() { - var timeout = this[ timeoutName ]; - if ( timeout ) { - clearTimeout( timeout ); - } - var args = arguments; - - var _this = this; - this[ timeoutName ] = setTimeout( function() { - method.apply( _this, args ); - delete _this[ timeoutName ]; - }, threshold || 100 ); - }; -}; - -// ----- htmlInit ----- // - -// http://jamesroberts.name/blog/2010/02/22/string-functions-for-javascript-trim-to-camel-case-to-dashed-and-to-underscore/ -utils.toDashed = function( str ) { - return str.replace( /(.)([A-Z])/g, function( match, $1, $2 ) { - return $1 + '-' + $2; - }).toLowerCase(); -}; - -var console = window.console; -/** - * allow user to initialize classes via .js-namespace class - * htmlInit( Widget, 'widgetName' ) - * options are parsed from data-namespace-option attribute - */ -utils.htmlInit = function( WidgetClass, namespace ) { - docReady( function() { - var dashedNamespace = utils.toDashed( namespace ); - var elems = document.querySelectorAll( '.js-' + dashedNamespace ); - var dataAttr = 'data-' + dashedNamespace + '-options'; - - for ( var i=0, len = elems.length; i < len; i++ ) { - var elem = elems[i]; - var attr = elem.getAttribute( dataAttr ); - var options; - try { - options = attr && JSON.parse( attr ); - } catch ( error ) { - // log error, do not initialize - if ( console ) { - console.error( 'Error parsing ' + dataAttr + ' on ' + - elem.nodeName.toLowerCase() + ( elem.id ? '#' + elem.id : '' ) + ': ' + - error ); - } - continue; - } - // initialize - var instance = new WidgetClass( elem, options ); - // make available via $().data('layoutname') - var jQuery = window.jQuery; - if ( jQuery ) { - jQuery.data( elem, namespace, instance ); - } - } - }); -}; - -// ----- ----- // - -return utils; - -})); - -( function( window, factory ) { - - // universal module definition - - if ( typeof define == 'function' && define.amd ) { - // AMD - define( 'flickity/js/cell',[ - 'get-size/get-size' - ], function( getSize ) { - return factory( window, getSize ); - }); - } else if ( typeof exports == 'object' ) { - // CommonJS - module.exports = factory( - window, - require('get-size') - ); - } else { - // browser global - window.Flickity = window.Flickity || {}; - window.Flickity.Cell = factory( - window, - window.getSize - ); - } - -}( window, function factory( window, getSize ) { - - - -function Cell( elem, parent ) { - this.element = elem; - this.parent = parent; - - this.create(); -} - -var isIE8 = 'attachEvent' in window; - -Cell.prototype.create = function() { - this.element.style.position = 'absolute'; - // IE8 prevent child from changing focus http://stackoverflow.com/a/17525223/182183 - if ( isIE8 ) { - this.element.setAttribute( 'unselectable', 'on' ); - } - this.x = 0; - this.shift = 0; -}; - -Cell.prototype.destroy = function() { - // reset style - this.element.style.position = ''; - var side = this.parent.originSide; - this.element.style[ side ] = ''; -}; - -Cell.prototype.getSize = function() { - this.size = getSize( this.element ); -}; - -Cell.prototype.setPosition = function( x ) { - this.x = x; - this.setDefaultTarget(); - this.renderPosition( x ); -}; - -Cell.prototype.setDefaultTarget = function() { - var marginProperty = this.parent.originSide == 'left' ? 'marginLeft' : 'marginRight'; - this.target = this.x + this.size[ marginProperty ] + - this.size.width * this.parent.cellAlign; -}; - -Cell.prototype.renderPosition = function( x ) { - // render position of cell with in slider - var side = this.parent.originSide; - this.element.style[ side ] = this.parent.getPositionValue( x ); -}; - -/** - * @param {Integer} factor - 0, 1, or -1 -**/ -Cell.prototype.wrapShift = function( shift ) { - this.shift = shift; - this.renderPosition( this.x + this.parent.slideableWidth * shift ); -}; - -Cell.prototype.remove = function() { - this.element.parentNode.removeChild( this.element ); -}; - -return Cell; - -})); - -( function( window, factory ) { - - // universal module definition - - if ( typeof define == 'function' && define.amd ) { - // AMD - define( 'flickity/js/animate',[ - 'get-style-property/get-style-property', - 'fizzy-ui-utils/utils' - ], function( getStyleProperty, utils ) { - return factory( window, getStyleProperty, utils ); - }); - } else if ( typeof exports == 'object' ) { - // CommonJS - module.exports = factory( - window, - require('desandro-get-style-property'), - require('fizzy-ui-utils') - ); - } else { - // browser global - window.Flickity = window.Flickity || {}; - window.Flickity.animatePrototype = factory( - window, - window.getStyleProperty, - window.fizzyUIUtils - ); - } - -}( window, function factory( window, getStyleProperty, utils ) { - - - -// -------------------------- requestAnimationFrame -------------------------- // - -// https://gist.github.com/1866474 - -var lastTime = 0; -var prefixes = 'webkit moz ms o'.split(' '); -// get unprefixed rAF and cAF, if present -var requestAnimationFrame = window.requestAnimationFrame; -var cancelAnimationFrame = window.cancelAnimationFrame; -// loop through vendor prefixes and get prefixed rAF and cAF -var prefix; -for( var i = 0; i < prefixes.length; i++ ) { - if ( requestAnimationFrame && cancelAnimationFrame ) { - break; - } - prefix = prefixes[i]; - requestAnimationFrame = requestAnimationFrame || window[ prefix + 'RequestAnimationFrame' ]; - cancelAnimationFrame = cancelAnimationFrame || window[ prefix + 'CancelAnimationFrame' ] || - window[ prefix + 'CancelRequestAnimationFrame' ]; -} - -// fallback to setTimeout and clearTimeout if either request/cancel is not supported -if ( !requestAnimationFrame || !cancelAnimationFrame ) { - requestAnimationFrame = function( callback ) { - var currTime = new Date().getTime(); - var timeToCall = Math.max( 0, 16 - ( currTime - lastTime ) ); - var id = window.setTimeout( function() { - callback( currTime + timeToCall ); - }, timeToCall ); - lastTime = currTime + timeToCall; - return id; - }; - - cancelAnimationFrame = function( id ) { - window.clearTimeout( id ); - }; -} - -// -------------------------- animate -------------------------- // - -var proto = {}; - -proto.startAnimation = function() { - if ( this.isAnimating ) { - return; - } - - this.isAnimating = true; - this.restingFrames = 0; - this.animate(); -}; - -proto.animate = function() { - this.applySelectedAttraction(); - - var previousX = this.x; - - this.integratePhysics(); - this.positionSlider(); - this.settle( previousX ); - // animate next frame - if ( this.isAnimating ) { - var _this = this; - requestAnimationFrame( function animateFrame() { - _this.animate(); - }); - } - - /** / - // log animation frame rate - var now = new Date(); - if ( this.then ) { - console.log( ~~( 1000 / (now-this.then)) + 'fps' ) - } - this.then = now; - /**/ -}; - - -var transformProperty = getStyleProperty('transform'); -var is3d = !!getStyleProperty('perspective'); - -proto.positionSlider = function() { - var x = this.x; - // wrap position around - if ( this.options.wrapAround && this.cells.length > 1 ) { - x = utils.modulo( x, this.slideableWidth ); - x = x - this.slideableWidth; - this.shiftWrapCells( x ); - } - - x = x + this.cursorPosition; - - // reverse if right-to-left and using transform - x = this.options.rightToLeft && transformProperty ? -x : x; - - var value = this.getPositionValue( x ); - - if ( transformProperty ) { - // use 3D tranforms for hardware acceleration on iOS - // but use 2D when settled, for better font-rendering - this.slider.style[ transformProperty ] = is3d && this.isAnimating ? - 'translate3d(' + value + ',0,0)' : 'translateX(' + value + ')'; - } else { - this.slider.style[ this.originSide ] = value; - } -}; - -proto.positionSliderAtSelected = function() { - if ( !this.cells.length ) { - return; - } - var selectedCell = this.cells[ this.selectedIndex ]; - this.x = -selectedCell.target; - this.positionSlider(); -}; - -proto.getPositionValue = function( position ) { - if ( this.options.percentPosition ) { - // percent position, round to 2 digits, like 12.34% - return ( Math.round( ( position / this.size.innerWidth ) * 10000 ) * 0.01 )+ '%'; - } else { - // pixel positioning - return Math.round( position ) + 'px'; - } -}; - -proto.settle = function( previousX ) { - // keep track of frames where x hasn't moved - if ( !this.isPointerDown && Math.round( this.x * 100 ) == Math.round( previousX * 100 ) ) { - this.restingFrames++; - } - // stop animating if resting for 3 or more frames - if ( this.restingFrames > 2 ) { - this.isAnimating = false; - delete this.isFreeScrolling; - // render position with translateX when settled - if ( is3d ) { - this.positionSlider(); - } - this.dispatchEvent('settle'); - } -}; - -proto.shiftWrapCells = function( x ) { - // shift before cells - var beforeGap = this.cursorPosition + x; - this._shiftCells( this.beforeShiftCells, beforeGap, -1 ); - // shift after cells - var afterGap = this.size.innerWidth - ( x + this.slideableWidth + this.cursorPosition ); - this._shiftCells( this.afterShiftCells, afterGap, 1 ); -}; - -proto._shiftCells = function( cells, gap, shift ) { - for ( var i=0, len = cells.length; i < len; i++ ) { - var cell = cells[i]; - var cellShift = gap > 0 ? shift : 0; - cell.wrapShift( cellShift ); - gap -= cell.size.outerWidth; - } -}; - -proto._unshiftCells = function( cells ) { - if ( !cells || !cells.length ) { - return; - } - for ( var i=0, len = cells.length; i < len; i++ ) { - cells[i].wrapShift( 0 ); - } -}; - -// -------------------------- physics -------------------------- // - -proto.integratePhysics = function() { - this.velocity += this.accel; - this.x += this.velocity; - this.velocity *= this.getFrictionFactor(); - // reset acceleration - this.accel = 0; -}; - -proto.applyForce = function( force ) { - this.accel += force; -}; - -proto.getFrictionFactor = function() { - return 1 - this.options[ this.isFreeScrolling ? 'freeScrollFriction' : 'friction' ]; -}; - - -proto.getRestingPosition = function() { - // my thanks to Steven Wittens, who simplified this math greatly - return this.x + this.velocity / ( 1 - this.getFrictionFactor() ); -}; - - -proto.applySelectedAttraction = function() { - // do not attract if pointer down or no cells - var len = this.cells.length; - if ( this.isPointerDown || this.isFreeScrolling || !len ) { - return; - } - var cell = this.cells[ this.selectedIndex ]; - var wrap = this.options.wrapAround && len > 1 ? - this.slideableWidth * Math.floor( this.selectedIndex / len ) : 0; - var distance = ( cell.target + wrap ) * -1 - this.x; - var force = distance * this.options.selectedAttraction; - this.applyForce( force ); -}; - -return proto; - -})); - -/*! - * Flickity v1.0.1 - * Touch, responsive, flickable galleries - * - * Licensed GPLv3 for open source use - * or Flickity Commercial License for commercial use - * - * http://flickity.metafizzy.co - * Copyright 2015 Metafizzy - */ - -( function( window, factory ) { - - // universal module definition - - if ( typeof define == 'function' && define.amd ) { - // AMD - define( 'flickity/js/flickity',[ - 'classie/classie', - 'eventEmitter/EventEmitter', - 'eventie/eventie', - 'get-size/get-size', - 'fizzy-ui-utils/utils', - './cell', - './animate' - ], function( classie, EventEmitter, eventie, getSize, utils, Cell, animatePrototype ) { - return factory( window, classie, EventEmitter, eventie, getSize, utils, Cell, animatePrototype ); - }); - } else if ( typeof exports == 'object' ) { - // CommonJS - module.exports = factory( - window, - require('desandro-classie'), - require('wolfy87-eventemitter'), - require('eventie'), - require('get-size'), - require('fizzy-ui-utils'), - require('./cell'), - require('./animate') - ); - } else { - // browser global - var _Flickity = window.Flickity; - - window.Flickity = factory( - window, - window.classie, - window.EventEmitter, - window.eventie, - window.getSize, - window.fizzyUIUtils, - _Flickity.Cell, - _Flickity.animatePrototype - ); - } - -}( window, function factory( window, classie, EventEmitter, eventie, getSize, - utils, Cell, animatePrototype ) { - - - -// vars -var jQuery = window.jQuery; -var getComputedStyle = window.getComputedStyle; -var console = window.console; - -function moveElements( elems, toElem ) { - elems = utils.makeArray( elems ); - while ( elems.length ) { - toElem.appendChild( elems.shift() ); - } -} - -// -------------------------- Flickity -------------------------- // - -// globally unique identifiers -var GUID = 0; -// internal store of all Flickity intances -var instances = {}; - -function Flickity( element, options ) { - var queryElement = utils.getQueryElement( element ); - if ( !queryElement ) { - if ( console ) { - console.error( 'Bad element for Flickity: ' + ( queryElement || element ) ); - } - return; - } - this.element = queryElement; - // add jQuery - if ( jQuery ) { - this.$element = jQuery( this.element ); - } - // options - this.options = utils.extend( {}, this.constructor.defaults ); - this.option( options ); - - // kick things off - this._create(); -} - -Flickity.defaults = { - accessibility: true, - cellAlign: 'center', - // cellSelector: undefined, - // contain: false, - freeScrollFriction: 0.075, // friction when free-scrolling - friction: 0.28, // friction when selecting - // initialIndex: 0, - percentPosition: true, - resize: true, - selectedAttraction: 0.025, - setGallerySize: true - // watchCSS: false, - // wrapAround: false -}; - -// hash of methods triggered on _create() -Flickity.createMethods = []; - -// inherit EventEmitter -utils.extend( Flickity.prototype, EventEmitter.prototype ); - -Flickity.prototype._create = function() { - // add id for Flickity.data - var id = this.guid = ++GUID; - this.element.flickityGUID = id; // expando - instances[ id ] = this; // associate via id - // initial properties - this.selectedIndex = this.options.initialIndex || 0; - // how many frames slider has been in same position - this.restingFrames = 0; - // initial physics properties - this.x = 0; - this.velocity = 0; - this.accel = 0; - this.originSide = this.options.rightToLeft ? 'right' : 'left'; - // create viewport & slider - this.viewport = document.createElement('div'); - this.viewport.className = 'flickity-viewport'; - Flickity.setUnselectable( this.viewport ); - this._createSlider(); - - if ( this.options.resize || this.options.watchCSS ) { - eventie.bind( window, 'resize', this ); - this.isResizeBound = true; - } - - for ( var i=0, len = Flickity.createMethods.length; i < len; i++ ) { - var method = Flickity.createMethods[i]; - this[ method ](); - } - - if ( this.options.watchCSS ) { - this.watchCSS(); - } else { - this.activate(); - } - -}; - -/** - * set options - * @param {Object} opts - */ -Flickity.prototype.option = function( opts ) { - utils.extend( this.options, opts ); -}; - -Flickity.prototype.activate = function() { - if ( this.isActive ) { - return; - } - this.isActive = true; - classie.add( this.element, 'flickity-enabled' ); - if ( this.options.rightToLeft ) { - classie.add( this.element, 'flickity-rtl' ); - } - - // move initial cell elements so they can be loaded as cells - var cellElems = this._filterFindCellElements( this.element.children ); - moveElements( cellElems, this.slider ); - this.viewport.appendChild( this.slider ); - this.element.appendChild( this.viewport ); - - this.getSize(); - // get cells from children - this.reloadCells(); - - if ( this.options.accessibility ) { - // allow element to focusable - this.element.tabIndex = 0; - // listen for key presses - eventie.bind( this.element, 'keydown', this ); - } - - this.emit('activate'); - - this.positionSliderAtSelected(); - this.select( this.selectedIndex ); -}; - -// slider positions the cells -Flickity.prototype._createSlider = function() { - // slider element does all the positioning - var slider = document.createElement('div'); - slider.className = 'flickity-slider'; - slider.style[ this.originSide ] = 0; - this.slider = slider; -}; - -Flickity.prototype._filterFindCellElements = function( elems ) { - return utils.filterFindElements( elems, this.options.cellSelector ); -}; - -// goes through all children -Flickity.prototype.reloadCells = function() { - // collection of item elements - this.cells = this._makeCells( this.slider.children ); - this.positionCells(); - this._getWrapShiftCells(); - this.setGallerySize(); -}; - -/** - * turn elements into Flickity.Cells - * @param {Array or NodeList or HTMLElement} elems - * @returns {Array} items - collection of new Flickity Cells - */ -Flickity.prototype._makeCells = function( elems ) { - var cellElems = this._filterFindCellElements( elems ); - - // create new Flickity for collection - var cells = []; - for ( var i=0, len = cellElems.length; i < len; i++ ) { - var elem = cellElems[i]; - var cell = new Cell( elem, this ); - cells.push( cell ); - } - - return cells; -}; - -Flickity.prototype.getLastCell = function() { - return this.cells[ this.cells.length - 1 ]; -}; - -// positions all cells -Flickity.prototype.positionCells = function() { - // size all cells - this._sizeCells( this.cells ); - // position all cells - this._positionCells( 0 ); -}; - -/** - * position certain cells - * @param {Integer} index - which cell to start with - */ -Flickity.prototype._positionCells = function( index ) { - // also measure maxCellHeight - // start 0 if positioning all cells - this.maxCellHeight = index ? this.maxCellHeight || 0 : 0; - var cellX = 0; - // get cellX - if ( index > 0 ) { - var startCell = this.cells[ index - 1 ]; - cellX = startCell.x + startCell.size.outerWidth; - } - var cell; - for ( var len = this.cells.length, i=index; i < len; i++ ) { - cell = this.cells[i]; - cell.setPosition( cellX ); - cellX += cell.size.outerWidth; - this.maxCellHeight = Math.max( cell.size.outerHeight, this.maxCellHeight ); - } - // keep track of cellX for wrap-around - this.slideableWidth = cellX; - // contain cell target - this._containCells(); -}; - -/** - * cell.getSize() on multiple cells - * @param {Array} cells - */ -Flickity.prototype._sizeCells = function( cells ) { - for ( var i=0, len = cells.length; i < len; i++ ) { - var cell = cells[i]; - cell.getSize(); - } -}; - -// alias _init for jQuery plugin .flickity() -Flickity.prototype._init = -Flickity.prototype.reposition = function() { - this.positionCells(); - this.positionSliderAtSelected(); -}; - -Flickity.prototype.getSize = function() { - this.size = getSize( this.element ); - this.setCellAlign(); - this.cursorPosition = this.size.innerWidth * this.cellAlign; -}; - -var cellAlignShorthands = { - // cell align, then based on origin side - center: { - left: 0.5, - right: 0.5 - }, - left: { - left: 0, - right: 1 - }, - right: { - right: 0, - left: 1 - } -}; - -Flickity.prototype.setCellAlign = function() { - var shorthand = cellAlignShorthands[ this.options.cellAlign ]; - this.cellAlign = shorthand ? shorthand[ this.originSide ] : this.options.cellAlign; -}; - -Flickity.prototype.setGallerySize = function() { - if ( this.options.setGallerySize ) { - this.viewport.style.height = this.maxCellHeight + 'px'; - } -}; - -Flickity.prototype._getWrapShiftCells = function() { - // only for wrap-around - if ( !this.options.wrapAround ) { - return; - } - // unshift previous cells - this._unshiftCells( this.beforeShiftCells ); - this._unshiftCells( this.afterShiftCells ); - // get before cells - // initial gap - var gapX = this.cursorPosition; - var cellIndex = this.cells.length - 1; - this.beforeShiftCells = this._getGapCells( gapX, cellIndex, -1 ); - // get after cells - // ending gap between last cell and end of gallery viewport - gapX = this.size.innerWidth - this.cursorPosition; - // start cloning at first cell, working forwards - this.afterShiftCells = this._getGapCells( gapX, 0, 1 ); -}; - -Flickity.prototype._getGapCells = function( gapX, cellIndex, increment ) { - // keep adding cells until the cover the initial gap - var cells = []; - while ( gapX > 0 ) { - var cell = this.cells[ cellIndex ]; - if ( !cell ) { - break; - } - cells.push( cell ); - cellIndex += increment; - gapX -= cell.size.outerWidth; - } - return cells; -}; - -// ----- contain ----- // - -// contain cell targets so no excess sliding -Flickity.prototype._containCells = function() { - if ( !this.options.contain || this.options.wrapAround || !this.cells.length ) { - return; - } - var startMargin = this.options.rightToLeft ? 'marginRight' : 'marginLeft'; - var endMargin = this.options.rightToLeft ? 'marginLeft' : 'marginRight'; - var firstCellStartMargin = this.cells[0].size[ startMargin ]; - var lastCell = this.getLastCell(); - var contentWidth = this.slideableWidth - lastCell.size[ endMargin ]; - var endLimit = contentWidth - this.size.innerWidth * ( 1 - this.cellAlign ); - // content is less than gallery size - var isContentSmaller = contentWidth < this.size.innerWidth; - // contain each cell target - for ( var i=0, len = this.cells.length; i < len; i++ ) { - var cell = this.cells[i]; - // reset default target - cell.setDefaultTarget(); - if ( isContentSmaller ) { - // all cells fit inside gallery - cell.target = contentWidth * this.cellAlign; - } else { - // contain to bounds - cell.target = Math.max( cell.target, this.cursorPosition + firstCellStartMargin ); - cell.target = Math.min( cell.target, endLimit ); - } - } -}; - -// ----- ----- // - -/** - * emits events via eventEmitter and jQuery events - * @param {String} type - name of event - * @param {Event} event - original event - * @param {Array} args - extra arguments - */ -Flickity.prototype.dispatchEvent = function( type, event, args ) { - var emitArgs = [ event ].concat( args ); - this.emitEvent( type, emitArgs ); - - if ( jQuery && this.$element ) { - if ( event ) { - // create jQuery event - var $event = jQuery.Event( event ); - $event.type = type; - this.$element.trigger( $event, args ); - } else { - // just trigger with type if no event available - this.$element.trigger( type, args ); - } - } -}; - -// -------------------------- select -------------------------- // - -/** - * @param {Integer} index - index of the cell - * @param {Boolean} isWrap - will wrap-around to last/first if at the end - */ -Flickity.prototype.select = function( index, isWrap ) { - if ( !this.isActive ) { - return; - } - // wrap position so slider is within normal area - var len = this.cells.length; - if ( this.options.wrapAround && len > 1 ) { - if ( index < 0 ) { - this.x -= this.slideableWidth; - } else if ( index >= len ) { - this.x += this.slideableWidth; - } - } - - if ( this.options.wrapAround || isWrap ) { - index = utils.modulo( index, len ); - } - - if ( this.cells[ index ] ) { - this.selectedIndex = index; - this.setSelectedCell(); - this.startAnimation(); - this.dispatchEvent('cellSelect'); - } -}; - -Flickity.prototype.previous = function( isWrap ) { - this.select( this.selectedIndex - 1, isWrap ); -}; - -Flickity.prototype.next = function( isWrap ) { - this.select( this.selectedIndex + 1, isWrap ); -}; - -Flickity.prototype.setSelectedCell = function() { - this._removeSelectedCellClass(); - this.selectedCell = this.cells[ this.selectedIndex ]; - this.selectedElement = this.selectedCell.element; - classie.add( this.selectedElement, 'is-selected' ); -}; - -Flickity.prototype._removeSelectedCellClass = function() { - if ( this.selectedCell ) { - classie.remove( this.selectedCell.element, 'is-selected' ); - } -}; - -// -------------------------- get cells -------------------------- // - -/** - * get Flickity.Cell, given an Element - * @param {Element} elem - * @returns {Flickity.Cell} item - */ -Flickity.prototype.getCell = function( elem ) { - // loop through cells to get the one that matches - for ( var i=0, len = this.cells.length; i < len; i++ ) { - var cell = this.cells[i]; - if ( cell.element == elem ) { - return cell; - } - } -}; - -/** - * get collection of Flickity.Cells, given Elements - * @param {Element, Array, NodeList} elems - * @returns {Array} cells - Flickity.Cells - */ -Flickity.prototype.getCells = function( elems ) { - elems = utils.makeArray( elems ); - var cells = []; - for ( var i=0, len = elems.length; i < len; i++ ) { - var elem = elems[i]; - var cell = this.getCell( elem ); - if ( cell ) { - cells.push( cell ); - } - } - return cells; -}; - -/** - * get cell elements - * @returns {Array} cellElems - */ -Flickity.prototype.getCellElements = function() { - var cellElems = []; - for ( var i=0, len = this.cells.length; i < len; i++ ) { - cellElems.push( this.cells[i].element ); - } - return cellElems; -}; - -/** - * get parent cell from an element - * @param {Element} elem - * @returns {Flickit.Cell} cell - */ -Flickity.prototype.getParentCell = function( elem ) { - // first check if elem is cell - var cell = this.getCell( elem ); - if ( cell ) { - return cell; - } - // try to get parent cell elem - elem = utils.getParent( elem, '.flickity-slider > *' ); - return this.getCell( elem ); -}; - -// -------------------------- events -------------------------- // - -Flickity.prototype.uiChange = function() { - this.emit('uiChange'); -}; - -Flickity.prototype.childUIPointerDown = function( event ) { - this.emitEvent( 'childUIPointerDown', [ event ] ); -}; - -// ----- resize ----- // - -Flickity.prototype.onresize = function() { - this.watchCSS(); - this.resize(); -}; - -utils.debounceMethod( Flickity, 'onresize', 150 ); - -Flickity.prototype.resize = function() { - if ( !this.isActive ) { - return; - } - this.getSize(); - // wrap values - if ( this.options.wrapAround ) { - this.x = utils.modulo( this.x, this.slideableWidth ); - } - this.positionCells(); - this._getWrapShiftCells(); - this.setGallerySize(); - this.positionSliderAtSelected(); -}; - -var supportsConditionalCSS = Flickity.supportsConditionalCSS = ( function() { - var supports; - return function checkSupport() { - if ( supports !== undefined ) { - return supports; - } - if ( !getComputedStyle ) { - supports = false; - return; - } - // style body's :after and check that - var style = document.createElement('style'); - var cssText = document.createTextNode('body:after { content: "foo"; display: none; }'); - style.appendChild( cssText ); - document.head.appendChild( style ); - var afterContent = getComputedStyle( document.body, ':after' ).content; - // check if able to get :after content - supports = afterContent.indexOf('foo') != -1; - document.head.removeChild( style ); - return supports; - }; -})(); - -// watches the :after property, activates/deactivates -Flickity.prototype.watchCSS = function() { - var watchOption = this.options.watchCSS; - if ( !watchOption ) { - return; - } - var supports = supportsConditionalCSS(); - if ( !supports ) { - // activate if watch option is fallbackOn - var method = watchOption == 'fallbackOn' ? 'activate' : 'deactivate'; - this[ method ](); - return; - } - - var afterContent = getComputedStyle( this.element, ':after' ).content; - // activate if :after { content: 'flickity' } - if ( afterContent.indexOf('flickity') != -1 ) { - this.activate(); - } else { - this.deactivate(); - } -}; - -// ----- keydown ----- // - -// go previous/next if left/right keys pressed -Flickity.prototype.onkeydown = function( event ) { - // only work if element is in focus - if ( !this.options.accessibility || - ( document.activeElement && document.activeElement != this.element ) ) { - return; - } - - if ( event.keyCode == 37 ) { - // go left - var leftMethod = this.options.rightToLeft ? 'next' : 'previous'; - this.uiChange(); - this[ leftMethod ](); - } else if ( event.keyCode == 39 ) { - // go right - var rightMethod = this.options.rightToLeft ? 'previous' : 'next'; - this.uiChange(); - this[ rightMethod ](); - } -}; - -// -------------------------- destroy -------------------------- // - -// deactivate all Flickity functionality, but keep stuff available -Flickity.prototype.deactivate = function() { - if ( !this.isActive ) { - return; - } - classie.remove( this.element, 'flickity-enabled' ); - classie.remove( this.element, 'flickity-rtl' ); - // destroy cells - for ( var i=0, len = this.cells.length; i < len; i++ ) { - var cell = this.cells[i]; - cell.destroy(); - } - this._removeSelectedCellClass(); - this.element.removeChild( this.viewport ); - // move child elements back into element - moveElements( this.slider.children, this.element ); - if ( this.options.accessibility ) { - this.element.removeAttribute('tabIndex'); - eventie.unbind( this.element, 'keydown', this ); - } - // set flags - this.isActive = false; - this.emit('deactivate'); -}; - -Flickity.prototype.destroy = function() { - this.deactivate(); - if ( this.isResizeBound ) { - eventie.unbind( window, 'resize', this ); - } - this.emit('destroy'); - if ( jQuery && this.$element ) { - jQuery.removeData( this.element, 'flickity' ); - } - delete this.element.flickityGUID; - delete instances[ this.guid ]; -}; - -// -------------------------- prototype -------------------------- // - -utils.extend( Flickity.prototype, animatePrototype ); - -// -------------------------- extras -------------------------- // - -// quick check for IE8 -var isIE8 = 'attachEvent' in window; - -Flickity.setUnselectable = function( elem ) { - if ( !isIE8 ) { - return; - } - // IE8 prevent child from changing focus http://stackoverflow.com/a/17525223/182183 - elem.setAttribute( 'unselectable', 'on' ); -}; - -/** - * get Flickity instance from element - * @param {Element} elem - * @returns {Flickity} - */ -Flickity.data = function( elem ) { - elem = utils.getQueryElement( elem ); - var id = elem && elem.flickityGUID; - return id && instances[ id ]; -}; - -utils.htmlInit( Flickity, 'flickity' ); - -if ( jQuery && jQuery.bridget ) { - jQuery.bridget( 'flickity', Flickity ); -} - -Flickity.Cell = Cell; - -return Flickity; - -})); - -/*! - * Unipointer v1.1.0 - * base class for doing one thing with pointer event - * MIT license - */ - -/*jshint browser: true, undef: true, unused: true, strict: true */ -/*global define: false, module: false, require: false */ - -( function( window, factory ) { - - // universal module definition - - if ( typeof define == 'function' && define.amd ) { - // AMD - define( 'unipointer/unipointer',[ - 'eventEmitter/EventEmitter', - 'eventie/eventie' - ], function( EventEmitter, eventie ) { - return factory( window, EventEmitter, eventie ); - }); - } else if ( typeof exports == 'object' ) { - // CommonJS - module.exports = factory( - window, - require('wolfy87-eventemitter'), - require('eventie') - ); - } else { - // browser global - window.Unipointer = factory( - window, - window.EventEmitter, - window.eventie - ); - } - -}( window, function factory( window, EventEmitter, eventie ) { - - - -function noop() {} - -function Unipointer() {} - -// inherit EventEmitter -Unipointer.prototype = new EventEmitter(); - -Unipointer.prototype.bindStartEvent = function( elem ) { - this._bindStartEvent( elem, true ); -}; - -Unipointer.prototype.unbindStartEvent = function( elem ) { - this._bindStartEvent( elem, false ); -}; - -/** - * works as unbinder, as you can ._bindStart( false ) to unbind - * @param {Boolean} isBind - will unbind if falsey - */ -Unipointer.prototype._bindStartEvent = function( elem, isBind ) { - // munge isBind, default to true - isBind = isBind === undefined ? true : !!isBind; - var bindMethod = isBind ? 'bind' : 'unbind'; - - if ( window.navigator.pointerEnabled ) { - // W3C Pointer Events, IE11. See https://coderwall.com/p/mfreca - eventie[ bindMethod ]( elem, 'pointerdown', this ); - } else if ( window.navigator.msPointerEnabled ) { - // IE10 Pointer Events - eventie[ bindMethod ]( elem, 'MSPointerDown', this ); - } else { - // listen for both, for devices like Chrome Pixel - eventie[ bindMethod ]( elem, 'mousedown', this ); - eventie[ bindMethod ]( elem, 'touchstart', this ); - } -}; - -// trigger handler methods for events -Unipointer.prototype.handleEvent = function( event ) { - var method = 'on' + event.type; - if ( this[ method ] ) { - this[ method ]( event ); - } -}; - -// returns the touch that we're keeping track of -Unipointer.prototype.getTouch = function( touches ) { - for ( var i=0, len = touches.length; i < len; i++ ) { - var touch = touches[i]; - if ( touch.identifier == this.pointerIdentifier ) { - return touch; - } - } -}; - -// ----- start event ----- // - -Unipointer.prototype.onmousedown = function( event ) { - // dismiss clicks from right or middle buttons - var button = event.button; - if ( button && ( button !== 0 && button !== 1 ) ) { - return; - } - this._pointerDown( event, event ); -}; - -Unipointer.prototype.ontouchstart = function( event ) { - this._pointerDown( event, event.changedTouches[0] ); -}; - -Unipointer.prototype.onMSPointerDown = -Unipointer.prototype.onpointerdown = function( event ) { - this._pointerDown( event, event ); -}; - -/** - * pointer start - * @param {Event} event - * @param {Event or Touch} pointer - */ -Unipointer.prototype._pointerDown = function( event, pointer ) { - // dismiss other pointers - if ( this.isPointerDown ) { - return; - } - - this.isPointerDown = true; - // save pointer identifier to match up touch events - this.pointerIdentifier = pointer.pointerId !== undefined ? - // pointerId for pointer events, touch.indentifier for touch events - pointer.pointerId : pointer.identifier; - - this.pointerDown( event, pointer ); -}; - -Unipointer.prototype.pointerDown = function( event, pointer ) { - this._bindPostStartEvents( event ); - this.emitEvent( 'pointerDown', [ event, pointer ] ); -}; - -// hash of events to be bound after start event -var postStartEvents = { - mousedown: [ 'mousemove', 'mouseup' ], - touchstart: [ 'touchmove', 'touchend', 'touchcancel' ], - pointerdown: [ 'pointermove', 'pointerup', 'pointercancel' ], - MSPointerDown: [ 'MSPointerMove', 'MSPointerUp', 'MSPointerCancel' ] -}; - -Unipointer.prototype._bindPostStartEvents = function( event ) { - if ( !event ) { - return; - } - // get proper events to match start event - var events = postStartEvents[ event.type ]; - // IE8 needs to be bound to document - var node = event.preventDefault ? window : document; - // bind events to node - for ( var i=0, len = events.length; i < len; i++ ) { - var evnt = events[i]; - eventie.bind( node, evnt, this ); - } - // save these arguments - this._boundPointerEvents = { - events: events, - node: node - }; -}; - -Unipointer.prototype._unbindPostStartEvents = function() { - var args = this._boundPointerEvents; - // IE8 can trigger dragEnd twice, check for _boundEvents - if ( !args || !args.events ) { - return; - } - - for ( var i=0, len = args.events.length; i < len; i++ ) { - var event = args.events[i]; - eventie.unbind( args.node, event, this ); - } - delete this._boundPointerEvents; -}; - -// ----- move event ----- // - -Unipointer.prototype.onmousemove = function( event ) { - this._pointerMove( event, event ); -}; - -Unipointer.prototype.onMSPointerMove = -Unipointer.prototype.onpointermove = function( event ) { - if ( event.pointerId == this.pointerIdentifier ) { - this._pointerMove( event, event ); - } -}; - -Unipointer.prototype.ontouchmove = function( event ) { - var touch = this.getTouch( event.changedTouches ); - if ( touch ) { - this._pointerMove( event, touch ); - } -}; - -/** - * pointer move - * @param {Event} event - * @param {Event or Touch} pointer - * @private - */ -Unipointer.prototype._pointerMove = function( event, pointer ) { - this.pointerMove( event, pointer ); -}; - -// public -Unipointer.prototype.pointerMove = function( event, pointer ) { - this.emitEvent( 'pointerMove', [ event, pointer ] ); -}; - -// ----- end event ----- // - - -Unipointer.prototype.onmouseup = function( event ) { - this._pointerUp( event, event ); -}; - -Unipointer.prototype.onMSPointerUp = -Unipointer.prototype.onpointerup = function( event ) { - if ( event.pointerId == this.pointerIdentifier ) { - this._pointerUp( event, event ); - } -}; - -Unipointer.prototype.ontouchend = function( event ) { - var touch = this.getTouch( event.changedTouches ); - if ( touch ) { - this._pointerUp( event, touch ); - } -}; - -/** - * pointer up - * @param {Event} event - * @param {Event or Touch} pointer - * @private - */ -Unipointer.prototype._pointerUp = function( event, pointer ) { - this._pointerDone(); - this.pointerUp( event, pointer ); -}; - -// public -Unipointer.prototype.pointerUp = function( event, pointer ) { - this.emitEvent( 'pointerUp', [ event, pointer ] ); -}; - -// ----- pointer done ----- // - -// triggered on pointer up & pointer cancel -Unipointer.prototype._pointerDone = function() { - // reset properties - this.isPointerDown = false; - delete this.pointerIdentifier; - // remove events - this._unbindPostStartEvents(); - this.pointerDone(); -}; - -Unipointer.prototype.pointerDone = noop; - -// ----- pointer cancel ----- // - -Unipointer.prototype.onMSPointerCancel = -Unipointer.prototype.onpointercancel = function( event ) { - if ( event.pointerId == this.pointerIdentifier ) { - this._pointerCancel( event, event ); - } -}; - -Unipointer.prototype.ontouchcancel = function( event ) { - var touch = this.getTouch( event.changedTouches ); - if ( touch ) { - this._pointerCancel( event, touch ); - } -}; - -/** - * pointer cancel - * @param {Event} event - * @param {Event or Touch} pointer - * @private - */ -Unipointer.prototype._pointerCancel = function( event, pointer ) { - this._pointerDone(); - this.pointerCancel( event, pointer ); -}; - -// public -Unipointer.prototype.pointerCancel = function( event, pointer ) { - this.emitEvent( 'pointerCancel', [ event, pointer ] ); -}; - -// ----- ----- // - -// utility function for getting x/y cooridinates from event, because IE8 -Unipointer.getPointerPoint = function( pointer ) { - return { - x: pointer.pageX !== undefined ? pointer.pageX : pointer.clientX, - y: pointer.pageY !== undefined ? pointer.pageY : pointer.clientY - }; -}; - -// ----- ----- // - -return Unipointer; - -})); - -/*! - * Unidragger v1.1.3 - * Draggable base class - * MIT license - */ - -/*jshint browser: true, unused: true, undef: true, strict: true */ - -( function( window, factory ) { - /*global define: false, module: false, require: false */ - - // universal module definition - - if ( typeof define == 'function' && define.amd ) { - // AMD - define( 'unidragger/unidragger',[ - 'eventie/eventie', - 'unipointer/unipointer' - ], function( eventie, Unipointer ) { - return factory( window, eventie, Unipointer ); - }); - } else if ( typeof exports == 'object' ) { - // CommonJS - module.exports = factory( - window, - require('eventie'), - require('unipointer') - ); - } else { - // browser global - window.Unidragger = factory( - window, - window.eventie, - window.Unipointer - ); - } - -}( window, function factory( window, eventie, Unipointer ) { - - - -// ----- ----- // - -function noop() {} - -// handle IE8 prevent default -function preventDefaultEvent( event ) { - if ( event.preventDefault ) { - event.preventDefault(); - } else { - event.returnValue = false; - } -} - -// -------------------------- Unidragger -------------------------- // - -function Unidragger() {} - -// inherit Unipointer & EventEmitter -Unidragger.prototype = new Unipointer(); - -// ----- bind start ----- // - -Unidragger.prototype.bindHandles = function() { - this._bindHandles( true ); -}; - -Unidragger.prototype.unbindHandles = function() { - this._bindHandles( false ); -}; - -var navigator = window.navigator; -/** - * works as unbinder, as you can .bindHandles( false ) to unbind - * @param {Boolean} isBind - will unbind if falsey - */ -Unidragger.prototype._bindHandles = function( isBind ) { - // munge isBind, default to true - isBind = isBind === undefined ? true : !!isBind; - // extra bind logic - var binderExtra; - if ( navigator.pointerEnabled ) { - binderExtra = function( handle ) { - // disable scrolling on the element - handle.style.touchAction = isBind ? 'none' : ''; - }; - } else if ( navigator.msPointerEnabled ) { - binderExtra = function( handle ) { - // disable scrolling on the element - handle.style.msTouchAction = isBind ? 'none' : ''; - }; - } else { - binderExtra = function() { - // TODO re-enable img.ondragstart when unbinding - if ( isBind ) { - disableImgOndragstart( handle ); - } - }; - } - // bind each handle - var bindMethod = isBind ? 'bind' : 'unbind'; - for ( var i=0, len = this.handles.length; i < len; i++ ) { - var handle = this.handles[i]; - this._bindStartEvent( handle, isBind ); - binderExtra( handle ); - eventie[ bindMethod ]( handle, 'click', this ); - } -}; - -// remove default dragging interaction on all images in IE8 -// IE8 does its own drag thing on images, which messes stuff up - -function noDragStart() { - return false; -} - -// TODO replace this with a IE8 test -var isIE8 = 'attachEvent' in document.documentElement; - -// IE8 only -var disableImgOndragstart = !isIE8 ? noop : function( handle ) { - - if ( handle.nodeName == 'IMG' ) { - handle.ondragstart = noDragStart; - } - - var images = handle.querySelectorAll('img'); - for ( var i=0, len = images.length; i < len; i++ ) { - var img = images[i]; - img.ondragstart = noDragStart; - } -}; - -// ----- start event ----- // - -/** - * pointer start - * @param {Event} event - * @param {Event or Touch} pointer - */ -Unidragger.prototype.pointerDown = function( event, pointer ) { - this._dragPointerDown( event, pointer ); - // kludge to blur focused inputs in dragger - var focused = document.activeElement; - if ( focused && focused.blur ) { - focused.blur(); - } - // bind move and end events - this._bindPostStartEvents( event ); - this.emitEvent( 'pointerDown', [ event, pointer ] ); -}; - -// base pointer down logic -Unidragger.prototype._dragPointerDown = function( event, pointer ) { - // track to see when dragging starts - this.pointerDownPoint = Unipointer.getPointerPoint( pointer ); - - // prevent default, unless touchstart or s and ",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var U="undefined";k.focusinBubbles="onfocusin"in a;var V=/^key/,W=/^(?:mouse|pointer|contextmenu)|click/,X=/^(?:focusinfocus|focusoutblur)$/,Y=/^([^.]*)(?:\.(.+)|)$/;function Z(){return!0}function $(){return!1}function _(){try{return l.activeElement}catch(a){}}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.get(a);if(r){c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=n.guid++),(i=r.events)||(i=r.events={}),(g=r.handle)||(g=r.handle=function(b){return typeof n!==U&&n.event.triggered!==b.type?n.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(E)||[""],j=b.length;while(j--)h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o&&(l=n.event.special[o]||{},o=(e?l.delegateType:l.bindType)||o,l=n.event.special[o]||{},k=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},f),(m=i[o])||(m=i[o]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,p,g)!==!1||a.addEventListener&&a.addEventListener(o,g,!1)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),n.event.global[o]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.hasData(a)&&L.get(a);if(r&&(i=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=i[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&q!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete i[o])}else for(o in i)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(i)&&(delete r.handle,L.remove(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,m,o,p=[d||l],q=j.call(b,"type")?b.type:b,r=j.call(b,"namespace")?b.namespace.split("."):[];if(g=h=d=d||l,3!==d.nodeType&&8!==d.nodeType&&!X.test(q+n.event.triggered)&&(q.indexOf(".")>=0&&(r=q.split("."),q=r.shift(),r.sort()),k=q.indexOf(":")<0&&"on"+q,b=b[n.expando]?b:new n.Event(q,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=r.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+r.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:n.makeArray(c,[b]),o=n.event.special[q]||{},e||!o.trigger||o.trigger.apply(d,c)!==!1)){if(!e&&!o.noBubble&&!n.isWindow(d)){for(i=o.delegateType||q,X.test(i+q)||(g=g.parentNode);g;g=g.parentNode)p.push(g),h=g;h===(d.ownerDocument||l)&&p.push(h.defaultView||h.parentWindow||a)}f=0;while((g=p[f++])&&!b.isPropagationStopped())b.type=f>1?i:o.bindType||q,m=(L.get(g,"events")||{})[b.type]&&L.get(g,"handle"),m&&m.apply(g,c),m=k&&g[k],m&&m.apply&&n.acceptData(g)&&(b.result=m.apply(g,c),b.result===!1&&b.preventDefault());return b.type=q,e||b.isDefaultPrevented()||o._default&&o._default.apply(p.pop(),c)!==!1||!n.acceptData(d)||k&&n.isFunction(d[q])&&!n.isWindow(d)&&(h=d[k],h&&(d[k]=null),n.event.triggered=q,d[q](),n.event.triggered=void 0,h&&(d[k]=h)),b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(L.get(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(g.namespace))&&(a.handleObj=g,a.data=g.data,e=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(a.result=e)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!==this;i=i.parentNode||this)if(i.disabled!==!0||"click"!==a.type){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>=0:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h]*)\/>/gi,ba=/<([\w:]+)/,ca=/<|&#?\w+;/,da=/<(?:script|style|link)/i,ea=/checked\s*(?:[^=]|=\s*.checked.)/i,fa=/^$|\/(?:java|ecma)script/i,ga=/^true\/(.*)/,ha=/^\s*\s*$/g,ia={option:[1,""],thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};ia.optgroup=ia.option,ia.tbody=ia.tfoot=ia.colgroup=ia.caption=ia.thead,ia.th=ia.td;function ja(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function ka(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function la(a){var b=ga.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function ma(a,b){for(var c=0,d=a.length;d>c;c++)L.set(a[c],"globalEval",!b||L.get(b[c],"globalEval"))}function na(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(L.hasData(a)&&(f=L.access(a),g=L.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)n.event.add(b,e,j[e][c])}M.hasData(a)&&(h=M.access(a),i=n.extend({},h),M.set(b,i))}}function oa(a,b){var c=a.getElementsByTagName?a.getElementsByTagName(b||"*"):a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&n.nodeName(a,b)?n.merge([a],c):c}function pa(a,b){var c=b.nodeName.toLowerCase();"input"===c&&T.test(a.type)?b.checked=a.checked:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}n.extend({clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=n.contains(a.ownerDocument,a);if(!(k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(g=oa(h),f=oa(a),d=0,e=f.length;e>d;d++)pa(f[d],g[d]);if(b)if(c)for(f=f||oa(a),g=g||oa(h),d=0,e=f.length;e>d;d++)na(f[d],g[d]);else na(a,h);return g=oa(h,"script"),g.length>0&&ma(g,!i&&oa(a,"script")),h},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k=b.createDocumentFragment(),l=[],m=0,o=a.length;o>m;m++)if(e=a[m],e||0===e)if("object"===n.type(e))n.merge(l,e.nodeType?[e]:e);else if(ca.test(e)){f=f||k.appendChild(b.createElement("div")),g=(ba.exec(e)||["",""])[1].toLowerCase(),h=ia[g]||ia._default,f.innerHTML=h[1]+e.replace(aa,"<$1>")+h[2],j=h[0];while(j--)f=f.lastChild;n.merge(l,f.childNodes),f=k.firstChild,f.textContent=""}else l.push(b.createTextNode(e));k.textContent="",m=0;while(e=l[m++])if((!d||-1===n.inArray(e,d))&&(i=n.contains(e.ownerDocument,e),f=oa(k.appendChild(e),"script"),i&&ma(f),c)){j=0;while(e=f[j++])fa.test(e.type||"")&&c.push(e)}return k},cleanData:function(a){for(var b,c,d,e,f=n.event.special,g=0;void 0!==(c=a[g]);g++){if(n.acceptData(c)&&(e=c[L.expando],e&&(b=L.cache[e]))){if(b.events)for(d in b.events)f[d]?n.event.remove(c,d):n.removeEvent(c,d,b.handle);L.cache[e]&&delete L.cache[e]}delete M.cache[c[M.expando]]}}}),n.fn.extend({text:function(a){return J(this,function(a){return void 0===a?n.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=a)})},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=ja(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=ja(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?n.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||n.cleanData(oa(c)),c.parentNode&&(b&&n.contains(c.ownerDocument,c)&&ma(oa(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(n.cleanData(oa(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return J(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!da.test(a)&&!ia[(ba.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(aa,"<$1>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(oa(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,n.cleanData(oa(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,m=this,o=l-1,p=a[0],q=n.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&ea.test(p))return this.each(function(c){var d=m.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(c=n.buildFragment(a,this[0].ownerDocument,!1,this),d=c.firstChild,1===c.childNodes.length&&(c=d),d)){for(f=n.map(oa(c,"script"),ka),g=f.length;l>j;j++)h=c,j!==o&&(h=n.clone(h,!0,!0),g&&n.merge(f,oa(h,"script"))),b.call(this[j],h,j);if(g)for(i=f[f.length-1].ownerDocument,n.map(f,la),j=0;g>j;j++)h=f[j],fa.test(h.type||"")&&!L.access(h,"globalEval")&&n.contains(i,h)&&(h.src?n._evalUrl&&n._evalUrl(h.src):n.globalEval(h.textContent.replace(ha,"")))}return this}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=[],e=n(a),g=e.length-1,h=0;g>=h;h++)c=h===g?this:this.clone(!0),n(e[h])[b](c),f.apply(d,c.get());return this.pushStack(d)}});var qa,ra={};function sa(b,c){var d,e=n(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:n.css(e[0],"display");return e.detach(),f}function ta(a){var b=l,c=ra[a];return c||(c=sa(a,b),"none"!==c&&c||(qa=(qa||n("