diff --git a/Clocker/AppDelegate.swift b/Clocker/AppDelegate.swift index b0c3b60..b72014b 100644 --- a/Clocker/AppDelegate.swift +++ b/Clocker/AppDelegate.swift @@ -3,6 +3,8 @@ import Cocoa import CoreLoggerKit import CoreModelKit +import FirebaseCore +import FirebaseCrashlytics open class AppDelegate: NSObject, NSApplicationDelegate { private lazy var floatingWindow: FloatingWindowController = FloatingWindowController.shared() @@ -61,7 +63,7 @@ open class AppDelegate: NSObject, NSApplicationDelegate { ReviewController.applicationDidLaunch(UserDefaults.standard) #if RELEASE - Fabric.with([Crashlytics.self]) + FirebaseApp.configure() checkIfRunFromApplicationsFolder() #endif } diff --git a/Clocker/Clocker-Bridging-Header.h b/Clocker/Clocker-Bridging-Header.h index 2074ef5..8c55624 100644 --- a/Clocker/Clocker-Bridging-Header.h +++ b/Clocker/Clocker-Bridging-Header.h @@ -9,5 +9,3 @@ #import #import #import -#import -#import diff --git a/Clocker/Clocker.xcodeproj/project.pbxproj b/Clocker/Clocker.xcodeproj/project.pbxproj index 4ef8374..cc39b90 100755 --- a/Clocker/Clocker.xcodeproj/project.pbxproj +++ b/Clocker/Clocker.xcodeproj/project.pbxproj @@ -11,6 +11,49 @@ 3508CC9A259A0001000E3530 /* StatusItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3508CC99259A0001000E3530 /* StatusItemView.swift */; }; 3508CC9F259A000E000E3530 /* StatusItemHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3508CC9E259A000E000E3530 /* StatusItemHandler.swift */; }; 3508CCAA259A0027000E3530 /* StatusContainerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3508CCA9259A0027000E3530 /* StatusContainerView.swift */; }; + 3531F7C226936C6E00DF0111 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3531F7C026936C6E00DF0111 /* GoogleService-Info.plist */; }; + 3531F7C326936C8300DF0111 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3531F7C026936C6E00DF0111 /* GoogleService-Info.plist */; }; + 3531F7C426936C8300DF0111 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3531F7C026936C6E00DF0111 /* GoogleService-Info.plist */; }; + 3531F7C526936C8400DF0111 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3531F7C026936C6E00DF0111 /* GoogleService-Info.plist */; }; + 3531F7ED26936DE900DF0111 /* run in Resources */ = {isa = PBXBuildFile; fileRef = 3531F7EB26936DE900DF0111 /* run */; }; + 3531F7EE26936DE900DF0111 /* run in Resources */ = {isa = PBXBuildFile; fileRef = 3531F7EB26936DE900DF0111 /* run */; }; + 3531F7EF26936DE900DF0111 /* run in Resources */ = {isa = PBXBuildFile; fileRef = 3531F7EB26936DE900DF0111 /* run */; }; + 3531F7F026936DE900DF0111 /* upload-symbols in Resources */ = {isa = PBXBuildFile; fileRef = 3531F7EC26936DE900DF0111 /* upload-symbols */; }; + 3531F7F126936DE900DF0111 /* upload-symbols in Resources */ = {isa = PBXBuildFile; fileRef = 3531F7EC26936DE900DF0111 /* upload-symbols */; }; + 3531F7F226936DE900DF0111 /* upload-symbols in Resources */ = {isa = PBXBuildFile; fileRef = 3531F7EC26936DE900DF0111 /* upload-symbols */; }; + 3531F7F52693882300DF0111 /* Keys.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3531F7F42693882300DF0111 /* Keys.plist */; }; + 3531F7F62693882300DF0111 /* Keys.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3531F7F42693882300DF0111 /* Keys.plist */; }; + 3531F7F72693882300DF0111 /* Keys.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3531F7F42693882300DF0111 /* Keys.plist */; }; + 3531F80626938D7700DF0111 /* GoogleUtilities.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3531F7FC26938D7600DF0111 /* GoogleUtilities.framework */; }; + 3531F80726938D7700DF0111 /* GoogleUtilities.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3531F7FC26938D7600DF0111 /* GoogleUtilities.framework */; }; + 3531F80826938D7700DF0111 /* GoogleUtilities.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3531F7FC26938D7600DF0111 /* GoogleUtilities.framework */; }; + 3531F80926938D7700DF0111 /* FirebaseCoreDiagnostics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3531F7FD26938D7700DF0111 /* FirebaseCoreDiagnostics.framework */; }; + 3531F80A26938D7700DF0111 /* FirebaseCoreDiagnostics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3531F7FD26938D7700DF0111 /* FirebaseCoreDiagnostics.framework */; }; + 3531F80B26938D7700DF0111 /* FirebaseCoreDiagnostics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3531F7FD26938D7700DF0111 /* FirebaseCoreDiagnostics.framework */; }; + 3531F80C26938D7700DF0111 /* FirebaseDatabase.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3531F7FE26938D7700DF0111 /* FirebaseDatabase.framework */; }; + 3531F80D26938D7700DF0111 /* FirebaseDatabase.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3531F7FE26938D7700DF0111 /* FirebaseDatabase.framework */; }; + 3531F80E26938D7700DF0111 /* FirebaseDatabase.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3531F7FE26938D7700DF0111 /* FirebaseDatabase.framework */; }; + 3531F80F26938D7700DF0111 /* PromisesObjC.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3531F7FF26938D7700DF0111 /* PromisesObjC.framework */; }; + 3531F81026938D7700DF0111 /* PromisesObjC.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3531F7FF26938D7700DF0111 /* PromisesObjC.framework */; }; + 3531F81126938D7700DF0111 /* PromisesObjC.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3531F7FF26938D7700DF0111 /* PromisesObjC.framework */; }; + 3531F81226938D7700DF0111 /* FirebaseCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3531F80026938D7700DF0111 /* FirebaseCore.framework */; }; + 3531F81326938D7700DF0111 /* FirebaseCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3531F80026938D7700DF0111 /* FirebaseCore.framework */; }; + 3531F81426938D7700DF0111 /* FirebaseCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3531F80026938D7700DF0111 /* FirebaseCore.framework */; }; + 3531F81526938D7700DF0111 /* nanopb.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3531F80126938D7700DF0111 /* nanopb.framework */; }; + 3531F81626938D7700DF0111 /* nanopb.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3531F80126938D7700DF0111 /* nanopb.framework */; }; + 3531F81726938D7700DF0111 /* nanopb.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3531F80126938D7700DF0111 /* nanopb.framework */; }; + 3531F81826938D7700DF0111 /* FirebaseCrashlytics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3531F80226938D7700DF0111 /* FirebaseCrashlytics.framework */; }; + 3531F81926938D7700DF0111 /* FirebaseCrashlytics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3531F80226938D7700DF0111 /* FirebaseCrashlytics.framework */; }; + 3531F81A26938D7700DF0111 /* FirebaseCrashlytics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3531F80226938D7700DF0111 /* FirebaseCrashlytics.framework */; }; + 3531F81B26938D7700DF0111 /* FirebaseInstallations.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3531F80326938D7700DF0111 /* FirebaseInstallations.framework */; }; + 3531F81C26938D7700DF0111 /* FirebaseInstallations.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3531F80326938D7700DF0111 /* FirebaseInstallations.framework */; }; + 3531F81D26938D7700DF0111 /* FirebaseInstallations.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3531F80326938D7700DF0111 /* FirebaseInstallations.framework */; }; + 3531F81E26938D7700DF0111 /* leveldb-library.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3531F80426938D7700DF0111 /* leveldb-library.framework */; }; + 3531F81F26938D7700DF0111 /* leveldb-library.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3531F80426938D7700DF0111 /* leveldb-library.framework */; }; + 3531F82026938D7700DF0111 /* leveldb-library.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3531F80426938D7700DF0111 /* leveldb-library.framework */; }; + 3531F82126938D7700DF0111 /* GoogleDataTransport.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3531F80526938D7700DF0111 /* GoogleDataTransport.framework */; }; + 3531F82226938D7700DF0111 /* GoogleDataTransport.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3531F80526938D7700DF0111 /* GoogleDataTransport.framework */; }; + 3531F82326938D7700DF0111 /* GoogleDataTransport.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3531F80526938D7700DF0111 /* GoogleDataTransport.framework */; }; 357391872507277500D30819 /* HourMarkerViewItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 357391852507277500D30819 /* HourMarkerViewItem.swift */; }; 357391882507277500D30819 /* HourMarkerViewItem.xib in Resources */ = {isa = PBXBuildFile; fileRef = 357391862507277500D30819 /* HourMarkerViewItem.xib */; }; 3579765E2680208C009DDA6E /* ParentPanelController+ModernSlider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3579765D2680208C009DDA6E /* ParentPanelController+ModernSlider.swift */; }; @@ -91,10 +134,8 @@ 9A20A04B1C4DEED200FB45AB /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A20A04A1C4DEED200FB45AB /* IOKit.framework */; }; 9A24A1881ED902CC0095201E /* EventKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A24A1871ED902CC0095201E /* EventKit.framework */; }; 9A3169C11D2CC5AA0079FDF8 /* com.abhishek.ClockerHelper.plist in Resources */ = {isa = PBXBuildFile; fileRef = 9A3169C01D2CC5AA0079FDF8 /* com.abhishek.ClockerHelper.plist */; }; - 9A4379271BEC223900F4E27F /* Fabric.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A4379231BEC223900F4E27F /* Fabric.framework */; }; 9A43792A1BEC230A00F4E27F /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A4379291BEC230A00F4E27F /* libc++.tbd */; }; 9A56DB801C1CFB73004CE6AF /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9A56DB7D1C1CFB73004CE6AF /* MainMenu.xib */; }; - 9A5951BA1C1D0A22009C17AA /* Crashlytics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A5951B91C1D0A22009C17AA /* Crashlytics.framework */; }; 9A5951BD1C1D0A8D009C17AA /* CommonStrings.m in Sources */ = {isa = PBXBuildFile; fileRef = 9A5951BB1C1D0A8D009C17AA /* CommonStrings.m */; }; 9A5E75E4204CC39700119939 /* ShortcutRecorder.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A86E2BC1CE04F1600547EE7 /* ShortcutRecorder.framework */; }; 9A5E75E5204CC39700119939 /* ShortcutRecorder.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 9A86E2BC1CE04F1600547EE7 /* ShortcutRecorder.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; @@ -126,7 +167,6 @@ 9ABFB3801CA6882000E10745 /* ApplicationServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9ABFB37F1CA6882000E10745 /* ApplicationServices.framework */; }; 9AC678E41C1ABAB9003B4F6B /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AC678E31C1ABAB9003B4F6B /* QuartzCore.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; 9ACB31401EDA994200F3E1D3 /* ShortcutRecorder.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9ACB313F1EDA994200F3E1D3 /* ShortcutRecorder.framework */; }; - 9ACE03EF1CB0ADE00039FC01 /* Firebase.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9ACE03EE1CB0ADE00039FC01 /* Firebase.framework */; }; 9ACF469D1DCBD45200C49B51 /* Quartz.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9ACF469C1DCBD45200C49B51 /* Quartz.framework */; }; 9ACF618D231DABAE00F5E51E /* SearchDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9ACF618C231DABAE00F5E51E /* SearchDataSource.swift */; }; C20839CA21515C1E00C86589 /* ClockerUnitTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C20839C921515C1E00C86589 /* ClockerUnitTests.swift */; }; @@ -228,12 +268,26 @@ 3508CCA9259A0027000E3530 /* StatusContainerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StatusContainerView.swift; sourceTree = ""; }; 352AF497232E07B400D96FA7 /* hi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hi; path = hi.lproj/InfoPlist.strings; sourceTree = ""; }; 352AF499232E07B400D96FA7 /* hi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hi; path = hi.lproj/Localizable.strings; sourceTree = ""; }; + 3531F7C026936C6E00DF0111 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; }; + 3531F7EA26936D8800DF0111 /* Firebase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Firebase.h; sourceTree = ""; }; + 3531F7EB26936DE900DF0111 /* run */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = run; sourceTree = ""; }; + 3531F7EC26936DE900DF0111 /* upload-symbols */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.executable"; path = "upload-symbols"; sourceTree = ""; }; + 3531F7F42693882300DF0111 /* Keys.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Keys.plist; path = Internal/Keys.plist; sourceTree = ""; }; + 3531F7FC26938D7600DF0111 /* GoogleUtilities.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GoogleUtilities.framework; path = Frameworks/Firebase/GoogleUtilities.framework; sourceTree = ""; }; + 3531F7FD26938D7700DF0111 /* FirebaseCoreDiagnostics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = FirebaseCoreDiagnostics.framework; path = Frameworks/Firebase/FirebaseCoreDiagnostics.framework; sourceTree = ""; }; + 3531F7FE26938D7700DF0111 /* FirebaseDatabase.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = FirebaseDatabase.framework; path = Frameworks/Firebase/FirebaseDatabase.framework; sourceTree = ""; }; + 3531F7FF26938D7700DF0111 /* PromisesObjC.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = PromisesObjC.framework; path = Frameworks/Firebase/PromisesObjC.framework; sourceTree = ""; }; + 3531F80026938D7700DF0111 /* FirebaseCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = FirebaseCore.framework; path = Frameworks/Firebase/FirebaseCore.framework; sourceTree = ""; }; + 3531F80126938D7700DF0111 /* nanopb.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = nanopb.framework; path = Frameworks/Firebase/nanopb.framework; sourceTree = ""; }; + 3531F80226938D7700DF0111 /* FirebaseCrashlytics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = FirebaseCrashlytics.framework; path = Frameworks/Firebase/FirebaseCrashlytics.framework; sourceTree = ""; }; + 3531F80326938D7700DF0111 /* FirebaseInstallations.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = FirebaseInstallations.framework; path = Frameworks/Firebase/FirebaseInstallations.framework; sourceTree = ""; }; + 3531F80426938D7700DF0111 /* leveldb-library.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "leveldb-library.framework"; path = "Frameworks/Firebase/leveldb-library.framework"; sourceTree = ""; }; + 3531F80526938D7700DF0111 /* GoogleDataTransport.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GoogleDataTransport.framework; path = Frameworks/Firebase/GoogleDataTransport.framework; sourceTree = ""; }; 3569A44E25441F320087E254 /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/Localizable.strings"; sourceTree = ""; }; 357391852507277500D30819 /* HourMarkerViewItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HourMarkerViewItem.swift; sourceTree = ""; }; 357391862507277500D30819 /* HourMarkerViewItem.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = HourMarkerViewItem.xib; sourceTree = ""; }; 3579765D2680208C009DDA6E /* ParentPanelController+ModernSlider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ParentPanelController+ModernSlider.swift"; sourceTree = ""; }; 3595FACF227F88BC0044A12A /* UserDefaults + KVOExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UserDefaults + KVOExtensions.swift"; sourceTree = ""; }; - 35992D07267EA61E00020078 /* Keys.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Keys.plist; path = ../Internal/Keys.plist; sourceTree = ""; }; 35A6A4B925C5DEF300356073 /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hant"; path = "zh-Hant.lproj/Localizable.strings"; sourceTree = ""; }; 35B2FEB1259A1649005DA84D /* StartupKit */ = {isa = PBXFileReference; lastKnownFileType = folder; path = StartupKit; sourceTree = ""; }; 35B2FED4259A2244005DA84D /* CoreLoggerKit */ = {isa = PBXFileReference; lastKnownFileType = folder; path = CoreLoggerKit; sourceTree = ""; }; @@ -311,7 +365,6 @@ 9A20A06F1C4E804D00FB45AB /* ServiceManagement.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ServiceManagement.framework; path = System/Library/Frameworks/ServiceManagement.framework; sourceTree = SDKROOT; }; 9A24A1871ED902CC0095201E /* EventKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = EventKit.framework; path = System/Library/Frameworks/EventKit.framework; sourceTree = SDKROOT; }; 9A3169C01D2CC5AA0079FDF8 /* com.abhishek.ClockerHelper.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = com.abhishek.ClockerHelper.plist; path = Clocker/com.abhishek.ClockerHelper.plist; sourceTree = ""; }; - 9A4379231BEC223900F4E27F /* Fabric.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Fabric.framework; sourceTree = ""; }; 9A4379291BEC230A00F4E27F /* libc++.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libc++.tbd"; path = "usr/lib/libc++.tbd"; sourceTree = SDKROOT; }; 9A43792B1BEC231100F4E27F /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; }; 9A4DC4DF2337F2EB00F03FA4 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/InfoPlist.strings; sourceTree = ""; }; @@ -325,7 +378,6 @@ 9A4DC4E82337F5D600F03FA4 /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ko; path = ko.lproj/InfoPlist.strings; sourceTree = ""; }; 9A4DC4E92337F5D600F03FA4 /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ko; path = ko.lproj/Localizable.strings; sourceTree = ""; }; 9A56DB7D1C1CFB73004CE6AF /* MainMenu.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = MainMenu.xib; path = Clocker/MainMenu.xib; sourceTree = ""; }; - 9A5951B91C1D0A22009C17AA /* Crashlytics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Crashlytics.framework; path = Frameworks/Crashlytics.framework; sourceTree = ""; }; 9A5951BB1C1D0A8D009C17AA /* CommonStrings.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CommonStrings.m; path = Clocker/Utilities/CommonStrings.m; sourceTree = ""; }; 9A5951BC1C1D0A8D009C17AA /* CommonStrings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CommonStrings.h; path = Clocker/Utilities/CommonStrings.h; sourceTree = ""; }; 9A5B1A8D1BECDFB700A77C68 /* Clocker.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.xml; name = Clocker.entitlements; path = Clocker/Clocker.entitlements; sourceTree = ""; }; @@ -383,13 +435,7 @@ 9AB89E021CE97A4900EC8EB1 /* Media.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Media.xcassets; sourceTree = ""; }; 9ABFB37F1CA6882000E10745 /* ApplicationServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ApplicationServices.framework; path = System/Library/Frameworks/ApplicationServices.framework; sourceTree = SDKROOT; }; 9AC678E31C1ABAB9003B4F6B /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; - 9ACB31391EDA98EA00F3E1D3 /* Crashlytics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Crashlytics.framework; sourceTree = ""; }; - 9ACB313A1EDA98EA00F3E1D3 /* Fabric.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Fabric.framework; sourceTree = ""; }; - 9ACB313B1EDA98EA00F3E1D3 /* Firebase.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Firebase.framework; sourceTree = ""; }; - 9ACB313C1EDA98EA00F3E1D3 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Security.framework; sourceTree = ""; }; - 9ACB313D1EDA98EA00F3E1D3 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = SystemConfiguration.framework; sourceTree = ""; }; 9ACB313F1EDA994200F3E1D3 /* ShortcutRecorder.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ShortcutRecorder.framework; path = "../../../../Library/Developer/Xcode/DerivedData/Clocker-ewkrwqfbimlgoicxkolbqepjsbcy/Build/Products/Release/ShortcutRecorder.framework"; sourceTree = ""; }; - 9ACE03EE1CB0ADE00039FC01 /* Firebase.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Firebase.framework; path = Frameworks/Firebase.framework; sourceTree = ""; }; 9ACF469C1DCBD45200C49B51 /* Quartz.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Quartz.framework; path = System/Library/Frameworks/Quartz.framework; sourceTree = SDKROOT; }; 9ACF618C231DABAE00F5E51E /* SearchDataSource.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchDataSource.swift; sourceTree = ""; }; 9AFCC7FC1FD668FF00509B9C /* ClockerHelper.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = ClockerHelper.entitlements; sourceTree = ""; }; @@ -426,6 +472,16 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 3531F80E26938D7700DF0111 /* FirebaseDatabase.framework in Frameworks */, + 3531F81D26938D7700DF0111 /* FirebaseInstallations.framework in Frameworks */, + 3531F81426938D7700DF0111 /* FirebaseCore.framework in Frameworks */, + 3531F81A26938D7700DF0111 /* FirebaseCrashlytics.framework in Frameworks */, + 3531F80826938D7700DF0111 /* GoogleUtilities.framework in Frameworks */, + 3531F82326938D7700DF0111 /* GoogleDataTransport.framework in Frameworks */, + 3531F82026938D7700DF0111 /* leveldb-library.framework in Frameworks */, + 3531F81126938D7700DF0111 /* PromisesObjC.framework in Frameworks */, + 3531F81726938D7700DF0111 /* nanopb.framework in Frameworks */, + 3531F80B26938D7700DF0111 /* FirebaseCoreDiagnostics.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -433,6 +489,16 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 3531F80D26938D7700DF0111 /* FirebaseDatabase.framework in Frameworks */, + 3531F81C26938D7700DF0111 /* FirebaseInstallations.framework in Frameworks */, + 3531F81326938D7700DF0111 /* FirebaseCore.framework in Frameworks */, + 3531F81926938D7700DF0111 /* FirebaseCrashlytics.framework in Frameworks */, + 3531F80726938D7700DF0111 /* GoogleUtilities.framework in Frameworks */, + 3531F82226938D7700DF0111 /* GoogleDataTransport.framework in Frameworks */, + 3531F81F26938D7700DF0111 /* leveldb-library.framework in Frameworks */, + 3531F81026938D7700DF0111 /* PromisesObjC.framework in Frameworks */, + 3531F81626938D7700DF0111 /* nanopb.framework in Frameworks */, + 3531F80A26938D7700DF0111 /* FirebaseCoreDiagnostics.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -440,27 +506,34 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 3531F80F26938D7700DF0111 /* PromisesObjC.framework in Frameworks */, + 3531F80C26938D7700DF0111 /* FirebaseDatabase.framework in Frameworks */, 9A0A1C8C20903DBD0012003B /* CoreLocation.framework in Frameworks */, 9A7547C91F183729004705EF /* ServiceManagement.framework in Frameworks */, 9A24A1881ED902CC0095201E /* EventKit.framework in Frameworks */, + 3531F81E26938D7700DF0111 /* leveldb-library.framework in Frameworks */, 9ACF469D1DCBD45200C49B51 /* Quartz.framework in Frameworks */, 9AC678E41C1ABAB9003B4F6B /* QuartzCore.framework in Frameworks */, + 3531F80626938D7700DF0111 /* GoogleUtilities.framework in Frameworks */, 9A5E75E4204CC39700119939 /* ShortcutRecorder.framework in Frameworks */, 35B2FEF1259A2DB1005DA84D /* CoreModelKit in Frameworks */, + 3531F81526938D7700DF0111 /* nanopb.framework in Frameworks */, 35B2FEDD259A2291005DA84D /* CoreLoggerKit in Frameworks */, 35B2FEC0259A186F005DA84D /* StartupKit in Frameworks */, 9A6D93371CF3E82F005A8690 /* CoreImage.framework in Frameworks */, 9A5E75E8204CC39700119939 /* PTHotKey.framework in Frameworks */, + 3531F81826938D7700DF0111 /* FirebaseCrashlytics.framework in Frameworks */, + 3531F82126938D7700DF0111 /* GoogleDataTransport.framework in Frameworks */, 9A9E876A1C1FEDDB00A7A2DF /* SystemConfiguration.framework in Frameworks */, + 3531F81B26938D7700DF0111 /* FirebaseInstallations.framework in Frameworks */, 9A9E87621C1FEDB500A7A2DF /* CFNetwork.framework in Frameworks */, 9ABFB3801CA6882000E10745 /* ApplicationServices.framework in Frameworks */, 9A20A04B1C4DEED200FB45AB /* IOKit.framework in Frameworks */, - 9A5951BA1C1D0A22009C17AA /* Crashlytics.framework in Frameworks */, 9A43792A1BEC230A00F4E27F /* libc++.tbd in Frameworks */, + 3531F80926938D7700DF0111 /* FirebaseCoreDiagnostics.framework in Frameworks */, + 3531F81226938D7700DF0111 /* FirebaseCore.framework in Frameworks */, DD4F7C0913C30F9F00825C6E /* Cocoa.framework in Frameworks */, - 9A4379271BEC223900F4E27F /* Fabric.framework in Frameworks */, 9ACB31401EDA994200F3E1D3 /* ShortcutRecorder.framework in Frameworks */, - 9ACE03EF1CB0ADE00039FC01 /* Firebase.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -641,14 +714,6 @@ name = Utilties; sourceTree = ""; }; - 9A5E6B9C1CAF7174006E7C5C /* Firebase */ = { - isa = PBXGroup; - children = ( - 9ACE03EE1CB0ADE00039FC01 /* Firebase.framework */, - ); - name = Firebase; - sourceTree = ""; - }; 9A7547D11F184DC3004705EF /* ClockerHelper */ = { isa = PBXGroup; children = ( @@ -765,11 +830,6 @@ 9ACB31381EDA98EA00F3E1D3 /* Frameworks */ = { isa = PBXGroup; children = ( - 9ACB31391EDA98EA00F3E1D3 /* Crashlytics.framework */, - 9ACB313A1EDA98EA00F3E1D3 /* Fabric.framework */, - 9ACB313B1EDA98EA00F3E1D3 /* Firebase.framework */, - 9ACB313C1EDA98EA00F3E1D3 /* Security.framework */, - 9ACB313D1EDA98EA00F3E1D3 /* SystemConfiguration.framework */, ); path = Frameworks; sourceTree = ""; @@ -822,7 +882,7 @@ DD4F7BF913C30F9F00825C6E = { isa = PBXGroup; children = ( - 35992D07267EA61E00020078 /* Keys.plist */, + 3531F7F42693882300DF0111 /* Keys.plist */, 35B2FEE4259A2C25005DA84D /* CoreModelKit */, 35B2FED4259A2244005DA84D /* CoreLoggerKit */, 35B2FEB1259A1649005DA84D /* StartupKit */, @@ -834,7 +894,6 @@ C2021B89219F30960036C247 /* Onboarding */, 9AB89E021CE97A4900EC8EB1 /* Media.xcassets */, 9A86E2B51CE04F1600547EE7 /* ShortcutRecorder.xcodeproj */, - 9A5E6B9C1CAF7174006E7C5C /* Firebase */, 9A5B1A8D1BECDFB700A77C68 /* Clocker.entitlements */, 9A2000C61BFBCEF6002BFDE8 /* Utilties */, 9A8605E01BEC15F400A810A4 /* XIB */, @@ -843,6 +902,10 @@ C2BFE3E42049F82300825BE5 /* ClockerUITests */, C20839C821515C1E00C86589 /* ClockerUnitTests */, DD4F7C0713C30F9F00825C6E /* Frameworks */, + 3531F7EA26936D8800DF0111 /* Firebase.h */, + 3531F7EB26936DE900DF0111 /* run */, + 3531F7EC26936DE900DF0111 /* upload-symbols */, + 3531F7C026936C6E00DF0111 /* GoogleService-Info.plist */, DD4F7C0513C30F9F00825C6E /* Products */, ); sourceTree = ""; @@ -861,6 +924,16 @@ DD4F7C0713C30F9F00825C6E /* Frameworks */ = { isa = PBXGroup; children = ( + 3531F80026938D7700DF0111 /* FirebaseCore.framework */, + 3531F7FD26938D7700DF0111 /* FirebaseCoreDiagnostics.framework */, + 3531F80226938D7700DF0111 /* FirebaseCrashlytics.framework */, + 3531F7FE26938D7700DF0111 /* FirebaseDatabase.framework */, + 3531F80326938D7700DF0111 /* FirebaseInstallations.framework */, + 3531F80526938D7700DF0111 /* GoogleDataTransport.framework */, + 3531F7FC26938D7600DF0111 /* GoogleUtilities.framework */, + 3531F80426938D7700DF0111 /* leveldb-library.framework */, + 3531F80126938D7700DF0111 /* nanopb.framework */, + 3531F7FF26938D7700DF0111 /* PromisesObjC.framework */, 9ACB313F1EDA994200F3E1D3 /* ShortcutRecorder.framework */, 9ACB31381EDA98EA00F3E1D3 /* Frameworks */, 9A24A1871ED902CC0095201E /* EventKit.framework */, @@ -876,9 +949,7 @@ 9A9E87651C1FEDC500A7A2DF /* CoreLocation.framework */, 9A9E87631C1FEDBD00A7A2DF /* CoreGraphics.framework */, 9A9E87611C1FEDB500A7A2DF /* CFNetwork.framework */, - 9A5951B91C1D0A22009C17AA /* Crashlytics.framework */, 9AC678E31C1ABAB9003B4F6B /* QuartzCore.framework */, - 9A4379231BEC223900F4E27F /* Fabric.framework */, 9A43792B1BEC231100F4E27F /* libz.tbd */, 9A4379291BEC230A00F4E27F /* libc++.tbd */, DD4F7C0B13C30F9F00825C6E /* AppKit.framework */, @@ -950,10 +1021,10 @@ DD4F7C0013C30F9F00825C6E /* Sources */, DD4F7C0113C30F9F00825C6E /* Frameworks */, DD4F7C0213C30F9F00825C6E /* Resources */, - 9A4379201BEC220200F4E27F /* ShellScript */, 9A20A0711C4E808500FB45AB /* Login Item Helper */, 9A5E75EC204CC39700119939 /* Embed Frameworks */, C2A632A020EAC5EE00EB6BEA /* SwiftFormat */, + 3531F7F326936F5000DF0111 /* ShellScript */, ); buildRules = ( ); @@ -1091,6 +1162,7 @@ buildActionMask = 2147483647; files = ( 9A7547DC1F184DC3004705EF /* Assets.xcassets in Resources */, + 3531F7C326936C8300DF0111 /* GoogleService-Info.plist in Resources */, 9AA522C323415BDD00C9E005 /* InfoPlist.strings in Resources */, 9A7547DF1F184DC3004705EF /* Main.storyboard in Resources */, ); @@ -1100,6 +1172,10 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 3531F7F72693882300DF0111 /* Keys.plist in Resources */, + 3531F7F226936DE900DF0111 /* upload-symbols in Resources */, + 3531F7EF26936DE900DF0111 /* run in Resources */, + 3531F7C526936C8400DF0111 /* GoogleService-Info.plist in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1107,8 +1183,12 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 3531F7F62693882300DF0111 /* Keys.plist in Resources */, + 3531F7EE26936DE900DF0111 /* run in Resources */, 9A8B256A232EFAD300204CAD /* Localizable.strings in Resources */, 9AA522C023415BDD00C9E005 /* InfoPlist.strings in Resources */, + 3531F7C426936C8300DF0111 /* GoogleService-Info.plist in Resources */, + 3531F7F126936DE900DF0111 /* upload-symbols in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1120,15 +1200,19 @@ 357391882507277500D30819 /* HourMarkerViewItem.xib in Resources */, 9AB6F15E2259D08300A44663 /* iVersion.bundle in Resources */, 35C36F972259EBB1002FA5C6 /* AppFeedbackWindow.xib in Resources */, + 3531F7ED26936DE900DF0111 /* run in Resources */, 9A13BAE01CA882FA007C6CBE /* InfoPlist.strings in Resources */, 35C36F912259EAF4002FA5C6 /* Preferences.storyboard in Resources */, + 3531F7F52693882300DF0111 /* Keys.plist in Resources */, 9AB89E031CE97A4900EC8EB1 /* Media.xcassets in Resources */, 9A13BAD61CA87F08007C6CBE /* Panel.xib in Resources */, 35C36F6B2259E0E1002FA5C6 /* FloatingWindow.xib in Resources */, + 3531F7C226936C6E00DF0111 /* GoogleService-Info.plist in Resources */, 35C36F17225961DA002FA5C6 /* DateTools.bundle in Resources */, 35C36EF322595F14002FA5C6 /* WelcomeView.xib in Resources */, 35C36EF822595F14002FA5C6 /* Onboarding.storyboard in Resources */, 35C36F612259DE67002FA5C6 /* NotesPopover.xib in Resources */, + 3531F7F026936DE900DF0111 /* upload-symbols in Resources */, 9A3169C11D2CC5AA0079FDF8 /* com.abhishek.ClockerHelper.plist in Resources */, 9A56DB801C1CFB73004CE6AF /* MainMenu.xib in Resources */, ); @@ -1137,19 +1221,22 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 9A4379201BEC220200F4E27F /* ShellScript */ = { + 3531F7F326936F5000DF0111 /* ShellScript */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); + inputFileListPaths = ( + ); inputPaths = ( ); + outputFileListPaths = ( + ); outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = ""; - showEnvVarsInLog = 0; + shellScript = "\"$SRCROOT/run\"\n"; }; C2A632A020EAC5EE00EB6BEA /* SwiftFormat */ = { isa = PBXShellScriptBuildPhase; @@ -1482,6 +1569,7 @@ "$(inherited)", "$(PROJECT_DIR)", "$(PROJECT_DIR)/Frameworks", + "$(PROJECT_DIR)/Frameworks/Firebase", ); GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "Clocker/Clocker-Prefix.pch"; @@ -1507,7 +1595,7 @@ ); MACOSX_DEPLOYMENT_TARGET = 10.13; MARKETING_VERSION = 21.07.01; - OTHER_LDFLAGS = ""; + OTHER_LDFLAGS = "-ObjC"; PRODUCT_BUNDLE_IDENTIFIER = com.abhishek.Clocker; PRODUCT_NAME = Clocker; PROVISIONING_PROFILE = "71701bee-fee7-4927-b6e9-20d9a78ef29c"; @@ -1656,6 +1744,7 @@ "$(PROJECT_DIR)/Frameworks", "$(PROJECT_DIR)", "$(inherited)", + "$(PROJECT_DIR)/Frameworks/Firebase", ); GCC_C_LANGUAGE_STANDARD = gnu11; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; @@ -1704,6 +1793,7 @@ "$(PROJECT_DIR)/Frameworks", "$(PROJECT_DIR)", "$(inherited)", + "$(PROJECT_DIR)/Frameworks/Firebase", ); GCC_C_LANGUAGE_STANDARD = gnu11; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; @@ -1750,6 +1840,7 @@ "$(PROJECT_DIR)/Frameworks", "$(PROJECT_DIR)", "$(inherited)", + "$(PROJECT_DIR)/Frameworks/Firebase", ); GCC_C_LANGUAGE_STANDARD = gnu11; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; @@ -1791,6 +1882,11 @@ DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = ""; ENABLE_HARDENED_RUNTIME = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)", + "$(PROJECT_DIR)/Frameworks/Firebase", + ); GCC_C_LANGUAGE_STANDARD = gnu11; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; @@ -1833,6 +1929,11 @@ ENABLE_HARDENED_RUNTIME = YES; ENABLE_NS_ASSERTIONS = NO; ENABLE_TESTABILITY = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)", + "$(PROJECT_DIR)/Frameworks/Firebase", + ); GCC_C_LANGUAGE_STANDARD = gnu11; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; @@ -1874,6 +1975,11 @@ ENABLE_HARDENED_RUNTIME = YES; ENABLE_NS_ASSERTIONS = NO; ENABLE_TESTABILITY = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)", + "$(PROJECT_DIR)/Frameworks/Firebase", + ); GCC_C_LANGUAGE_STANDARD = gnu11; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; @@ -2031,6 +2137,7 @@ "$(inherited)", "$(PROJECT_DIR)", "$(PROJECT_DIR)/Frameworks", + "$(PROJECT_DIR)/Frameworks/Firebase", ); GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "Clocker/Clocker-Prefix.pch"; @@ -2057,7 +2164,7 @@ MACOSX_DEPLOYMENT_TARGET = 10.13; MARKETING_VERSION = 21.07.01; ONLY_ACTIVE_ARCH = NO; - OTHER_LDFLAGS = ""; + OTHER_LDFLAGS = "-ObjC"; "OTHER_SWIFT_FLAGS[arch=*]" = "-D DEBUG"; PRODUCT_BUNDLE_IDENTIFIER = com.abhishek.Clocker; PRODUCT_NAME = Clocker; @@ -2112,6 +2219,7 @@ "$(inherited)", "$(PROJECT_DIR)", "$(PROJECT_DIR)/Frameworks", + "$(PROJECT_DIR)/Frameworks/Firebase", ); GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "Clocker/Clocker-Prefix.pch"; @@ -2137,7 +2245,7 @@ ); MACOSX_DEPLOYMENT_TARGET = 10.13; MARKETING_VERSION = 21.07.01; - OTHER_LDFLAGS = ""; + OTHER_LDFLAGS = "-ObjC"; "OTHER_SWIFT_FLAGS[arch=*]" = "-D RELEASE"; PRODUCT_BUNDLE_IDENTIFIER = com.abhishek.Clocker; PRODUCT_NAME = Clocker; diff --git a/Clocker/Clocker/Clocker-Info.plist b/Clocker/Clocker/Clocker-Info.plist index 94e2489..d19cf35 100755 --- a/Clocker/Clocker/Clocker-Info.plist +++ b/Clocker/Clocker/Clocker-Info.plist @@ -18,20 +18,6 @@ ???? CFBundleVersion $(CURRENT_PROJECT_VERSION) - Fabric - - APIKey - 94088f95c41979e8019b67d5795f52bbbe7104d4 - Kits - - - KitInfo - - KitName - Crashlytics - - - LSApplicationCategoryType public.app-category.utilities LSMinimumSystemVersion diff --git a/Clocker/Firebase.h b/Clocker/Firebase.h new file mode 100755 index 0000000..3d6ac97 --- /dev/null +++ b/Clocker/Firebase.h @@ -0,0 +1,81 @@ +// Copyright 2019 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 !defined(__has_include) + #error "Firebase.h won't import anything if your compiler doesn't support __has_include. Please \ + import the headers individually." +#else + #if __has_include() + #import + #endif + + #if __has_include() + #import + #endif + + #if __has_include() + #import + #endif + + #if __has_include() + #import + #endif + + #if __has_include() + #import + #endif + + #if __has_include() + #import + #endif + + #if __has_include() + #import + #endif + + #if __has_include() + #import + #endif + + #if __has_include() + #import + #endif + + #if __has_include() + #import + #endif + + #if __has_include() + #import + #endif + + #if __has_include() + #import + #endif + + #if __has_include() + #import + #endif + + #if __has_include() + #import + #endif + + #if __has_include() + #import + #endif + +#endif // defined(__has_include) diff --git a/Clocker/Frameworks/Crashlytics.framework/Crashlytics b/Clocker/Frameworks/Crashlytics.framework/Crashlytics deleted file mode 120000 index 7074275..0000000 --- a/Clocker/Frameworks/Crashlytics.framework/Crashlytics +++ /dev/null @@ -1 +0,0 @@ -Versions/Current/Crashlytics \ No newline at end of file diff --git a/Clocker/Frameworks/Crashlytics.framework/Headers b/Clocker/Frameworks/Crashlytics.framework/Headers deleted file mode 120000 index a177d2a..0000000 --- a/Clocker/Frameworks/Crashlytics.framework/Headers +++ /dev/null @@ -1 +0,0 @@ -Versions/Current/Headers \ No newline at end of file diff --git a/Clocker/Frameworks/Crashlytics.framework/Modules b/Clocker/Frameworks/Crashlytics.framework/Modules deleted file mode 120000 index 5736f31..0000000 --- a/Clocker/Frameworks/Crashlytics.framework/Modules +++ /dev/null @@ -1 +0,0 @@ -Versions/Current/Modules \ No newline at end of file diff --git a/Clocker/Frameworks/Crashlytics.framework/Resources b/Clocker/Frameworks/Crashlytics.framework/Resources deleted file mode 120000 index 953ee36..0000000 --- a/Clocker/Frameworks/Crashlytics.framework/Resources +++ /dev/null @@ -1 +0,0 @@ -Versions/Current/Resources \ No newline at end of file diff --git a/Clocker/Frameworks/Crashlytics.framework/Versions/A/Crashlytics b/Clocker/Frameworks/Crashlytics.framework/Versions/A/Crashlytics deleted file mode 100755 index f55267c..0000000 Binary files a/Clocker/Frameworks/Crashlytics.framework/Versions/A/Crashlytics and /dev/null differ diff --git a/Clocker/Frameworks/Crashlytics.framework/Versions/A/Headers/ANSCompatibility.h b/Clocker/Frameworks/Crashlytics.framework/Versions/A/Headers/ANSCompatibility.h deleted file mode 100644 index 6ec011d..0000000 --- a/Clocker/Frameworks/Crashlytics.framework/Versions/A/Headers/ANSCompatibility.h +++ /dev/null @@ -1,31 +0,0 @@ -// -// ANSCompatibility.h -// AnswersKit -// -// Copyright (c) 2015 Crashlytics, Inc. All rights reserved. -// - -#pragma once - -#if !__has_feature(nullability) -#define nonnull -#define nullable -#define _Nullable -#define _Nonnull -#endif - -#ifndef NS_ASSUME_NONNULL_BEGIN -#define NS_ASSUME_NONNULL_BEGIN -#endif - -#ifndef NS_ASSUME_NONNULL_END -#define NS_ASSUME_NONNULL_END -#endif - -#if __has_feature(objc_generics) -#define ANS_GENERIC_NSARRAY(type) NSArray -#define ANS_GENERIC_NSDICTIONARY(key_type,object_key) NSDictionary -#else -#define ANS_GENERIC_NSARRAY(type) NSArray -#define ANS_GENERIC_NSDICTIONARY(key_type,object_key) NSDictionary -#endif diff --git a/Clocker/Frameworks/Crashlytics.framework/Versions/A/Headers/Answers.h b/Clocker/Frameworks/Crashlytics.framework/Versions/A/Headers/Answers.h deleted file mode 100644 index 710eb50..0000000 --- a/Clocker/Frameworks/Crashlytics.framework/Versions/A/Headers/Answers.h +++ /dev/null @@ -1,210 +0,0 @@ -// -// Answers.h -// Crashlytics -// -// Copyright (c) 2015 Crashlytics, Inc. All rights reserved. -// - -#import -#import "ANSCompatibility.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * This class exposes the Answers Events API, allowing you to track key - * user user actions and metrics in your app. - */ -@interface Answers : NSObject - -/** - * Log a Sign Up event to see users signing up for your app in real-time, understand how - * many users are signing up with different methods and their success rate signing up. - * - * @param signUpMethodOrNil The method by which a user logged in, e.g. Twitter or Digits. - * @param signUpSucceededOrNil The ultimate success or failure of the login - * @param customAttributesOrNil A dictionary of custom attributes to associate with this event. - */ -+ (void)logSignUpWithMethod:(nullable NSString *)signUpMethodOrNil - success:(nullable NSNumber *)signUpSucceededOrNil - customAttributes:(nullable ANS_GENERIC_NSDICTIONARY(NSString *, id) *)customAttributesOrNil; - -/** - * Log an Log In event to see users logging into your app in real-time, understand how many - * users are logging in with different methods and their success rate logging into your app. - * - * @param loginMethodOrNil The method by which a user logged in, e.g. email, Twitter or Digits. - * @param loginSucceededOrNil The ultimate success or failure of the login - * @param customAttributesOrNil A dictionary of custom attributes to associate with this event. - */ -+ (void)logLoginWithMethod:(nullable NSString *)loginMethodOrNil - success:(nullable NSNumber *)loginSucceededOrNil - customAttributes:(nullable ANS_GENERIC_NSDICTIONARY(NSString *, id) *)customAttributesOrNil; - -/** - * Log a Share event to see users sharing from your app in real-time, letting you - * understand what content they're sharing from the type or genre down to the specific id. - * - * @param shareMethodOrNil The method by which a user shared, e.g. email, Twitter, SMS. - * @param contentNameOrNil The human readable name for this piece of content. - * @param contentTypeOrNil The type of content shared. - * @param contentIdOrNil The unique identifier for this piece of content. Useful for finding the top shared item. - * @param customAttributesOrNil A dictionary of custom attributes to associate with this event. - */ -+ (void)logShareWithMethod:(nullable NSString *)shareMethodOrNil - contentName:(nullable NSString *)contentNameOrNil - contentType:(nullable NSString *)contentTypeOrNil - contentId:(nullable NSString *)contentIdOrNil - customAttributes:(nullable ANS_GENERIC_NSDICTIONARY(NSString *, id) *)customAttributesOrNil; - -/** - * Log an Invite Event to track how users are inviting other users into - * your application. - * - * @param inviteMethodOrNil The method of invitation, e.g. GameCenter, Twitter, email. - * @param customAttributesOrNil A dictionary of custom attributes to associate with this event. - */ -+ (void)logInviteWithMethod:(nullable NSString *)inviteMethodOrNil - customAttributes:(nullable ANS_GENERIC_NSDICTIONARY(NSString *, id) *)customAttributesOrNil; - -/** - * Log a Purchase event to see your revenue in real-time, understand how many users are making purchases, see which - * items are most popular, and track plenty of other important purchase-related metrics. - * - * @param itemPriceOrNil The purchased item's price. - * @param currencyOrNil The ISO4217 currency code. Example: USD - * @param purchaseSucceededOrNil Was the purchase succesful or unsuccesful - * @param itemNameOrNil The human-readable form of the item's name. Example: - * @param itemTypeOrNil The type, or genre of the item. Example: Song - * @param itemIdOrNil The machine-readable, unique item identifier Example: SKU - * @param customAttributesOrNil A dictionary of custom attributes to associate with this purchase. - */ -+ (void)logPurchaseWithPrice:(nullable NSDecimalNumber *)itemPriceOrNil - currency:(nullable NSString *)currencyOrNil - success:(nullable NSNumber *)purchaseSucceededOrNil - itemName:(nullable NSString *)itemNameOrNil - itemType:(nullable NSString *)itemTypeOrNil - itemId:(nullable NSString *)itemIdOrNil - customAttributes:(nullable ANS_GENERIC_NSDICTIONARY(NSString *, id) *)customAttributesOrNil; - -/** - * Log a Level Start Event to track where users are in your game. - * - * @param levelNameOrNil The level name - * @param customAttributesOrNil A dictionary of custom attributes to associate with this level start event. - */ -+ (void)logLevelStart:(nullable NSString *)levelNameOrNil - customAttributes:(nullable ANS_GENERIC_NSDICTIONARY(NSString *, id) *)customAttributesOrNil; - -/** - * Log a Level End event to track how users are completing levels in your game. - * - * @param levelNameOrNil The name of the level completed, E.G. "1" or "Training" - * @param scoreOrNil The score the user completed the level with. - * @param levelCompletedSuccesfullyOrNil A boolean representing whether or not the level was completed succesfully. - * @param customAttributesOrNil A dictionary of custom attributes to associate with this event. - */ -+ (void)logLevelEnd:(nullable NSString *)levelNameOrNil - score:(nullable NSNumber *)scoreOrNil - success:(nullable NSNumber *)levelCompletedSuccesfullyOrNil - customAttributes:(nullable ANS_GENERIC_NSDICTIONARY(NSString *, id) *)customAttributesOrNil; - -/** - * Log an Add to Cart event to see users adding items to a shopping cart in real-time, understand how - * many users start the purchase flow, see which items are most popular, and track plenty of other important - * purchase-related metrics. - * - * @param itemPriceOrNil The purchased item's price. - * @param currencyOrNil The ISO4217 currency code. Example: USD - * @param itemNameOrNil The human-readable form of the item's name. Example: - * @param itemTypeOrNil The type, or genre of the item. Example: Song - * @param itemIdOrNil The machine-readable, unique item identifier Example: SKU - * @param customAttributesOrNil A dictionary of custom attributes to associate with this event. - */ -+ (void)logAddToCartWithPrice:(nullable NSDecimalNumber *)itemPriceOrNil - currency:(nullable NSString *)currencyOrNil - itemName:(nullable NSString *)itemNameOrNil - itemType:(nullable NSString *)itemTypeOrNil - itemId:(nullable NSString *)itemIdOrNil - customAttributes:(nullable ANS_GENERIC_NSDICTIONARY(NSString *, id) *)customAttributesOrNil; - -/** - * Log a Start Checkout event to see users moving through the purchase funnel in real-time, understand how many - * users are doing this and how much they're spending per checkout, and see how it related to other important - * purchase-related metrics. - * - * @param totalPriceOrNil The total price of the cart. - * @param currencyOrNil The ISO4217 currency code. Example: USD - * @param itemCountOrNil The number of items in the cart. - * @param customAttributesOrNil A dictionary of custom attributes to associate with this event. - */ -+ (void)logStartCheckoutWithPrice:(nullable NSDecimalNumber *)totalPriceOrNil - currency:(nullable NSString *)currencyOrNil - itemCount:(nullable NSNumber *)itemCountOrNil - customAttributes:(nullable ANS_GENERIC_NSDICTIONARY(NSString *, id) *)customAttributesOrNil; - -/** - * Log a Rating event to see users rating content within your app in real-time and understand what - * content is most engaging, from the type or genre down to the specific id. - * - * @param ratingOrNil The integer rating given by the user. - * @param contentNameOrNil The human readable name for this piece of content. - * @param contentTypeOrNil The type of content shared. - * @param contentIdOrNil The unique identifier for this piece of content. Useful for finding the top shared item. - * @param customAttributesOrNil A dictionary of custom attributes to associate with this event. - */ -+ (void)logRating:(nullable NSNumber *)ratingOrNil - contentName:(nullable NSString *)contentNameOrNil - contentType:(nullable NSString *)contentTypeOrNil - contentId:(nullable NSString *)contentIdOrNil - customAttributes:(nullable ANS_GENERIC_NSDICTIONARY(NSString *, id) *)customAttributesOrNil; - -/** - * Log a Content View event to see users viewing content within your app in real-time and - * understand what content is most engaging, from the type or genre down to the specific id. - * - * @param contentNameOrNil The human readable name for this piece of content. - * @param contentTypeOrNil The type of content shared. - * @param contentIdOrNil The unique identifier for this piece of content. Useful for finding the top shared item. - * @param customAttributesOrNil A dictionary of custom attributes to associate with this event. - */ -+ (void)logContentViewWithName:(nullable NSString *)contentNameOrNil - contentType:(nullable NSString *)contentTypeOrNil - contentId:(nullable NSString *)contentIdOrNil - customAttributes:(nullable ANS_GENERIC_NSDICTIONARY(NSString *, id) *)customAttributesOrNil; - -/** - * Log a Search event allows you to see users searching within your app in real-time and understand - * exactly what they're searching for. - * - * @param queryOrNil The user's query. - * @param customAttributesOrNil A dictionary of custom attributes to associate with this event. - */ -+ (void)logSearchWithQuery:(nullable NSString *)queryOrNil - customAttributes:(nullable ANS_GENERIC_NSDICTIONARY(NSString *, id) *)customAttributesOrNil; - -/** - * Log a Custom Event to see user actions that are uniquely important for your app in real-time, to see how often - * they're performing these actions with breakdowns by different categories you add. Use a human-readable name for - * the name of the event, since this is how the event will appear in Answers. - * - * @param eventName The human-readable name for the event. - * @param customAttributesOrNil A dictionary of custom attributes to associate with this event. Attribute keys - * must be NSString and and values must be NSNumber or NSString. - * @discussion How we treat NSNumbers: - * We will provide information about the distribution of values over time. - * - * How we treat NSStrings: - * NSStrings are used as categorical data, allowing comparison across different category values. - * Strings are limited to a maximum length of 100 characters, attributes over this length will be - * truncated. - * - * When tracking the Tweet views to better understand user engagement, sending the tweet's length - * and the type of media present in the tweet allows you to track how tweet length and the type of media influence - * engagement. - */ -+ (void)logCustomEventWithName:(NSString *)eventName - customAttributes:(nullable ANS_GENERIC_NSDICTIONARY(NSString *, id) *)customAttributesOrNil; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Clocker/Frameworks/Crashlytics.framework/Versions/A/Headers/CLSAttributes.h b/Clocker/Frameworks/Crashlytics.framework/Versions/A/Headers/CLSAttributes.h deleted file mode 100644 index 1526b0d..0000000 --- a/Clocker/Frameworks/Crashlytics.framework/Versions/A/Headers/CLSAttributes.h +++ /dev/null @@ -1,33 +0,0 @@ -// -// CLSAttributes.h -// Crashlytics -// -// Copyright (c) 2015 Crashlytics, Inc. All rights reserved. -// - -#pragma once - -#define CLS_DEPRECATED(x) __attribute__ ((deprecated(x))) - -#if !__has_feature(nullability) - #define nonnull - #define nullable - #define _Nullable - #define _Nonnull -#endif - -#ifndef NS_ASSUME_NONNULL_BEGIN - #define NS_ASSUME_NONNULL_BEGIN -#endif - -#ifndef NS_ASSUME_NONNULL_END - #define NS_ASSUME_NONNULL_END -#endif - -#if __has_feature(objc_generics) - #define CLS_GENERIC_NSARRAY(type) NSArray - #define CLS_GENERIC_NSDICTIONARY(key_type,object_key) NSDictionary -#else - #define CLS_GENERIC_NSARRAY(type) NSArray - #define CLS_GENERIC_NSDICTIONARY(key_type,object_key) NSDictionary -#endif diff --git a/Clocker/Frameworks/Crashlytics.framework/Versions/A/Headers/CLSLogging.h b/Clocker/Frameworks/Crashlytics.framework/Versions/A/Headers/CLSLogging.h deleted file mode 100644 index 59590d5..0000000 --- a/Clocker/Frameworks/Crashlytics.framework/Versions/A/Headers/CLSLogging.h +++ /dev/null @@ -1,64 +0,0 @@ -// -// CLSLogging.h -// Crashlytics -// -// Copyright (c) 2015 Crashlytics, Inc. All rights reserved. -// -#ifdef __OBJC__ -#import "CLSAttributes.h" -#import - -NS_ASSUME_NONNULL_BEGIN -#endif - - - -/** - * - * The CLS_LOG macro provides as easy way to gather more information in your log messages that are - * sent with your crash data. CLS_LOG prepends your custom log message with the function name and - * line number where the macro was used. If your app was built with the DEBUG preprocessor macro - * defined CLS_LOG uses the CLSNSLog function which forwards your log message to NSLog and CLSLog. - * If the DEBUG preprocessor macro is not defined CLS_LOG uses CLSLog only. - * - * Example output: - * -[AppDelegate login:] line 134 $ login start - * - * If you would like to change this macro, create a new header file, unset our define and then define - * your own version. Make sure this new header file is imported after the Crashlytics header file. - * - * #undef CLS_LOG - * #define CLS_LOG(__FORMAT__, ...) CLSNSLog... - * - **/ -#ifdef __OBJC__ -#ifdef DEBUG -#define CLS_LOG(__FORMAT__, ...) CLSNSLog((@"%s line %d $ " __FORMAT__), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__) -#else -#define CLS_LOG(__FORMAT__, ...) CLSLog((@"%s line %d $ " __FORMAT__), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__) -#endif -#endif - -/** - * - * Add logging that will be sent with your crash data. This logging will not show up in the system.log - * and will only be visible in your Crashlytics dashboard. - * - **/ - -#ifdef __OBJC__ -OBJC_EXTERN void CLSLog(NSString *format, ...) NS_FORMAT_FUNCTION(1,2); -OBJC_EXTERN void CLSLogv(NSString *format, va_list ap) NS_FORMAT_FUNCTION(1,0); - -/** - * - * Add logging that will be sent with your crash data. This logging will show up in the system.log - * and your Crashlytics dashboard. It is not recommended for Release builds. - * - **/ -OBJC_EXTERN void CLSNSLog(NSString *format, ...) NS_FORMAT_FUNCTION(1,2); -OBJC_EXTERN void CLSNSLogv(NSString *format, va_list ap) NS_FORMAT_FUNCTION(1,0); - - -NS_ASSUME_NONNULL_END -#endif diff --git a/Clocker/Frameworks/Crashlytics.framework/Versions/A/Headers/CLSReport.h b/Clocker/Frameworks/Crashlytics.framework/Versions/A/Headers/CLSReport.h deleted file mode 100644 index 5f7d334..0000000 --- a/Clocker/Frameworks/Crashlytics.framework/Versions/A/Headers/CLSReport.h +++ /dev/null @@ -1,103 +0,0 @@ -// -// CLSReport.h -// Crashlytics -// -// Copyright (c) 2015 Crashlytics, Inc. All rights reserved. -// - -#import -#import "CLSAttributes.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * The CLSCrashReport protocol is deprecated. See the CLSReport class and the CrashyticsDelegate changes for details. - **/ -@protocol CLSCrashReport - -@property (nonatomic, copy, readonly) NSString *identifier; -@property (nonatomic, copy, readonly) NSDictionary *customKeys; -@property (nonatomic, copy, readonly) NSString *bundleVersion; -@property (nonatomic, copy, readonly) NSString *bundleShortVersionString; -@property (nonatomic, readonly, nullable) NSDate *crashedOnDate; -@property (nonatomic, copy, readonly) NSString *OSVersion; -@property (nonatomic, copy, readonly) NSString *OSBuildVersion; - -@end - -/** - * The CLSReport exposes an interface to the phsyical report that Crashlytics has created. You can - * use this class to get information about the event, and can also set some values after the - * event has occured. - **/ -@interface CLSReport : NSObject - -- (instancetype)init NS_UNAVAILABLE; -+ (instancetype)new NS_UNAVAILABLE; - -/** - * Returns the session identifier for the report. - **/ -@property (nonatomic, copy, readonly) NSString *identifier; - -/** - * Returns the custom key value data for the report. - **/ -@property (nonatomic, copy, readonly) NSDictionary *customKeys; - -/** - * Returns the CFBundleVersion of the application that generated the report. - **/ -@property (nonatomic, copy, readonly) NSString *bundleVersion; - -/** - * Returns the CFBundleShortVersionString of the application that generated the report. - **/ -@property (nonatomic, copy, readonly) NSString *bundleShortVersionString; - -/** - * Returns the date that the report was created. - **/ -@property (nonatomic, copy, readonly) NSDate *dateCreated; - -/** - * Returns the os version that the application crashed on. - **/ -@property (nonatomic, copy, readonly) NSString *OSVersion; - -/** - * Returns the os build version that the application crashed on. - **/ -@property (nonatomic, copy, readonly) NSString *OSBuildVersion; - -/** - * Returns YES if the report contains any crash information, otherwise returns NO. - **/ -@property (nonatomic, assign, readonly) BOOL isCrash; - -/** - * You can use this method to set, after the event, additional custom keys. The rules - * and semantics for this method are the same as those documented in Crashlytics.h. Be aware - * that the maximum size and count of custom keys is still enforced, and you can overwrite keys - * and/or cause excess keys to be deleted by using this method. - **/ -- (void)setObjectValue:(nullable id)value forKey:(NSString *)key; - -/** - * Record an application-specific user identifier. See Crashlytics.h for details. - **/ -@property (nonatomic, copy, nullable) NSString * userIdentifier; - -/** - * Record a user name. See Crashlytics.h for details. - **/ -@property (nonatomic, copy, nullable) NSString * userName; - -/** - * Record a user email. See Crashlytics.h for details. - **/ -@property (nonatomic, copy, nullable) NSString * userEmail; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Clocker/Frameworks/Crashlytics.framework/Versions/A/Headers/CLSStackFrame.h b/Clocker/Frameworks/Crashlytics.framework/Versions/A/Headers/CLSStackFrame.h deleted file mode 100644 index cdb5596..0000000 --- a/Clocker/Frameworks/Crashlytics.framework/Versions/A/Headers/CLSStackFrame.h +++ /dev/null @@ -1,38 +0,0 @@ -// -// CLSStackFrame.h -// Crashlytics -// -// Copyright 2015 Crashlytics, Inc. All rights reserved. -// - -#import -#import "CLSAttributes.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * - * This class is used in conjunction with -[Crashlytics recordCustomExceptionName:reason:frameArray:] to - * record information about non-ObjC/C++ exceptions. All information included here will be displayed - * in the Crashlytics UI, and can influence crash grouping. Be particularly careful with the use of the - * address property. If set, Crashlytics will attempt symbolication and could overwrite other properities - * in the process. - * - **/ -@interface CLSStackFrame : NSObject - -+ (instancetype)stackFrame; -+ (instancetype)stackFrameWithAddress:(NSUInteger)address; -+ (instancetype)stackFrameWithSymbol:(NSString *)symbol; - -@property (nonatomic, copy, nullable) NSString *symbol; -@property (nonatomic, copy, nullable) NSString *rawSymbol; -@property (nonatomic, copy, nullable) NSString *library; -@property (nonatomic, copy, nullable) NSString *fileName; -@property (nonatomic, assign) uint32_t lineNumber; -@property (nonatomic, assign) uint64_t offset; -@property (nonatomic, assign) uint64_t address; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Clocker/Frameworks/Crashlytics.framework/Versions/A/Headers/Crashlytics.h b/Clocker/Frameworks/Crashlytics.framework/Versions/A/Headers/Crashlytics.h deleted file mode 100644 index 734dec3..0000000 --- a/Clocker/Frameworks/Crashlytics.framework/Versions/A/Headers/Crashlytics.h +++ /dev/null @@ -1,288 +0,0 @@ -// -// Crashlytics.h -// Crashlytics -// -// Copyright (c) 2015 Crashlytics, Inc. All rights reserved. -// - -#import - -#import "CLSAttributes.h" -#import "CLSLogging.h" -#import "CLSReport.h" -#import "CLSStackFrame.h" -#import "Answers.h" - -NS_ASSUME_NONNULL_BEGIN - -@protocol CrashlyticsDelegate; - -/** - * Crashlytics. Handles configuration and initialization of Crashlytics. - * - * Note: The Crashlytics class cannot be subclassed. If this is causing you pain for - * testing, we suggest using either a wrapper class or a protocol extension. - */ -@interface Crashlytics : NSObject - -@property (nonatomic, readonly, copy) NSString *APIKey; -@property (nonatomic, readonly, copy) NSString *version; -@property (nonatomic, assign) BOOL debugMode; - -/** - * - * The delegate can be used to influence decisions on reporting and behavior, as well as reacting - * to previous crashes. - * - * Make certain that the delegate is setup before starting Crashlytics with startWithAPIKey:... or - * via +[Fabric with:...]. Failure to do will result in missing any delegate callbacks that occur - * synchronously during start. - * - **/ -@property (nonatomic, assign, nullable) id delegate; - -/** - * The recommended way to install Crashlytics into your application is to place a call to +startWithAPIKey: - * in your -application:didFinishLaunchingWithOptions: or -applicationDidFinishLaunching: - * method. - * - * Note: Starting with 3.0, the submission process has been significantly improved. The delay parameter - * is no longer required to throttle submissions on launch, performance will be great without it. - * - * @param apiKey The Crashlytics API Key for this app - * - * @return The singleton Crashlytics instance - */ -+ (Crashlytics *)startWithAPIKey:(NSString *)apiKey; -+ (Crashlytics *)startWithAPIKey:(NSString *)apiKey afterDelay:(NSTimeInterval)delay CLS_DEPRECATED("Crashlytics no longer needs or uses the delay parameter. Please use +startWithAPIKey: instead."); - -/** - * If you need the functionality provided by the CrashlyticsDelegate protocol, you can use - * these convenience methods to activate the framework and set the delegate in one call. - * - * @param apiKey The Crashlytics API Key for this app - * @param delegate A delegate object which conforms to CrashlyticsDelegate. - * - * @return The singleton Crashlytics instance - */ -+ (Crashlytics *)startWithAPIKey:(NSString *)apiKey delegate:(nullable id)delegate; -+ (Crashlytics *)startWithAPIKey:(NSString *)apiKey delegate:(nullable id)delegate afterDelay:(NSTimeInterval)delay CLS_DEPRECATED("Crashlytics no longer needs or uses the delay parameter. Please use +startWithAPIKey:delegate: instead."); - -/** - * Access the singleton Crashlytics instance. - * - * @return The singleton Crashlytics instance - */ -+ (Crashlytics *)sharedInstance; - -/** - * The easiest way to cause a crash - great for testing! - */ -- (void)crash; - -/** - * The easiest way to cause a crash with an exception - great for testing. - */ -- (void)throwException; - -/** - * Specify a user identifier which will be visible in the Crashlytics UI. - * - * Many of our customers have requested the ability to tie crashes to specific end-users of their - * application in order to facilitate responses to support requests or permit the ability to reach - * out for more information. We allow you to specify up to three separate values for display within - * the Crashlytics UI - but please be mindful of your end-user's privacy. - * - * We recommend specifying a user identifier - an arbitrary string that ties an end-user to a record - * in your system. This could be a database id, hash, or other value that is meaningless to a - * third-party observer but can be indexed and queried by you. - * - * Optionally, you may also specify the end-user's name or username, as well as email address if you - * do not have a system that works well with obscured identifiers. - * - * Pursuant to our EULA, this data is transferred securely throughout our system and we will not - * disseminate end-user data unless required to by law. That said, if you choose to provide end-user - * contact information, we strongly recommend that you disclose this in your application's privacy - * policy. Data privacy is of our utmost concern. - * - * @param identifier An arbitrary user identifier string which ties an end-user to a record in your system. - */ -- (void)setUserIdentifier:(nullable NSString *)identifier; - -/** - * Specify a user name which will be visible in the Crashlytics UI. - * Please be mindful of your end-user's privacy and see if setUserIdentifier: can fulfil your needs. - * @see setUserIdentifier: - * - * @param name An end user's name. - */ -- (void)setUserName:(nullable NSString *)name; - -/** - * Specify a user email which will be visible in the Crashlytics UI. - * Please be mindful of your end-user's privacy and see if setUserIdentifier: can fulfil your needs. - * - * @see setUserIdentifier: - * - * @param email An end user's email address. - */ -- (void)setUserEmail:(nullable NSString *)email; - -+ (void)setUserIdentifier:(nullable NSString *)identifier CLS_DEPRECATED("Please access this method via +sharedInstance"); -+ (void)setUserName:(nullable NSString *)name CLS_DEPRECATED("Please access this method via +sharedInstance"); -+ (void)setUserEmail:(nullable NSString *)email CLS_DEPRECATED("Please access this method via +sharedInstance"); - -/** - * Set a value for a for a key to be associated with your crash data which will be visible in the Crashlytics UI. - * When setting an object value, the object is converted to a string. This is typically done by calling - * -[NSObject description]. - * - * @param value The object to be associated with the key - * @param key The key with which to associate the value - */ -- (void)setObjectValue:(nullable id)value forKey:(NSString *)key; - -/** - * Set an int value for a key to be associated with your crash data which will be visible in the Crashlytics UI. - * - * @param value The integer value to be set - * @param key The key with which to associate the value - */ -- (void)setIntValue:(int)value forKey:(NSString *)key; - -/** - * Set an BOOL value for a key to be associated with your crash data which will be visible in the Crashlytics UI. - * - * @param value The BOOL value to be set - * @param key The key with which to associate the value - */ -- (void)setBoolValue:(BOOL)value forKey:(NSString *)key; - -/** - * Set an float value for a key to be associated with your crash data which will be visible in the Crashlytics UI. - * - * @param value The float value to be set - * @param key The key with which to associate the value - */ -- (void)setFloatValue:(float)value forKey:(NSString *)key; - -+ (void)setObjectValue:(nullable id)value forKey:(NSString *)key CLS_DEPRECATED("Please access this method via +sharedInstance"); -+ (void)setIntValue:(int)value forKey:(NSString *)key CLS_DEPRECATED("Please access this method via +sharedInstance"); -+ (void)setBoolValue:(BOOL)value forKey:(NSString *)key CLS_DEPRECATED("Please access this method via +sharedInstance"); -+ (void)setFloatValue:(float)value forKey:(NSString *)key CLS_DEPRECATED("Please access this method via +sharedInstance"); - -/** - * This method can be used to record a single exception structure in a report. This is particularly useful - * when your code interacts with non-native languages like Lua, C#, or Javascript. This call can be - * expensive and should only be used shortly before process termination. This API is not intended be to used - * to log NSException objects. All safely-reportable NSExceptions are automatically captured by - * Crashlytics. - * - * @param name The name of the custom exception - * @param reason The reason this exception occured - * @param frameArray An array of CLSStackFrame objects - */ -- (void)recordCustomExceptionName:(NSString *)name reason:(nullable NSString *)reason frameArray:(CLS_GENERIC_NSARRAY(CLSStackFrame *) *)frameArray; - -/** - * - * This allows you to record a non-fatal event, described by an NSError object. These events will be grouped and - * displayed similarly to crashes. Keep in mind that this method can be expensive. Also, the total number of - * NSErrors that can be recorded during your app's life-cycle is limited by a fixed-size circular buffer. If the - * buffer is overrun, the oldest data is dropped. Errors are relayed to Crashlytics on a subsequent launch - * of your application. - * - * You can also use the -recordError:withAdditionalUserInfo: to include additional context not represented - * by the NSError instance itself. - * - **/ -- (void)recordError:(NSError *)error; -- (void)recordError:(NSError *)error withAdditionalUserInfo:(nullable CLS_GENERIC_NSDICTIONARY(NSString *, id) *)userInfo; - -- (void)logEvent:(NSString *)eventName CLS_DEPRECATED("Please refer to Answers +logCustomEventWithName:"); -- (void)logEvent:(NSString *)eventName attributes:(nullable NSDictionary *) attributes CLS_DEPRECATED("Please refer to Answers +logCustomEventWithName:"); -+ (void)logEvent:(NSString *)eventName CLS_DEPRECATED("Please refer to Answers +logCustomEventWithName:"); -+ (void)logEvent:(NSString *)eventName attributes:(nullable NSDictionary *) attributes CLS_DEPRECATED("Please refer to Answers +logCustomEventWithName:"); - -@end - -/** - * - * The CrashlyticsDelegate protocol provides a mechanism for your application to take - * action on events that occur in the Crashlytics crash reporting system. You can make - * use of these calls by assigning an object to the Crashlytics' delegate property directly, - * or through the convenience +startWithAPIKey:delegate: method. - * - */ -@protocol CrashlyticsDelegate -@optional - - -- (void)crashlyticsDidDetectCrashDuringPreviousExecution:(Crashlytics *)crashlytics CLS_DEPRECATED("Please refer to -crashlyticsDidDetectReportForLastExecution:"); -- (void)crashlytics:(Crashlytics *)crashlytics didDetectCrashDuringPreviousExecution:(id )crash CLS_DEPRECATED("Please refer to -crashlyticsDidDetectReportForLastExecution:"); - -/** - * - * Called when a Crashlytics instance has determined that the last execution of the - * application resulted in a saved report. This is called synchronously on Crashlytics - * initialization. Your delegate must invoke the completionHandler, but does not need to do so - * synchronously, or even on the main thread. Invoking completionHandler with NO will cause the - * detected report to be deleted and not submitted to Crashlytics. This is useful for - * implementing permission prompts, or other more-complex forms of logic around submitting crashes. - * - * Instead of using this method, you should try to make use of -crashlyticsDidDetectReportForLastExecution: - * if you can. - * - * @warning Failure to invoke the completionHandler will prevent submissions from being reported. Watch out. - * - * @warning Just implementing this delegate method will disable all forms of synchronous report submission. This can - * impact the reliability of reporting crashes very early in application launch. - * - * @param report The CLSReport object representing the last detected report - * @param completionHandler The completion handler to call when your logic has completed. - * - */ -- (void)crashlyticsDidDetectReportForLastExecution:(CLSReport *)report completionHandler:(void (^)(BOOL submit))completionHandler; - -/** - * - * Called when a Crashlytics instance has determined that the last execution of the - * application resulted in a saved report. This method differs from - * -crashlyticsDidDetectReportForLastExecution:completionHandler: in three important ways: - * - * - it is not called synchronously during initialization - * - it does not give you the ability to prevent the report from being submitted - * - the report object itself is immutable - * - * Thanks to these limitations, making use of this method does not impact reporting - * reliabilty in any way. - * - * @param report The read-only CLSReport object representing the last detected report - * - */ - -- (void)crashlyticsDidDetectReportForLastExecution:(CLSReport *)report; - -/** - * If your app is running on an OS that supports it (OS X 10.9+, iOS 7.0+), Crashlytics will submit - * most reports using out-of-process background networking operations. This results in a significant - * improvement in reliability of reporting, as well as power and performance wins for your users. - * If you don't want this functionality, you can disable by returning NO from this method. - * - * @warning Background submission is not supported for extensions on iOS or OS X. - * - * @param crashlytics The Crashlytics singleton instance - * - * @return Return NO if you don't want out-of-process background network operations. - * - */ -- (BOOL)crashlyticsCanUseBackgroundSessions:(Crashlytics *)crashlytics; - -@end - -/** - * `CrashlyticsKit` can be used as a parameter to `[Fabric with:@[CrashlyticsKit]];` in Objective-C. In Swift, use Crashlytics.sharedInstance() - */ -#define CrashlyticsKit [Crashlytics sharedInstance] - -NS_ASSUME_NONNULL_END diff --git a/Clocker/Frameworks/Crashlytics.framework/Versions/A/Modules/module.modulemap b/Clocker/Frameworks/Crashlytics.framework/Versions/A/Modules/module.modulemap deleted file mode 100644 index da0845e..0000000 --- a/Clocker/Frameworks/Crashlytics.framework/Versions/A/Modules/module.modulemap +++ /dev/null @@ -1,14 +0,0 @@ -framework module Crashlytics { - header "Crashlytics.h" - header "Answers.h" - header "ANSCompatibility.h" - header "CLSLogging.h" - header "CLSReport.h" - header "CLSStackFrame.h" - header "CLSAttributes.h" - - export * - - link "z" - link "c++" -} diff --git a/Clocker/Frameworks/Crashlytics.framework/Versions/A/Resources/Info.plist b/Clocker/Frameworks/Crashlytics.framework/Versions/A/Resources/Info.plist deleted file mode 100644 index 02a2bd3..0000000 --- a/Clocker/Frameworks/Crashlytics.framework/Versions/A/Resources/Info.plist +++ /dev/null @@ -1,53 +0,0 @@ - - - - - BuildMachineOSBuild - 15G31 - CFBundleDevelopmentRegion - English - CFBundleExecutable - Crashlytics - CFBundleIdentifier - com.twitter.crashlytics.mac - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - Crashlytics - CFBundlePackageType - FMWK - CFBundleShortVersionString - 3.8.5 - CFBundleSignature - ???? - CFBundleSupportedPlatforms - - MacOSX - - CFBundleVersion - 123 - DTCompiler - com.apple.compilers.llvm.clang.1_0 - DTPlatformBuild - 8C1002 - DTPlatformVersion - GM - DTSDKBuild - 16C58 - DTSDKName - macosx10.12 - DTXcode - 0821 - DTXcodeBuild - 8C1002 - NSHumanReadableCopyright - Copyright © 2016 Crashlytics, Inc. All rights reserved. - UIDeviceFamily - - 3 - 2 - 1 - 4 - - - diff --git a/Clocker/Frameworks/Crashlytics.framework/Versions/Current b/Clocker/Frameworks/Crashlytics.framework/Versions/Current deleted file mode 120000 index 8c7e5a6..0000000 --- a/Clocker/Frameworks/Crashlytics.framework/Versions/Current +++ /dev/null @@ -1 +0,0 @@ -A \ No newline at end of file diff --git a/Clocker/Frameworks/Crashlytics.framework/run b/Clocker/Frameworks/Crashlytics.framework/run deleted file mode 100755 index 9058ea6..0000000 --- a/Clocker/Frameworks/Crashlytics.framework/run +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/sh - -# run -# -# Copyright (c) 2015 Crashlytics. All rights reserved. - -# Figure out where we're being called from -DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) - -# Quote path in case of spaces or special chars -DIR="\"${DIR}" - -PATH_SEP="/" -VALIDATE_COMMAND="uploadDSYM\" $@ validate run-script" -UPLOAD_COMMAND="uploadDSYM\" $@ run-script" - -# Ensure params are as expected, run in sync mode to validate -eval $DIR$PATH_SEP$VALIDATE_COMMAND -return_code=$? - -if [[ $return_code != 0 ]]; then - exit $return_code -fi - -# Verification passed, upload dSYM in background to prevent Xcode from waiting -# Note: Validation is performed again before upload. -# Output can still be found in Console.app -eval $DIR$PATH_SEP$UPLOAD_COMMAND > /dev/null 2>&1 & diff --git a/Clocker/Frameworks/Crashlytics.framework/submit b/Clocker/Frameworks/Crashlytics.framework/submit deleted file mode 100755 index 18fdb2e..0000000 Binary files a/Clocker/Frameworks/Crashlytics.framework/submit and /dev/null differ diff --git a/Clocker/Frameworks/Crashlytics.framework/uploadDSYM b/Clocker/Frameworks/Crashlytics.framework/uploadDSYM deleted file mode 100755 index 235a9d0..0000000 Binary files a/Clocker/Frameworks/Crashlytics.framework/uploadDSYM and /dev/null differ diff --git a/Clocker/Frameworks/Fabric.framework/Fabric b/Clocker/Frameworks/Fabric.framework/Fabric deleted file mode 120000 index 4df0d3a..0000000 --- a/Clocker/Frameworks/Fabric.framework/Fabric +++ /dev/null @@ -1 +0,0 @@ -Versions/Current/Fabric \ No newline at end of file diff --git a/Clocker/Frameworks/Fabric.framework/Headers b/Clocker/Frameworks/Fabric.framework/Headers deleted file mode 120000 index a177d2a..0000000 --- a/Clocker/Frameworks/Fabric.framework/Headers +++ /dev/null @@ -1 +0,0 @@ -Versions/Current/Headers \ No newline at end of file diff --git a/Clocker/Frameworks/Fabric.framework/Modules b/Clocker/Frameworks/Fabric.framework/Modules deleted file mode 120000 index 5736f31..0000000 --- a/Clocker/Frameworks/Fabric.framework/Modules +++ /dev/null @@ -1 +0,0 @@ -Versions/Current/Modules \ No newline at end of file diff --git a/Clocker/Frameworks/Fabric.framework/Resources b/Clocker/Frameworks/Fabric.framework/Resources deleted file mode 120000 index 953ee36..0000000 --- a/Clocker/Frameworks/Fabric.framework/Resources +++ /dev/null @@ -1 +0,0 @@ -Versions/Current/Resources \ No newline at end of file diff --git a/Clocker/Frameworks/Fabric.framework/Versions/A/Fabric b/Clocker/Frameworks/Fabric.framework/Versions/A/Fabric deleted file mode 100755 index e1b5349..0000000 Binary files a/Clocker/Frameworks/Fabric.framework/Versions/A/Fabric and /dev/null differ diff --git a/Clocker/Frameworks/Fabric.framework/Versions/A/Headers/FABAttributes.h b/Clocker/Frameworks/Fabric.framework/Versions/A/Headers/FABAttributes.h deleted file mode 100644 index f4e0639..0000000 --- a/Clocker/Frameworks/Fabric.framework/Versions/A/Headers/FABAttributes.h +++ /dev/null @@ -1,48 +0,0 @@ -// -// FABAttributes.h -// Fabric -// -// Copyright (c) 2015 Twitter. All rights reserved. -// - -#pragma once - -#define FAB_UNAVAILABLE(x) __attribute__((unavailable(x))) - -#if __has_feature(nullability) - #define fab_nullable nullable - #define fab_nonnull nonnull - #define fab_null_unspecified null_unspecified - #define fab_null_resettable null_resettable - #define __fab_nullable __nullable - #define __fab_nonnull __nonnull - #define __fab_null_unspecified __null_unspecified -#else - #define fab_nullable - #define fab_nonnull - #define fab_null_unspecified - #define fab_null_resettable - #define __fab_nullable - #define __fab_nonnull - #define __fab_null_unspecified -#endif - -#ifndef NS_ASSUME_NONNULL_BEGIN - #define NS_ASSUME_NONNULL_BEGIN -#endif - -#ifndef NS_ASSUME_NONNULL_END - #define NS_ASSUME_NONNULL_END -#endif - - -/** - * The following macros are defined here to provide - * backwards compatability. If you are still using - * them you should migrate to the new versions that - * are defined above. - */ -#define FAB_NONNULL __fab_nonnull -#define FAB_NULLABLE __fab_nullable -#define FAB_START_NONNULL NS_ASSUME_NONNULL_BEGIN -#define FAB_END_NONNULL NS_ASSUME_NONNULL_END diff --git a/Clocker/Frameworks/Fabric.framework/Versions/A/Headers/Fabric.h b/Clocker/Frameworks/Fabric.framework/Versions/A/Headers/Fabric.h deleted file mode 100644 index 47a3d05..0000000 --- a/Clocker/Frameworks/Fabric.framework/Versions/A/Headers/Fabric.h +++ /dev/null @@ -1,64 +0,0 @@ -// -// Fabric.h -// -// Copyright (c) 2015 Twitter. All rights reserved. -// - -#import -#import "FABAttributes.h" - -NS_ASSUME_NONNULL_BEGIN - -#if TARGET_OS_IPHONE -#if __IPHONE_OS_VERSION_MIN_REQUIRED < 60000 - #error "Fabric's minimum iOS version is 6.0" -#endif -#else -#if __MAC_OS_X_VERSION_MIN_REQUIRED < 1070 - #error "Fabric's minimum OS X version is 10.7" -#endif -#endif - -/** - * Fabric Base. Coordinates configuration and starts all provided kits. - */ -@interface Fabric : NSObject - -/** - * Initialize Fabric and all provided kits. Call this method within your App Delegate's `application:didFinishLaunchingWithOptions:` and provide the kits you wish to use. - * - * For example, in Objective-C: - * - * `[Fabric with:@[[Crashlytics class], [Twitter class], [Digits class], [MoPub class]]];` - * - * Swift: - * - * `Fabric.with([Crashlytics.self(), Twitter.self(), Digits.self(), MoPub.self()])` - * - * Only the first call to this method is honored. Subsequent calls are no-ops. - * - * @param kitClasses An array of kit Class objects - * - * @return Returns the shared Fabric instance. In most cases this can be ignored. - */ -+ (instancetype)with:(NSArray *)kitClasses; - -/** - * Returns the Fabric singleton object. - */ -+ (instancetype)sharedSDK; - -/** - * This BOOL enables or disables debug logging, such as kit version information. The default value is NO. - */ -@property (nonatomic, assign) BOOL debug; - -/** - * Unavailable. Use `+sharedSDK` to retrieve the shared Fabric instance. - */ -- (id)init FAB_UNAVAILABLE("Use +sharedSDK to retrieve the shared Fabric instance."); - -@end - -NS_ASSUME_NONNULL_END - diff --git a/Clocker/Frameworks/Fabric.framework/Versions/A/Modules/module.modulemap b/Clocker/Frameworks/Fabric.framework/Versions/A/Modules/module.modulemap deleted file mode 100644 index 2a31223..0000000 --- a/Clocker/Frameworks/Fabric.framework/Versions/A/Modules/module.modulemap +++ /dev/null @@ -1,6 +0,0 @@ -framework module Fabric { - umbrella header "Fabric.h" - - export * - module * { export * } -} \ No newline at end of file diff --git a/Clocker/Frameworks/Fabric.framework/Versions/A/Resources/Info.plist b/Clocker/Frameworks/Fabric.framework/Versions/A/Resources/Info.plist deleted file mode 100644 index 9d1e8e7..0000000 --- a/Clocker/Frameworks/Fabric.framework/Versions/A/Resources/Info.plist +++ /dev/null @@ -1,51 +0,0 @@ - - - - - BuildMachineOSBuild - 14F1021 - CFBundleDevelopmentRegion - en - CFBundleExecutable - Fabric - CFBundleIdentifier - io.fabric.sdk.mac - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - Fabric - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.6.1 - CFBundleSignature - ???? - CFBundleSupportedPlatforms - - MacOSX - - CFBundleVersion - 37 - DTCompiler - com.apple.compilers.llvm.clang.1_0 - DTPlatformBuild - 7B91b - DTPlatformVersion - GM - DTSDKBuild - 15A278 - DTSDKName - macosx10.11 - DTXcode - 0710 - DTXcodeBuild - 7B91b - NSHumanReadableCopyright - Copyright © 2015 Twitter. All rights reserved. - UIDeviceFamily - - 1 - 2 - - - diff --git a/Clocker/Frameworks/Fabric.framework/Versions/Current b/Clocker/Frameworks/Fabric.framework/Versions/Current deleted file mode 120000 index 8c7e5a6..0000000 --- a/Clocker/Frameworks/Fabric.framework/Versions/Current +++ /dev/null @@ -1 +0,0 @@ -A \ No newline at end of file diff --git a/Clocker/Frameworks/Fabric.framework/run b/Clocker/Frameworks/Fabric.framework/run deleted file mode 100755 index f4c5732..0000000 --- a/Clocker/Frameworks/Fabric.framework/run +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/sh - -# run -# -# Copyright (c) 2015 Crashlytics. All rights reserved. - -# Figure out where we're being called from -DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) - -# Quote path in case of spaces or special chars -DIR="\"${DIR}" - -PATH_SEP="/" -VALIDATE_COMMAND="uploadDSYM\" $@ validate" -UPLOAD_COMMAND="uploadDSYM\" $@" - -# Ensure params are as expected, run in sync mode to validate -eval $DIR$PATH_SEP$VALIDATE_COMMAND -return_code=$? - -if [[ $return_code != 0 ]]; then - exit $return_code -fi - -# Verification passed, upload dSYM in background to prevent Xcode from waiting -# Note: Validation is performed again before upload. -# Output can still be found in Console.app -eval $DIR$PATH_SEP$UPLOAD_COMMAND > /dev/null 2>&1 & diff --git a/Clocker/Frameworks/Fabric.framework/uploadDSYM b/Clocker/Frameworks/Fabric.framework/uploadDSYM deleted file mode 100755 index 699eefb..0000000 Binary files a/Clocker/Frameworks/Fabric.framework/uploadDSYM and /dev/null differ diff --git a/Clocker/Frameworks/Firebase.framework/Firebase b/Clocker/Frameworks/Firebase.framework/Firebase deleted file mode 120000 index 83b5a9e..0000000 --- a/Clocker/Frameworks/Firebase.framework/Firebase +++ /dev/null @@ -1 +0,0 @@ -Versions/Current/Firebase \ No newline at end of file diff --git a/Clocker/Frameworks/Firebase.framework/Headers b/Clocker/Frameworks/Firebase.framework/Headers deleted file mode 120000 index a177d2a..0000000 --- a/Clocker/Frameworks/Firebase.framework/Headers +++ /dev/null @@ -1 +0,0 @@ -Versions/Current/Headers \ No newline at end of file diff --git a/Clocker/Frameworks/Firebase.framework/Modules b/Clocker/Frameworks/Firebase.framework/Modules deleted file mode 120000 index 5736f31..0000000 --- a/Clocker/Frameworks/Firebase.framework/Modules +++ /dev/null @@ -1 +0,0 @@ -Versions/Current/Modules \ No newline at end of file diff --git a/Clocker/Frameworks/Firebase.framework/NOTICE b/Clocker/Frameworks/Firebase.framework/NOTICE deleted file mode 100644 index 410cbd6..0000000 --- a/Clocker/Frameworks/Firebase.framework/NOTICE +++ /dev/null @@ -1,47 +0,0 @@ -Google LevelDB -Copyright (c) 2011 The LevelDB Authors. 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. - --- - -Square Socket Rocket -Copyright 2012 Square 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. - --- - -APLevelDB -Created by Adam Preble on 1/23/12. -Copyright (c) 2012 Adam Preble. All rights reserved. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/Clocker/Frameworks/Firebase.framework/Versions/A/Firebase b/Clocker/Frameworks/Firebase.framework/Versions/A/Firebase deleted file mode 100644 index d80fd47..0000000 Binary files a/Clocker/Frameworks/Firebase.framework/Versions/A/Firebase and /dev/null differ diff --git a/Clocker/Frameworks/Firebase.framework/Versions/A/Headers/FAuthData.h b/Clocker/Frameworks/Firebase.framework/Versions/A/Headers/FAuthData.h deleted file mode 100644 index 0ef1d85..0000000 --- a/Clocker/Frameworks/Firebase.framework/Versions/A/Headers/FAuthData.h +++ /dev/null @@ -1,54 +0,0 @@ -// -// FAuthData.h -// Firebase -// -// Created by Katherine Fang on 7/30/14. -// - -#import "FAuthType.h" - - -/** -* The FAuthData class is a wrapper around the user metadata returned from the Firebase auth server. -* It includes the provider authenticated against, a uid (with the possible exception of authenticating against a custom -* backend), and a token used to authenticate with Firebase. -* -* It may include other metadata about the user, depending on the provider used to do the authentication. -*/ -@interface FAuthData : NSObject - -/** -* @return Raw authentication token payload returned by the server -*/ -@property (nonatomic, strong, readonly) NSDictionary *auth; - -/** - * @return Authentication token expiration timestamp (seconds since epoch) returned by the server - */ -@property (nonatomic, strong, readonly) NSNumber *expires; - -/** -* @return A uid for this user. It is unique across all auth providers. -*/ -@property (nonatomic, strong, readonly) NSString *uid; - - -/** -* @return The provider that authenticated this user -*/ -@property (nonatomic, readonly) NSString *provider; - - -/** -* @return The token that was used to authenticate this user with Firebase -*/ -@property (nonatomic, strong, readonly) NSString *token; - - -/** -* @return Provider data keyed by provider. Includes cached data from third-party providers -*/ -@property (nonatomic, strong, readonly) NSDictionary *providerData; - - -@end diff --git a/Clocker/Frameworks/Firebase.framework/Versions/A/Headers/FAuthType.h b/Clocker/Frameworks/Firebase.framework/Versions/A/Headers/FAuthType.h deleted file mode 100644 index 0f772b1..0000000 --- a/Clocker/Frameworks/Firebase.framework/Versions/A/Headers/FAuthType.h +++ /dev/null @@ -1,41 +0,0 @@ -// -// FAuthType.h -// Firebase -// -// Created by Katherine Fang on 7/30/14. -// -// All public-facing auth enums. -// - -#ifndef Firebase_FAuthenticationTypes_h -#define Firebase_FAuthenticationTypes_h - -typedef NS_ENUM(NSInteger, FAuthenticationError) { - // Developer / Config Errors - FAuthenticationErrorProviderDisabled = -1, - FAuthenticationErrorInvalidConfiguration = -2, - FAuthenticationErrorInvalidOrigin = -3, - FAuthenticationErrorInvalidProvider = -4, - - // User Errors (Email / Password) - FAuthenticationErrorInvalidEmail = -5, - FAuthenticationErrorInvalidPassword = -6, - FAuthenticationErrorInvalidToken = -7, - FAuthenticationErrorUserDoesNotExist = -8, - FAuthenticationErrorEmailTaken = -9, - - // User Errors (Facebook / Twitter / Github / Google) - FAuthenticationErrorDeniedByUser = -10, - FAuthenticationErrorInvalidCredentials = -11, - FAuthenticationErrorInvalidArguments = -12, - FAuthenticationErrorProviderError = -13, - FAuthenticationErrorLimitsExceeded = -14, - - // Client side errors - FAuthenticationErrorNetworkError = -15, - FAuthenticationErrorPreempted = -16, - - FAuthenticationErrorUnknown = -9999 -}; - -#endif \ No newline at end of file diff --git a/Clocker/Frameworks/Firebase.framework/Versions/A/Headers/FConfig.h b/Clocker/Frameworks/Firebase.framework/Versions/A/Headers/FConfig.h deleted file mode 100644 index dcfdefa..0000000 --- a/Clocker/Frameworks/Firebase.framework/Versions/A/Headers/FConfig.h +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Firebase iOS Client Library - * - * Copyright © 2015 Firebase - All Rights Reserved - * https://www.firebase.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * - * 2. Redistributions in binaryform 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. - * - * THIS SOFTWARE IS PROVIDED BY FIREBASE 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 FIREBASE 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 - -/** - * Configuration object for Firebase. You can get the default FConfig object via - * `[Firebase defaultConfig]` and modify it. You must make all changes to it before - * you create your first Firebase instance. - */ -@interface FConfig : NSObject - -/** - * By default the Firebase client will keep data in memory while your application is running, but not - * when it is restarted. By setting this value to YES, the data will be persisted to on-device (disk) - * storage and will thus be available again when the app is restarted (even when there is no network - * connectivity at that time). Note that this property must be set before creating your first Firebase - * reference and only needs to be called once per application. - * - * If your app uses Firebase Authentication, the client will automatically persist the user's authentication - * token across restarts, even without persistence enabled. But if the auth token expired while offline and - * you've enabled persistence, the client will pause write operations until you successfully re-authenticate - * (or explicitly unauthenticate) to prevent your writes from being sent unauthenticated and failing due to - * security rules. - */ -@property (nonatomic) BOOL persistenceEnabled; - -/** - * By default Firebase will use up to 10MB of disk space to cache data. If the cache grows beyond this size, - * Firebase will start removing data that hasn't been recently used. If you find that your application caches too - * little or too much data, call this method to change the cache size. This property must be set before creating - * your first Firebase reference and only needs to be called once per application. - * - * Note that the specified cache size is only an approximation and the size on disk may temporarily exceed it - * at times. - */ -@property (nonatomic) NSUInteger persistenceCacheSizeBytes; - -/** - * Sets the dispatch queue on which all events are raised. The default queue is the main queue. - */ -@property (nonatomic, strong) dispatch_queue_t callbackQueue; - -@end diff --git a/Clocker/Frameworks/Firebase.framework/Versions/A/Headers/FDataSnapshot.h b/Clocker/Frameworks/Firebase.framework/Versions/A/Headers/FDataSnapshot.h deleted file mode 100644 index 9d05e63..0000000 --- a/Clocker/Frameworks/Firebase.framework/Versions/A/Headers/FDataSnapshot.h +++ /dev/null @@ -1,154 +0,0 @@ -/* - * Firebase iOS Client Library - * - * Copyright © 2013 Firebase - All Rights Reserved - * https://www.firebase.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * - * 2. Redistributions in binaryform 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. - * - * THIS SOFTWARE IS PROVIDED BY FIREBASE 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 FIREBASE 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 Firebase; - -/** - * An FDataSnapshot contains data from a Firebase location. Any time you read - * Firebase data, you receive the data as an FDataSnapshot. - * - * FDataSnapshots are passed to the blocks you attach with observeEventType:withBlock: or observeSingleEvent:withBlock:. - * They are efficiently-generated immutable copies of the data at a Firebase location. - * They can't be modified and will never change. To modify data at a location, - * use a Firebase reference (e.g. with setValue:). - */ -@interface FDataSnapshot : NSObject - - -/** @name Navigating and inspecting a snapshot */ - -/** - * Get an FDataSnapshot for the location at the specified relative path. - * The relative path can either be a simple child key (e.g. 'fred') - * or a deeper slash-separated path (e.g. 'fred/name/first'). If the child - * location has no data, an empty FDataSnapshot is returned. - * - * @param childPathString A relative path to the location of child data. - * @return The FDataSnapshot for the child location. - */ -- (FDataSnapshot *) childSnapshotForPath:(NSString *)childPathString; - - -/** - * Return YES if the specified child exists. - * - * @param childPathString A relative path to the location of a potential child. - * @return YES if data exists at the specified childPathString, else false. - */ -- (BOOL) hasChild:(NSString *)childPathString; - - -/** - * Return YES if the DataSnapshot has any children. - * - * @return YES if this snapshot has any children, else NO. - */ -@property (NS_NONATOMIC_IOSONLY, readonly) BOOL hasChildren; - - -/** - * Return YES if the DataSnapshot contains a non-null value. - * - * @return YES if this snapshot contains a non-null value, otherwise NO. - */ -@property (NS_NONATOMIC_IOSONLY, readonly) BOOL exists; - - -/** @name Data export */ - -/** - * Returns the raw value at this location, coupled with any metadata, such as priority. - * - * Priorities, where they exist, are accessible under the ".priority" key in instances of NSDictionary. - * For leaf locations with priorities, the value will be under the ".value" key. - */ -@property (NS_NONATOMIC_IOSONLY, readonly, strong) id valueInExportFormat; - - -/** @name Properties */ - -/** - * Returns the contents of this data snapshot as native types. - * - * Data types returned: - * * NSDictionary - * * NSArray - * * NSNumber (also includes booleans) - * * NSString - * - * @return The data as a native object. - */ -@property (strong, readonly, nonatomic) id value; - - -/** - * Get the number of children for this DataSnapshot. - * - * @return An integer indicating the number of children. - */ -@property (readonly, nonatomic) NSUInteger childrenCount; - - -/** - * Get a Firebase reference for the location that this data came from - * - * @return A Firebase instance for the location of this data - */ -@property (nonatomic, readonly, strong) Firebase* ref; - - -/** - * The key of the location that generated this FDataSnapshot. - * - * @return An NSString containing the key for the location of this FDataSnapshot. - */ -@property (strong, readonly, nonatomic) NSString* key; - - -/** - * An iterator for snapshots of the child nodes in this snapshot. - * You can use the native for..in syntax: - * - * for (FDataSnapshot* child in snapshot.children) { - * ... - * } - * - * @return An NSEnumerator of the children - */ -@property (strong, readonly, nonatomic) NSEnumerator* children; - -/** - * The priority of the data in this FDataSnapshot. - * - * @return The priority as a string, or nil if no priority was set. - */ -@property (strong, readonly, nonatomic) id priority; - -@end diff --git a/Clocker/Frameworks/Firebase.framework/Versions/A/Headers/FEventType.h b/Clocker/Frameworks/Firebase.framework/Versions/A/Headers/FEventType.h deleted file mode 100644 index 6d672bd..0000000 --- a/Clocker/Frameworks/Firebase.framework/Versions/A/Headers/FEventType.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Firebase iOS Client Library - * - * Copyright © 2013 Firebase - All Rights Reserved - * https://www.firebase.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * - * 2. Redistributions in binaryform 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. - * - * THIS SOFTWARE IS PROVIDED BY FIREBASE 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 FIREBASE 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. - */ - -#ifndef Firebase_FEventType_h -#define Firebase_FEventType_h - -/** - * This enum is the set of events that you can observe at a Firebase location. - */ -typedef NS_ENUM(NSInteger, FEventType) { - FEventTypeChildAdded, // 0, fired when a new child node is added to a location - FEventTypeChildRemoved, // 1, fired when a child node is removed from a location - FEventTypeChildChanged, // 2, fired when a child node at a location changes - FEventTypeChildMoved, // 3, fired when a child node moves relative to the other child nodes at a location - FEventTypeValue // 4, fired when any data changes at a location and, recursively, any children -}; - -#endif diff --git a/Clocker/Frameworks/Firebase.framework/Versions/A/Headers/FMutableData.h b/Clocker/Frameworks/Firebase.framework/Versions/A/Headers/FMutableData.h deleted file mode 100644 index fedf26f..0000000 --- a/Clocker/Frameworks/Firebase.framework/Versions/A/Headers/FMutableData.h +++ /dev/null @@ -1,143 +0,0 @@ -/* - * Firebase iOS Client Library - * - * Copyright © 2013 Firebase - All Rights Reserved - * https://www.firebase.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * - * 2. Redistributions in binaryform 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. - * - * THIS SOFTWARE IS PROVIDED BY FIREBASE 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 FIREBASE 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 - -/** - * An FMutableData instance is populated with data from a Firebase location. - * When you are using runTransactionBlock:, you will be given an instance containing the current - * data at that location. Your block will be responsible for updating that instance to the data - * you wish to save at that location, and then returning using [FTransactionResult successWithValue:]. - * - * To modify the data, set its value property to any of the native types support by Firebase: - * * NSNumber (includes BOOL) - * * NSDictionary - * * NSArray - * * NSString - * * nil / NSNull to remove the data - * - * Note that changes made to a child FMutableData instance will be visible to the parent. - */ -@interface FMutableData : NSObject - - -/** @name Inspecting and navigating the data */ - - -/** - * Returns boolean indicating whether this mutable data has children. - * - * @return YES if this data contains child nodes. - */ -@property (NS_NONATOMIC_IOSONLY, readonly) BOOL hasChildren; - - -/** - * Indicates whether this mutable data has a child at the given path. - * - * @param path A path string, consisting either of a single segment, like 'child', or multiple segments, 'a/deeper/child' - * @return YES if this data contains a child at the specified relative path - */ -- (BOOL) hasChildAtPath:(NSString *)path; - - -/** - * Used to obtain an FMutableData instance that encapsulates the data at the given relative path. - * Note that changes made to the child will be visible to the parent. - * - * @param path A path string, consisting either of a single segment, like 'child', or multiple segments, 'a/deeper/child' - * @return An FMutableData instance containing the data at the given path - */ -- (FMutableData *) childDataByAppendingPath:(NSString *)path; - - -/** @name Properties */ - - -/** - * This method is deprecated. - * - * @return An FMutableData instance containing the data at the parent location, or nil if this is the top-most location - */ -@property (strong, readonly, nonatomic) FMutableData* parent __attribute__((deprecated("Deprecated. Do not use.")));; - - -/** - * To modify the data contained by this instance of FMutableData, set this to any of the native types support by Firebase: - * - * * NSNumber (includes BOOL) - * * NSDictionary - * * NSArray - * * NSString - * * nil / NSNull to remove the data - * - * Note that setting the value will override the priority at this location. - * - * @return The current data at this location as a native object - */ -@property (strong, nonatomic) id value; - - -/** - * Set this property to update the priority of the data at this location. Can be set to the following types: - * - * * NSNumber - * * NSString - * * nil / NSNull to remove the priority - * - * @return The priority of the data at this location - */ -@property (strong, nonatomic) id priority; - - -/** - * @return The number of child nodes at this location - */ -@property (readonly, nonatomic) NSUInteger childrenCount; - - -/** - * Used to iterate over the children at this location. You can use the native for .. in syntax: - * - * for (FMutableData* child in data.children) { - * ... - * } - * - * Note that this enumerator operates on an immutable copy of the child list. So, you can modify the instance - * during iteration, but the new additions will not be visible until you get a new enumerator. - */ -@property (readonly, nonatomic, strong) NSEnumerator* children; - - -/** - * @return The key name of this node, or nil if it is the top-most location - */ -@property (readonly, nonatomic, strong) NSString* key; - - -@end diff --git a/Clocker/Frameworks/Firebase.framework/Versions/A/Headers/FQuery.h b/Clocker/Frameworks/Firebase.framework/Versions/A/Headers/FQuery.h deleted file mode 100644 index 6db2944..0000000 --- a/Clocker/Frameworks/Firebase.framework/Versions/A/Headers/FQuery.h +++ /dev/null @@ -1,412 +0,0 @@ -/* - * Firebase iOS Client Library - * - * Copyright © 2013 Firebase - All Rights Reserved - * https://www.firebase.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * - * 2. Redistributions in binaryform 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. - * - * THIS SOFTWARE IS PROVIDED BY FIREBASE 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 FIREBASE 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 "FEventType.h" -#import "FDataSnapshot.h" - -typedef NSUInteger FirebaseHandle; - -/** - * An FQuery instance represents a query over the data at a particular location. - * - * You create one by calling one of the query methods (queryStartingAtPriority:, queryEndingAtPriority:, etc.) - * on a Firebase reference. The query methods can be chained to further specify the data you are interested in - * observing - */ -@interface FQuery : NSObject - - -/** @name Attaching observers to read data */ - -/** - * observeEventType:withBlock: is used to listen for data changes at a particular location. - * This is the primary way to read data from Firebase. Your block will be triggered - * for the initial data and again whenever the data changes. - * - * Use removeObserverWithHandle: to stop receiving updates. - * @param eventType The type of event to listen for. - * @param block The block that should be called with initial data and updates. It is passed the data as an FDataSnapshot. - * @return A handle used to unregister this block later using removeObserverWithHandle: - */ -- (FirebaseHandle) observeEventType:(FEventType)eventType withBlock:(void (^)(FDataSnapshot* snapshot))block; - - -/** - * observeEventType:andPreviousSiblingKeyWithBlock: is used to listen for data changes at a particular location. - * This is the primary way to read data from Firebase. Your block will be triggered - * for the initial data and again whenever the data changes. In addition, for FEventTypeChildAdded, FEventTypeChildMoved, and - * FEventTypeChildChanged events, your block will be passed the key of the previous node by priority order. - * - * Use removeObserverWithHandle: to stop receiving updates. - * - * @param eventType The type of event to listen for. - * @param block The block that should be called with initial data and updates. It is passed the data as an FDataSnapshot - * and the previous child's key. - * @return A handle used to unregister this block later using removeObserverWithHandle: - */ -- (FirebaseHandle) observeEventType:(FEventType)eventType andPreviousSiblingKeyWithBlock:(void (^)(FDataSnapshot* snapshot, NSString* prevKey))block; - - -/** - * observeEventType:withBlock: is used to listen for data changes at a particular location. - * This is the primary way to read data from Firebase. Your block will be triggered - * for the initial data and again whenever the data changes. - * - * The cancelBlock will be called if you will no longer receive new events due to no longer having permission. - * - * Use removeObserverWithHandle: to stop receiving updates. - * - * @param eventType The type of event to listen for. - * @param block The block that should be called with initial data and updates. It is passed the data as an FDataSnapshot. - * @param cancelBlock The block that should be called if this client no longer has permission to receive these events - * @return A handle used to unregister this block later using removeObserverWithHandle: - */ -- (FirebaseHandle) observeEventType:(FEventType)eventType withBlock:(void (^)(FDataSnapshot* snapshot))block withCancelBlock:(void (^)(NSError* error))cancelBlock; - - -/** - * observeEventType:andPreviousSiblingKeyWithBlock: is used to listen for data changes at a particular location. - * This is the primary way to read data from Firebase. Your block will be triggered - * for the initial data and again whenever the data changes. In addition, for FEventTypeChildAdded, FEventTypeChildMoved, and - * FEventTypeChildChanged events, your block will be passed the key of the previous node by priority order. - * - * The cancelBlock will be called if you will no longer receive new events due to no longer having permission. - * - * Use removeObserverWithHandle: to stop receiving updates. - * - * @param eventType The type of event to listen for. - * @param block The block that should be called with initial data and updates. It is passed the data as an FDataSnapshot - * and the previous child's key. - * @param cancelBlock The block that should be called if this client no longer has permission to receive these events - * @return A handle used to unregister this block later using removeObserverWithHandle: - */ -- (FirebaseHandle) observeEventType:(FEventType)eventType andPreviousSiblingKeyWithBlock:(void (^)(FDataSnapshot* snapshot, NSString* prevKey))block withCancelBlock:(void (^)(NSError* error))cancelBlock; - - -/** - * This is equivalent to observeEventType:withBlock:, except the block is immediately canceled after the initial data is returned. - * - * @param eventType The type of event to listen for. - * @param block The block that should be called. It is passed the data as an FDataSnapshot. - */ -- (void) observeSingleEventOfType:(FEventType)eventType withBlock:(void (^)(FDataSnapshot* snapshot))block; - - -/** - * This is equivalent to observeEventType:withBlock:, except the block is immediately canceled after the initial data is returned. In addition, for FEventTypeChildAdded, FEventTypeChildMoved, and - * FEventTypeChildChanged events, your block will be passed the key of the previous node by priority order. - * - * @param eventType The type of event to listen for. - * @param block The block that should be called. It is passed the data as an FDataSnapshot and the previous child's key. - */ -- (void) observeSingleEventOfType:(FEventType)eventType andPreviousSiblingKeyWithBlock:(void (^)(FDataSnapshot* snapshot, NSString* prevKey))block; - - -/** - * This is equivalent to observeEventType:withBlock:, except the block is immediately canceled after the initial data is returned. - * - * The cancelBlock will be called if you do not have permission to read data at this location. - * - * @param eventType The type of event to listen for. - * @param block The block that should be called. It is passed the data as an FDataSnapshot. - * @param cancelBlock The block that will be called if you don't have permission to access this data - */ -- (void) observeSingleEventOfType:(FEventType)eventType withBlock:(void (^)(FDataSnapshot* snapshot))block withCancelBlock:(void (^)(NSError* error))cancelBlock; - - -/** - * This is equivalent to observeEventType:withBlock:, except the block is immediately canceled after the initial data is returned. In addition, for FEventTypeChildAdded, FEventTypeChildMoved, and - * FEventTypeChildChanged events, your block will be passed the key of the previous node by priority order. - * - * The cancelBlock will be called if you do not have permission to read data at this location. - * - * @param eventType The type of event to listen for. - * @param block The block that should be called. It is passed the data as an FDataSnapshot and the previous child's key. - * @param cancelBlock The block that will be called if you don't have permission to access this data - */ -- (void) observeSingleEventOfType:(FEventType)eventType andPreviousSiblingKeyWithBlock:(void (^)(FDataSnapshot* snapshot, NSString* prevKey))block withCancelBlock:(void (^)(NSError* error))cancelBlock; - -/** @name Detaching observers */ - -/** - * Detach a block previously attached with observeEventType:withBlock:. - * - * @param handle The handle returned by the call to observeEventType:withBlock: which we are trying to remove. - */ -- (void) removeObserverWithHandle:(FirebaseHandle)handle; - - -/** - * Detach all blocks previously attached to this Firebase location with observeEventType:withBlock: - */ -- (void) removeAllObservers; - -/** - * By calling `keepSynced:YES` on a location, the data for that location will automatically be downloaded and - * kept in sync, even when no listeners are attached for that location. Additionally, while a location is kept - * synced, it will not be evicted from the persistent disk cache. - * - * @param keepSynced Pass YES to keep this location synchronized, pass NO to stop synchronization. -*/ - - (void) keepSynced:(BOOL)keepSynced; - - -/** @name Querying and limiting */ - - -/** -* This method is deprecated in favor of using queryStartingAtValue:. This can be used with queryOrderedByPriority -* to query by priority. -* - * queryStartingAtPriority: is used to generate a reference to a limited view of the data at this location. - * The FQuery instance returned by queryStartingAtPriority: will respond to events at nodes with a priority - * greater than or equal to startPriority - * - * @param startPriority The lower bound, inclusive, for the priority of data visible to the returned FQuery - * @return An FQuery instance, limited to data with priority greater than or equal to startPriority - */ -- (FQuery *) queryStartingAtPriority:(id)startPriority __attribute__((deprecated("Use [[FQuery queryOrderedByPriority] queryStartingAtValue:] instead"))); - - -/** -* This method is deprecated in favor of using queryStartingAtValue:childKey:. This can be used with queryOrderedByPriority -* to query by priority. -* - * queryStartingAtPriority:andChildName: is used to generate a reference to a limited view of the data at this location. - * The FQuery instance returned by queryStartingAtPriority:andChildName will respond to events at nodes with a priority - * greater than startPriority, or equal to startPriority and with a name greater than or equal to childName - * - * @param startPriority The lower bound, inclusive, for the priority of data visible to the returned FQuery - * @param childName The lower bound, inclusive, for the name of nodes with priority equal to startPriority - * @return An FQuery instance, limited to data with priority greater than or equal to startPriority - */ -- (FQuery *) queryStartingAtPriority:(id)startPriority andChildName:(NSString *)childName __attribute__((deprecated("Use [[FQuery queryOrderedByPriority] queryStartingAtValue:childKey:] instead"))); - -/** -* This method is deprecated in favor of using queryEndingAtValue:. This can be used with queryOrderedByPriority -* to query by priority. -* - * queryEndingAtPriority: is used to generate a reference to a limited view of the data at this location. - * The FQuery instance returned by queryEndingAtPriority: will respond to events at nodes with a priority - * less than or equal to startPriority and with a name greater than or equal to childName - * - * @param endPriority The upper bound, inclusive, for the priority of data visible to the returned FQuery - * @return An FQuery instance, limited to data with priority less than or equal to endPriority - */ -- (FQuery *) queryEndingAtPriority:(id)endPriority __attribute__((deprecated("Use [[FQuery queryOrderedByPriority] queryEndingAtValue:] instead"))); - - -/** -* This method is deprecated in favor of using queryEndingAtValue:childKey:. This can be used with queryOrderedByPriority -* to query by priority. -* - * queryEndingAtPriority:andChildName: is used to generate a reference to a limited view of the data at this location. - * The FQuery instance returned by queryEndingAtPriority:andChildName will respond to events at nodes with a priority - * less than endPriority, or equal to endPriority and with a name less than or equal to childName - * - * @param endPriority The upper bound, inclusive, for the priority of data visible to the returned FQuery - * @param childName The upper bound, inclusive, for the name of nodes with priority equal to endPriority - * @return An FQuery instance, limited to data with priority less than endPriority or equal to endPriority and with a name less than or equal to childName - */ -- (FQuery *) queryEndingAtPriority:(id)endPriority andChildName:(NSString *)childName __attribute__((deprecated("Use [[FQuery queryOrderedByPriority] queryEndingAtValue:childKey:] instead"))); - - -/** -* This method is deprecated in favor of using queryEqualToValue:. This can be used with queryOrderedByPriority -* to query by priority. -* -* queryEqualToPriority: is used to generate a reference to a limited view of the data at this location. -* The FQuery instance returned by queryEqualToPriority: will respond to events at nodes with a priority equal to -* supplied argument. -* -* @param priority The priority that the data returned by this FQuery will have -* @return An Fquery instance, limited to data with the supplied priority. -*/ -- (FQuery *) queryEqualToPriority:(id)priority __attribute__((deprecated("Use [[FQuery queryOrderedByPriority] queryEqualToValue:] instead"))); - - -/** -* This method is deprecated in favor of using queryEqualAtValue:childKey:. This can be used with queryOrderedByPriority -* to query by priority. -* -* queryEqualToPriority:andChildName: is used to generate a reference to a limited view of the data at this location. -* The FQuery instance returned by queryEqualToPriority:andChildName will respond to events at nodes with a priority -* equal to the supplied argument with a name equal to childName. There will be at most one node that matches because -* child names are unique. -* -* @param priority The priority that the data returned by this FQuery will have -* @param childName The name of nodes with the right priority -* @return An FQuery instance, limited to data with the supplied priority and the name. -*/ -- (FQuery *) queryEqualToPriority:(id)priority andChildName:(NSString *)childName __attribute__((deprecated("Use [[FQuery queryOrderedByPriority] queryEqualToValue:childKey:] instead"))); - -/** - * This method is deprecated in favor of using queryLimitedToFirst:limit or queryLimitedToLast:limit instead. - * - * queryLimitedToNumberOfChildren: is used to generate a reference to a limited view of the data at this location. - * The FQuery instance returned by queryLimitedToNumberOfChildren: will respond to events from at most limit child nodes. - * - * @param limit The upper bound, inclusive, for the number of child nodes to receive events for - * @return An FQuery instance, limited to at most limit child nodes. - */ -- (FQuery *) queryLimitedToNumberOfChildren:(NSUInteger)limit __attribute__((deprecated("Use [FQuery queryLimitedToFirst:limit] or [FQuery queryLimitedToLast:limit] instead"))); - - -/** -* queryLimitedToFirst: is used to generate a reference to a limited view of the data at this location. -* The FQuery instance returned by queryLimitedToFirst: will respond to at most the first limit child nodes. -* -* @param limit The upper bound, inclusive, for the number of child nodes to receive events for -* @return An FQuery instance, limited to at most limit child nodes. -*/ -- (FQuery *) queryLimitedToFirst:(NSUInteger)limit; - - -/** -* queryLimitedToLast: is used to generate a reference to a limited view of the data at this location. -* The FQuery instance returned by queryLimitedToLast: will respond to at most the last limit child nodes. -* -* @param limit The upper bound, inclusive, for the number of child nodes to receive events for -* @return An FQuery instance, limited to at most limit child nodes. -*/ -- (FQuery *) queryLimitedToLast:(NSUInteger)limit; - -/** -* queryOrderBy: is used to generate a reference to a view of the data that's been sorted by the values of -* a particular child key. This method is intended to be used in combination with queryStartingAtValue:, -* queryEndingAtValue:, or queryEqualToValue:. -* - * @param key The child key to use in ordering data visible to the returned FQuery - * @return An FQuery instance, ordered by the values of the specified child key. -*/ -- (FQuery *) queryOrderedByChild:(NSString *)key; - -/** - * queryOrderedByKey: is used to generate a reference to a view of the data that's been sorted by child key. - * This method is intended to be used in combination with queryStartingAtValue:, queryEndingAtValue:, - * or queryEqualToValue:. - * - * @return An FQuery instance, ordered by child keys. - */ -@property (NS_NONATOMIC_IOSONLY, readonly, strong) FQuery *queryOrderedByKey; - -/** - * queryOrderedByValue: is used to generate a reference to a view of the data that's been sorted by child value. - * This method is intended to be used in combination with queryStartingAtValue:, queryEndingAtValue:, - * or queryEqualToValue:. - * - * @return An FQuery instance, ordered by child value. - */ -@property (NS_NONATOMIC_IOSONLY, readonly, strong) FQuery *queryOrderedByValue; - -/** - * queryOrderedByPriority: is used to generate a reference to a view of the data that's been sorted by child - * priority. This method is intended to be used in combination with queryStartingAtValue:, queryEndingAtValue:, - * or queryEqualToValue:. - * - * @return An FQuery instance, ordered by child priorities. - */ -@property (NS_NONATOMIC_IOSONLY, readonly, strong) FQuery *queryOrderedByPriority; - -/** - * queryStartingAtValue: is used to generate a reference to a limited view of the data at this location. - * The FQuery instance returned by queryStartingAtValue: will respond to events at nodes with a value - * greater than or equal to startValue. - * - * @param startValue The lower bound, inclusive, for the value of data visible to the returned FQuery - * @return An FQuery instance, limited to data with value greater than or equal to startValue - */ -- (FQuery *) queryStartingAtValue:(id)startValue; - -/** - * queryStartingAtValue:childKey: is used to generate a reference to a limited view of the data at this location. - * The FQuery instance returned by queryStartingAtValue:childKey will respond to events at nodes with a value - * greater than startValue, or equal to startValue and with a key greater than or equal to childKey. - * - * @param startValue The lower bound, inclusive, for the value of data visible to the returned FQuery - * @param childKey The lower bound, inclusive, for the key of nodes with value equal to startValue - * @return An FQuery instance, limited to data with value greater than or equal to startValue - */ -- (FQuery *) queryStartingAtValue:(id)startValue childKey:(NSString *)childKey; - -/** - * queryEndingAtValue: is used to generate a reference to a limited view of the data at this location. - * The FQuery instance returned by queryEndingAtValue: will respond to events at nodes with a value - * less than or equal to endValue. - * - * @param endValue The upper bound, inclusive, for the value of data visible to the returned FQuery - * @return An FQuery instance, limited to data with value less than or equal to endValue - */ -- (FQuery *) queryEndingAtValue:(id)endValue; - -/** - * queryEndingAtValue:childKey: is used to generate a reference to a limited view of the data at this location. - * The FQuery instance returned by queryEndingAtValue:childKey will respond to events at nodes with a value - * less than endValue, or equal to endValue and with a key less than or equal to childKey. - * - * @param endValue The upper bound, inclusive, for the value of data visible to the returned FQuery - * @param childKey The upper bound, inclusive, for the key of nodes with value equal to endValue - * @return An FQuery instance, limited to data with value less than or equal to endValue - */ -- (FQuery *) queryEndingAtValue:(id)endValue childKey:(NSString *)childKey; - -/** - * queryEqualToValue: is used to generate a reference to a limited view of the data at this location. - * The FQuery instance returned by queryEqualToValue: will respond to events at nodes with a value equal - * to the supplied argument. - * - * @param value The value that the data returned by this FQuery will have - * @return An Fquery instance, limited to data with the supplied value. - */ -- (FQuery *) queryEqualToValue:(id)value; - -/** - * queryEqualToValue:childKey: is used to generate a reference to a limited view of the data at this location. - * The FQuery instance returned by queryEqualToValue:childKey will respond to events at nodes with a value - * equal to the supplied argument with a name equal to childKey. There will be at most one node that matches because - * child keys are unique. - * - * @param value The value that the data returned by this FQuery will have - * @param childKey The name of nodes with the right value - * @return An FQuery instance, limited to data with the supplied value and the key. - */ -- (FQuery *) queryEqualToValue:(id)value childKey:(NSString *)childKey; - - -/** @name Properties */ - - -/** -* Get a Firebase reference for the location of this query. -* -* @return A Firebase instance for the location of this query. -*/ -@property (nonatomic, readonly, strong) Firebase* ref; - -@end diff --git a/Clocker/Frameworks/Firebase.framework/Versions/A/Headers/FTransactionResult.h b/Clocker/Frameworks/Firebase.framework/Versions/A/Headers/FTransactionResult.h deleted file mode 100644 index a478f65..0000000 --- a/Clocker/Frameworks/Firebase.framework/Versions/A/Headers/FTransactionResult.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Firebase iOS Client Library - * - * Copyright © 2013 Firebase - All Rights Reserved - * https://www.firebase.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * - * 2. Redistributions in binaryform 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. - * - * THIS SOFTWARE IS PROVIDED BY FIREBASE 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 FIREBASE 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 "FMutableData.h" - -/** - * Used for runTransactionBlock:. An FTransactionResult instance is a container for the results of the transaction. - */ -@interface FTransactionResult : NSObject - -/** - * Used for runTransactionBlock:. Indicates that the new value should be saved at this location - * - * @param value An FMutableData instance containing the new value to be set - * @return An FTransactionResult instance that can be used as a return value from the block given to runTransactionBlock: - */ -+ (FTransactionResult *) successWithValue:(FMutableData *)value; - - -/** - * Used for runTransactionBlock:. Indicates that the current transaction should no longer proceed. - * - * @return An FTransactionResult instance that can be used as a return value from the block given to runTransactionBlock: - */ -+ (FTransactionResult *) abort; - -@end diff --git a/Clocker/Frameworks/Firebase.framework/Versions/A/Headers/Firebase.h b/Clocker/Frameworks/Firebase.framework/Versions/A/Headers/Firebase.h deleted file mode 100644 index 2db1b48..0000000 --- a/Clocker/Frameworks/Firebase.framework/Versions/A/Headers/Firebase.h +++ /dev/null @@ -1,1055 +0,0 @@ -/* - * Firebase iOS Client Library - * - * Copyright © 2013 Firebase - All Rights Reserved - * https://www.firebase.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * - * 2. Redistributions in binaryform 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. - * - * THIS SOFTWARE IS PROVIDED BY FIREBASE 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 FIREBASE 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 "FQuery.h" -#import "FirebaseApp.h" -#import "FDataSnapshot.h" -#import "FMutableData.h" -#import "FTransactionResult.h" -#import "FAuthData.h" -#import "FAuthType.h" -#import "FirebaseServerValue.h" -#import "FConfig.h" - -/** - * A Firebase reference represents a particular location in your Firebase - * and can be used for reading or writing data to that Firebase location. - * - * This class is the starting point for all Firebase operations. After you've - * initialized it with initWithUrl: you can use it - * to read data (ie. observeEventType:withBlock:), write data (ie. setValue:), and to create new - * Firebase references (ie. child:). - */ -@interface Firebase : FQuery - - -/** @name Initializing a Firebase object */ - -/** - * Initialize this Firebase reference with an absolute URL. - * - * @param url The Firebase URL (ie: https://SampleChat.firebaseIO-demo.com) - */ -- (instancetype)initWithUrl:(NSString *)url; - -/** @name Getting references to children locations */ - -/** - * Get a Firebase reference for the location at the specified relative path. - * The relative path can either be a simple child key (e.g. 'fred') or a - * deeper slash-separated path (e.g. 'fred/name/first'). - * - * @param pathString A relative path from this location to the desired child location. - * @return A Firebase reference for the specified relative path. - */ -- (Firebase *) childByAppendingPath:(NSString *)pathString; - - -/** - * childByAutoId generates a new child location using a unique key and returns a - * Firebase reference to it. This is useful when the children of a Firebase - * location represent a list of items. - * - * The unique key generated by childByAutoId: is prefixed with a client-generated - * timestamp so that the resulting list will be chronologically-sorted. - * - * @return A Firebase reference for the generated location. - */ -@property (NS_NONATOMIC_IOSONLY, readonly, strong) Firebase *childByAutoId; - - -/** @name Writing data */ - -/*! Write data to this Firebase location. - -This will overwrite any data at this location and all child locations. - -Data types that can be set are: - -- NSString -- @"Hello World" -- NSNumber (also includes boolean) -- @YES, @43, @4.333 -- NSDictionary -- @{@"key": @"value", @"nested": @{@"another": @"value"} } -- NSArray - -The effect of the write will be visible immediately and the corresponding -events will be triggered. Synchronization of the data to the Firebase -servers will also be started. - -Passing null for the new value is equivalent to calling remove:; -all data at this location or any child location will be deleted. - -Note that setValue: will remove any priority stored at this location, so if priority -is meant to be preserved, you should use setValue:andPriority: instead. - - -**Server Values** - Placeholder values you may write into Firebase as a value or priority -that will automatically be populated by the Firebase Server. - -- kFirebaseServerValueTimestamp - The number of milliseconds since the Unix epoch - - -@param value The value to be written. - */ -- (void) setValue:(id)value; - - -#define kFirebaseServerValueTimestamp @{ @".sv": @"timestamp" } - -/** - * The same as setValue: with a block that gets triggered after the write operation has - * been committed to the Firebase servers. - * - * @param value The value to be written. - * @param block The block to be called after the write has been committed to the Firebase servers. - */ -- (void) setValue:(id)value withCompletionBlock:(void (^)(NSError* error, Firebase* ref))block; - - -/** - * The same as setValue: with an additional priority to be attached to the data being written. - * Priorities are used to order items. - * - * @param value The value to be written. - * @param priority The priority to be attached to that data. - */ -- (void) setValue:(id)value andPriority:(id)priority; - - -/** - * The same as setValue:andPriority: with a block that gets triggered after the write operation has - * been committed to the Firebase servers. - * - * @param value The value to be written. - * @param priority The priority to be attached to that data. - * @param block The block to be called after the write has been committed to the Firebase servers. - */ -- (void) setValue:(id)value andPriority:(id)priority withCompletionBlock:(void (^)(NSError* error, Firebase* ref))block; - - -/** - * Remove the data at this Firebase location. Any data at child locations will also be deleted. - * - * The effect of the delete will be visible immediately and the corresponding events - * will be triggered. Synchronization of the delete to the Firebase servers will - * also be started. - * - * remove: is equivalent to calling setValue:nil - */ -- (void) removeValue; - - -/** - * The same as remove: with a block that gets triggered after the remove operation has - * been committed to the Firebase servers. - * - * @param block The block to be called after the remove has been committed to the Firebase servers. - */ -- (void) removeValueWithCompletionBlock:(void (^)(NSError* error, Firebase* ref))block; - -/** - * Set a priority for the data at this Firebase location. - * Priorities can be used to provide a custom ordering for the children at a location - * (if no priorities are specified, the children are ordered by key). - * - * You cannot set a priority on an empty location. For this reason - * setValue:andPriority: should be used when setting initial data with a specific priority - * and setPriority: should be used when updating the priority of existing data. - * - * Children are sorted based on this priority using the following rules: - * - * Children with no priority come first. - * Children with a number as their priority come next. They are sorted numerically by priority (small to large). - * Children with a string as their priority come last. They are sorted lexicographically by priority. - * Whenever two children have the same priority (including no priority), they are sorted by key. Numeric - * keys come first (sorted numerically), followed by the remaining keys (sorted lexicographically). - * - * Note that priorities are parsed and ordered as IEEE 754 double-precision floating-point numbers. - * Keys are always stored as strings and are treated as numbers only when they can be parsed as a - * 32-bit integer - * - * @param priority The priority to set at the specified location. - */ -- (void) setPriority:(id)priority; - - -/** - * The same as setPriority: with a block block that is called once the priority has - * been committed to the Firebase servers. - * - * @param priority The priority to set at the specified location. - * @param block The block that is triggered after the priority has been written on the servers. - */ -- (void) setPriority:(id)priority withCompletionBlock:(void (^)(NSError* error, Firebase* ref))block; - -/** - * Update changes the values at the specified paths in the dictionary without overwriting other - * keys at this location. - * - * @param values A dictionary of the keys to change and their new values - */ -- (void) updateChildValues:(NSDictionary *)values; - -/** - * The same as update: with a block block that is called once the update has been committed to the - * Firebase servers - * - * @param values A dictionary of the keys to change and their new values - * @param block The block that is triggered after the update has been written on the Firebase servers - */ -- (void) updateChildValues:(NSDictionary *)values withCompletionBlock:(void (^)(NSError* error, Firebase* ref))block; - - -/** @name Attaching observers to read data */ - -/** - * observeEventType:withBlock: is used to listen for data changes at a particular location. - * This is the primary way to read data from Firebase. Your block will be triggered - * for the initial data and again whenever the data changes. - * - * Use removeObserverWithHandle: to stop receiving updates. - * @param eventType The type of event to listen for. - * @param block The block that should be called with initial data and updates. It is passed the data as an FDataSnapshot. - * @return A handle used to unregister this block later using removeObserverWithHandle: - */ -- (FirebaseHandle) observeEventType:(FEventType)eventType withBlock:(void (^)(FDataSnapshot* snapshot))block; - - -/** - * observeEventType:andPreviousSiblingKeyWithBlock: is used to listen for data changes at a particular location. - * This is the primary way to read data from Firebase. Your block will be triggered - * for the initial data and again whenever the data changes. In addition, for FEventTypeChildAdded, FEventTypeChildMoved, and - * FEventTypeChildChanged events, your block will be passed the key of the previous node by priority order. - * - * Use removeObserverWithHandle: to stop receiving updates. - * - * @param eventType The type of event to listen for. - * @param block The block that should be called with initial data and updates. It is passed the data as an FDataSnapshot - * and the previous child's key. - * @return A handle used to unregister this block later using removeObserverWithHandle: - */ -- (FirebaseHandle) observeEventType:(FEventType)eventType andPreviousSiblingKeyWithBlock:(void (^)(FDataSnapshot* snapshot, NSString* prevKey))block; - - -/** - * observeEventType:withBlock: is used to listen for data changes at a particular location. - * This is the primary way to read data from Firebase. Your block will be triggered - * for the initial data and again whenever the data changes. - * - * The cancelBlock will be called if you will no longer receive new events due to no longer having permission. - * - * Use removeObserverWithHandle: to stop receiving updates. - * - * @param eventType The type of event to listen for. - * @param block The block that should be called with initial data and updates. It is passed the data as an FDataSnapshot. - * @param cancelBlock The block that should be called if this client no longer has permission to receive these events - * @return A handle used to unregister this block later using removeObserverWithHandle: - */ -- (FirebaseHandle) observeEventType:(FEventType)eventType withBlock:(void (^)(FDataSnapshot* snapshot))block withCancelBlock:(void (^)(NSError* error))cancelBlock; - - -/** - * observeEventType:andPreviousSiblingKeyWithBlock: is used to listen for data changes at a particular location. - * This is the primary way to read data from Firebase. Your block will be triggered - * for the initial data and again whenever the data changes. In addition, for FEventTypeChildAdded, FEventTypeChildMoved, and - * FEventTypeChildChanged events, your block will be passed the key of the previous node by priority order. - * - * The cancelBlock will be called if you will no longer receive new events due to no longer having permission. - * - * Use removeObserverWithHandle: to stop receiving updates. - * - * @param eventType The type of event to listen for. - * @param block The block that should be called with initial data and updates. It is passed the data as an FDataSnapshot - * and the previous child's key. - * @param cancelBlock The block that should be called if this client no longer has permission to receive these events - * @return A handle used to unregister this block later using removeObserverWithHandle: - */ -- (FirebaseHandle) observeEventType:(FEventType)eventType andPreviousSiblingKeyWithBlock:(void (^)(FDataSnapshot* snapshot, NSString* prevKey))block withCancelBlock:(void (^)(NSError* error))cancelBlock; - - -/** - * This is equivalent to observeEventType:withBlock:, except the block is immediately canceled after the initial data is returned. - * - * @param eventType The type of event to listen for. - * @param block The block that should be called. It is passed the data as an FDataSnapshot. - */ -- (void) observeSingleEventOfType:(FEventType)eventType withBlock:(void (^)(FDataSnapshot* snapshot))block; - - -/** - * This is equivalent to observeEventType:withBlock:, except the block is immediately canceled after the initial data is returned. In addition, for FEventTypeChildAdded, FEventTypeChildMoved, and - * FEventTypeChildChanged events, your block will be passed the key of the previous node by priority order. - * - * @param eventType The type of event to listen for. - * @param block The block that should be called. It is passed the data as an FDataSnapshot and the previous child's key. - */ -- (void) observeSingleEventOfType:(FEventType)eventType andPreviousSiblingKeyWithBlock:(void (^)(FDataSnapshot* snapshot, NSString* prevKey))block; - - -/** - * This is equivalent to observeEventType:withBlock:, except the block is immediately canceled after the initial data is returned. - * - * The cancelBlock will be called if you do not have permission to read data at this location. - * - * @param eventType The type of event to listen for. - * @param block The block that should be called. It is passed the data as an FDataSnapshot. - * @param cancelBlock The block that will be called if you don't have permission to access this data - */ -- (void) observeSingleEventOfType:(FEventType)eventType withBlock:(void (^)(FDataSnapshot* snapshot))block withCancelBlock:(void (^)(NSError* error))cancelBlock; - - -/** - * This is equivalent to observeEventType:withBlock:, except the block is immediately canceled after the initial data is returned. In addition, for FEventTypeChildAdded, FEventTypeChildMoved, and - * FEventTypeChildChanged events, your block will be passed the key of the previous node by priority order. - * - * The cancelBlock will be called if you do not have permission to read data at this location. - * - * @param eventType The type of event to listen for. - * @param block The block that should be called. It is passed the data as an FDataSnapshot and the previous child's key. - * @param cancelBlock The block that will be called if you don't have permission to access this data - */ -- (void) observeSingleEventOfType:(FEventType)eventType andPreviousSiblingKeyWithBlock:(void (^)(FDataSnapshot* snapshot, NSString* prevKey))block withCancelBlock:(void (^)(NSError* error))cancelBlock; - -/** @name Detaching observers */ - -/** - * Detach a block previously attached with observeEventType:withBlock:. - * - * @param handle The handle returned by the call to observeEventType:withBlock: which we are trying to remove. - */ -- (void) removeObserverWithHandle:(FirebaseHandle)handle; - -/** - * By calling `keepSynced:YES` on a location, the data for that location will automatically be downloaded and - * kept in sync, even when no listeners are attached for that location. Additionally, while a location is kept - * synced, it will not be evicted from the persistent disk cache. - * - * @param keepSynced Pass YES to keep this location synchronized, pass NO to stop synchronization. - */ -- (void) keepSynced:(BOOL)keepSynced; - - -/** - * Calling removeAllObservers does not remove any observers at child references. - * removeAllObservers must be called again for each child reference where a listener was established to remove the observers. - */ -- (void) removeAllObservers; - -/** @name Querying and limiting */ - - -/** - * This method is deprecated in favor of using queryStartingAtValue:. This can be used with queryOrderedByPriority - * to query by priority. - * - * queryStartingAtPriority: is used to generate a reference to a limited view of the data at this location. - * The FQuery instance returned by queryStartingAtPriority: will respond to events at nodes with a priority - * greater than or equal to startPriority - * - * @param startPriority The lower bound, inclusive, for the priority of data visible to the returned FQuery - * @return An FQuery instance, limited to data with priority greater than or equal to startPriority - */ -- (FQuery *) queryStartingAtPriority:(id)startPriority __attribute__((deprecated("Use [[FQuery queryOrderedByPriority] queryStartingAtValue:] instead"))); - - -/** - * This method is deprecated in favor of using queryStartingAtValue:childKey:. This can be used with queryOrderedByPriority - * to query by priority. - * - * queryStartingAtPriority:andChildName: is used to generate a reference to a limited view of the data at this location. - * The FQuery instance returned by queryStartingAtPriority:andChildName will respond to events at nodes with a priority - * greater than startPriority, or equal to startPriority and with a name greater than or equal to childName - * - * @param startPriority The lower bound, inclusive, for the priority of data visible to the returned FQuery - * @param childName The lower bound, inclusive, for the name of nodes with priority equal to startPriority - * @return An FQuery instance, limited to data with priority greater than or equal to startPriority - */ -- (FQuery *) queryStartingAtPriority:(id)startPriority andChildName:(NSString *)childName __attribute__((deprecated("Use [[FQuery queryOrderedByPriority] queryStartingAtValue:childKey:] instead"))); - -/** - * This method is deprecated in favor of using queryEndingAtValue:. This can be used with queryOrderedByPriority - * to query by priority. - * - * queryEndingAtPriority: is used to generate a reference to a limited view of the data at this location. - * The FQuery instance returned by queryEndingAtPriority: will respond to events at nodes with a priority - * less than or equal to startPriority and with a name greater than or equal to childName - * - * @param endPriority The upper bound, inclusive, for the priority of data visible to the returned FQuery - * @return An FQuery instance, limited to data with priority less than or equal to endPriority - */ -- (FQuery *) queryEndingAtPriority:(id)endPriority __attribute__((deprecated("Use [[FQuery queryOrderedByPriority] queryEndingAtValue:] instead"))); - - -/** - * This method is deprecated in favor of using queryEndingAtValue:childKey:. This can be used with queryOrderedByPriority - * to query by priority. - * - * queryEndingAtPriority:andChildName: is used to generate a reference to a limited view of the data at this location. - * The FQuery instance returned by queryEndingAtPriority:andChildName will respond to events at nodes with a priority - * less than endPriority, or equal to endPriority and with a name less than or equal to childName - * - * @param endPriority The upper bound, inclusive, for the priority of data visible to the returned FQuery - * @param childName The upper bound, inclusive, for the name of nodes with priority equal to endPriority - * @return An FQuery instance, limited to data with priority less than endPriority or equal to endPriority and with a name less than or equal to childName - */ -- (FQuery *) queryEndingAtPriority:(id)endPriority andChildName:(NSString *)childName __attribute__((deprecated("Use [[FQuery queryOrderedByPriority] queryEndingAtValue:childKey:] instead"))); - - -/** - * This method is deprecated in favor of using queryEqualToValue:. This can be used with queryOrderedByPriority - * to query by priority. - * - * queryEqualToPriority: is used to generate a reference to a limited view of the data at this location. - * The FQuery instance returned by queryEqualToPriority: will respond to events at nodes with a priority equal to - * supplied argument. - * - * @param priority The priority that the data returned by this FQuery will have - * @return An Fquery instance, limited to data with the supplied priority. - */ -- (FQuery *) queryEqualToPriority:(id)priority __attribute__((deprecated("Use [[FQuery queryOrderedByPriority] queryEqualToValue:] instead"))); - - -/** - * This method is deprecated in favor of using queryEqualAtValue:childKey:. This can be used with queryOrderedByPriority - * to query by priority. - * - * queryEqualToPriority:andChildName: is used to generate a reference to a limited view of the data at this location. - * The FQuery instance returned by queryEqualToPriority:andChildName will respond to events at nodes with a priority - * equal to the supplied argument with a name equal to childName. There will be at most one node that matches because - * child names are unique. - * - * @param priority The priority that the data returned by this FQuery will have - * @param childName The name of nodes with the right priority - * @return An FQuery instance, limited to data with the supplied priority and the name. - */ -- (FQuery *) queryEqualToPriority:(id)priority andChildName:(NSString *)childName __attribute__((deprecated("Use [[FQuery queryOrderedByPriority] queryEqualToValue:childKey:] instead"))); - -/** - * This method is deprecated in favor of using queryLimitedToFirst:limit or queryLimitedToLast:limit instead. - * - * queryLimitedToNumberOfChildren: is used to generate a reference to a limited view of the data at this location. - * The FQuery instance returned by queryLimitedToNumberOfChildren: will respond to events from at most limit child nodes. - * - * @param limit The upper bound, inclusive, for the number of child nodes to receive events for - * @return An FQuery instance, limited to at most limit child nodes. - */ -- (FQuery *) queryLimitedToNumberOfChildren:(NSUInteger)limit __attribute__((deprecated("Use [FQuery queryLimitedToFirst:limit] or [FQuery queryLimitedToLast:limit] instead"))); - - -/** - * queryLimitedToFirst: is used to generate a reference to a limited view of the data at this location. - * The FQuery instance returned by queryLimitedToFirst: will respond to at most the first limit child nodes. - * - * @param limit The upper bound, inclusive, for the number of child nodes to receive events for - * @return An FQuery instance, limited to at most limit child nodes. - */ -- (FQuery *) queryLimitedToFirst:(NSUInteger)limit; - - -/** - * queryLimitedToLast: is used to generate a reference to a limited view of the data at this location. - * The FQuery instance returned by queryLimitedToLast: will respond to at most the last limit child nodes. - * - * @param limit The upper bound, inclusive, for the number of child nodes to receive events for - * @return An FQuery instance, limited to at most limit child nodes. - */ -- (FQuery *) queryLimitedToLast:(NSUInteger)limit; - -/** - * queryOrderBy: is used to generate a reference to a view of the data that's been sorted by the values of - * a particular child key. This method is intended to be used in combination with queryStartingAtValue:, - * queryEndingAtValue:, or queryEqualToValue:. - * - * @param key The child key to use in ordering data visible to the returned FQuery - * @return An FQuery instance, ordered by the values of the specified child key. - */ -- (FQuery *) queryOrderedByChild:(NSString *)key; - -/** - * queryOrderedByKey: is used to generate a reference to a view of the data that's been sorted by child key. - * This method is intended to be used in combination with queryStartingAtValue:, queryEndingAtValue:, - * or queryEqualToValue:. - * - * @return An FQuery instance, ordered by child keys. - */ -@property (NS_NONATOMIC_IOSONLY, readonly, strong) FQuery *queryOrderedByKey; - -/** - * queryOrderedByPriority: is used to generate a reference to a view of the data that's been sorted by child - * priority. This method is intended to be used in combination with queryStartingAtValue:, queryEndingAtValue:, - * or queryEqualToValue:. - * - * @return An FQuery instance, ordered by child priorities. - */ -@property (NS_NONATOMIC_IOSONLY, readonly, strong) FQuery *queryOrderedByPriority; - -/** - * queryStartingAtValue: is used to generate a reference to a limited view of the data at this location. - * The FQuery instance returned by queryStartingAtValue: will respond to events at nodes with a value - * greater than or equal to startValue. - * - * @param startValue The lower bound, inclusive, for the value of data visible to the returned FQuery - * @return An FQuery instance, limited to data with value greater than or equal to startValue - */ -- (FQuery *) queryStartingAtValue:(id)startValue; - -/** - * queryStartingAtValue:childKey: is used to generate a reference to a limited view of the data at this location. - * The FQuery instance returned by queryStartingAtValue:childKey will respond to events at nodes with a value - * greater than startValue, or equal to startValue and with a key greater than or equal to childKey. - * - * @param startValue The lower bound, inclusive, for the value of data visible to the returned FQuery - * @param childKey The lower bound, inclusive, for the key of nodes with value equal to startValue - * @return An FQuery instance, limited to data with value greater than or equal to startValue - */ -- (FQuery *) queryStartingAtValue:(id)startValue childKey:(NSString *)childKey; - -/** - * queryEndingAtValue: is used to generate a reference to a limited view of the data at this location. - * The FQuery instance returned by queryEndingAtValue: will respond to events at nodes with a value - * less than or equal to endValue. - * - * @param endValue The upper bound, inclusive, for the value of data visible to the returned FQuery - * @return An FQuery instance, limited to data with value less than or equal to endValue - */ -- (FQuery *) queryEndingAtValue:(id)endValue; - -/** - * queryEndingAtValue:childKey: is used to generate a reference to a limited view of the data at this location. - * The FQuery instance returned by queryEndingAtValue:childKey will respond to events at nodes with a value - * less than endValue, or equal to endValue and with a key less than or equal to childKey. - * - * @param endValue The upper bound, inclusive, for the value of data visible to the returned FQuery - * @param childKey The upper bound, inclusive, for the key of nodes with value equal to endValue - * @return An FQuery instance, limited to data with value less than or equal to endValue - */ -- (FQuery *) queryEndingAtValue:(id)endValue childKey:(NSString *)childKey; - -/** - * queryEqualToValue: is used to generate a reference to a limited view of the data at this location. - * The FQuery instance returned by queryEqualToValue: will respond to events at nodes with a value equal - * to the supplied argument. - * - * @param value The value that the data returned by this FQuery will have - * @return An Fquery instance, limited to data with the supplied value. - */ -- (FQuery *) queryEqualToValue:(id)value; - -/** - * queryEqualToValue:childKey: is used to generate a reference to a limited view of the data at this location. - * The FQuery instance returned by queryEqualToValue:childKey will respond to events at nodes with a value - * equal to the supplied argument with a key equal to childKey. There will be at most one node that matches because - * child keys are unique. - * - * @param value The value that the data returned by this FQuery will have - * @param childKey The key of nodes with the right value - * @return An FQuery instance, limited to data with the supplied value and the key. - */ -- (FQuery *) queryEqualToValue:(id)value childKey:(NSString *)childKey; - -/** @name Managing presence */ - -/** - * Ensure the data at this location is set to the specified value when - * the client is disconnected (due to closing the browser, navigating - * to a new page, or network issues). - * - * onDisconnectSetValue: is especially useful for implementing "presence" systems, - * where a value should be changed or cleared when a user disconnects - * so that he appears "offline" to other users. - * - * @param value The value to be set after the connection is lost. - */ -- (void) onDisconnectSetValue:(id)value; - - -/** - * Ensure the data at this location is set to the specified value when - * the client is disconnected (due to closing the browser, navigating - * to a new page, or network issues). - * - * The completion block will be triggered when the operation has been successfully queued up on the Firebase servers - * - * @param value The value to be set after the connection is lost. - * @param block Block to be triggered when the operation has been queued up on the Firebase servers - */ -- (void) onDisconnectSetValue:(id)value withCompletionBlock:(void (^)(NSError* error, Firebase* ref))block; - - -/** - * Ensure the data at this location is set to the specified value and priority when - * the client is disconnected (due to closing the browser, navigating - * to a new page, or network issues). - * - * @param value The value to be set after the connection is lost. - * @param priority The priority to be set after the connection is lost. - */ -- (void) onDisconnectSetValue:(id)value andPriority:(id)priority; - - -/** - * Ensure the data at this location is set to the specified value and priority when - * the client is disconnected (due to closing the browser, navigating - * to a new page, or network issues). - * - * The completion block will be triggered when the operation has been successfully queued up on the Firebase servers - * - * @param value The value to be set after the connection is lost. - * @param priority The priority to be set after the connection is lost. - * @param block Block to be triggered when the operation has been queued up on the Firebase servers - */ -- (void) onDisconnectSetValue:(id)value andPriority:(id)priority withCompletionBlock:(void (^)(NSError* error, Firebase* ref))block; - - -/** - * Ensure the data at this location is removed when - * the client is disconnected (due to closing the app, navigating - * to a new page, or network issues). - * - * onDisconnectRemoveValue is especially useful for implementing "presence" systems. - */ -- (void) onDisconnectRemoveValue; - - -/** - * Ensure the data at this location is removed when - * the client is disconnected (due to closing the app, navigating - * to a new page, or network issues). - * - * onDisconnectRemoveValueWithCompletionBlock: is especially useful for implementing "presence" systems. - * - * @param block Block to be triggered when the operation has been queued up on the Firebase servers - */ -- (void) onDisconnectRemoveValueWithCompletionBlock:(void (^)(NSError* error, Firebase* ref))block; - - - -/** - * Ensure the data has the specified child values updated when - * the client is disconnected (due to closing the browser, navigating - * to a new page, or network issues). - * - * - * @param values A dictionary of child node keys and the values to set them to after the connection is lost. - */ -- (void) onDisconnectUpdateChildValues:(NSDictionary *)values; - - -/** - * Ensure the data has the specified child values updated when - * the client is disconnected (due to closing the browser, navigating - * to a new page, or network issues). - * - * - * @param values A dictionary of child node keys and the values to set them to after the connection is lost. - * @param block A block that will be called once the operation has been queued up on the Firebase servers - */ -- (void) onDisconnectUpdateChildValues:(NSDictionary *)values withCompletionBlock:(void (^)(NSError* error, Firebase* ref))block; - - -/** - * Cancel any operations that are set to run on disconnect. If you previously called onDisconnectSetValue:, - * onDisconnectRemoveValue:, or onDisconnectUpdateChildValues:, and no longer want the values updated when the - * connection is lost, call cancelDisconnectOperations: - */ -- (void) cancelDisconnectOperations; - - -/** - * Cancel any operations that are set to run on disconnect. If you previously called onDisconnectSetValue:, - * onDisconnectRemoveValue:, or onDisconnectUpdateChildValues:, and no longer want the values updated when the - * connection is lost, call cancelDisconnectOperations: - * - * @param block A block that will be triggered once the Firebase servers have acknowledged the cancel request. - */ -- (void) cancelDisconnectOperationsWithCompletionBlock:(void (^)(NSError* error, Firebase* ref))block; - - -/** @name Reading and observing authentication data */ - -/** -* Get the authentication data of the current user. -* -* @return Authentication data of the current user. -*/ -@property (nonatomic, strong, readonly) FAuthData *authData; - - -/** -* Observer block will be triggered whenever a user gets authenticated or logged out. -* -* Authentication data is persisted across app restarts. If your have an old authentication, Firebase will attempt to -* resume your old session. This approach does not wait for a server roundtrip. Rather, it inspects the -* contents of the persisted JWT and assumes that the Firebase secret used to generate the token has not been revoked. -* -* In the event that the Firebase secret used to generate the token has been revoked, observers will likely see one -* flicker / rapid flip-flop of authentication state once the server rejects the token. -* -* Use removeAuthEventObserverWithHandle: to stop receiving updates. -* -* @param block The block that should be called with initial authentication data and future updates -* @return A handle used to unregister this block later with removeAuthEventObserverWithHandle: -*/ -- (FirebaseHandle) observeAuthEventWithBlock:(void (^)(FAuthData *authData))block; - - -/** -* Detach a block previously attached with observeAuthEventWithBlock:. -* -* @param handle The handle returned by the call to observeAuthEventWithBlock: which we are trying to remove. -*/ -- (void) removeAuthEventObserverWithHandle:(FirebaseHandle)handle; - -/** @name User creation and modification */ - -/** -* Used to create a new user account with the given email and password combo. The results will be passed to the given block. -* Note that this method will not log the new user in. -* -* @param email The email for the account to be created -* @param password The password for the account to be created -* @param block The block to be called with the results of the operation -*/ -- (void) createUser:(NSString *)email password:(NSString *)password withCompletionBlock:(void (^)(NSError *error))block; - -/** - * Used to create a new user account with the given email and password combo. The results will be passed - * to the given block. Note that this method will not log the new user in. On success, invokes the result - * block with an dictionary of user data, including the user id. - * - * @param email The email for the account to be created - * @param password The password for the account to be created - * @param block The block to be called with the results of the operation - */ -- (void) createUser:(NSString *)email password:(NSString *)password withValueCompletionBlock:(void (^)(NSError *error, NSDictionary *result))block; - -/** -* Remove a user account with the given email and password. -* -* @param email The email of the account to be removed -* @param password The password for the account to be removed -* @param block A block to receive the results of the operation -*/ -- (void) removeUser:(NSString *)email password:(NSString *)password withCompletionBlock:(void (^)(NSError *error))block; - - -/** -* Attempts to change the password for the account with the given credentials to the new password given. Results are reported to the supplied block. -* -* @param email The email for the account to be changed -* @param oldPassword The old password for the account to be changed -* @param newPassword The desired newPassword for the account -* @param block A block to receive the results of the operation -*/ -- (void) changePasswordForUser:(NSString *)email fromOld:(NSString *)oldPassword toNew:(NSString *)newPassword withCompletionBlock:(void (^)(NSError *error))block; - - -/** - * Attempts to change the email for the account with the given credentials to the new email given. Results are reported to the supplied block. - * - * @param email The email for the account to be changed - * @param password The password for the account to be changed - * @param newEmail The desired newEmail for the account - * @param block A block to receive the results of the operation - */ -- (void) changeEmailForUser:(NSString *)email password:(NSString *)password toNewEmail:(NSString *)newEmail withCompletionBlock:(void (^)(NSError *error))block; - - -/** -* Send a password reset email to the owner of the account with the given email. Results are reported to the supplied block. -* -* @param email The email of the account to be removed -* @param block A block to receive the results of the operation -*/ -- (void) resetPasswordForUser:(NSString *)email withCompletionBlock:(void (^)(NSError* error))block; - -/** @name Authenticating */ - -/** -* Attempts to log the user in anonymously. The block will receive the results of the attempt. -* -* @param block A block to receive the results of the authentication attempt. -*/ -- (void) authAnonymouslyWithCompletionBlock:(void (^)(NSError *error, FAuthData *authData))block; - -/** -* Attempts to authenticate to Firebase with the given credentials. The block will receive the results of the attempt. -* -* @param email The email of the account -* @param password The password for the account -* @param block A block to receive the results of the authentication attempt -*/ -- (void) authUser:(NSString *)email password:(NSString *)password withCompletionBlock:(void (^)(NSError *error, FAuthData *authData))block; - -/** -* Authenticate access to this Firebase using the provided credentials. -* -* The completion block will be called with the results of the authenticated attempt. Unlike -* authWithCredential:withCompletionBlock:withCancelBlock:, no block will be called when the credentials become invalid. -* -* Instead, please use observeAuthEventWithBlock: to observe if a user gets logged out. -* -* @param token The Firebase authentication JWT generated by a secure code on a remote server. -* @param block This block will be called with the results of the authentication attempt -*/ -- (void) authWithCustomToken:(NSString *)token withCompletionBlock:(void (^)(NSError *error, FAuthData *authData))block; - -/** -* Authenticate to Firebase with an OAuth token from a provider. -* -* This method works with current OAuth 2.0 providers such as Facebook, Google+, and Github. -* -* For other providers that Firebase supports which require additional parameters for login, such as Twitter, please use authWithOAuthProvider:parameters:withCompletionBlock:. -* -* @param provider The provider, all lower case with no spaces. -* @param oauthToken The OAuth Token to authenticate with the provider -* @param block A block to receive the results of the authentication attempt -*/ -- (void) authWithOAuthProvider:(NSString *)provider token:(NSString *)oauthToken withCompletionBlock:(void (^) (NSError *error, FAuthData *authData))block; - -/** -* Authenticate to Firebase with an OAuth token from a provider. -* -* This method is for OAuth providers that require extra parameters when authentication with the server, such as Twitter. -* The OAuth token should be included as a parameter. -* -* @param provider The provider, all lowercase with no spaces. -* @param parameters The parameters necessary to authenticate with the provider -* @param block A block to receive the results of the authentication attempt -*/ -- (void) authWithOAuthProvider:(NSString *)provider parameters:(NSDictionary *)parameters withCompletionBlock:(void (^) (NSError *error, FAuthData *authData))block; - -/** -* Make a reverse OAuth Request to a provider. -* -* This method is for OAuth providers that require a reverse request be made first. The json output of this block -* -* @param provider The provider, all lowercase with no spaces. -* @param block The block to receive the results of the reverse OAuth request. -*/ -- (void) makeReverseOAuthRequestTo:(NSString *)provider withCompletionBlock:(void (^)(NSError *error, NSDictionary *json))block; - -/** -* Removes any credentials associated with this Firebase. -*/ -- (void) unauth; - -/** -* This method is deprecated. Use authWithCustomToken:withCompletionBlock: instead. -* -* Authenticate access to this Firebase using the provided credentials. The completion block will be called with -* the results of the authenticated attempt, and the cancelBlock will be called if the credentials become invalid -* at some point after authentication has succeeded. -* -* @param credential The Firebase authentication JWT generated by a secure code on a remote server. -* @param block This block will be called with the results of the authentication attempt -* @param cancelBlock This block will be called if at any time in the future the credentials become invalid -*/ -- (void) authWithCredential:(NSString *)credential withCompletionBlock:(void (^) (NSError* error, id data))block withCancelBlock:(void (^)(NSError* error))cancelBlock __attribute__((deprecated("Use authWithCustomToken:withCompletionblock: instead"))); - -/** -* This method is deprecated. Use unauth: instead. -* -* Removes any credentials associated with this Firebase. The callback block will be triggered after this operation -* has been acknowledged by the Firebase servers. -* -* @param block This block will be called once the unauth has completed. -*/ -- (void) unauthWithCompletionBlock:(void (^)(NSError* error))block __attribute__((deprecated("Use unauth: instead"))); - - -/** @name Manual Connection Management */ - -/** - * Manually disconnect the Firebase client from the server and disable automatic reconnection. - * - * The Firebase client automatically maintains a persistent connection to the Firebase server, - * which will remain active indefinitely and reconnect when disconnected. However, the goOffline( ) - * and goOnline( ) methods may be used to manually control the client connection in cases where - * a persistent connection is undesirable. - * - * While offline, the Firebase client will no longer receive data updates from the server. However, - * all Firebase operations performed locally will continue to immediately fire events, allowing - * your application to continue behaving normally. Additionally, each operation performed locally - * will automatically be queued and retried upon reconnection to the Firebase server. - * - * To reconnect to the Firebase server and begin receiving remote events, see goOnline( ). - * Once the connection is reestablished, the Firebase client will transmit the appropriate data - * and fire the appropriate events so that your client "catches up" automatically. - * - * Note: Invoking this method will impact all Firebase connections. - */ -+ (void) goOffline; - -/** - * Manually reestablish a connection to the Firebase server and enable automatic reconnection. - * - * The Firebase client automatically maintains a persistent connection to the Firebase server, - * which will remain active indefinitely and reconnect when disconnected. However, the goOffline( ) - * and goOnline( ) methods may be used to manually control the client connection in cases where - * a persistent connection is undesirable. - * - * This method should be used after invoking goOffline( ) to disable the active connection. - * Once reconnected, the Firebase client will automatically transmit the proper data and fire - * the appropriate events so that your client "catches up" automatically. - * - * To disconnect from the Firebase server, see goOffline( ). - * - * Note: Invoking this method will impact all Firebase connections. - */ -+ (void) goOnline; - - -/** @name Transactions */ - -/** - * Performs an optimistic-concurrency transactional update to the data at this location. Your block will be called with an FMutableData - * instance that contains the current data at this location. Your block should update this data to the value you - * wish to write to this location, and then return an instance of FTransactionResult with the new data. - * - * If, when the operation reaches the server, it turns out that this client had stale data, your block will be run - * again with the latest data from the server. - * - * When your block is run, you may decide to abort the transaction by return [FTransactionResult abort]. - * - * @param block This block receives the current data at this location and must return an instance of FTransactionResult - */ -- (void) runTransactionBlock:(FTransactionResult* (^) (FMutableData* currentData))block; - - -/** - * Performs an optimistic-concurrency transactional update to the data at this location. Your block will be called with an FMutableData - * instance that contains the current data at this location. Your block should update this data to the value you - * wish to write to this location, and then return an instance of FTransactionResult with the new data. - * - * If, when the operation reaches the server, it turns out that this client had stale data, your block will be run - * again with the latest data from the server. - * - * When your block is run, you may decide to abort the transaction by return [FTransactionResult abort]. - * - * @param block This block receives the current data at this location and must return an instance of FTransactionResult - * @param completionBlock This block will be triggered once the transaction is complete, whether it was successful or not. It will indicate if there was an error, whether or not the data was committed, and what the current value of the data at this location is. - */ -- (void) runTransactionBlock:(FTransactionResult* (^) (FMutableData* currentData))block andCompletionBlock:(void (^) (NSError* error, BOOL committed, FDataSnapshot* snapshot))completionBlock; - - - -/** - * Performs an optimistic-concurrency transactional update to the data at this location. Your block will be called with an FMutableData - * instance that contains the current data at this location. Your block should update this data to the value you - * wish to write to this location, and then return an instance of FTransactionResult with the new data. - * - * If, when the operation reaches the server, it turns out that this client had stale data, your block will be run - * again with the latest data from the server. - * - * When your block is run, you may decide to abort the transaction by return [FTransactionResult abort]. - * - * Since your block may be run multiple times, this client could see several immediate states that don't exist on the server. You can suppress those immediate states until the server confirms the final state of the transaction. - * - * @param block This block receives the current data at this location and must return an instance of FTransactionResult - * @param completionBlock This block will be triggered once the transaction is complete, whether it was successful or not. It will indicate if there was an error, whether or not the data was committed, and what the current value of the data at this location is. - * @param localEvents Set this to NO to suppress events raised for intermediate states, and only get events based on the final state of the transaction. - */ -- (void) runTransactionBlock:(FTransactionResult* (^) (FMutableData* currentData))block andCompletionBlock:(void (^) (NSError* error, BOOL committed, FDataSnapshot* snapshot))completionBlock withLocalEvents:(BOOL)localEvents; - - -/** @name Retrieving String Representation */ - -/** - * Gets the absolute URL of this Firebase location. - * - * @return The absolute URL of the referenced Firebase location. - */ -@property (NS_NONATOMIC_IOSONLY, readonly, copy) NSString *description; - -/** @name Properties */ - -/** - * Get a Firebase reference for the parent location. - * If this instance refers to the root of your Firebase, it has no parent, - * and therefore parent( ) will return null. - * - * @return A Firebase reference for the parent location. - */ -@property (strong, readonly, nonatomic) Firebase* parent; - - -/** - * Get a Firebase reference for the root location - * - * @return A new Firebase reference to root location. - */ -@property (strong, readonly, nonatomic) Firebase* root; - - -/** - * Gets last token in a Firebase location (e.g. 'fred' in https://SampleChat.firebaseIO-demo.com/users/fred) - * - * @return The key of the location this reference points to. - */ -@property (strong, readonly, nonatomic) NSString* key; - -/** - * Gets the FirebaseApp instance associated with this reference. - * - * @return The FirebaseApp object for this reference. - */ -@property (strong, readonly, nonatomic) FirebaseApp *app; - - -/** @name Global configuration and settings */ - -/** Set the default dispatch queue for event blocks. - * - * @param queue The queue to set as the default for running blocks for all Firebase event types. - * @deprecated This method is deprecated - * @note Please use [Firebase defaultConfig].callbackQueue instead -*/ -+ (void) setDispatchQueue:(dispatch_queue_t)queue __attribute__((deprecated)); - -/** Retrieve the Firebase SDK version. */ -+ (NSString *) sdkVersion; - -+ (void) setLoggingEnabled:(BOOL)enabled; - -/** - * Returns the default config object, used for configuring Firebase client behavior. - * - * This can be modified until you create your first `Firebase` instance. - */ -+ (FConfig *)defaultConfig; - -/** - * @deprecated This method is deprecated - * @note Please enable persistence by setting [Firebase defaultConfig].persistenceEnabled = YES instead. - * @param option Option to set. - * @param value Value to set. - */ -+ (void) setOption:(NSString*)option to:(id)value __attribute__((deprecated)); -@end diff --git a/Clocker/Frameworks/Firebase.framework/Versions/A/Headers/FirebaseApp.h b/Clocker/Frameworks/Firebase.framework/Versions/A/Headers/FirebaseApp.h deleted file mode 100644 index b909cee..0000000 --- a/Clocker/Frameworks/Firebase.framework/Versions/A/Headers/FirebaseApp.h +++ /dev/null @@ -1,34 +0,0 @@ -#import - -/** - * All Firebase references to the same database share a connection, persistent cache, etc. FirebaseApp - * represents this shared state and can be accessed from any reference via its `app` property. - * It has methods for managing your Firebase connection, etc. - * - * There is a one-to-one relationship between a FirebaseApp instance and a connection to Firebase. - */ -@interface FirebaseApp : NSObject - -/** - * The Firebase client automatically queues writes and sends them to the server at the earliest opportunity, - * depending on network connectivity. In some cases (e.g. offline usage) there may be a large number of writes - * waiting to be sent. Calling this method will purge all outstanding writes so they are abandoned. - * - * All writes will be purged, including transactions and {@link Firebase#onDisconnect} writes. The writes will - * be rolled back locally, perhaps triggering events for affected event listeners, and the client will not - * (re-)send them to the Firebase backend. - */ -- (void)purgeOutstandingWrites; - - -/** - * Shuts down our connection to the Firebase backend until goOnline is called. - */ -- (void)goOffline; - -/** - * Resumes our connection to the Firebase backend after a previous goOffline call. - */ -- (void)goOnline; - -@end diff --git a/Clocker/Frameworks/Firebase.framework/Versions/A/Headers/FirebaseServerValue.h b/Clocker/Frameworks/Firebase.framework/Versions/A/Headers/FirebaseServerValue.h deleted file mode 100644 index 329ef11..0000000 --- a/Clocker/Frameworks/Firebase.framework/Versions/A/Headers/FirebaseServerValue.h +++ /dev/null @@ -1,5 +0,0 @@ -@interface FirebaseServerValue : NSObject - -+ (NSDictionary *) timestamp; - -@end \ No newline at end of file diff --git a/Clocker/Frameworks/Firebase.framework/Versions/A/Modules/module.modulemap b/Clocker/Frameworks/Firebase.framework/Versions/A/Modules/module.modulemap deleted file mode 100644 index 165345e..0000000 --- a/Clocker/Frameworks/Firebase.framework/Versions/A/Modules/module.modulemap +++ /dev/null @@ -1,6 +0,0 @@ -framework module Firebase { - umbrella header "Firebase.h" - - export * - module * { export * } -} diff --git a/Clocker/Frameworks/Firebase.framework/Versions/Current b/Clocker/Frameworks/Firebase.framework/Versions/Current deleted file mode 120000 index 8c7e5a6..0000000 --- a/Clocker/Frameworks/Firebase.framework/Versions/Current +++ /dev/null @@ -1 +0,0 @@ -A \ No newline at end of file diff --git a/Clocker/Frameworks/Firebase/FirebaseCore.framework/FirebaseCore b/Clocker/Frameworks/Firebase/FirebaseCore.framework/FirebaseCore new file mode 100644 index 0000000..b14860c Binary files /dev/null and b/Clocker/Frameworks/Firebase/FirebaseCore.framework/FirebaseCore differ diff --git a/Clocker/Frameworks/Firebase/FirebaseCore.framework/Headers/FIRApp.h b/Clocker/Frameworks/Firebase/FirebaseCore.framework/Headers/FIRApp.h new file mode 100644 index 0000000..f5578c6 --- /dev/null +++ b/Clocker/Frameworks/Firebase/FirebaseCore.framework/Headers/FIRApp.h @@ -0,0 +1,127 @@ +/* + * 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 + +@class FIROptions; + +NS_ASSUME_NONNULL_BEGIN + +/** A block that takes a BOOL and has no return value. */ +typedef void (^FIRAppVoidBoolCallback)(BOOL success) NS_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. + */ +NS_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 should be called from the main thread and + * contains synchronous file I/O (reading GoogleService-Info.plist from disk). + */ ++ (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 should be + * called from the main thread. + * + * @param options The Firebase application options used to configure the service. + */ ++ (void)configureWithOptions:(FIROptions *)options NS_SWIFT_NAME(configure(options:)); + +/** + * Configures a Firebase app with the given name and options. Raises an exception if any + * configuration step fails. This method should be called from the main thread. + * + * @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. + */ +// clang-format off ++ (void)configureWithName:(NSString *)name + options:(FIROptions *)options NS_SWIFT_NAME(configure(name:options:)); +// clang-format on + +/** + * Returns the default app, or nil if the default app does not exist. + */ ++ (nullable FIRApp *)defaultApp NS_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 NS_SWIFT_NAME(app(name:)); + +/** + * 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; + +/** + * 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; + +/** + * Gets or sets whether automatic data collection is enabled for all products. Defaults to `YES` + * unless `FirebaseDataCollectionDefaultEnabled` is set to `NO` in your app's Info.plist. This value + * is persisted across runs of the app so that it can be set once when users have consented to + * collection. + */ +@property(nonatomic, readwrite, getter=isDataCollectionDefaultEnabled) + BOOL dataCollectionDefaultEnabled; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Clocker/Frameworks/Firebase/FirebaseCore.framework/Headers/FIRConfiguration.h b/Clocker/Frameworks/Firebase/FirebaseCore.framework/Headers/FIRConfiguration.h new file mode 100644 index 0000000..2b8e678 --- /dev/null +++ b/Clocker/Frameworks/Firebase/FirebaseCore.framework/Headers/FIRConfiguration.h @@ -0,0 +1,45 @@ +/* + * 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 "FIRLoggerLevel.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + * This interface provides global level properties that the developer can tweak. + */ +NS_SWIFT_NAME(FirebaseConfiguration) +@interface FIRConfiguration : NSObject + +/** Returns the shared configuration object. */ +@property(class, nonatomic, readonly) FIRConfiguration *sharedInstance NS_SWIFT_NAME(shared); + +/** + * 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/Clocker/Frameworks/Firebase/FirebaseCore.framework/Headers/FIRLoggerLevel.h b/Clocker/Frameworks/Firebase/FirebaseCore.framework/Headers/FIRLoggerLevel.h new file mode 100644 index 0000000..dca3aa0 --- /dev/null +++ b/Clocker/Frameworks/Firebase/FirebaseCore.framework/Headers/FIRLoggerLevel.h @@ -0,0 +1,38 @@ +/* + * 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. + */ + +// Note that importing GULLoggerLevel.h will lead to a non-modular header +// import error. + +/** + * 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_INFO. */ + FIRLoggerLevelInfo = 6, + /** Debug level, matches ASL_LEVEL_DEBUG. */ + FIRLoggerLevelDebug = 7, + /** Minimum log level. */ + FIRLoggerLevelMin = FIRLoggerLevelError, + /** Maximum log level. */ + FIRLoggerLevelMax = FIRLoggerLevelDebug +} NS_SWIFT_NAME(FirebaseLoggerLevel); diff --git a/Clocker/Frameworks/Firebase/FirebaseCore.framework/Headers/FIROptions.h b/Clocker/Frameworks/Firebase/FirebaseCore.framework/Headers/FIROptions.h new file mode 100644 index 0000000..afabbf1 --- /dev/null +++ b/Clocker/Frameworks/Firebase/FirebaseCore.framework/Headers/FIROptions.h @@ -0,0 +1,126 @@ +/* + * 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_ASSUME_NONNULL_BEGIN + +/** + * This class provides constant fields of Google APIs. + */ +NS_SWIFT_NAME(FirebaseOptions) +@interface FIROptions : NSObject + +/** + * Returns the default options. The first time this is called it synchronously reads + * GoogleService-Info.plist from disk. + */ ++ (nullable FIROptions *)defaultOptions NS_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 NS_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 NS_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; + +/** + * The App Group identifier to share data between the application and the application extensions. + * The App Group must be configured in the application and on the Apple Developer Portal. Default + * value `nil`. + */ +@property(nonatomic, copy, nullable) NSString *appGroupID; + +/** + * Initializes a customized instance of FIROptions from the file at the given plist file path. This + * will read the file synchronously from disk. + * 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 NS_DESIGNATED_INITIALIZER; + +/** + * Initializes a customized instance of FIROptions with required fields. Use the mutable properties + * to modify fields for configuring specific services. + */ +// clang-format off +- (instancetype)initWithGoogleAppID:(NSString *)googleAppID + GCMSenderID:(NSString *)GCMSenderID + NS_SWIFT_NAME(init(googleAppID:gcmSenderID:)) NS_DESIGNATED_INITIALIZER; +// clang-format on + +/** Unavailable. Please use `init(contentsOfFile:)` or `init(googleAppID:gcmSenderID:)` instead. */ +- (instancetype)init NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Clocker/Frameworks/Firebase/FirebaseCore.framework/Headers/FIRVersion.h b/Clocker/Frameworks/Firebase/FirebaseCore.framework/Headers/FIRVersion.h new file mode 100644 index 0000000..651edaf --- /dev/null +++ b/Clocker/Frameworks/Firebase/FirebaseCore.framework/Headers/FIRVersion.h @@ -0,0 +1,25 @@ +/* + * Copyright 2020 Google LLC + * + * 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_ASSUME_NONNULL_BEGIN + +/** Returns the current version of Firebase. */ +NS_SWIFT_NAME(FirebaseVersion()) +NSString* FIRFirebaseVersion(void); + +NS_ASSUME_NONNULL_END diff --git a/Clocker/Frameworks/Firebase/FirebaseCore.framework/Headers/FirebaseCore.h b/Clocker/Frameworks/Firebase/FirebaseCore.framework/Headers/FirebaseCore.h new file mode 100644 index 0000000..680d604 --- /dev/null +++ b/Clocker/Frameworks/Firebase/FirebaseCore.framework/Headers/FirebaseCore.h @@ -0,0 +1,21 @@ +/* + * 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 "FIRApp.h" +#import "FIRConfiguration.h" +#import "FIRLoggerLevel.h" +#import "FIROptions.h" +#import "FIRVersion.h" diff --git a/Clocker/Frameworks/Firebase/FirebaseCore.framework/Info.plist b/Clocker/Frameworks/Firebase/FirebaseCore.framework/Info.plist new file mode 100644 index 0000000..b737553 --- /dev/null +++ b/Clocker/Frameworks/Firebase/FirebaseCore.framework/Info.plist @@ -0,0 +1,20 @@ + + + + + CFBundleExecutable + FirebaseCore + CFBundleIdentifier + com.firebase.Firebase-FirebaseCore + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + FirebaseCore + CFBundlePackageType + FMWK + CFBundleVersion + 8.2.0 + DTSDKName + iphonesimulator11.2 + + diff --git a/Clocker/Frameworks/Firebase/FirebaseCore.framework/Modules/module.modulemap b/Clocker/Frameworks/Firebase/FirebaseCore.framework/Modules/module.modulemap new file mode 100644 index 0000000..de70d90 --- /dev/null +++ b/Clocker/Frameworks/Firebase/FirebaseCore.framework/Modules/module.modulemap @@ -0,0 +1,11 @@ +framework module FirebaseCore { +umbrella header "FirebaseCore.h" +export * +module * { export * } + link framework "AppKit" + link framework "CoreTelephony" + link framework "Foundation" + link framework "Security" + link framework "SystemConfiguration" + link "z" +} diff --git a/Clocker/Frameworks/Firebase/FirebaseCoreDiagnostics.framework/FirebaseCoreDiagnostics b/Clocker/Frameworks/Firebase/FirebaseCoreDiagnostics.framework/FirebaseCoreDiagnostics new file mode 100644 index 0000000..4473fdb Binary files /dev/null and b/Clocker/Frameworks/Firebase/FirebaseCoreDiagnostics.framework/FirebaseCoreDiagnostics differ diff --git a/Clocker/Frameworks/Firebase/FirebaseCoreDiagnostics.framework/Headers/FIRCoreDiagnostics.h b/Clocker/Frameworks/Firebase/FirebaseCoreDiagnostics.framework/Headers/FIRCoreDiagnostics.h new file mode 100644 index 0000000..5076d6b --- /dev/null +++ b/Clocker/Frameworks/Firebase/FirebaseCoreDiagnostics.framework/Headers/FIRCoreDiagnostics.h @@ -0,0 +1,18 @@ +/* + * Copyright 2020 Google LLC + * + * 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. + */ + +// There are no actual public headers in the lib. This is a dummy public header to prevent Cocoapods +// from adding all internal headers as public. diff --git a/Clocker/Frameworks/Firebase/FirebaseCoreDiagnostics.framework/Headers/FirebaseCoreDiagnostics-umbrella.h b/Clocker/Frameworks/Firebase/FirebaseCoreDiagnostics.framework/Headers/FirebaseCoreDiagnostics-umbrella.h new file mode 100644 index 0000000..add21ae --- /dev/null +++ b/Clocker/Frameworks/Firebase/FirebaseCoreDiagnostics.framework/Headers/FirebaseCoreDiagnostics-umbrella.h @@ -0,0 +1,17 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + +#import "FIRCoreDiagnostics.h" + +FOUNDATION_EXPORT double FirebaseCoreDiagnosticsVersionNumber; +FOUNDATION_EXPORT const unsigned char FirebaseCoreDiagnosticsVersionString[]; + diff --git a/Clocker/Frameworks/Firebase/FirebaseCoreDiagnostics.framework/Info.plist b/Clocker/Frameworks/Firebase/FirebaseCoreDiagnostics.framework/Info.plist new file mode 100644 index 0000000..79e0e90 --- /dev/null +++ b/Clocker/Frameworks/Firebase/FirebaseCoreDiagnostics.framework/Info.plist @@ -0,0 +1,20 @@ + + + + + CFBundleExecutable + FirebaseCoreDiagnostics + CFBundleIdentifier + com.firebase.Firebase-FirebaseCoreDiagnostics + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + FirebaseCoreDiagnostics + CFBundlePackageType + FMWK + CFBundleVersion + 8.2.0 + DTSDKName + iphonesimulator11.2 + + diff --git a/Clocker/Frameworks/Firebase/FirebaseCoreDiagnostics.framework/Modules/module.modulemap b/Clocker/Frameworks/Firebase/FirebaseCoreDiagnostics.framework/Modules/module.modulemap new file mode 100644 index 0000000..ac53310 --- /dev/null +++ b/Clocker/Frameworks/Firebase/FirebaseCoreDiagnostics.framework/Modules/module.modulemap @@ -0,0 +1,10 @@ +framework module FirebaseCoreDiagnostics { +umbrella header "FirebaseCoreDiagnostics-umbrella.h" +export * +module * { export * } + link framework "CoreTelephony" + link framework "Foundation" + link framework "Security" + link framework "SystemConfiguration" + link "z" +} diff --git a/Clocker/Frameworks/Firebase/FirebaseCrashlytics.framework/FirebaseCrashlytics b/Clocker/Frameworks/Firebase/FirebaseCrashlytics.framework/FirebaseCrashlytics new file mode 100644 index 0000000..ec0c872 Binary files /dev/null and b/Clocker/Frameworks/Firebase/FirebaseCrashlytics.framework/FirebaseCrashlytics differ diff --git a/Clocker/Frameworks/Firebase/FirebaseCrashlytics.framework/Headers/FIRCrashlytics.h b/Clocker/Frameworks/Firebase/FirebaseCrashlytics.framework/Headers/FIRCrashlytics.h new file mode 100644 index 0000000..5aa0303 --- /dev/null +++ b/Clocker/Frameworks/Firebase/FirebaseCrashlytics.framework/Headers/FIRCrashlytics.h @@ -0,0 +1,230 @@ +// Copyright 2019 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 "FIRCrashlyticsReport.h" +#import "FIRExceptionModel.h" + +#if __has_include() +#warning "FirebaseCrashlytics and Crashlytics are not compatible \ +in the same app because including multiple crash reporters can \ +cause problems when registering exception handlers." +#endif + +NS_ASSUME_NONNULL_BEGIN + +/** + * The Firebase Crashlytics API provides methods to annotate and manage fatal and + * non-fatal reports captured and reported to Firebase Crashlytics. + * + * By default, Firebase Crashlytics is initialized with `[FIRApp configure]`. + * + * Note: The Crashlytics class cannot be subclassed. If this makes testing difficult, + * we suggest using a wrapper class or a protocol extension. + */ +NS_SWIFT_NAME(Crashlytics) +@interface FIRCrashlytics : NSObject + +/** :nodoc: */ +- (instancetype)init NS_UNAVAILABLE; + +/** + * Accesses the singleton Crashlytics instance. + * + * @return The singleton Crashlytics instance. + */ ++ (instancetype)crashlytics NS_SWIFT_NAME(crashlytics()); + +/** + * Adds logging that is sent with your crash data. The logging does not appear in the + * system.log and is only visible in the Crashlytics dashboard. + * + * @param msg Message to log + */ +- (void)log:(NSString *)msg; + +/** + * Adds logging that is sent with your crash data. The logging does not appear in the + * system.log and is only visible in the Crashlytics dashboard. + * + * @param format Format of string + * @param ... A comma-separated list of arguments to substitute into format + */ +- (void)logWithFormat:(NSString *)format, ... NS_FORMAT_FUNCTION(1, 2); + +/** + * Adds logging that is sent with your crash data. The logging does not appear in the + * system.log and is only visible in the Crashlytics dashboard. + * + * @param format Format of string + * @param args Arguments to substitute into format + */ +- (void)logWithFormat:(NSString *)format + arguments:(va_list)args NS_SWIFT_NAME(log(format:arguments:)); + +/** + * Sets a custom key and value to be associated with subsequent fatal and non-fatal reports. + * When setting an object value, the object is converted to a string. This is + * typically done by calling "-[NSObject description]". + * + * @param value The value to be associated with the key + * @param key A unique key + */ +- (void)setCustomValue:(id)value forKey:(NSString *)key; + +/** + * Sets custom keys and values to be associated with subsequent fatal and non-fatal reports. + * The objects in the dictionary are converted to strings. This is + * typically done by calling "-[NSObject description]". + * + * @param keysAndValues The values to be associated with the corresponding keys + */ +- (void)setCustomKeysAndValues:(NSDictionary *)keysAndValues; + +/** + * Records a user ID (identifier) that's associated with subsequent fatal and non-fatal reports. + * + * If you want to associate a crash with a specific user, we recommend specifying an arbitrary + * string (e.g., a database, ID, hash, or other value that you can index and query, but is + * meaningless to a third-party observer). This allows you to facilitate responses for support + * requests and reach out to users for more information. + * + * @param userID An arbitrary user identifier string that associates a user to a record in your + * system. + */ +- (void)setUserID:(NSString *)userID; + +/** + * Records a non-fatal event described by an NSError object. The events are + * grouped and displayed similarly to crashes. Keep in mind that this method can be expensive. + * The total number of NSErrors that can be recorded during your app's life-cycle is limited by a + * fixed-size circular buffer. If the buffer is overrun, the oldest data is dropped. Errors are + * relayed to Crashlytics on a subsequent launch of your application. + * + * @param error Non-fatal error to be recorded + */ +- (void)recordError:(NSError *)error NS_SWIFT_NAME(record(error:)); + +/** + * Records an Exception Model described by an FIRExceptionModel object. The events are + * grouped and displayed similarly to crashes. Keep in mind that this method can be expensive. + * The total number of FIRExceptionModels that can be recorded during your app's life-cycle is + * limited by a fixed-size circular buffer. If the buffer is overrun, the oldest data is dropped. + * Exception Models are relayed to Crashlytics on a subsequent launch of your application. + * + * @param exceptionModel Instance of the FIRExceptionModel to be recorded + */ +- (void)recordExceptionModel:(FIRExceptionModel *)exceptionModel + NS_SWIFT_NAME(record(exceptionModel:)); + +/** + * Returns whether the app crashed during the previous execution. + */ +- (BOOL)didCrashDuringPreviousExecution; + +/** + * Enables/disables automatic data collection. + * + * Calling this method overrides both the FirebaseCrashlyticsCollectionEnabled flag in your + * App's Info.plist and FIRApp's isDataCollectionDefaultEnabled flag. + * + * When you set a value for this method, it persists across runs of the app. + * + * The value does not apply until the next run of the app. If you want to disable data + * collection without rebooting, add the FirebaseCrashlyticsCollectionEnabled flag to your app's + * Info.plist. + * * + * @param enabled Determines whether automatic data collection is enabled + */ +- (void)setCrashlyticsCollectionEnabled:(BOOL)enabled; + +/** + * Indicates whether or not automatic data collection is enabled + * + * This method uses three ways to decide whether automatic data collection is enabled, + * in order of priority: + * - If setCrashlyticsCollectionEnabled is called with a value, use it + * - If the FirebaseCrashlyticsCollectionEnabled key is in your app's Info.plist, use it + * - Otherwise, use the default isDataCollectionDefaultEnabled in FIRApp + */ +- (BOOL)isCrashlyticsCollectionEnabled; + +/** + * Determines whether there are any unsent crash reports cached on the device, then calls the given + * callback. + * + * The callback only executes if automatic data collection is disabled. You can use + * the callback to get one-time consent from a user upon a crash, and then call + * sendUnsentReports or deleteUnsentReports, depending on whether or not the user gives consent. + * + * Disable automatic collection by: + * - Adding the FirebaseCrashlyticsCollectionEnabled: NO key to your App's Info.plist + * - Calling [[FIRCrashlytics crashlytics] setCrashlyticsCollectionEnabled:NO] in your app + * - Setting FIRApp's isDataCollectionDefaultEnabled to NO + * + * @param completion The callback that's executed once Crashlytics finishes checking for unsent + * reports. The callback is set to YES if there are unsent reports on disk. + */ +- (void)checkForUnsentReportsWithCompletion:(void (^)(BOOL))completion + NS_SWIFT_NAME(checkForUnsentReports(completion:)); + +/** + * Determines whether there are any unsent crash reports cached on the device, then calls the given + * callback with a CrashlyticsReport object that you can use to update the unsent report. + * CrashlyticsReports have a lot of the familiar Crashlytics methods like setting custom keys and + * logs. + * + * The callback only executes if automatic data collection is disabled. You can use + * the callback to get one-time consent from a user upon a crash, and then call + * sendUnsentReports or deleteUnsentReports, depending on whether or not the user gives consent. + * + * Disable automatic collection by: + * - Adding the FirebaseCrashlyticsCollectionEnabled: NO key to your App's Info.plist + * - Calling [[FIRCrashlytics crashlytics] setCrashlyticsCollectionEnabled:NO] in your app + * - Setting FIRApp's isDataCollectionDefaultEnabled to NO + * + * Not calling send/deleteUnsentReports will result in the report staying on disk, which means the + * same CrashlyticsReport can show up in multiple runs of the app. If you want avoid duplicates, + * ensure there was a crash on the last run of the app by checking the value of + * didCrashDuringPreviousExecution. + * + * @param completion The callback that's executed once Crashlytics finishes checking for unsent + * reports. The callback is called with the newest unsent Crashlytics Report, or nil if there are + * none cached on disk. + */ +- (void)checkAndUpdateUnsentReportsWithCompletion: + (void (^)(FIRCrashlyticsReport *_Nullable))completion + NS_SWIFT_NAME(checkAndUpdateUnsentReports(completion:)); + +/** + * Enqueues any unsent reports on the device to upload to Crashlytics. + * + * This method only applies if automatic data collection is disabled. + * + * When automatic data collection is enabled, Crashlytics automatically uploads and deletes reports + * at startup, so this method is ignored. + */ +- (void)sendUnsentReports; + +/** + * Deletes any unsent reports on the device. + * + * This method only applies if automatic data collection is disabled. + */ +- (void)deleteUnsentReports; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Clocker/Frameworks/Firebase/FirebaseCrashlytics.framework/Headers/FIRCrashlyticsReport.h b/Clocker/Frameworks/Firebase/FirebaseCrashlytics.framework/Headers/FIRCrashlyticsReport.h new file mode 100644 index 0000000..61c214c --- /dev/null +++ b/Clocker/Frameworks/Firebase/FirebaseCrashlytics.framework/Headers/FIRCrashlyticsReport.h @@ -0,0 +1,108 @@ +// Copyright 2021 Google LLC +// +// 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_ASSUME_NONNULL_BEGIN + +/** + * The Firebase Crashlytics Report provides a way to read and write information + * to a past Crashlytics reports. A common use case is gathering end-user feedback + * on the next run of the app. + * + * The CrashlyticsReport should be modified before calling send/deleteUnsentReports. + */ +NS_SWIFT_NAME(CrashlyticsReport) +@interface FIRCrashlyticsReport : NSObject + +/** :nodoc: */ +- (instancetype)init NS_UNAVAILABLE; + +/** + * Returns the unique ID for the Crashlytics report. + */ +@property(nonatomic, readonly) NSString *reportID; + +/** + * Returns the date that the report was created. + */ +@property(nonatomic, readonly) NSDate *dateCreated; + +/** + * Returns true when one of the events in the Crashlytics report is a crash. + */ +@property(nonatomic, readonly) BOOL hasCrash; + +/** + * Adds logging that is sent with your crash data. The logging does not appear in the + * system.log and is only visible in the Crashlytics dashboard. + * + * @param msg Message to log + */ +- (void)log:(NSString *)msg; + +/** + * Adds logging that is sent with your crash data. The logging does not appear in the + * system.log and is only visible in the Crashlytics dashboard. + * + * @param format Format of string + * @param ... A comma-separated list of arguments to substitute into format + */ +- (void)logWithFormat:(NSString *)format, ... NS_FORMAT_FUNCTION(1, 2); + +/** + * Adds logging that is sent with your crash data. The logging does not appear in the + * system.log and is only visible in the Crashlytics dashboard. + * + * @param format Format of string + * @param args Arguments to substitute into format + */ +- (void)logWithFormat:(NSString *)format + arguments:(va_list)args NS_SWIFT_NAME(log(format:arguments:)); + +/** + * Sets a custom key and value to be associated with subsequent fatal and non-fatal reports. + * When setting an object value, the object is converted to a string. This is + * typically done by calling "-[NSObject description]". + * + * @param value The value to be associated with the key + * @param key A unique key + */ +- (void)setCustomValue:(id)value forKey:(NSString *)key; + +/** + * Sets custom keys and values to be associated with subsequent fatal and non-fatal reports. + * The objects in the dictionary are converted to strings. This is + * typically done by calling "-[NSObject description]". + * + * @param keysAndValues The values to be associated with the corresponding keys + */ +- (void)setCustomKeysAndValues:(NSDictionary *)keysAndValues; + +/** + * Records a user ID (identifier) that's associated with subsequent fatal and non-fatal reports. + * + * If you want to associate a crash with a specific user, we recommend specifying an arbitrary + * string (e.g., a database, ID, hash, or other value that you can index and query, but is + * meaningless to a third-party observer). This allows you to facilitate responses for support + * requests and reach out to users for more information. + * + * @param userID An arbitrary user identifier string that associates a user to a record in your + * system. + */ +- (void)setUserID:(NSString *)userID; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Clocker/Frameworks/Firebase/FirebaseCrashlytics.framework/Headers/FIRExceptionModel.h b/Clocker/Frameworks/Firebase/FirebaseCrashlytics.framework/Headers/FIRExceptionModel.h new file mode 100644 index 0000000..5458dcc --- /dev/null +++ b/Clocker/Frameworks/Firebase/FirebaseCrashlytics.framework/Headers/FIRExceptionModel.h @@ -0,0 +1,57 @@ +// Copyright 2020 Google LLC +// +// 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 "FIRStackFrame.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + * The Firebase Crashlytics Exception Model provides a way to report custom exceptions + * to Crashlytics that came from a runtime environment outside of the native + * platform Crashlytics is running in. + */ +NS_SWIFT_NAME(ExceptionModel) +@interface FIRExceptionModel : NSObject + +/** :nodoc: */ +- (instancetype)init NS_UNAVAILABLE; + +/** + * Initializes an Exception Model model with the given required fields. + * + * @param name - typically the type of the Exception class + * @param reason - the human-readable reason the issue occurred + */ +- (instancetype)initWithName:(NSString *)name reason:(NSString *)reason; + +/** + * Creates an Exception Model model with the given required fields. + * + * @param name - typically the type of the Exception class + * @param reason - the human-readable reason the issue occurred + */ ++ (instancetype)exceptionModelWithName:(NSString *)name + reason:(NSString *)reason NS_SWIFT_UNAVAILABLE(""); + +/** + * A list of Stack Frames that make up the stack trace. The order of the stack trace is top-first, + * so typically the "main" function is the last element in this list. + */ +@property(nonatomic, copy) NSArray *stackTrace; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Clocker/Frameworks/Firebase/FirebaseCrashlytics.framework/Headers/FIRStackFrame.h b/Clocker/Frameworks/Firebase/FirebaseCrashlytics.framework/Headers/FIRStackFrame.h new file mode 100644 index 0000000..5a9289a --- /dev/null +++ b/Clocker/Frameworks/Firebase/FirebaseCrashlytics.framework/Headers/FIRStackFrame.h @@ -0,0 +1,63 @@ +// Copyright 2020 Google LLC +// +// 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_ASSUME_NONNULL_BEGIN + +/** + * The Firebase Crashlytics Stack Frame provides a way to construct the lines of + * a stack trace for reporting along with a recorded Exception Model. + */ +NS_SWIFT_NAME(StackFrame) +@interface FIRStackFrame : NSObject + +/** :nodoc: */ +- (instancetype)init NS_UNAVAILABLE; + +/** + * Initializes a symbolicated Stack Frame with the given required fields. Symbolicated + * Stack Frames will appear in the Crashlytics dashboard as reported in these fields. + * + * @param symbol - The function or method name + * @param file - the file where the exception occurred + * @param line - the line number + */ +- (instancetype)initWithSymbol:(NSString *)symbol file:(NSString *)file line:(NSInteger)line; + +/** + * Creates a symbolicated Stack Frame from an address. The address will be + * symbolicated in the Crashlytics backend for the customer and reported in the + * Crahslytics dashboard with the appropriate file name and line number. If an + * invalid address is provided it will appear in the dashboard as missing. + * + * @param address - the address where the exception occurred + */ ++ (instancetype)stackFrameWithAddress:(NSUInteger)address; + +/** + * Creates a symbolicated Stack Frame with the given required fields. Symbolicated + * Stack Frames will appear in the Crashlytics dashboard as reported in these fields. * + * + * @param symbol - The function or method name + * @param file - the file where the exception occurred + * @param line - the line number + */ ++ (instancetype)stackFrameWithSymbol:(NSString *)symbol + file:(NSString *)file + line:(NSInteger)line NS_SWIFT_UNAVAILABLE(""); + +@end + +NS_ASSUME_NONNULL_END diff --git a/Clocker/Frameworks/Firebase/FirebaseCrashlytics.framework/Headers/FirebaseCrashlytics.h b/Clocker/Frameworks/Firebase/FirebaseCrashlytics.framework/Headers/FirebaseCrashlytics.h new file mode 100644 index 0000000..280ab81 --- /dev/null +++ b/Clocker/Frameworks/Firebase/FirebaseCrashlytics.framework/Headers/FirebaseCrashlytics.h @@ -0,0 +1,20 @@ +/* + * Copyright 2019 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 "FIRCrashlytics.h" +#import "FIRCrashlyticsReport.h" +#import "FIRExceptionModel.h" +#import "FIRStackFrame.h" diff --git a/Clocker/Frameworks/Firebase/FirebaseCrashlytics.framework/Info.plist b/Clocker/Frameworks/Firebase/FirebaseCrashlytics.framework/Info.plist new file mode 100644 index 0000000..3cf1a7d --- /dev/null +++ b/Clocker/Frameworks/Firebase/FirebaseCrashlytics.framework/Info.plist @@ -0,0 +1,20 @@ + + + + + CFBundleExecutable + FirebaseCrashlytics + CFBundleIdentifier + com.firebase.Firebase-FirebaseCrashlytics + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + FirebaseCrashlytics + CFBundlePackageType + FMWK + CFBundleVersion + 8.2.0 + DTSDKName + iphonesimulator11.2 + + diff --git a/Clocker/Frameworks/Firebase/FirebaseCrashlytics.framework/Modules/module.modulemap b/Clocker/Frameworks/Firebase/FirebaseCrashlytics.framework/Modules/module.modulemap new file mode 100644 index 0000000..dbae91b --- /dev/null +++ b/Clocker/Frameworks/Firebase/FirebaseCrashlytics.framework/Modules/module.modulemap @@ -0,0 +1,12 @@ +framework module FirebaseCrashlytics { +umbrella header "FirebaseCrashlytics.h" +export * +module * { export * } + link framework "AppKit" + link framework "CoreTelephony" + link framework "Foundation" + link framework "Security" + link framework "SystemConfiguration" + link "c++" + link "z" +} diff --git a/Clocker/Frameworks/Firebase/FirebaseDatabase.framework/FirebaseDatabase b/Clocker/Frameworks/Firebase/FirebaseDatabase.framework/FirebaseDatabase new file mode 100644 index 0000000..ff7a59a Binary files /dev/null and b/Clocker/Frameworks/Firebase/FirebaseDatabase.framework/FirebaseDatabase differ diff --git a/Clocker/Frameworks/Firebase/FirebaseDatabase.framework/Headers/FIRDataEventType.h b/Clocker/Frameworks/Firebase/FirebaseDatabase.framework/Headers/FIRDataEventType.h new file mode 100644 index 0000000..3aecd81 --- /dev/null +++ b/Clocker/Frameworks/Firebase/FirebaseDatabase.framework/Headers/FIRDataEventType.h @@ -0,0 +1,39 @@ +/* + * 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 Firebase_FIRDataEventType_h +#define Firebase_FIRDataEventType_h + +#import + +/** + * This enum is the set of events that you can observe at a Firebase Database + * location. + */ +typedef NS_ENUM(NSInteger, FIRDataEventType) { + /// A new child node is added to a location. + FIRDataEventTypeChildAdded, + /// A child node is removed from a location. + FIRDataEventTypeChildRemoved, + /// A child node at a location changes. + FIRDataEventTypeChildChanged, + /// A child node moves relative to the other child nodes at a location. + FIRDataEventTypeChildMoved, + /// Any data changes at a location or, recursively, at any child node. + FIRDataEventTypeValue +} NS_SWIFT_NAME(DataEventType); + +#endif diff --git a/Clocker/Frameworks/Firebase/FirebaseDatabase.framework/Headers/FIRDataSnapshot.h b/Clocker/Frameworks/Firebase/FirebaseDatabase.framework/Headers/FIRDataSnapshot.h new file mode 100644 index 0000000..e88febb --- /dev/null +++ b/Clocker/Frameworks/Firebase/FirebaseDatabase.framework/Headers/FIRDataSnapshot.h @@ -0,0 +1,142 @@ +/* + * 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_ASSUME_NONNULL_BEGIN + +@class FIRDatabaseReference; + +/** + * A FIRDataSnapshot contains data from a Firebase Database location. Any time + * you read Firebase data, you receive the data as a FIRDataSnapshot. + * + * FIRDataSnapshots are passed to the blocks you attach with + * observeEventType:withBlock: or observeSingleEvent:withBlock:. They are + * efficiently-generated immutable copies of the data at a Firebase Database + * location. They can't be modified and will never change. To modify data at a + * location, use a FIRDatabaseReference (e.g. with setValue:). + */ +NS_SWIFT_NAME(DataSnapshot) +@interface FIRDataSnapshot : NSObject + +#pragma mark - Navigating and inspecting a snapshot + +/** + * Gets a FIRDataSnapshot for the location at the specified relative path. + * The relative path can either be a simple child key (e.g. 'fred') + * or a deeper slash-separated path (e.g. 'fred/name/first'). If the child + * location has no data, an empty FIRDataSnapshot is returned. + * + * @param childPathString A relative path to the location of child data. + * @return The FIRDataSnapshot for the child location. + */ +- (FIRDataSnapshot *)childSnapshotForPath:(NSString *)childPathString; + +/** + * Return YES if the specified child exists. + * + * @param childPathString A relative path to the location of a potential child. + * @return YES if data exists at the specified childPathString, else NO. + */ +- (BOOL)hasChild:(NSString *)childPathString; + +/** + * Return YES if the DataSnapshot has any children. + * + * @return YES if this snapshot has any children, else NO. + */ +- (BOOL)hasChildren; + +/** + * Return YES if the DataSnapshot contains a non-null value. + * + * @return YES if this snapshot contains a non-null value, else NO. + */ +- (BOOL)exists; + +#pragma mark - Data export + +/** + * Returns the raw value at this location, coupled with any metadata, such as + * priority. + * + * Priorities, where they exist, are accessible under the ".priority" key in + * instances of NSDictionary. For leaf locations with priorities, the value will + * be under the ".value" key. + */ +- (id __nullable)valueInExportFormat; + +#pragma mark - Properties + +/** + * Returns the contents of this data snapshot as native types. + * + * Data types returned: + * + NSDictionary + * + NSArray + * + NSNumber (also includes booleans) + * + NSString + * + * @return The data as a native object. + */ +@property(strong, readonly, nonatomic, nullable) id value; + +/** + * Gets the number of children for this DataSnapshot. + * + * @return An integer indicating the number of children. + */ +@property(readonly, nonatomic) NSUInteger childrenCount; + +/** + * Gets a FIRDatabaseReference for the location that this data came from. + * + * @return A FIRDatabaseReference instance for the location of this data. + */ +@property(nonatomic, readonly, strong) FIRDatabaseReference *ref; + +/** + * The key of the location that generated this FIRDataSnapshot. + * + * @return An NSString containing the key for the location of this + * FIRDataSnapshot. + */ +@property(strong, readonly, nonatomic) NSString *key; + +/** + * An iterator for snapshots of the child nodes in this snapshot. + * You can use the native for..in syntax: + * + * for (FIRDataSnapshot* child in snapshot.children) { + * ... + * } + * + * @return An NSEnumerator of the children. + */ +@property(strong, readonly, nonatomic) + NSEnumerator *children; + +/** + * The priority of the data in this FIRDataSnapshot. + * + * @return The priority as a string, or nil if no priority was set. + */ +@property(strong, readonly, nonatomic, nullable) id priority; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Clocker/Frameworks/Firebase/FirebaseDatabase.framework/Headers/FIRDatabase.h b/Clocker/Frameworks/Firebase/FirebaseDatabase.framework/Headers/FIRDatabase.h new file mode 100644 index 0000000..d5733f7 --- /dev/null +++ b/Clocker/Frameworks/Firebase/FirebaseDatabase.framework/Headers/FIRDatabase.h @@ -0,0 +1,186 @@ +/* + * 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 "FIRDatabaseReference.h" +#import + +@class FIRApp; + +NS_ASSUME_NONNULL_BEGIN + +/** + * The entry point for accessing a Firebase Database. You can get an instance + * by calling [FIRDatabase database]. To access a location in the database and + * read or write data, use [FIRDatabase reference]. + */ +NS_SWIFT_NAME(Database) +@interface FIRDatabase : NSObject + +/** + * The NSObject initializer that has been marked as unavailable. Use the + * `database` class method instead. + */ +- (instancetype)init + __attribute__((unavailable("use the database method instead"))); + +/** + * Gets the instance of FIRDatabase for the default FIRApp. + * + * @return A FIRDatabase instance. + */ ++ (FIRDatabase *)database NS_SWIFT_NAME(database()); + +/** + * Gets a FirebaseDatabase instance for the specified URL. + * + * @param url The URL to the Firebase Database instance you want to access. + * @return A FIRDatabase instance. + */ ++ (FIRDatabase *)databaseWithURL:(NSString *)url NS_SWIFT_NAME(database(url:)); + +/** + * Gets a FirebaseDatabase instance for the specified URL, using the specified + * FirebaseApp. + * + * @param app The FIRApp to get a FIRDatabase for. + * @param url The URL to the Firebase Database instance you want to access. + * @return A FIRDatabase instance. + */ +// clang-format off ++ (FIRDatabase *)databaseForApp:(FIRApp *)app + URL:(NSString *)url NS_SWIFT_NAME(database(app:url:)); +// clang-format on + +/** + * Gets an instance of FIRDatabase for a specific FIRApp. + * + * @param app The FIRApp to get a FIRDatabase for. + * @return A FIRDatabase instance. + */ ++ (FIRDatabase *)databaseForApp:(FIRApp *)app NS_SWIFT_NAME(database(app:)); + +/** The FIRApp instance to which this FIRDatabase belongs. */ +@property(weak, readonly, nonatomic) FIRApp *app; + +/** + * Gets a FIRDatabaseReference for the root of your Firebase Database. + */ +- (FIRDatabaseReference *)reference; + +/** + * Gets a FIRDatabaseReference for the provided path. + * + * @param path Path to a location in your Firebase Database. + * @return A FIRDatabaseReference pointing to the specified path. + */ +- (FIRDatabaseReference *)referenceWithPath:(NSString *)path; + +/** + * Gets a FIRDatabaseReference for the provided URL. The URL must be a URL to a + * path within this Firebase Database. To create a FIRDatabaseReference to a + * different database, create a FIRApp with a FIROptions object configured with + * the appropriate database URL. + * + * @param databaseUrl A URL to a path within your database. + * @return A FIRDatabaseReference for the provided URL. + */ +- (FIRDatabaseReference *)referenceFromURL:(NSString *)databaseUrl; + +/** + * The Firebase Database client automatically queues writes and sends them to + * the server at the earliest opportunity, depending on network connectivity. In + * some cases (e.g. offline usage) there may be a large number of writes waiting + * to be sent. Calling this method will purge all outstanding writes so they are + * abandoned. + * + * All writes will be purged, including transactions and onDisconnect writes. + * The writes will be rolled back locally, perhaps triggering events for + * affected event listeners, and the client will not (re-)send them to the + * Firebase Database backend. + */ +- (void)purgeOutstandingWrites; + +/** + * Shuts down our connection to the Firebase Database backend until goOnline is + * called. + */ +- (void)goOffline; + +/** + * Resumes our connection to the Firebase Database backend after a previous + * goOffline call. + */ +- (void)goOnline; + +/** + * The Firebase Database client will cache synchronized data and keep track of + * all writes you've initiated while your application is running. It seamlessly + * handles intermittent network connections and re-sends write operations when + * the network connection is restored. + * + * However by default your write operations and cached data are only stored + * in-memory and will be lost when your app restarts. By setting this value to + * `YES`, the data will be persisted to on-device (disk) storage and will thus + * be available again when the app is restarted (even when there is no network + * connectivity at that time). Note that this property must be set before + * creating your first Database reference and only needs to be called once per + * application. + * + */ +@property(nonatomic) BOOL persistenceEnabled NS_SWIFT_NAME(isPersistenceEnabled) + ; + +/** + * By default the Firebase Database client will use up to 10MB of disk space to + * cache data. If the cache grows beyond this size, the client will start + * removing data that hasn't been recently used. If you find that your + * application caches too little or too much data, call this method to change + * the cache size. This property must be set before creating your first + * FIRDatabaseReference and only needs to be called once per application. + * + * Note that the specified cache size is only an approximation and the size on + * disk may temporarily exceed it at times. Cache sizes smaller than 1 MB or + * greater than 100 MB are not supported. + */ +@property(nonatomic) NSUInteger persistenceCacheSizeBytes; + +/** + * Sets the dispatch queue on which all events are raised. The default queue is + * the main queue. + * + * Note that this must be set before creating your first Database reference. + */ +@property(nonatomic, strong) dispatch_queue_t callbackQueue; + +/** + * Enables verbose diagnostic logging. + * + * @param enabled YES to enable logging, NO to disable. + */ ++ (void)setLoggingEnabled:(BOOL)enabled; + +/** Retrieve the Firebase Database SDK version. */ ++ (NSString *)sdkVersion; + +/** + * Configures the database to use an emulated backend instead of the default + * remote backend. + */ +- (void)useEmulatorWithHost:(NSString *)host port:(NSInteger)port; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Clocker/Frameworks/Firebase/FirebaseDatabase.framework/Headers/FIRDatabaseQuery.h b/Clocker/Frameworks/Firebase/FirebaseDatabase.framework/Headers/FIRDatabaseQuery.h new file mode 100644 index 0000000..54ce8bc --- /dev/null +++ b/Clocker/Frameworks/Firebase/FirebaseDatabase.framework/Headers/FIRDatabaseQuery.h @@ -0,0 +1,467 @@ +/* + * 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 "FIRDataEventType.h" +#import "FIRDataSnapshot.h" +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + * A FIRDatabaseHandle is used to identify listeners of Firebase Database + * events. These handles are returned by observeEventType: and can later be + * passed to removeObserverWithHandle: to stop receiving updates. + */ +typedef NSUInteger FIRDatabaseHandle NS_SWIFT_NAME(DatabaseHandle); + +/** + * A FIRDatabaseQuery instance represents a query over the data at a particular + * location. + * + * You create one by calling one of the query methods (queryOrderedByChild:, + * queryStartingAtValue:, etc.) on a FIRDatabaseReference. The query methods can + * be chained to further specify the data you are interested in observing + */ +NS_SWIFT_NAME(DatabaseQuery) +@interface FIRDatabaseQuery : NSObject + +#pragma mark - Attach observers to read data + +/** + * observeEventType:withBlock: is used to listen for data changes at a + * particular location. This is the primary way to read data from the Firebase + * Database. Your block will be triggered for the initial data and again + * whenever the data changes. + * + * Use removeObserverWithHandle: to stop receiving updates. + * + * @param eventType The type of event to listen for. + * @param block The block that should be called with initial data and updates. + * It is passed the data as a FIRDataSnapshot. + * @return A handle used to unregister this block later using + * removeObserverWithHandle: + */ +- (FIRDatabaseHandle)observeEventType:(FIRDataEventType)eventType + withBlock: + (void (^)(FIRDataSnapshot *snapshot))block; + +/** + * observeEventType:andPreviousSiblingKeyWithBlock: is used to listen for data + * changes at a particular location. This is the primary way to read data from + * the Firebase Database. Your block will be triggered for the initial data and + * again whenever the data changes. In addition, for FIRDataEventTypeChildAdded, + * FIRDataEventTypeChildMoved, and FIRDataEventTypeChildChanged events, your + * block will be passed the key of the previous node by priority order. + * + * Use removeObserverWithHandle: to stop receiving updates. + * + * @param eventType The type of event to listen for. + * @param block The block that should be called with initial data and updates. + * It is passed the data as a FIRDataSnapshot and the previous child's key. + * @return A handle used to unregister this block later using + * removeObserverWithHandle: + */ +- (FIRDatabaseHandle)observeEventType:(FIRDataEventType)eventType + andPreviousSiblingKeyWithBlock: + (void (^)(FIRDataSnapshot *snapshot, + NSString *__nullable prevKey))block; + +/** + * observeEventType:withBlock: is used to listen for data changes at a + * particular location. This is the primary way to read data from the Firebase + * Database. Your block will be triggered for the initial data and again + * whenever the data changes. + * + * The cancelBlock will be called if you will no longer receive new events due + * to no longer having permission. + * + * Use removeObserverWithHandle: to stop receiving updates. + * + * @param eventType The type of event to listen for. + * @param block The block that should be called with initial data and updates. + * It is passed the data as a FIRDataSnapshot. + * @param cancelBlock The block that should be called if this client no longer + * has permission to receive these events + * @return A handle used to unregister this block later using + * removeObserverWithHandle: + */ +- (FIRDatabaseHandle)observeEventType:(FIRDataEventType)eventType + withBlock:(void (^)(FIRDataSnapshot *snapshot))block + withCancelBlock: + (nullable void (^)(NSError *error))cancelBlock; + +/** + * observeEventType:andPreviousSiblingKeyWithBlock: is used to listen for data + * changes at a particular location. This is the primary way to read data from + * the Firebase Database. Your block will be triggered for the initial data and + * again whenever the data changes. In addition, for FIRDataEventTypeChildAdded, + * FIRDataEventTypeChildMoved, and FIRDataEventTypeChildChanged events, your + * block will be passed the key of the previous node by priority order. + * + * The cancelBlock will be called if you will no longer receive new events due + * to no longer having permission. + * + * Use removeObserverWithHandle: to stop receiving updates. + * + * @param eventType The type of event to listen for. + * @param block The block that should be called with initial data and updates. + * It is passed the data as a FIRDataSnapshot and the previous child's key. + * @param cancelBlock The block that should be called if this client no longer + * has permission to receive these events + * @return A handle used to unregister this block later using + * removeObserverWithHandle: + */ +- (FIRDatabaseHandle)observeEventType:(FIRDataEventType)eventType + andPreviousSiblingKeyWithBlock: + (void (^)(FIRDataSnapshot *snapshot, + NSString *__nullable prevKey))block + withCancelBlock: + (nullable void (^)(NSError *error))cancelBlock; + +/** + * getDataWithCompletionBlock: is used to get the most up-to-date value for + * this query. This method updates the cache and raises events if successful. If + * not connected, falls back to a locally-cached value. + * + * @param block The block that should be called with the most up-to-date value + * of this query, or an error if no such value could be retrieved. + */ +- (void)getDataWithCompletionBlock: + (void (^_Nonnull)(NSError *__nullable error, + FIRDataSnapshot *snapshot))block + NS_SWIFT_NAME(getData(completion:)); + +/** + * This is equivalent to observeEventType:withBlock:, except the block is + * immediately canceled after the initial data is returned. + * + * @param eventType The type of event to listen for. + * @param block The block that should be called. It is passed the data as a + * FIRDataSnapshot. + */ +- (void)observeSingleEventOfType:(FIRDataEventType)eventType + withBlock:(void (^)(FIRDataSnapshot *snapshot))block; + +/** + * This is equivalent to observeEventType:withBlock:, except the block is + * immediately canceled after the initial data is returned. In addition, for + * FIRDataEventTypeChildAdded, FIRDataEventTypeChildMoved, and + * FIRDataEventTypeChildChanged events, your block will be passed the key of the + * previous node by priority order. + * + * @param eventType The type of event to listen for. + * @param block The block that should be called. It is passed the data as a + * FIRDataSnapshot and the previous child's key. + */ +- (void)observeSingleEventOfType:(FIRDataEventType)eventType + andPreviousSiblingKeyWithBlock: + (void (^)(FIRDataSnapshot *snapshot, + NSString *__nullable prevKey))block; + +/** + * This is equivalent to observeEventType:withBlock:, except the block is + * immediately canceled after the initial data is returned. + * + * The cancelBlock will be called if you do not have permission to read data at + * this location. + * + * @param eventType The type of event to listen for. + * @param block The block that should be called. It is passed the data as a + * FIRDataSnapshot. + * @param cancelBlock The block that will be called if you don't have permission + * to access this data + */ +- (void)observeSingleEventOfType:(FIRDataEventType)eventType + withBlock:(void (^)(FIRDataSnapshot *snapshot))block + withCancelBlock:(nullable void (^)(NSError *error))cancelBlock; + +/** + * This is equivalent to observeEventType:withBlock:, except the block is + * immediately canceled after the initial data is returned. In addition, for + * FIRDataEventTypeChildAdded, FIRDataEventTypeChildMoved, and + * FIRDataEventTypeChildChanged events, your block will be passed the key of the + * previous node by priority order. + * + * The cancelBlock will be called if you do not have permission to read data at + * this location. + * + * @param eventType The type of event to listen for. + * @param block The block that should be called. It is passed the data as a + * FIRDataSnapshot and the previous child's key. + * @param cancelBlock The block that will be called if you don't have permission + * to access this data + */ +- (void)observeSingleEventOfType:(FIRDataEventType)eventType + andPreviousSiblingKeyWithBlock:(void (^)(FIRDataSnapshot *snapshot, + NSString *__nullable prevKey))block + withCancelBlock: + (nullable void (^)(NSError *error))cancelBlock; + +#pragma mark - Detaching observers + +/** + * Detach a block previously attached with observeEventType:withBlock:. + * + * @param handle The handle returned by the call to observeEventType:withBlock: + * which we are trying to remove. + */ +- (void)removeObserverWithHandle:(FIRDatabaseHandle)handle; + +/** + * Detach all blocks previously attached to this Firebase Database location with + * observeEventType:withBlock: + */ +- (void)removeAllObservers; + +/** + * By calling `keepSynced:YES` on a location, the data for that location will + * automatically be downloaded and kept in sync, even when no listeners are + * attached for that location. Additionally, while a location is kept synced, it + * will not be evicted from the persistent disk cache. + * + * @param keepSynced Pass YES to keep this location synchronized, pass NO to + * stop synchronization. + */ +- (void)keepSynced:(BOOL)keepSynced; + +#pragma mark - Querying and limiting + +/** + * queryLimitedToFirst: is used to generate a reference to a limited view of the + * data at this location. The FIRDatabaseQuery instance returned by + * queryLimitedToFirst: will respond to at most the first limit child nodes. + * + * @param limit The upper bound, inclusive, for the number of child nodes to + * receive events for + * @return A FIRDatabaseQuery instance, limited to at most limit child nodes. + */ +- (FIRDatabaseQuery *)queryLimitedToFirst:(NSUInteger)limit; + +/** + * queryLimitedToLast: is used to generate a reference to a limited view of the + * data at this location. The FIRDatabaseQuery instance returned by + * queryLimitedToLast: will respond to at most the last limit child nodes. + * + * @param limit The upper bound, inclusive, for the number of child nodes to + * receive events for + * @return A FIRDatabaseQuery instance, limited to at most limit child nodes. + */ +- (FIRDatabaseQuery *)queryLimitedToLast:(NSUInteger)limit; + +/** + * queryOrderBy: is used to generate a reference to a view of the data that's + * been sorted by the values of a particular child key. This method is intended + * to be used in combination with queryStartingAtValue:, queryEndingAtValue:, or + * queryEqualToValue:. + * + * @param key The child key to use in ordering data visible to the returned + * FIRDatabaseQuery + * @return A FIRDatabaseQuery instance, ordered by the values of the specified + * child key. + */ +- (FIRDatabaseQuery *)queryOrderedByChild:(NSString *)key; + +/** + * queryOrderedByKey: is used to generate a reference to a view of the data + * that's been sorted by child key. This method is intended to be used in + * combination with queryStartingAtValue:, queryEndingAtValue:, or + * queryEqualToValue:. + * + * @return A FIRDatabaseQuery instance, ordered by child keys. + */ +- (FIRDatabaseQuery *)queryOrderedByKey; + +/** + * queryOrderedByValue: is used to generate a reference to a view of the data + * that's been sorted by child value. This method is intended to be used in + * combination with queryStartingAtValue:, queryEndingAtValue:, or + * queryEqualToValue:. + * + * @return A FIRDatabaseQuery instance, ordered by child value. + */ +- (FIRDatabaseQuery *)queryOrderedByValue; + +/** + * queryOrderedByPriority: is used to generate a reference to a view of the data + * that's been sorted by child priority. This method is intended to be used in + * combination with queryStartingAtValue:, queryEndingAtValue:, or + * queryEqualToValue:. + * + * @return A FIRDatabaseQuery instance, ordered by child priorities. + */ +- (FIRDatabaseQuery *)queryOrderedByPriority; + +/** + * queryStartingAtValue: is used to generate a reference to a limited view of + * the data at this location. The FIRDatabaseQuery instance returned by + * queryStartingAtValue: will respond to events at nodes with a value greater + * than or equal to startValue. + * + * @param startValue The lower bound, inclusive, for the value of data visible + * to the returned FIRDatabaseQuery + * @return A FIRDatabaseQuery instance, limited to data with value greater than + * or equal to startValue + */ +- (FIRDatabaseQuery *)queryStartingAtValue:(nullable id)startValue; + +/** + * queryStartingAtValue:childKey: is used to generate a reference to a limited + * view of the data at this location. The FIRDatabaseQuery instance returned by + * queryStartingAtValue:childKey will respond to events at nodes with a value + * greater than startValue, or equal to startValue and with a key greater than + * or equal to childKey. This is most useful when implementing pagination in a + * case where multiple nodes can match the startValue. + * + * @param startValue The lower bound, inclusive, for the value of data visible + * to the returned FIRDatabaseQuery + * @param childKey The lower bound, inclusive, for the key of nodes with value + * equal to startValue + * @return A FIRDatabaseQuery instance, limited to data with value greater than + * or equal to startValue + */ +- (FIRDatabaseQuery *)queryStartingAtValue:(nullable id)startValue + childKey:(nullable NSString *)childKey; + +/** + * queryStartingAfterValue: is used to generate a reference to a + * limited view of the data at this location. The FIRDatabaseQuery instance + * returned by queryStartingAfterValue: will respond to events at nodes + * with a value greater than startAfterValue. + * + * @param startAfterValue The lower bound, exclusive, for the value of data + * visible to the returned FIRDatabaseQuery + * @return A FIRDatabaseQuery instance, limited to data with value greater + * startAfterValue + */ +- (FIRDatabaseQuery *)queryStartingAfterValue:(nullable id)startAfterValue; + +/** + * queryStartingAfterValue:childKey: is used to generate a reference to a + * limited view of the data at this location. The FIRDatabaseQuery instance + * returned by queryStartingAfterValue:childKey will respond to events at nodes + * with a value greater than startAfterValue, or equal to startAfterValue and + * with a key greater than childKey. This is most useful when implementing + * pagination in a case where multiple nodes can match the startAfterValue. + * + * @param startAfterValue The lower bound, inclusive, for the value of data + * visible to the returned FIRDatabaseQuery + * @param childKey The lower bound, exclusive, for the key of nodes with value + * equal to startAfterValue + * @return A FIRDatabaseQuery instance, limited to data with value greater than + * startAfterValue, or equal to startAfterValue with a key greater than childKey + */ +- (FIRDatabaseQuery *)queryStartingAfterValue:(nullable id)startAfterValue + childKey:(nullable NSString *)childKey; +/** + * queryEndingAtValue: is used to generate a reference to a limited view of the + * data at this location. The FIRDatabaseQuery instance returned by + * queryEndingAtValue: will respond to events at nodes with a value less than or + * equal to endValue. + * + * @param endValue The upper bound, inclusive, for the value of data visible to + * the returned FIRDatabaseQuery + * @return A FIRDatabaseQuery instance, limited to data with value less than or + * equal to endValue + */ +- (FIRDatabaseQuery *)queryEndingAtValue:(nullable id)endValue; + +/** + * queryEndingAtValue:childKey: is used to generate a reference to a limited + * view of the data at this location. The FIRDatabaseQuery instance returned by + * queryEndingAtValue:childKey will respond to events at nodes with a value less + * than endValue, or equal to endValue and with a key less than or equal to + * childKey. This is most useful when implementing pagination in a case where + * multiple nodes can match the endValue. + * + * @param endValue The upper bound, inclusive, for the value of data visible to + * the returned FIRDatabaseQuery + * @param childKey The upper bound, inclusive, for the key of nodes with value + * equal to endValue + * @return A FIRDatabaseQuery instance, limited to data with value less than or + * equal to endValue + */ +- (FIRDatabaseQuery *)queryEndingAtValue:(nullable id)endValue + childKey:(nullable NSString *)childKey; + +/** + * queryEndingBeforeValue: is used to generate a reference to a limited view of + * the data at this location. The FIRDatabaseQuery instance returned by + * queryEndingBeforeValue: will respond to events at nodes with a value less + * than endValue. + * + * @param endValue The upper bound, exclusive, for the value of data visible to + * the returned FIRDatabaseQuery + * @return A FIRDatabaseQuery instance, limited to data with value less than + * endValue + */ +- (FIRDatabaseQuery *)queryEndingBeforeValue:(nullable id)endValue; + +/** + * queryEndingBeforeValue:childKey: is used to generate a reference to a limited + * view of the data at this location. The FIRDatabaseQuery instance returned by + * queryEndingBeforeValue:childKey will respond to events at nodes with a value + * less than endValue, or equal to endValue and with a key less than childKey. + * + * @param endValue The upper bound, inclusive, for the value of data visible to + * the returned FIRDatabaseQuery + * @param childKey The upper bound, exclusive, for the key of nodes with value + * equal to endValue + * @return A FIRDatabaseQuery instance, limited to data with value less than or + * equal to endValue + */ +- (FIRDatabaseQuery *)queryEndingBeforeValue:(nullable id)endValue + childKey:(nullable NSString *)childKey; + +/** + * queryEqualToValue: is used to generate a reference to a limited view of the + * data at this location. The FIRDatabaseQuery instance returned by + * queryEqualToValue: will respond to events at nodes with a value equal to the + * supplied argument. + * + * @param value The value that the data returned by this FIRDatabaseQuery will + * have + * @return A FIRDatabaseQuery instance, limited to data with the supplied value. + */ +- (FIRDatabaseQuery *)queryEqualToValue:(nullable id)value; + +/** + * queryEqualToValue:childKey: is used to generate a reference to a limited view + * of the data at this location. The FIRDatabaseQuery instance returned by + * queryEqualToValue:childKey will respond to events at nodes with a value equal + * to the supplied argument and with their key equal to childKey. There will be + * at most one node that matches because child keys are unique. + * + * @param value The value that the data returned by this FIRDatabaseQuery will + * have + * @param childKey The name of nodes with the right value + * @return A FIRDatabaseQuery instance, limited to data with the supplied value + * and the key. + */ +- (FIRDatabaseQuery *)queryEqualToValue:(nullable id)value + childKey:(nullable NSString *)childKey; + +#pragma mark - Properties + +/** + * Gets a FIRDatabaseReference for the location of this query. + * + * @return A FIRDatabaseReference for the location of this query. + */ +@property(nonatomic, readonly, strong) FIRDatabaseReference *ref; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Clocker/Frameworks/Firebase/FirebaseDatabase.framework/Headers/FIRDatabaseReference.h b/Clocker/Frameworks/Firebase/FirebaseDatabase.framework/Headers/FIRDatabaseReference.h new file mode 100644 index 0000000..06bbd76 --- /dev/null +++ b/Clocker/Frameworks/Firebase/FirebaseDatabase.framework/Headers/FIRDatabaseReference.h @@ -0,0 +1,906 @@ +/* + * 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 "FIRDataSnapshot.h" +#import "FIRDatabase.h" +#import "FIRDatabaseQuery.h" +#import "FIRMutableData.h" +#import "FIRServerValue.h" +#import "FIRTransactionResult.h" +#import + +NS_ASSUME_NONNULL_BEGIN + +@class FIRDatabase; + +/** + * A FIRDatabaseReference represents a particular location in your Firebase + * Database and can be used for reading or writing data to that Firebase + * Database location. + * + * This class is the starting point for all Firebase Database operations. After + * you've obtained your first FIRDatabaseReference via [FIRDatabase reference], + * you can use it to read data (ie. observeEventType:withBlock:), write data + * (ie. setValue:), and to create new FIRDatabaseReferences (ie. child:). + */ +NS_SWIFT_NAME(DatabaseReference) +@interface FIRDatabaseReference : FIRDatabaseQuery + +#pragma mark - Getting references to children locations + +/** + * Gets a FIRDatabaseReference for the location at the specified relative path. + * The relative path can either be a simple child key (e.g. 'fred') or a + * deeper slash-separated path (e.g. 'fred/name/first'). + * + * @param pathString A relative path from this location to the desired child + * location. + * @return A FIRDatabaseReference for the specified relative path. + */ +- (FIRDatabaseReference *)child:(NSString *)pathString; + +/** + * childByAutoId generates a new child location using a unique key and returns a + * FIRDatabaseReference to it. This is useful when the children of a Firebase + * Database location represent a list of items. + * + * The unique key generated by childByAutoId: is prefixed with a + * client-generated timestamp so that the resulting list will be + * chronologically-sorted. + * + * @return A FIRDatabaseReference for the generated location. + */ +- (FIRDatabaseReference *)childByAutoId; + +#pragma mark - Writing data + +/** Write data to this Firebase Database location. + +This will overwrite any data at this location and all child locations. + +Data types that can be set are: + +- NSString -- @"Hello World" +- NSNumber (also includes boolean) -- @YES, @43, @4.333 +- NSDictionary -- @{@"key": @"value", @"nested": @{@"another": @"value"} } +- NSArray + +The effect of the write will be visible immediately and the corresponding +events will be triggered. Synchronization of the data to the Firebase Database +servers will also be started. + +Passing null for the new value is equivalent to calling remove:; +all data at this location or any child location will be deleted. + +Note that setValue: will remove any priority stored at this location, so if +priority is meant to be preserved, you should use setValue:andPriority: instead. + +@param value The value to be written. + */ +- (void)setValue:(nullable id)value; + +/** + * The same as setValue: with a block that gets triggered after the write + * operation has been committed to the Firebase Database servers. + * + * @param value The value to be written. + * @param block The block to be called after the write has been committed to the + * Firebase Database servers. + */ +- (void)setValue:(nullable id)value + withCompletionBlock: + (void (^)(NSError *__nullable error, FIRDatabaseReference *ref))block; + +/** + * The same as setValue: with an additional priority to be attached to the data + * being written. Priorities are used to order items. + * + * @param value The value to be written. + * @param priority The priority to be attached to that data. + */ +- (void)setValue:(nullable id)value andPriority:(nullable id)priority; + +/** + * The same as setValue:andPriority: with a block that gets triggered after the + * write operation has been committed to the Firebase Database servers. + * + * @param value The value to be written. + * @param priority The priority to be attached to that data. + * @param block The block to be called after the write has been committed to the + * Firebase Database servers. + */ +- (void)setValue:(nullable id)value + andPriority:(nullable id)priority + withCompletionBlock: + (void (^)(NSError *__nullable error, FIRDatabaseReference *ref))block; + +/** + * Remove the data at this Firebase Database location. Any data at child + * locations will also be deleted. + * + * The effect of the delete will be visible immediately and the corresponding + * events will be triggered. Synchronization of the delete to the Firebase + * Database servers will also be started. + * + * remove: is equivalent to calling setValue:nil + */ +- (void)removeValue; + +/** + * The same as remove: with a block that gets triggered after the remove + * operation has been committed to the Firebase Database servers. + * + * @param block The block to be called after the remove has been committed to + * the Firebase Database servers. + */ +- (void)removeValueWithCompletionBlock: + (void (^)(NSError *__nullable error, FIRDatabaseReference *ref))block; + +/** + * Sets a priority for the data at this Firebase Database location. + * Priorities can be used to provide a custom ordering for the children at a + * location (if no priorities are specified, the children are ordered by key). + * + * You cannot set a priority on an empty location. For this reason + * setValue:andPriority: should be used when setting initial data with a + * specific priority and setPriority: should be used when updating the priority + * of existing data. + * + * Children are sorted based on this priority using the following rules: + * + * Children with no priority come first. + * Children with a number as their priority come next. They are sorted + * numerically by priority (small to large). Children with a string as their + * priority come last. They are sorted lexicographically by priority. Whenever + * two children have the same priority (including no priority), they are sorted + * by key. Numeric keys come first (sorted numerically), followed by the + * remaining keys (sorted lexicographically). + * + * Note that priorities are parsed and ordered as IEEE 754 double-precision + * floating-point numbers. Keys are always stored as strings and are treated as + * numbers only when they can be parsed as a 32-bit integer + * + * @param priority The priority to set at the specified location. + */ +- (void)setPriority:(nullable id)priority; + +/** + * The same as setPriority: with a block that is called once the priority has + * been committed to the Firebase Database servers. + * + * @param priority The priority to set at the specified location. + * @param block The block that is triggered after the priority has been written + * on the servers. + */ +- (void)setPriority:(nullable id)priority + withCompletionBlock: + (void (^)(NSError *__nullable error, FIRDatabaseReference *ref))block; + +/** + * Updates the values at the specified paths in the dictionary without + * overwriting other keys at this location. + * + * @param values A dictionary of the keys to change and their new values + */ +- (void)updateChildValues:(NSDictionary *)values; + +/** + * The same as update: with a block that is called once the update has been + * committed to the Firebase Database servers + * + * @param values A dictionary of the keys to change and their new values + * @param block The block that is triggered after the update has been written on + * the Firebase Database servers + */ +- (void)updateChildValues:(NSDictionary *)values + withCompletionBlock: + (void (^)(NSError *__nullable error, FIRDatabaseReference *ref))block; + +#pragma mark - Attaching observers to read data + +/** + * observeEventType:withBlock: is used to listen for data changes at a + * particular location. This is the primary way to read data from the Firebase + * Database. Your block will be triggered for the initial data and again + * whenever the data changes. + * + * Use removeObserverWithHandle: to stop receiving updates. + * @param eventType The type of event to listen for. + * @param block The block that should be called with initial data and updates. + * It is passed the data as a FIRDataSnapshot. + * @return A handle used to unregister this block later using + * removeObserverWithHandle: + */ +- (FIRDatabaseHandle)observeEventType:(FIRDataEventType)eventType + withBlock: + (void (^)(FIRDataSnapshot *snapshot))block; + +/** + * observeEventType:andPreviousSiblingKeyWithBlock: is used to listen for data + * changes at a particular location. This is the primary way to read data from + * the Firebase Database. Your block will be triggered for the initial data and + * again whenever the data changes. In addition, for FIRDataEventTypeChildAdded, + * FIRDataEventTypeChildMoved, and FIRDataEventTypeChildChanged events, your + * block will be passed the key of the previous node by priority order. + * + * Use removeObserverWithHandle: to stop receiving updates. + * + * @param eventType The type of event to listen for. + * @param block The block that should be called with initial data and updates. + * It is passed the data as a FIRDataSnapshot and the previous child's key. + * @return A handle used to unregister this block later using + * removeObserverWithHandle: + */ +- (FIRDatabaseHandle)observeEventType:(FIRDataEventType)eventType + andPreviousSiblingKeyWithBlock: + (void (^)(FIRDataSnapshot *snapshot, + NSString *__nullable prevKey))block; + +/** + * observeEventType:withBlock: is used to listen for data changes at a + * particular location. This is the primary way to read data from the Firebase + * Database. Your block will be triggered for the initial data and again + * whenever the data changes. + * + * The cancelBlock will be called if you will no longer receive new events due + * to no longer having permission. + * + * Use removeObserverWithHandle: to stop receiving updates. + * + * @param eventType The type of event to listen for. + * @param block The block that should be called with initial data and updates. + * It is passed the data as a FIRDataSnapshot. + * @param cancelBlock The block that should be called if this client no longer + * has permission to receive these events + * @return A handle used to unregister this block later using + * removeObserverWithHandle: + */ +- (FIRDatabaseHandle)observeEventType:(FIRDataEventType)eventType + withBlock:(void (^)(FIRDataSnapshot *snapshot))block + withCancelBlock: + (nullable void (^)(NSError *error))cancelBlock; + +/** + * observeEventType:andPreviousSiblingKeyWithBlock: is used to listen for data + * changes at a particular location. This is the primary way to read data from + * the Firebase Database. Your block will be triggered for the initial data and + * again whenever the data changes. In addition, for FIRDataEventTypeChildAdded, + * FIRDataEventTypeChildMoved, and FIRDataEventTypeChildChanged events, your + * block will be passed the key of the previous node by priority order. + * + * The cancelBlock will be called if you will no longer receive new events due + * to no longer having permission. + * + * Use removeObserverWithHandle: to stop receiving updates. + * + * @param eventType The type of event to listen for. + * @param block The block that should be called with initial data and updates. + * It is passed the data as a FIRDataSnapshot and the previous child's key. + * @param cancelBlock The block that should be called if this client no longer + * has permission to receive these events + * @return A handle used to unregister this block later using + * removeObserverWithHandle: + */ +- (FIRDatabaseHandle)observeEventType:(FIRDataEventType)eventType + andPreviousSiblingKeyWithBlock: + (void (^)(FIRDataSnapshot *snapshot, + NSString *__nullable prevKey))block + withCancelBlock: + (nullable void (^)(NSError *error))cancelBlock; + +/** + * This is equivalent to observeEventType:withBlock:, except the block is + * immediately canceled after the initial data is returned. + * + * @param eventType The type of event to listen for. + * @param block The block that should be called. It is passed the data as a + * FIRDataSnapshot. + */ +- (void)observeSingleEventOfType:(FIRDataEventType)eventType + withBlock:(void (^)(FIRDataSnapshot *snapshot))block; + +/** + * This is equivalent to observeEventType:withBlock:, except the block is + * immediately canceled after the initial data is returned. In addition, for + * FIRDataEventTypeChildAdded, FIRDataEventTypeChildMoved, and + * FIRDataEventTypeChildChanged events, your block will be passed the key of the + * previous node by priority order. + * + * @param eventType The type of event to listen for. + * @param block The block that should be called. It is passed the data as a + * FIRDataSnapshot and the previous child's key. + */ +- (void)observeSingleEventOfType:(FIRDataEventType)eventType + andPreviousSiblingKeyWithBlock: + (void (^)(FIRDataSnapshot *snapshot, + NSString *__nullable prevKey))block; + +/** + * This is equivalent to observeEventType:withBlock:, except the block is + * immediately canceled after the initial data is returned. + * + * The cancelBlock will be called if you do not have permission to read data at + * this location. + * + * @param eventType The type of event to listen for. + * @param block The block that should be called. It is passed the data as a + * FIRDataSnapshot. + * @param cancelBlock The block that will be called if you don't have permission + * to access this data + */ +- (void)observeSingleEventOfType:(FIRDataEventType)eventType + withBlock:(void (^)(FIRDataSnapshot *snapshot))block + withCancelBlock:(nullable void (^)(NSError *error))cancelBlock; + +/** + * This is equivalent to observeEventType:withBlock:, except the block is + * immediately canceled after the initial data is returned. In addition, for + * FIRDataEventTypeChildAdded, FIRDataEventTypeChildMoved, and + * FIRDataEventTypeChildChanged events, your block will be passed the key of the + * previous node by priority order. + * + * The cancelBlock will be called if you do not have permission to read data at + * this location. + * + * @param eventType The type of event to listen for. + * @param block The block that should be called. It is passed the data as a + * FIRDataSnapshot and the previous child's key. + * @param cancelBlock The block that will be called if you don't have permission + * to access this data + */ +- (void)observeSingleEventOfType:(FIRDataEventType)eventType + andPreviousSiblingKeyWithBlock:(void (^)(FIRDataSnapshot *snapshot, + NSString *__nullable prevKey))block + withCancelBlock: + (nullable void (^)(NSError *error))cancelBlock; + +/** + * getDataWithCompletionBlock: is used to get the most up-to-date value for + * this query. This method updates the cache and raises events if successful. If + * not connected, falls back to a locally-cached value. + * + * @param block The block that should be called with the most up-to-date value + * of this query, or an error if no such value could be retrieved. + */ +- (void)getDataWithCompletionBlock: + (void (^_Nonnull)(NSError *__nullable error, + FIRDataSnapshot *snapshot))block + NS_SWIFT_NAME(getData(completion:)); + +#pragma mark - Detaching observers + +/** + * Detach a block previously attached with observeEventType:withBlock:. + * + * @param handle The handle returned by the call to observeEventType:withBlock: + * which we are trying to remove. + */ +- (void)removeObserverWithHandle:(FIRDatabaseHandle)handle; + +/** + * By calling `keepSynced:YES` on a location, the data for that location will + * automatically be downloaded and kept in sync, even when no listeners are + * attached for that location. Additionally, while a location is kept synced, it + * will not be evicted from the persistent disk cache. + * + * @param keepSynced Pass YES to keep this location synchronized, pass NO to + * stop synchronization. + */ +- (void)keepSynced:(BOOL)keepSynced; + +/** + * Removes all observers at the current reference, but does not remove any + * observers at child references. removeAllObservers must be called again for + * each child reference where a listener was established to remove the + * observers. + */ +- (void)removeAllObservers; + +#pragma mark - Querying and limiting + +/** + * queryLimitedToFirst: is used to generate a reference to a limited view of the + * data at this location. The FIRDatabaseQuery instance returned by + * queryLimitedToFirst: will respond to at most the first limit child nodes. + * + * @param limit The upper bound, inclusive, for the number of child nodes to + * receive events for + * @return A FIRDatabaseQuery instance, limited to at most limit child nodes. + */ +- (FIRDatabaseQuery *)queryLimitedToFirst:(NSUInteger)limit; + +/** + * queryLimitedToLast: is used to generate a reference to a limited view of the + * data at this location. The FIRDatabaseQuery instance returned by + * queryLimitedToLast: will respond to at most the last limit child nodes. + * + * @param limit The upper bound, inclusive, for the number of child nodes to + * receive events for + * @return A FIRDatabaseQuery instance, limited to at most limit child nodes. + */ +- (FIRDatabaseQuery *)queryLimitedToLast:(NSUInteger)limit; + +/** + * queryOrderBy: is used to generate a reference to a view of the data that's + * been sorted by the values of a particular child key. This method is intended + * to be used in combination with queryStartingAtValue:, queryEndingAtValue:, or + * queryEqualToValue:. + * + * @param key The child key to use in ordering data visible to the returned + * FIRDatabaseQuery + * @return A FIRDatabaseQuery instance, ordered by the values of the specified + * child key. + */ +- (FIRDatabaseQuery *)queryOrderedByChild:(NSString *)key; + +/** + * queryOrderedByKey: is used to generate a reference to a view of the data + * that's been sorted by child key. This method is intended to be used in + * combination with queryStartingAtValue:, queryEndingAtValue:, or + * queryEqualToValue:. + * + * @return A FIRDatabaseQuery instance, ordered by child keys. + */ +- (FIRDatabaseQuery *)queryOrderedByKey; + +/** + * queryOrderedByPriority: is used to generate a reference to a view of the data + * that's been sorted by child priority. This method is intended to be used in + * combination with queryStartingAtValue:, queryEndingAtValue:, or + * queryEqualToValue:. + * + * @return A FIRDatabaseQuery instance, ordered by child priorities. + */ +- (FIRDatabaseQuery *)queryOrderedByPriority; + +/** + * queryStartingAtValue: is used to generate a reference to a limited view of + * the data at this location. The FIRDatabaseQuery instance returned by + * queryStartingAtValue: will respond to events at nodes with a value greater + * than or equal to startValue. + * + * @param startValue The lower bound, inclusive, for the value of data visible + * to the returned FIRDatabaseQuery + * @return A FIRDatabaseQuery instance, limited to data with value greater than + * or equal to startValue + */ +- (FIRDatabaseQuery *)queryStartingAtValue:(nullable id)startValue; + +/** + * queryStartingAtValue:childKey: is used to generate a reference to a limited + * view of the data at this location. The FIRDatabaseQuery instance returned by + * queryStartingAtValue:childKey will respond to events at nodes with a value + * greater than startValue, or equal to startValue and with a key greater than + * or equal to childKey. + * + * @param startValue The lower bound, inclusive, for the value of data visible + * to the returned FIRDatabaseQuery + * @param childKey The lower bound, inclusive, for the key of nodes with value + * equal to startValue + * @return A FIRDatabaseQuery instance, limited to data with value greater than + * or equal to startValue + */ +- (FIRDatabaseQuery *)queryStartingAtValue:(nullable id)startValue + childKey:(nullable NSString *)childKey; + +/** + * queryStartingAfterValue: is used to generate a reference to a limited view of + * the data at this location. The FIRDatabaseQuery instance returned by + * queryStartingAfterValue: will respond to events at nodes with a value greater + * than startAfterValue. + * + * @param startAfterValue The lower bound, exclusive, for the value of data + * visible to the returned FIRDatabaseQuery + * @return A FIRDatabaseQuery instance, limited to data with value greater than + * startAfterValue + */ +- (FIRDatabaseQuery *)queryStartingAfterValue:(nullable id)startAfterValue; + +/** + * queryStartingAfterValue:childKey: is used to generate a reference to a + * limited view of the data at this location. The FIRDatabaseQuery instance + * returned by queryStartingAfterValue:childKey will respond to events at nodes + * with a value greater than startAfterValue, or equal to startAfterValue and + * with a key greater than childKey. This is most useful when implementing + * pagination in a case where multiple nodes can match the startAfterValue. + * + * @param startAfterValue The lower bound, inclusive, for the value of data + * visible to the returned FIRDatabaseQuery + * @param childKey The lower bound, exclusive, for the key of nodes with value + * equal to startAfterValue + * @return A FIRDatabaseQuery instance, limited to data with value greater than + * or equal to startAfterValue, or equal to startAfterValue and with a key + * greater than childKey. + */ +- (FIRDatabaseQuery *)queryStartingAfterValue:(nullable id)startAfterValue + childKey:(nullable NSString *)childKey; + +/** + * queryEndingAtValue: is used to generate a reference to a limited view of the + * data at this location. The FIRDatabaseQuery instance returned by + * queryEndingAtValue: will respond to events at nodes with a value less than or + * equal to endValue. + * + * @param endValue The upper bound, inclusive, for the value of data visible to + * the returned FIRDatabaseQuery + * @return A FIRDatabaseQuery instance, limited to data with value less than or + * equal to endValue + */ +- (FIRDatabaseQuery *)queryEndingAtValue:(nullable id)endValue; + +/** + * queryEndingAtValue:childKey: is used to generate a reference to a limited + * view of the data at this location. The FIRDatabaseQuery instance returned by + * queryEndingAtValue:childKey will respond to events at nodes with a value less + * than endValue, or equal to endValue and with a key less than or equal to + * childKey. + * + * @param endValue The upper bound, inclusive, for the value of data visible to + * the returned FIRDatabaseQuery + * @param childKey The upper bound, inclusive, for the key of nodes with value + * equal to endValue + * @return A FIRDatabaseQuery instance, limited to data with value less than or + * equal to endValue + */ +- (FIRDatabaseQuery *)queryEndingAtValue:(nullable id)endValue + childKey:(nullable NSString *)childKey; + +/** + * queryEqualToValue: is used to generate a reference to a limited view of the + * data at this location. The FIRDatabaseQuery instance returned by + * queryEqualToValue: will respond to events at nodes with a value equal to the + * supplied argument. + * + * @param value The value that the data returned by this FIRDatabaseQuery will + * have + * @return A FIRDatabaseQuery instance, limited to data with the supplied value. + */ +- (FIRDatabaseQuery *)queryEqualToValue:(nullable id)value; + +/** + * queryEqualToValue:childKey: is used to generate a reference to a limited view + * of the data at this location. The FIRDatabaseQuery instance returned by + * queryEqualToValue:childKey will respond to events at nodes with a value equal + * to the supplied argument with a key equal to childKey. There will be at most + * one node that matches because child keys are unique. + * + * @param value The value that the data returned by this FIRDatabaseQuery will + * have + * @param childKey The key of nodes with the right value + * @return A FIRDatabaseQuery instance, limited to data with the supplied value + * and the key. + */ +- (FIRDatabaseQuery *)queryEqualToValue:(nullable id)value + childKey:(nullable NSString *)childKey; + +#pragma mark - Managing presence + +/** + * Ensure the data at this location is set to the specified value when + * the client is disconnected (due to closing the browser, navigating + * to a new page, or network issues). + * + * onDisconnectSetValue: is especially useful for implementing "presence" + * systems, where a value should be changed or cleared when a user disconnects + * so that he appears "offline" to other users. + * + * @param value The value to be set after the connection is lost. + */ +- (void)onDisconnectSetValue:(nullable id)value; + +/** + * Ensure the data at this location is set to the specified value when + * the client is disconnected (due to closing the browser, navigating + * to a new page, or network issues). + * + * The completion block will be triggered when the operation has been + * successfully queued up on the Firebase Database servers + * + * @param value The value to be set after the connection is lost. + * @param block Block to be triggered when the operation has been queued up on + * the Firebase Database servers + */ +- (void)onDisconnectSetValue:(nullable id)value + withCompletionBlock:(void (^)(NSError *__nullable error, + FIRDatabaseReference *ref))block; + +/** + * Ensure the data at this location is set to the specified value and priority + * when the client is disconnected (due to closing the browser, navigating to a + * new page, or network issues). + * + * @param value The value to be set after the connection is lost. + * @param priority The priority to be set after the connection is lost. + */ +- (void)onDisconnectSetValue:(nullable id)value andPriority:(id)priority; + +/** + * Ensure the data at this location is set to the specified value and priority + * when the client is disconnected (due to closing the browser, navigating to a + * new page, or network issues). + * + * The completion block will be triggered when the operation has been + * successfully queued up on the Firebase Database servers + * + * @param value The value to be set after the connection is lost. + * @param priority The priority to be set after the connection is lost. + * @param block Block to be triggered when the operation has been queued up on + * the Firebase Database servers + */ +- (void)onDisconnectSetValue:(nullable id)value + andPriority:(nullable id)priority + withCompletionBlock:(void (^)(NSError *__nullable error, + FIRDatabaseReference *ref))block; + +/** + * Ensure the data at this location is removed when + * the client is disconnected (due to closing the app, navigating + * to a new page, or network issues). + * + * onDisconnectRemoveValue is especially useful for implementing "presence" + * systems. + */ +- (void)onDisconnectRemoveValue; + +/** + * Ensure the data at this location is removed when + * the client is disconnected (due to closing the app, navigating + * to a new page, or network issues). + * + * onDisconnectRemoveValueWithCompletionBlock: is especially useful for + * implementing "presence" systems. + * + * @param block Block to be triggered when the operation has been queued up on + * the Firebase Database servers + */ +- (void)onDisconnectRemoveValueWithCompletionBlock: + (void (^)(NSError *__nullable error, FIRDatabaseReference *ref))block; + +/** + * Ensure the data has the specified child values updated when + * the client is disconnected (due to closing the browser, navigating + * to a new page, or network issues). + * + * + * @param values A dictionary of child node keys and the values to set them to + * after the connection is lost. + */ +- (void)onDisconnectUpdateChildValues:(NSDictionary *)values; + +/** + * Ensure the data has the specified child values updated when + * the client is disconnected (due to closing the browser, navigating + * to a new page, or network issues). + * + * + * @param values A dictionary of child node keys and the values to set them to + * after the connection is lost. + * @param block A block that will be called once the operation has been queued + * up on the Firebase Database servers + */ +- (void)onDisconnectUpdateChildValues:(NSDictionary *)values + withCompletionBlock: + (void (^)(NSError *__nullable error, + FIRDatabaseReference *ref))block; + +/** + * Cancel any operations that are set to run on disconnect. If you previously + * called onDisconnectSetValue:, onDisconnectRemoveValue:, or + * onDisconnectUpdateChildValues:, and no longer want the values updated when + * the connection is lost, call cancelDisconnectOperations: + */ +- (void)cancelDisconnectOperations; + +/** + * Cancel any operations that are set to run on disconnect. If you previously + * called onDisconnectSetValue:, onDisconnectRemoveValue:, or + * onDisconnectUpdateChildValues:, and no longer want the values updated when + * the connection is lost, call cancelDisconnectOperations: + * + * @param block A block that will be triggered once the Firebase Database + * servers have acknowledged the cancel request. + */ +- (void)cancelDisconnectOperationsWithCompletionBlock: + (nullable void (^)(NSError *__nullable error, + FIRDatabaseReference *ref))block; + +#pragma mark - Manual Connection Management + +/** + * Manually disconnect the Firebase Database client from the server and disable + * automatic reconnection. + * + * The Firebase Database client automatically maintains a persistent connection + * to the Firebase Database server, which will remain active indefinitely and + * reconnect when disconnected. However, the goOffline( ) and goOnline( ) + * methods may be used to manually control the client connection in cases where + * a persistent connection is undesirable. + * + * While offline, the Firebase Database client will no longer receive data + * updates from the server. However, all database operations performed locally + * will continue to immediately fire events, allowing your application to + * continue behaving normally. Additionally, each operation performed locally + * will automatically be queued and retried upon reconnection to the Firebase + * Database server. + * + * To reconnect to the Firebase Database server and begin receiving remote + * events, see goOnline( ). Once the connection is reestablished, the Firebase + * Database client will transmit the appropriate data and fire the appropriate + * events so that your client "catches up" automatically. + * + * Note: Invoking this method will impact all Firebase Database connections. + */ ++ (void)goOffline; + +/** + * Manually reestablish a connection to the Firebase Database server and enable + * automatic reconnection. + * + * The Firebase Database client automatically maintains a persistent connection + * to the Firebase Database server, which will remain active indefinitely and + * reconnect when disconnected. However, the goOffline( ) and goOnline( ) + * methods may be used to manually control the client connection in cases where + * a persistent connection is undesirable. + * + * This method should be used after invoking goOffline( ) to disable the active + * connection. Once reconnected, the Firebase Database client will automatically + * transmit the proper data and fire the appropriate events so that your client + * "catches up" automatically. + * + * To disconnect from the Firebase Database server, see goOffline( ). + * + * Note: Invoking this method will impact all Firebase Database connections. + */ ++ (void)goOnline; + +#pragma mark - Transactions + +/** + * Performs an optimistic-concurrency transactional update to the data at this + * location. Your block will be called with a FIRMutableData instance that + * contains the current data at this location. Your block should update this + * data to the value you wish to write to this location, and then return an + * instance of FIRTransactionResult with the new data. + * + * If, when the operation reaches the server, it turns out that this client had + * stale data, your block will be run again with the latest data from the + * server. + * + * When your block is run, you may decide to abort the transaction by returning + * [FIRTransactionResult abort]. + * + * @param block This block receives the current data at this location and must + * return an instance of FIRTransactionResult + */ +- (void)runTransactionBlock: + (FIRTransactionResult * (^)(FIRMutableData *currentData))block; + +/** + * Performs an optimistic-concurrency transactional update to the data at this + * location. Your block will be called with a FIRMutableData instance that + * contains the current data at this location. Your block should update this + * data to the value you wish to write to this location, and then return an + * instance of FIRTransactionResult with the new data. + * + * If, when the operation reaches the server, it turns out that this client had + * stale data, your block will be run again with the latest data from the + * server. + * + * When your block is run, you may decide to abort the transaction by returning + * [FIRTransactionResult abort]. + * + * @param block This block receives the current data at this location and must + * return an instance of FIRTransactionResult + * @param completionBlock This block will be triggered once the transaction is + * complete, whether it was successful or not. It will indicate if there was an + * error, whether or not the data was committed, and what the current value of + * the data at this location is. + */ +- (void)runTransactionBlock: + (FIRTransactionResult * (^)(FIRMutableData *currentData))block + andCompletionBlock: + (void (^)(NSError *__nullable error, BOOL committed, + FIRDataSnapshot *__nullable snapshot))completionBlock; + +/** + * Performs an optimistic-concurrency transactional update to the data at this + * location. Your block will be called with a FIRMutableData instance that + * contains the current data at this location. Your block should update this + * data to the value you wish to write to this location, and then return an + * instance of FIRTransactionResult with the new data. + * + * If, when the operation reaches the server, it turns out that this client had + * stale data, your block will be run again with the latest data from the + * server. + * + * When your block is run, you may decide to abort the transaction by return + * [FIRTransactionResult abort]. + * + * Since your block may be run multiple times, this client could see several + * immediate states that don't exist on the server. You can suppress those + * immediate states until the server confirms the final state of the + * transaction. + * + * @param block This block receives the current data at this location and must + * return an instance of FIRTransactionResult + * @param completionBlock This block will be triggered once the transaction is + * complete, whether it was successful or not. It will indicate if there was an + * error, whether or not the data was committed, and what the current value of + * the data at this location is. + * @param localEvents Set this to NO to suppress events raised for intermediate + * states, and only get events based on the final state of the transaction. + */ +- (void)runTransactionBlock: + (FIRTransactionResult * (^)(FIRMutableData *currentData))block + andCompletionBlock: + (nullable void (^)(NSError *__nullable error, BOOL committed, + FIRDataSnapshot *__nullable snapshot)) + completionBlock + withLocalEvents:(BOOL)localEvents; + +#pragma mark - Retrieving String Representation + +/** + * Gets the absolute URL of this Firebase Database location. + * + * @return The absolute URL of the referenced Firebase Database location. + */ +- (NSString *)description; + +#pragma mark - Properties + +/** + * Gets a FIRDatabaseReference for the parent location. + * If this instance refers to the root of your Firebase Database, it has no + * parent, and therefore parent( ) will return null. + * + * @return A FIRDatabaseReference for the parent location. + */ +@property(strong, readonly, nonatomic, nullable) FIRDatabaseReference *parent; + +/** + * Gets a FIRDatabaseReference for the root location + * + * @return A new FIRDatabaseReference to root location. + */ +@property(strong, readonly, nonatomic) FIRDatabaseReference *root; + +/** + * Gets the last token in a Firebase Database location (e.g. 'fred' in + * https://SampleChat.firebaseIO-demo.com/users/fred) + * + * @return The key of the location this reference points to. + */ +@property(strong, readonly, nonatomic, nullable) NSString *key; + +/** + * Gets the URL for the Firebase Database location referenced by this + * FIRDatabaseReference. + * + * @return The url of the location this reference points to. + */ +@property(strong, readonly, nonatomic) NSString *URL; + +/** + * Gets the FIRDatabase instance associated with this reference. + * + * @return The FIRDatabase object for this reference. + */ +@property(strong, readonly, nonatomic) FIRDatabase *database; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Clocker/Frameworks/Firebase/FirebaseDatabase.framework/Headers/FIRMutableData.h b/Clocker/Frameworks/Firebase/FirebaseDatabase.framework/Headers/FIRMutableData.h new file mode 100644 index 0000000..9797a67 --- /dev/null +++ b/Clocker/Frameworks/Firebase/FirebaseDatabase.framework/Headers/FIRMutableData.h @@ -0,0 +1,128 @@ +/* + * 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_ASSUME_NONNULL_BEGIN + +/** + * A FIRMutableData instance is populated with data from a Firebase Database + * location. When you are using runTransactionBlock:, you will be given an + * instance containing the current data at that location. Your block will be + * responsible for updating that instance to the data you wish to save at that + * location, and then returning using [FIRTransactionResult successWithValue:]. + * + * To modify the data, set its value property to any of the native types support + * by Firebase Database: + * + * + NSNumber (includes BOOL) + * + NSDictionary + * + NSArray + * + NSString + * + nil / NSNull to remove the data + * + * Note that changes made to a child FIRMutableData instance will be visible to + * the parent. + */ +NS_SWIFT_NAME(MutableData) +@interface FIRMutableData : NSObject + +#pragma mark - Inspecting and navigating the data + +/** + * Returns boolean indicating whether this mutable data has children. + * + * @return YES if this data contains child nodes. + */ +- (BOOL)hasChildren; + +/** + * Indicates whether this mutable data has a child at the given path. + * + * @param path A path string, consisting either of a single segment, like + * 'child', or multiple segments, 'a/deeper/child' + * @return YES if this data contains a child at the specified relative path + */ +- (BOOL)hasChildAtPath:(NSString *)path; + +/** + * Used to obtain a FIRMutableData instance that encapsulates the data at the + * given relative path. Note that changes made to the child will be visible to + * the parent. + * + * @param path A path string, consisting either of a single segment, like + * 'child', or multiple segments, 'a/deeper/child' + * @return A FIRMutableData instance containing the data at the given path + */ +- (FIRMutableData *)childDataByAppendingPath:(NSString *)path; + +#pragma mark - Properties + +/** + * To modify the data contained by this instance of FIRMutableData, set this to + * any of the native types supported by Firebase Database: + * + * + NSNumber (includes BOOL) + * + NSDictionary + * + NSArray + * + NSString + * + nil / NSNull to remove the data + * + * Note that setting this value will override the priority at this location. + * + * @return The current data at this location as a native object + */ +@property(strong, nonatomic, nullable) id value; + +/** + * Set this property to update the priority of the data at this location. Can be + * set to the following types: + * + * + NSNumber + * + NSString + * + nil / NSNull to remove the priority + * + * @return The priority of the data at this location + */ +@property(strong, nonatomic, nullable) id priority; + +/** + * @return The number of child nodes at this location + */ +@property(readonly, nonatomic) NSUInteger childrenCount; + +/** + * Used to iterate over the children at this location. You can use the native + * for .. in syntax: + * + * for (FIRMutableData* child in data.children) { + * ... + * } + * + * Note that this enumerator operates on an immutable copy of the child list. + * So, you can modify the instance during iteration, but the new additions will + * not be visible until you get a new enumerator. + */ +@property(readonly, nonatomic, strong) NSEnumerator *children; + +/** + * @return The key name of this node, or nil if it is the top-most location + */ +@property(readonly, nonatomic, strong, nullable) NSString *key; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Clocker/Frameworks/Firebase/FirebaseDatabase.framework/Headers/FIRServerValue.h b/Clocker/Frameworks/Firebase/FirebaseDatabase.framework/Headers/FIRServerValue.h new file mode 100644 index 0000000..5f57094 --- /dev/null +++ b/Clocker/Frameworks/Firebase/FirebaseDatabase.framework/Headers/FIRServerValue.h @@ -0,0 +1,53 @@ +/* + * 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_ASSUME_NONNULL_BEGIN + +/** + * Placeholder values you may write into Firebase Database as a value or + * priority that will automatically be populated by the Firebase Database + * server. + */ +NS_SWIFT_NAME(ServerValue) +@interface FIRServerValue : NSObject + +/** + * Placeholder value for the number of milliseconds since the Unix epoch + */ ++ (NSDictionary *)timestamp; + +/** + * Returns a placeholder value that can be used to atomically increment the + * current database value by the provided delta. + * + * The delta must be a long or double value. If the current value is not an + * integer or double, or if the data does not yet exist, the transformation will + * set the data to the delta value. If either of the delta value or the existing + * data are doubles, both values will be interpreted as doubles. Double + * arithmetic and representation of double values follow IEEE 754 semantics. If + * there is positive/negative integer overflow, the sum is calculated as a + * double. + * + * @param delta the amount to modify the current value atomically. + * @return a placeholder value for modifying data atomically server-side. + */ ++ (NSDictionary *)increment:(NSNumber *)delta NS_SWIFT_NAME(increment(_:)); + +@end + +NS_ASSUME_NONNULL_END diff --git a/Clocker/Frameworks/Firebase/FirebaseDatabase.framework/Headers/FIRTransactionResult.h b/Clocker/Frameworks/Firebase/FirebaseDatabase.framework/Headers/FIRTransactionResult.h new file mode 100644 index 0000000..7f5ccc1 --- /dev/null +++ b/Clocker/Frameworks/Firebase/FirebaseDatabase.framework/Headers/FIRTransactionResult.h @@ -0,0 +1,50 @@ +/* + * 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 "FIRMutableData.h" +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + * Used for runTransactionBlock:. An FIRTransactionResult instance is a + * container for the results of the transaction. + */ +NS_SWIFT_NAME(TransactionResult) +@interface FIRTransactionResult : NSObject + +/** + * Used for runTransactionBlock:. Indicates that the new value should be saved + * at this location + * + * @param value A FIRMutableData instance containing the new value to be set + * @return An FIRTransactionResult instance that can be used as a return value + * from the block given to runTransactionBlock: + */ ++ (FIRTransactionResult *)successWithValue:(FIRMutableData *)value; + +/** + * Used for runTransactionBlock:. Indicates that the current transaction should + * no longer proceed. + * + * @return An FIRTransactionResult instance that can be used as a return value + * from the block given to runTransactionBlock: + */ ++ (FIRTransactionResult *)abort; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Clocker/Frameworks/Firebase/FirebaseDatabase.framework/Headers/FirebaseDatabase.h b/Clocker/Frameworks/Firebase/FirebaseDatabase.framework/Headers/FirebaseDatabase.h new file mode 100644 index 0000000..ae6b933 --- /dev/null +++ b/Clocker/Frameworks/Firebase/FirebaseDatabase.framework/Headers/FirebaseDatabase.h @@ -0,0 +1,29 @@ +/* + * 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 FirebaseDatabase_h +#define FirebaseDatabase_h + +#import "FIRDataEventType.h" +#import "FIRDataSnapshot.h" +#import "FIRDatabase.h" +#import "FIRDatabaseQuery.h" +#import "FIRDatabaseReference.h" +#import "FIRMutableData.h" +#import "FIRServerValue.h" +#import "FIRTransactionResult.h" + +#endif /* FirebaseDatabase_h */ diff --git a/Clocker/Frameworks/Firebase/FirebaseDatabase.framework/Info.plist b/Clocker/Frameworks/Firebase/FirebaseDatabase.framework/Info.plist new file mode 100644 index 0000000..a6a9c29 --- /dev/null +++ b/Clocker/Frameworks/Firebase/FirebaseDatabase.framework/Info.plist @@ -0,0 +1,20 @@ + + + + + CFBundleExecutable + FirebaseDatabase + CFBundleIdentifier + com.firebase.Firebase-FirebaseDatabase + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + FirebaseDatabase + CFBundlePackageType + FMWK + CFBundleVersion + 8.2.0 + DTSDKName + iphonesimulator11.2 + + diff --git a/Clocker/Frameworks/Firebase/FirebaseDatabase.framework/Modules/module.modulemap b/Clocker/Frameworks/Firebase/FirebaseDatabase.framework/Modules/module.modulemap new file mode 100644 index 0000000..cb9ddc6 --- /dev/null +++ b/Clocker/Frameworks/Firebase/FirebaseDatabase.framework/Modules/module.modulemap @@ -0,0 +1,14 @@ +framework module FirebaseDatabase { +umbrella header "FirebaseDatabase.h" +export * +module * { export * } + link framework "AppKit" + link framework "CFNetwork" + link framework "CoreTelephony" + link framework "Foundation" + link framework "Security" + link framework "SystemConfiguration" + link "c++" + link "icucore" + link "z" +} diff --git a/Clocker/Frameworks/Firebase/FirebaseInstallations.framework/FirebaseInstallations b/Clocker/Frameworks/Firebase/FirebaseInstallations.framework/FirebaseInstallations new file mode 100644 index 0000000..7e8c185 Binary files /dev/null and b/Clocker/Frameworks/Firebase/FirebaseInstallations.framework/FirebaseInstallations differ diff --git a/Clocker/Frameworks/Firebase/FirebaseInstallations.framework/Headers/FIRInstallations.h b/Clocker/Frameworks/Firebase/FirebaseInstallations.framework/Headers/FIRInstallations.h new file mode 100644 index 0000000..9ffe9ee --- /dev/null +++ b/Clocker/Frameworks/Firebase/FirebaseInstallations.framework/Headers/FIRInstallations.h @@ -0,0 +1,127 @@ +/* + * Copyright 2019 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 + +@class FIRApp; +@class FIRInstallationsAuthTokenResult; + +NS_ASSUME_NONNULL_BEGIN + +/** A notification with this name is sent each time an installation is created or deleted. */ +// clang-format off +// clang-format12 merges the next two lines. +FOUNDATION_EXPORT const NSNotificationName FIRInstallationIDDidChangeNotification + NS_SWIFT_NAME(InstallationIDDidChange); +/** `userInfo` key for the `FirebaseApp.name` in `FIRInstallationIDDidChangeNotification`. */ +FOUNDATION_EXPORT NSString *const kFIRInstallationIDDidChangeNotificationAppNameKey + NS_SWIFT_NAME(InstallationIDDidChangeAppNameKey); +// clang-format on + +/** + * An installation ID handler block. + * @param identifier The installation ID string if exists or `nil` otherwise. + * @param error The error when `identifier == nil` or `nil` otherwise. + */ +typedef void (^FIRInstallationsIDHandler)(NSString *__nullable identifier, + NSError *__nullable error) + NS_SWIFT_NAME(InstallationsIDHandler); + +/** + * An authorization token handler block. + * @param tokenResult An instance of `InstallationsAuthTokenResult` in case of success or `nil` + * otherwise. + * @param error The error when `tokenResult == nil` or `nil` otherwise. + */ +typedef void (^FIRInstallationsTokenHandler)( + FIRInstallationsAuthTokenResult *__nullable tokenResult, NSError *__nullable error) + NS_SWIFT_NAME(InstallationsTokenHandler); + +/** + * The class provides API for Firebase Installations. + * Each configured `FirebaseApp` has a corresponding single instance of `Installations`. + * An instance of the class provides access to the installation info for the `FirebaseApp` as well + * as the ability to delete it. A Firebase Installation is unique by `FirebaseApp.name` and + * `FirebaseApp.options.googleAppID` . + */ +NS_SWIFT_NAME(Installations) +@interface FIRInstallations : NSObject + +- (instancetype)init NS_UNAVAILABLE; + +/** + * Returns a default instance of `Installations`. + * @returns An instance of `Installations` for `FirebaseApp.defaultApp(). + * @throw Throws an exception if the default app is not configured yet or required `FirebaseApp` + * options are missing. + */ ++ (FIRInstallations *)installations NS_SWIFT_NAME(installations()); + +/** + * Returns an instance of `Installations` for an application. + * @param application A configured `FirebaseApp` instance. + * @returns An instance of `Installations` corresponding to the passed application. + * @throw Throws an exception if required `FirebaseApp` options are missing. + */ ++ (FIRInstallations *)installationsWithApp:(FIRApp *)application + NS_SWIFT_NAME(installations(app:)); + +/** + * The method creates or retrieves an installation ID. The installation ID is a stable identifier + * that uniquely identifies the app instance. NOTE: If the application already has an existing + * FirebaseInstanceID then the InstanceID identifier will be used. + * @param completion A completion handler which is invoked when the operation completes. See + * `InstallationsIDHandler` for additional details. + */ +- (void)installationIDWithCompletion:(FIRInstallationsIDHandler)completion; + +/** + * Retrieves (locally if it exists or from the server) a valid installation auth token. An existing + * token may be invalidated or expired, so it is recommended to fetch the installation auth token + * before each server request. The method does the same as `Installations.authTokenForcingRefresh(:, + * completion:)` with forcing refresh `NO`. + * @param completion A completion handler which is invoked when the operation completes. See + * `InstallationsTokenHandler` for additional details. + */ +- (void)authTokenWithCompletion:(FIRInstallationsTokenHandler)completion; + +/** + * Retrieves (locally or from the server depending on `forceRefresh` value) a valid installation + * auth token. An existing token may be invalidated or expire, so it is recommended to fetch the + * installation auth token before each server request. This method should be used with `forceRefresh + * == YES` when e.g. a request with the previously fetched installation auth token failed with "Not + * Authorized" error. + * @param forceRefresh If `YES` then the locally cached installation auth token will be ignored and + * a new one will be requested from the server. If `NO`, then the locally cached installation auth + * token will be returned if exists and has not expired yet. + * @param completion A completion handler which is invoked when the operation completes. See + * `InstallationsTokenHandler` for additional details. + */ +- (void)authTokenForcingRefresh:(BOOL)forceRefresh + completion:(FIRInstallationsTokenHandler)completion; + +/** + * Deletes all the installation data including the unique identifier, auth tokens and + * all related data on the server side. A network connection is required for the method to + * succeed. If fails, the existing installation data remains untouched. + * @param completion A completion handler which is invoked when the operation completes. `error == + * nil` indicates success. + */ +- (void)deleteWithCompletion:(void (^)(NSError *__nullable error))completion; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Clocker/Frameworks/Firebase/FirebaseInstallations.framework/Headers/FIRInstallationsAuthTokenResult.h b/Clocker/Frameworks/Firebase/FirebaseInstallations.framework/Headers/FIRInstallationsAuthTokenResult.h new file mode 100644 index 0000000..501ac4e --- /dev/null +++ b/Clocker/Frameworks/Firebase/FirebaseInstallations.framework/Headers/FIRInstallationsAuthTokenResult.h @@ -0,0 +1,33 @@ +/* + * Copyright 2019 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_ASSUME_NONNULL_BEGIN + +/** The class represents a result of the installation auth token request. */ +NS_SWIFT_NAME(InstallationsAuthTokenResult) +@interface FIRInstallationsAuthTokenResult : NSObject + +/** The installation auth token string. */ +@property(nonatomic, readonly) NSString *authToken; + +/** The installation auth token expiration date. */ +@property(nonatomic, readonly) NSDate *expirationDate; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Clocker/Frameworks/Firebase/FirebaseInstallations.framework/Headers/FIRInstallationsErrors.h b/Clocker/Frameworks/Firebase/FirebaseInstallations.framework/Headers/FIRInstallationsErrors.h new file mode 100644 index 0000000..d0c3b99 --- /dev/null +++ b/Clocker/Frameworks/Firebase/FirebaseInstallations.framework/Headers/FIRInstallationsErrors.h @@ -0,0 +1,34 @@ +/* + * Copyright 2019 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 + +extern NSString *const kFirebaseInstallationsErrorDomain; + +typedef NS_ENUM(NSUInteger, FIRInstallationsErrorCode) { + /** Unknown error. See `userInfo` for details. */ + FIRInstallationsErrorCodeUnknown = 0, + + /** Keychain error. See `userInfo` for details. */ + FIRInstallationsErrorCodeKeychain = 1, + + /** Server unreachable. A network error or server is unavailable. See `userInfo` for details. */ + FIRInstallationsErrorCodeServerUnreachable = 2, + + /** FirebaseApp configuration issues e.g. invalid GMP-App-ID, etc. See `userInfo` for details. */ + FIRInstallationsErrorCodeInvalidConfiguration = 3, + +} NS_SWIFT_NAME(InstallationsErrorCode); diff --git a/Clocker/Frameworks/Firebase/FirebaseInstallations.framework/Headers/FirebaseInstallations.h b/Clocker/Frameworks/Firebase/FirebaseInstallations.framework/Headers/FirebaseInstallations.h new file mode 100644 index 0000000..8a9b3c1 --- /dev/null +++ b/Clocker/Frameworks/Firebase/FirebaseInstallations.framework/Headers/FirebaseInstallations.h @@ -0,0 +1,19 @@ +/* + * Copyright 2019 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 "FIRInstallations.h" +#import "FIRInstallationsAuthTokenResult.h" +#import "FIRInstallationsErrors.h" diff --git a/Clocker/Frameworks/Firebase/FirebaseInstallations.framework/Info.plist b/Clocker/Frameworks/Firebase/FirebaseInstallations.framework/Info.plist new file mode 100644 index 0000000..5df7aba --- /dev/null +++ b/Clocker/Frameworks/Firebase/FirebaseInstallations.framework/Info.plist @@ -0,0 +1,20 @@ + + + + + CFBundleExecutable + FirebaseInstallations + CFBundleIdentifier + com.firebase.Firebase-FirebaseInstallations + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + FirebaseInstallations + CFBundlePackageType + FMWK + CFBundleVersion + 8.2.0 + DTSDKName + iphonesimulator11.2 + + diff --git a/Clocker/Frameworks/Firebase/FirebaseInstallations.framework/Modules/module.modulemap b/Clocker/Frameworks/Firebase/FirebaseInstallations.framework/Modules/module.modulemap new file mode 100644 index 0000000..521c053 --- /dev/null +++ b/Clocker/Frameworks/Firebase/FirebaseInstallations.framework/Modules/module.modulemap @@ -0,0 +1,11 @@ +framework module FirebaseInstallations { +umbrella header "FirebaseInstallations.h" +export * +module * { export * } + link framework "AppKit" + link framework "CoreTelephony" + link framework "Foundation" + link framework "Security" + link framework "SystemConfiguration" + link "z" +} diff --git a/Clocker/Frameworks/Firebase/GoogleDataTransport.framework/GoogleDataTransport b/Clocker/Frameworks/Firebase/GoogleDataTransport.framework/GoogleDataTransport new file mode 100644 index 0000000..1eb0f64 Binary files /dev/null and b/Clocker/Frameworks/Firebase/GoogleDataTransport.framework/GoogleDataTransport differ diff --git a/Clocker/Frameworks/Firebase/GoogleDataTransport.framework/Headers/GDTCORClock.h b/Clocker/Frameworks/Firebase/GoogleDataTransport.framework/Headers/GDTCORClock.h new file mode 100644 index 0000000..8c75b50 --- /dev/null +++ b/Clocker/Frameworks/Firebase/GoogleDataTransport.framework/Headers/GDTCORClock.h @@ -0,0 +1,66 @@ +/* + * Copyright 2018 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_ASSUME_NONNULL_BEGIN + +/** This class manages the device clock and produces snapshots of the current time. */ +@interface GDTCORClock : NSObject + +/** The wallclock time, UTC, in milliseconds. */ +@property(nonatomic, readonly) int64_t timeMillis; + +/** The offset from UTC in seconds. */ +@property(nonatomic, readonly) int64_t timezoneOffsetSeconds; + +/** The kernel boot time when this clock was created in nanoseconds. */ +@property(nonatomic, readonly) int64_t kernelBootTimeNanoseconds; + +/** The device uptime when this clock was created in nanoseconds. */ +@property(nonatomic, readonly) int64_t uptimeNanoseconds; + +@property(nonatomic, readonly) int64_t kernelBootTime DEPRECATED_MSG_ATTRIBUTE( + "Please use `kernelBootTimeNanoseconds` instead"); + +@property(nonatomic, readonly) + int64_t uptime DEPRECATED_MSG_ATTRIBUTE("Please use `uptimeNanoseconds` instead"); + +/** Creates a GDTCORClock object using the current time and offsets. + * + * @return A new GDTCORClock object representing the current time state. + */ ++ (instancetype)snapshot; + +/** Creates a GDTCORClock object representing a time in the future, relative to now. + * + * @param millisInTheFuture The millis in the future from now this clock should represent. + * @return An instance representing a future time. + */ ++ (instancetype)clockSnapshotInTheFuture:(uint64_t)millisInTheFuture; + +/** Compares one clock with another, returns YES if the caller is after the parameter. + * + * @return YES if the calling clock's time is after the given clock's time. + */ +- (BOOL)isAfter:(GDTCORClock *)otherClock; + +/** Returns value of `uptime` property in milliseconds. */ +- (int64_t)uptimeMilliseconds; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Clocker/Frameworks/Firebase/GoogleDataTransport.framework/Headers/GDTCORConsoleLogger.h b/Clocker/Frameworks/Firebase/GoogleDataTransport.framework/Headers/GDTCORConsoleLogger.h new file mode 100644 index 0000000..1fdf732 --- /dev/null +++ b/Clocker/Frameworks/Firebase/GoogleDataTransport.framework/Headers/GDTCORConsoleLogger.h @@ -0,0 +1,144 @@ +/* + * Copyright 2018 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 + +/** The current logging level. This value and higher will be printed. Declared as volatile to make + * getting and setting atomic. + */ +FOUNDATION_EXPORT volatile NSInteger GDTCORConsoleLoggerLoggingLevel; + +/** A list of logging levels that GDT supports. */ +typedef NS_ENUM(NSInteger, GDTCORLoggingLevel) { + + /** Causes all logs to be printed. */ + GDTCORLoggingLevelDebug = 1, + + /** Causes all non-debug logs to be printed. */ + GDTCORLoggingLevelVerbose = 2, + + /** Causes warnings and errors to be printed. */ + GDTCORLoggingLevelWarnings = 3, + + /** Causes errors to be printed. This is the default value. */ + GDTCORLoggingLevelErrors = 4 +}; + +/** A list of message codes to print in the logger that help to correspond printed messages with + * code locations. + * + * Prefixes: + * - MCD => MessageCodeDebug + * - MCW => MessageCodeWarning + * - MCE => MessageCodeError + */ +typedef NS_ENUM(NSInteger, GDTCORMessageCode) { + + /** For debug logs. */ + GDTCORMCDDebugLog = 0, + + /** For warning messages concerning transportBytes: not being implemented by a data object. */ + GDTCORMCWDataObjectMissingBytesImpl = 1, + + /** For warning messages concerning a failed event upload. */ + GDTCORMCWUploadFailed = 2, + + /** For warning messages concerning a forced event upload. */ + GDTCORMCWForcedUpload = 3, + + /** For warning messages concerning a failed reachability call. */ + GDTCORMCWReachabilityFailed = 4, + + /** For warning messages concerning a database warning. */ + GDTCORMCWDatabaseWarning = 5, + + /** For warning messages concerning the reading of a event file. */ + GDTCORMCWFileReadError = 6, + + /** For error messages concerning transformGDTEvent: not being implemented by an event + transformer. */ + GDTCORMCETransformerDoesntImplementTransform = 1000, + + /** For error messages concerning the creation of a directory failing. */ + GDTCORMCEDirectoryCreationError = 1001, + + /** For error messages concerning the writing of a event file. */ + GDTCORMCEFileWriteError = 1002, + + /** For error messages concerning the lack of a prioritizer for a given backend. */ + GDTCORMCEPrioritizerError = 1003, + + /** For error messages concerning a package delivery API violation. */ + GDTCORMCEDeliverTwice = 1004, + + /** For error messages concerning an error in an implementation of -transportBytes. */ + GDTCORMCETransportBytesError = 1005, + + /** For general purpose error messages in a dependency. */ + GDTCORMCEGeneralError = 1006, + + /** For fatal errors. Please go to https://github.com/firebase/firebase-ios-sdk/issues and open + * an issue if you encounter an error with this code. + */ + GDTCORMCEFatalAssertion = 1007, + + /** For error messages concerning the reading of a event file. */ + GDTCORMCEFileReadError = 1008, + + /** For errors related to running sqlite. */ + GDTCORMCEDatabaseError = 1009, +}; + +/** Prints the given code and format string to the console. + * + * @param code The message code describing the nature of the log. + * @param logLevel The log level of this log. + * @param format The format string. + */ +FOUNDATION_EXPORT +void GDTCORLog(GDTCORMessageCode code, GDTCORLoggingLevel logLevel, NSString *_Nonnull format, ...) + NS_FORMAT_FUNCTION(3, 4); + +/** Prints an assert log to the console. + * + * @param wasFatal Send YES if the assertion should be fatal, NO otherwise. + * @param file The file in which the failure occurred. + * @param line The line number of the failure. + * @param format The format string. + */ +FOUNDATION_EXPORT void GDTCORLogAssert(BOOL wasFatal, + NSString *_Nonnull file, + NSInteger line, + NSString *_Nullable format, + ...) NS_FORMAT_FUNCTION(4, 5); + +/** Returns the string that represents some message code. + * + * @param code The code to convert to a string. + * @return The string representing the message code. + */ +FOUNDATION_EXPORT NSString *_Nonnull GDTCORMessageCodeEnumToString(GDTCORMessageCode code); + +#define GDTCORLogDebug(MESSAGE_FORMAT, ...) \ + GDTCORLog(GDTCORMCDDebugLog, GDTCORLoggingLevelDebug, MESSAGE_FORMAT, __VA_ARGS__); + +// A define to wrap GULLogWarning with slightly more convenient usage. +#define GDTCORLogWarning(MESSAGE_CODE, MESSAGE_FORMAT, ...) \ + GDTCORLog(MESSAGE_CODE, GDTCORLoggingLevelWarnings, MESSAGE_FORMAT, __VA_ARGS__); + +// A define to wrap GULLogError with slightly more convenient usage and a failing assert. +#define GDTCORLogError(MESSAGE_CODE, MESSAGE_FORMAT, ...) \ + GDTCORLog(MESSAGE_CODE, GDTCORLoggingLevelErrors, MESSAGE_FORMAT, __VA_ARGS__); diff --git a/Clocker/Frameworks/Firebase/GoogleDataTransport.framework/Headers/GDTCOREndpoints.h b/Clocker/Frameworks/Firebase/GoogleDataTransport.framework/Headers/GDTCOREndpoints.h new file mode 100644 index 0000000..836a454 --- /dev/null +++ b/Clocker/Frameworks/Firebase/GoogleDataTransport.framework/Headers/GDTCOREndpoints.h @@ -0,0 +1,36 @@ +/* + * Copyright 2018 Google LLC + * + * 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 "GDTCORTargets.h" + +NS_ASSUME_NONNULL_BEGIN + +/* Class that manages the endpoints used by Google data transport library. */ +@interface GDTCOREndpoints : NSObject + +- (instancetype)init NS_UNAVAILABLE; + +/** Returns the upload URL for a target specified. If the target is not available, returns nil. + * + * @param target GoogleDataTransport target for which the upload URL is being looked up for. + * @return URL that will be used for uploading the events for the provided target. + */ ++ (nullable NSURL *)uploadURLForTarget:(GDTCORTarget)target; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Clocker/Frameworks/Firebase/GoogleDataTransport.framework/Headers/GDTCOREvent.h b/Clocker/Frameworks/Firebase/GoogleDataTransport.framework/Headers/GDTCOREvent.h new file mode 100644 index 0000000..52c2384 --- /dev/null +++ b/Clocker/Frameworks/Firebase/GoogleDataTransport.framework/Headers/GDTCOREvent.h @@ -0,0 +1,87 @@ +/* + * Copyright 2018 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 "GDTCOREventDataObject.h" +#import "GDTCORTargets.h" + +@class GDTCORClock; + +NS_ASSUME_NONNULL_BEGIN + +/** The different possible quality of service specifiers. High values indicate high priority. */ +typedef NS_ENUM(NSInteger, GDTCOREventQoS) { + /** The QoS tier wasn't set, and won't ever be sent. */ + GDTCOREventQoSUnknown = 0, + + /** This event is internal telemetry data that should not be sent on its own if possible. */ + GDTCOREventQoSTelemetry = 1, + + /** This event should be sent, but in a batch only roughly once per day. */ + GDTCOREventQoSDaily = 2, + + /** This event should be sent when requested by the uploader. */ + GDTCOREventQosDefault = 3, + + /** This event should be sent immediately along with any other data that can be batched. */ + GDTCOREventQoSFast = 4, + + /** This event should only be uploaded on wifi. */ + GDTCOREventQoSWifiOnly = 5, +}; + +@interface GDTCOREvent : NSObject + +/** The unique ID of the event. */ +@property(readonly, nonatomic) NSString *eventID; + +/** The mapping identifier, to allow backends to map the transport bytes to a proto. */ +@property(nullable, readonly, nonatomic) NSString *mappingID; + +/** The identifier for the backend this event will eventually be sent to. */ +@property(readonly, nonatomic) GDTCORTarget target; + +/** The data object encapsulated in the transport of your choice, as long as it implements + * the GDTCOREventDataObject protocol. */ +@property(nullable, nonatomic) id dataObject; + +/** The serialized bytes from calling [dataObject transportBytes]. */ +@property(nullable, readonly, nonatomic) NSData *serializedDataObjectBytes; + +/** The quality of service tier this event belongs to. */ +@property(nonatomic) GDTCOREventQoS qosTier; + +/** The clock snapshot at the time of the event. */ +@property(nonatomic) GDTCORClock *clockSnapshot; + +/** The expiration date of the event. Default is 604800 seconds (7 days) from creation. */ +@property(nonatomic) NSDate *expirationDate; + +/** Bytes that can be used by an uploader later on. */ +@property(nullable, nonatomic) NSData *customBytes; + +/** Initializes an instance using the given mappingID. + * + * @param mappingID The mapping identifier. + * @param target The event's target identifier. + * @return An instance of this class. + */ +- (nullable instancetype)initWithMappingID:(NSString *)mappingID target:(GDTCORTarget)target; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Clocker/Frameworks/Firebase/GoogleDataTransport.framework/Headers/GDTCOREventDataObject.h b/Clocker/Frameworks/Firebase/GoogleDataTransport.framework/Headers/GDTCOREventDataObject.h new file mode 100644 index 0000000..34ef624 --- /dev/null +++ b/Clocker/Frameworks/Firebase/GoogleDataTransport.framework/Headers/GDTCOREventDataObject.h @@ -0,0 +1,36 @@ +/* + * Copyright 2018 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_ASSUME_NONNULL_BEGIN + +/** This protocol defines the common interface that event protos should implement regardless of the + * underlying transport technology (protobuf, nanopb, etc). + */ +@protocol GDTCOREventDataObject + +@required + +/** Returns the serialized proto bytes of the implementing event proto. + * + * @return the serialized proto bytes of the implementing event proto. + */ +- (NSData *)transportBytes; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Clocker/Frameworks/Firebase/GoogleDataTransport.framework/Headers/GDTCOREventTransformer.h b/Clocker/Frameworks/Firebase/GoogleDataTransport.framework/Headers/GDTCOREventTransformer.h new file mode 100644 index 0000000..80dee7d --- /dev/null +++ b/Clocker/Frameworks/Firebase/GoogleDataTransport.framework/Headers/GDTCOREventTransformer.h @@ -0,0 +1,38 @@ +/* + * Copyright 2018 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 + +@class GDTCOREvent; + +NS_ASSUME_NONNULL_BEGIN + +/** Defines the API that event transformers must adopt. */ +@protocol GDTCOREventTransformer + +@required + +/** Transforms an event by applying some logic to it. Events returned can be nil, for example, in + * instances where the event should be sampled. + * + * @param event The event to transform. + * @return A transformed event, or nil if the transformation dropped the event. + */ +- (nullable GDTCOREvent *)transformGDTEvent:(GDTCOREvent *)event; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Clocker/Frameworks/Firebase/GoogleDataTransport.framework/Headers/GDTCORTargets.h b/Clocker/Frameworks/Firebase/GoogleDataTransport.framework/Headers/GDTCORTargets.h new file mode 100644 index 0000000..0b83ab9 --- /dev/null +++ b/Clocker/Frameworks/Firebase/GoogleDataTransport.framework/Headers/GDTCORTargets.h @@ -0,0 +1,40 @@ +/* + * Copyright 2019 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 + +/** The list of targets supported by the shared transport infrastructure. If adding a new target, + * please use the previous value +1. + */ +typedef NS_ENUM(NSInteger, GDTCORTarget) { + + /** A target only used in testing. */ + kGDTCORTargetTest = 999, + + /** The CCT target. */ + kGDTCORTargetCCT = 1000, + + /** The FLL target. */ + kGDTCORTargetFLL = 1001, + + /** The CSH target. The CSH target is a special-purpose backend. Please do not use it without + * permission. + */ + kGDTCORTargetCSH = 1002, + + /** The INT target. */ + kGDTCORTargetINT = 1003, +}; diff --git a/Clocker/Frameworks/Firebase/GoogleDataTransport.framework/Headers/GDTCORTransport.h b/Clocker/Frameworks/Firebase/GoogleDataTransport.framework/Headers/GDTCORTransport.h new file mode 100644 index 0000000..e58248d --- /dev/null +++ b/Clocker/Frameworks/Firebase/GoogleDataTransport.framework/Headers/GDTCORTransport.h @@ -0,0 +1,92 @@ +/* + * Copyright 2018 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 "GDTCOREventTransformer.h" +#import "GDTCORTargets.h" + +@class GDTCOREvent; + +NS_ASSUME_NONNULL_BEGIN + +@interface GDTCORTransport : NSObject + +// Please use the designated initializer. +- (instancetype)init NS_UNAVAILABLE; + +/** Initializes a new transport that will send events to the given target backend. + * + * @param mappingID The mapping identifier used by the backend to map the data object transport + * bytes to a proto. + * @param transformers A list of transformers to be applied to events that are sent. + * @param target The target backend of this transport. + * @return A transport that will send events. + */ +- (nullable instancetype)initWithMappingID:(NSString *)mappingID + transformers: + (nullable NSArray> *)transformers + target:(GDTCORTarget)target NS_DESIGNATED_INITIALIZER; + +/** Copies and sends an internal telemetry event. Events sent using this API are lower in priority, + * and sometimes won't be sent on their own. + * + * @note This will convert the event's data object to data and release the original event. + * + * @param event The event to send. + * @param completion A block that will be called when the event has been written or dropped. + */ +- (void)sendTelemetryEvent:(GDTCOREvent *)event + onComplete:(void (^_Nullable)(BOOL wasWritten, NSError *_Nullable error))completion; + +/** Copies and sends an internal telemetry event. Events sent using this API are lower in priority, + * and sometimes won't be sent on their own. + * + * @note This will convert the event's data object to data and release the original event. + * + * @param event The event to send. + */ +- (void)sendTelemetryEvent:(GDTCOREvent *)event; + +/** Copies and sends an SDK service data event. Events send using this API are higher in priority, + * and will cause a network request at some point in the relative near future. + * + * @note This will convert the event's data object to data and release the original event. + * + * @param event The event to send. + * @param completion A block that will be called when the event has been written or dropped. + */ +- (void)sendDataEvent:(GDTCOREvent *)event + onComplete:(void (^_Nullable)(BOOL wasWritten, NSError *_Nullable error))completion; + +/** Copies and sends an SDK service data event. Events send using this API are higher in priority, + * and will cause a network request at some point in the relative near future. + * + * @note This will convert the event's data object to data and release the original event. + * + * @param event The event to send. + */ +- (void)sendDataEvent:(GDTCOREvent *)event; + +/** Creates an event for use by this transport. + * + * @return An event that is suited for use by this transport. + */ +- (GDTCOREvent *)eventForTransport; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Clocker/Frameworks/Firebase/GoogleDataTransport.framework/Headers/GoogleDataTransport.h b/Clocker/Frameworks/Firebase/GoogleDataTransport.framework/Headers/GoogleDataTransport.h new file mode 100644 index 0000000..0bd39dc --- /dev/null +++ b/Clocker/Frameworks/Firebase/GoogleDataTransport.framework/Headers/GoogleDataTransport.h @@ -0,0 +1,24 @@ +/* + * Copyright 2018 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 "GDTCORClock.h" +#import "GDTCORConsoleLogger.h" +#import "GDTCOREndpoints.h" +#import "GDTCOREvent.h" +#import "GDTCOREventDataObject.h" +#import "GDTCOREventTransformer.h" +#import "GDTCORTargets.h" +#import "GDTCORTransport.h" diff --git a/Clocker/Frameworks/Firebase/GoogleDataTransport.framework/Info.plist b/Clocker/Frameworks/Firebase/GoogleDataTransport.framework/Info.plist new file mode 100644 index 0000000..d85a261 --- /dev/null +++ b/Clocker/Frameworks/Firebase/GoogleDataTransport.framework/Info.plist @@ -0,0 +1,20 @@ + + + + + CFBundleExecutable + GoogleDataTransport + CFBundleIdentifier + com.firebase.Firebase-GoogleDataTransport + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + GoogleDataTransport + CFBundlePackageType + FMWK + CFBundleVersion + 9.0.1 + DTSDKName + iphonesimulator11.2 + + diff --git a/Clocker/Frameworks/Firebase/GoogleDataTransport.framework/Modules/module.modulemap b/Clocker/Frameworks/Firebase/GoogleDataTransport.framework/Modules/module.modulemap new file mode 100644 index 0000000..495e356 --- /dev/null +++ b/Clocker/Frameworks/Firebase/GoogleDataTransport.framework/Modules/module.modulemap @@ -0,0 +1,9 @@ +framework module GoogleDataTransport { +umbrella header "GoogleDataTransport.h" +export * +module * { export * } + link framework "CoreTelephony" + link framework "Security" + link framework "SystemConfiguration" + link "z" +} diff --git a/Clocker/Frameworks/Firebase/GoogleUtilities.framework/GoogleUtilities b/Clocker/Frameworks/Firebase/GoogleUtilities.framework/GoogleUtilities new file mode 100644 index 0000000..04859a4 Binary files /dev/null and b/Clocker/Frameworks/Firebase/GoogleUtilities.framework/GoogleUtilities differ diff --git a/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULAppDelegateSwizzler.h b/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULAppDelegateSwizzler.h new file mode 100644 index 0000000..58dec49 --- /dev/null +++ b/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULAppDelegateSwizzler.h @@ -0,0 +1,107 @@ +/* + * Copyright 2018 Google LLC + * + * 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 "GULApplication.h" + +NS_ASSUME_NONNULL_BEGIN + +typedef NSString *const GULAppDelegateInterceptorID; + +/** This class contains methods that isa swizzle the app delegate. */ +@interface GULAppDelegateSwizzler : NSProxy + +/** Registers an app delegate interceptor whose methods will be invoked as they're invoked on the + * original app delegate. + * + * @param interceptor An instance of a class that conforms to the application delegate protocol. + * The interceptor is NOT retained. + * @return A unique GULAppDelegateInterceptorID if interceptor was successfully registered; nil + * if it fails. + */ ++ (nullable GULAppDelegateInterceptorID)registerAppDelegateInterceptor: + (id)interceptor; + +/** Unregisters an interceptor with the given ID if it exists. + * + * @param interceptorID The object that was generated when the interceptor was registered. + */ ++ (void)unregisterAppDelegateInterceptorWithID:(GULAppDelegateInterceptorID)interceptorID; + +/** This method ensures that the original app delegate has been proxied. Call this before + * registering your interceptor. This method is safe to call multiple times (but it only proxies + * the app delegate once). + * + * This method doesn't proxy APNS related methods: + * @code + * - application:didRegisterForRemoteNotificationsWithDeviceToken: + * - application:didFailToRegisterForRemoteNotificationsWithError: + * - application:didReceiveRemoteNotification:fetchCompletionHandler: + * - application:didReceiveRemoteNotification: + * @endcode + * + * To proxy these methods use +[GULAppDelegateSwizzler + * proxyOriginalDelegateIncludingAPNSMethods]. The methods have to be proxied separately to + * avoid potential warnings from Apple review about missing Push Notification Entitlement (e.g. + * https://github.com/firebase/firebase-ios-sdk/issues/2807) + * + * The method has no effect for extensions. + * + * @see proxyOriginalDelegateIncludingAPNSMethods + */ ++ (void)proxyOriginalDelegate; + +/** This method ensures that the original app delegate has been proxied including APNS related + * methods. Call this before registering your interceptor. This method is safe to call multiple + * times (but it only proxies the app delegate once) or + * after +[GULAppDelegateSwizzler proxyOriginalDelegate] + * + * This method calls +[GULAppDelegateSwizzler proxyOriginalDelegate] under the hood. + * After calling this method the following App Delegate methods will be proxied in addition to + * the methods proxied by proxyOriginalDelegate: + * @code + * - application:didRegisterForRemoteNotificationsWithDeviceToken: + * - application:didFailToRegisterForRemoteNotificationsWithError: + * - application:didReceiveRemoteNotification:fetchCompletionHandler: + * - application:didReceiveRemoteNotification: + * @endcode + * + * The method has no effect for extensions. + * + * @see proxyOriginalDelegate + */ ++ (void)proxyOriginalDelegateIncludingAPNSMethods; + +/** Indicates whether app delegate proxy is explicitly disabled or enabled. Enabled by default. + * + * @return YES if AppDelegateProxy is Enabled, NO otherwise. + */ ++ (BOOL)isAppDelegateProxyEnabled; + +/** Returns the current sharedApplication. + * + * @return the current application instance if in an app, or nil if in extension or if it doesn't + * exist. + */ ++ (nullable GULApplication *)sharedApplication; + +/** Do not initialize this class. */ +- (instancetype)init NS_UNAVAILABLE; + +NS_ASSUME_NONNULL_END + +@end diff --git a/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULAppEnvironmentUtil.h b/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULAppEnvironmentUtil.h new file mode 100644 index 0000000..d2bb935 --- /dev/null +++ b/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULAppEnvironmentUtil.h @@ -0,0 +1,60 @@ +/* + * 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_ASSUME_NONNULL_BEGIN + +@interface GULAppEnvironmentUtil : NSObject + +/// Indicates whether the app is from Apple Store or not. Returns NO if the app is on simulator, +/// development environment or sideloaded. ++ (BOOL)isFromAppStore; + +/// Indicates whether the app is a Testflight app. Returns YES if the app has sandbox receipt. +/// Returns NO otherwise. ++ (BOOL)isAppStoreReceiptSandbox; + +/// Indicates whether the app is on simulator or not at runtime depending on the device +/// architecture. ++ (BOOL)isSimulator; + +/// The current device model. Returns an empty string if device model cannot be retrieved. ++ (nullable NSString *)deviceModel; + +/// The current operating system version. Returns an empty string if the system version cannot be +/// retrieved. ++ (NSString *)systemVersion; + +/// Indicates whether it is running inside an extension or an app. ++ (BOOL)isAppExtension; + +/// @return Returns @YES when is run on iOS version greater or equal to 7.0 ++ (BOOL)isIOS7OrHigher DEPRECATED_MSG_ATTRIBUTE( + "Always `YES` because only iOS 8 and higher supported. The method will be removed."); + +/// @return YES if Swift runtime detected in the app. ++ (BOOL)hasSwiftRuntime; + +/// @return An Apple platform. Possible values "ios", "tvos", "macos", "watchos", "maccatalyst". ++ (NSString *)applePlatform; + +/// @return The way the library was added to the app, e.g. "swiftpm", "cocoapods", etc. ++ (NSString *)deploymentType; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULApplication.h b/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULApplication.h new file mode 100644 index 0000000..8067212 --- /dev/null +++ b/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULApplication.h @@ -0,0 +1,50 @@ +/* + * Copyright 2019 Google LLC + * + * 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 || TARGET_OS_TV + +#import + +#define GULApplication UIApplication +#define GULApplicationDelegate UIApplicationDelegate +#define GULUserActivityRestoring UIUserActivityRestoring + +static NSString *const kGULApplicationClassName = @"UIApplication"; + +#elif TARGET_OS_OSX + +#import + +#define GULApplication NSApplication +#define GULApplicationDelegate NSApplicationDelegate +#define GULUserActivityRestoring NSUserActivityRestoring + +static NSString *const kGULApplicationClassName = @"NSApplication"; + +#elif TARGET_OS_WATCH + +#import + +// We match the according watchOS API but swizzling should not work in watch +#define GULApplication WKExtension +#define GULApplicationDelegate WKExtensionDelegate +#define GULUserActivityRestoring NSUserActivityRestoring + +static NSString *const kGULApplicationClassName = @"WKExtension"; + +#endif diff --git a/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULHeartbeatDateStorable.h b/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULHeartbeatDateStorable.h new file mode 100644 index 0000000..43d3740 --- /dev/null +++ b/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULHeartbeatDateStorable.h @@ -0,0 +1,40 @@ +/* + * Copyright 2021 Google LLC + * + * 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_ASSUME_NONNULL_BEGIN + +/** + * Describes an object that can store and fetch heartbeat dates for given tags. + */ +@protocol GULHeartbeatDateStorable + +/** + * Reads the date from the specified file for the given tag. + * @return Returns date if exists, otherwise `nil`. + */ +- (nullable NSDate *)heartbeatDateForTag:(NSString *)tag; + +/** + * Saves the date for the specified tag in the specified file. + * @return YES on success, NO otherwise. + */ +- (BOOL)setHearbeatDate:(NSDate *)date forTag:(NSString *)tag; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULHeartbeatDateStorage.h b/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULHeartbeatDateStorage.h new file mode 100644 index 0000000..245b1a2 --- /dev/null +++ b/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULHeartbeatDateStorage.h @@ -0,0 +1,54 @@ +/* + * Copyright 2019 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 "GULHeartbeatDateStorable.h" + +NS_ASSUME_NONNULL_BEGIN + +/// The name of the directory where the heartbeat data is stored. +extern NSString *const kGULHeartbeatStorageDirectory; + +/// Stores either a date or a dictionary to a specified file. +@interface GULHeartbeatDateStorage : NSObject + +- (instancetype)init NS_UNAVAILABLE; + +@property(nonatomic, readonly) NSURL *fileURL; + +/** + * Default initializer. + * @param fileName The name of the file to store the date information. + * exist, it will be created if needed. + */ +- (instancetype)initWithFileName:(NSString *)fileName; + +/** + * Reads the date from the specified file for the given tag. + * @return Returns date if exists, otherwise `nil`. + */ +- (nullable NSDate *)heartbeatDateForTag:(NSString *)tag; + +/** + * Saves the date for the specified tag in the specified file. + * @return YES on success, NO otherwise. + */ +- (BOOL)setHearbeatDate:(NSDate *)date forTag:(NSString *)tag; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULHeartbeatDateStorageUserDefaults.h b/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULHeartbeatDateStorageUserDefaults.h new file mode 100644 index 0000000..e6c7dda --- /dev/null +++ b/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULHeartbeatDateStorageUserDefaults.h @@ -0,0 +1,51 @@ +/* + * Copyright 2021 Google LLC + * + * 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 "GULHeartbeatDateStorable.h" + +NS_ASSUME_NONNULL_BEGIN + +/// Stores either a date or a dictionary to a specified file. +@interface GULHeartbeatDateStorageUserDefaults : NSObject + +/** + * Default initializer. tvOS can only write to the cache directory and + * there are no guarantees that the directory will persist. User defaults will + * be retained, so that should be used instead. + * @param defaults User defaults instance to store the heartbeat information. + * @param key The key to be used with the user defaults instance. + */ +- (instancetype)initWithDefaults:(NSUserDefaults *)defaults key:(NSString *)key; + +- (instancetype)init NS_UNAVAILABLE; + +/** + * Reads the date from the specified file for the given tag. + * @return Returns date if exists, otherwise `nil`. + */ +- (nullable NSDate *)heartbeatDateForTag:(NSString *)tag; + +/** + * Saves the date for the specified tag in the specified file. + * @return YES on success, NO otherwise. + */ +- (BOOL)setHearbeatDate:(NSDate *)date forTag:(NSString *)tag; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULKeychainStorage.h b/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULKeychainStorage.h new file mode 100644 index 0000000..dc01a83 --- /dev/null +++ b/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULKeychainStorage.h @@ -0,0 +1,79 @@ +/* + * Copyright 2019 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 + +@class FBLPromise; + +NS_ASSUME_NONNULL_BEGIN + +/// The class provides a convenient abstraction on top of the iOS Keychain API to save data. +@interface GULKeychainStorage : NSObject + +- (instancetype)init NS_UNAVAILABLE; + +/** Initializes the keychain storage with Keychain Service name. + * @param service A Keychain Service name that will be used to store and retrieve objects. See also + * `kSecAttrService`. + */ +- (instancetype)initWithService:(NSString *)service; + +/** + * Get an object by key. + * @param key The key. + * @param objectClass The expected object class required by `NSSecureCoding`. + * @param accessGroup The Keychain Access Group. + * + * @return Returns a promise. It is resolved with an object stored by key if exists. It is resolved + * with `nil` when the object not found. It fails on a Keychain error. + */ +- (FBLPromise> *)getObjectForKey:(NSString *)key + objectClass:(Class)objectClass + accessGroup:(nullable NSString *)accessGroup; + +/** + * Saves the given object by the given key. + * @param object The object to store. + * @param key The key to store the object. If there is an existing object by the key, it will be + * overridden. + * @param accessGroup The Keychain Access Group. + * + * @return Returns which is resolved with `[NSNull null]` on success. + */ +- (FBLPromise *)setObject:(id)object + forKey:(NSString *)key + accessGroup:(nullable NSString *)accessGroup; + +/** + * Removes the object by the given key. + * @param key The key to store the object. If there is an existing object by the key, it will be + * overridden. + * @param accessGroup The Keychain Access Group. + * + * @return Returns which is resolved with `[NSNull null]` on success. + */ +- (FBLPromise *)removeObjectForKey:(NSString *)key + accessGroup:(nullable NSString *)accessGroup; + +#if TARGET_OS_OSX +/// If not `nil`, then only this keychain will be used to save and read data (see +/// `kSecMatchSearchList` and `kSecUseKeychain`. It is mostly intended to be used by unit tests. +@property(nonatomic, nullable) SecKeychainRef keychainRef; +#endif // TARGET_OSX + +@end + +NS_ASSUME_NONNULL_END diff --git a/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULKeychainUtils.h b/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULKeychainUtils.h new file mode 100644 index 0000000..de4bef2 --- /dev/null +++ b/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULKeychainUtils.h @@ -0,0 +1,61 @@ +/* + * Copyright 2019 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_ASSUME_NONNULL_BEGIN + +FOUNDATION_EXPORT NSString *const kGULKeychainUtilsErrorDomain; + +/// Helper functions to access Keychain. +@interface GULKeychainUtils : NSObject + +/** Fetches a keychain item data matching to the provided query. + * @param query A dictionary with Keychain query parameters. See docs for `SecItemCopyMatching` for + * details. + * @param outError A pointer to `NSError` instance or `NULL`. The instance at `outError` will be + * assigned with an error if there is. + * @returns Data for the first Keychain Item matching the provided query or `nil` if there is not + * such an item (`outError` will be `nil` in this case) or an error occurred. + */ ++ (nullable NSData *)getItemWithQuery:(NSDictionary *)query + error:(NSError *_Nullable *_Nullable)outError; + +/** Stores data to a Keychain Item matching to the provided query. An existing Keychain Item + * matching the query parameters will be updated or a new will be created. + * @param item A Keychain Item data to store. + * @param query A dictionary with Keychain query parameters. See docs for `SecItemAdd` and + * `SecItemUpdate` for details. + * @param outError A pointer to `NSError` instance or `NULL`. The instance at `outError` will be + * assigned with an error if there is. + * @returns `YES` when data was successfully stored, `NO` otherwise. + */ ++ (BOOL)setItem:(NSData *)item + withQuery:(NSDictionary *)query + error:(NSError *_Nullable *_Nullable)outError; + +/** Removes a Keychain Item matching to the provided query. + * @param query A dictionary with Keychain query parameters. See docs for `SecItemDelete` for + * details. + * @param outError A pointer to `NSError` instance or `NULL`. The instance at `outError` will be + * assigned with an error if there is. + * @returns `YES` if the item was removed successfully or doesn't exist, `NO` otherwise. + */ ++ (BOOL)removeItemWithQuery:(NSDictionary *)query error:(NSError *_Nullable *_Nullable)outError; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULLogger.h b/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULLogger.h new file mode 100644 index 0000000..6797399 --- /dev/null +++ b/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULLogger.h @@ -0,0 +1,159 @@ +/* + * Copyright 2018 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 "GULLoggerLevel.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + * The services used in the logger. + */ +typedef NSString *const GULLoggerService; + +#ifdef __cplusplus +extern "C" { +#endif // __cplusplus + +/** + * Initialize GULLogger. + */ +extern void GULLoggerInitializeASL(void); + +/** + * Override log level to Debug. + */ +void GULLoggerForceDebug(void); + +/** + * Turn on logging to STDERR. + */ +extern void GULLoggerEnableSTDERR(void); + +/** + * Changes the default logging level of GULLoggerLevelNotice to a user-specified level. + * The default level cannot be set above GULLoggerLevelNotice if the app is running from App Store. + * (required) log level (one of the GULLoggerLevel enum values). + */ +extern void GULSetLoggerLevel(GULLoggerLevel loggerLevel); + +/** + * Checks if the specified logger level is loggable given the current settings. + * (required) log level (one of the GULLoggerLevel enum values). + */ +extern BOOL GULIsLoggableLevel(GULLoggerLevel loggerLevel); + +/** + * Register version to include in logs. + * (required) version + */ +extern void GULLoggerRegisterVersion(NSString *version); + +/** + * Logs a message to the Xcode console and the device log. If running from AppStore, will + * not log any messages with a level higher than GULLoggerLevelNotice to avoid log spamming. + * (required) log level (one of the GULLoggerLevel enum values). + * (required) service name of type GULLoggerService. + * (required) message code starting with "I-" which means iOS, followed by a capitalized + * three-character service identifier and a six digit integer message ID that is unique + * within the service. + * An example of the message code is @"I-COR000001". + * (required) message string which can be a format string. + * (optional) variable arguments list obtained from calling va_start, used when message is a format + * string. + */ +extern void GULLogBasic(GULLoggerLevel level, + GULLoggerService service, + BOOL forceLog, + NSString *messageCode, + NSString *message, +// On 64-bit simulators, va_list is not a pointer, so cannot be marked nullable +// See: http://stackoverflow.com/q/29095469 +#if __LP64__ && TARGET_OS_SIMULATOR || TARGET_OS_OSX + va_list args_ptr +#else + va_list _Nullable args_ptr +#endif +); + +/** + * The following functions accept the following parameters in order: + * (required) service name of type GULLoggerService. + * (required) message code starting from "I-" which means iOS, followed by a capitalized + * three-character service identifier and a six digit integer message ID that is unique + * within the service. + * An example of the message code is @"I-COR000001". + * See go/firebase-log-proposal for details. + * (required) message string which can be a format string. + * (optional) the list of arguments to substitute into the format string. + * Example usage: + * GULLogError(kGULLoggerCore, @"I-COR000001", @"Configuration of %@ failed.", app.name); + */ +extern void GULLogError(GULLoggerService service, + BOOL force, + NSString *messageCode, + NSString *message, + ...) NS_FORMAT_FUNCTION(4, 5); +extern void GULLogWarning(GULLoggerService service, + BOOL force, + NSString *messageCode, + NSString *message, + ...) NS_FORMAT_FUNCTION(4, 5); +extern void GULLogNotice(GULLoggerService service, + BOOL force, + NSString *messageCode, + NSString *message, + ...) NS_FORMAT_FUNCTION(4, 5); +extern void GULLogInfo(GULLoggerService service, + BOOL force, + NSString *messageCode, + NSString *message, + ...) NS_FORMAT_FUNCTION(4, 5); +extern void GULLogDebug(GULLoggerService service, + BOOL force, + NSString *messageCode, + NSString *message, + ...) NS_FORMAT_FUNCTION(4, 5); + +#ifdef __cplusplus +} // extern "C" +#endif // __cplusplus + +@interface GULLoggerWrapper : NSObject + +/** + * Objective-C wrapper for GULLogBasic to allow weak linking to GULLogger + * (required) log level (one of the GULLoggerLevel enum values). + * (required) service name of type GULLoggerService. + * (required) message code starting with "I-" which means iOS, followed by a capitalized + * three-character service identifier and a six digit integer message ID that is unique + * within the service. + * An example of the message code is @"I-COR000001". + * (required) message string which can be a format string. + * (optional) variable arguments list obtained from calling va_start, used when message is a format + * string. + */ + ++ (void)logWithLevel:(GULLoggerLevel)level + withService:(GULLoggerService)service + withCode:(NSString *)messageCode + withMessage:(NSString *)message + withArgs:(va_list)args; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULLoggerLevel.h b/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULLoggerLevel.h new file mode 100644 index 0000000..f0ee435 --- /dev/null +++ b/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULLoggerLevel.h @@ -0,0 +1,37 @@ +/* + * Copyright 2018 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 + +/** + * The log levels used by internal logging. + */ +typedef NS_ENUM(NSInteger, GULLoggerLevel) { + /** Error level, matches ASL_LEVEL_ERR. */ + GULLoggerLevelError = 3, + /** Warning level, matches ASL_LEVEL_WARNING. */ + GULLoggerLevelWarning = 4, + /** Notice level, matches ASL_LEVEL_NOTICE. */ + GULLoggerLevelNotice = 5, + /** Info level, matches ASL_LEVEL_INFO. */ + GULLoggerLevelInfo = 6, + /** Debug level, matches ASL_LEVEL_DEBUG. */ + GULLoggerLevelDebug = 7, + /** Minimum log level. */ + GULLoggerLevelMin = GULLoggerLevelError, + /** Maximum log level. */ + GULLoggerLevelMax = GULLoggerLevelDebug +} NS_SWIFT_NAME(GoogleLoggerLevel); diff --git a/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULMutableDictionary.h b/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULMutableDictionary.h new file mode 100644 index 0000000..a8cc45b --- /dev/null +++ b/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULMutableDictionary.h @@ -0,0 +1,46 @@ +/* + * 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 + +/// A mutable dictionary that provides atomic accessor and mutators. +@interface GULMutableDictionary : NSObject + +/// Returns an object given a key in the dictionary or nil if not found. +- (id)objectForKey:(id)key; + +/// Updates the object given its key or adds it to the dictionary if it is not in the dictionary. +- (void)setObject:(id)object forKey:(id)key; + +/// Removes the object given its session ID from the dictionary. +- (void)removeObjectForKey:(id)key; + +/// Removes all objects. +- (void)removeAllObjects; + +/// Returns the number of current objects in the dictionary. +- (NSUInteger)count; + +/// Returns an object given a key in the dictionary or nil if not found. +- (id)objectForKeyedSubscript:(id)key; + +/// Updates the object given its key or adds it to the dictionary if it is not in the dictionary. +- (void)setObject:(id)obj forKeyedSubscript:(id)key; + +/// Returns the immutable dictionary. +- (NSDictionary *)dictionary; + +@end diff --git a/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULNSData+zlib.h b/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULNSData+zlib.h new file mode 100644 index 0000000..36f94a7 --- /dev/null +++ b/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULNSData+zlib.h @@ -0,0 +1,49 @@ +// Copyright 2018 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 + +/// This is a copy of Google Toolbox for Mac library to avoid creating an extra framework. + +// 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. + +@interface NSData (GULGzip) + +/// Returns an data as the result of decompressing the payload of |data|.The data to decompress must +/// be a gzipped payloads. ++ (NSData *)gul_dataByInflatingGzippedData:(NSData *)data error:(NSError **)error; + +/// Returns an compressed data with the result of gzipping the payload of |data|. Uses the default +/// compression level. ++ (NSData *)gul_dataByGzippingData:(NSData *)data error:(NSError **)error; + +FOUNDATION_EXPORT NSString *const GULNSDataZlibErrorDomain; +FOUNDATION_EXPORT NSString *const GULNSDataZlibErrorKey; // NSNumber +FOUNDATION_EXPORT NSString *const GULNSDataZlibRemainingBytesKey; // NSNumber + +typedef NS_ENUM(NSInteger, GULNSDataZlibError) { + GULNSDataZlibErrorGreaterThan32BitsToCompress = 1024, + // An internal zlib error. + // GULNSDataZlibErrorKey will contain the error value. + // NSLocalizedDescriptionKey may contain an error string from zlib. + // Look in zlib.h for list of errors. + GULNSDataZlibErrorInternal, + // There was left over data in the buffer that was not used. + // GULNSDataZlibRemainingBytesKey will contain number of remaining bytes. + GULNSDataZlibErrorDataRemaining +}; + +@end diff --git a/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULNetwork.h b/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULNetwork.h new file mode 100644 index 0000000..0e75ae5 --- /dev/null +++ b/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULNetwork.h @@ -0,0 +1,87 @@ +/* + * 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 "GULNetworkConstants.h" +#import "GULNetworkLoggerProtocol.h" +#import "GULNetworkURLSession.h" + +/// Delegate protocol for GULNetwork events. +@protocol GULNetworkReachabilityDelegate + +/// Tells the delegate to handle events when the network reachability changes to connected or not +/// connected. +- (void)reachabilityDidChange; + +@end + +/// The Network component that provides network status and handles network requests and responses. +/// This is not thread safe. +/// +/// NOTE: +/// User must add FIRAnalytics handleEventsForBackgroundURLSessionID:completionHandler to the +/// AppDelegate application:handleEventsForBackgroundURLSession:completionHandler: +@interface GULNetwork : NSObject + +/// Indicates if network connectivity is available. +@property(nonatomic, readonly, getter=isNetworkConnected) BOOL networkConnected; + +/// Indicates if there are any uploads in progress. +@property(nonatomic, readonly, getter=hasUploadInProgress) BOOL uploadInProgress; + +/// An optional delegate that can be used in the event when network reachability changes. +@property(nonatomic, weak) id reachabilityDelegate; + +/// An optional delegate that can be used to log messages, warnings or errors that occur in the +/// network operations. +@property(nonatomic, weak) id loggerDelegate; + +/// Indicates whether the logger should display debug messages. +@property(nonatomic, assign) BOOL isDebugModeEnabled; + +/// The time interval in seconds for the network request to timeout. +@property(nonatomic, assign) NSTimeInterval timeoutInterval; + +/// Initializes with the default reachability host. +- (instancetype)init; + +/// Initializes with a custom reachability host. +- (instancetype)initWithReachabilityHost:(NSString *)reachabilityHost; + +/// Handles events when background session with the given ID has finished. ++ (void)handleEventsForBackgroundURLSessionID:(NSString *)sessionID + completionHandler:(GULNetworkSystemCompletionHandler)completionHandler; + +/// Compresses and sends a POST request with the provided data to the URL. The session will be +/// background session if usingBackgroundSession is YES. Otherwise, the POST session is default +/// session. Returns a session ID or nil if an error occurs. +- (NSString *)postURL:(NSURL *)url + payload:(NSData *)payload + queue:(dispatch_queue_t)queue + usingBackgroundSession:(BOOL)usingBackgroundSession + completionHandler:(GULNetworkCompletionHandler)handler; + +/// Sends a GET request with the provided data to the URL. The session will be background session +/// if usingBackgroundSession is YES. Otherwise, the GET session is default session. Returns a +/// session ID or nil if an error occurs. +- (NSString *)getURL:(NSURL *)url + headers:(NSDictionary *)headers + queue:(dispatch_queue_t)queue + usingBackgroundSession:(BOOL)usingBackgroundSession + completionHandler:(GULNetworkCompletionHandler)handler; + +@end diff --git a/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULNetworkConstants.h b/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULNetworkConstants.h new file mode 100644 index 0000000..1cbedd1 --- /dev/null +++ b/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULNetworkConstants.h @@ -0,0 +1,71 @@ +/* + * 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 + +/// Error codes in Firebase Network error domain. +/// Note: these error codes should never change. It would make it harder to decode the errors if +/// we inadvertently altered any of these codes in a future SDK version. +typedef NS_ENUM(NSInteger, GULNetworkErrorCode) { + /// Unknown error. + GULNetworkErrorCodeUnknown = 0, + /// Error occurs when the request URL is invalid. + GULErrorCodeNetworkInvalidURL = 1, + /// Error occurs when request cannot be constructed. + GULErrorCodeNetworkRequestCreation = 2, + /// Error occurs when payload cannot be compressed. + GULErrorCodeNetworkPayloadCompression = 3, + /// Error occurs when session task cannot be created. + GULErrorCodeNetworkSessionTaskCreation = 4, + /// Error occurs when there is no response. + GULErrorCodeNetworkInvalidResponse = 5 +}; + +#pragma mark - Network constants + +/// The prefix of the ID of the background session. +extern NSString *const kGULNetworkBackgroundSessionConfigIDPrefix; + +/// The sub directory to store the files of data that is being uploaded in the background. +extern NSString *const kGULNetworkApplicationSupportSubdirectory; + +/// Name of the temporary directory that stores files for background uploading. +extern NSString *const kGULNetworkTempDirectoryName; + +/// The period when the temporary uploading file can stay. +extern const NSTimeInterval kGULNetworkTempFolderExpireTime; + +/// The default network request timeout interval. +extern const NSTimeInterval kGULNetworkTimeOutInterval; + +/// The host to check the reachability of the network. +extern NSString *const kGULNetworkReachabilityHost; + +/// The key to get the error context of the UserInfo. +extern NSString *const kGULNetworkErrorContext; + +#pragma mark - Network Status Code + +extern const int kGULNetworkHTTPStatusOK; +extern const int kGULNetworkHTTPStatusNoContent; +extern const int kGULNetworkHTTPStatusCodeMultipleChoices; +extern const int kGULNetworkHTTPStatusCodeMovedPermanently; +extern const int kGULNetworkHTTPStatusCodeFound; +extern const int kGULNetworkHTTPStatusCodeNotModified; +extern const int kGULNetworkHTTPStatusCodeMovedTemporarily; +extern const int kGULNetworkHTTPStatusCodeNotFound; +extern const int kGULNetworkHTTPStatusCodeCannotAcceptTraffic; +extern const int kGULNetworkHTTPStatusCodeUnavailable; diff --git a/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULNetworkLoggerProtocol.h b/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULNetworkLoggerProtocol.h new file mode 100644 index 0000000..425c073 --- /dev/null +++ b/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULNetworkLoggerProtocol.h @@ -0,0 +1,49 @@ +/* + * 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 "GULNetworkMessageCode.h" + +/// The log levels used by GULNetworkLogger. +typedef NS_ENUM(NSInteger, GULNetworkLogLevel) { + kGULNetworkLogLevelError = 3, + kGULNetworkLogLevelWarning = 4, + kGULNetworkLogLevelInfo = 6, + kGULNetworkLogLevelDebug = 7, +}; + +@protocol GULNetworkLoggerDelegate + +@required +/// Tells the delegate to log a message with an array of contexts and the log level. +- (void)GULNetwork_logWithLevel:(GULNetworkLogLevel)logLevel + messageCode:(GULNetworkMessageCode)messageCode + message:(NSString *)message + contexts:(NSArray *)contexts; + +/// Tells the delegate to log a message with a context and the log level. +- (void)GULNetwork_logWithLevel:(GULNetworkLogLevel)logLevel + messageCode:(GULNetworkMessageCode)messageCode + message:(NSString *)message + context:(id)context; + +/// Tells the delegate to log a message with the log level. +- (void)GULNetwork_logWithLevel:(GULNetworkLogLevel)logLevel + messageCode:(GULNetworkMessageCode)messageCode + message:(NSString *)message; + +@end diff --git a/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULNetworkMessageCode.h b/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULNetworkMessageCode.h new file mode 100644 index 0000000..507bc5a --- /dev/null +++ b/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULNetworkMessageCode.h @@ -0,0 +1,47 @@ +/* + * 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 + +// Make sure these codes do not overlap with any contained in the FIRAMessageCode enum. +typedef NS_ENUM(NSInteger, GULNetworkMessageCode) { + // GULNetwork.m + kGULNetworkMessageCodeNetwork000 = 900000, // I-NET900000 + kGULNetworkMessageCodeNetwork001 = 900001, // I-NET900001 + kGULNetworkMessageCodeNetwork002 = 900002, // I-NET900002 + kGULNetworkMessageCodeNetwork003 = 900003, // I-NET900003 + // GULNetworkURLSession.m + kGULNetworkMessageCodeURLSession000 = 901000, // I-NET901000 + kGULNetworkMessageCodeURLSession001 = 901001, // I-NET901001 + kGULNetworkMessageCodeURLSession002 = 901002, // I-NET901002 + kGULNetworkMessageCodeURLSession003 = 901003, // I-NET901003 + kGULNetworkMessageCodeURLSession004 = 901004, // I-NET901004 + kGULNetworkMessageCodeURLSession005 = 901005, // I-NET901005 + kGULNetworkMessageCodeURLSession006 = 901006, // I-NET901006 + kGULNetworkMessageCodeURLSession007 = 901007, // I-NET901007 + kGULNetworkMessageCodeURLSession008 = 901008, // I-NET901008 + kGULNetworkMessageCodeURLSession009 = 901009, // I-NET901009 + kGULNetworkMessageCodeURLSession010 = 901010, // I-NET901010 + kGULNetworkMessageCodeURLSession011 = 901011, // I-NET901011 + kGULNetworkMessageCodeURLSession012 = 901012, // I-NET901012 + kGULNetworkMessageCodeURLSession013 = 901013, // I-NET901013 + kGULNetworkMessageCodeURLSession014 = 901014, // I-NET901014 + kGULNetworkMessageCodeURLSession015 = 901015, // I-NET901015 + kGULNetworkMessageCodeURLSession016 = 901016, // I-NET901016 + kGULNetworkMessageCodeURLSession017 = 901017, // I-NET901017 + kGULNetworkMessageCodeURLSession018 = 901018, // I-NET901018 + kGULNetworkMessageCodeURLSession019 = 901019, // I-NET901019 +}; diff --git a/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULNetworkURLSession.h b/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULNetworkURLSession.h new file mode 100644 index 0000000..3f9f7f9 --- /dev/null +++ b/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULNetworkURLSession.h @@ -0,0 +1,62 @@ +/* + * 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 "GULNetworkLoggerProtocol.h" + +NS_ASSUME_NONNULL_BEGIN + +typedef void (^GULNetworkCompletionHandler)(NSHTTPURLResponse *_Nullable response, + NSData *_Nullable data, + NSError *_Nullable error); +typedef void (^GULNetworkURLSessionCompletionHandler)(NSHTTPURLResponse *_Nullable response, + NSData *_Nullable data, + NSString *sessionID, + NSError *_Nullable error); +typedef void (^GULNetworkSystemCompletionHandler)(void); + +/// The protocol that uses NSURLSession for iOS >= 7.0 to handle requests and responses. +@interface GULNetworkURLSession : NSObject + +/// Indicates whether the background network is enabled. Default value is NO. +@property(nonatomic, getter=isBackgroundNetworkEnabled) BOOL backgroundNetworkEnabled; + +/// The logger delegate to log message, errors or warnings that occur during the network operations. +@property(nonatomic, weak, nullable) id loggerDelegate; + +/// Calls the system provided completion handler after the background session is finished. ++ (void)handleEventsForBackgroundURLSessionID:(NSString *)sessionID + completionHandler:(GULNetworkSystemCompletionHandler)completionHandler; + +/// Initializes with logger delegate. +- (instancetype)initWithNetworkLoggerDelegate: + (nullable id)networkLoggerDelegate NS_DESIGNATED_INITIALIZER; + +- (instancetype)init NS_UNAVAILABLE; + +/// Sends an asynchronous POST request and calls the provided completion handler when the request +/// completes or when errors occur, and returns an ID of the session/connection. +- (nullable NSString *)sessionIDFromAsyncPOSTRequest:(NSURLRequest *)request + completionHandler:(GULNetworkURLSessionCompletionHandler)handler; + +/// Sends an asynchronous GET request and calls the provided completion handler when the request +/// completes or when errors occur, and returns an ID of the session. +- (nullable NSString *)sessionIDFromAsyncGETRequest:(NSURLRequest *)request + completionHandler:(GULNetworkURLSessionCompletionHandler)handler; + +NS_ASSUME_NONNULL_END +@end diff --git a/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULReachabilityChecker.h b/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULReachabilityChecker.h new file mode 100644 index 0000000..0c70c05 --- /dev/null +++ b/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULReachabilityChecker.h @@ -0,0 +1,79 @@ +/* + * 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_WATCH +#import +#endif + +/// Reachability Status +typedef enum { + kGULReachabilityUnknown, ///< Have not yet checked or been notified whether host is reachable. + kGULReachabilityNotReachable, ///< Host is not reachable. + kGULReachabilityViaWifi, ///< Host is reachable via Wifi. + kGULReachabilityViaCellular, ///< Host is reachable via cellular. +} GULReachabilityStatus; + +const NSString *GULReachabilityStatusString(GULReachabilityStatus status); + +@class GULReachabilityChecker; + +/// Google Analytics iOS Reachability Checker. +@protocol GULReachabilityDelegate +@required +/// Called when network status has changed. +- (void)reachability:(GULReachabilityChecker *)reachability + statusChanged:(GULReachabilityStatus)status; +@end + +/// Google Analytics iOS Network Status Checker. +@interface GULReachabilityChecker : NSObject + +/// The last known reachability status, or GULReachabilityStatusUnknown if the +/// checker is not active. +@property(nonatomic, readonly) GULReachabilityStatus reachabilityStatus; +/// The host to which reachability status is to be checked. +@property(nonatomic, copy, readonly) NSString *host; +/// The delegate to be notified of reachability status changes. +@property(nonatomic, weak) id reachabilityDelegate; +/// `YES` if the reachability checker is active, `NO` otherwise. +@property(nonatomic, readonly) BOOL isActive; + +/// Initialize the reachability checker. Note that you must call start to begin checking for and +/// receiving notifications about network status changes. +/// +/// @param reachabilityDelegate The delegate to be notified when reachability status to host +/// changes. +/// +/// @param host The name of the host. +/// +- (instancetype)initWithReachabilityDelegate:(id)reachabilityDelegate + withHost:(NSString *)host; + +- (instancetype)init NS_UNAVAILABLE; + +/// Start checking for reachability to the specified host. This has no effect if the status +/// checker is already checking for connectivity. +/// +/// @return `YES` if initiating status checking was successful or the status checking has already +/// been initiated, `NO` otherwise. +- (BOOL)start; + +/// Stop checking for reachability to the specified host. This has no effect if the status +/// checker is not checking for connectivity. +- (void)stop; + +@end diff --git a/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULSceneDelegateSwizzler.h b/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULSceneDelegateSwizzler.h new file mode 100644 index 0000000..ed080a3 --- /dev/null +++ b/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULSceneDelegateSwizzler.h @@ -0,0 +1,76 @@ +/* + * Copyright 2019 Google LLC + * + * 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 + +#if !TARGET_OS_OSX +#import +#endif // !TARGET_OS_OSX + +#if ((TARGET_OS_IOS || TARGET_OS_TV) && (__IPHONE_OS_VERSION_MAX_ALLOWED >= 130000)) +#define UISCENE_SUPPORTED 1 +#endif + +NS_ASSUME_NONNULL_BEGIN + +typedef NSString *const GULSceneDelegateInterceptorID; + +/** This class contains methods that isa swizzle the scene delegate. */ +@interface GULSceneDelegateSwizzler : NSProxy + +#if UISCENE_SUPPORTED + +/** Registers a scene delegate interceptor whose methods will be invoked as they're invoked on the + * original scene delegate. + * + * @param interceptor An instance of a class that conforms to the application delegate protocol. + * The interceptor is NOT retained. + * @return A unique GULSceneDelegateInterceptorID if interceptor was successfully registered; nil + * if it fails. + */ ++ (nullable GULSceneDelegateInterceptorID)registerSceneDelegateInterceptor: + (id)interceptor API_AVAILABLE(ios(13.0), tvos(13.0)); + +/** Unregisters an interceptor with the given ID if it exists. + * + * @param interceptorID The object that was generated when the interceptor was registered. + */ ++ (void)unregisterSceneDelegateInterceptorWithID:(GULSceneDelegateInterceptorID)interceptorID + API_AVAILABLE(ios(13.0), tvos(13.0)); + +/** Do not initialize this class. */ +- (instancetype)init NS_UNAVAILABLE; + +#endif // UISCENE_SUPPORTED + +/** This method ensures that the original scene delegate has been proxied. Call this before + * registering your interceptor. This method is safe to call multiple times (but it only proxies + * the scene delegate once). + * + * The method has no effect for extensions. + */ ++ (void)proxyOriginalSceneDelegate; + +/** Indicates whether scene delegate proxy is explicitly disabled or enabled. Enabled by default. + * + * @return YES if SceneDelegateProxy is Enabled, NO otherwise. + */ ++ (BOOL)isSceneDelegateProxyEnabled; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULSecureCoding.h b/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULSecureCoding.h new file mode 100644 index 0000000..8484b39 --- /dev/null +++ b/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULSecureCoding.h @@ -0,0 +1,36 @@ +// Copyright 2019 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_ASSUME_NONNULL_BEGIN + +/** The class wraps `NSKeyedArchiver` and `NSKeyedUnarchiver` API to provide a unified secure coding + * methods for iOS versions before and after 11. + */ +@interface GULSecureCoding : NSObject + ++ (nullable id)unarchivedObjectOfClasses:(NSSet *)classes + fromData:(NSData *)data + error:(NSError **)outError; + ++ (nullable id)unarchivedObjectOfClass:(Class)class + fromData:(NSData *)data + error:(NSError **)outError; + ++ (nullable NSData *)archivedDataWithRootObject:(id)object error:(NSError **)outError; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULURLSessionDataResponse.h b/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULURLSessionDataResponse.h new file mode 100644 index 0000000..e88eb67 --- /dev/null +++ b/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULURLSessionDataResponse.h @@ -0,0 +1,31 @@ +/* + * Copyright 2020 Google LLC + * + * 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_ASSUME_NONNULL_BEGIN + +/** The class represents HTTP response received from `NSURLSession`. */ +@interface GULURLSessionDataResponse : NSObject + +@property(nonatomic, readonly) NSHTTPURLResponse *HTTPResponse; +@property(nonatomic, nullable, readonly) NSData *HTTPBody; + +- (instancetype)initWithResponse:(NSHTTPURLResponse *)response HTTPBody:(nullable NSData *)body; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULUserDefaults.h b/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULUserDefaults.h new file mode 100644 index 0000000..0d04781 --- /dev/null +++ b/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GULUserDefaults.h @@ -0,0 +1,110 @@ +// Copyright 2018 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_ASSUME_NONNULL_BEGIN + +/// A thread-safe user defaults that uses C functions from CFPreferences.h instead of +/// `NSUserDefaults`. This is to avoid sending an `NSNotification` when it's changed from a +/// background thread to avoid crashing. // TODO: Insert radar number here. +@interface GULUserDefaults : NSObject + +/// A shared user defaults similar to +[NSUserDefaults standardUserDefaults] and accesses the same +/// data of the standardUserDefaults. ++ (GULUserDefaults *)standardUserDefaults; + +/// Initializes preferences with a suite name that is the same with the NSUserDefaults' suite name. +/// Both of CFPreferences and NSUserDefaults share the same plist file so their data will exactly +/// the same. +/// +/// @param suiteName The name of the suite of the user defaults. +- (instancetype)initWithSuiteName:(nullable NSString *)suiteName; + +#pragma mark - Getters + +/// Searches the receiver's search list for a default with the key 'defaultName' and return it. If +/// another process has changed defaults in the search list, NSUserDefaults will automatically +/// update to the latest values. If the key in question has been marked as ubiquitous via a Defaults +/// Configuration File, the latest value may not be immediately available, and the registered value +/// will be returned instead. +- (nullable id)objectForKey:(NSString *)defaultName; + +/// Equivalent to -objectForKey:, except that it will return nil if the value is not an NSArray. +- (nullable NSArray *)arrayForKey:(NSString *)defaultName; + +/// Equivalent to -objectForKey:, except that it will return nil if the value +/// is not an NSDictionary. +- (nullable NSDictionary *)dictionaryForKey:(NSString *)defaultName; + +/// Equivalent to -objectForKey:, except that it will convert NSNumber values to their NSString +/// representation. If a non-string non-number value is found, nil will be returned. +- (nullable NSString *)stringForKey:(NSString *)defaultName; + +/// Equivalent to -objectForKey:, except that it converts the returned value to an NSInteger. If the +/// value is an NSNumber, the result of -integerValue will be returned. If the value is an NSString, +/// it will be converted to NSInteger if possible. If the value is a boolean, it will be converted +/// to either 1 for YES or 0 for NO. If the value is absent or can't be converted to an integer, 0 +/// will be returned. +- (NSInteger)integerForKey:(NSString *)defaultName; + +/// Similar to -integerForKey:, except that it returns a float, and boolean values will not be +/// converted. +- (float)floatForKey:(NSString *)defaultName; + +/// Similar to -integerForKey:, except that it returns a double, and boolean values will not be +/// converted. +- (double)doubleForKey:(NSString *)defaultName; + +/// Equivalent to -objectForKey:, except that it converts the returned value to a BOOL. If the value +/// is an NSNumber, NO will be returned if the value is 0, YES otherwise. If the value is an +/// NSString, values of "YES" or "1" will return YES, and values of "NO", "0", or any other string +/// will return NO. If the value is absent or can't be converted to a BOOL, NO will be returned. +- (BOOL)boolForKey:(NSString *)defaultName; + +#pragma mark - Setters + +/// Immediately stores a value (or removes the value if `nil` is passed as the value) for the +/// provided key in the search list entry for the receiver's suite name in the current user and any +/// host, then asynchronously stores the value persistently, where it is made available to other +/// processes. +- (void)setObject:(nullable id)value forKey:(NSString *)defaultName; + +/// Equivalent to -setObject:forKey: except that the value is converted from a float to an NSNumber. +- (void)setFloat:(float)value forKey:(NSString *)defaultName; + +/// Equivalent to -setObject:forKey: except that the value is converted from a double to an +/// NSNumber. +- (void)setDouble:(double)value forKey:(NSString *)defaultName; + +/// Equivalent to -setObject:forKey: except that the value is converted from an NSInteger to an +/// NSNumber. +- (void)setInteger:(NSInteger)value forKey:(NSString *)defaultName; + +/// Equivalent to -setObject:forKey: except that the value is converted from a BOOL to an NSNumber. +- (void)setBool:(BOOL)value forKey:(NSString *)defaultName; + +#pragma mark - Removing Defaults + +/// Equivalent to -[... setObject:nil forKey:defaultName] +- (void)removeObjectForKey:(NSString *)defaultName; + +#pragma mark - Save data + +/// Blocks the calling thread until all in-progress set operations have completed. +- (void)synchronize; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GoogleUtilities-umbrella.h b/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GoogleUtilities-umbrella.h new file mode 100644 index 0000000..f556dc1 --- /dev/null +++ b/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/GoogleUtilities-umbrella.h @@ -0,0 +1,39 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + +#import "GULAppDelegateSwizzler.h" +#import "GULApplication.h" +#import "GULSceneDelegateSwizzler.h" +#import "GULAppEnvironmentUtil.h" +#import "GULHeartbeatDateStorable.h" +#import "GULHeartbeatDateStorage.h" +#import "GULHeartbeatDateStorageUserDefaults.h" +#import "GULKeychainStorage.h" +#import "GULKeychainUtils.h" +#import "GULSecureCoding.h" +#import "GULURLSessionDataResponse.h" +#import "NSURLSession+GULPromises.h" +#import "GULLogger.h" +#import "GULLoggerLevel.h" +#import "GULNSData+zlib.h" +#import "GULMutableDictionary.h" +#import "GULNetwork.h" +#import "GULNetworkConstants.h" +#import "GULNetworkLoggerProtocol.h" +#import "GULNetworkMessageCode.h" +#import "GULNetworkURLSession.h" +#import "GULReachabilityChecker.h" +#import "GULUserDefaults.h" + +FOUNDATION_EXPORT double GoogleUtilitiesVersionNumber; +FOUNDATION_EXPORT const unsigned char GoogleUtilitiesVersionString[]; + diff --git a/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/NSURLSession+GULPromises.h b/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/NSURLSession+GULPromises.h new file mode 100644 index 0000000..7bed005 --- /dev/null +++ b/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Headers/NSURLSession+GULPromises.h @@ -0,0 +1,37 @@ +/* + * Copyright 2020 Google LLC + * + * 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 + +@class FBLPromise; +@class GULURLSessionDataResponse; + +NS_ASSUME_NONNULL_BEGIN + +/** Promise based API for `NSURLSession`. */ +@interface NSURLSession (GULPromises) + +/** Creates a promise wrapping `-[NSURLSession dataTaskWithRequest:completionHandler:]` method. + * @param URLRequest The request to create a data task with. + * @return A promise that is fulfilled when an HTTP response is received (with any response code), + * or is rejected with the error passed to the task completion. + */ +- (FBLPromise *)gul_dataTaskPromiseWithRequest: + (NSURLRequest *)URLRequest; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Info.plist b/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Info.plist new file mode 100644 index 0000000..07e8b26 --- /dev/null +++ b/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Info.plist @@ -0,0 +1,20 @@ + + + + + CFBundleExecutable + GoogleUtilities + CFBundleIdentifier + com.firebase.Firebase-GoogleUtilities + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + GoogleUtilities + CFBundlePackageType + FMWK + CFBundleVersion + 7.4.1 + DTSDKName + iphonesimulator11.2 + + diff --git a/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Modules/module.modulemap b/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Modules/module.modulemap new file mode 100644 index 0000000..29a2d1d --- /dev/null +++ b/Clocker/Frameworks/Firebase/GoogleUtilities.framework/Modules/module.modulemap @@ -0,0 +1,8 @@ +framework module GoogleUtilities { +umbrella header "GoogleUtilities-umbrella.h" +export * +module * { export * } + link framework "Security" + link framework "SystemConfiguration" + link "z" +} diff --git a/Clocker/Frameworks/Firebase/PromisesObjC.framework/Headers/FBLPromise+All.h b/Clocker/Frameworks/Firebase/PromisesObjC.framework/Headers/FBLPromise+All.h new file mode 100644 index 0000000..9c0090e --- /dev/null +++ b/Clocker/Frameworks/Firebase/PromisesObjC.framework/Headers/FBLPromise+All.h @@ -0,0 +1,63 @@ +/** + Copyright 2018 Google Inc. All rights reserved. + + 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 "FBLPromise.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface FBLPromise(AllAdditions) + +/** + Wait until all of the given promises are fulfilled. + If one of the given promises is rejected, then the returned promise is rejected with same error. + If any other arbitrary value or `NSError` appears in the array instead of `FBLPromise`, + it's implicitly considered a pre-fulfilled or pre-rejected `FBLPromise` correspondingly. + Promises resolved with `nil` become `NSNull` instances in the resulting array. + + @param promises Promises to wait for. + @return Promise of an array containing the values of input promises in the same order. + */ ++ (FBLPromise *)all:(NSArray *)promises NS_SWIFT_UNAVAILABLE(""); + +/** + Wait until all of the given promises are fulfilled. + If one of the given promises is rejected, then the returned promise is rejected with same error. + If any other arbitrary value or `NSError` appears in the array instead of `FBLPromise`, + it's implicitly considered a pre-fulfilled or pre-rejected FBLPromise correspondingly. + Promises resolved with `nil` become `NSNull` instances in the resulting array. + + @param queue A queue to dispatch on. + @param promises Promises to wait for. + @return Promise of an array containing the values of input promises in the same order. + */ ++ (FBLPromise *)onQueue:(dispatch_queue_t)queue + all:(NSArray *)promises NS_REFINED_FOR_SWIFT; + +@end + +/** + Convenience dot-syntax wrappers for `FBLPromise` `all` operators. + Usage: FBLPromise.all(@[ ... ]) + */ +@interface FBLPromise(DotSyntax_AllAdditions) + ++ (FBLPromise * (^)(NSArray *))all FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); ++ (FBLPromise * (^)(dispatch_queue_t, NSArray *))allOn FBL_PROMISES_DOT_SYNTAX + NS_SWIFT_UNAVAILABLE(""); + +@end + +NS_ASSUME_NONNULL_END diff --git a/Clocker/Frameworks/Firebase/PromisesObjC.framework/Headers/FBLPromise+Always.h b/Clocker/Frameworks/Firebase/PromisesObjC.framework/Headers/FBLPromise+Always.h new file mode 100644 index 0000000..13000f5 --- /dev/null +++ b/Clocker/Frameworks/Firebase/PromisesObjC.framework/Headers/FBLPromise+Always.h @@ -0,0 +1,54 @@ +/** + Copyright 2018 Google Inc. All rights reserved. + + 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 "FBLPromise.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface FBLPromise(AlwaysAdditions) + +typedef void (^FBLPromiseAlwaysWorkBlock)(void) NS_SWIFT_UNAVAILABLE(""); + +/** + @param work A block that always executes, no matter if the receiver is rejected or fulfilled. + @return A new pending promise to be resolved with same resolution as the receiver. + */ +- (FBLPromise *)always:(FBLPromiseAlwaysWorkBlock)work NS_SWIFT_UNAVAILABLE(""); + +/** + @param queue A queue to dispatch on. + @param work A block that always executes, no matter if the receiver is rejected or fulfilled. + @return A new pending promise to be resolved with same resolution as the receiver. + */ +- (FBLPromise *)onQueue:(dispatch_queue_t)queue + always:(FBLPromiseAlwaysWorkBlock)work NS_REFINED_FOR_SWIFT; + +@end + +/** + Convenience dot-syntax wrappers for `FBLPromise` `always` operators. + Usage: promise.always(^{...}) + */ +@interface FBLPromise(DotSyntax_AlwaysAdditions) + +- (FBLPromise* (^)(FBLPromiseAlwaysWorkBlock))always FBL_PROMISES_DOT_SYNTAX + NS_SWIFT_UNAVAILABLE(""); +- (FBLPromise* (^)(dispatch_queue_t, FBLPromiseAlwaysWorkBlock))alwaysOn FBL_PROMISES_DOT_SYNTAX + NS_SWIFT_UNAVAILABLE(""); + +@end + +NS_ASSUME_NONNULL_END diff --git a/Clocker/Frameworks/Firebase/PromisesObjC.framework/Headers/FBLPromise+Any.h b/Clocker/Frameworks/Firebase/PromisesObjC.framework/Headers/FBLPromise+Any.h new file mode 100644 index 0000000..82875bf --- /dev/null +++ b/Clocker/Frameworks/Firebase/PromisesObjC.framework/Headers/FBLPromise+Any.h @@ -0,0 +1,69 @@ +/** + Copyright 2018 Google Inc. All rights reserved. + + 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 "FBLPromise.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface FBLPromise(AnyAdditions) + +/** + Waits until all of the given promises are either fulfilled or rejected. + If all promises are rejected, then the returned promise is rejected with same error + as the last one rejected. + If at least one of the promises is fulfilled, the resulting promise is fulfilled with an array of + values or `NSErrors`, matching the original order of fulfilled or rejected promises respectively. + If any other arbitrary value or `NSError` appears in the array instead of `FBLPromise`, + it's implicitly considered a pre-fulfilled or pre-rejected `FBLPromise` correspondingly. + Promises resolved with `nil` become `NSNull` instances in the resulting array. + + @param promises Promises to wait for. + @return Promise of array containing the values or `NSError`s of input promises in the same order. + */ ++ (FBLPromise *)any:(NSArray *)promises NS_SWIFT_UNAVAILABLE(""); + +/** + Waits until all of the given promises are either fulfilled or rejected. + If all promises are rejected, then the returned promise is rejected with same error + as the last one rejected. + If at least one of the promises is fulfilled, the resulting promise is fulfilled with an array of + values or `NSError`s, matching the original order of fulfilled or rejected promises respectively. + If any other arbitrary value or `NSError` appears in the array instead of `FBLPromise`, + it's implicitly considered a pre-fulfilled or pre-rejected `FBLPromise` correspondingly. + Promises resolved with `nil` become `NSNull` instances in the resulting array. + + @param queue A queue to dispatch on. + @param promises Promises to wait for. + @return Promise of array containing the values or `NSError`s of input promises in the same order. + */ ++ (FBLPromise *)onQueue:(dispatch_queue_t)queue + any:(NSArray *)promises NS_REFINED_FOR_SWIFT; + +@end + +/** + Convenience dot-syntax wrappers for `FBLPromise` `any` operators. + Usage: FBLPromise.any(@[ ... ]) + */ +@interface FBLPromise(DotSyntax_AnyAdditions) + ++ (FBLPromise * (^)(NSArray *))any FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); ++ (FBLPromise * (^)(dispatch_queue_t, NSArray *))anyOn FBL_PROMISES_DOT_SYNTAX + NS_SWIFT_UNAVAILABLE(""); + +@end + +NS_ASSUME_NONNULL_END diff --git a/Clocker/Frameworks/Firebase/PromisesObjC.framework/Headers/FBLPromise+Async.h b/Clocker/Frameworks/Firebase/PromisesObjC.framework/Headers/FBLPromise+Async.h new file mode 100644 index 0000000..0588a9e --- /dev/null +++ b/Clocker/Frameworks/Firebase/PromisesObjC.framework/Headers/FBLPromise+Async.h @@ -0,0 +1,60 @@ +/** + Copyright 2018 Google Inc. All rights reserved. + + 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 "FBLPromise.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface FBLPromise(AsyncAdditions) + +typedef void (^FBLPromiseFulfillBlock)(Value __nullable value) NS_SWIFT_UNAVAILABLE(""); +typedef void (^FBLPromiseRejectBlock)(NSError *error) NS_SWIFT_UNAVAILABLE(""); +typedef void (^FBLPromiseAsyncWorkBlock)(FBLPromiseFulfillBlock fulfill, + FBLPromiseRejectBlock reject) NS_SWIFT_UNAVAILABLE(""); + +/** + Creates a pending promise and executes `work` block asynchronously. + + @param work A block to perform any operations needed to resolve the promise. + @return A new pending promise. + */ ++ (instancetype)async:(FBLPromiseAsyncWorkBlock)work NS_SWIFT_UNAVAILABLE(""); + +/** + Creates a pending promise and executes `work` block asynchronously on the given queue. + + @param queue A queue to invoke the `work` block on. + @param work A block to perform any operations needed to resolve the promise. + @return A new pending promise. + */ ++ (instancetype)onQueue:(dispatch_queue_t)queue + async:(FBLPromiseAsyncWorkBlock)work NS_REFINED_FOR_SWIFT; + +@end + +/** + Convenience dot-syntax wrappers for `FBLPromise` `async` operators. + Usage: FBLPromise.async(^(FBLPromiseFulfillBlock fulfill, FBLPromiseRejectBlock reject) { ... }) + */ +@interface FBLPromise(DotSyntax_AsyncAdditions) + ++ (FBLPromise* (^)(FBLPromiseAsyncWorkBlock))async FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); ++ (FBLPromise* (^)(dispatch_queue_t, FBLPromiseAsyncWorkBlock))asyncOn FBL_PROMISES_DOT_SYNTAX + NS_SWIFT_UNAVAILABLE(""); + +@end + +NS_ASSUME_NONNULL_END diff --git a/Clocker/Frameworks/Firebase/PromisesObjC.framework/Headers/FBLPromise+Await.h b/Clocker/Frameworks/Firebase/PromisesObjC.framework/Headers/FBLPromise+Await.h new file mode 100644 index 0000000..c97a1ba --- /dev/null +++ b/Clocker/Frameworks/Firebase/PromisesObjC.framework/Headers/FBLPromise+Await.h @@ -0,0 +1,32 @@ +/** + Copyright 2018 Google Inc. All rights reserved. + + 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 "FBLPromise.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + Waits for promise resolution. The current thread blocks until the promise is resolved. + + @param promise Promise to wait for. + @param error Error the promise was rejected with, or `nil` if the promise was fulfilled. + @return Value the promise was fulfilled with. If the promise was rejected, the return value + is always `nil`, but the error out arg is not. + */ +FOUNDATION_EXTERN id __nullable FBLPromiseAwait(FBLPromise *promise, + NSError **error) NS_REFINED_FOR_SWIFT; + +NS_ASSUME_NONNULL_END diff --git a/Clocker/Frameworks/Firebase/PromisesObjC.framework/Headers/FBLPromise+Catch.h b/Clocker/Frameworks/Firebase/PromisesObjC.framework/Headers/FBLPromise+Catch.h new file mode 100644 index 0000000..a9ff170 --- /dev/null +++ b/Clocker/Frameworks/Firebase/PromisesObjC.framework/Headers/FBLPromise+Catch.h @@ -0,0 +1,59 @@ +/** + Copyright 2018 Google Inc. All rights reserved. + + 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 "FBLPromise.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface FBLPromise(CatchAdditions) + +typedef void (^FBLPromiseCatchWorkBlock)(NSError *error) NS_SWIFT_UNAVAILABLE(""); + +/** + Creates a pending promise which eventually gets resolved with same resolution as the receiver. + If receiver is rejected, then `reject` block is executed asynchronously. + + @param reject A block to handle the error that receiver was rejected with. + @return A new pending promise. + */ +- (FBLPromise *)catch:(FBLPromiseCatchWorkBlock)reject NS_SWIFT_UNAVAILABLE(""); + +/** + Creates a pending promise which eventually gets resolved with same resolution as the receiver. + If receiver is rejected, then `reject` block is executed asynchronously on the given queue. + + @param queue A queue to invoke the `reject` block on. + @param reject A block to handle the error that receiver was rejected with. + @return A new pending promise. + */ +- (FBLPromise *)onQueue:(dispatch_queue_t)queue + catch:(FBLPromiseCatchWorkBlock)reject NS_REFINED_FOR_SWIFT; + +@end + +/** + Convenience dot-syntax wrappers for `FBLPromise` `catch` operators. + Usage: promise.catch(^(NSError *error) { ... }) + */ +@interface FBLPromise(DotSyntax_CatchAdditions) + +- (FBLPromise* (^)(FBLPromiseCatchWorkBlock))catch FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); +- (FBLPromise* (^)(dispatch_queue_t, FBLPromiseCatchWorkBlock))catchOn FBL_PROMISES_DOT_SYNTAX + NS_SWIFT_UNAVAILABLE(""); + +@end + +NS_ASSUME_NONNULL_END diff --git a/Clocker/Frameworks/Firebase/PromisesObjC.framework/Headers/FBLPromise+Delay.h b/Clocker/Frameworks/Firebase/PromisesObjC.framework/Headers/FBLPromise+Delay.h new file mode 100644 index 0000000..557df48 --- /dev/null +++ b/Clocker/Frameworks/Firebase/PromisesObjC.framework/Headers/FBLPromise+Delay.h @@ -0,0 +1,59 @@ +/** + Copyright 2018 Google Inc. All rights reserved. + + 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 "FBLPromise.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface FBLPromise(DelayAdditions) + +/** + Creates a new pending promise that fulfills with the same value as `self` after the `delay`, or + rejects with the same error immediately. + + @param interval Time to wait in seconds. + @return A new pending promise that fulfills at least `delay` seconds later than `self`, or rejects + with the same error immediately. + */ +- (FBLPromise *)delay:(NSTimeInterval)interval NS_SWIFT_UNAVAILABLE(""); + +/** + Creates a new pending promise that fulfills with the same value as `self` after the `delay`, or + rejects with the same error immediately. + + @param queue A queue to dispatch on. + @param interval Time to wait in seconds. + @return A new pending promise that fulfills at least `delay` seconds later than `self`, or rejects + with the same error immediately. + */ +- (FBLPromise *)onQueue:(dispatch_queue_t)queue + delay:(NSTimeInterval)interval NS_REFINED_FOR_SWIFT; + +@end + +/** + Convenience dot-syntax wrappers for `FBLPromise` `delay` operators. + Usage: promise.delay(...) + */ +@interface FBLPromise(DotSyntax_DelayAdditions) + +- (FBLPromise * (^)(NSTimeInterval))delay FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); +- (FBLPromise * (^)(dispatch_queue_t, NSTimeInterval))delayOn FBL_PROMISES_DOT_SYNTAX + NS_SWIFT_UNAVAILABLE(""); + +@end + +NS_ASSUME_NONNULL_END diff --git a/Clocker/Frameworks/Firebase/PromisesObjC.framework/Headers/FBLPromise+Do.h b/Clocker/Frameworks/Firebase/PromisesObjC.framework/Headers/FBLPromise+Do.h new file mode 100644 index 0000000..6838e0a --- /dev/null +++ b/Clocker/Frameworks/Firebase/PromisesObjC.framework/Headers/FBLPromise+Do.h @@ -0,0 +1,55 @@ +/** + Copyright 2018 Google Inc. All rights reserved. + + 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 "FBLPromise.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface FBLPromise(DoAdditions) + +typedef id __nullable (^FBLPromiseDoWorkBlock)(void) NS_SWIFT_UNAVAILABLE(""); + +/** + Creates a pending promise and executes `work` block asynchronously. + + @param work A block that returns a value or an error used to resolve the promise. + @return A new pending promise. + */ ++ (instancetype)do:(FBLPromiseDoWorkBlock)work NS_SWIFT_UNAVAILABLE(""); + +/** + Creates a pending promise and executes `work` block asynchronously on the given queue. + + @param queue A queue to invoke the `work` block on. + @param work A block that returns a value or an error used to resolve the promise. + @return A new pending promise. + */ ++ (instancetype)onQueue:(dispatch_queue_t)queue do:(FBLPromiseDoWorkBlock)work NS_REFINED_FOR_SWIFT; + +@end + +/** + Convenience dot-syntax wrappers for `FBLPromise` `do` operators. + Usage: FBLPromise.doOn(queue, ^(NSError *error) { ... }) + */ +@interface FBLPromise(DotSyntax_DoAdditions) + ++ (FBLPromise * (^)(dispatch_queue_t, FBLPromiseDoWorkBlock))doOn FBL_PROMISES_DOT_SYNTAX + NS_SWIFT_UNAVAILABLE(""); + +@end + +NS_ASSUME_NONNULL_END diff --git a/Clocker/Frameworks/Firebase/PromisesObjC.framework/Headers/FBLPromise+Race.h b/Clocker/Frameworks/Firebase/PromisesObjC.framework/Headers/FBLPromise+Race.h new file mode 100644 index 0000000..2f67258 --- /dev/null +++ b/Clocker/Frameworks/Firebase/PromisesObjC.framework/Headers/FBLPromise+Race.h @@ -0,0 +1,62 @@ +/** + Copyright 2018 Google Inc. All rights reserved. + + 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 "FBLPromise.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface FBLPromise(RaceAdditions) + +/** + Wait until any of the given promises are fulfilled. + If one of the promises is rejected, then the returned promise is rejected with same error. + If any other arbitrary value or `NSError` appears in the array instead of `FBLPromise`, + it's implicitly considered a pre-fulfilled or pre-rejected `FBLPromise` correspondingly. + + @param promises Promises to wait for. + @return A new pending promise to be resolved with the same resolution as the first promise, among + the given ones, which was resolved. + */ ++ (instancetype)race:(NSArray *)promises NS_SWIFT_UNAVAILABLE(""); + +/** + Wait until any of the given promises are fulfilled. + If one of the promises is rejected, then the returned promise is rejected with same error. + If any other arbitrary value or `NSError` appears in the array instead of `FBLPromise`, + it's implicitly considered a pre-fulfilled or pre-rejected `FBLPromise` correspondingly. + + @param queue A queue to dispatch on. + @param promises Promises to wait for. + @return A new pending promise to be resolved with the same resolution as the first promise, among + the given ones, which was resolved. + */ ++ (instancetype)onQueue:(dispatch_queue_t)queue race:(NSArray *)promises NS_REFINED_FOR_SWIFT; + +@end + +/** + Convenience dot-syntax wrappers for `FBLPromise` `race` operators. + Usage: FBLPromise.race(@[ ... ]) + */ +@interface FBLPromise(DotSyntax_RaceAdditions) + ++ (FBLPromise * (^)(NSArray *))race FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); ++ (FBLPromise * (^)(dispatch_queue_t, NSArray *))raceOn FBL_PROMISES_DOT_SYNTAX + NS_SWIFT_UNAVAILABLE(""); + +@end + +NS_ASSUME_NONNULL_END diff --git a/Clocker/Frameworks/Firebase/PromisesObjC.framework/Headers/FBLPromise+Recover.h b/Clocker/Frameworks/Firebase/PromisesObjC.framework/Headers/FBLPromise+Recover.h new file mode 100644 index 0000000..bb7df7e --- /dev/null +++ b/Clocker/Frameworks/Firebase/PromisesObjC.framework/Headers/FBLPromise+Recover.h @@ -0,0 +1,60 @@ +/** + Copyright 2018 Google Inc. All rights reserved. + + 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 "FBLPromise.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface FBLPromise(RecoverAdditions) + +typedef id __nullable (^FBLPromiseRecoverWorkBlock)(NSError *error) NS_SWIFT_UNAVAILABLE(""); + +/** + Provides a new promise to recover in case the receiver gets rejected. + + @param recovery A block to handle the error that the receiver was rejected with. + @return A new pending promise to use instead of the rejected one that gets resolved with resolution + returned from `recovery` block. + */ +- (FBLPromise *)recover:(FBLPromiseRecoverWorkBlock)recovery NS_SWIFT_UNAVAILABLE(""); + +/** + Provides a new promise to recover in case the receiver gets rejected. + + @param queue A queue to dispatch on. + @param recovery A block to handle the error that the receiver was rejected with. + @return A new pending promise to use instead of the rejected one that gets resolved with resolution + returned from `recovery` block. + */ +- (FBLPromise *)onQueue:(dispatch_queue_t)queue + recover:(FBLPromiseRecoverWorkBlock)recovery NS_REFINED_FOR_SWIFT; + +@end + +/** + Convenience dot-syntax wrappers for `FBLPromise` `recover` operators. + Usage: promise.recover(^id(NSError *error) {...}) + */ +@interface FBLPromise(DotSyntax_RecoverAdditions) + +- (FBLPromise * (^)(FBLPromiseRecoverWorkBlock))recover FBL_PROMISES_DOT_SYNTAX + NS_SWIFT_UNAVAILABLE(""); +- (FBLPromise * (^)(dispatch_queue_t, FBLPromiseRecoverWorkBlock))recoverOn FBL_PROMISES_DOT_SYNTAX + NS_SWIFT_UNAVAILABLE(""); + +@end + +NS_ASSUME_NONNULL_END diff --git a/Clocker/Frameworks/Firebase/PromisesObjC.framework/Headers/FBLPromise+Reduce.h b/Clocker/Frameworks/Firebase/PromisesObjC.framework/Headers/FBLPromise+Reduce.h new file mode 100644 index 0000000..5bb1eee --- /dev/null +++ b/Clocker/Frameworks/Firebase/PromisesObjC.framework/Headers/FBLPromise+Reduce.h @@ -0,0 +1,71 @@ +/** + Copyright 2018 Google Inc. All rights reserved. + + 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 "FBLPromise.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface FBLPromise(ReduceAdditions) + +typedef id __nullable (^FBLPromiseReducerBlock)(Value __nullable partial, id next) + NS_SWIFT_UNAVAILABLE(""); + +/** + Sequentially reduces a collection of values to a single promise using a given combining block + and the value `self` resolves with as initial value. + + @param items An array of values to process in order. + @param reducer A block to combine an accumulating value and an element of the sequence into + the new accumulating value or a promise resolved with it, to be used in the next + call of the `reducer` or returned to the caller. + @return A new pending promise returned from the last `reducer` invocation. + Or `self` if `items` is empty. + */ +- (FBLPromise *)reduce:(NSArray *)items + combine:(FBLPromiseReducerBlock)reducer NS_SWIFT_UNAVAILABLE(""); + +/** + Sequentially reduces a collection of values to a single promise using a given combining block + and the value `self` resolves with as initial value. + + @param queue A queue to dispatch on. + @param items An array of values to process in order. + @param reducer A block to combine an accumulating value and an element of the sequence into + the new accumulating value or a promise resolved with it, to be used in the next + call of the `reducer` or returned to the caller. + @return A new pending promise returned from the last `reducer` invocation. + Or `self` if `items` is empty. + */ +- (FBLPromise *)onQueue:(dispatch_queue_t)queue + reduce:(NSArray *)items + combine:(FBLPromiseReducerBlock)reducer NS_SWIFT_UNAVAILABLE(""); + +@end + +/** + Convenience dot-syntax wrappers for `FBLPromise` `reduce` operators. + Usage: promise.reduce(values, ^id(id partial, id next) { ... }) + */ +@interface FBLPromise(DotSyntax_ReduceAdditions) + +- (FBLPromise * (^)(NSArray *, FBLPromiseReducerBlock))reduce FBL_PROMISES_DOT_SYNTAX + NS_SWIFT_UNAVAILABLE(""); +- (FBLPromise * (^)(dispatch_queue_t, NSArray *, FBLPromiseReducerBlock))reduceOn + FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); + +@end + +NS_ASSUME_NONNULL_END diff --git a/Clocker/Frameworks/Firebase/PromisesObjC.framework/Headers/FBLPromise+Retry.h b/Clocker/Frameworks/Firebase/PromisesObjC.framework/Headers/FBLPromise+Retry.h new file mode 100644 index 0000000..98ef558 --- /dev/null +++ b/Clocker/Frameworks/Firebase/PromisesObjC.framework/Headers/FBLPromise+Retry.h @@ -0,0 +1,165 @@ +/** + Copyright 2018 Google Inc. All rights reserved. + + 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 "FBLPromise.h" + +NS_ASSUME_NONNULL_BEGIN + +/** The default number of retry attempts is 1. */ +FOUNDATION_EXTERN NSInteger const FBLPromiseRetryDefaultAttemptsCount NS_REFINED_FOR_SWIFT; + +/** The default delay interval before making a retry attempt is 1.0 second. */ +FOUNDATION_EXTERN NSTimeInterval const FBLPromiseRetryDefaultDelayInterval NS_REFINED_FOR_SWIFT; + +@interface FBLPromise(RetryAdditions) + +typedef id __nullable (^FBLPromiseRetryWorkBlock)(void) NS_SWIFT_UNAVAILABLE(""); +typedef BOOL (^FBLPromiseRetryPredicateBlock)(NSInteger, NSError *) NS_SWIFT_UNAVAILABLE(""); + +/** + Creates a pending promise that fulfills with the same value as the promise returned from `work` + block, which executes asynchronously, or rejects with the same error after all retry attempts have + been exhausted. Defaults to `FBLPromiseRetryDefaultAttemptsCount` attempt(s) on rejection where the + `work` block is retried after a delay of `FBLPromiseRetryDefaultDelayInterval` second(s). + + @param work A block that executes asynchronously on the default queue and returns a value or an + error used to resolve the promise. + @return A new pending promise that fulfills with the same value as the promise returned from `work` + block, or rejects with the same error after all retry attempts have been exhausted. + */ ++ (FBLPromise *)retry:(FBLPromiseRetryWorkBlock)work NS_SWIFT_UNAVAILABLE(""); + +/** + Creates a pending promise that fulfills with the same value as the promise returned from `work` + block, which executes asynchronously on the given `queue`, or rejects with the same error after all + retry attempts have been exhausted. Defaults to `FBLPromiseRetryDefaultAttemptsCount` attempt(s) on + rejection where the `work` block is retried on the given `queue` after a delay of + `FBLPromiseRetryDefaultDelayInterval` second(s). + + @param queue A queue to invoke the `work` block on. + @param work A block that executes asynchronously on the given `queue` and returns a value or an + error used to resolve the promise. + @return A new pending promise that fulfills with the same value as the promise returned from `work` + block, or rejects with the same error after all retry attempts have been exhausted. + */ ++ (FBLPromise *)onQueue:(dispatch_queue_t)queue + retry:(FBLPromiseRetryWorkBlock)work NS_SWIFT_UNAVAILABLE(""); + +/** + Creates a pending promise that fulfills with the same value as the promise returned from `work` + block, which executes asynchronously, or rejects with the same error after all retry attempts have + been exhausted. + + @param count Max number of retry attempts. The `work` block will be executed once if the specified + count is less than or equal to zero. + @param work A block that executes asynchronously on the default queue and returns a value or an + error used to resolve the promise. + @return A new pending promise that fulfills with the same value as the promise returned from `work` + block, or rejects with the same error after all retry attempts have been exhausted. + */ ++ (FBLPromise *)attempts:(NSInteger)count + retry:(FBLPromiseRetryWorkBlock)work NS_SWIFT_UNAVAILABLE(""); + +/** + Creates a pending promise that fulfills with the same value as the promise returned from `work` + block, which executes asynchronously on the given `queue`, or rejects with the same error after all + retry attempts have been exhausted. + + @param queue A queue to invoke the `work` block on. + @param count Max number of retry attempts. The `work` block will be executed once if the specified + count is less than or equal to zero. + @param work A block that executes asynchronously on the given `queue` and returns a value or an + error used to resolve the promise. + @return A new pending promise that fulfills with the same value as the promise returned from `work` + block, or rejects with the same error after all retry attempts have been exhausted. + */ ++ (FBLPromise *)onQueue:(dispatch_queue_t)queue + attempts:(NSInteger)count + retry:(FBLPromiseRetryWorkBlock)work NS_SWIFT_UNAVAILABLE(""); + +/** + Creates a pending promise that fulfills with the same value as the promise returned from `work` + block, which executes asynchronously, or rejects with the same error after all retry attempts have + been exhausted. On rejection, the `work` block is retried after the given delay `interval` and will + continue to retry until the number of specified attempts have been exhausted or will bail early if + the given condition is not met. + + @param count Max number of retry attempts. The `work` block will be executed once if the specified + count is less than or equal to zero. + @param interval Time to wait before the next retry attempt. + @param predicate Condition to check before the next retry attempt. The predicate block provides the + the number of remaining retry attempts and the error that the promise was rejected + with. + @param work A block that executes asynchronously on the default queue and returns a value or an + error used to resolve the promise. + @return A new pending promise that fulfills with the same value as the promise returned from `work` + block, or rejects with the same error after all retry attempts have been exhausted or if + the given condition is not met. + */ ++ (FBLPromise *)attempts:(NSInteger)count + delay:(NSTimeInterval)interval + condition:(nullable FBLPromiseRetryPredicateBlock)predicate + retry:(FBLPromiseRetryWorkBlock)work NS_SWIFT_UNAVAILABLE(""); + +/** + Creates a pending promise that fulfills with the same value as the promise returned from `work` + block, which executes asynchronously on the given `queue`, or rejects with the same error after all + retry attempts have been exhausted. On rejection, the `work` block is retried after the given + delay `interval` and will continue to retry until the number of specified attempts have been + exhausted or will bail early if the given condition is not met. + + @param queue A queue to invoke the `work` block on. + @param count Max number of retry attempts. The `work` block will be executed once if the specified + count is less than or equal to zero. + @param interval Time to wait before the next retry attempt. + @param predicate Condition to check before the next retry attempt. The predicate block provides the + the number of remaining retry attempts and the error that the promise was rejected + with. + @param work A block that executes asynchronously on the given `queue` and returns a value or an + error used to resolve the promise. + @return A new pending promise that fulfills with the same value as the promise returned from `work` + block, or rejects with the same error after all retry attempts have been exhausted or if + the given condition is not met. + */ ++ (FBLPromise *)onQueue:(dispatch_queue_t)queue + attempts:(NSInteger)count + delay:(NSTimeInterval)interval + condition:(nullable FBLPromiseRetryPredicateBlock)predicate + retry:(FBLPromiseRetryWorkBlock)work NS_REFINED_FOR_SWIFT; + +@end + +/** + Convenience dot-syntax wrappers for `FBLPromise+Retry` operators. + Usage: FBLPromise.retry(^id { ... }) + */ +@interface FBLPromise(DotSyntax_RetryAdditions) + ++ (FBLPromise * (^)(FBLPromiseRetryWorkBlock))retry FBL_PROMISES_DOT_SYNTAX + NS_SWIFT_UNAVAILABLE(""); ++ (FBLPromise * (^)(dispatch_queue_t, FBLPromiseRetryWorkBlock))retryOn FBL_PROMISES_DOT_SYNTAX + NS_SWIFT_UNAVAILABLE(""); ++ (FBLPromise * (^)(NSInteger, NSTimeInterval, FBLPromiseRetryPredicateBlock __nullable, + FBLPromiseRetryWorkBlock))retryAgain FBL_PROMISES_DOT_SYNTAX + NS_SWIFT_UNAVAILABLE(""); ++ (FBLPromise * (^)(dispatch_queue_t, NSInteger, NSTimeInterval, + FBLPromiseRetryPredicateBlock __nullable, + FBLPromiseRetryWorkBlock))retryAgainOn FBL_PROMISES_DOT_SYNTAX + NS_SWIFT_UNAVAILABLE(""); + +@end + +NS_ASSUME_NONNULL_END diff --git a/Clocker/Frameworks/Firebase/PromisesObjC.framework/Headers/FBLPromise+Testing.h b/Clocker/Frameworks/Firebase/PromisesObjC.framework/Headers/FBLPromise+Testing.h new file mode 100644 index 0000000..8478ae2 --- /dev/null +++ b/Clocker/Frameworks/Firebase/PromisesObjC.framework/Headers/FBLPromise+Testing.h @@ -0,0 +1,57 @@ +/** + Copyright 2018 Google Inc. All rights reserved. + + 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 "FBLPromise.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + Waits for all scheduled promises blocks. + + @param timeout Maximum time to wait. + @return YES if all promises blocks have completed before the timeout and NO otherwise. + */ +FOUNDATION_EXTERN BOOL FBLWaitForPromisesWithTimeout(NSTimeInterval timeout) NS_REFINED_FOR_SWIFT; + +@interface FBLPromise(TestingAdditions) + +/** + Dispatch group for promises that is typically used to wait for all scheduled blocks. + */ +@property(class, nonatomic, readonly) dispatch_group_t dispatchGroup NS_REFINED_FOR_SWIFT; + +/** + Properties to get the current state of the promise. + */ +@property(nonatomic, readonly) BOOL isPending NS_REFINED_FOR_SWIFT; +@property(nonatomic, readonly) BOOL isFulfilled NS_REFINED_FOR_SWIFT; +@property(nonatomic, readonly) BOOL isRejected NS_REFINED_FOR_SWIFT; + +/** + Value the promise was fulfilled with. + Can be nil if the promise is still pending, was resolved with nil or after it has been rejected. + */ +@property(nonatomic, readonly, nullable) Value value NS_REFINED_FOR_SWIFT; + +/** + Error the promise was rejected with. + Can be nil if the promise is still pending or after it has been fulfilled. + */ +@property(nonatomic, readonly, nullable) NSError *error NS_REFINED_FOR_SWIFT; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Clocker/Frameworks/Firebase/PromisesObjC.framework/Headers/FBLPromise+Then.h b/Clocker/Frameworks/Firebase/PromisesObjC.framework/Headers/FBLPromise+Then.h new file mode 100644 index 0000000..32027e6 --- /dev/null +++ b/Clocker/Frameworks/Firebase/PromisesObjC.framework/Headers/FBLPromise+Then.h @@ -0,0 +1,63 @@ +/** + Copyright 2018 Google Inc. All rights reserved. + + 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 "FBLPromise.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface FBLPromise(ThenAdditions) + +typedef id __nullable (^FBLPromiseThenWorkBlock)(Value __nullable value) NS_SWIFT_UNAVAILABLE(""); + +/** + Creates a pending promise which eventually gets resolved with resolution returned from `work` + block: either value, error or another promise. The `work` block is executed asynchronously only + when the receiver is fulfilled. If receiver is rejected, the returned promise is also rejected with + the same error. + + @param work A block to handle the value that receiver was fulfilled with. + @return A new pending promise to be resolved with resolution returned from the `work` block. + */ +- (FBLPromise *)then:(FBLPromiseThenWorkBlock)work NS_SWIFT_UNAVAILABLE(""); + +/** + Creates a pending promise which eventually gets resolved with resolution returned from `work` + block: either value, error or another promise. The `work` block is executed asynchronously when the + receiver is fulfilled. If receiver is rejected, the returned promise is also rejected with the same + error. + + @param queue A queue to invoke the `work` block on. + @param work A block to handle the value that receiver was fulfilled with. + @return A new pending promise to be resolved with resolution returned from the `work` block. + */ +- (FBLPromise *)onQueue:(dispatch_queue_t)queue + then:(FBLPromiseThenWorkBlock)work NS_REFINED_FOR_SWIFT; + +@end + +/** + Convenience dot-syntax wrappers for `FBLPromise` `then` operators. + Usage: promise.then(^id(id value) { ... }) + */ +@interface FBLPromise(DotSyntax_ThenAdditions) + +- (FBLPromise* (^)(FBLPromiseThenWorkBlock))then FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); +- (FBLPromise* (^)(dispatch_queue_t, FBLPromiseThenWorkBlock))thenOn FBL_PROMISES_DOT_SYNTAX + NS_SWIFT_UNAVAILABLE(""); + +@end + +NS_ASSUME_NONNULL_END diff --git a/Clocker/Frameworks/Firebase/PromisesObjC.framework/Headers/FBLPromise+Timeout.h b/Clocker/Frameworks/Firebase/PromisesObjC.framework/Headers/FBLPromise+Timeout.h new file mode 100644 index 0000000..184ba16 --- /dev/null +++ b/Clocker/Frameworks/Firebase/PromisesObjC.framework/Headers/FBLPromise+Timeout.h @@ -0,0 +1,57 @@ +/** + Copyright 2018 Google Inc. All rights reserved. + + 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 "FBLPromise.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface FBLPromise(TimeoutAdditions) + +/** + Waits for a promise with the specified `timeout`. + + @param interval Time to wait in seconds. + @return A new pending promise that gets either resolved with same resolution as the receiver or + rejected with `FBLPromiseErrorCodeTimedOut` error code in `FBLPromiseErrorDomain`. + */ +- (FBLPromise *)timeout:(NSTimeInterval)interval NS_SWIFT_UNAVAILABLE(""); + +/** + Waits for a promise with the specified `timeout`. + + @param queue A queue to dispatch on. + @param interval Time to wait in seconds. + @return A new pending promise that gets either resolved with same resolution as the receiver or + rejected with `FBLPromiseErrorCodeTimedOut` error code in `FBLPromiseErrorDomain`. + */ +- (FBLPromise *)onQueue:(dispatch_queue_t)queue + timeout:(NSTimeInterval)interval NS_REFINED_FOR_SWIFT; + +@end + +/** + Convenience dot-syntax wrappers for `FBLPromise` `timeout` operators. + Usage: promise.timeout(...) + */ +@interface FBLPromise(DotSyntax_TimeoutAdditions) + +- (FBLPromise* (^)(NSTimeInterval))timeout FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); +- (FBLPromise* (^)(dispatch_queue_t, NSTimeInterval))timeoutOn FBL_PROMISES_DOT_SYNTAX + NS_SWIFT_UNAVAILABLE(""); + +@end + +NS_ASSUME_NONNULL_END diff --git a/Clocker/Frameworks/Firebase/PromisesObjC.framework/Headers/FBLPromise+Validate.h b/Clocker/Frameworks/Firebase/PromisesObjC.framework/Headers/FBLPromise+Validate.h new file mode 100644 index 0000000..9dfa2f1 --- /dev/null +++ b/Clocker/Frameworks/Firebase/PromisesObjC.framework/Headers/FBLPromise+Validate.h @@ -0,0 +1,60 @@ +/** + Copyright 2018 Google Inc. All rights reserved. + + 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 "FBLPromise.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface FBLPromise(ValidateAdditions) + +typedef BOOL (^FBLPromiseValidateWorkBlock)(Value __nullable value) NS_SWIFT_UNAVAILABLE(""); + +/** + Validates a fulfilled value or rejects the value if it can not be validated. + + @param predicate An expression to validate. + @return A new pending promise that gets either resolved with same resolution as the receiver or + rejected with `FBLPromiseErrorCodeValidationFailure` error code in `FBLPromiseErrorDomain`. + */ +- (FBLPromise *)validate:(FBLPromiseValidateWorkBlock)predicate NS_SWIFT_UNAVAILABLE(""); + +/** + Validates a fulfilled value or rejects the value if it can not be validated. + + @param queue A queue to dispatch on. + @param predicate An expression to validate. + @return A new pending promise that gets either resolved with same resolution as the receiver or + rejected with `FBLPromiseErrorCodeValidationFailure` error code in `FBLPromiseErrorDomain`. + */ +- (FBLPromise *)onQueue:(dispatch_queue_t)queue + validate:(FBLPromiseValidateWorkBlock)predicate NS_REFINED_FOR_SWIFT; + +@end + +/** + Convenience dot-syntax wrappers for `FBLPromise` `validate` operators. + Usage: promise.validate(^BOOL(id value) { ... }) + */ +@interface FBLPromise(DotSyntax_ValidateAdditions) + +- (FBLPromise * (^)(FBLPromiseValidateWorkBlock))validate FBL_PROMISES_DOT_SYNTAX + NS_SWIFT_UNAVAILABLE(""); +- (FBLPromise * (^)(dispatch_queue_t, FBLPromiseValidateWorkBlock))validateOn + FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); + +@end + +NS_ASSUME_NONNULL_END diff --git a/Clocker/Frameworks/Firebase/PromisesObjC.framework/Headers/FBLPromise+Wrap.h b/Clocker/Frameworks/Firebase/PromisesObjC.framework/Headers/FBLPromise+Wrap.h new file mode 100644 index 0000000..664e1bb --- /dev/null +++ b/Clocker/Frameworks/Firebase/PromisesObjC.framework/Headers/FBLPromise+Wrap.h @@ -0,0 +1,316 @@ +/** + Copyright 2018 Google Inc. All rights reserved. + + 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 "FBLPromise.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + Different types of completion handlers available to be wrapped with promise. + */ +typedef void (^FBLPromiseCompletion)(void) NS_SWIFT_UNAVAILABLE(""); +typedef void (^FBLPromiseObjectCompletion)(id __nullable) NS_SWIFT_UNAVAILABLE(""); +typedef void (^FBLPromiseErrorCompletion)(NSError* __nullable) NS_SWIFT_UNAVAILABLE(""); +typedef void (^FBLPromiseObjectOrErrorCompletion)(id __nullable, NSError* __nullable) + NS_SWIFT_UNAVAILABLE(""); +typedef void (^FBLPromiseErrorOrObjectCompletion)(NSError* __nullable, id __nullable) + NS_SWIFT_UNAVAILABLE(""); +typedef void (^FBLPromise2ObjectsOrErrorCompletion)(id __nullable, id __nullable, + NSError* __nullable) NS_SWIFT_UNAVAILABLE(""); +typedef void (^FBLPromiseBoolCompletion)(BOOL) NS_SWIFT_UNAVAILABLE(""); +typedef void (^FBLPromiseBoolOrErrorCompletion)(BOOL, NSError* __nullable) NS_SWIFT_UNAVAILABLE(""); +typedef void (^FBLPromiseIntegerCompletion)(NSInteger) NS_SWIFT_UNAVAILABLE(""); +typedef void (^FBLPromiseIntegerOrErrorCompletion)(NSInteger, NSError* __nullable) + NS_SWIFT_UNAVAILABLE(""); +typedef void (^FBLPromiseDoubleCompletion)(double) NS_SWIFT_UNAVAILABLE(""); +typedef void (^FBLPromiseDoubleOrErrorCompletion)(double, NSError* __nullable) + NS_SWIFT_UNAVAILABLE(""); + +/** + Provides an easy way to convert methods that use common callback patterns into promises. + */ +@interface FBLPromise(WrapAdditions) + +/** + @param work A block to perform any operations needed to resolve the promise. + @returns A promise that resolves with `nil` when completion handler is invoked. + */ ++ (instancetype)wrapCompletion:(void (^)(FBLPromiseCompletion handler))work + NS_SWIFT_UNAVAILABLE(""); + +/** + @param queue A queue to invoke the `work` block on. + @param work A block to perform any operations needed to resolve the promise. + @returns A promise that resolves with `nil` when completion handler is invoked. + */ ++ (instancetype)onQueue:(dispatch_queue_t)queue + wrapCompletion:(void (^)(FBLPromiseCompletion handler))work NS_SWIFT_UNAVAILABLE(""); + +/** + @param work A block to perform any operations needed to resolve the promise. + @returns A promise that resolves with an object provided by completion handler. + */ ++ (instancetype)wrapObjectCompletion:(void (^)(FBLPromiseObjectCompletion handler))work + NS_SWIFT_UNAVAILABLE(""); + +/** + @param queue A queue to invoke the `work` block on. + @param work A block to perform any operations needed to resolve the promise. + @returns A promise that resolves with an object provided by completion handler. + */ ++ (instancetype)onQueue:(dispatch_queue_t)queue + wrapObjectCompletion:(void (^)(FBLPromiseObjectCompletion handler))work + NS_SWIFT_UNAVAILABLE(""); + +/** + @param work A block to perform any operations needed to resolve the promise. + @returns A promise that resolves with an error provided by completion handler. + If error is `nil`, fulfills with `nil`, otherwise rejects with the error. + */ ++ (instancetype)wrapErrorCompletion:(void (^)(FBLPromiseErrorCompletion handler))work + NS_SWIFT_UNAVAILABLE(""); + +/** + @param queue A queue to invoke the `work` block on. + @param work A block to perform any operations needed to resolve the promise. + @returns A promise that resolves with an error provided by completion handler. + If error is `nil`, fulfills with `nil`, otherwise rejects with the error. + */ ++ (instancetype)onQueue:(dispatch_queue_t)queue + wrapErrorCompletion:(void (^)(FBLPromiseErrorCompletion handler))work NS_SWIFT_UNAVAILABLE(""); + +/** + @param work A block to perform any operations needed to resolve the promise. + @returns A promise that resolves with an object provided by completion handler if error is `nil`. + Otherwise, rejects with the error. + */ ++ (instancetype)wrapObjectOrErrorCompletion: + (void (^)(FBLPromiseObjectOrErrorCompletion handler))work NS_SWIFT_UNAVAILABLE(""); + +/** + @param queue A queue to invoke the `work` block on. + @param work A block to perform any operations needed to resolve the promise. + @returns A promise that resolves with an object provided by completion handler if error is `nil`. + Otherwise, rejects with the error. + */ ++ (instancetype)onQueue:(dispatch_queue_t)queue + wrapObjectOrErrorCompletion:(void (^)(FBLPromiseObjectOrErrorCompletion handler))work + NS_SWIFT_UNAVAILABLE(""); + +/** + @param work A block to perform any operations needed to resolve the promise. + @returns A promise that resolves with an error or object provided by completion handler. If error + is not `nil`, rejects with the error. + */ ++ (instancetype)wrapErrorOrObjectCompletion: + (void (^)(FBLPromiseErrorOrObjectCompletion handler))work NS_SWIFT_UNAVAILABLE(""); + +/** + @param queue A queue to invoke the `work` block on. + @param work A block to perform any operations needed to resolve the promise. + @returns A promise that resolves with an error or object provided by completion handler. If error + is not `nil`, rejects with the error. + */ ++ (instancetype)onQueue:(dispatch_queue_t)queue + wrapErrorOrObjectCompletion:(void (^)(FBLPromiseErrorOrObjectCompletion handler))work + NS_SWIFT_UNAVAILABLE(""); + +/** + @param work A block to perform any operations needed to resolve the promise. + @returns A promise that resolves with an array of objects provided by completion handler in order + if error is `nil`. Otherwise, rejects with the error. + */ ++ (FBLPromise*)wrap2ObjectsOrErrorCompletion: + (void (^)(FBLPromise2ObjectsOrErrorCompletion handler))work NS_SWIFT_UNAVAILABLE(""); + +/** + @param queue A queue to invoke the `work` block on. + @param work A block to perform any operations needed to resolve the promise. + @returns A promise that resolves with an array of objects provided by completion handler in order + if error is `nil`. Otherwise, rejects with the error. + */ ++ (FBLPromise*)onQueue:(dispatch_queue_t)queue + wrap2ObjectsOrErrorCompletion:(void (^)(FBLPromise2ObjectsOrErrorCompletion handler))work + NS_SWIFT_UNAVAILABLE(""); + +/** + @param work A block to perform any operations needed to resolve the promise. + @returns A promise that resolves with an `NSNumber` wrapping YES/NO. + */ ++ (FBLPromise*)wrapBoolCompletion:(void (^)(FBLPromiseBoolCompletion handler))work + NS_SWIFT_UNAVAILABLE(""); + +/** + @param queue A queue to invoke the `work` block on. + @param work A block to perform any operations needed to resolve the promise. + @returns A promise that resolves with an `NSNumber` wrapping YES/NO. + */ ++ (FBLPromise*)onQueue:(dispatch_queue_t)queue + wrapBoolCompletion:(void (^)(FBLPromiseBoolCompletion handler))work + NS_SWIFT_UNAVAILABLE(""); + +/** + @param work A block to perform any operations needed to resolve the promise. + @returns A promise that resolves with an `NSNumber` wrapping YES/NO when error is `nil`. + Otherwise rejects with the error. + */ ++ (FBLPromise*)wrapBoolOrErrorCompletion: + (void (^)(FBLPromiseBoolOrErrorCompletion handler))work NS_SWIFT_UNAVAILABLE(""); + +/** + @param queue A queue to invoke the `work` block on. + @param work A block to perform any operations needed to resolve the promise. + @returns A promise that resolves with an `NSNumber` wrapping YES/NO when error is `nil`. + Otherwise rejects with the error. + */ ++ (FBLPromise*)onQueue:(dispatch_queue_t)queue + wrapBoolOrErrorCompletion:(void (^)(FBLPromiseBoolOrErrorCompletion handler))work + NS_SWIFT_UNAVAILABLE(""); + +/** + @param work A block to perform any operations needed to resolve the promise. + @returns A promise that resolves with an `NSNumber` wrapping an integer. + */ ++ (FBLPromise*)wrapIntegerCompletion:(void (^)(FBLPromiseIntegerCompletion handler))work + NS_SWIFT_UNAVAILABLE(""); + +/** + @param queue A queue to invoke the `work` block on. + @param work A block to perform any operations needed to resolve the promise. + @returns A promise that resolves with an `NSNumber` wrapping an integer. + */ ++ (FBLPromise*)onQueue:(dispatch_queue_t)queue + wrapIntegerCompletion:(void (^)(FBLPromiseIntegerCompletion handler))work + NS_SWIFT_UNAVAILABLE(""); + +/** + @param work A block to perform any operations needed to resolve the promise. + @returns A promise that resolves with an `NSNumber` wrapping an integer when error is `nil`. + Otherwise rejects with the error. + */ ++ (FBLPromise*)wrapIntegerOrErrorCompletion: + (void (^)(FBLPromiseIntegerOrErrorCompletion handler))work NS_SWIFT_UNAVAILABLE(""); + +/** + @param queue A queue to invoke the `work` block on. + @param work A block to perform any operations needed to resolve the promise. + @returns A promise that resolves with an `NSNumber` wrapping an integer when error is `nil`. + Otherwise rejects with the error. + */ ++ (FBLPromise*)onQueue:(dispatch_queue_t)queue + wrapIntegerOrErrorCompletion:(void (^)(FBLPromiseIntegerOrErrorCompletion handler))work + NS_SWIFT_UNAVAILABLE(""); + +/** + @param work A block to perform any operations needed to resolve the promise. + @returns A promise that resolves with an `NSNumber` wrapping a double. + */ ++ (FBLPromise*)wrapDoubleCompletion:(void (^)(FBLPromiseDoubleCompletion handler))work + NS_SWIFT_UNAVAILABLE(""); + +/** + @param queue A queue to invoke the `work` block on. + @param work A block to perform any operations needed to resolve the promise. + @returns A promise that resolves with an `NSNumber` wrapping a double. + */ ++ (FBLPromise*)onQueue:(dispatch_queue_t)queue + wrapDoubleCompletion:(void (^)(FBLPromiseDoubleCompletion handler))work + NS_SWIFT_UNAVAILABLE(""); + +/** + @param work A block to perform any operations needed to resolve the promise. + @returns A promise that resolves with an `NSNumber` wrapping a double when error is `nil`. + Otherwise rejects with the error. + */ ++ (FBLPromise*)wrapDoubleOrErrorCompletion: + (void (^)(FBLPromiseDoubleOrErrorCompletion handler))work NS_SWIFT_UNAVAILABLE(""); + +/** + @param queue A queue to invoke the `work` block on. + @param work A block to perform any operations needed to resolve the promise. + @returns A promise that resolves with an `NSNumber` wrapping a double when error is `nil`. + Otherwise rejects with the error. + */ ++ (FBLPromise*)onQueue:(dispatch_queue_t)queue + wrapDoubleOrErrorCompletion:(void (^)(FBLPromiseDoubleOrErrorCompletion handler))work + NS_SWIFT_UNAVAILABLE(""); + +@end + +/** + Convenience dot-syntax wrappers for `FBLPromise` `wrap` operators. + Usage: FBLPromise.wrapCompletion(^(FBLPromiseCompletion handler) {...}) + */ +@interface FBLPromise(DotSyntax_WrapAdditions) + ++ (FBLPromise* (^)(void (^)(FBLPromiseCompletion)))wrapCompletion FBL_PROMISES_DOT_SYNTAX + NS_SWIFT_UNAVAILABLE(""); ++ (FBLPromise* (^)(dispatch_queue_t, void (^)(FBLPromiseCompletion)))wrapCompletionOn + FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); ++ (FBLPromise* (^)(void (^)(FBLPromiseObjectCompletion)))wrapObjectCompletion + FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); ++ (FBLPromise* (^)(dispatch_queue_t, void (^)(FBLPromiseObjectCompletion)))wrapObjectCompletionOn + FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); ++ (FBLPromise* (^)(void (^)(FBLPromiseErrorCompletion)))wrapErrorCompletion FBL_PROMISES_DOT_SYNTAX + NS_SWIFT_UNAVAILABLE(""); ++ (FBLPromise* (^)(dispatch_queue_t, void (^)(FBLPromiseErrorCompletion)))wrapErrorCompletionOn + FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); ++ (FBLPromise* (^)(void (^)(FBLPromiseObjectOrErrorCompletion)))wrapObjectOrErrorCompletion + FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); ++ (FBLPromise* (^)(dispatch_queue_t, + void (^)(FBLPromiseObjectOrErrorCompletion)))wrapObjectOrErrorCompletionOn + FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); ++ (FBLPromise* (^)(void (^)(FBLPromiseErrorOrObjectCompletion)))wrapErrorOrObjectCompletion + FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); ++ (FBLPromise* (^)(dispatch_queue_t, + void (^)(FBLPromiseErrorOrObjectCompletion)))wrapErrorOrObjectCompletionOn + FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); ++ (FBLPromise* (^)(void (^)(FBLPromise2ObjectsOrErrorCompletion))) + wrap2ObjectsOrErrorCompletion FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); ++ (FBLPromise* (^)(dispatch_queue_t, void (^)(FBLPromise2ObjectsOrErrorCompletion))) + wrap2ObjectsOrErrorCompletionOn FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); ++ (FBLPromise* (^)(void (^)(FBLPromiseBoolCompletion)))wrapBoolCompletion + FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); ++ (FBLPromise* (^)(dispatch_queue_t, + void (^)(FBLPromiseBoolCompletion)))wrapBoolCompletionOn + FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); ++ (FBLPromise* (^)(void (^)(FBLPromiseBoolOrErrorCompletion)))wrapBoolOrErrorCompletion + FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); ++ (FBLPromise* (^)(dispatch_queue_t, + void (^)(FBLPromiseBoolOrErrorCompletion)))wrapBoolOrErrorCompletionOn + FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); ++ (FBLPromise* (^)(void (^)(FBLPromiseIntegerCompletion)))wrapIntegerCompletion + FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); ++ (FBLPromise* (^)(dispatch_queue_t, + void (^)(FBLPromiseIntegerCompletion)))wrapIntegerCompletionOn + FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); ++ (FBLPromise* (^)(void (^)(FBLPromiseIntegerOrErrorCompletion))) + wrapIntegerOrErrorCompletion FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); ++ (FBLPromise* (^)(dispatch_queue_t, void (^)(FBLPromiseIntegerOrErrorCompletion))) + wrapIntegerOrErrorCompletionOn FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); ++ (FBLPromise* (^)(void (^)(FBLPromiseDoubleCompletion)))wrapDoubleCompletion + FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); ++ (FBLPromise* (^)(dispatch_queue_t, + void (^)(FBLPromiseDoubleCompletion)))wrapDoubleCompletionOn + FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); ++ (FBLPromise* (^)(void (^)(FBLPromiseDoubleOrErrorCompletion))) + wrapDoubleOrErrorCompletion FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); ++ (FBLPromise* (^)(dispatch_queue_t, void (^)(FBLPromiseDoubleOrErrorCompletion))) + wrapDoubleOrErrorCompletionOn FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); + +@end + +NS_ASSUME_NONNULL_END diff --git a/Clocker/Frameworks/Firebase/PromisesObjC.framework/Headers/FBLPromise.h b/Clocker/Frameworks/Firebase/PromisesObjC.framework/Headers/FBLPromise.h new file mode 100644 index 0000000..b1380dc --- /dev/null +++ b/Clocker/Frameworks/Firebase/PromisesObjC.framework/Headers/FBLPromise.h @@ -0,0 +1,93 @@ +/** + Copyright 2018 Google Inc. All rights reserved. + + 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 "FBLPromiseError.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + Promises synchronization construct in Objective-C. + */ +@interface FBLPromise<__covariant Value> : NSObject + +/** + Default dispatch queue used for `FBLPromise`, which is `main` if a queue is not specified. + */ +@property(class) dispatch_queue_t defaultDispatchQueue NS_REFINED_FOR_SWIFT; + +/** + Creates a pending promise. + */ ++ (instancetype)pendingPromise NS_REFINED_FOR_SWIFT; + +/** + Creates a resolved promise. + + @param resolution An object to resolve the promise with: either a value or an error. + @return A new resolved promise. + */ ++ (instancetype)resolvedWith:(nullable id)resolution NS_REFINED_FOR_SWIFT; + +/** + Synchronously fulfills the promise with a value. + + @param value An arbitrary value to fulfill the promise with, including `nil`. + */ +- (void)fulfill:(nullable Value)value NS_REFINED_FOR_SWIFT; + +/** + Synchronously rejects the promise with an error. + + @param error An error to reject the promise with. + */ +- (void)reject:(NSError *)error NS_REFINED_FOR_SWIFT; + ++ (instancetype)new NS_UNAVAILABLE; +- (instancetype)init NS_UNAVAILABLE; +@end + +@interface FBLPromise() + +/** + Adds an object to the set of pending objects to keep strongly while the promise is pending. + Used by the Swift wrappers to keep them alive until the underlying ObjC promise is resolved. + + @param object An object to add. + */ +- (void)addPendingObject:(id)object NS_REFINED_FOR_SWIFT; + +@end + +#ifdef FBL_PROMISES_DOT_SYNTAX_IS_DEPRECATED +#define FBL_PROMISES_DOT_SYNTAX __attribute__((deprecated)) +#else +#define FBL_PROMISES_DOT_SYNTAX +#endif + +@interface FBLPromise(DotSyntaxAdditions) + +/** + Convenience dot-syntax wrappers for FBLPromise. + Usage: FBLPromise.pending() + FBLPromise.resolved(value) + + */ ++ (instancetype (^)(void))pending FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); ++ (instancetype (^)(id __nullable))resolved FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); + +@end + +NS_ASSUME_NONNULL_END diff --git a/Clocker/Frameworks/Firebase/PromisesObjC.framework/Headers/FBLPromiseError.h b/Clocker/Frameworks/Firebase/PromisesObjC.framework/Headers/FBLPromiseError.h new file mode 100644 index 0000000..d37af53 --- /dev/null +++ b/Clocker/Frameworks/Firebase/PromisesObjC.framework/Headers/FBLPromiseError.h @@ -0,0 +1,43 @@ +/** + Copyright 2018 Google Inc. All rights reserved. + + 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_ASSUME_NONNULL_BEGIN + +FOUNDATION_EXTERN NSErrorDomain const FBLPromiseErrorDomain NS_REFINED_FOR_SWIFT; + +/** + Possible error codes in `FBLPromiseErrorDomain`. + */ +typedef NS_ENUM(NSInteger, FBLPromiseErrorCode) { + /** Promise failed to resolve in time. */ + FBLPromiseErrorCodeTimedOut = 1, + /** Validation predicate returned false. */ + FBLPromiseErrorCodeValidationFailure = 2, +} NS_REFINED_FOR_SWIFT; + +NS_INLINE BOOL FBLPromiseErrorIsTimedOut(NSError *error) NS_SWIFT_UNAVAILABLE("") { + return error.domain == FBLPromiseErrorDomain && + error.code == FBLPromiseErrorCodeTimedOut; +} + +NS_INLINE BOOL FBLPromiseErrorIsValidationFailure(NSError *error) NS_SWIFT_UNAVAILABLE("") { + return error.domain == FBLPromiseErrorDomain && + error.code == FBLPromiseErrorCodeValidationFailure; +} + +NS_ASSUME_NONNULL_END diff --git a/Clocker/Frameworks/Firebase/PromisesObjC.framework/Headers/FBLPromises.h b/Clocker/Frameworks/Firebase/PromisesObjC.framework/Headers/FBLPromises.h new file mode 100644 index 0000000..2d90bad --- /dev/null +++ b/Clocker/Frameworks/Firebase/PromisesObjC.framework/Headers/FBLPromises.h @@ -0,0 +1,32 @@ +/** + Copyright 2018 Google Inc. All rights reserved. + + 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 "FBLPromise+All.h" +#import "FBLPromise+Always.h" +#import "FBLPromise+Any.h" +#import "FBLPromise+Async.h" +#import "FBLPromise+Await.h" +#import "FBLPromise+Catch.h" +#import "FBLPromise+Delay.h" +#import "FBLPromise+Do.h" +#import "FBLPromise+Race.h" +#import "FBLPromise+Recover.h" +#import "FBLPromise+Reduce.h" +#import "FBLPromise+Retry.h" +#import "FBLPromise+Then.h" +#import "FBLPromise+Timeout.h" +#import "FBLPromise+Validate.h" +#import "FBLPromise+Wrap.h" diff --git a/Clocker/Frameworks/Firebase/PromisesObjC.framework/Headers/PromisesObjC-umbrella.h b/Clocker/Frameworks/Firebase/PromisesObjC.framework/Headers/PromisesObjC-umbrella.h new file mode 100644 index 0000000..7447f7c --- /dev/null +++ b/Clocker/Frameworks/Firebase/PromisesObjC.framework/Headers/PromisesObjC-umbrella.h @@ -0,0 +1,36 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + +#import "FBLPromise+All.h" +#import "FBLPromise+Always.h" +#import "FBLPromise+Any.h" +#import "FBLPromise+Async.h" +#import "FBLPromise+Await.h" +#import "FBLPromise+Catch.h" +#import "FBLPromise+Delay.h" +#import "FBLPromise+Do.h" +#import "FBLPromise+Race.h" +#import "FBLPromise+Recover.h" +#import "FBLPromise+Reduce.h" +#import "FBLPromise+Retry.h" +#import "FBLPromise+Testing.h" +#import "FBLPromise+Then.h" +#import "FBLPromise+Timeout.h" +#import "FBLPromise+Validate.h" +#import "FBLPromise+Wrap.h" +#import "FBLPromise.h" +#import "FBLPromiseError.h" +#import "FBLPromises.h" + +FOUNDATION_EXPORT double FBLPromisesVersionNumber; +FOUNDATION_EXPORT const unsigned char FBLPromisesVersionString[]; + diff --git a/Clocker/Frameworks/Firebase/PromisesObjC.framework/Info.plist b/Clocker/Frameworks/Firebase/PromisesObjC.framework/Info.plist new file mode 100644 index 0000000..9ed334a --- /dev/null +++ b/Clocker/Frameworks/Firebase/PromisesObjC.framework/Info.plist @@ -0,0 +1,20 @@ + + + + + CFBundleExecutable + PromisesObjC + CFBundleIdentifier + com.firebase.Firebase-PromisesObjC + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + PromisesObjC + CFBundlePackageType + FMWK + CFBundleVersion + 1.2.12 + DTSDKName + iphonesimulator11.2 + + diff --git a/Clocker/Frameworks/Firebase/PromisesObjC.framework/Modules/module.modulemap b/Clocker/Frameworks/Firebase/PromisesObjC.framework/Modules/module.modulemap new file mode 100644 index 0000000..bd7b48e --- /dev/null +++ b/Clocker/Frameworks/Firebase/PromisesObjC.framework/Modules/module.modulemap @@ -0,0 +1,5 @@ +framework module PromisesObjC { +umbrella header "PromisesObjC-umbrella.h" +export * +module * { export * } +} diff --git a/Clocker/Frameworks/Firebase/PromisesObjC.framework/PromisesObjC b/Clocker/Frameworks/Firebase/PromisesObjC.framework/PromisesObjC new file mode 100644 index 0000000..01dd430 Binary files /dev/null and b/Clocker/Frameworks/Firebase/PromisesObjC.framework/PromisesObjC differ diff --git a/Clocker/Frameworks/Firebase/leveldb-library.framework/Headers/c.h b/Clocker/Frameworks/Firebase/leveldb-library.framework/Headers/c.h new file mode 100644 index 0000000..8e0d592 --- /dev/null +++ b/Clocker/Frameworks/Firebase/leveldb-library.framework/Headers/c.h @@ -0,0 +1,270 @@ +/* Copyright (c) 2011 The LevelDB Authors. All rights reserved. + Use of this source code is governed by a BSD-style license that can be + found in the LICENSE file. See the AUTHORS file for names of contributors. + + C bindings for leveldb. May be useful as a stable ABI that can be + used by programs that keep leveldb in a shared library, or for + a JNI api. + + Does not support: + . getters for the option types + . custom comparators that implement key shortening + . custom iter, db, env, cache implementations using just the C bindings + + Some conventions: + + (1) We expose just opaque struct pointers and functions to clients. + This allows us to change internal representations without having to + recompile clients. + + (2) For simplicity, there is no equivalent to the Slice type. Instead, + the caller has to pass the pointer and length as separate + arguments. + + (3) Errors are represented by a null-terminated c string. NULL + means no error. All operations that can raise an error are passed + a "char** errptr" as the last argument. One of the following must + be true on entry: + *errptr == NULL + *errptr points to a malloc()ed null-terminated error message + (On Windows, *errptr must have been malloc()-ed by this library.) + On success, a leveldb routine leaves *errptr unchanged. + On failure, leveldb frees the old value of *errptr and + set *errptr to a malloc()ed error message. + + (4) Bools have the type unsigned char (0 == false; rest == true) + + (5) All of the pointer arguments must be non-NULL. +*/ + +#ifndef STORAGE_LEVELDB_INCLUDE_C_H_ +#define STORAGE_LEVELDB_INCLUDE_C_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include +#include + +#include "leveldb/export.h" + +/* Exported types */ + +typedef struct leveldb_t leveldb_t; +typedef struct leveldb_cache_t leveldb_cache_t; +typedef struct leveldb_comparator_t leveldb_comparator_t; +typedef struct leveldb_env_t leveldb_env_t; +typedef struct leveldb_filelock_t leveldb_filelock_t; +typedef struct leveldb_filterpolicy_t leveldb_filterpolicy_t; +typedef struct leveldb_iterator_t leveldb_iterator_t; +typedef struct leveldb_logger_t leveldb_logger_t; +typedef struct leveldb_options_t leveldb_options_t; +typedef struct leveldb_randomfile_t leveldb_randomfile_t; +typedef struct leveldb_readoptions_t leveldb_readoptions_t; +typedef struct leveldb_seqfile_t leveldb_seqfile_t; +typedef struct leveldb_snapshot_t leveldb_snapshot_t; +typedef struct leveldb_writablefile_t leveldb_writablefile_t; +typedef struct leveldb_writebatch_t leveldb_writebatch_t; +typedef struct leveldb_writeoptions_t leveldb_writeoptions_t; + +/* DB operations */ + +LEVELDB_EXPORT leveldb_t* leveldb_open(const leveldb_options_t* options, + const char* name, char** errptr); + +LEVELDB_EXPORT void leveldb_close(leveldb_t* db); + +LEVELDB_EXPORT void leveldb_put(leveldb_t* db, + const leveldb_writeoptions_t* options, + const char* key, size_t keylen, const char* val, + size_t vallen, char** errptr); + +LEVELDB_EXPORT void leveldb_delete(leveldb_t* db, + const leveldb_writeoptions_t* options, + const char* key, size_t keylen, + char** errptr); + +LEVELDB_EXPORT void leveldb_write(leveldb_t* db, + const leveldb_writeoptions_t* options, + leveldb_writebatch_t* batch, char** errptr); + +/* Returns NULL if not found. A malloc()ed array otherwise. + Stores the length of the array in *vallen. */ +LEVELDB_EXPORT char* leveldb_get(leveldb_t* db, + const leveldb_readoptions_t* options, + const char* key, size_t keylen, size_t* vallen, + char** errptr); + +LEVELDB_EXPORT leveldb_iterator_t* leveldb_create_iterator( + leveldb_t* db, const leveldb_readoptions_t* options); + +LEVELDB_EXPORT const leveldb_snapshot_t* leveldb_create_snapshot(leveldb_t* db); + +LEVELDB_EXPORT void leveldb_release_snapshot( + leveldb_t* db, const leveldb_snapshot_t* snapshot); + +/* Returns NULL if property name is unknown. + Else returns a pointer to a malloc()-ed null-terminated value. */ +LEVELDB_EXPORT char* leveldb_property_value(leveldb_t* db, + const char* propname); + +LEVELDB_EXPORT void leveldb_approximate_sizes( + leveldb_t* db, int num_ranges, const char* const* range_start_key, + const size_t* range_start_key_len, const char* const* range_limit_key, + const size_t* range_limit_key_len, uint64_t* sizes); + +LEVELDB_EXPORT void leveldb_compact_range(leveldb_t* db, const char* start_key, + size_t start_key_len, + const char* limit_key, + size_t limit_key_len); + +/* Management operations */ + +LEVELDB_EXPORT void leveldb_destroy_db(const leveldb_options_t* options, + const char* name, char** errptr); + +LEVELDB_EXPORT void leveldb_repair_db(const leveldb_options_t* options, + const char* name, char** errptr); + +/* Iterator */ + +LEVELDB_EXPORT void leveldb_iter_destroy(leveldb_iterator_t*); +LEVELDB_EXPORT unsigned char leveldb_iter_valid(const leveldb_iterator_t*); +LEVELDB_EXPORT void leveldb_iter_seek_to_first(leveldb_iterator_t*); +LEVELDB_EXPORT void leveldb_iter_seek_to_last(leveldb_iterator_t*); +LEVELDB_EXPORT void leveldb_iter_seek(leveldb_iterator_t*, const char* k, + size_t klen); +LEVELDB_EXPORT void leveldb_iter_next(leveldb_iterator_t*); +LEVELDB_EXPORT void leveldb_iter_prev(leveldb_iterator_t*); +LEVELDB_EXPORT const char* leveldb_iter_key(const leveldb_iterator_t*, + size_t* klen); +LEVELDB_EXPORT const char* leveldb_iter_value(const leveldb_iterator_t*, + size_t* vlen); +LEVELDB_EXPORT void leveldb_iter_get_error(const leveldb_iterator_t*, + char** errptr); + +/* Write batch */ + +LEVELDB_EXPORT leveldb_writebatch_t* leveldb_writebatch_create(); +LEVELDB_EXPORT void leveldb_writebatch_destroy(leveldb_writebatch_t*); +LEVELDB_EXPORT void leveldb_writebatch_clear(leveldb_writebatch_t*); +LEVELDB_EXPORT void leveldb_writebatch_put(leveldb_writebatch_t*, + const char* key, size_t klen, + const char* val, size_t vlen); +LEVELDB_EXPORT void leveldb_writebatch_delete(leveldb_writebatch_t*, + const char* key, size_t klen); +LEVELDB_EXPORT void leveldb_writebatch_iterate( + const leveldb_writebatch_t*, void* state, + void (*put)(void*, const char* k, size_t klen, const char* v, size_t vlen), + void (*deleted)(void*, const char* k, size_t klen)); +LEVELDB_EXPORT void leveldb_writebatch_append( + leveldb_writebatch_t* destination, const leveldb_writebatch_t* source); + +/* Options */ + +LEVELDB_EXPORT leveldb_options_t* leveldb_options_create(); +LEVELDB_EXPORT void leveldb_options_destroy(leveldb_options_t*); +LEVELDB_EXPORT void leveldb_options_set_comparator(leveldb_options_t*, + leveldb_comparator_t*); +LEVELDB_EXPORT void leveldb_options_set_filter_policy(leveldb_options_t*, + leveldb_filterpolicy_t*); +LEVELDB_EXPORT void leveldb_options_set_create_if_missing(leveldb_options_t*, + unsigned char); +LEVELDB_EXPORT void leveldb_options_set_error_if_exists(leveldb_options_t*, + unsigned char); +LEVELDB_EXPORT void leveldb_options_set_paranoid_checks(leveldb_options_t*, + unsigned char); +LEVELDB_EXPORT void leveldb_options_set_env(leveldb_options_t*, leveldb_env_t*); +LEVELDB_EXPORT void leveldb_options_set_info_log(leveldb_options_t*, + leveldb_logger_t*); +LEVELDB_EXPORT void leveldb_options_set_write_buffer_size(leveldb_options_t*, + size_t); +LEVELDB_EXPORT void leveldb_options_set_max_open_files(leveldb_options_t*, int); +LEVELDB_EXPORT void leveldb_options_set_cache(leveldb_options_t*, + leveldb_cache_t*); +LEVELDB_EXPORT void leveldb_options_set_block_size(leveldb_options_t*, size_t); +LEVELDB_EXPORT void leveldb_options_set_block_restart_interval( + leveldb_options_t*, int); +LEVELDB_EXPORT void leveldb_options_set_max_file_size(leveldb_options_t*, + size_t); + +enum { leveldb_no_compression = 0, leveldb_snappy_compression = 1 }; +LEVELDB_EXPORT void leveldb_options_set_compression(leveldb_options_t*, int); + +/* Comparator */ + +LEVELDB_EXPORT leveldb_comparator_t* leveldb_comparator_create( + void* state, void (*destructor)(void*), + int (*compare)(void*, const char* a, size_t alen, const char* b, + size_t blen), + const char* (*name)(void*)); +LEVELDB_EXPORT void leveldb_comparator_destroy(leveldb_comparator_t*); + +/* Filter policy */ + +LEVELDB_EXPORT leveldb_filterpolicy_t* leveldb_filterpolicy_create( + void* state, void (*destructor)(void*), + char* (*create_filter)(void*, const char* const* key_array, + const size_t* key_length_array, int num_keys, + size_t* filter_length), + unsigned char (*key_may_match)(void*, const char* key, size_t length, + const char* filter, size_t filter_length), + const char* (*name)(void*)); +LEVELDB_EXPORT void leveldb_filterpolicy_destroy(leveldb_filterpolicy_t*); + +LEVELDB_EXPORT leveldb_filterpolicy_t* leveldb_filterpolicy_create_bloom( + int bits_per_key); + +/* Read options */ + +LEVELDB_EXPORT leveldb_readoptions_t* leveldb_readoptions_create(); +LEVELDB_EXPORT void leveldb_readoptions_destroy(leveldb_readoptions_t*); +LEVELDB_EXPORT void leveldb_readoptions_set_verify_checksums( + leveldb_readoptions_t*, unsigned char); +LEVELDB_EXPORT void leveldb_readoptions_set_fill_cache(leveldb_readoptions_t*, + unsigned char); +LEVELDB_EXPORT void leveldb_readoptions_set_snapshot(leveldb_readoptions_t*, + const leveldb_snapshot_t*); + +/* Write options */ + +LEVELDB_EXPORT leveldb_writeoptions_t* leveldb_writeoptions_create(); +LEVELDB_EXPORT void leveldb_writeoptions_destroy(leveldb_writeoptions_t*); +LEVELDB_EXPORT void leveldb_writeoptions_set_sync(leveldb_writeoptions_t*, + unsigned char); + +/* Cache */ + +LEVELDB_EXPORT leveldb_cache_t* leveldb_cache_create_lru(size_t capacity); +LEVELDB_EXPORT void leveldb_cache_destroy(leveldb_cache_t* cache); + +/* Env */ + +LEVELDB_EXPORT leveldb_env_t* leveldb_create_default_env(); +LEVELDB_EXPORT void leveldb_env_destroy(leveldb_env_t*); + +/* If not NULL, the returned buffer must be released using leveldb_free(). */ +LEVELDB_EXPORT char* leveldb_env_get_test_directory(leveldb_env_t*); + +/* Utility */ + +/* Calls free(ptr). + REQUIRES: ptr was malloc()-ed and returned by one of the routines + in this file. Note that in certain cases (typically on Windows), you + may need to call this routine instead of free(ptr) to dispose of + malloc()-ed memory returned by this library. */ +LEVELDB_EXPORT void leveldb_free(void* ptr); + +/* Return the major version number for this release. */ +LEVELDB_EXPORT int leveldb_major_version(); + +/* Return the minor version number for this release. */ +LEVELDB_EXPORT int leveldb_minor_version(); + +#ifdef __cplusplus +} /* end extern "C" */ +#endif + +#endif /* STORAGE_LEVELDB_INCLUDE_C_H_ */ diff --git a/Clocker/Frameworks/Firebase/leveldb-library.framework/Headers/cache.h b/Clocker/Frameworks/Firebase/leveldb-library.framework/Headers/cache.h new file mode 100644 index 0000000..7d1a221 --- /dev/null +++ b/Clocker/Frameworks/Firebase/leveldb-library.framework/Headers/cache.h @@ -0,0 +1,111 @@ +// Copyright (c) 2011 The LevelDB Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. See the AUTHORS file for names of contributors. +// +// A Cache is an interface that maps keys to values. It has internal +// synchronization and may be safely accessed concurrently from +// multiple threads. It may automatically evict entries to make room +// for new entries. Values have a specified charge against the cache +// capacity. For example, a cache where the values are variable +// length strings, may use the length of the string as the charge for +// the string. +// +// A builtin cache implementation with a least-recently-used eviction +// policy is provided. Clients may use their own implementations if +// they want something more sophisticated (like scan-resistance, a +// custom eviction policy, variable cache sizing, etc.) + +#ifndef STORAGE_LEVELDB_INCLUDE_CACHE_H_ +#define STORAGE_LEVELDB_INCLUDE_CACHE_H_ + +#include + +#include "leveldb/export.h" +#include "leveldb/slice.h" + +namespace leveldb { + +class LEVELDB_EXPORT Cache; + +// Create a new cache with a fixed size capacity. This implementation +// of Cache uses a least-recently-used eviction policy. +LEVELDB_EXPORT Cache* NewLRUCache(size_t capacity); + +class LEVELDB_EXPORT Cache { + public: + Cache() = default; + + Cache(const Cache&) = delete; + Cache& operator=(const Cache&) = delete; + + // Destroys all existing entries by calling the "deleter" + // function that was passed to the constructor. + virtual ~Cache(); + + // Opaque handle to an entry stored in the cache. + struct Handle {}; + + // Insert a mapping from key->value into the cache and assign it + // the specified charge against the total cache capacity. + // + // Returns a handle that corresponds to the mapping. The caller + // must call this->Release(handle) when the returned mapping is no + // longer needed. + // + // When the inserted entry is no longer needed, the key and + // value will be passed to "deleter". + virtual Handle* Insert(const Slice& key, void* value, size_t charge, + void (*deleter)(const Slice& key, void* value)) = 0; + + // If the cache has no mapping for "key", returns nullptr. + // + // Else return a handle that corresponds to the mapping. The caller + // must call this->Release(handle) when the returned mapping is no + // longer needed. + virtual Handle* Lookup(const Slice& key) = 0; + + // Release a mapping returned by a previous Lookup(). + // REQUIRES: handle must not have been released yet. + // REQUIRES: handle must have been returned by a method on *this. + virtual void Release(Handle* handle) = 0; + + // Return the value encapsulated in a handle returned by a + // successful Lookup(). + // REQUIRES: handle must not have been released yet. + // REQUIRES: handle must have been returned by a method on *this. + virtual void* Value(Handle* handle) = 0; + + // If the cache contains entry for key, erase it. Note that the + // underlying entry will be kept around until all existing handles + // to it have been released. + virtual void Erase(const Slice& key) = 0; + + // Return a new numeric id. May be used by multiple clients who are + // sharing the same cache to partition the key space. Typically the + // client will allocate a new id at startup and prepend the id to + // its cache keys. + virtual uint64_t NewId() = 0; + + // Remove all cache entries that are not actively in use. Memory-constrained + // applications may wish to call this method to reduce memory usage. + // Default implementation of Prune() does nothing. Subclasses are strongly + // encouraged to override the default implementation. A future release of + // leveldb may change Prune() to a pure abstract method. + virtual void Prune() {} + + // Return an estimate of the combined charges of all elements stored in the + // cache. + virtual size_t TotalCharge() const = 0; + + private: + void LRU_Remove(Handle* e); + void LRU_Append(Handle* e); + void Unref(Handle* e); + + struct Rep; + Rep* rep_; +}; + +} // namespace leveldb + +#endif // STORAGE_LEVELDB_INCLUDE_CACHE_H_ diff --git a/Clocker/Frameworks/Firebase/leveldb-library.framework/Headers/comparator.h b/Clocker/Frameworks/Firebase/leveldb-library.framework/Headers/comparator.h new file mode 100644 index 0000000..a85b51e --- /dev/null +++ b/Clocker/Frameworks/Firebase/leveldb-library.framework/Headers/comparator.h @@ -0,0 +1,64 @@ +// Copyright (c) 2011 The LevelDB Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. See the AUTHORS file for names of contributors. + +#ifndef STORAGE_LEVELDB_INCLUDE_COMPARATOR_H_ +#define STORAGE_LEVELDB_INCLUDE_COMPARATOR_H_ + +#include + +#include "leveldb/export.h" + +namespace leveldb { + +class Slice; + +// A Comparator object provides a total order across slices that are +// used as keys in an sstable or a database. A Comparator implementation +// must be thread-safe since leveldb may invoke its methods concurrently +// from multiple threads. +class LEVELDB_EXPORT Comparator { + public: + virtual ~Comparator(); + + // Three-way comparison. Returns value: + // < 0 iff "a" < "b", + // == 0 iff "a" == "b", + // > 0 iff "a" > "b" + virtual int Compare(const Slice& a, const Slice& b) const = 0; + + // The name of the comparator. Used to check for comparator + // mismatches (i.e., a DB created with one comparator is + // accessed using a different comparator. + // + // The client of this package should switch to a new name whenever + // the comparator implementation changes in a way that will cause + // the relative ordering of any two keys to change. + // + // Names starting with "leveldb." are reserved and should not be used + // by any clients of this package. + virtual const char* Name() const = 0; + + // Advanced functions: these are used to reduce the space requirements + // for internal data structures like index blocks. + + // If *start < limit, changes *start to a short string in [start,limit). + // Simple comparator implementations may return with *start unchanged, + // i.e., an implementation of this method that does nothing is correct. + virtual void FindShortestSeparator(std::string* start, + const Slice& limit) const = 0; + + // Changes *key to a short string >= *key. + // Simple comparator implementations may return with *key unchanged, + // i.e., an implementation of this method that does nothing is correct. + virtual void FindShortSuccessor(std::string* key) const = 0; +}; + +// Return a builtin comparator that uses lexicographic byte-wise +// ordering. The result remains the property of this module and +// must not be deleted. +LEVELDB_EXPORT const Comparator* BytewiseComparator(); + +} // namespace leveldb + +#endif // STORAGE_LEVELDB_INCLUDE_COMPARATOR_H_ diff --git a/Clocker/Frameworks/Firebase/leveldb-library.framework/Headers/db.h b/Clocker/Frameworks/Firebase/leveldb-library.framework/Headers/db.h new file mode 100644 index 0000000..ea3d9e5 --- /dev/null +++ b/Clocker/Frameworks/Firebase/leveldb-library.framework/Headers/db.h @@ -0,0 +1,167 @@ +// Copyright (c) 2011 The LevelDB Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. See the AUTHORS file for names of contributors. + +#ifndef STORAGE_LEVELDB_INCLUDE_DB_H_ +#define STORAGE_LEVELDB_INCLUDE_DB_H_ + +#include +#include + +#include "leveldb/export.h" +#include "leveldb/iterator.h" +#include "leveldb/options.h" + +namespace leveldb { + +// Update CMakeLists.txt if you change these +static const int kMajorVersion = 1; +static const int kMinorVersion = 22; + +struct Options; +struct ReadOptions; +struct WriteOptions; +class WriteBatch; + +// Abstract handle to particular state of a DB. +// A Snapshot is an immutable object and can therefore be safely +// accessed from multiple threads without any external synchronization. +class LEVELDB_EXPORT Snapshot { + protected: + virtual ~Snapshot(); +}; + +// A range of keys +struct LEVELDB_EXPORT Range { + Range() {} + Range(const Slice& s, const Slice& l) : start(s), limit(l) {} + + Slice start; // Included in the range + Slice limit; // Not included in the range +}; + +// A DB is a persistent ordered map from keys to values. +// A DB is safe for concurrent access from multiple threads without +// any external synchronization. +class LEVELDB_EXPORT DB { + public: + // Open the database with the specified "name". + // Stores a pointer to a heap-allocated database in *dbptr and returns + // OK on success. + // Stores nullptr in *dbptr and returns a non-OK status on error. + // Caller should delete *dbptr when it is no longer needed. + static Status Open(const Options& options, const std::string& name, + DB** dbptr); + + DB() = default; + + DB(const DB&) = delete; + DB& operator=(const DB&) = delete; + + virtual ~DB(); + + // Set the database entry for "key" to "value". Returns OK on success, + // and a non-OK status on error. + // Note: consider setting options.sync = true. + virtual Status Put(const WriteOptions& options, const Slice& key, + const Slice& value) = 0; + + // Remove the database entry (if any) for "key". Returns OK on + // success, and a non-OK status on error. It is not an error if "key" + // did not exist in the database. + // Note: consider setting options.sync = true. + virtual Status Delete(const WriteOptions& options, const Slice& key) = 0; + + // Apply the specified updates to the database. + // Returns OK on success, non-OK on failure. + // Note: consider setting options.sync = true. + virtual Status Write(const WriteOptions& options, WriteBatch* updates) = 0; + + // If the database contains an entry for "key" store the + // corresponding value in *value and return OK. + // + // If there is no entry for "key" leave *value unchanged and return + // a status for which Status::IsNotFound() returns true. + // + // May return some other Status on an error. + virtual Status Get(const ReadOptions& options, const Slice& key, + std::string* value) = 0; + + // Return a heap-allocated iterator over the contents of the database. + // The result of NewIterator() is initially invalid (caller must + // call one of the Seek methods on the iterator before using it). + // + // Caller should delete the iterator when it is no longer needed. + // The returned iterator should be deleted before this db is deleted. + virtual Iterator* NewIterator(const ReadOptions& options) = 0; + + // Return a handle to the current DB state. Iterators created with + // this handle will all observe a stable snapshot of the current DB + // state. The caller must call ReleaseSnapshot(result) when the + // snapshot is no longer needed. + virtual const Snapshot* GetSnapshot() = 0; + + // Release a previously acquired snapshot. The caller must not + // use "snapshot" after this call. + virtual void ReleaseSnapshot(const Snapshot* snapshot) = 0; + + // DB implementations can export properties about their state + // via this method. If "property" is a valid property understood by this + // DB implementation, fills "*value" with its current value and returns + // true. Otherwise returns false. + // + // + // Valid property names include: + // + // "leveldb.num-files-at-level" - return the number of files at level , + // where is an ASCII representation of a level number (e.g. "0"). + // "leveldb.stats" - returns a multi-line string that describes statistics + // about the internal operation of the DB. + // "leveldb.sstables" - returns a multi-line string that describes all + // of the sstables that make up the db contents. + // "leveldb.approximate-memory-usage" - returns the approximate number of + // bytes of memory in use by the DB. + virtual bool GetProperty(const Slice& property, std::string* value) = 0; + + // For each i in [0,n-1], store in "sizes[i]", the approximate + // file system space used by keys in "[range[i].start .. range[i].limit)". + // + // Note that the returned sizes measure file system space usage, so + // if the user data compresses by a factor of ten, the returned + // sizes will be one-tenth the size of the corresponding user data size. + // + // The results may not include the sizes of recently written data. + virtual void GetApproximateSizes(const Range* range, int n, + uint64_t* sizes) = 0; + + // Compact the underlying storage for the key range [*begin,*end]. + // In particular, deleted and overwritten versions are discarded, + // and the data is rearranged to reduce the cost of operations + // needed to access the data. This operation should typically only + // be invoked by users who understand the underlying implementation. + // + // begin==nullptr is treated as a key before all keys in the database. + // end==nullptr is treated as a key after all keys in the database. + // Therefore the following call will compact the entire database: + // db->CompactRange(nullptr, nullptr); + virtual void CompactRange(const Slice* begin, const Slice* end) = 0; +}; + +// Destroy the contents of the specified database. +// Be very careful using this method. +// +// Note: For backwards compatibility, if DestroyDB is unable to list the +// database files, Status::OK() will still be returned masking this failure. +LEVELDB_EXPORT Status DestroyDB(const std::string& name, + const Options& options); + +// If a DB cannot be opened, you may attempt to call this method to +// resurrect as much of the contents of the database as possible. +// Some data may be lost, so be careful when calling this function +// on a database that contains important information. +LEVELDB_EXPORT Status RepairDB(const std::string& dbname, + const Options& options); + +} // namespace leveldb + +#endif // STORAGE_LEVELDB_INCLUDE_DB_H_ diff --git a/Clocker/Frameworks/Firebase/leveldb-library.framework/Headers/dumpfile.h b/Clocker/Frameworks/Firebase/leveldb-library.framework/Headers/dumpfile.h new file mode 100644 index 0000000..a58bc6b --- /dev/null +++ b/Clocker/Frameworks/Firebase/leveldb-library.framework/Headers/dumpfile.h @@ -0,0 +1,28 @@ +// Copyright (c) 2014 The LevelDB Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. See the AUTHORS file for names of contributors. + +#ifndef STORAGE_LEVELDB_INCLUDE_DUMPFILE_H_ +#define STORAGE_LEVELDB_INCLUDE_DUMPFILE_H_ + +#include + +#include "leveldb/env.h" +#include "leveldb/export.h" +#include "leveldb/status.h" + +namespace leveldb { + +// Dump the contents of the file named by fname in text format to +// *dst. Makes a sequence of dst->Append() calls; each call is passed +// the newline-terminated text corresponding to a single item found +// in the file. +// +// Returns a non-OK result if fname does not name a leveldb storage +// file, or if the file cannot be read. +LEVELDB_EXPORT Status DumpFile(Env* env, const std::string& fname, + WritableFile* dst); + +} // namespace leveldb + +#endif // STORAGE_LEVELDB_INCLUDE_DUMPFILE_H_ diff --git a/Clocker/Frameworks/Firebase/leveldb-library.framework/Headers/env.h b/Clocker/Frameworks/Firebase/leveldb-library.framework/Headers/env.h new file mode 100644 index 0000000..112fe96 --- /dev/null +++ b/Clocker/Frameworks/Firebase/leveldb-library.framework/Headers/env.h @@ -0,0 +1,387 @@ +// Copyright (c) 2011 The LevelDB Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. See the AUTHORS file for names of contributors. +// +// An Env is an interface used by the leveldb implementation to access +// operating system functionality like the filesystem etc. Callers +// may wish to provide a custom Env object when opening a database to +// get fine gain control; e.g., to rate limit file system operations. +// +// All Env implementations are safe for concurrent access from +// multiple threads without any external synchronization. + +#ifndef STORAGE_LEVELDB_INCLUDE_ENV_H_ +#define STORAGE_LEVELDB_INCLUDE_ENV_H_ + +#include +#include + +#include +#include + +#include "leveldb/export.h" +#include "leveldb/status.h" + +#if defined(_WIN32) +// The leveldb::Env class below contains a DeleteFile method. +// At the same time, , a fairly popular header +// file for Windows applications, defines a DeleteFile macro. +// +// Without any intervention on our part, the result of this +// unfortunate coincidence is that the name of the +// leveldb::Env::DeleteFile method seen by the compiler depends on +// whether was included before or after the LevelDB +// headers. +// +// To avoid headaches, we undefined DeleteFile (if defined) and +// redefine it at the bottom of this file. This way +// can be included before this file (or not at all) and the +// exported method will always be leveldb::Env::DeleteFile. +#if defined(DeleteFile) +#undef DeleteFile +#define LEVELDB_DELETEFILE_UNDEFINED +#endif // defined(DeleteFile) +#endif // defined(_WIN32) + +namespace leveldb { + +class FileLock; +class Logger; +class RandomAccessFile; +class SequentialFile; +class Slice; +class WritableFile; + +class LEVELDB_EXPORT Env { + public: + Env() = default; + + Env(const Env&) = delete; + Env& operator=(const Env&) = delete; + + virtual ~Env(); + + // Return a default environment suitable for the current operating + // system. Sophisticated users may wish to provide their own Env + // implementation instead of relying on this default environment. + // + // The result of Default() belongs to leveldb and must never be deleted. + static Env* Default(); + + // Create an object that sequentially reads the file with the specified name. + // On success, stores a pointer to the new file in *result and returns OK. + // On failure stores nullptr in *result and returns non-OK. If the file does + // not exist, returns a non-OK status. Implementations should return a + // NotFound status when the file does not exist. + // + // The returned file will only be accessed by one thread at a time. + virtual Status NewSequentialFile(const std::string& fname, + SequentialFile** result) = 0; + + // Create an object supporting random-access reads from the file with the + // specified name. On success, stores a pointer to the new file in + // *result and returns OK. On failure stores nullptr in *result and + // returns non-OK. If the file does not exist, returns a non-OK + // status. Implementations should return a NotFound status when the file does + // not exist. + // + // The returned file may be concurrently accessed by multiple threads. + virtual Status NewRandomAccessFile(const std::string& fname, + RandomAccessFile** result) = 0; + + // Create an object that writes to a new file with the specified + // name. Deletes any existing file with the same name and creates a + // new file. On success, stores a pointer to the new file in + // *result and returns OK. On failure stores nullptr in *result and + // returns non-OK. + // + // The returned file will only be accessed by one thread at a time. + virtual Status NewWritableFile(const std::string& fname, + WritableFile** result) = 0; + + // Create an object that either appends to an existing file, or + // writes to a new file (if the file does not exist to begin with). + // On success, stores a pointer to the new file in *result and + // returns OK. On failure stores nullptr in *result and returns + // non-OK. + // + // The returned file will only be accessed by one thread at a time. + // + // May return an IsNotSupportedError error if this Env does + // not allow appending to an existing file. Users of Env (including + // the leveldb implementation) must be prepared to deal with + // an Env that does not support appending. + virtual Status NewAppendableFile(const std::string& fname, + WritableFile** result); + + // Returns true iff the named file exists. + virtual bool FileExists(const std::string& fname) = 0; + + // Store in *result the names of the children of the specified directory. + // The names are relative to "dir". + // Original contents of *results are dropped. + virtual Status GetChildren(const std::string& dir, + std::vector* result) = 0; + + // Delete the named file. + virtual Status DeleteFile(const std::string& fname) = 0; + + // Create the specified directory. + virtual Status CreateDir(const std::string& dirname) = 0; + + // Delete the specified directory. + virtual Status DeleteDir(const std::string& dirname) = 0; + + // Store the size of fname in *file_size. + virtual Status GetFileSize(const std::string& fname, uint64_t* file_size) = 0; + + // Rename file src to target. + virtual Status RenameFile(const std::string& src, + const std::string& target) = 0; + + // Lock the specified file. Used to prevent concurrent access to + // the same db by multiple processes. On failure, stores nullptr in + // *lock and returns non-OK. + // + // On success, stores a pointer to the object that represents the + // acquired lock in *lock and returns OK. The caller should call + // UnlockFile(*lock) to release the lock. If the process exits, + // the lock will be automatically released. + // + // If somebody else already holds the lock, finishes immediately + // with a failure. I.e., this call does not wait for existing locks + // to go away. + // + // May create the named file if it does not already exist. + virtual Status LockFile(const std::string& fname, FileLock** lock) = 0; + + // Release the lock acquired by a previous successful call to LockFile. + // REQUIRES: lock was returned by a successful LockFile() call + // REQUIRES: lock has not already been unlocked. + virtual Status UnlockFile(FileLock* lock) = 0; + + // Arrange to run "(*function)(arg)" once in a background thread. + // + // "function" may run in an unspecified thread. Multiple functions + // added to the same Env may run concurrently in different threads. + // I.e., the caller may not assume that background work items are + // serialized. + virtual void Schedule(void (*function)(void* arg), void* arg) = 0; + + // Start a new thread, invoking "function(arg)" within the new thread. + // When "function(arg)" returns, the thread will be destroyed. + virtual void StartThread(void (*function)(void* arg), void* arg) = 0; + + // *path is set to a temporary directory that can be used for testing. It may + // or may not have just been created. The directory may or may not differ + // between runs of the same process, but subsequent calls will return the + // same directory. + virtual Status GetTestDirectory(std::string* path) = 0; + + // Create and return a log file for storing informational messages. + virtual Status NewLogger(const std::string& fname, Logger** result) = 0; + + // Returns the number of micro-seconds since some fixed point in time. Only + // useful for computing deltas of time. + virtual uint64_t NowMicros() = 0; + + // Sleep/delay the thread for the prescribed number of micro-seconds. + virtual void SleepForMicroseconds(int micros) = 0; +}; + +// A file abstraction for reading sequentially through a file +class LEVELDB_EXPORT SequentialFile { + public: + SequentialFile() = default; + + SequentialFile(const SequentialFile&) = delete; + SequentialFile& operator=(const SequentialFile&) = delete; + + virtual ~SequentialFile(); + + // Read up to "n" bytes from the file. "scratch[0..n-1]" may be + // written by this routine. Sets "*result" to the data that was + // read (including if fewer than "n" bytes were successfully read). + // May set "*result" to point at data in "scratch[0..n-1]", so + // "scratch[0..n-1]" must be live when "*result" is used. + // If an error was encountered, returns a non-OK status. + // + // REQUIRES: External synchronization + virtual Status Read(size_t n, Slice* result, char* scratch) = 0; + + // Skip "n" bytes from the file. This is guaranteed to be no + // slower that reading the same data, but may be faster. + // + // If end of file is reached, skipping will stop at the end of the + // file, and Skip will return OK. + // + // REQUIRES: External synchronization + virtual Status Skip(uint64_t n) = 0; +}; + +// A file abstraction for randomly reading the contents of a file. +class LEVELDB_EXPORT RandomAccessFile { + public: + RandomAccessFile() = default; + + RandomAccessFile(const RandomAccessFile&) = delete; + RandomAccessFile& operator=(const RandomAccessFile&) = delete; + + virtual ~RandomAccessFile(); + + // Read up to "n" bytes from the file starting at "offset". + // "scratch[0..n-1]" may be written by this routine. Sets "*result" + // to the data that was read (including if fewer than "n" bytes were + // successfully read). May set "*result" to point at data in + // "scratch[0..n-1]", so "scratch[0..n-1]" must be live when + // "*result" is used. If an error was encountered, returns a non-OK + // status. + // + // Safe for concurrent use by multiple threads. + virtual Status Read(uint64_t offset, size_t n, Slice* result, + char* scratch) const = 0; +}; + +// A file abstraction for sequential writing. The implementation +// must provide buffering since callers may append small fragments +// at a time to the file. +class LEVELDB_EXPORT WritableFile { + public: + WritableFile() = default; + + WritableFile(const WritableFile&) = delete; + WritableFile& operator=(const WritableFile&) = delete; + + virtual ~WritableFile(); + + virtual Status Append(const Slice& data) = 0; + virtual Status Close() = 0; + virtual Status Flush() = 0; + virtual Status Sync() = 0; +}; + +// An interface for writing log messages. +class LEVELDB_EXPORT Logger { + public: + Logger() = default; + + Logger(const Logger&) = delete; + Logger& operator=(const Logger&) = delete; + + virtual ~Logger(); + + // Write an entry to the log file with the specified format. + virtual void Logv(const char* format, va_list ap) = 0; +}; + +// Identifies a locked file. +class LEVELDB_EXPORT FileLock { + public: + FileLock() = default; + + FileLock(const FileLock&) = delete; + FileLock& operator=(const FileLock&) = delete; + + virtual ~FileLock(); +}; + +// Log the specified data to *info_log if info_log is non-null. +void Log(Logger* info_log, const char* format, ...) +#if defined(__GNUC__) || defined(__clang__) + __attribute__((__format__(__printf__, 2, 3))) +#endif + ; + +// A utility routine: write "data" to the named file. +LEVELDB_EXPORT Status WriteStringToFile(Env* env, const Slice& data, + const std::string& fname); + +// A utility routine: read contents of named file into *data +LEVELDB_EXPORT Status ReadFileToString(Env* env, const std::string& fname, + std::string* data); + +// An implementation of Env that forwards all calls to another Env. +// May be useful to clients who wish to override just part of the +// functionality of another Env. +class LEVELDB_EXPORT EnvWrapper : public Env { + public: + // Initialize an EnvWrapper that delegates all calls to *t. + explicit EnvWrapper(Env* t) : target_(t) {} + virtual ~EnvWrapper(); + + // Return the target to which this Env forwards all calls. + Env* target() const { return target_; } + + // The following text is boilerplate that forwards all methods to target(). + Status NewSequentialFile(const std::string& f, SequentialFile** r) override { + return target_->NewSequentialFile(f, r); + } + Status NewRandomAccessFile(const std::string& f, + RandomAccessFile** r) override { + return target_->NewRandomAccessFile(f, r); + } + Status NewWritableFile(const std::string& f, WritableFile** r) override { + return target_->NewWritableFile(f, r); + } + Status NewAppendableFile(const std::string& f, WritableFile** r) override { + return target_->NewAppendableFile(f, r); + } + bool FileExists(const std::string& f) override { + return target_->FileExists(f); + } + Status GetChildren(const std::string& dir, + std::vector* r) override { + return target_->GetChildren(dir, r); + } + Status DeleteFile(const std::string& f) override { + return target_->DeleteFile(f); + } + Status CreateDir(const std::string& d) override { + return target_->CreateDir(d); + } + Status DeleteDir(const std::string& d) override { + return target_->DeleteDir(d); + } + Status GetFileSize(const std::string& f, uint64_t* s) override { + return target_->GetFileSize(f, s); + } + Status RenameFile(const std::string& s, const std::string& t) override { + return target_->RenameFile(s, t); + } + Status LockFile(const std::string& f, FileLock** l) override { + return target_->LockFile(f, l); + } + Status UnlockFile(FileLock* l) override { return target_->UnlockFile(l); } + void Schedule(void (*f)(void*), void* a) override { + return target_->Schedule(f, a); + } + void StartThread(void (*f)(void*), void* a) override { + return target_->StartThread(f, a); + } + Status GetTestDirectory(std::string* path) override { + return target_->GetTestDirectory(path); + } + Status NewLogger(const std::string& fname, Logger** result) override { + return target_->NewLogger(fname, result); + } + uint64_t NowMicros() override { return target_->NowMicros(); } + void SleepForMicroseconds(int micros) override { + target_->SleepForMicroseconds(micros); + } + + private: + Env* target_; +}; + +} // namespace leveldb + +// Redefine DeleteFile if necessary. +#if defined(_WIN32) && defined(LEVELDB_DELETEFILE_UNDEFINED) +#if defined(UNICODE) +#define DeleteFile DeleteFileW +#else +#define DeleteFile DeleteFileA +#endif // defined(UNICODE) +#endif // defined(_WIN32) && defined(LEVELDB_DELETEFILE_UNDEFINED) + +#endif // STORAGE_LEVELDB_INCLUDE_ENV_H_ diff --git a/Clocker/Frameworks/Firebase/leveldb-library.framework/Headers/export.h b/Clocker/Frameworks/Firebase/leveldb-library.framework/Headers/export.h new file mode 100644 index 0000000..6ba9b18 --- /dev/null +++ b/Clocker/Frameworks/Firebase/leveldb-library.framework/Headers/export.h @@ -0,0 +1,33 @@ +// Copyright (c) 2017 The LevelDB Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. See the AUTHORS file for names of contributors. + +#ifndef STORAGE_LEVELDB_INCLUDE_EXPORT_H_ +#define STORAGE_LEVELDB_INCLUDE_EXPORT_H_ + +#if !defined(LEVELDB_EXPORT) + +#if defined(LEVELDB_SHARED_LIBRARY) +#if defined(_WIN32) + +#if defined(LEVELDB_COMPILE_LIBRARY) +#define LEVELDB_EXPORT __declspec(dllexport) +#else +#define LEVELDB_EXPORT __declspec(dllimport) +#endif // defined(LEVELDB_COMPILE_LIBRARY) + +#else // defined(_WIN32) +#if defined(LEVELDB_COMPILE_LIBRARY) +#define LEVELDB_EXPORT __attribute__((visibility("default"))) +#else +#define LEVELDB_EXPORT +#endif +#endif // defined(_WIN32) + +#else // defined(LEVELDB_SHARED_LIBRARY) +#define LEVELDB_EXPORT +#endif + +#endif // !defined(LEVELDB_EXPORT) + +#endif // STORAGE_LEVELDB_INCLUDE_EXPORT_H_ diff --git a/Clocker/Frameworks/Firebase/leveldb-library.framework/Headers/filter_policy.h b/Clocker/Frameworks/Firebase/leveldb-library.framework/Headers/filter_policy.h new file mode 100644 index 0000000..49c8eda --- /dev/null +++ b/Clocker/Frameworks/Firebase/leveldb-library.framework/Headers/filter_policy.h @@ -0,0 +1,72 @@ +// Copyright (c) 2012 The LevelDB Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. See the AUTHORS file for names of contributors. +// +// A database can be configured with a custom FilterPolicy object. +// This object is responsible for creating a small filter from a set +// of keys. These filters are stored in leveldb and are consulted +// automatically by leveldb to decide whether or not to read some +// information from disk. In many cases, a filter can cut down the +// number of disk seeks form a handful to a single disk seek per +// DB::Get() call. +// +// Most people will want to use the builtin bloom filter support (see +// NewBloomFilterPolicy() below). + +#ifndef STORAGE_LEVELDB_INCLUDE_FILTER_POLICY_H_ +#define STORAGE_LEVELDB_INCLUDE_FILTER_POLICY_H_ + +#include + +#include "leveldb/export.h" + +namespace leveldb { + +class Slice; + +class LEVELDB_EXPORT FilterPolicy { + public: + virtual ~FilterPolicy(); + + // Return the name of this policy. Note that if the filter encoding + // changes in an incompatible way, the name returned by this method + // must be changed. Otherwise, old incompatible filters may be + // passed to methods of this type. + virtual const char* Name() const = 0; + + // keys[0,n-1] contains a list of keys (potentially with duplicates) + // that are ordered according to the user supplied comparator. + // Append a filter that summarizes keys[0,n-1] to *dst. + // + // Warning: do not change the initial contents of *dst. Instead, + // append the newly constructed filter to *dst. + virtual void CreateFilter(const Slice* keys, int n, + std::string* dst) const = 0; + + // "filter" contains the data appended by a preceding call to + // CreateFilter() on this class. This method must return true if + // the key was in the list of keys passed to CreateFilter(). + // This method may return true or false if the key was not on the + // list, but it should aim to return false with a high probability. + virtual bool KeyMayMatch(const Slice& key, const Slice& filter) const = 0; +}; + +// Return a new filter policy that uses a bloom filter with approximately +// the specified number of bits per key. A good value for bits_per_key +// is 10, which yields a filter with ~ 1% false positive rate. +// +// Callers must delete the result after any database that is using the +// result has been closed. +// +// Note: if you are using a custom comparator that ignores some parts +// of the keys being compared, you must not use NewBloomFilterPolicy() +// and must provide your own FilterPolicy that also ignores the +// corresponding parts of the keys. For example, if the comparator +// ignores trailing spaces, it would be incorrect to use a +// FilterPolicy (like NewBloomFilterPolicy) that does not ignore +// trailing spaces in keys. +LEVELDB_EXPORT const FilterPolicy* NewBloomFilterPolicy(int bits_per_key); + +} // namespace leveldb + +#endif // STORAGE_LEVELDB_INCLUDE_FILTER_POLICY_H_ diff --git a/Clocker/Frameworks/Firebase/leveldb-library.framework/Headers/iterator.h b/Clocker/Frameworks/Firebase/leveldb-library.framework/Headers/iterator.h new file mode 100644 index 0000000..bb9a5df --- /dev/null +++ b/Clocker/Frameworks/Firebase/leveldb-library.framework/Headers/iterator.h @@ -0,0 +1,112 @@ +// Copyright (c) 2011 The LevelDB Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. See the AUTHORS file for names of contributors. +// +// An iterator yields a sequence of key/value pairs from a source. +// The following class defines the interface. Multiple implementations +// are provided by this library. In particular, iterators are provided +// to access the contents of a Table or a DB. +// +// Multiple threads can invoke const methods on an Iterator without +// external synchronization, but if any of the threads may call a +// non-const method, all threads accessing the same Iterator must use +// external synchronization. + +#ifndef STORAGE_LEVELDB_INCLUDE_ITERATOR_H_ +#define STORAGE_LEVELDB_INCLUDE_ITERATOR_H_ + +#include "leveldb/export.h" +#include "leveldb/slice.h" +#include "leveldb/status.h" + +namespace leveldb { + +class LEVELDB_EXPORT Iterator { + public: + Iterator(); + + Iterator(const Iterator&) = delete; + Iterator& operator=(const Iterator&) = delete; + + virtual ~Iterator(); + + // An iterator is either positioned at a key/value pair, or + // not valid. This method returns true iff the iterator is valid. + virtual bool Valid() const = 0; + + // Position at the first key in the source. The iterator is Valid() + // after this call iff the source is not empty. + virtual void SeekToFirst() = 0; + + // Position at the last key in the source. The iterator is + // Valid() after this call iff the source is not empty. + virtual void SeekToLast() = 0; + + // Position at the first key in the source that is at or past target. + // The iterator is Valid() after this call iff the source contains + // an entry that comes at or past target. + virtual void Seek(const Slice& target) = 0; + + // Moves to the next entry in the source. After this call, Valid() is + // true iff the iterator was not positioned at the last entry in the source. + // REQUIRES: Valid() + virtual void Next() = 0; + + // Moves to the previous entry in the source. After this call, Valid() is + // true iff the iterator was not positioned at the first entry in source. + // REQUIRES: Valid() + virtual void Prev() = 0; + + // Return the key for the current entry. The underlying storage for + // the returned slice is valid only until the next modification of + // the iterator. + // REQUIRES: Valid() + virtual Slice key() const = 0; + + // Return the value for the current entry. The underlying storage for + // the returned slice is valid only until the next modification of + // the iterator. + // REQUIRES: Valid() + virtual Slice value() const = 0; + + // If an error has occurred, return it. Else return an ok status. + virtual Status status() const = 0; + + // Clients are allowed to register function/arg1/arg2 triples that + // will be invoked when this iterator is destroyed. + // + // Note that unlike all of the preceding methods, this method is + // not abstract and therefore clients should not override it. + using CleanupFunction = void (*)(void* arg1, void* arg2); + void RegisterCleanup(CleanupFunction function, void* arg1, void* arg2); + + private: + // Cleanup functions are stored in a single-linked list. + // The list's head node is inlined in the iterator. + struct CleanupNode { + // True if the node is not used. Only head nodes might be unused. + bool IsEmpty() const { return function == nullptr; } + // Invokes the cleanup function. + void Run() { + assert(function != nullptr); + (*function)(arg1, arg2); + } + + // The head node is used if the function pointer is not null. + CleanupFunction function; + void* arg1; + void* arg2; + CleanupNode* next; + }; + CleanupNode cleanup_head_; +}; + +// Return an empty iterator (yields nothing). +LEVELDB_EXPORT Iterator* NewEmptyIterator(); + +// Return an empty iterator with the specified status. +LEVELDB_EXPORT Iterator* NewErrorIterator(const Status& status); + +} // namespace leveldb + +#endif // STORAGE_LEVELDB_INCLUDE_ITERATOR_H_ diff --git a/Clocker/Frameworks/Firebase/leveldb-library.framework/Headers/leveldb-library-umbrella.h b/Clocker/Frameworks/Firebase/leveldb-library.framework/Headers/leveldb-library-umbrella.h new file mode 100644 index 0000000..0016146 --- /dev/null +++ b/Clocker/Frameworks/Firebase/leveldb-library.framework/Headers/leveldb-library-umbrella.h @@ -0,0 +1,31 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + +#import "c.h" +#import "cache.h" +#import "comparator.h" +#import "db.h" +#import "dumpfile.h" +#import "env.h" +#import "export.h" +#import "filter_policy.h" +#import "iterator.h" +#import "options.h" +#import "slice.h" +#import "status.h" +#import "table.h" +#import "table_builder.h" +#import "write_batch.h" + +FOUNDATION_EXPORT double leveldbVersionNumber; +FOUNDATION_EXPORT const unsigned char leveldbVersionString[]; + diff --git a/Clocker/Frameworks/Firebase/leveldb-library.framework/Headers/options.h b/Clocker/Frameworks/Firebase/leveldb-library.framework/Headers/options.h new file mode 100644 index 0000000..b748772 --- /dev/null +++ b/Clocker/Frameworks/Firebase/leveldb-library.framework/Headers/options.h @@ -0,0 +1,187 @@ +// Copyright (c) 2011 The LevelDB Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. See the AUTHORS file for names of contributors. + +#ifndef STORAGE_LEVELDB_INCLUDE_OPTIONS_H_ +#define STORAGE_LEVELDB_INCLUDE_OPTIONS_H_ + +#include + +#include "leveldb/export.h" + +namespace leveldb { + +class Cache; +class Comparator; +class Env; +class FilterPolicy; +class Logger; +class Snapshot; + +// DB contents are stored in a set of blocks, each of which holds a +// sequence of key,value pairs. Each block may be compressed before +// being stored in a file. The following enum describes which +// compression method (if any) is used to compress a block. +enum CompressionType { + // NOTE: do not change the values of existing entries, as these are + // part of the persistent format on disk. + kNoCompression = 0x0, + kSnappyCompression = 0x1 +}; + +// Options to control the behavior of a database (passed to DB::Open) +struct LEVELDB_EXPORT Options { + // Create an Options object with default values for all fields. + Options(); + + // ------------------- + // Parameters that affect behavior + + // Comparator used to define the order of keys in the table. + // Default: a comparator that uses lexicographic byte-wise ordering + // + // REQUIRES: The client must ensure that the comparator supplied + // here has the same name and orders keys *exactly* the same as the + // comparator provided to previous open calls on the same DB. + const Comparator* comparator; + + // If true, the database will be created if it is missing. + bool create_if_missing = false; + + // If true, an error is raised if the database already exists. + bool error_if_exists = false; + + // If true, the implementation will do aggressive checking of the + // data it is processing and will stop early if it detects any + // errors. This may have unforeseen ramifications: for example, a + // corruption of one DB entry may cause a large number of entries to + // become unreadable or for the entire DB to become unopenable. + bool paranoid_checks = false; + + // Use the specified object to interact with the environment, + // e.g. to read/write files, schedule background work, etc. + // Default: Env::Default() + Env* env; + + // Any internal progress/error information generated by the db will + // be written to info_log if it is non-null, or to a file stored + // in the same directory as the DB contents if info_log is null. + Logger* info_log = nullptr; + + // ------------------- + // Parameters that affect performance + + // Amount of data to build up in memory (backed by an unsorted log + // on disk) before converting to a sorted on-disk file. + // + // Larger values increase performance, especially during bulk loads. + // Up to two write buffers may be held in memory at the same time, + // so you may wish to adjust this parameter to control memory usage. + // Also, a larger write buffer will result in a longer recovery time + // the next time the database is opened. + size_t write_buffer_size = 4 * 1024 * 1024; + + // Number of open files that can be used by the DB. You may need to + // increase this if your database has a large working set (budget + // one open file per 2MB of working set). + int max_open_files = 1000; + + // Control over blocks (user data is stored in a set of blocks, and + // a block is the unit of reading from disk). + + // If non-null, use the specified cache for blocks. + // If null, leveldb will automatically create and use an 8MB internal cache. + Cache* block_cache = nullptr; + + // Approximate size of user data packed per block. Note that the + // block size specified here corresponds to uncompressed data. The + // actual size of the unit read from disk may be smaller if + // compression is enabled. This parameter can be changed dynamically. + size_t block_size = 4 * 1024; + + // Number of keys between restart points for delta encoding of keys. + // This parameter can be changed dynamically. Most clients should + // leave this parameter alone. + int block_restart_interval = 16; + + // Leveldb will write up to this amount of bytes to a file before + // switching to a new one. + // Most clients should leave this parameter alone. However if your + // filesystem is more efficient with larger files, you could + // consider increasing the value. The downside will be longer + // compactions and hence longer latency/performance hiccups. + // Another reason to increase this parameter might be when you are + // initially populating a large database. + size_t max_file_size = 2 * 1024 * 1024; + + // Compress blocks using the specified compression algorithm. This + // parameter can be changed dynamically. + // + // Default: kSnappyCompression, which gives lightweight but fast + // compression. + // + // Typical speeds of kSnappyCompression on an Intel(R) Core(TM)2 2.4GHz: + // ~200-500MB/s compression + // ~400-800MB/s decompression + // Note that these speeds are significantly faster than most + // persistent storage speeds, and therefore it is typically never + // worth switching to kNoCompression. Even if the input data is + // incompressible, the kSnappyCompression implementation will + // efficiently detect that and will switch to uncompressed mode. + CompressionType compression = kSnappyCompression; + + // EXPERIMENTAL: If true, append to existing MANIFEST and log files + // when a database is opened. This can significantly speed up open. + // + // Default: currently false, but may become true later. + bool reuse_logs = false; + + // If non-null, use the specified filter policy to reduce disk reads. + // Many applications will benefit from passing the result of + // NewBloomFilterPolicy() here. + const FilterPolicy* filter_policy = nullptr; +}; + +// Options that control read operations +struct LEVELDB_EXPORT ReadOptions { + ReadOptions() = default; + + // If true, all data read from underlying storage will be + // verified against corresponding checksums. + bool verify_checksums = false; + + // Should the data read for this iteration be cached in memory? + // Callers may wish to set this field to false for bulk scans. + bool fill_cache = true; + + // If "snapshot" is non-null, read as of the supplied snapshot + // (which must belong to the DB that is being read and which must + // not have been released). If "snapshot" is null, use an implicit + // snapshot of the state at the beginning of this read operation. + const Snapshot* snapshot = nullptr; +}; + +// Options that control write operations +struct LEVELDB_EXPORT WriteOptions { + WriteOptions() = default; + + // If true, the write will be flushed from the operating system + // buffer cache (by calling WritableFile::Sync()) before the write + // is considered complete. If this flag is true, writes will be + // slower. + // + // If this flag is false, and the machine crashes, some recent + // writes may be lost. Note that if it is just the process that + // crashes (i.e., the machine does not reboot), no writes will be + // lost even if sync==false. + // + // In other words, a DB write with sync==false has similar + // crash semantics as the "write()" system call. A DB write + // with sync==true has similar crash semantics to a "write()" + // system call followed by "fsync()". + bool sync = false; +}; + +} // namespace leveldb + +#endif // STORAGE_LEVELDB_INCLUDE_OPTIONS_H_ diff --git a/Clocker/Frameworks/Firebase/leveldb-library.framework/Headers/slice.h b/Clocker/Frameworks/Firebase/leveldb-library.framework/Headers/slice.h new file mode 100644 index 0000000..2df417d --- /dev/null +++ b/Clocker/Frameworks/Firebase/leveldb-library.framework/Headers/slice.h @@ -0,0 +1,115 @@ +// Copyright (c) 2011 The LevelDB Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. See the AUTHORS file for names of contributors. +// +// Slice is a simple structure containing a pointer into some external +// storage and a size. The user of a Slice must ensure that the slice +// is not used after the corresponding external storage has been +// deallocated. +// +// Multiple threads can invoke const methods on a Slice without +// external synchronization, but if any of the threads may call a +// non-const method, all threads accessing the same Slice must use +// external synchronization. + +#ifndef STORAGE_LEVELDB_INCLUDE_SLICE_H_ +#define STORAGE_LEVELDB_INCLUDE_SLICE_H_ + +#include +#include +#include + +#include + +#include "leveldb/export.h" + +namespace leveldb { + +class LEVELDB_EXPORT Slice { + public: + // Create an empty slice. + Slice() : data_(""), size_(0) {} + + // Create a slice that refers to d[0,n-1]. + Slice(const char* d, size_t n) : data_(d), size_(n) {} + + // Create a slice that refers to the contents of "s" + Slice(const std::string& s) : data_(s.data()), size_(s.size()) {} + + // Create a slice that refers to s[0,strlen(s)-1] + Slice(const char* s) : data_(s), size_(strlen(s)) {} + + // Intentionally copyable. + Slice(const Slice&) = default; + Slice& operator=(const Slice&) = default; + + // Return a pointer to the beginning of the referenced data + const char* data() const { return data_; } + + // Return the length (in bytes) of the referenced data + size_t size() const { return size_; } + + // Return true iff the length of the referenced data is zero + bool empty() const { return size_ == 0; } + + // Return the ith byte in the referenced data. + // REQUIRES: n < size() + char operator[](size_t n) const { + assert(n < size()); + return data_[n]; + } + + // Change this slice to refer to an empty array + void clear() { + data_ = ""; + size_ = 0; + } + + // Drop the first "n" bytes from this slice. + void remove_prefix(size_t n) { + assert(n <= size()); + data_ += n; + size_ -= n; + } + + // Return a string that contains the copy of the referenced data. + std::string ToString() const { return std::string(data_, size_); } + + // Three-way comparison. Returns value: + // < 0 iff "*this" < "b", + // == 0 iff "*this" == "b", + // > 0 iff "*this" > "b" + int compare(const Slice& b) const; + + // Return true iff "x" is a prefix of "*this" + bool starts_with(const Slice& x) const { + return ((size_ >= x.size_) && (memcmp(data_, x.data_, x.size_) == 0)); + } + + private: + const char* data_; + size_t size_; +}; + +inline bool operator==(const Slice& x, const Slice& y) { + return ((x.size() == y.size()) && + (memcmp(x.data(), y.data(), x.size()) == 0)); +} + +inline bool operator!=(const Slice& x, const Slice& y) { return !(x == y); } + +inline int Slice::compare(const Slice& b) const { + const size_t min_len = (size_ < b.size_) ? size_ : b.size_; + int r = memcmp(data_, b.data_, min_len); + if (r == 0) { + if (size_ < b.size_) + r = -1; + else if (size_ > b.size_) + r = +1; + } + return r; +} + +} // namespace leveldb + +#endif // STORAGE_LEVELDB_INCLUDE_SLICE_H_ diff --git a/Clocker/Frameworks/Firebase/leveldb-library.framework/Headers/status.h b/Clocker/Frameworks/Firebase/leveldb-library.framework/Headers/status.h new file mode 100644 index 0000000..e327314 --- /dev/null +++ b/Clocker/Frameworks/Firebase/leveldb-library.framework/Headers/status.h @@ -0,0 +1,122 @@ +// Copyright (c) 2011 The LevelDB Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. See the AUTHORS file for names of contributors. +// +// A Status encapsulates the result of an operation. It may indicate success, +// or it may indicate an error with an associated error message. +// +// Multiple threads can invoke const methods on a Status without +// external synchronization, but if any of the threads may call a +// non-const method, all threads accessing the same Status must use +// external synchronization. + +#ifndef STORAGE_LEVELDB_INCLUDE_STATUS_H_ +#define STORAGE_LEVELDB_INCLUDE_STATUS_H_ + +#include +#include + +#include "leveldb/export.h" +#include "leveldb/slice.h" + +namespace leveldb { + +class LEVELDB_EXPORT Status { + public: + // Create a success status. + Status() noexcept : state_(nullptr) {} + ~Status() { delete[] state_; } + + Status(const Status& rhs); + Status& operator=(const Status& rhs); + + Status(Status&& rhs) noexcept : state_(rhs.state_) { rhs.state_ = nullptr; } + Status& operator=(Status&& rhs) noexcept; + + // Return a success status. + static Status OK() { return Status(); } + + // Return error status of an appropriate type. + static Status NotFound(const Slice& msg, const Slice& msg2 = Slice()) { + return Status(kNotFound, msg, msg2); + } + static Status Corruption(const Slice& msg, const Slice& msg2 = Slice()) { + return Status(kCorruption, msg, msg2); + } + static Status NotSupported(const Slice& msg, const Slice& msg2 = Slice()) { + return Status(kNotSupported, msg, msg2); + } + static Status InvalidArgument(const Slice& msg, const Slice& msg2 = Slice()) { + return Status(kInvalidArgument, msg, msg2); + } + static Status IOError(const Slice& msg, const Slice& msg2 = Slice()) { + return Status(kIOError, msg, msg2); + } + + // Returns true iff the status indicates success. + bool ok() const { return (state_ == nullptr); } + + // Returns true iff the status indicates a NotFound error. + bool IsNotFound() const { return code() == kNotFound; } + + // Returns true iff the status indicates a Corruption error. + bool IsCorruption() const { return code() == kCorruption; } + + // Returns true iff the status indicates an IOError. + bool IsIOError() const { return code() == kIOError; } + + // Returns true iff the status indicates a NotSupportedError. + bool IsNotSupportedError() const { return code() == kNotSupported; } + + // Returns true iff the status indicates an InvalidArgument. + bool IsInvalidArgument() const { return code() == kInvalidArgument; } + + // Return a string representation of this status suitable for printing. + // Returns the string "OK" for success. + std::string ToString() const; + + private: + enum Code { + kOk = 0, + kNotFound = 1, + kCorruption = 2, + kNotSupported = 3, + kInvalidArgument = 4, + kIOError = 5 + }; + + Code code() const { + return (state_ == nullptr) ? kOk : static_cast(state_[4]); + } + + Status(Code code, const Slice& msg, const Slice& msg2); + static const char* CopyState(const char* s); + + // OK status has a null state_. Otherwise, state_ is a new[] array + // of the following form: + // state_[0..3] == length of message + // state_[4] == code + // state_[5..] == message + const char* state_; +}; + +inline Status::Status(const Status& rhs) { + state_ = (rhs.state_ == nullptr) ? nullptr : CopyState(rhs.state_); +} +inline Status& Status::operator=(const Status& rhs) { + // The following condition catches both aliasing (when this == &rhs), + // and the common case where both rhs and *this are ok. + if (state_ != rhs.state_) { + delete[] state_; + state_ = (rhs.state_ == nullptr) ? nullptr : CopyState(rhs.state_); + } + return *this; +} +inline Status& Status::operator=(Status&& rhs) noexcept { + std::swap(state_, rhs.state_); + return *this; +} + +} // namespace leveldb + +#endif // STORAGE_LEVELDB_INCLUDE_STATUS_H_ diff --git a/Clocker/Frameworks/Firebase/leveldb-library.framework/Headers/table.h b/Clocker/Frameworks/Firebase/leveldb-library.framework/Headers/table.h new file mode 100644 index 0000000..25c6013 --- /dev/null +++ b/Clocker/Frameworks/Firebase/leveldb-library.framework/Headers/table.h @@ -0,0 +1,84 @@ +// Copyright (c) 2011 The LevelDB Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. See the AUTHORS file for names of contributors. + +#ifndef STORAGE_LEVELDB_INCLUDE_TABLE_H_ +#define STORAGE_LEVELDB_INCLUDE_TABLE_H_ + +#include + +#include "leveldb/export.h" +#include "leveldb/iterator.h" + +namespace leveldb { + +class Block; +class BlockHandle; +class Footer; +struct Options; +class RandomAccessFile; +struct ReadOptions; +class TableCache; + +// A Table is a sorted map from strings to strings. Tables are +// immutable and persistent. A Table may be safely accessed from +// multiple threads without external synchronization. +class LEVELDB_EXPORT Table { + public: + // Attempt to open the table that is stored in bytes [0..file_size) + // of "file", and read the metadata entries necessary to allow + // retrieving data from the table. + // + // If successful, returns ok and sets "*table" to the newly opened + // table. The client should delete "*table" when no longer needed. + // If there was an error while initializing the table, sets "*table" + // to nullptr and returns a non-ok status. Does not take ownership of + // "*source", but the client must ensure that "source" remains live + // for the duration of the returned table's lifetime. + // + // *file must remain live while this Table is in use. + static Status Open(const Options& options, RandomAccessFile* file, + uint64_t file_size, Table** table); + + Table(const Table&) = delete; + Table& operator=(const Table&) = delete; + + ~Table(); + + // Returns a new iterator over the table contents. + // The result of NewIterator() is initially invalid (caller must + // call one of the Seek methods on the iterator before using it). + Iterator* NewIterator(const ReadOptions&) const; + + // Given a key, return an approximate byte offset in the file where + // the data for that key begins (or would begin if the key were + // present in the file). The returned value is in terms of file + // bytes, and so includes effects like compression of the underlying data. + // E.g., the approximate offset of the last key in the table will + // be close to the file length. + uint64_t ApproximateOffsetOf(const Slice& key) const; + + private: + friend class TableCache; + struct Rep; + + static Iterator* BlockReader(void*, const ReadOptions&, const Slice&); + + explicit Table(Rep* rep) : rep_(rep) {} + + // Calls (*handle_result)(arg, ...) with the entry found after a call + // to Seek(key). May not make such a call if filter policy says + // that key is not present. + Status InternalGet(const ReadOptions&, const Slice& key, void* arg, + void (*handle_result)(void* arg, const Slice& k, + const Slice& v)); + + void ReadMeta(const Footer& footer); + void ReadFilter(const Slice& filter_handle_value); + + Rep* const rep_; +}; + +} // namespace leveldb + +#endif // STORAGE_LEVELDB_INCLUDE_TABLE_H_ diff --git a/Clocker/Frameworks/Firebase/leveldb-library.framework/Headers/table_builder.h b/Clocker/Frameworks/Firebase/leveldb-library.framework/Headers/table_builder.h new file mode 100644 index 0000000..7d8896b --- /dev/null +++ b/Clocker/Frameworks/Firebase/leveldb-library.framework/Headers/table_builder.h @@ -0,0 +1,93 @@ +// Copyright (c) 2011 The LevelDB Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. See the AUTHORS file for names of contributors. +// +// TableBuilder provides the interface used to build a Table +// (an immutable and sorted map from keys to values). +// +// Multiple threads can invoke const methods on a TableBuilder without +// external synchronization, but if any of the threads may call a +// non-const method, all threads accessing the same TableBuilder must use +// external synchronization. + +#ifndef STORAGE_LEVELDB_INCLUDE_TABLE_BUILDER_H_ +#define STORAGE_LEVELDB_INCLUDE_TABLE_BUILDER_H_ + +#include + +#include "leveldb/export.h" +#include "leveldb/options.h" +#include "leveldb/status.h" + +namespace leveldb { + +class BlockBuilder; +class BlockHandle; +class WritableFile; + +class LEVELDB_EXPORT TableBuilder { + public: + // Create a builder that will store the contents of the table it is + // building in *file. Does not close the file. It is up to the + // caller to close the file after calling Finish(). + TableBuilder(const Options& options, WritableFile* file); + + TableBuilder(const TableBuilder&) = delete; + TableBuilder& operator=(const TableBuilder&) = delete; + + // REQUIRES: Either Finish() or Abandon() has been called. + ~TableBuilder(); + + // Change the options used by this builder. Note: only some of the + // option fields can be changed after construction. If a field is + // not allowed to change dynamically and its value in the structure + // passed to the constructor is different from its value in the + // structure passed to this method, this method will return an error + // without changing any fields. + Status ChangeOptions(const Options& options); + + // Add key,value to the table being constructed. + // REQUIRES: key is after any previously added key according to comparator. + // REQUIRES: Finish(), Abandon() have not been called + void Add(const Slice& key, const Slice& value); + + // Advanced operation: flush any buffered key/value pairs to file. + // Can be used to ensure that two adjacent entries never live in + // the same data block. Most clients should not need to use this method. + // REQUIRES: Finish(), Abandon() have not been called + void Flush(); + + // Return non-ok iff some error has been detected. + Status status() const; + + // Finish building the table. Stops using the file passed to the + // constructor after this function returns. + // REQUIRES: Finish(), Abandon() have not been called + Status Finish(); + + // Indicate that the contents of this builder should be abandoned. Stops + // using the file passed to the constructor after this function returns. + // If the caller is not going to call Finish(), it must call Abandon() + // before destroying this builder. + // REQUIRES: Finish(), Abandon() have not been called + void Abandon(); + + // Number of calls to Add() so far. + uint64_t NumEntries() const; + + // Size of the file generated so far. If invoked after a successful + // Finish() call, returns the size of the final generated file. + uint64_t FileSize() const; + + private: + bool ok() const { return status().ok(); } + void WriteBlock(BlockBuilder* block, BlockHandle* handle); + void WriteRawBlock(const Slice& data, CompressionType, BlockHandle* handle); + + struct Rep; + Rep* rep_; +}; + +} // namespace leveldb + +#endif // STORAGE_LEVELDB_INCLUDE_TABLE_BUILDER_H_ diff --git a/Clocker/Frameworks/Firebase/leveldb-library.framework/Headers/write_batch.h b/Clocker/Frameworks/Firebase/leveldb-library.framework/Headers/write_batch.h new file mode 100644 index 0000000..94d4115 --- /dev/null +++ b/Clocker/Frameworks/Firebase/leveldb-library.framework/Headers/write_batch.h @@ -0,0 +1,83 @@ +// Copyright (c) 2011 The LevelDB Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. See the AUTHORS file for names of contributors. +// +// WriteBatch holds a collection of updates to apply atomically to a DB. +// +// The updates are applied in the order in which they are added +// to the WriteBatch. For example, the value of "key" will be "v3" +// after the following batch is written: +// +// batch.Put("key", "v1"); +// batch.Delete("key"); +// batch.Put("key", "v2"); +// batch.Put("key", "v3"); +// +// Multiple threads can invoke const methods on a WriteBatch without +// external synchronization, but if any of the threads may call a +// non-const method, all threads accessing the same WriteBatch must use +// external synchronization. + +#ifndef STORAGE_LEVELDB_INCLUDE_WRITE_BATCH_H_ +#define STORAGE_LEVELDB_INCLUDE_WRITE_BATCH_H_ + +#include + +#include "leveldb/export.h" +#include "leveldb/status.h" + +namespace leveldb { + +class Slice; + +class LEVELDB_EXPORT WriteBatch { + public: + class LEVELDB_EXPORT Handler { + public: + virtual ~Handler(); + virtual void Put(const Slice& key, const Slice& value) = 0; + virtual void Delete(const Slice& key) = 0; + }; + + WriteBatch(); + + // Intentionally copyable. + WriteBatch(const WriteBatch&) = default; + WriteBatch& operator=(const WriteBatch&) = default; + + ~WriteBatch(); + + // Store the mapping "key->value" in the database. + void Put(const Slice& key, const Slice& value); + + // If the database contains a mapping for "key", erase it. Else do nothing. + void Delete(const Slice& key); + + // Clear all updates buffered in this batch. + void Clear(); + + // The size of the database changes caused by this batch. + // + // This number is tied to implementation details, and may change across + // releases. It is intended for LevelDB usage metrics. + size_t ApproximateSize() const; + + // Copies the operations in "source" to this batch. + // + // This runs in O(source size) time. However, the constant factor is better + // than calling Iterate() over the source batch with a Handler that replicates + // the operations into this batch. + void Append(const WriteBatch& source); + + // Support for iterating over the contents of a batch. + Status Iterate(Handler* handler) const; + + private: + friend class WriteBatchInternal; + + std::string rep_; // See comment in write_batch.cc for the format of rep_ +}; + +} // namespace leveldb + +#endif // STORAGE_LEVELDB_INCLUDE_WRITE_BATCH_H_ diff --git a/Clocker/Frameworks/Firebase/leveldb-library.framework/Info.plist b/Clocker/Frameworks/Firebase/leveldb-library.framework/Info.plist new file mode 100644 index 0000000..07187fc --- /dev/null +++ b/Clocker/Frameworks/Firebase/leveldb-library.framework/Info.plist @@ -0,0 +1,20 @@ + + + + + CFBundleExecutable + leveldb-library + CFBundleIdentifier + com.firebase.Firebase-leveldb-library + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + leveldb-library + CFBundlePackageType + FMWK + CFBundleVersion + 1.22.1 + DTSDKName + iphonesimulator11.2 + + diff --git a/Clocker/Frameworks/Firebase/leveldb-library.framework/Modules/module.modulemap b/Clocker/Frameworks/Firebase/leveldb-library.framework/Modules/module.modulemap new file mode 100644 index 0000000..b7d7e9c --- /dev/null +++ b/Clocker/Frameworks/Firebase/leveldb-library.framework/Modules/module.modulemap @@ -0,0 +1,6 @@ +framework module leveldb-library { +umbrella header "leveldb-library-umbrella.h" +export * +module * { export * } + link "c++" +} diff --git a/Clocker/Frameworks/Firebase/leveldb-library.framework/leveldb-library b/Clocker/Frameworks/Firebase/leveldb-library.framework/leveldb-library new file mode 100644 index 0000000..d92c4fc Binary files /dev/null and b/Clocker/Frameworks/Firebase/leveldb-library.framework/leveldb-library differ diff --git a/Clocker/Frameworks/Firebase/nanopb.framework/Headers/nanopb-umbrella.h b/Clocker/Frameworks/Firebase/nanopb.framework/Headers/nanopb-umbrella.h new file mode 100644 index 0000000..6d7e31e --- /dev/null +++ b/Clocker/Frameworks/Firebase/nanopb.framework/Headers/nanopb-umbrella.h @@ -0,0 +1,26 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + +#import "pb.h" +#import "pb_common.h" +#import "pb_decode.h" +#import "pb_encode.h" +#import "pb.h" +#import "pb_decode.h" +#import "pb_common.h" +#import "pb.h" +#import "pb_encode.h" +#import "pb_common.h" + +FOUNDATION_EXPORT double nanopbVersionNumber; +FOUNDATION_EXPORT const unsigned char nanopbVersionString[]; + diff --git a/Clocker/Frameworks/Firebase/nanopb.framework/Headers/pb.h b/Clocker/Frameworks/Firebase/nanopb.framework/Headers/pb.h new file mode 100644 index 0000000..236e894 --- /dev/null +++ b/Clocker/Frameworks/Firebase/nanopb.framework/Headers/pb.h @@ -0,0 +1,599 @@ +/* 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 */ + + +/* Don't encode scalar arrays as packed. This is only to be used when + * the decoder on the receiving side cannot process packed scalar arrays. + * Such example is older protobuf.js. */ +/* #define PB_ENCODE_ARRAYS_UNPACKED 1 */ + +/****************************************************************** + * 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.9.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_BOOL 0x00 /* bool */ +#define PB_LTYPE_VARINT 0x01 /* int32, int64, enum, bool */ +#define PB_LTYPE_UVARINT 0x02 /* uint32, uint64 */ +#define PB_LTYPE_SVARINT 0x03 /* sint32, sint64 */ +#define PB_LTYPE_FIXED32 0x04 /* fixed32, sfixed32, float */ +#define PB_LTYPE_FIXED64 0x05 /* fixed64, sfixed64, double */ + +/* Marker for last packable field type. */ +#define PB_LTYPE_LAST_PACKABLE 0x05 + +/* Byte array with pre-allocated buffer. + * data_size is the length of the allocated PB_BYTES_ARRAY structure. */ +#define PB_LTYPE_BYTES 0x06 + +/* String with pre-allocated buffer. + * data_size is the maximum length. */ +#define PB_LTYPE_STRING 0x07 + +/* Submessage + * submsg_fields is pointer to field descriptions */ +#define PB_LTYPE_SUBMESSAGE 0x08 + +/* Extension pseudo-field + * The field contains a pointer to pb_extension_t */ +#define PB_LTYPE_EXTENSION 0x09 + +/* 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 0x0A + +/* Number of declared LTYPES */ +#define PB_LTYPES_COUNT 0x0B +#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. + */ +#ifndef PB_WITHOUT_64BIT +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) +#endif + +/* 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_BOOL +#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 repeated static fixed count fields.*/ +#define PB_REPEATED_FIXED_COUNT(tag, type, placement, message, field, prevfield, ptr) \ + {tag, PB_ATYPE_STATIC | PB_HTYPE_REPEATED | PB_LTYPE_MAP_ ## type, \ + PB_DATAOFFSET_ ## placement(message, field, prevfield), \ + 0, \ + pb_membersize(message, field[0]), \ + pb_arraysize(message, field), 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/Clocker/Frameworks/Firebase/nanopb.framework/Headers/pb_common.h b/Clocker/Frameworks/Firebase/nanopb.framework/Headers/pb_common.h new file mode 100644 index 0000000..60b3d37 --- /dev/null +++ b/Clocker/Frameworks/Firebase/nanopb.framework/Headers/pb_common.h @@ -0,0 +1,42 @@ +/* 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/Clocker/Frameworks/Firebase/nanopb.framework/Headers/pb_decode.h b/Clocker/Frameworks/Firebase/nanopb.framework/Headers/pb_decode.h new file mode 100644 index 0000000..3577c20 --- /dev/null +++ b/Clocker/Frameworks/Firebase/nanopb.framework/Headers/pb_decode.h @@ -0,0 +1,178 @@ +/* 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); + +/* Same as pb_decode_delimited, except that it does not initialize the destination structure. + * See pb_decode_noinit + */ +bool pb_decode_delimited_noinit(pb_istream_t *stream, const pb_field_t fields[], void *dest_struct); + +/* Same as pb_decode, except allows the message to be terminated with a null byte. + * NOTE: Until nanopb-0.4.0, pb_decode() also allows null-termination. This behaviour + * is not supported in most other protobuf implementations, so pb_decode_delimited() + * is a better option for compatibility. + */ +bool pb_decode_nullterminated(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 enum, int32, + * int64, uint32 and uint64 field types. */ +#ifndef PB_WITHOUT_64BIT +bool pb_decode_varint(pb_istream_t *stream, uint64_t *dest); +#else +#define pb_decode_varint pb_decode_varint32 +#endif + +/* Decode an integer in the varint format. This works for enum, int32, + * and uint32 field types. */ +bool pb_decode_varint32(pb_istream_t *stream, uint32_t *dest); + +/* Decode a bool value in varint format. */ +bool pb_decode_bool(pb_istream_t *stream, bool *dest); + +/* Decode an integer in the zig-zagged svarint format. This works for sint32 + * and sint64. */ +#ifndef PB_WITHOUT_64BIT +bool pb_decode_svarint(pb_istream_t *stream, int64_t *dest); +#else +bool pb_decode_svarint(pb_istream_t *stream, int32_t *dest); +#endif + +/* 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); + +#ifndef PB_WITHOUT_64BIT +/* 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); +#endif + +/* 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/Clocker/Frameworks/Firebase/nanopb.framework/Headers/pb_encode.h b/Clocker/Frameworks/Firebase/nanopb.framework/Headers/pb_encode.h new file mode 100644 index 0000000..b1d822f --- /dev/null +++ b/Clocker/Frameworks/Firebase/nanopb.framework/Headers/pb_encode.h @@ -0,0 +1,170 @@ +/* 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); + +/* Same as pb_encode, but appends a null byte to the message for termination. + * NOTE: This behaviour is not supported in most other protobuf implementations, so pb_encode_delimited() + * is a better option for compatibility. + */ +bool pb_encode_nullterminated(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 specifying 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. */ +#ifndef PB_WITHOUT_64BIT +bool pb_encode_varint(pb_ostream_t *stream, uint64_t value); +#else +bool pb_encode_varint(pb_ostream_t *stream, uint32_t value); +#endif + +/* Encode an integer in the zig-zagged svarint format. + * This works for sint32 and sint64. */ +#ifndef PB_WITHOUT_64BIT +bool pb_encode_svarint(pb_ostream_t *stream, int64_t value); +#else +bool pb_encode_svarint(pb_ostream_t *stream, int32_t value); +#endif + +/* 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); + +#ifndef PB_WITHOUT_64BIT +/* 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); +#endif + +/* 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/Clocker/Frameworks/Firebase/nanopb.framework/Info.plist b/Clocker/Frameworks/Firebase/nanopb.framework/Info.plist new file mode 100644 index 0000000..06efca9 --- /dev/null +++ b/Clocker/Frameworks/Firebase/nanopb.framework/Info.plist @@ -0,0 +1,20 @@ + + + + + CFBundleExecutable + nanopb + CFBundleIdentifier + com.firebase.Firebase-nanopb + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + nanopb + CFBundlePackageType + FMWK + CFBundleVersion + 2.30908.0 + DTSDKName + iphonesimulator11.2 + + diff --git a/Clocker/Frameworks/Firebase/nanopb.framework/Modules/module.modulemap b/Clocker/Frameworks/Firebase/nanopb.framework/Modules/module.modulemap new file mode 100644 index 0000000..611ce4c --- /dev/null +++ b/Clocker/Frameworks/Firebase/nanopb.framework/Modules/module.modulemap @@ -0,0 +1,5 @@ +framework module nanopb { +umbrella header "nanopb-umbrella.h" +export * +module * { export * } +} diff --git a/Clocker/Frameworks/Firebase/nanopb.framework/nanopb b/Clocker/Frameworks/Firebase/nanopb.framework/nanopb new file mode 100644 index 0000000..a2f7638 Binary files /dev/null and b/Clocker/Frameworks/Firebase/nanopb.framework/nanopb differ diff --git a/Clocker/Frameworks/SystemConfiguration.framework/Headers b/Clocker/Frameworks/SystemConfiguration.framework/Headers deleted file mode 120000 index a177d2a..0000000 --- a/Clocker/Frameworks/SystemConfiguration.framework/Headers +++ /dev/null @@ -1 +0,0 @@ -Versions/Current/Headers \ No newline at end of file diff --git a/Clocker/Frameworks/SystemConfiguration.framework/Modules b/Clocker/Frameworks/SystemConfiguration.framework/Modules deleted file mode 120000 index 5736f31..0000000 --- a/Clocker/Frameworks/SystemConfiguration.framework/Modules +++ /dev/null @@ -1 +0,0 @@ -Versions/Current/Modules \ No newline at end of file diff --git a/Clocker/Frameworks/SystemConfiguration.framework/SystemConfiguration.tbd b/Clocker/Frameworks/SystemConfiguration.framework/SystemConfiguration.tbd deleted file mode 120000 index a901c35..0000000 --- a/Clocker/Frameworks/SystemConfiguration.framework/SystemConfiguration.tbd +++ /dev/null @@ -1 +0,0 @@ -Versions/Current/SystemConfiguration.tbd \ No newline at end of file diff --git a/Clocker/Frameworks/SystemConfiguration.framework/Versions/A/Headers/CaptiveNetwork.h b/Clocker/Frameworks/SystemConfiguration.framework/Versions/A/Headers/CaptiveNetwork.h deleted file mode 100644 index 4ab9655..0000000 --- a/Clocker/Frameworks/SystemConfiguration.framework/Versions/A/Headers/CaptiveNetwork.h +++ /dev/null @@ -1,194 +0,0 @@ -/* - * Copyright (c) 2009-2015 Apple Inc. All rights reserved. - * - * @APPLE_LICENSE_HEADER_START@ - * - * This file contains Original Code and/or Modifications of Original Code - * as defined in and that are subject to the Apple Public Source License - * Version 2.0 (the 'License'). You may not use this file except in - * compliance with the License. Please obtain a copy of the License at - * http://www.opensource.apple.com/apsl/ and read it before using this - * file. - * - * The Original Code and all software distributed under the License are - * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER - * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, - * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. - * Please see the License for the specific language governing rights and - * limitations under the License. - * - * @APPLE_LICENSE_HEADER_END@ - */ - -#ifndef _CAPTIVENETWORK_H -#define _CAPTIVENETWORK_H - -#include -#include -#include - -CF_IMPLICIT_BRIDGING_ENABLED -CF_ASSUME_NONNULL_BEGIN - -/*! - @header CaptiveNetwork - @discussion The CaptiveNetwork API allows applications to interact - with Captive Network Support. Captive Network Support is a - system component responsible for detecting and help users - navigate networks that require interaction before providing - internet access. The most common Captive Networks are WiFi - Hotspots in places like airports, restaurants, and hotels. - Captive Network Support will attempt to authenticate if - possible or drop a user in to a web sheet if authentication - is not possible. In the web sheet the user has an opportunity - to authenticate or disassociate from the network. - - The following APIs are designed for third party applications - that may handle authentication on these networks on behalf of - the user. - - These APIs are treated as advisory only. - There is no guarantee or contract that the operating system - will take the intended action. - - @note IMPORTANT: This API is deprecated starting in iOS 9. - For captive network applications, this has been completely - replaced by . - For other applications, there is no direct replacement. - Please file a bug describing your use of this API so that - we can consider your requirements as this situation evolves. - */ - -#define CN_DEPRECATION_NOTICE \ - "For captive network applications, this has been completely " \ - "replaced by . " \ - "For other applications, there is no direct replacement. " \ - "Please file a bug describing your use of this API to that " \ - "we can consider your requirements as this situation evolves." - -__BEGIN_DECLS - -/*! - @function CNSetSupportedSSIDs - @discussion Provides Captive Network Support with an updated list of - SSIDs that this application will perform authentication on. - - Captive Network Support suppresses showing the Web Sheet - for a captive Wi-Fi network if that network's SSID is in the - specified list. - - On iOS, the registrations persist until the application is - removed from the device. - - On MacOSX, the registrations persist as long as the application - is running. - - @param ssidArray A CFArray of CFStrings of the SSIDs. - @result Returns TRUE if the operation succeeded, FALSE otherwise. - */ -Boolean -CNSetSupportedSSIDs (CFArrayRef ssidArray) - __OSX_AVAILABLE_BUT_DEPRECATED_MSG(__MAC_10_8, __MAC_NA, - __IPHONE_4_0, __IPHONE_9_0, - "Replaced by "); - -/*! - @function CNMarkPortalOnline - @discussion Tells Captive Network Support that your application has - authenticated the device to the network. Captive Network Support - will notify the rest of the system that WiFi is now a viable - interface. - @param interfaceName Name of the interface that is now online. - @result Returns TRUE if the operation succeeded, FALSE otherwise. - */ -Boolean -CNMarkPortalOnline (CFStringRef interfaceName) - __OSX_AVAILABLE_BUT_DEPRECATED_MSG(__MAC_10_8, __MAC_NA, - __IPHONE_4_0, __IPHONE_9_0, - "Replaced by "); - -/*! - @function CNMarkPortalOffline - @discussion Tells Captive Network Support that the device is not - authenticated on the given network interface. - @param interfaceName Name of the interface that is still captive. - @result Returns TRUE if the operation succeeded, FALSE otherwise. - */ -Boolean -CNMarkPortalOffline (CFStringRef interfaceName) - __OSX_AVAILABLE_BUT_DEPRECATED_MSG(__MAC_10_8, __MAC_NA, - __IPHONE_4_0, __IPHONE_9_0, - "Replaced by "); - -/*! - @function CNCopySupportedInterfaces - @discussion copies a list of all interfaces CaptiveNetworkSupport is monitoring. - @result An array of CFStringRef- BSD interface names. - Returns NULL if an error was encountered. - You MUST release the returned value. - */ -CFArrayRef __nullable -CNCopySupportedInterfaces (void) - __OSX_AVAILABLE_BUT_DEPRECATED_MSG(__MAC_10_8, __MAC_NA, - __IPHONE_4_1, __IPHONE_9_0, - CN_DEPRECATION_NOTICE); - -/*! - @constant kCNNetworkInfoKeySSIDData - @discussion NetworkInfo Dictionary key for SSID in CFData format - */ -extern const CFStringRef kCNNetworkInfoKeySSIDData - __OSX_AVAILABLE_BUT_DEPRECATED_MSG(__MAC_NA, __MAC_NA, - __IPHONE_4_1, __IPHONE_9_0, - CN_DEPRECATION_NOTICE); - -/*! - @constant kCNNetworkInfoKeySSID - @discussion NetworkInfo Dictionary key for SSID in CFString format - */ -extern const CFStringRef kCNNetworkInfoKeySSID - __OSX_AVAILABLE_BUT_DEPRECATED_MSG(__MAC_NA, __MAC_NA, - __IPHONE_4_1, __IPHONE_9_0, - CN_DEPRECATION_NOTICE); - -/*! - @constant kCNNetworkInfoKeyBSSID - @discussion NetworkInfo Dictionary key for BSSID in CFString format - */ -extern const CFStringRef kCNNetworkInfoKeyBSSID - __OSX_AVAILABLE_BUT_DEPRECATED_MSG(__MAC_NA, __MAC_NA, - __IPHONE_4_1, __IPHONE_9_0, - CN_DEPRECATION_NOTICE); - -/*! - @function CNCopyCurrentNetworkInfo - @discussion Returns the Network Info for the specified interface. - For example, Network Info dictionary will contain the following - keys, and values: -
-	@textblock
-	Keys                      : Values
-	=======================================
-	kCNNetworkInfoKeySSIDData : CFDataRef
-	kCNNetworkInfoKeySSID     : CFStringRef
-	kCNNetworkInfoKeyBSSID    : CFStringRef
-	@/textblock
-	
- @param interfaceName Name of the interface you are interested in - @result Network Info dictionary associated with the interface. - Returns NULL if an error was encountered. - You MUST release the returned value. - */ -CFDictionaryRef __nullable -CNCopyCurrentNetworkInfo (CFStringRef interfaceName) - __OSX_AVAILABLE_BUT_DEPRECATED_MSG(__MAC_NA, __MAC_NA, - __IPHONE_4_1, __IPHONE_9_0, - CN_DEPRECATION_NOTICE); - -__END_DECLS - -CF_ASSUME_NONNULL_END -CF_IMPLICIT_BRIDGING_DISABLED - -#endif /* _CAPTIVENETWORK_H */ diff --git a/Clocker/Frameworks/SystemConfiguration.framework/Versions/A/Headers/DHCPClientPreferences.h b/Clocker/Frameworks/SystemConfiguration.framework/Versions/A/Headers/DHCPClientPreferences.h deleted file mode 100644 index 69a4ae9..0000000 --- a/Clocker/Frameworks/SystemConfiguration.framework/Versions/A/Headers/DHCPClientPreferences.h +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright (c) 2001, 2004, 2005, 2008, 2015 Apple Inc. All rights reserved. - * - * @APPLE_LICENSE_HEADER_START@ - * - * This file contains Original Code and/or Modifications of Original Code - * as defined in and that are subject to the Apple Public Source License - * Version 2.0 (the 'License'). You may not use this file except in - * compliance with the License. Please obtain a copy of the License at - * http://www.opensource.apple.com/apsl/ and read it before using this - * file. - * - * The Original Code and all software distributed under the License are - * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER - * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, - * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. - * Please see the License for the specific language governing rights and - * limitations under the License. - * - * @APPLE_LICENSE_HEADER_END@ - */ - -#ifndef _DHCPCLIENTPREFERENCES_H -#define _DHCPCLIENTPREFERENCES_H - -#include -#include -#include - -CF_IMPLICIT_BRIDGING_ENABLED -CF_ASSUME_NONNULL_BEGIN - -/*! - @header DHCPClientPreferences - @discussion The DHCPClientPreferences API allows applications to get and update DHCP preferences. - DHCP preferences are in the form of DHCP option codes, which are defined in RFC 2132. - */ - -__BEGIN_DECLS - -/*! - @function DHCPClientPreferencesSetApplicationOptions - @discussion Updates the DHCP client preferences to include the - given list of options for the given application ID. - @param applicationID The application's preference ID, for example: - "com.apple.SystemPreferences". - @param options An array of 8-bit values containing the - DHCP option codes (see RFC 2132) for this application ID. - A NULL value will clear the list of options for this - application ID. - @param count The number of elements in the options parameter. - @result Returns TRUE if the operation succeeded, FALSE otherwise. - */ - -Boolean -DHCPClientPreferencesSetApplicationOptions (CFStringRef applicationID, - UInt8 * __nullable options, - CFIndex count) __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); - -/*! - @function DHCPClientPreferencesCopyApplicationOptions - @discussion Copies the requested DHCP options for the - given application ID. - @param applicationID The application's preference ID, for example - "com.apple.SystemPreferences". - @param count The number of elements in the returned array. - @result Returns the list of options for the given application ID, or - NULL if no options are defined or an error occurred. - - When you are finished, use free() to release a non-NULL return value. - */ - -UInt8 * __nullable -DHCPClientPreferencesCopyApplicationOptions (CFStringRef applicationID, - CFIndex *count) __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); - -__END_DECLS - -CF_ASSUME_NONNULL_END -CF_IMPLICIT_BRIDGING_DISABLED - -#endif /* _DHCPCLIENTPREFERENCES_H */ diff --git a/Clocker/Frameworks/SystemConfiguration.framework/Versions/A/Headers/SCDynamicStore.h b/Clocker/Frameworks/SystemConfiguration.framework/Versions/A/Headers/SCDynamicStore.h deleted file mode 100644 index 5cf0de4..0000000 --- a/Clocker/Frameworks/SystemConfiguration.framework/Versions/A/Headers/SCDynamicStore.h +++ /dev/null @@ -1,439 +0,0 @@ -/* - * Copyright (c) 2000, 2001, 2003-2005, 2008-2010, 2015 Apple Inc. All rights reserved. - * - * @APPLE_LICENSE_HEADER_START@ - * - * This file contains Original Code and/or Modifications of Original Code - * as defined in and that are subject to the Apple Public Source License - * Version 2.0 (the 'License'). You may not use this file except in - * compliance with the License. Please obtain a copy of the License at - * http://www.opensource.apple.com/apsl/ and read it before using this - * file. - * - * The Original Code and all software distributed under the License are - * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER - * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, - * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. - * Please see the License for the specific language governing rights and - * limitations under the License. - * - * @APPLE_LICENSE_HEADER_END@ - */ - -#ifndef _SCDYNAMICSTORE_H -#define _SCDYNAMICSTORE_H - -#include -#include -#include -#include -#include - -CF_IMPLICIT_BRIDGING_ENABLED -CF_ASSUME_NONNULL_BEGIN - -/*! - @header SCDynamicStore - @discussion The SCDynamicStore API provides access to the key-value - pairs in the dynamic store of a running system. The dynamic - store contains, among other items, a copy of the configuration - settings for the currently active set (which is sometimes - refered to as the location) and information about the current - network state. - - The functions in the SCDynamicStore API allow you to find - key-value pairs, add or remove key-value pairs, add or change - values, and request notifications. - - To use the functions of the SCDynamicStore API, you must first - establish a dynamic store session using the SCDynamicStoreCreate - function. When you are finished with the session, use CFRelease - to close it. - */ - - -/*! - @typedef SCDynamicStoreRef - @discussion This is the handle to an open a dynamic store session - with the system configuration daemon. - */ -typedef const struct CF_BRIDGED_TYPE(id) __SCDynamicStore * SCDynamicStoreRef; - -/*! - @typedef SCDynamicStoreContext - Structure containing user-specified data and callbacks for an - SCDynamicStore session. - @field version The version number of the structure type being passed - in as a parameter to the SCDynamicStore creation function. - This structure is version 0. - @field info A C pointer to a user-specified block of data. - @field retain The callback used to add a retain for the info field. - If this parameter is not a pointer to a function of the correct - prototype, the behavior is undefined. The value may be NULL. - @field release The calllback used to remove a retain previously added - for the info field. If this parameter is not a pointer to a - function of the correct prototype, the behavior is undefined. - The value may be NULL. - @field copyDescription The callback used to provide a description of - the info field. - */ -typedef struct { - CFIndex version; - void * __nullable info; - const void * __nonnull (* __nullable retain)(const void *info); - void (* __nullable release)(const void *info); - CFStringRef __nonnull (* __nullable copyDescription)(const void *info); -} SCDynamicStoreContext; - -/*! - @typedef SCDynamicStoreCallBack - @discussion Type of callback function used when notification of - changes to the dynamic store is delivered. - @param store The dynamic store session. - @param changedKeys The list of changed keys. - - The list includes any specific SCDynamicStore keys that - changed (add, update, remove, notify) since the last call - to SCDynamicStoreSetNotificationKeys or since the last - notification callback. The list also includes any specific - keys matching one of the pattern string(s) that changed. - - An empty list indicates that the SCDynamicStore server - restarted and that any assumptions based on prior content - of the SCDynamicStore should be disgarded. - - @param info A C pointer to a user-specified block of data. - */ -typedef void (*SCDynamicStoreCallBack) ( - SCDynamicStoreRef store, - CFArrayRef changedKeys, - void * __nullable info - ); - - -__BEGIN_DECLS - -/*! - @function SCDynamicStoreGetTypeID - @discussion Returns the type identifier of all SCDynamicStore instances. - */ -CFTypeID -SCDynamicStoreGetTypeID (void) __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); - - -/*! - @function SCDynamicStoreCreate - @discussion Creates a new session used to interact with the dynamic - store maintained by the System Configuration server. - @param allocator The CFAllocator that should be used to allocate - memory for the local dynamic store object. - This parameter may be NULL in which case the current - default CFAllocator is used. If this reference is not - a valid CFAllocator, the behavior is undefined. - @param name A string that describes the name of the calling - process or plug-in of the caller. - @param callout The function to be called when a watched value - in the dynamic store is changed. - A NULL value can be specified if no callouts are - desired. - @param context The SCDynamicStoreContext associated with the callout. - @result Returns a reference to the new SCDynamicStore session. - You must release the returned value. - */ -SCDynamicStoreRef __nullable -SCDynamicStoreCreate ( - CFAllocatorRef __nullable allocator, - CFStringRef name, - SCDynamicStoreCallBack __nullable callout, - SCDynamicStoreContext * __nullable context - ) __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); - -/*! - @function SCDynamicStoreCreateWithOptions - @discussion Creates a new session used to interact with the dynamic - store maintained by the System Configuration server. - @param allocator The CFAllocator that should be used to allocate - memory for the local dynamic store object. - This parameter may be NULL in which case the current - default CFAllocator is used. If this reference is not - a valid CFAllocator, the behavior is undefined. - @param name A string that describes the name of the calling - process or plug-in of the caller. - @param storeOptions A CFDictionary containing options for the - dynamic store session (such as whether all keys added or set - into the dynamic store should be per-session keys). - - Currently available options include: - - - - - - - - -
key - value -
kSCDynamicStoreUseSessionKeysCFBooleanRef
- - A NULL value can be specified if no options are desired. - @param callout The function to be called when a watched value - in the dynamic store is changed. - A NULL value can be specified if no callouts are - desired. - @param context The SCDynamicStoreContext associated with the callout. - @result Returns a reference to the new SCDynamicStore session. - You must release the returned value. - */ -SCDynamicStoreRef __nullable -SCDynamicStoreCreateWithOptions ( - CFAllocatorRef __nullable allocator, - CFStringRef name, - CFDictionaryRef __nullable storeOptions, - SCDynamicStoreCallBack __nullable callout, - SCDynamicStoreContext * __nullable context - ) __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -extern const CFStringRef kSCDynamicStoreUseSessionKeys __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); /* CFBoolean */ - -/*! - @function SCDynamicStoreCreateRunLoopSource - @discussion Creates a CFRunLoopSource object that can be added to the - application's run loop. All dynamic store notifications are - delivered using this run loop source. - @param allocator The CFAllocator that should be used to allocate - memory for this run loop source. - This parameter may be NULL in which case the current - default CFAllocator is used. If this reference is not - a valid CFAllocator, the behavior is undefined. - @param store A reference to the dynamic store session. - @param order On platforms which support it, for source versions - which support it, this parameter determines the order in - which the sources which are ready to be processed are - handled. A lower order number causes processing before - higher order number sources. It is inadvisable to depend - on the order number for any architectural or design aspect - of code. In the absence of any reason to do otherwise, - zero should be used. - @result A reference to the new CFRunLoopSource. - You must release the returned value. - - */ -CFRunLoopSourceRef __nullable -SCDynamicStoreCreateRunLoopSource ( - CFAllocatorRef __nullable allocator, - SCDynamicStoreRef store, - CFIndex order - ) __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); - -/*! - @function SCDynamicStoreSetDispatchQueue - @discussion Initiates notifications for the Notification - Keys in store to the callback contained in store. - @param store A reference to the dynamic store session. - @param queue The dispatch queue to run the callback function on. - Pass NULL to disable notifications, and release the queue. - @result Returns TRUE on success, FALSE on failure. - - */ -Boolean -SCDynamicStoreSetDispatchQueue ( - SCDynamicStoreRef store, - dispatch_queue_t __nullable queue - ) __OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA); - -/*! - @function SCDynamicStoreCopyKeyList - @discussion Returns an array of CFString keys representing the - current dynamic store entries that match a specified pattern. - @param store The dynamic store session. - @param pattern A regex(3) regular expression pattern - used to match the dynamic store keys. - @result Returns the list of matching keys; NULL if an error was - encountered. - You must release the returned value. - */ -CFArrayRef __nullable -SCDynamicStoreCopyKeyList ( - SCDynamicStoreRef __nullable store, - CFStringRef pattern - ) __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); - -/*! - @function SCDynamicStoreAddValue - @discussion Adds the key-value pair to the dynamic store if no - such key already exists. - @param store The dynamic store session. - @param key The key of the value to add to the dynamic store. - @param value The value to add to the dynamic store. - @result Returns TRUE if the key was added; FALSE if the key was already - present in the dynamic store or if an error was encountered. - */ -Boolean -SCDynamicStoreAddValue ( - SCDynamicStoreRef __nullable store, - CFStringRef key, - CFPropertyListRef value - ) __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); - -/*! - @function SCDynamicStoreAddTemporaryValue - @discussion Temporarily adds the key-value pair to the dynamic store - if no such key already exists. Unless the key is updated by another - session, the key-value pair will be removed automatically when the - session is closed. - @param store The dynamic store session. - @param key The key of the value to add to the dynamic store. - @param value The value to add to the dynamic store. - @result Returns TRUE if the key was added; FALSE if the key was already - present in the dynamic store or if an error was encountered. - */ -Boolean -SCDynamicStoreAddTemporaryValue ( - SCDynamicStoreRef store, - CFStringRef key, - CFPropertyListRef value - ) __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); - -/*! - @function SCDynamicStoreCopyValue - @discussion Gets the value of the specified key from the dynamic store. - @param store The dynamic store session. - @param key The key associated with the value you want to get. - @result Returns the value from the dynamic store that is associated with the given - key; NULL if no value was located or an error was encountered. - You must release the returned value. - */ -CFPropertyListRef __nullable -SCDynamicStoreCopyValue ( - SCDynamicStoreRef __nullable store, - CFStringRef key - ) __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); - -/*! - @function SCDynamicStoreCopyMultiple - @discussion Gets the values of multiple keys in the dynamic store. - @param store The dynamic store session. - @param keys The keys associated with the values you want to get; NULL if no specific - keys are requested. - @param patterns An array of regex(3) pattern strings used to match the keys; NULL - if no key patterns are requested. - @result Returns a dictionary containing the key-value pairs of specific keys and the - key-value pairs of keys that matched the specified patterns; - NULL if an error was encountered. - You must release the returned value. - */ -CFDictionaryRef __nullable -SCDynamicStoreCopyMultiple ( - SCDynamicStoreRef __nullable store, - CFArrayRef __nullable keys, - CFArrayRef __nullable patterns - ) __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); - -/*! - @function SCDynamicStoreSetValue - @discussion Adds or replaces a value in the dynamic store for - the specified key. - @param store The dynamic store session. - @param key The key you want to set. - @param value The value to add to or replace in the dynamic store. - @result Returns TRUE if the key was updated; FALSE if an error was encountered. - */ -Boolean -SCDynamicStoreSetValue ( - SCDynamicStoreRef __nullable store, - CFStringRef key, - CFPropertyListRef value - ) __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); - -/*! - @function SCDynamicStoreSetMultiple - @discussion Updates multiple values in the dynamic store. - @param store The dynamic store session. - @param keysToSet A dictionary of key-value pairs you want to set into the dynamic store. - @param keysToRemove An array of keys you want to remove from the dynamic store. - @param keysToNotify An array of keys to flag as changed (without changing their values). - @result Returns TRUE if the dynamic store updates were successful; FALSE if an error was encountered. - */ -Boolean -SCDynamicStoreSetMultiple ( - SCDynamicStoreRef __nullable store, - CFDictionaryRef __nullable keysToSet, - CFArrayRef __nullable keysToRemove, - CFArrayRef __nullable keysToNotify - ) __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); - -/*! - @function SCDynamicStoreRemoveValue - @discussion Removes the value of the specified key from the - dynamic store. - @param store The dynamic store session. - @param key The key of the value you want to remove. - @result Returns TRUE if the key was removed; FALSE if no value was - located or an error was encountered. - */ -Boolean -SCDynamicStoreRemoveValue ( - SCDynamicStoreRef __nullable store, - CFStringRef key - ) __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); - -/*! - @function SCDynamicStoreNotifyValue - @discussion Triggers a notification to be delivered for the - specified key in the dynamic store. - @param store The dynamic store session. - @param key The key that should be flagged as changed. Any dynamic store sessions - that are monitoring this key will received a notification. Note that the - key's value is not updated. - @result Returns TRUE if the notification was processed; FALSE if an error was encountered. - */ -Boolean -SCDynamicStoreNotifyValue ( - SCDynamicStoreRef __nullable store, - CFStringRef key - ) __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); - -/*! - @function SCDynamicStoreSetNotificationKeys - @discussion Specifies a set of specific keys and key patterns - that should be monitored for changes. - @param store The dynamic store session being watched. - @param keys An array of keys to be monitored; NULL if no specific keys - are to be monitored. - @param patterns An array of regex(3) pattern strings used to match keys to be monitored; - NULL if no key patterns are to be monitored. - @result Returns TRUE if the set of notification keys and patterns was successfully - updated; FALSE if an error was encountered. - */ -Boolean -SCDynamicStoreSetNotificationKeys ( - SCDynamicStoreRef store, - CFArrayRef __nullable keys, - CFArrayRef __nullable patterns - ) __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); - -/*! - @function SCDynamicStoreCopyNotifiedKeys - @discussion Returns an array of CFString keys representing the - dynamic store entries that have changed since this - function was last called. If possible, your application should - use the notification functions instead of polling for the list - of changed keys returned by this function. - @param store The dynamic store session. - @result Returns the list of changed keys; - NULL if an error was encountered. - You must release the returned value. - */ -CFArrayRef __nullable -SCDynamicStoreCopyNotifiedKeys ( - SCDynamicStoreRef store - ) __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); - -__END_DECLS - -CF_ASSUME_NONNULL_END -CF_IMPLICIT_BRIDGING_DISABLED - -#endif /* _SCDYNAMICSTORE_H */ diff --git a/Clocker/Frameworks/SystemConfiguration.framework/Versions/A/Headers/SCDynamicStoreCopyDHCPInfo.h b/Clocker/Frameworks/SystemConfiguration.framework/Versions/A/Headers/SCDynamicStoreCopyDHCPInfo.h deleted file mode 100644 index a5bb591..0000000 --- a/Clocker/Frameworks/SystemConfiguration.framework/Versions/A/Headers/SCDynamicStoreCopyDHCPInfo.h +++ /dev/null @@ -1,119 +0,0 @@ -/* - * Copyright (c) 2001, 2002, 2004, 2005, 2008, 2012, 2015 Apple Inc. All rights reserved. - * - * @APPLE_LICENSE_HEADER_START@ - * - * This file contains Original Code and/or Modifications of Original Code - * as defined in and that are subject to the Apple Public Source License - * Version 2.0 (the 'License'). You may not use this file except in - * compliance with the License. Please obtain a copy of the License at - * http://www.opensource.apple.com/apsl/ and read it before using this - * file. - * - * The Original Code and all software distributed under the License are - * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER - * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, - * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. - * Please see the License for the specific language governing rights and - * limitations under the License. - * - * @APPLE_LICENSE_HEADER_END@ - */ - -#ifndef _SCDYNAMICSTORECOPYDHCPINFO_H -#define _SCDYNAMICSTORECOPYDHCPINFO_H - -#include -#include -#include -#include - -CF_IMPLICIT_BRIDGING_ENABLED -CF_ASSUME_NONNULL_BEGIN - -/*! - @header SCDynamicStoreCopyDHCPInfo - @discussion The functions of the SCDynamicStoreCopyDHCPInfo API - provide access to information returned by the DHCP or - BOOTP server. - */ - - -__BEGIN_DECLS - -/*! - @function SCDynamicStoreCopyDHCPInfo - @discussion Copies the DHCP information for the requested serviceID, - or the primary service if serviceID == NULL. - @param store An SCDynamicStoreRef representing the dynamic store session - that should be used for communication with the server. - If NULL, a temporary session will be used. - @param serviceID A CFStringRef containing the requested service. - If NULL, returns information for the primary service. - @result Returns a dictionary containing DHCP information if successful; - NULL otherwise. - Use the DHCPInfoGetOption function to retrieve - individual options from the returned dictionary. - - A non-NULL return value must be released using CFRelease(). - */ -CFDictionaryRef __nullable -SCDynamicStoreCopyDHCPInfo (SCDynamicStoreRef __nullable store, - CFStringRef __nullable serviceID) __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); - -/*! - @function DHCPInfoGetOptionData - @discussion Returns a non-NULL CFDataRef containing the DHCP - option data, if present. - @param info The non-NULL DHCP information dictionary returned by - calling SCDynamicStoreCopyDHCPInfo. - @param code The DHCP option code (see RFC 2132) to return - data for. - @result Returns a non-NULL CFDataRef containing the option data; - NULL if the requested option data is not present. - - The return value must NOT be released. - */ -CFDataRef __nullable -DHCPInfoGetOptionData (CFDictionaryRef info, - UInt8 code) __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); - -/*! - @function DHCPInfoGetLeaseStartTime - @discussion Returns a CFDateRef corresponding to the lease start time, - if present. - @param info The non-NULL DHCP information dictionary returned by - calling SCDynamicStoreCopyDHCPInfo. - @result Returns a non-NULL CFDateRef if lease start time information is - present; NULL if the information is not present or if the - configuration method is not DHCP. - - The return value must NOT be released. - */ -CFDateRef __nullable -DHCPInfoGetLeaseStartTime (CFDictionaryRef info) __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); - - -/*! - @function DHCPInfoGetLeaseExpirationTime - @discussion Returns a CFDateRef corresponding to the lease expiration time, - if present. - @param info The non-NULL DHCP information dictionary returned by - calling SCDynamicStoreCopyDHCPInfo. - @result Returns a non-NULL CFDateRef if the DHCP lease has an expiration; - NULL if the lease is infinite i.e. has no expiration, or the - configuration method is not DHCP. An infinite lease can be determined - by a non-NULL lease start time (see DHCPInfoGetLeaseStartTime above). - - The return value must NOT be released. -*/ -CFDateRef __nullable -DHCPInfoGetLeaseExpirationTime (CFDictionaryRef info) __OSX_AVAILABLE_STARTING(__MAC_10_8,__IPHONE_NA); - -__END_DECLS - -CF_ASSUME_NONNULL_END -CF_IMPLICIT_BRIDGING_DISABLED - -#endif /* _SCDYNAMICSTORECOPYDHCPINFO_H */ diff --git a/Clocker/Frameworks/SystemConfiguration.framework/Versions/A/Headers/SCDynamicStoreCopySpecific.h b/Clocker/Frameworks/SystemConfiguration.framework/Versions/A/Headers/SCDynamicStoreCopySpecific.h deleted file mode 100644 index 6d05e32..0000000 --- a/Clocker/Frameworks/SystemConfiguration.framework/Versions/A/Headers/SCDynamicStoreCopySpecific.h +++ /dev/null @@ -1,216 +0,0 @@ -/* - * Copyright (c) 2000-2005, 2008, 2015 Apple Inc. All rights reserved. - * - * @APPLE_LICENSE_HEADER_START@ - * - * This file contains Original Code and/or Modifications of Original Code - * as defined in and that are subject to the Apple Public Source License - * Version 2.0 (the 'License'). You may not use this file except in - * compliance with the License. Please obtain a copy of the License at - * http://www.opensource.apple.com/apsl/ and read it before using this - * file. - * - * The Original Code and all software distributed under the License are - * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER - * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, - * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. - * Please see the License for the specific language governing rights and - * limitations under the License. - * - * @APPLE_LICENSE_HEADER_END@ - */ - -#ifndef _SCDYNAMICSTORECOPYSPECIFIC_H -#define _SCDYNAMICSTORECOPYSPECIFIC_H - -#include -#include -#include -#include -#include - -CF_IMPLICIT_BRIDGING_ENABLED -CF_ASSUME_NONNULL_BEGIN - -/*! - @header SCDynamicStoreCopySpecific - @discussion The functions of the SCDynamicStoreCopySpecific API - allow an application to determine specific configuration - information about the current system (for example, the - computer or sharing name, the currently logged-in user, etc.). - */ - - -__BEGIN_DECLS - -/*! - @function SCDynamicStoreCopyComputerName - @discussion Gets the current computer name. - @param store An SCDynamicStoreRef representing the dynamic store - session that should be used for communication with the server. - If NULL, a temporary session will be used. - @param nameEncoding A pointer to memory that, if non-NULL, will be - filled with the encoding associated with the computer or - host name. - @result Returns the current computer name; - NULL if the name has not been set or if an error was encountered. - You must release the returned value. - */ -CFStringRef __nullable -SCDynamicStoreCopyComputerName ( - SCDynamicStoreRef __nullable store, - CFStringEncoding * __nullable nameEncoding - ) __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); - -/*! - @function SCDynamicStoreCopyConsoleUser - @discussion Gets the name, user ID, and group ID of the currently - logged-in user. - - Note: this function only provides information about the - primary console. It does not provide any details - about console sessions that have fast user switched - out or about other consoles. - @param store An SCDynamicStoreRef representing the dynamic store - session that should be used for communication with the server. - If NULL, a temporary session will be used. - @param uid A pointer to memory that will be filled with the user ID - of the current console user. If NULL, this value will not - be returned. - @param gid A pointer to memory that will be filled with the group ID - of the current console user. If NULL, this value will not be - returned. - @result Returns the user currently logged into the system; - NULL if no user is logged in or if an error was encountered. - You must release the returned value. - */ -CFStringRef __nullable -SCDynamicStoreCopyConsoleUser ( - SCDynamicStoreRef __nullable store, - uid_t * __nullable uid, - gid_t * __nullable gid - ) __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); - -/*! - @function SCDynamicStoreCopyLocalHostName - @discussion Gets the current local host name. - @param store An SCDynamicStoreRef representing the dynamic store - session that should be used for communication with the server. - If NULL, a temporary session will be used. - @result Returns the current local host name; - NULL if the name has not been set or if an error was encountered. - You must release the returned value. - */ -CFStringRef __nullable -SCDynamicStoreCopyLocalHostName ( - SCDynamicStoreRef __nullable store - ) __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); - -/*! - @function SCDynamicStoreCopyLocation - @discussion Gets the current location identifier. - @param store An SCDynamicStoreRef representing the dynamic store - session that should be used for communication with the server. - If NULL, a temporary session will be used. - @result Returns a string representing the current location identifier; - NULL if no location identifier has been defined or if an error - was encountered. - You must release the returned value. - */ -CFStringRef __nullable -SCDynamicStoreCopyLocation ( - SCDynamicStoreRef __nullable store - ) __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); - -/*! - @function SCDynamicStoreCopyProxies - @discussion Gets the current internet proxy settings. - The returned proxy settings dictionary includes: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
key - type - description -
kSCPropNetProxiesExceptionsListCFArray[CFString]Host name patterns which should bypass the proxy
kSCPropNetProxiesHTTPEnableCFNumber (0 or 1)Enables/disables the use of an HTTP proxy
kSCPropNetProxiesHTTPProxyCFStringThe proxy host
kSCPropNetProxiesHTTPPortCFNumberThe proxy port number
kSCPropNetProxiesHTTPSEnableCFNumber (0 or 1)Enables/disables the use of an HTTPS proxy
kSCPropNetProxiesHTTPSProxyCFStringThe proxy host
kSCPropNetProxiesHTTPSPortCFNumberThe proxy port number
kSCPropNetProxiesFTPEnableCFNumber (0 or 1)Enables/disables the use of an FTP proxy
kSCPropNetProxiesFTPProxyCFStringThe proxy host
kSCPropNetProxiesFTPPortCFNumberThe proxy port number
kSCPropNetProxiesFTPPassiveCFNumber (0 or 1)Enable passive mode operation for use behind connection - filter-ing firewalls.
- - Other key-value pairs are defined in the SCSchemaDefinitions.h - header file. - @param store An SCDynamicStoreRef representing the dynamic store - session that should be used for communication with the server. - If NULL, a temporary session will be used. - @result Returns a dictionary containing key-value pairs that represent - the current internet proxy settings; - NULL if no proxy settings have been defined or if an error - was encountered. - You must release the returned value. - */ -CFDictionaryRef __nullable -SCDynamicStoreCopyProxies ( - SCDynamicStoreRef __nullable store - ) __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); - -__END_DECLS - -CF_ASSUME_NONNULL_END -CF_IMPLICIT_BRIDGING_DISABLED - -#endif /* _SCDYNAMICSTORECOPYSPECIFIC_H */ diff --git a/Clocker/Frameworks/SystemConfiguration.framework/Versions/A/Headers/SCDynamicStoreKey.h b/Clocker/Frameworks/SystemConfiguration.framework/Versions/A/Headers/SCDynamicStoreKey.h deleted file mode 100644 index f632752..0000000 --- a/Clocker/Frameworks/SystemConfiguration.framework/Versions/A/Headers/SCDynamicStoreKey.h +++ /dev/null @@ -1,267 +0,0 @@ -/* - * Copyright (c) 2000-2002, 2004, 2005, 2008, 2015 Apple Inc. All rights reserved. - * - * @APPLE_LICENSE_HEADER_START@ - * - * This file contains Original Code and/or Modifications of Original Code - * as defined in and that are subject to the Apple Public Source License - * Version 2.0 (the 'License'). You may not use this file except in - * compliance with the License. Please obtain a copy of the License at - * http://www.opensource.apple.com/apsl/ and read it before using this - * file. - * - * The Original Code and all software distributed under the License are - * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER - * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, - * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. - * Please see the License for the specific language governing rights and - * limitations under the License. - * - * @APPLE_LICENSE_HEADER_END@ - */ - -#ifndef _SCDYNAMICSTOREKEY_H -#define _SCDYNAMICSTOREKEY_H - -#include -#include -#include - -CF_IMPLICIT_BRIDGING_ENABLED -CF_ASSUME_NONNULL_BEGIN - -/*! - @header SCDynamicStoreKey - @discussion The SCDynamicStoreKey API provides convenience functions - that an application can use to create a correctly formatted - dynamic store key for accessing specific items in the dynamic - store. An application can then use the resulting string in - any function that requires a dynamic store key. - */ - - -__BEGIN_DECLS - -/* - * SCDynamicStoreKeyCreate - * - convenience routines that create a CFString key for an item in the store - */ - -/*! - @function SCDynamicStoreKeyCreate - @discussion Creates a dynamic store key using the given format. - @param allocator The CFAllocator that should be used to allocate - memory for this key. - This parameter may be NULL in which case the current - default CFAllocator is used. If this reference is not - a valid CFAllocator, the behavior is undefined. - @param fmt A CFStringRef describing the format for this key. - @result Returns a string containing the formatted key. - */ -CFStringRef -SCDynamicStoreKeyCreate ( - CFAllocatorRef __nullable allocator, - CFStringRef fmt, - ... - ) __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); - -/*! - @function SCDynamicStoreKeyCreateNetworkGlobalEntity - @discussion Creates a dynamic store key that can be used to access - a specific global (as opposed to a per-service or per-interface) - network configuration entity. - @param allocator The CFAllocator that should be used to allocate - memory for this key. - This parameter may be NULL in which case the current - default CFAllocator is used. If this reference is not - a valid CFAllocator, the behavior is undefined. - @param domain A string specifying the desired domain, such as the - requested configuration (kSCDynamicStoreDomainSetup) or the - actual state (kSCDynamicStoreDomainState). - @param entity A string containing the specific global entity, such - as IPv4 (kSCEntNetIPv4) or DNS (kSCEntNetDNS). - @result Returns a string containing the formatted key. - - */ -CFStringRef -SCDynamicStoreKeyCreateNetworkGlobalEntity ( - CFAllocatorRef __nullable allocator, - CFStringRef domain, - CFStringRef entity - ) __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); - -/*! - @function SCDynamicStoreKeyCreateNetworkInterface - @discussion Creates a dynamic store key that can be used to access - the network interface configuration information stored in - the dynamic store. - @param allocator The CFAllocator that should be used to allocate - memory for this key. - This parameter may be NULL in which case the current - default CFAllocator is used. If this reference is not - a valid CFAllocator, the behavior is undefined. - @param domain A string specifying the desired domain, such as the - requested configuration (kSCDynamicStoreDomainSetup) or the - actual state (kSCDynamicStoreDomainState). - @result Returns a string containing the formatted key. - - */ -CFStringRef -SCDynamicStoreKeyCreateNetworkInterface ( - CFAllocatorRef __nullable allocator, - CFStringRef domain - ) __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); - -/*! - @function SCDynamicStoreKeyCreateNetworkInterfaceEntity - @discussion Creates a dynamic store key that can be used to access - the per-interface network configuration information stored in - the dynamic store. - @param allocator The CFAllocator that should be used to allocate - memory for this key. - This parameter may be NULL in which case the current - default CFAllocator is used. If this reference is not - a valid CFAllocator, the behavior is undefined. - @param domain A string specifying the desired domain, such as the - requested configuration (kSCDynamicStoreDomainSetup) or the - actual state (kSCDynamicStoreDomainState). - @param ifname A string containing the interface name or a regular - expression pattern. - @param entity A string containing the specific global entity, such - as IPv4 (kSCEntNetIPv4) or DNS (kSCEntNetDNS). - @result Returns a string containing the formatted key. - - */ -CFStringRef -SCDynamicStoreKeyCreateNetworkInterfaceEntity ( - CFAllocatorRef __nullable allocator, - CFStringRef domain, - CFStringRef ifname, - CFStringRef __nullable entity - ) __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); - -/*! - @function SCDynamicStoreKeyCreateNetworkServiceEntity - @discussion Creates a dynamic store key that can be used to access - the per-service network configuration information stored in - the dynamic store. - @param allocator The CFAllocator that should be used to allocate - memory for this key. - This parameter may be NULL in which case the current - default CFAllocator is used. If this reference is not - a valid CFAllocator, the behavior is undefined. - @param domain A string specifying the desired domain, such as the - requested configuration (kSCDynamicStoreDomainSetup) or the - actual state (kSCDynamicStoreDomainState). - @param serviceID A string containing the service ID or a regular - expression pattern. - @param entity A string containing the specific global entity, such - as IPv4 (kSCEntNetIPv4) or DNS (kSCEntNetDNS). - @result Returns a string containing the formatted key. - - - */ -CFStringRef -SCDynamicStoreKeyCreateNetworkServiceEntity ( - CFAllocatorRef __nullable allocator, - CFStringRef domain, - CFStringRef serviceID, - CFStringRef __nullable entity - ) __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); - -/*! - @function SCDynamicStoreKeyCreateComputerName - @discussion Creates a key that can be used in conjuntion with - SCDynamicStoreSetNotificationKeys function to receive - notifications when the current computer name changes. - @param allocator The CFAllocator that should be used to allocate - memory for this key. - This parameter may be NULL in which case the current - default CFAllocator is used. If this reference is not - a valid CFAllocator, the behavior is undefined. - @result Returns a notification string for the current computer or - host name. -*/ -CFStringRef -SCDynamicStoreKeyCreateComputerName ( - CFAllocatorRef __nullable allocator - ) __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); - -/*! - @function SCDynamicStoreKeyCreateConsoleUser - @discussion Creates a key that can be used in conjunction with - SCDynamicStoreSetNotificationKeys function to receive - notifications when the current console user changes. - @param allocator The CFAllocator that should be used to allocate - memory for this key. - This parameter may be NULL in which case the current - default CFAllocator is used. If this reference is not - a valid CFAllocator, the behavior is undefined. - @result Returns a notification string for the current console user. -*/ -CFStringRef -SCDynamicStoreKeyCreateConsoleUser ( - CFAllocatorRef __nullable allocator - ) __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); - -/*! - @function SCDynamicStoreKeyCreateHostNames - @discussion Creates a key that can be used in conjunction with the - SCDynamicStoreSetNotificationKeys function to receive - notifications when the HostNames entity changes. The - HostNames entity includes the local host name. - @param allocator The CFAllocator that should be used to allocate - memory for this key. - This parameter may be NULL in which case the current - default CFAllocator is used. If this reference is not - a valid CFAllocator, the behavior is undefined. - @result Returns a notification string for the HostNames entity. -*/ -CFStringRef -SCDynamicStoreKeyCreateHostNames ( - CFAllocatorRef __nullable allocator - ) __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_NA); - -/*! - @function SCDynamicStoreKeyCreateLocation - @discussion Creates a key that can be used in conjunction with the - SCDynamicStoreSetNotificationKeys function to receive - notifications when the location identifier changes. - @param allocator The CFAllocator that should be used to allocate - memory for this key. - This parameter may be NULL in which case the current - default CFAllocator is used. If this reference is not - a valid CFAllocator, the behavior is undefined. - @result Returns a notification string for the current location - identifier. -*/ -CFStringRef -SCDynamicStoreKeyCreateLocation ( - CFAllocatorRef __nullable allocator - ) __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_NA); - -/*! - @function SCDynamicStoreKeyCreateProxies - @discussion Creates a key that can be used in conjunction with - the SCDynamicStoreSetNotificationKeys function to receive - notifications when the current network proxy settings - (such as HTTP or FTP) are changed. - @param allocator The CFAllocator that should be used to allocate - memory for this key. - This parameter may be NULL in which case the current - default CFAllocator is used. If this reference is not - a valid CFAllocator, the behavior is undefined. - @result Returns a notification string for the current proxy settings. -*/ -CFStringRef -SCDynamicStoreKeyCreateProxies ( - CFAllocatorRef __nullable allocator - ) __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); - -__END_DECLS - -CF_ASSUME_NONNULL_END -CF_IMPLICIT_BRIDGING_DISABLED - -#endif /* _SCDYNAMICSTOREKEY_H */ diff --git a/Clocker/Frameworks/SystemConfiguration.framework/Versions/A/Headers/SCNetwork.h b/Clocker/Frameworks/SystemConfiguration.framework/Versions/A/Headers/SCNetwork.h deleted file mode 100644 index 6829818..0000000 --- a/Clocker/Frameworks/SystemConfiguration.framework/Versions/A/Headers/SCNetwork.h +++ /dev/null @@ -1,204 +0,0 @@ -/* - * Copyright (c) 2000, 2001, 2003-2009, 2015 Apple Inc. All rights reserved. - * - * @APPLE_LICENSE_HEADER_START@ - * - * This file contains Original Code and/or Modifications of Original Code - * as defined in and that are subject to the Apple Public Source License - * Version 2.0 (the 'License'). You may not use this file except in - * compliance with the License. Please obtain a copy of the License at - * http://www.opensource.apple.com/apsl/ and read it before using this - * file. - * - * The Original Code and all software distributed under the License are - * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER - * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, - * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. - * Please see the License for the specific language governing rights and - * limitations under the License. - * - * @APPLE_LICENSE_HEADER_END@ - */ - -#ifndef _SCNETWORK_H -#define _SCNETWORK_H - -#include -#include -#include -#include -#include - -CF_IMPLICIT_BRIDGING_ENABLED -CF_ASSUME_NONNULL_BEGIN - -/*! - @header SCNetwork - @discussion The SCNetwork API contains functions an application can - use to determine remote host reachability and notify the - system of configuration changes. - - The two SCNetworkCheckReachability functions allow an - application to determine the status of the system's current - network configuration and the reachability of a target host - or address. - - "Reachability" reflects whether a data packet, sent by an - application into the network stack, can leave the local - computer. Note that reachability does not guarantee - that the data packet will actually be received by the host. - */ - -/*! - @enum SCNetworkConnectionFlags - @discussion Flags that indicate whether the specified network - nodename or address is reachable, whether a connection is - required, and whether some user intervention may be required - when establishing a connection. - - Note: the SCNetworkConnection flags have been deprecated - in favor of the newer SCNetworkReachability flags defined - in SCNetworkReachability.h. - @constant kSCNetworkFlagsTransientConnection - This flag indicates that the specified nodename or address can - be reached via a transient connection, such as PPP. - @constant kSCNetworkFlagsReachable - This flag indicates that the specified nodename or address can - be reached using the current network configuration. - @constant kSCNetworkFlagsConnectionRequired - This flag indicates that the specified nodename or address can - be reached using the current network configuration, but a - connection must first be established. - - As an example, this status would be returned for a dialup - connection that was not currently active, but could handle - network traffic for the target system. - @constant kSCNetworkFlagsConnectionAutomatic - This flag indicates that the specified nodename or address can - be reached using the current network configuration, but a - connection must first be established. Any traffic directed - to the specified name or address will initiate the connection. - @constant kSCNetworkFlagsInterventionRequired - This flag indicates that the specified nodename or address can - be reached using the current network configuration, but a - connection must first be established. In addition, some - form of user intervention will be required to establish this - connection, such as providing a password, an authentication - token, etc. - - Note: At the present time, this flag will only be returned - in the case where you have a dial-on-traffic configuration - (ConnectionAutomatic), where an attempt to connect has - already been made, and where some error (e.g. no dial tone, - no answer, bad password, ...) was encountered during the - automatic connection attempt. In this case the PPP controller - will stop attempting to establish a connection until the user - has intervened. - @constant kSCNetworkFlagsIsLocalAddress - This flag indicates that the specified nodename or address - is one associated with a network interface on the current - system. - @constant kSCNetworkFlagsIsDirect - This flag indicates that network traffic to the specified - nodename or address will not go through a gateway, but is - routed directly to one of the interfaces in the system. - */ -enum { - kSCNetworkFlagsTransientConnection = 1<<0, - kSCNetworkFlagsReachable = 1<<1, - kSCNetworkFlagsConnectionRequired = 1<<2, - kSCNetworkFlagsConnectionAutomatic = 1<<3, - kSCNetworkFlagsInterventionRequired = 1<<4, - kSCNetworkFlagsIsLocalAddress = 1<<16, - kSCNetworkFlagsIsDirect = 1<<17, -}; -typedef uint32_t SCNetworkConnectionFlags; - -__BEGIN_DECLS - -/*! - @function SCNetworkCheckReachabilityByAddress - @discussion Determines if the given network address is - reachable using the current network configuration. - - Note: this API has been deprecated but you can - get equivalent results with : -
-	SCNetworkReachabiltyRef   target;
-	SCNetworkReachabiltyFlags flags = 0;
-	Boolean                   ok;
-
-	target = SCNetworkReachabilityCreateWithAddress(NULL, address);
-	ok = SCNetworkReachabilityGetFlags(target, &flags);
-	CFRelease(target);
-
- @param address The network address of the desired host. - @param addrlen The length, in bytes, of the address. - @param flags A pointer to memory that will be filled with a - set of SCNetworkConnectionFlags detailing the reachability - of the specified address. - @result Returns TRUE if the network connection flags are valid; - FALSE if the status could not be determined. - */ -Boolean -SCNetworkCheckReachabilityByAddress ( - const struct sockaddr *address, - socklen_t addrlen, - SCNetworkConnectionFlags *flags - ) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1,__MAC_10_6,__IPHONE_NA,__IPHONE_NA); - -/*! - @function SCNetworkCheckReachabilityByName - @discussion Determines if the given network host or node name is - reachable using the current network configuration. - - Note: this API has been deprecated but you can - get equivalent results with : -
-	SCNetworkReachabilityRef   target;
-	SCNetworkReachabilityFlags flags = 0;
-	Boolean                   ok;
-
-	target = SCNetworkReachabilityCreateWithName(NULL, name);
-	ok = SCNetworkReachabilityGetFlags(target, &flags);
-	CFRelease(target);
-
- @param nodename The node name of the desired host. This name would - be the same as that passed to the gethostbyname(3) or - getaddrinfo(3) functions. - @param flags A pointer to memory that will be filled with a - set of SCNetworkConnectionFlags detailing the reachability - of the specified node name. - @result Returns TRUE if the network connection flags are valid; - FALSE if the status could not be determined. - */ -Boolean -SCNetworkCheckReachabilityByName ( - const char *nodename, - SCNetworkConnectionFlags *flags - ) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1,__MAC_10_6,__IPHONE_NA,__IPHONE_NA); - -/*! - @function SCNetworkInterfaceRefreshConfiguration - @discussion Sends a notification to interested configuration agents - to have them immediately retry their configuration over a - particular network interface. - - Note: This function must be invoked by root (uid == 0). - @param ifName The BSD name of the network interface, such as - CFSTR("en0"). - @result Returns TRUE if the notification was sent; FALSE otherwise. - @deprecated in version 10.4. Replaced with SCNetworkInterfaceForceConfigurationRefresh. - */ -Boolean -SCNetworkInterfaceRefreshConfiguration ( - CFStringRef ifName - ) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1,__MAC_10_5,__IPHONE_NA,__IPHONE_NA); - -__END_DECLS - -CF_ASSUME_NONNULL_END -CF_IMPLICIT_BRIDGING_DISABLED - -#endif /* _SCNETWORK_H */ diff --git a/Clocker/Frameworks/SystemConfiguration.framework/Versions/A/Headers/SCNetworkConfiguration.h b/Clocker/Frameworks/SystemConfiguration.framework/Versions/A/Headers/SCNetworkConfiguration.h deleted file mode 100644 index ced8f8c..0000000 --- a/Clocker/Frameworks/SystemConfiguration.framework/Versions/A/Headers/SCNetworkConfiguration.h +++ /dev/null @@ -1,1304 +0,0 @@ -/* - * Copyright (c) 2004-2011, 2015 Apple Inc. All rights reserved. - * - * @APPLE_LICENSE_HEADER_START@ - * - * This file contains Original Code and/or Modifications of Original Code - * as defined in and that are subject to the Apple Public Source License - * Version 2.0 (the 'License'). You may not use this file except in - * compliance with the License. Please obtain a copy of the License at - * http://www.opensource.apple.com/apsl/ and read it before using this - * file. - * - * The Original Code and all software distributed under the License are - * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER - * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, - * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. - * Please see the License for the specific language governing rights and - * limitations under the License. - * - * @APPLE_LICENSE_HEADER_END@ - */ - -#ifndef _SCNETWORKCONFIGURATION_H -#define _SCNETWORKCONFIGURATION_H - -#include -#include -#include -#include -#include - -CF_IMPLICIT_BRIDGING_ENABLED -CF_ASSUME_NONNULL_BEGIN - -/*! - @header SCNetworkConfiguration - @discussion The SCNetworkConfiguration API provides access to the - stored network configuration. The functions include - providing access to the network capable devices on the - system, the network sets, network services, and network - protocols. - - Note: When using the SCNetworkConfiguraiton APIs you must - keep in mind that in order for any of your changes to be - committed to permanent storage a call must be made to the - SCPreferencesCommitChanges function. - */ - - -/*! - @group Interface configuration - */ - -#pragma mark - -#pragma mark SCNetworkInterface configuration (typedefs, consts) - -/*! - @typedef SCNetworkInterfaceRef - @discussion This is the type of a reference to an object that represents - a network interface. - */ -typedef const struct CF_BRIDGED_TYPE(id) __SCNetworkInterface * SCNetworkInterfaceRef; - -/*! - @const kSCNetworkInterfaceType6to4 - */ -extern const CFStringRef kSCNetworkInterfaceType6to4 __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @const kSCNetworkInterfaceTypeBluetooth - */ -extern const CFStringRef kSCNetworkInterfaceTypeBluetooth __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @const kSCNetworkInterfaceTypeBond - */ -extern const CFStringRef kSCNetworkInterfaceTypeBond __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @const kSCNetworkInterfaceTypeEthernet - */ -extern const CFStringRef kSCNetworkInterfaceTypeEthernet __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @const kSCNetworkInterfaceTypeFireWire - */ -extern const CFStringRef kSCNetworkInterfaceTypeFireWire __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @const kSCNetworkInterfaceTypeIEEE80211 - */ -extern const CFStringRef kSCNetworkInterfaceTypeIEEE80211 __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); // IEEE 802.11, AirPort - -/*! - @const kSCNetworkInterfaceTypeIPSec - */ -extern const CFStringRef kSCNetworkInterfaceTypeIPSec __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); - -/*! - @const kSCNetworkInterfaceTypeIrDA - */ -extern const CFStringRef kSCNetworkInterfaceTypeIrDA __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @const kSCNetworkInterfaceTypeL2TP - */ -extern const CFStringRef kSCNetworkInterfaceTypeL2TP __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @const kSCNetworkInterfaceTypeModem - */ -extern const CFStringRef kSCNetworkInterfaceTypeModem __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @const kSCNetworkInterfaceTypePPP - */ -extern const CFStringRef kSCNetworkInterfaceTypePPP __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @const kSCNetworkInterfaceTypePPTP - */ -extern const CFStringRef kSCNetworkInterfaceTypePPTP __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @const kSCNetworkInterfaceTypeSerial - */ -extern const CFStringRef kSCNetworkInterfaceTypeSerial __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @const kSCNetworkInterfaceTypeVLAN - */ -extern const CFStringRef kSCNetworkInterfaceTypeVLAN __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @const kSCNetworkInterfaceTypeWWAN - */ -extern const CFStringRef kSCNetworkInterfaceTypeWWAN __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); - -/* special network interfaces (and types) */ - -/*! - @const kSCNetworkInterfaceTypeIPv4 - */ -extern const CFStringRef kSCNetworkInterfaceTypeIPv4 __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @const kSCNetworkInterfaceIPv4 - @discussion A network interface that can used for layering other - interfaces (e.g. 6to4, IPSec, PPTP, L2TP) over an existing - IPv4 network. - */ -extern const SCNetworkInterfaceRef kSCNetworkInterfaceIPv4 __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @group Interface configuration (Bond) - */ - -#pragma mark - - -/*! - @typedef SCBondInterfaceRef - @discussion This is the type of a reference to an object that represents - an Ethernet Bond interface. - */ -typedef SCNetworkInterfaceRef SCBondInterfaceRef; - -/*! - @typedef SCBondStatusRef - @discussion This is the type of a reference to an object that represents - the status of an Ethernet Bond interface. - */ -typedef const struct CF_BRIDGED_TYPE(id) __SCBondStatus * SCBondStatusRef; - -/*! - @enum Ethernet Bond Aggregation Status (kSCBondStatusDeviceAggregationStatus) codes - @discussion Returned status codes. - @constant kSCBondStatusOK Enabled, active, running, ... - @constant kSCBondStatusLinkInvalid The link state was not valid (i.e. down, half-duplex, wrong speed) - @constant kSCBondStatusNoPartner The port on the switch that the device is connected doesn't seem to have 802.3ad Link Aggregation enabled - @constant kSCBondStatusNotInActiveGroup We're talking to a partner, but the link aggregation group is different from the one that's active - @constant kSCBondStatusUnknown Non-specific failure - */ -enum { - kSCBondStatusOK = 0, /* enabled, active, running, ... */ - kSCBondStatusLinkInvalid = 1, /* The link state was not valid (i.e. down, half-duplex, wrong speed) */ - kSCBondStatusNoPartner = 2, /* The port on the switch that the device is connected doesn't seem to have 802.3ad Link Aggregation enabled */ - kSCBondStatusNotInActiveGroup = 3, /* We're talking to a partner, but the link aggregation group is different from the one that's active */ - kSCBondStatusUnknown = 999 /* Non-specific failure */ -}; - -/*! - @const kSCBondStatusDeviceAggregationStatus - */ -extern const CFStringRef kSCBondStatusDeviceAggregationStatus /* CFNumber */ __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @const kSCBondStatusDeviceCollecting - */ -extern const CFStringRef kSCBondStatusDeviceCollecting /* CFNumber (0 or 1) */ __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @const kSCBondStatusDeviceDistributing - */ -extern const CFStringRef kSCBondStatusDeviceDistributing /* CFNumber (0 or 1) */ __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @group Interface configuration (VLAN) - */ - -#pragma mark - - -/*! - @typedef SCVLANInterfaceRef - @discussion This is the type of a reference to an object that represents - a Virtual LAN (VLAN) interface. - */ -typedef SCNetworkInterfaceRef SCVLANInterfaceRef; - - -/*! - @group Protocol configuration - */ - -#pragma mark - -#pragma mark SCNetworkProtocol configuration (typedefs, consts) - -/*! - @typedef SCNetworkProtocolRef - @discussion This is the type of a reference to an object that represents - a network protocol. - */ -typedef const struct CF_BRIDGED_TYPE(id) __SCNetworkProtocol * SCNetworkProtocolRef; - -/* network "protocol" types */ - -/*! - @const kSCNetworkProtocolTypeAppleTalk - */ -extern const CFStringRef kSCNetworkProtocolTypeAppleTalk __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4,__MAC_10_6,__IPHONE_NA,__IPHONE_NA); - -/*! - @const kSCNetworkProtocolTypeDNS - */ -extern const CFStringRef kSCNetworkProtocolTypeDNS __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @const kSCNetworkProtocolTypeIPv4 - */ -extern const CFStringRef kSCNetworkProtocolTypeIPv4 __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @const kSCNetworkProtocolTypeIPv6 - */ -extern const CFStringRef kSCNetworkProtocolTypeIPv6 __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @const kSCNetworkProtocolTypeProxies - */ -extern const CFStringRef kSCNetworkProtocolTypeProxies __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @const kSCNetworkProtocolTypeSMB - */ -extern const CFStringRef kSCNetworkProtocolTypeSMB __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); - -/*! - @group Service configuration - */ - -#pragma mark - -#pragma mark SCNetworkService configuration (typedefs, consts) - -/*! - @typedef SCNetworkServiceRef - @discussion This is the type of a reference to an object that represents - a network service. - */ -typedef const struct CF_BRIDGED_TYPE(id) __SCNetworkService * SCNetworkServiceRef; - - -/*! - @group Set configuration - */ - -#pragma mark - -#pragma mark SCNetworkSet configuration (typedefs, consts) - -/*! - @typedef SCNetworkSetRef - @discussion This is the type of a reference to an object that represents - a network set. - */ -typedef const struct CF_BRIDGED_TYPE(id) __SCNetworkSet * SCNetworkSetRef; - - -__BEGIN_DECLS - - -/* -------------------------------------------------------------------------------- - * INTERFACES - * -------------------------------------------------------------------------------- */ - -/*! - @group Interface configuration - */ - -#pragma mark - -#pragma mark SCNetworkInterface configuration (APIs) - -/*! - @function SCNetworkInterfaceGetTypeID - @discussion Returns the type identifier of all SCNetworkInterface instances. - */ -CFTypeID -SCNetworkInterfaceGetTypeID (void) __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @function SCNetworkInterfaceCopyAll - @discussion Returns all network capable interfaces on the system. - @result The list of interfaces on the system. - You must release the returned value. - */ -CFArrayRef /* of SCNetworkInterfaceRef's */ -SCNetworkInterfaceCopyAll (void) __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @function SCNetworkInterfaceGetSupportedInterfaceTypes - @discussion Identify all of the network interface types (e.g. PPP) that - can be layered on top of this interface. - @param interface The network interface. - @result The list of SCNetworkInterface types supported by the interface; - NULL if no interface types are supported. - */ -CFArrayRef /* of kSCNetworkInterfaceTypeXXX CFStringRef's */ __nullable -SCNetworkInterfaceGetSupportedInterfaceTypes (SCNetworkInterfaceRef interface) __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @function SCNetworkInterfaceGetSupportedProtocolTypes - @discussion Identify all of the network protocol types (e.g. IPv4, IPv6) that - can be layered on top of this interface. - @param interface The network interface. - @result The list of SCNetworkProtocol types supported by the interface; - NULL if no protocol types are supported. - */ -CFArrayRef /* of kSCNetworkProtocolTypeXXX CFStringRef's */ __nullable -SCNetworkInterfaceGetSupportedProtocolTypes (SCNetworkInterfaceRef interface) __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @function SCNetworkInterfaceCreateWithInterface - @discussion Create a new network interface layered on top of another. For - example, this function would be used to create a "PPP" interface - on top of a "modem". - @param interface The network interface. - @param interfaceType The type of SCNetworkInterface to be layered on - top of the provided interface. - @result A reference to the new SCNetworkInterface. - You must release the returned value. - */ -SCNetworkInterfaceRef __nullable -SCNetworkInterfaceCreateWithInterface (SCNetworkInterfaceRef interface, - CFStringRef interfaceType) __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @function SCNetworkInterfaceGetBSDName - @discussion Returns the BSD interface (en0) or device name (modem) - for the interface. - @param interface The network interface. - @result The BSD name associated with the interface (e.g. "en0"); - NULL if no BSD name is available. - */ -CFStringRef __nullable -SCNetworkInterfaceGetBSDName (SCNetworkInterfaceRef interface) __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @function SCNetworkInterfaceGetConfiguration - @discussion Returns the configuration settings associated with a interface. - @param interface The network interface. - @result The configuration settings associated with the interface; - NULL if no configuration settings are associated with the interface - or an error was encountered. - */ -CFDictionaryRef __nullable -SCNetworkInterfaceGetConfiguration (SCNetworkInterfaceRef interface) __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @function SCNetworkInterfaceGetExtendedConfiguration - @discussion Returns the configuration settings associated with a interface. - @param interface The network interface. - @param extendedType A string representing the type of extended information (e.g. EAPOL). - @result The configuration settings associated with the interface; - NULL if no configuration settings are associated with the interface - or an error was encountered. - */ -CFDictionaryRef __nullable -SCNetworkInterfaceGetExtendedConfiguration (SCNetworkInterfaceRef interface, - CFStringRef extendedType) __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); - -/*! - @function SCNetworkInterfaceGetHardwareAddressString - @discussion Returns a displayable link layer address for the interface. - @param interface The network interface. - @result A string representing the hardware (MAC) address for the interface. - */ -CFStringRef __nullable -SCNetworkInterfaceGetHardwareAddressString (SCNetworkInterfaceRef interface) __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @function SCNetworkInterfaceGetInterface - @discussion For layered network interfaces, return the underlying interface. - @param interface The network interface. - @result The underlying network interface; - NULL if this is a leaf interface. - */ -SCNetworkInterfaceRef __nullable -SCNetworkInterfaceGetInterface (SCNetworkInterfaceRef interface) __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @function SCNetworkInterfaceGetInterfaceType - @discussion Returns the associated network interface type. - @param interface The network interface. - @result The interface type. - */ -CFStringRef __nullable -SCNetworkInterfaceGetInterfaceType (SCNetworkInterfaceRef interface) __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @function SCNetworkInterfaceGetLocalizedDisplayName - @discussion Returns the localized name (e.g. "Ethernet", "FireWire") for - the interface. - @param interface The network interface. - @result A localized, display name for the interface; - NULL if no name is available. - */ -CFStringRef __nullable -SCNetworkInterfaceGetLocalizedDisplayName (SCNetworkInterfaceRef interface) __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @function SCNetworkInterfaceSetConfiguration - @discussion Stores the configuration settings for the interface. - @param interface The network interface. - @param config The configuration settings to associate with this interface. - @result TRUE if the configuration was stored; FALSE if an error was encountered. - */ -Boolean -SCNetworkInterfaceSetConfiguration (SCNetworkInterfaceRef interface, - CFDictionaryRef config) __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @function SCNetworkInterfaceSetExtendedConfiguration - @discussion Stores the configuration settings for the interface. - @param interface The network interface. - @param config The configuration settings to associate with this interface. - @result TRUE if the configuration was stored; FALSE if an error was encountered. - */ -Boolean -SCNetworkInterfaceSetExtendedConfiguration (SCNetworkInterfaceRef interface, - CFStringRef extendedType, - CFDictionaryRef config) __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); - -#pragma mark - - -/*! - @function SCNetworkInterfaceCopyMediaOptions - @discussion For the specified network interface, returns information - about the currently requested media options, the active media - options, and the media options which are available. - @param interface The desired network interface. - @param current A pointer to memory that will be filled with a CFDictionaryRef - representing the currently requested media options (subtype, options). - If NULL, the current options will not be returned. - @param active A pointer to memory that will be filled with a CFDictionaryRef - representing the active media options (subtype, options). - If NULL, the active options will not be returned. - @param available A pointer to memory that will be filled with a CFArrayRef - representing the possible media options (subtype, options). - If NULL, the available options will not be returned. - @param filter A boolean indicating whether the available options should be - filtered to exclude those options which would not normally be - requested by a user/admin (e.g. hw-loopback). - @result TRUE if requested information has been returned. - */ -Boolean -SCNetworkInterfaceCopyMediaOptions (SCNetworkInterfaceRef interface, - CFDictionaryRef __nullable * __nullable current, - CFDictionaryRef __nullable * __nullable active, - CFArrayRef __nullable * __nullable available, - Boolean filter) __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); - -/*! - @function SCNetworkInterfaceCopyMediaSubTypes - @discussion For the provided interface configuration options, return a list - of available media subtypes. - @param available The available options as returned by the - SCNetworkInterfaceCopyMediaOptions function. - @result An array of available media subtypes CFString's (e.g. 10BaseT/UTP, - 100baseTX, etc). NULL if no subtypes are available. - */ -CFArrayRef __nullable -SCNetworkInterfaceCopyMediaSubTypes (CFArrayRef available) __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); - -/*! - @function SCNetworkInterfaceCopyMediaSubTypeOptions - @discussion For the provided interface configuration options and specific - subtype, return a list of available media options. - @param available The available options as returned by the - SCNetworkInterfaceCopyMediaOptions function. - @param subType The subtype - @result An array of available media options. Each of the available options - is returned as an array of CFString's (e.g. , - ). NULL if no options are available. - */ -CFArrayRef __nullable -SCNetworkInterfaceCopyMediaSubTypeOptions (CFArrayRef available, - CFStringRef subType) __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); - -/*! - @function SCNetworkInterfaceCopyMTU - @discussion For the specified network interface, returns information - about the currently MTU setting and the range of allowable - values. - @param interface The desired network interface. - @param mtu_cur A pointer to memory that will be filled with the current - MTU setting for the interface. - @param mtu_min A pointer to memory that will be filled with the minimum - MTU setting for the interface. If negative, the minimum setting - could not be determined. - @param mtu_max A pointer to memory that will be filled with the maximum - MTU setting for the interface. If negative, the maximum setting - could not be determined. - @result TRUE if requested information has been returned. - */ -Boolean -SCNetworkInterfaceCopyMTU (SCNetworkInterfaceRef interface, - int * __nullable mtu_cur, - int * __nullable mtu_min, - int * __nullable mtu_max) __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); - -/*! - @function SCNetworkInterfaceSetMediaOptions - @discussion For the specified network interface, sets the requested - media subtype and options. - @param interface The desired network interface. - @param subtype The desired media subtype (e.g. "autoselect", "100baseTX", ...). - @param options The desired media options (e.g. "half-duplex", "full-duplex", ...). - @result TRUE if the configuration was updated; FALSE if an error was encountered. - */ -Boolean -SCNetworkInterfaceSetMediaOptions (SCNetworkInterfaceRef interface, - CFStringRef subtype, - CFArrayRef options) __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); - -/*! - @function SCNetworkInterfaceSetMTU - @discussion For the specified network interface, sets the - requested MTU setting. - @param interface The desired network interface. - @param mtu The desired MTU setting for the interface. - @result TRUE if the configuration was updated; FALSE if an error was encountered. - */ -Boolean -SCNetworkInterfaceSetMTU (SCNetworkInterfaceRef interface, - int mtu) __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); - -/*! - @function SCNetworkInterfaceForceConfigurationRefresh - @discussion Sends a notification to interested network configuration - agents to immediately retry their configuration. For example, - calling this function will cause the DHCP client to contact - the DHCP server immediately rather than waiting until its - timeout has expired. The utility of this function is to - allow the caller to give a hint to the system that the - network infrastructure or configuration has changed. - - Note: This function requires root (euid==0) privilege or, - alternatively, you may pass an SCNetworkInterface which - is derived from a sequence of calls to : - - SCPreferencesCreateWithAuthorization - SCNetworkSetCopy... - SCNetworkServiceGetInterface - @param interface The desired network interface. - @result Returns TRUE if the notification was sent; FALSE otherwise. - */ -Boolean -SCNetworkInterfaceForceConfigurationRefresh (SCNetworkInterfaceRef interface) __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); - -/*! - @group Interface configuration (Bond) - */ - -#pragma mark - -#pragma mark SCBondInterface configuration (APIs) - -/*! - @function SCBondInterfaceCopyAll - @discussion Returns all Ethernet Bond interfaces on the system. - @param prefs The "preferences" session. - @result The list of Ethernet Bond interfaces on the system. - You must release the returned value. - */ -CFArrayRef /* of SCBondInterfaceRef's */ -SCBondInterfaceCopyAll (SCPreferencesRef prefs) __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); - -/*! - @function SCBondInterfaceCopyAvailableMemberInterfaces - @discussion Returns all network capable devices on the system - that can be added to an Ethernet Bond interface. - @param prefs The "preferences" session. - @result The list of interfaces. - You must release the returned value. - */ -CFArrayRef /* of SCNetworkInterfaceRef's */ -SCBondInterfaceCopyAvailableMemberInterfaces (SCPreferencesRef prefs) __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); - -/*! - @function SCBondInterfaceCreate - @discussion Create a new SCBondInterface interface. - @param prefs The "preferences" session. - @result A reference to the new SCBondInterface. - You must release the returned value. - */ -SCBondInterfaceRef __nullable -SCBondInterfaceCreate (SCPreferencesRef prefs) __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); - -/*! - @function SCBondInterfaceRemove - @discussion Removes the SCBondInterface from the configuration. - @param bond The SCBondInterface interface. - @result TRUE if the interface was removed; FALSE if an error was encountered. - */ -Boolean -SCBondInterfaceRemove (SCBondInterfaceRef bond) __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); - -/*! - @function SCBondInterfaceGetMemberInterfaces - @discussion Returns the member interfaces for the specified Ethernet Bond interface. - @param bond The SCBondInterface interface. - @result The list of interfaces. - */ -CFArrayRef /* of SCNetworkInterfaceRef's */ __nullable -SCBondInterfaceGetMemberInterfaces (SCBondInterfaceRef bond) __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); - -/*! - @function SCBondInterfaceGetOptions - @discussion Returns the configuration settings associated with a Ethernet Bond interface. - @param bond The SCBondInterface interface. - @result The configuration settings associated with the Ethernet Bond interface; - NULL if no changes to the default configuration have been saved. - */ -CFDictionaryRef __nullable -SCBondInterfaceGetOptions (SCBondInterfaceRef bond) __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); - -/*! - @function SCBondInterfaceSetMemberInterfaces - @discussion Sets the member interfaces for the specified Ethernet Bond interface. - @param bond The SCBondInterface interface. - @param members The desired member interfaces. - @result TRUE if the configuration was stored; FALSE if an error was encountered. - */ -Boolean -SCBondInterfaceSetMemberInterfaces (SCBondInterfaceRef bond, - CFArrayRef members) /* of SCNetworkInterfaceRef's */ - __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); - -/*! - @function SCBondInterfaceSetLocalizedDisplayName - @discussion Sets the localized display name for the specified Ethernet Bond interface. - @param bond The SCBondInterface interface. - @param newName The new display name. - @result TRUE if the configuration was stored; FALSE if an error was encountered. - */ -Boolean -SCBondInterfaceSetLocalizedDisplayName (SCBondInterfaceRef bond, - CFStringRef newName) __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); - -/*! - @function SCBondInterfaceSetOptions - @discussion Sets the configuration settings for the specified Ethernet Bond interface. - @param bond The SCBondInterface interface. - @param newOptions The new configuration settings. - @result TRUE if the configuration was stored; FALSE if an error was encountered. - */ -Boolean -SCBondInterfaceSetOptions (SCBondInterfaceRef bond, - CFDictionaryRef newOptions) __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); - -#pragma mark - - -/*! - @function SCBondInterfaceCopyStatus - @discussion Returns the status of the specified Ethernet Bond interface. - @param bond The SCBondInterface interface. - @result The status associated with the interface. - You must release the returned value. - */ -SCBondStatusRef __nullable -SCBondInterfaceCopyStatus (SCBondInterfaceRef bond) __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); - -/*! - @function SCBondStatusGetTypeID - @discussion Returns the type identifier of all SCBondStatus instances. - */ -CFTypeID -SCBondStatusGetTypeID (void) __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); - -/*! - @function SCBondStatusGetMemberInterfaces - @discussion Returns the member interfaces that are represented with the - Ethernet Bond interface. - @param bondStatus The Ethernet Bond status. - @result The list of interfaces. - */ -CFArrayRef __nullable /* of SCNetworkInterfaceRef's */ -SCBondStatusGetMemberInterfaces (SCBondStatusRef bondStatus) __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); - -/*! - @function SCBondStatusGetInterfaceStatus - @discussion Returns the status of a specific member interface of an - Ethernet Bond or the status of the bond as a whole. - @param bondStatus The Ethernet Bond status. - @param interface The specific member interface; NULL if you want the - status of the Ethernet Bond. - @result The interface status. - - Note: at present, no information about the status of the Ethernet - Bond is returned. As long as one member interface is active - then the bond should be operational. - */ -CFDictionaryRef __nullable -SCBondStatusGetInterfaceStatus (SCBondStatusRef bondStatus, - SCNetworkInterfaceRef __nullable interface) __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); - -/*! - @group Interface configuration (VLAN) - */ - -#pragma mark - -#pragma mark SCVLANInterface configuration (APIs) - -/*! - @function SCVLANInterfaceCopyAll - @discussion Returns all VLAN interfaces on the system. - @result The list of VLAN interfaces on the system. - You must release the returned value. - */ -CFArrayRef /* of SCVLANInterfaceRef's */ -SCVLANInterfaceCopyAll (SCPreferencesRef prefs) __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); - -/*! - @function SCVLANInterfaceCopyAvailablePhysicalInterfaces - @discussion Returns the network capable devices on the system - that can be associated with a VLAN interface. - @result The list of interfaces. - You must release the returned value. - */ -CFArrayRef /* of SCNetworkInterfaceRef's */ -SCVLANInterfaceCopyAvailablePhysicalInterfaces (void) __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); - -/*! - @function SCVLANInterfaceCreate - @discussion Create a new SCVLANInterface interface. - @param prefs The "preferences" session. - @param physical The physical interface to associate with the VLAN. - @param tag The tag to associate with the VLAN. - @result A reference to the new SCVLANInterface. - You must release the returned value. - - Note: the tag must be in the range (1 <= tag <= 4094) - */ -SCVLANInterfaceRef __nullable -SCVLANInterfaceCreate (SCPreferencesRef prefs, - SCNetworkInterfaceRef physical, - CFNumberRef tag) __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); - -/*! - @function SCVLANInterfaceRemove - @discussion Removes the SCVLANInterface from the configuration. - @param vlan The SCVLANInterface interface. - @result TRUE if the interface was removed; FALSE if an error was encountered. - */ -Boolean -SCVLANInterfaceRemove (SCVLANInterfaceRef vlan) __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); - -/*! - @function SCVLANInterfaceGetPhysicalInterface - @discussion Returns the physical interface for the specified VLAN interface. - @param vlan The SCVLANInterface interface. - @result The list of interfaces. - */ -SCNetworkInterfaceRef __nullable -SCVLANInterfaceGetPhysicalInterface (SCVLANInterfaceRef vlan) __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); - -/*! - @function SCVLANInterfaceGetTag - @discussion Returns the tag for the specified VLAN interface. - @param vlan The SCVLANInterface interface. - @result The tag. - */ -CFNumberRef __nullable -SCVLANInterfaceGetTag (SCVLANInterfaceRef vlan) __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); - -/*! - @function SCVLANInterfaceGetOptions - @discussion Returns the configuration settings associated with the VLAN interface. - @param vlan The SCVLANInterface interface. - @result The configuration settings associated with the VLAN interface; - NULL if no changes to the default configuration have been saved. - */ -CFDictionaryRef __nullable -SCVLANInterfaceGetOptions (SCVLANInterfaceRef vlan) __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); - -/*! - @function SCVLANInterfaceSetPhysicalInterfaceAndTag - @discussion Updates the specified VLAN interface. - @param vlan The SCVLANInterface interface. - @param physical The physical interface to associate with the VLAN. - @param tag The tag to associate with the VLAN. - @result TRUE if the configuration was stored; FALSE if an error was encountered. - - Note: the tag must be in the range (1 <= tag <= 4094) - */ -Boolean -SCVLANInterfaceSetPhysicalInterfaceAndTag (SCVLANInterfaceRef vlan, - SCNetworkInterfaceRef physical, - CFNumberRef tag) __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); - -/*! - @function SCVLANInterfaceSetLocalizedDisplayName - @discussion Sets the localized display name for the specified VLAN interface. - @param vlan The SCVLANInterface interface. - @param newName The new display name. - @result TRUE if the configuration was stored; FALSE if an error was encountered. - */ -Boolean -SCVLANInterfaceSetLocalizedDisplayName (SCVLANInterfaceRef vlan, - CFStringRef newName) __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); - -/*! - @function SCVLANInterfaceSetOptions - @discussion Sets the configuration settings for the specified VLAN interface. - @param vlan The SCVLANInterface interface. - @param newOptions The new configuration settings. - @result TRUE if the configuration was stored; FALSE if an error was encountered. - */ -Boolean -SCVLANInterfaceSetOptions (SCVLANInterfaceRef vlan, - CFDictionaryRef newOptions) __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); - - -/* -------------------------------------------------------------------------------- - * PROTOCOLS - * -------------------------------------------------------------------------------- */ - -/*! - @group Protocol configuration - */ - -#pragma mark - -#pragma mark SCNetworkProtocol configuration (APIs) - -/*! - @function SCNetworkProtocolGetTypeID - @discussion Returns the type identifier of all SCNetworkProtocol instances. - */ -CFTypeID -SCNetworkProtocolGetTypeID (void) __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @function SCNetworkProtocolGetConfiguration - @discussion Returns the configuration settings associated with the protocol. - @param protocol The network protocol. - @result The configuration settings associated with the protocol; - NULL if no configuration settings are associated with the protocol - or an error was encountered. - */ -CFDictionaryRef __nullable -SCNetworkProtocolGetConfiguration (SCNetworkProtocolRef protocol) __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @function SCNetworkProtocolGetEnabled - @discussion Returns whether this protocol has been enabled. - @param protocol The network protocol. - @result TRUE if the protocol is enabled. - */ -Boolean -SCNetworkProtocolGetEnabled (SCNetworkProtocolRef protocol) __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @function SCNetworkProtocolGetProtocolType - @discussion Returns the associated network protocol type. - @param protocol The network protocol. - @result The protocol type. - */ -CFStringRef __nullable -SCNetworkProtocolGetProtocolType (SCNetworkProtocolRef protocol) __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @function SCNetworkProtocolSetConfiguration - @discussion Stores the configuration settings for the protocol. - @param protocol The network protocol. - @param config The configuration settings to associate with this protocol. - @result TRUE if the configuration was stored; FALSE if an error was encountered. - */ -Boolean -SCNetworkProtocolSetConfiguration (SCNetworkProtocolRef protocol, - CFDictionaryRef config) __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @function SCNetworkProtocolSetEnabled - @discussion Enables or disables the protocol. - @param protocol The network protocol. - @param enabled TRUE if the protocol should be enabled. - @result TRUE if the enabled status was saved; FALSE if an error was encountered. - */ -Boolean -SCNetworkProtocolSetEnabled (SCNetworkProtocolRef protocol, - Boolean enabled) __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/* -------------------------------------------------------------------------------- - * SERVICES - * -------------------------------------------------------------------------------- */ - -/*! - @group Service configuration - */ - -#pragma mark - -#pragma mark SCNetworkService configuration (APIs) - -/*! - @function SCNetworkServiceGetTypeID - @discussion Returns the type identifier of all SCNetworkService instances. - */ -CFTypeID -SCNetworkServiceGetTypeID (void) __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @function SCNetworkServiceAddProtocolType - @discussion Adds a network protocol of the specified type to the - service. The protocal configuration is set to default values - that are appropriate for the interface associated with the - service. - @param service The network service. - @param protocolType The type of SCNetworkProtocol to be added to the service. - @result TRUE if the protocol was added to the service; FALSE if the - protocol was already present or an error was encountered. - */ -Boolean -SCNetworkServiceAddProtocolType (SCNetworkServiceRef service, - CFStringRef protocolType) __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @function SCNetworkServiceCopyAll - @discussion Returns all available network services for the specified preferences. - @param prefs The "preferences" session. - @result The list of SCNetworkService services associated with the preferences. - You must release the returned value. - */ -CFArrayRef /* of SCNetworkServiceRef's */ __nullable -SCNetworkServiceCopyAll (SCPreferencesRef prefs) __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @function SCNetworkServiceCopyProtocols - @discussion Returns all network protocols associated with the service. - @param service The network service. - @result The list of SCNetworkProtocol protocols associated with the service. - You must release the returned value. - */ -CFArrayRef /* of SCNetworkProtocolRef's */ __nullable -SCNetworkServiceCopyProtocols (SCNetworkServiceRef service) __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @function SCNetworkServiceCreate - @discussion Create a new network service for the specified interface in the - configuration. - @param prefs The "preferences" session. - @result A reference to the new SCNetworkService. - You must release the returned value. - */ -SCNetworkServiceRef __nullable -SCNetworkServiceCreate (SCPreferencesRef prefs, - SCNetworkInterfaceRef interface) __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @function SCNetworkServiceCopy - @discussion Returns the network service with the specified identifier. - @param prefs The "preferences" session. - @param serviceID The unique identifier for the service. - @result A reference to the SCNetworkService from the associated preferences; - NULL if the serviceID does not exist in the preferences or if an - error was encountered. - You must release the returned value. - */ -SCNetworkServiceRef __nullable -SCNetworkServiceCopy (SCPreferencesRef prefs, - CFStringRef serviceID) __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @function SCNetworkServiceEstablishDefaultConfiguration - @discussion Establishes the "default" configuration for a network - service. This configuration includes the addition of - network protocols for the service (with "default" - configuration options). - @param service The network service. - @result TRUE if the configuration was updated; FALSE if an error was encountered. -*/ -Boolean -SCNetworkServiceEstablishDefaultConfiguration (SCNetworkServiceRef service) __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); - -/*! - @function SCNetworkServiceGetEnabled - @discussion Returns whether this service has been enabled. - @param service The network service. - @result TRUE if the service is enabled. - */ -Boolean -SCNetworkServiceGetEnabled (SCNetworkServiceRef service) __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @function SCNetworkServiceGetInterface - @discussion Returns the network interface associated with the service. - @param service The network service. - @result A reference to the SCNetworkInterface associated with the service; - NULL if an error was encountered. - */ -SCNetworkInterfaceRef __nullable -SCNetworkServiceGetInterface (SCNetworkServiceRef service) __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @function SCNetworkServiceGetName - @discussion Returns the [user specified] name associated with the service. - @param service The network service. - @result The [user specified] name. - */ -CFStringRef __nullable -SCNetworkServiceGetName (SCNetworkServiceRef service) __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @function SCNetworkServiceCopyProtocol - @discussion Returns the network protocol of the specified type for - the service. - @param service The network service. - @result A reference to the SCNetworkProtocol associated with the service; - NULL if this protocol has not been added or if an error was encountered. - You must release the returned value. - */ -SCNetworkProtocolRef __nullable -SCNetworkServiceCopyProtocol (SCNetworkServiceRef service, - CFStringRef protocolType) __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @function SCNetworkServiceGetServiceID - @discussion Returns the identifier for the service. - @param service The network service. - @result The service identifier. - */ -CFStringRef __nullable -SCNetworkServiceGetServiceID (SCNetworkServiceRef service) __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @function SCNetworkServiceRemove - @discussion Removes the network service from the configuration. - @param service The network service. - @result TRUE if the service was removed; FALSE if an error was encountered. - */ -Boolean -SCNetworkServiceRemove (SCNetworkServiceRef service) __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @function SCNetworkServiceRemoveProtocolType - @discussion Removes the network protocol of the specified type from the service. - @param service The network service. - @param protocolType The type of SCNetworkProtocol to be removed from the service. - @result TRUE if the protocol was removed to the service; FALSE if the - protocol was not configured or an error was encountered. - */ -Boolean -SCNetworkServiceRemoveProtocolType (SCNetworkServiceRef service, - CFStringRef protocolType) __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @function SCNetworkServiceSetEnabled - @discussion Enables or disables the service. - @param service The network service. - @param enabled TRUE if the service should be enabled. - @result TRUE if the enabled status was saved; FALSE if an error was encountered. - */ -Boolean -SCNetworkServiceSetEnabled (SCNetworkServiceRef service, - Boolean enabled) __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @function SCNetworkServiceSetName - @discussion Stores the [user specified] name for the service. - @param service The network service. - @param name The [user defined] name to associate with the service. - @result TRUE if the name was saved; FALSE if an error was encountered. - - Note: although not technically required, the [user specified] names - for all services within any given set should be unique. As such, an - error will be returned if you attemp to name two services with the - same string. - */ -Boolean -SCNetworkServiceSetName (SCNetworkServiceRef service, - CFStringRef name) __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - - -/* -------------------------------------------------------------------------------- - * SETS - * -------------------------------------------------------------------------------- */ - -/*! - @group Set configuration - */ - -#pragma mark - -#pragma mark SCNetworkSet configuration (APIs) - -/*! - @function SCNetworkSetGetTypeID - @discussion Returns the type identifier of all SCNetworkSet instances. - */ -CFTypeID -SCNetworkSetGetTypeID (void) __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @function SCNetworkSetAddService - @discussion Adds the network service to the set. - @param set The network set. - @param service The service to be added. - @result TRUE if the service was added to the set; FALSE if the - service was already present or an error was encountered. - - Note: prior to Mac OS X 10.5, the Network Preferences UI - did not support having a single service being a member of - more than one set. An error will be returned if you attempt - to add a service to more than one set on a pre-10.5 system. - */ -Boolean -SCNetworkSetAddService (SCNetworkSetRef set, - SCNetworkServiceRef service) __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @function SCNetworkSetContainsInterface - @discussion Checks if an interface is represented by at least one - network service in the specified set. - @param set The network set. - @param interface The network interface. - @result TRUE if the interface is represented in the set; FALSE if not. - */ -Boolean -SCNetworkSetContainsInterface (SCNetworkSetRef set, - SCNetworkInterfaceRef interface) __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); - -/*! - @function SCNetworkSetCopyAll - @discussion Returns all available sets for the specified preferences. - @param prefs The "preferences" session. - @result The list of SCNetworkSet sets associated with the preferences. - You must release the returned value. - */ -CFArrayRef /* of SCNetworkSetRef's */ __nullable -SCNetworkSetCopyAll (SCPreferencesRef prefs) __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @function SCNetworkSetCopyCurrent - @discussion Returns the "current" set. - @param prefs The "preferences" session. - @result The current set; NULL if no current set has been defined. - */ -SCNetworkSetRef __nullable -SCNetworkSetCopyCurrent (SCPreferencesRef prefs) __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @function SCNetworkSetCopyServices - @discussion Returns all network services associated with the set. - @param set The network set. - @result The list of SCNetworkService services associated with the set. - You must release the returned value. - */ -CFArrayRef /* of SCNetworkServiceRef's */ __nullable -SCNetworkSetCopyServices (SCNetworkSetRef set) __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @function SCNetworkSetCreate - @discussion Create a new set in the configuration. - @param prefs The "preferences" session. - @result A reference to the new SCNetworkSet. - You must release the returned value. - */ -SCNetworkSetRef __nullable -SCNetworkSetCreate (SCPreferencesRef prefs) __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @function SCNetworkSetCopy - @discussion Returns the set with the specified identifier. - @param prefs The "preferences" session. - @param setID The unique identifier for the set. - @result A reference to the SCNetworkSet from the associated preferences; - NULL if the setID does not exist in the preferences or if an - error was encountered. - You must release the returned value. - */ -SCNetworkSetRef __nullable -SCNetworkSetCopy (SCPreferencesRef prefs, - CFStringRef setID) __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @function SCNetworkSetGetName - @discussion Returns the [user specified] name associated with the set. - @param set The network set. - @result The [user specified] name. - */ -CFStringRef __nullable -SCNetworkSetGetName (SCNetworkSetRef set) __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @function SCNetworkSetGetSetID - @discussion Returns the identifier for the set. - @param set The network set. - @result The set identifier. - */ -CFStringRef __nullable -SCNetworkSetGetSetID (SCNetworkSetRef set) __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @function SCNetworkSetGetServiceOrder - @discussion Returns the [user specified] ordering of network services - within the set. - @param set The network set. - @result The ordered list of CFStringRef service identifiers associated - with the set; - NULL if no service order has been specified or if an error - was encountered. - */ -CFArrayRef /* of serviceID CFStringRef's */ __nullable -SCNetworkSetGetServiceOrder (SCNetworkSetRef set) __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @function SCNetworkSetRemove - @discussion Removes the set from the configuration. - @param set The network set. - @result TRUE if the set was removed; FALSE if an error was encountered. - */ -Boolean -SCNetworkSetRemove (SCNetworkSetRef set) __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @function SCNetworkSetRemoveService - @discussion Removes the network service from the set. - @param set The network set. - @param service The service to be removed. - @result TRUE if the service was removed from the set; FALSE if the - service was not already present or an error was encountered. - */ -Boolean -SCNetworkSetRemoveService (SCNetworkSetRef set, - SCNetworkServiceRef service) __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @function SCNetworkSetSetCurrent - @discussion Specifies the set that should be the "current" set. - @param set The network set. - @result TRUE if the current set was updated; - FALSE if an error was encountered. - */ -Boolean -SCNetworkSetSetCurrent (SCNetworkSetRef set) __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @function SCNetworkSetSetName - @discussion Stores the [user specified] name for the set. - @param set The network set. - @param name The [user defined] name to associate with the set. - @result TRUE if the name was saved; FALSE if an error was encountered. - - Note: although not technically required, the [user specified] names - for all set should be unique. As such, an error will be returned if - you attemp to name two sets with the same string. - */ -Boolean -SCNetworkSetSetName (SCNetworkSetRef set, - CFStringRef name) __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @function SCNetworkSetSetServiceOrder - @discussion Stores the [user specified] ordering of network services for the set. - @param set The network set. - @param newOrder The ordered list of CFStringRef service identifiers for the set. - @result TRUE if the new service order was saved; FALSE if an error was encountered. - */ -Boolean -SCNetworkSetSetServiceOrder (SCNetworkSetRef set, - CFArrayRef newOrder) __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); /* serviceID CFStringRef's */ - - -__END_DECLS - -CF_ASSUME_NONNULL_END -CF_IMPLICIT_BRIDGING_DISABLED - -#endif /* _SCNETWORKCONFIGURATION_H */ diff --git a/Clocker/Frameworks/SystemConfiguration.framework/Versions/A/Headers/SCNetworkConnection.h b/Clocker/Frameworks/SystemConfiguration.framework/Versions/A/Headers/SCNetworkConnection.h deleted file mode 100644 index f3ec16f..0000000 --- a/Clocker/Frameworks/SystemConfiguration.framework/Versions/A/Headers/SCNetworkConnection.h +++ /dev/null @@ -1,566 +0,0 @@ -/* - * Copyright (c) 2003-2006, 2008-2010, 2015 Apple Inc. All rights reserved. - * - * @APPLE_LICENSE_HEADER_START@ - * - * This file contains Original Code and/or Modifications of Original Code - * as defined in and that are subject to the Apple Public Source License - * Version 2.0 (the 'License'). You may not use this file except in - * compliance with the License. Please obtain a copy of the License at - * http://www.opensource.apple.com/apsl/ and read it before using this - * file. - * - * The Original Code and all software distributed under the License are - * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER - * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, - * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. - * Please see the License for the specific language governing rights and - * limitations under the License. - * - * @APPLE_LICENSE_HEADER_END@ - */ - -#ifndef _SCNETWORKCONNECTION_H -#define _SCNETWORKCONNECTION_H - -#include -#include -#include -#include -#include -#include -#include -#include - -CF_IMPLICIT_BRIDGING_ENABLED -CF_ASSUME_NONNULL_BEGIN - -/*! - @header SCNetworkConnection - @discussion The SCNetworkConnection API contains functions that allow - an application to control connection-oriented services defined - in the system and get connection-status information. - - The functions in the SCNetworkConnection API allow you to - control and get information about existing services only. - If you need to create, change, or remove services, you - should use the SCNetworkConfiguration API instead. - - Note: Currently, only PPP services can be controlled. - */ - - -/*! - @typedef SCNetworkConnectionRef - @discussion This is the handle to manage a connection-oriented service. - */ -typedef const struct CF_BRIDGED_TYPE(id) __SCNetworkConnection * SCNetworkConnectionRef; - - -/*! - @typedef SCNetworkConnectionContext - @discussion Structure containing user-specified data and callbacks - for a SCNetworkConnection. - @field version The version number of the structure type being passed - in as a parameter to the SCNetworkConnectionCreateWithServiceID - function. This structure is version 0. - @field info A C pointer to a user-specified block of data. - @field retain The callback used to add a retain for the info field. - If this parameter is not a pointer to a function of the correct - prototype, the behavior is undefined. The value may be NULL. - @field release The calllback used to remove a retain previously added - for the info field. If this parameter is not a pointer to a - function of the correct prototype, the behavior is undefined. - The value may be NULL. - @field copyDescription The callback used to provide a description of - the info field. - */ -typedef struct { - CFIndex version; - void * __nullable info; - const void * __nonnull (* __nullable retain)(const void *info); - void (* __nullable release)(const void *info); - CFStringRef __nonnull (* __nullable copyDescription)(const void *info); -} SCNetworkConnectionContext; - - - -/*! - @enum SCNetworkConnectionStatus - @discussion Status of the network connection. - This status is intended to be generic and high level. - An extended status, specific to the type of network - connection is also available for applications that - need additonal information. - @constant kSCNetworkConnectionInvalid - The network connection refers to an invalid service. - @constant kSCNetworkConnectionDisconnected - The network connection is disconnected. - @constant kSCNetworkConnectionConnecting - The network connection is connecting. - @constant kSCNetworkConnectionConnected - The network connection is connected. - @constant kSCNetworkConnectionDisconnecting - The network connection is disconnecting. - */ -typedef CF_ENUM(int32_t, SCNetworkConnectionStatus) { - kSCNetworkConnectionInvalid = -1, - kSCNetworkConnectionDisconnected = 0, - kSCNetworkConnectionConnecting = 1, - kSCNetworkConnectionConnected = 2, - kSCNetworkConnectionDisconnecting = 3 -}; - - -/*! - @enum SCNetworkConnectionPPPStatus - @discussion PPP-specific status of the network connection. - This status is returned as part of the extended information - for a PPP service. - Note: additional status might be returned in the future. - Your application should be prepared to receive an unknown value. - @constant kSCNetworkConnectionPPPDisconnected - PPP is disconnected. - @constant kSCNetworkConnectionPPPInitializing - PPP is initializing. - @constant kSCNetworkConnectionPPPConnectingLink - PPP is connecting the lower connection layer (for example, - the modem is dialing out). - @constant kSCNetworkConnectionPPPDialOnTraffic - PPP is waiting for networking traffic to automatically - establish the connection. - @constant kSCNetworkConnectionPPPNegotiatingLink - The PPP lower layer is connected and PPP is negotiating the - link layer (LCP protocol). - @constant kSCNetworkConnectionPPPAuthenticating - PPP is authenticating to the server (PAP, CHAP, MS-CHAP or - EAP protocols). - @constant kSCNetworkConnectionPPPWaitingForCallBack - PPP is waiting for the server to call back. - @constant kSCNetworkConnectionPPPNegotiatingNetwork - PPP is now authenticated and negotiating the networking - layer (IPCP or IPv6CP protocols) - @constant kSCNetworkConnectionPPPConnected - PPP is now fully connected for at least one networking layer. - Additional networking protocol might still be negotiating. - @constant kSCNetworkConnectionPPPTerminating - PPP networking and link protocols are terminating. - @constant kSCNetworkConnectionPPPDisconnectingLink - PPP is disconnecting the lower level (for example, the modem - is hanging up). - @constant kSCNetworkConnectionPPPHoldingLinkOff - PPP is disconnected and maintaining the link temporarily off. - @constant kSCNetworkConnectionPPPSuspended - PPP is suspended as a result of the suspend command (for - example, when a V.92 Modem is On Hold). - @constant kSCNetworkConnectionPPPWaitingForRedial - PPP has found a busy server and is waiting for redial. - */ -typedef CF_ENUM(int32_t, SCNetworkConnectionPPPStatus) { - kSCNetworkConnectionPPPDisconnected = 0, - kSCNetworkConnectionPPPInitializing = 1, - kSCNetworkConnectionPPPConnectingLink = 2, - kSCNetworkConnectionPPPDialOnTraffic = 3, - kSCNetworkConnectionPPPNegotiatingLink = 4, - kSCNetworkConnectionPPPAuthenticating = 5, - kSCNetworkConnectionPPPWaitingForCallBack = 6, - kSCNetworkConnectionPPPNegotiatingNetwork = 7, - kSCNetworkConnectionPPPConnected = 8, - kSCNetworkConnectionPPPTerminating = 9, - kSCNetworkConnectionPPPDisconnectingLink = 10, - kSCNetworkConnectionPPPHoldingLinkOff = 11, - kSCNetworkConnectionPPPSuspended = 12, - kSCNetworkConnectionPPPWaitingForRedial = 13 -}; - -/*! - @typedef SCNetworkConnectionCallBack - @discussion Type of the callback function used when a - status event is delivered. - @param status The connection status. - @param connection The connection reference. - @param info Application-specific information. - */ -typedef void (*SCNetworkConnectionCallBack) ( - SCNetworkConnectionRef connection, - SCNetworkConnectionStatus status, - void * __nullable info - ); - - - -/* - Keys for the statistics dictionary -*/ - -#define kSCNetworkConnectionBytesIn CFSTR("BytesIn") /* CFNumber */ -#define kSCNetworkConnectionBytesOut CFSTR("BytesOut") /* CFNumber */ -#define kSCNetworkConnectionPacketsIn CFSTR("PacketsIn") /* CFNumber */ -#define kSCNetworkConnectionPacketsOut CFSTR("PacketsOut") /* CFNumber */ -#define kSCNetworkConnectionErrorsIn CFSTR("ErrorsIn") /* CFNumber */ -#define kSCNetworkConnectionErrorsOut CFSTR("ErrorsOut") /* CFNumber */ - - -/* - Keys for the SCNetworkConnectionCopyUserPreferences() "selectionOptions" - dictionary - */ - -/*! - @define kSCNetworkConnectionSelectionOptionOnDemandHostName - @discussion A host name that will be used to select the - "best" SCNetworkConnection. - */ -#define kSCNetworkConnectionSelectionOptionOnDemandHostName CFSTR("OnDemandHostName") // CFString - // __OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA) - -/*! - @define kSCNetworkConnectionSelectionOptionOnDemandRetry - @discussion A boolean value used to indicate whether a DNS query has - already been issued for the specified OnDemand host name. - */ -#define kSCNetworkConnectionSelectionOptionOnDemandRetry CFSTR("OnDemandRetry") // CFBoolean - // __OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA) - -__BEGIN_DECLS - -/*! - @function SCNetworkConnectionGetTypeID - @discussion Returns the type identifier of all SCNetworkConnection - instances. - */ -CFTypeID -SCNetworkConnectionGetTypeID (void) __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA); - - -/*! - @function SCNetworkConnectionCopyUserPreferences - @discussion Provides the default service ID and a dictionary of user - options for the connection. Applications can use the - returned serviceID and userOptions values to open a - connection on the fly. - @param selectionOptions Currently unimplemented. Pass NULL for this - version. - @param serviceID Reference to the default serviceID for starting - connections, this value will be returned by the function. - @param userOptions Reference to default userOptions for starting - connections, this will be returned by the function. - @result Returns TRUE if there is a valid service to dial; - FALSE if the function was unable to retrieve a service to dial. - */ -Boolean -SCNetworkConnectionCopyUserPreferences ( - CFDictionaryRef __nullable selectionOptions, - CFStringRef __nonnull * __nullable serviceID, - CFDictionaryRef __nonnull * __nullable userOptions - ) __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA); - - -/*! - @function SCNetworkConnectionCreateWithServiceID - @discussion Creates a new connection reference to use for getting - the status or for connecting or disconnecting the associated - service. - @param allocator The CFAllocator that should be used to allocate - memory for the connection structure. This parameter may be - NULL in which case the current default CFAllocator is used. - If this reference is not a valid CFAllocator, the behavior - is undefined. - @param serviceID A string that defines the service identifier - of the connection. Service identifiers uniquely identify - services in the system configuration database. - @param callout The function to be called when the status - of the connection changes. If this parameter is NULL, the - application will not receive notifications of status change - and will need to poll for updates. - @param context The SCNetworkConnectionContext associated with the - callout. - @result Returns a reference to the new SCNetworkConnection. - */ -SCNetworkConnectionRef __nullable -SCNetworkConnectionCreateWithServiceID ( - CFAllocatorRef __nullable allocator, - CFStringRef serviceID, - SCNetworkConnectionCallBack __nullable callout, - SCNetworkConnectionContext * __nullable context - ) __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA); - - -/*! - @function SCNetworkConnectionCopyServiceID - @discussion Returns the service ID associated with the SCNetworkConnection. - @param connection The SCNetworkConnection to obtain status from. - @result Returns the service ID associated with the SCNetworkConnection. - */ -CFStringRef __nullable -SCNetworkConnectionCopyServiceID ( - SCNetworkConnectionRef connection - ) __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA); - - -/*! - @function SCNetworkConnectionGetStatus - @discussion Returns the status of the SCNetworkConnection. - A status is one of the following values: -
-@textblock
- 
-	kSCNetworkConnectionInvalid
-	kSCNetworkConnectionDisconnected
-	kSCNetworkConnectionConnecting
-	kSCNetworkConnectionDisconnecting
-	kSCNetworkConnectionConnected
-@/textblock
-
- @param connection The SCNetworkConnection to obtain status from. - @result Returns the status value. -*/ -SCNetworkConnectionStatus -SCNetworkConnectionGetStatus ( - SCNetworkConnectionRef connection - ) __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA); - - -/*! - @function SCNetworkConnectionCopyExtendedStatus - @discussion Returns the extended status of the connection. - An extended status dictionary contains specific dictionaries - describing the status for each subcomponent of the service. - - For example, a status dictionary will contain the following - sub-dictionaries, keys, and values: -
-@textblock
- 
-	IPv4  : Addresses      : the assigned IP address.
- 
-	PPP   : Status         : the PPP-specific status of type
-				 SCNetworkConnectionPPPStatus.
- 
-		LastCause      : Available when the status is "Disconnected"
-				 and contains the last error associated with
-				 connecting or disconnecting.
- 
-		ConnectTime    : the time when the connection was
-				 established.
- 
-	Modem : ConnectSpeed   : the speed of the modem connection
-				 in bits/second.
- 
-	IPSec : Status         : the IPSec-specific status of type
-				 SCNetworkConnectionIPSecStatus
- 
-		ConnectTime    : the time when the connection was
-				 established.
-
-@/textblock
-
- Other dictionaries could be present for PPPoE, PPTP, and L2TP. - - The status dictionary may be extended in the future to contain - additional information. - @param connection The SCNetworkConnection to obtain status from. - @result Returns the status dictionary. - If NULL is returned, the error can be retrieved using the SCError function. - */ -CFDictionaryRef __nullable -SCNetworkConnectionCopyExtendedStatus ( - SCNetworkConnectionRef connection - ) __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA); - - -/*! - @function SCNetworkConnectionCopyStatistics - @discussion Returns the statistics of the SCNetworkConnection. - A statistic dictionary contains specific dictionaries - with statistics for each subcomponent of the service. - - For example, a statistics dictionary will contain the following - sub-dictionaries, keys, and values: -
-@textblock
- 
-	PPP : BytesIn    :
-	PPP : BytesOut   : Contains the number of bytes going up into
-			   (or coming out of) the network stack for
-			   any networking protocol without the PPP
-			   headers and trailers.
- 
-	PPP : PacketsIn  :
-	PPP : PacketsOut : Contains the number of packets going up into
-			   (or coming out of) the network stack for
-			   any networking protocol without the PPP
-			   headers and trailers.
- 
-	PPP : ErrorsIn   :
-	PPP : ErrorsOut  : Contains the number of errors going up into
-			   (or coming out of) the network stack for
-			   any networking protocol without the PPP
-			   headers and trailers.
-@/textblock
-
- The statistics dictionary may be extended in the future to - contain additional information. - @param connection The SCNetworkConnection to obtained statistics from. - @result Returns the statistics dictionary. - If NULL is returned, the error can be retrieved using the SCError function. - */ -CFDictionaryRef __nullable -SCNetworkConnectionCopyStatistics ( - SCNetworkConnectionRef connection - ) __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA); - - -/*! - @function SCNetworkConnectionStart - @discussion Starts the connection for the SCNetworkConnection. - The connection process is asynchronous and the function will - return immediately. The connection status can be obtained - by polling or by callback. The connection is made with the - default settings from the administrator. Some of the settings - can be overridden for the duration of the connection. These - are specified in an options dictionary. The options dictionary - uses the same format as a network service defined in the system - configuration preferences schema. - - Note: Starting and stopping of connections is implicitly - arbitrated. Calling SCNetworkConnectionStart on a connection - already started will indicate that the application has - interest in the connection and it shouldn't be stopped by - anyone else. - @param connection The SCNetworkConnection to start. - @param userOptions The options dictionary to start the connection with. - If userOptions is NULL, the default settings will be used. - If userOptions are specified, they must be in the same format - as network services stored in the system configuration - preferences schema. The options will override the default - settings defined for the service. - - For security reasons, not all options can be overridden; the - appropriate merging of all settings will be done before the - connection is established, and inappropriate options will be - ignored. - @param linger This parameter indicates whether or not the connection - can stay around when the application no longer has interest - in it. A typical application should pass FALSE, and the - connection will be automatically stopped when the reference - is released or if the application quits. If the application - passes TRUE, the application can release the reference or - exit and the connection will be maintained until a timeout - event, until a specific stop request occurs, or until an - error is encountered. - @result Returns TRUE if the connection was correctly started (the - actual connection is not established yet, and the connection - status needs to be periodically checked); FALSE if the - connection request was not started. The error must be - retrieved from the SCError function. - */ -Boolean -SCNetworkConnectionStart ( - SCNetworkConnectionRef connection, - CFDictionaryRef __nullable userOptions, - Boolean linger - ) __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA); - - -/*! - @function SCNetworkConnectionStop - @discussion Stops the connection for the SCNetworkConnection. - The disconnection process is asynchronous and the function - will return immediately. The connection status can be - obtained by polling or by callback. This function performs - an arbitrated stop of the connection. If several applications - have marked their interest in the connection, by calling - SCNetworkConnectionStart, the call will succeed but the - actual connection will be maintained until the last interested - application calls SCNetworkConnectionStop. - - In certain cases, you might want to stop the connection anyway. - In these cases, you set the forceDisconnect argument to TRUE. - @param connection The SCNetworkConnection to stop. - @result Returns TRUE if the disconnection request succeeded; - FALSE if the disconnection request failed. - The error must be retrieved from the SCError function. - */ -Boolean -SCNetworkConnectionStop ( - SCNetworkConnectionRef connection, - Boolean forceDisconnect - ) __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA); - - -/*! - @function SCNetworkConnectionCopyUserOptions - @discussion Copies the user options used to start the connection. - This is a mechanism a client can use to retrieve the user options - previously passed to the SCNetworkConnectionStart function. - @param connection The SCNetworkConnection to obtain options from. - @result Returns the service dictionary containing the connection options. - The dictionary can be empty if no user options were used. - If NULL is returned, the error can be retrieved using the SCError function. - */ -CFDictionaryRef __nullable -SCNetworkConnectionCopyUserOptions ( - SCNetworkConnectionRef connection - ) __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA); - - -/*! - @function SCNetworkConnectionScheduleWithRunLoop - @discussion Schedules a connection with the run loop. - @param connection The SCNetworkConnection to schedule. - @param runLoop The run loop to schedule with. - @param runLoopMode The run loop mode. - @result Returns TRUE if the connection is scheduled successfully; - FALSE if the scheduling failed. - The error can be retrieved using the SCError function. - */ -Boolean -SCNetworkConnectionScheduleWithRunLoop ( - SCNetworkConnectionRef connection, - CFRunLoopRef runLoop, - CFStringRef runLoopMode - ) __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA); - - -/*! - @function SCNetworkConnectionUnscheduleFromRunLoop - @discussion Unschedules a connection from the run loop. - @param connection The SCNetworkConnection to unschedule. - @param runLoop The run loop to unschedule from. - @param runLoopMode The run loop mode. - @result Returns TRUE if the connection is unscheduled successfully; - FALSE if the unscheduling failed. - The error can be retrieved using the SCError function. - */ -Boolean -SCNetworkConnectionUnscheduleFromRunLoop ( - SCNetworkConnectionRef connection, - CFRunLoopRef runLoop, - CFStringRef runLoopMode - ) __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA); - - -/*! - @function SCNetworkConnectionSetDispatchQueue - @discussion Caller provides a dispatch queue on which the callback contained in connection will run. - @param connection The SCNetworkConnection to notify. - @param queue The libdispatch queue to run the callback on. - Pass NULL to disable notifications, and release queue. - @result Returns TRUE if the notifications have been enabled/disabled as desired; - FALSE if not. - The error can be retrieved using the SCError function. - */ -Boolean -SCNetworkConnectionSetDispatchQueue ( - SCNetworkConnectionRef connection, - dispatch_queue_t __nullable queue - ) __OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA); - -__END_DECLS - -CF_ASSUME_NONNULL_END -CF_IMPLICIT_BRIDGING_DISABLED - -#endif /* _SCNETWORKCONNECTION_H */ diff --git a/Clocker/Frameworks/SystemConfiguration.framework/Versions/A/Headers/SCNetworkReachability.h b/Clocker/Frameworks/SystemConfiguration.framework/Versions/A/Headers/SCNetworkReachability.h deleted file mode 100644 index 7024fc1..0000000 --- a/Clocker/Frameworks/SystemConfiguration.framework/Versions/A/Headers/SCNetworkReachability.h +++ /dev/null @@ -1,345 +0,0 @@ -/* - * Copyright (c) 2003-2005, 2008-2010, 2015 Apple Inc. All rights reserved. - * - * @APPLE_LICENSE_HEADER_START@ - * - * This file contains Original Code and/or Modifications of Original Code - * as defined in and that are subject to the Apple Public Source License - * Version 2.0 (the 'License'). You may not use this file except in - * compliance with the License. Please obtain a copy of the License at - * http://www.opensource.apple.com/apsl/ and read it before using this - * file. - * - * The Original Code and all software distributed under the License are - * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER - * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, - * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. - * Please see the License for the specific language governing rights and - * limitations under the License. - * - * @APPLE_LICENSE_HEADER_END@ - */ - -#ifndef _SCNETWORKREACHABILITY_H -#define _SCNETWORKREACHABILITY_H - -#include -#include -#include -#include -#include -#include -#include -#include - -CF_IMPLICIT_BRIDGING_ENABLED -CF_ASSUME_NONNULL_BEGIN - -/*! - @header SCNetworkReachability - @discussion The SCNetworkReachability API allows an application to - determine the status of a system's current network - configuration and the reachability of a target host. - In addition, reachability can be monitored with notifications - that are sent when the status has changed. - - "Reachability" reflects whether a data packet, sent by - an application into the network stack, can leave the local - computer. - Note that reachability does not guarantee that the data - packet will actually be received by the host. - */ - -/*! - @typedef SCNetworkReachabilityRef - @discussion This is the handle to a network address or name. - */ -typedef const struct CF_BRIDGED_TYPE(id) __SCNetworkReachability * SCNetworkReachabilityRef; - - -/*! - @typedef SCNetworkReachabilityContext - Structure containing user-specified data and callbacks for SCNetworkReachability. - @field version The version number of the structure type being passed - in as a parameter to the SCDynamicStore creation function. - This structure is version 0. - @field info A C pointer to a user-specified block of data. - @field retain The callback used to add a retain for the info field. - If this parameter is not a pointer to a function of the correct - prototype, the behavior is undefined. The value may be NULL. - @field release The calllback used to remove a retain previously added - for the info field. If this parameter is not a pointer to a - function of the correct prototype, the behavior is undefined. - The value may be NULL. - @field copyDescription The callback used to provide a description of - the info field. - */ -typedef struct { - CFIndex version; - void * __nullable info; - const void * __nonnull (* __nullable retain)(const void *info); - void (* __nullable release)(const void *info); - CFStringRef __nonnull (* __nullable copyDescription)(const void *info); -} SCNetworkReachabilityContext; - -/*! - @enum SCNetworkReachabilityFlags - @discussion Flags that indicate whether the specified network - nodename or address is reachable, whether a connection is - required, and whether some user intervention may be required - when establishing a connection. - @constant kSCNetworkReachabilityFlagsTransientConnection - This flag indicates that the specified nodename or address can - be reached via a transient connection, such as PPP. - @constant kSCNetworkReachabilityFlagsReachable - This flag indicates that the specified nodename or address can - be reached using the current network configuration. - @constant kSCNetworkReachabilityFlagsConnectionRequired - This flag indicates that the specified nodename or address can - be reached using the current network configuration, but a - connection must first be established. - - As an example, this status would be returned for a dialup - connection that was not currently active, but could handle - network traffic for the target system. - @constant kSCNetworkReachabilityFlagsConnectionOnTraffic - This flag indicates that the specified nodename or address can - be reached using the current network configuration, but a - connection must first be established. Any traffic directed - to the specified name or address will initiate the connection. - - Note: this flag was previously named kSCNetworkReachabilityFlagsConnectionAutomatic - @constant kSCNetworkReachabilityFlagsInterventionRequired - This flag indicates that the specified nodename or address can - be reached using the current network configuration, but a - connection must first be established. In addition, some - form of user intervention will be required to establish this - connection, such as providing a password, an authentication - token, etc. - - Note: At the present time, this flag will only be returned - in the case where you have a dial-on-traffic configuration - (ConnectionOnTraffic), where an attempt to connect has - already been made, and where some error (e.g. no dial tone, - no answer, bad password, ...) was encountered during the - automatic connection attempt. In this case the PPP controller - will stop attempting to establish a connection until the user - has intervened. - @constant kSCNetworkReachabilityFlagsConnectionOnDemand - This flag indicates that the specified nodename or address can - be reached using the current network configuration, but a - connection must first be established. - The connection will be established "On Demand" by the - CFSocketStream APIs. - Other APIs will not establish the connection. - @constant kSCNetworkReachabilityFlagsIsLocalAddress - This flag indicates that the specified nodename or address - is one associated with a network interface on the current - system. - @constant kSCNetworkReachabilityFlagsIsDirect - This flag indicates that network traffic to the specified - nodename or address will not go through a gateway, but is - routed directly to one of the interfaces in the system. -#if TARGET_OS_IPHONE - @constant kSCNetworkReachabilityFlagsIsWWAN - This flag indicates that the specified nodename or address can - be reached via an EDGE, GPRS, or other "cell" connection. -#endif // TARGET_OS_IPHONE - */ -typedef CF_OPTIONS(uint32_t, SCNetworkReachabilityFlags) { - kSCNetworkReachabilityFlagsTransientConnection = 1<<0, - kSCNetworkReachabilityFlagsReachable = 1<<1, - kSCNetworkReachabilityFlagsConnectionRequired = 1<<2, - kSCNetworkReachabilityFlagsConnectionOnTraffic = 1<<3, - kSCNetworkReachabilityFlagsInterventionRequired = 1<<4, - kSCNetworkReachabilityFlagsConnectionOnDemand = 1<<5, // __OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_3_0) - kSCNetworkReachabilityFlagsIsLocalAddress = 1<<16, - kSCNetworkReachabilityFlagsIsDirect = 1<<17, -#if TARGET_OS_IPHONE - kSCNetworkReachabilityFlagsIsWWAN = 1<<18, -#endif // TARGET_OS_IPHONE - - kSCNetworkReachabilityFlagsConnectionAutomatic = kSCNetworkReachabilityFlagsConnectionOnTraffic -}; - -/*! - @typedef SCNetworkReachabilityCallBack - @discussion Type of the callback function used when the - reachability of a network address or name changes. - @param target The SCNetworkReachability reference being monitored - for changes. - @param flags The new SCNetworkReachabilityFlags representing the - reachability status of the network address/name. - @param info A C pointer to a user-specified block of data. - */ -typedef void (*SCNetworkReachabilityCallBack) ( - SCNetworkReachabilityRef target, - SCNetworkReachabilityFlags flags, - void * __nullable info - ); - -__BEGIN_DECLS - -/*! - @function SCNetworkReachabilityCreateWithAddress - @discussion Creates a reference to the specified network - address. This reference can be used later to monitor the - reachability of the target host. - @param address The address of the desired host. - @result Returns a reference to the new immutable SCNetworkReachabilityRef. - - You must release the returned value. - */ -SCNetworkReachabilityRef __nullable -SCNetworkReachabilityCreateWithAddress ( - CFAllocatorRef __nullable allocator, - const struct sockaddr *address - ) __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_2_0); - -/*! - @function SCNetworkReachabilityCreateWithAddressPair - @discussion Creates a reference to the specified network - address. This reference can be used later to monitor the - reachability of the target host. - @param localAddress The local address associated with a network - connection. If NULL, only the remote address is of interest. - @param remoteAddress The remote address associated with a network - connection. If NULL, only the local address is of interest. - @result Returns a reference to the new immutable SCNetworkReachabilityRef. - - You must release the returned value. - */ -SCNetworkReachabilityRef __nullable -SCNetworkReachabilityCreateWithAddressPair ( - CFAllocatorRef __nullable allocator, - const struct sockaddr * __nullable localAddress, - const struct sockaddr * __nullable remoteAddress - ) __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_2_0); - -/*! - @function SCNetworkReachabilityCreateWithName - @discussion Creates a reference to the specified network host or node - name. This reference can be used later to monitor the - reachability of the target host. - @param nodename The node name of the desired host. - This name would be the same as that passed to the - gethostbyname(3) or getaddrinfo(3) functions. - @result Returns a reference to the new immutable SCNetworkReachabilityRef. - - You must release the returned value. - */ -SCNetworkReachabilityRef __nullable -SCNetworkReachabilityCreateWithName ( - CFAllocatorRef __nullable allocator, - const char *nodename - ) __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_2_0); - -/*! - @function SCNetworkReachabilityGetTypeID - @discussion Returns the type identifier of all SCNetworkReachability - instances. - */ -CFTypeID -SCNetworkReachabilityGetTypeID (void) __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_2_0); - - -/*! - @function SCNetworkReachabilityGetFlags - @discussion Determines if the given target is reachable using the - current network configuration. - @param target The network reference associated with the address or name - to be checked for reachability. - @param flags A pointer to memory that will be filled with the - SCNetworkReachabilityFlags detailing the reachability - of the specified target. - @result Returns TRUE if the network connection flags are valid; - FALSE if the status could not be determined. - */ -Boolean -SCNetworkReachabilityGetFlags ( - SCNetworkReachabilityRef target, - SCNetworkReachabilityFlags *flags - ) __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_2_0); - -/*! - @function SCNetworkReachabilitySetCallback - @discussion Assigns a client to a target, which receives callbacks - when the reachability of the target changes. - @param target The network reference associated with the address or - name to be checked for reachability. - @param callout The function to be called when the reachability of the - target changes. If NULL, the current client for the target - is removed. - @param context The SCNetworkReachabilityContext associated with - the callout. The value may be NULL. - @result Returns TRUE if the notification client was successfully set. - */ -Boolean -SCNetworkReachabilitySetCallback ( - SCNetworkReachabilityRef target, - SCNetworkReachabilityCallBack __nullable callout, - SCNetworkReachabilityContext * __nullable context - ) __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_2_0); - -/*! - @function SCNetworkReachabilityScheduleWithRunLoop - @discussion Schedules the given target with the given run loop and mode. - @param target The address or name that is set up for asynchronous - notifications. Must be non-NULL. - @param runLoop A reference to a run loop on which the target should - be scheduled. Must be non-NULL. - @param runLoopMode The mode on which to schedule the target. - Must be non-NULL. - @result Returns TRUE if the target is scheduled successfully; - FALSE otherwise. - */ -Boolean -SCNetworkReachabilityScheduleWithRunLoop ( - SCNetworkReachabilityRef target, - CFRunLoopRef runLoop, - CFStringRef runLoopMode - ) __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_2_0); - -/*! - @function SCNetworkReachabilityUnscheduleFromRunLoop - @discussion Unschedules the given target from the given run loop - and mode. - @param target The address or name that is set up for asynchronous - notifications. Must be non-NULL. - @param runLoop A reference to a run loop from which the target - should be unscheduled. Must be non-NULL. - @param runLoopMode The mode on which to unschedule the target. - Must be non-NULL. - @result Returns TRUE if the target is unscheduled successfully; - FALSE otherwise. - */ -Boolean -SCNetworkReachabilityUnscheduleFromRunLoop ( - SCNetworkReachabilityRef target, - CFRunLoopRef runLoop, - CFStringRef runLoopMode - ) __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_2_0); - -/*! - @function SCNetworkReachabilitySetDispatchQueue - @discussion Schedules callbacks for the given target on the given - dispatch queue. - @param target The address or name that is set up for asynchronous - notifications. Must be non-NULL. - @param queue A libdispatch queue to run the callback on. Pass NULL to disable notifications, and release queue. - @result Returns TRUE if the target is unscheduled successfully; - FALSE otherwise. - */ -Boolean -SCNetworkReachabilitySetDispatchQueue ( - SCNetworkReachabilityRef target, - dispatch_queue_t __nullable queue - ) __OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_4_0); - -__END_DECLS - -CF_ASSUME_NONNULL_END -CF_IMPLICIT_BRIDGING_DISABLED - -#endif /* _SCNETWORKREACHABILITY_H */ diff --git a/Clocker/Frameworks/SystemConfiguration.framework/Versions/A/Headers/SCPreferences.h b/Clocker/Frameworks/SystemConfiguration.framework/Versions/A/Headers/SCPreferences.h deleted file mode 100644 index a2cba04..0000000 --- a/Clocker/Frameworks/SystemConfiguration.framework/Versions/A/Headers/SCPreferences.h +++ /dev/null @@ -1,469 +0,0 @@ -/* - * Copyright (c) 2000, 2001, 2004, 2005, 2007-2010, 2015 Apple Inc. All rights reserved. - * - * @APPLE_LICENSE_HEADER_START@ - * - * This file contains Original Code and/or Modifications of Original Code - * as defined in and that are subject to the Apple Public Source License - * Version 2.0 (the 'License'). You may not use this file except in - * compliance with the License. Please obtain a copy of the License at - * http://www.opensource.apple.com/apsl/ and read it before using this - * file. - * - * The Original Code and all software distributed under the License are - * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER - * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, - * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. - * Please see the License for the specific language governing rights and - * limitations under the License. - * - * @APPLE_LICENSE_HEADER_END@ - */ - -#ifndef _SCPREFERENCES_H -#define _SCPREFERENCES_H - -#include -#include -#include -#include -#include -#include - -#if !TARGET_OS_IPHONE -#include -#else // !TARGET_OS_IPHONE -typedef const struct AuthorizationOpaqueRef * AuthorizationRef; -#endif // !TARGET_OS_IPHONE - -CF_IMPLICIT_BRIDGING_ENABLED -CF_ASSUME_NONNULL_BEGIN - -/*! - @header SCPreferences - @discussion The SCPreferences API allows an application to load and - store XML configuration data in a controlled manner and provide - the necessary notifications to other applications that need to - be aware of configuration changes. - - To access configuration preferences, you must first establish a - preferences session using the SCPreferencesCreate function. - To identify a specific set of preferences to access, you pass a - value in the prefsID parameter. - A NULL value indicates that the default system preferences are - to be accessed. - A string that starts with a leading "/" character specifies - the absolute path to the file containing the preferences to - be accessed. - A string that does not start with a leading "/" character - specifies a file relative to the default system preferences - directory. - - When you are finished with the preferences session, use - CFRelease to close it. - */ - - -/*! - @typedef SCPreferencesRef - @discussion This is the handle to an open preferences session for - accessing system configuration preferences. - */ -typedef const struct CF_BRIDGED_TYPE(id) __SCPreferences * SCPreferencesRef; - -/*! - @enum SCPreferencesNotification - @discussion Used with the SCPreferencesCallBack callback - to describe the type of notification. - @constant kSCPreferencesNotificationCommit Indicates when new - preferences have been saved. - @constant kSCPreferencesNotificationApply Key Indicates when a - request has been made to apply the currently saved - preferences to the active system configuration. - */ -typedef CF_OPTIONS(uint32_t, SCPreferencesNotification) { - kSCPreferencesNotificationCommit = 1<<0, // __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA) - kSCPreferencesNotificationApply = 1<<1 // __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA) -}; - -/*! - @typedef SCPreferencesContext - Structure containing user-specified data and callbacks for SCPreferences. - @field version The version number of the structure type being passed - in as a parameter to the SCPreferencesSetCallback function. - This structure is version 0. - @field info A C pointer to a user-specified block of data. - @field retain The callback used to add a retain for the info field. - If this parameter is not a pointer to a function of the correct - prototype, the behavior is undefined. - The value may be NULL. - @field release The calllback used to remove a retain previously added - for the info field. - If this parameter is not a pointer to a function of the - correct prototype, the behavior is undefined. - The value may be NULL. - @field copyDescription The callback used to provide a description of - the info field. - */ -typedef struct { - CFIndex version; - void * __nullable info; - const void * __nonnull (* __nullable retain)(const void *info); - void (* __nullable release)(const void *info); - CFStringRef __nonnull (* __nullable copyDescription)(const void *info); -} SCPreferencesContext; - -/*! - @typedef SCPreferencesCallBack - @discussion Type of the callback function used when the - preferences have been updated and/or applied. - @param prefs The preferences session. - @param notificationType The type of notification, such as changes - committed, changes applied, etc. - @param info A C pointer to a user-specified block of data. - */ -typedef void (*SCPreferencesCallBack) ( - SCPreferencesRef prefs, - SCPreferencesNotification notificationType, - void * __nullable info - ); - - -__BEGIN_DECLS - -/*! - @function SCPreferencesGetTypeID - @discussion Returns the type identifier of all SCPreferences instances. - */ -CFTypeID -SCPreferencesGetTypeID (void) __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); - -/*! - @function SCPreferencesCreate - @discussion Initiates access to the per-system set of configuration - preferences. - @param allocator The CFAllocator that should be used to allocate - memory for this preferences session. - This parameter may be NULL in which case the current - default CFAllocator is used. - If this reference is not a valid CFAllocator, the behavior - is undefined. - @param name A string that describes the name of the calling - process. - @param prefsID A string that identifies the name of the - group of preferences to be accessed or updated. - @result Returns a reference to the new SCPreferences. - You must release the returned value. - */ -SCPreferencesRef __nullable -SCPreferencesCreate ( - CFAllocatorRef __nullable allocator, - CFStringRef name, - CFStringRef __nullable prefsID - ) __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); - - -/*! - @function SCPreferencesCreateWithAuthorization - @discussion Initiates access to the per-system set of configuration - preferences. - @param allocator The CFAllocator that should be used to allocate - memory for this preferences session. - This parameter may be NULL in which case the current - default CFAllocator is used. - If this reference is not a valid CFAllocator, the behavior - is undefined. - @param name A string that describes the name of the calling - process. - @param prefsID A string that identifies the name of the - group of preferences to be accessed or updated. - @param authorization An authorization reference that is used to - authorize any access to the enhanced privileges needed - to manage the preferences session. - @result Returns a reference to the new SCPreferences. - You must release the returned value. - */ -SCPreferencesRef __nullable -SCPreferencesCreateWithAuthorization ( - CFAllocatorRef __nullable allocator, - CFStringRef name, - CFStringRef __nullable prefsID, - AuthorizationRef __nullable authorization - ) __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); - -/*! - @function SCPreferencesLock - @discussion Locks access to the configuration preferences. - - This function obtains exclusive access to the configuration - preferences. Clients attempting to obtain exclusive access - to the preferences will either receive a kSCStatusPrefsBusy - error or block waiting for the lock to be released. - @param prefs The preferences session. - @param wait A boolean flag indicating whether the calling process - should block waiting for another process to complete its update - operation and release its lock. - @result Returns TRUE if the lock was obtained; - FALSE if an error occurred. - */ -Boolean -SCPreferencesLock ( - SCPreferencesRef prefs, - Boolean wait - ) __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); - -/*! - @function SCPreferencesCommitChanges - @discussion Commits changes made to the configuration preferences to - persistent storage. - - This function commits any changes to permanent storage. - Implicit calls to the SCPreferencesLock and SCPreferencesUnlock - functions will be made if exclusive access has not already been - established. - - Note: This routine commits changes to persistent storage. - Call the SCPreferencesApplyChanges function to apply the - changes to the running system. - @param prefs The preferences session. - @result Returns TRUE if the lock was obtained; - FALSE if an error occurred. - */ -Boolean -SCPreferencesCommitChanges ( - SCPreferencesRef prefs - ) __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); - -/*! - @function SCPreferencesApplyChanges - @discussion Requests that the currently stored configuration - preferences be applied to the active configuration. - @param prefs The preferences session. - @result Returns TRUE if the lock was obtained; - FALSE if an error occurred. - */ -Boolean -SCPreferencesApplyChanges ( - SCPreferencesRef prefs - ) __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); - -/*! - @function SCPreferencesUnlock - @discussion Releases exclusive access to the configuration preferences. - - This function releases the exclusive access lock to the - preferences. Other clients will be now be able to establish - exclusive access to the preferences. - @param prefs The preferences session. - @result Returns TRUE if the lock was obtained; - FALSE if an error occurred. - */ -Boolean -SCPreferencesUnlock ( - SCPreferencesRef prefs - ) __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); - -/*! - @function SCPreferencesGetSignature - @discussion Returns a sequence of bytes that can be used to determine - if the saved configuration preferences have changed. - @param prefs The preferences session. - @result Returns a CFDataRef that reflects the signature of the configuration - preferences at the time of the call to the SCPreferencesCreate function. - */ -CFDataRef __nullable -SCPreferencesGetSignature ( - SCPreferencesRef prefs - ) __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); - -/*! - @function SCPreferencesCopyKeyList - @discussion Returns an array of currently defined preference keys. - @param prefs The preferences session. - @result Returns the list of keys. - You must release the returned value. - */ -CFArrayRef __nullable -SCPreferencesCopyKeyList ( - SCPreferencesRef prefs - ) __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); - -/*! - @function SCPreferencesGetValue - @discussion Returns the data associated with a preference key. - - This function retrieves data associated with the specified - key. - - Note: To avoid inadvertantly reading stale data, first call - the SCPreferencesLock function. - @param prefs The preferences session. - @param key The preference key to be returned. - @result Returns the value associated with the specified preference key; - NULL if no value was located. - */ -CFPropertyListRef __nullable -SCPreferencesGetValue ( - SCPreferencesRef prefs, - CFStringRef key - ) __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); - -/*! - @function SCPreferencesAddValue - @discussion Adds data for a preference key. - - This function associates new data with the specified key. - To commit these changes to permanent storage, a call must - be made to the SCPreferencesCommitChanges function. - @param prefs The preferences session. - @param key The preference key to be updated. - @param value The CFPropertyListRef object containing the - value to be associated with the specified preference key. - @result Returns TRUE if the value was added; - FALSE if the key already exists or - if an error occurred. - */ -Boolean -SCPreferencesAddValue ( - SCPreferencesRef prefs, - CFStringRef key, - CFPropertyListRef value - ) __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); - -/*! - @function SCPreferencesSetValue - @discussion Updates the data associated with a preference key. - - This function adds or replaces the value associated with the - specified key. To commit these changes to permanent storage - a call must be made to the SCPreferencesCommitChanges function. - @param prefs The preferences session. - @param key The preference key to be updated. - @param value The CFPropertyListRef object containing the - data to be associated with the specified preference key. - @result Returns TRUE if the value was set; - FALSE if an error occurred. - */ -Boolean -SCPreferencesSetValue ( - SCPreferencesRef prefs, - CFStringRef key, - CFPropertyListRef value - ) __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); - -/*! - @function SCPreferencesRemoveValue - @discussion Removes the data associated with a preference key. - - This function removes the data associated with the specified - key. To commit these changes to permanent storage a call must - be made to the SCPreferencesCommitChanges function. - @param prefs The preferences session. - @param key The preference key to be removed. - @result Returns TRUE if the value was removed; - FALSE if the key did not exist or if an error occurred. - */ -Boolean -SCPreferencesRemoveValue ( - SCPreferencesRef prefs, - CFStringRef key - ) __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); - -/*! - @function SCPreferencesSetCallback - @discussion Assigns a callback to a preferences session. The function - is called when the changes to the preferences have been - committed or applied. - @param prefs The preferences session. - @param callout The function to be called when the preferences have - been changed or applied. - If NULL, the current callback is removed. - @param context The SCPreferencesContext associated with - the callout. - @result Returns TRUE if the notification client was successfully set. - */ -Boolean -SCPreferencesSetCallback ( - SCPreferencesRef prefs, - SCPreferencesCallBack __nullable callout, - SCPreferencesContext * __nullable context - ) __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @function SCPreferencesScheduleWithRunLoop - @discussion Schedule commit and apply notifications for the specified - preferences session using the specified run loop and mode. - @param prefs The preferences session. - @param runLoop A reference to a run loop on which the notification - should be scheduled. - Must be non-NULL. - @param runLoopMode The mode on which to schedule the notification. - Must be non-NULL. - @result Returns TRUE if the notifications are successfully scheduled; - FALSE otherwise. - */ -Boolean -SCPreferencesScheduleWithRunLoop ( - SCPreferencesRef prefs, - CFRunLoopRef runLoop, - CFStringRef runLoopMode - ) __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @function SCPreferencesUnscheduleFromRunLoop - @discussion Unschedule commit and apply notifications for the specified - preferences session from the specified run loop and mode. - @param prefs The preferences session. - @param runLoop A reference to a run loop from which the notification - should be unscheduled. - Must be non-NULL. - @param runLoopMode The mode on which to unschedule the notification. - Must be non-NULL. - @result Returns TRUE if the notifications are successfully unscheduled; - FALSE otherwise. - */ -Boolean -SCPreferencesUnscheduleFromRunLoop ( - SCPreferencesRef prefs, - CFRunLoopRef runLoop, - CFStringRef runLoopMode - ) __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -/*! - @function SCPreferencesSetDispatchQueue - @discussion Schedule commit and apply notifications for the specified - preferences session. - @param prefs The preferences session. - @param queue The dispatch queue to run the callback function on. - @result Returns TRUE if the notifications are successfully scheduled; - FALSE otherwise. - */ -Boolean -SCPreferencesSetDispatchQueue ( - SCPreferencesRef prefs, - dispatch_queue_t __nullable queue - ) __OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA); - -/*! - @function SCPreferencesSynchronize - @discussion Synchronizes accessed preferences with committed changes. - - Any references to preference values returned by calls to the - SCPreferencesGetValue function are no longer valid unless they - were explicitly retained or copied. Any preference values - that were updated (add, set, remove) but not committed will - be discarded. - @param prefs The preferences session. - */ -void -SCPreferencesSynchronize ( - SCPreferencesRef prefs - ) __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); - -__END_DECLS - -CF_ASSUME_NONNULL_END -CF_IMPLICIT_BRIDGING_DISABLED - -#endif /* _SCPREFERENCES_H */ diff --git a/Clocker/Frameworks/SystemConfiguration.framework/Versions/A/Headers/SCPreferencesPath.h b/Clocker/Frameworks/SystemConfiguration.framework/Versions/A/Headers/SCPreferencesPath.h deleted file mode 100644 index fcf5f41..0000000 --- a/Clocker/Frameworks/SystemConfiguration.framework/Versions/A/Headers/SCPreferencesPath.h +++ /dev/null @@ -1,179 +0,0 @@ -/* - * Copyright (c) 2000, 2001, 2004, 2005, 2008, 2015 Apple Inc. All rights reserved. - * - * @APPLE_LICENSE_HEADER_START@ - * - * This file contains Original Code and/or Modifications of Original Code - * as defined in and that are subject to the Apple Public Source License - * Version 2.0 (the 'License'). You may not use this file except in - * compliance with the License. Please obtain a copy of the License at - * http://www.opensource.apple.com/apsl/ and read it before using this - * file. - * - * The Original Code and all software distributed under the License are - * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER - * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, - * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. - * Please see the License for the specific language governing rights and - * limitations under the License. - * - * @APPLE_LICENSE_HEADER_END@ - */ - -#ifndef _SCPREFERENCESPATH_H -#define _SCPREFERENCESPATH_H - -#include -#include -#include -#include - -CF_IMPLICIT_BRIDGING_ENABLED -CF_ASSUME_NONNULL_BEGIN - -/*! - @header SCPreferencesPath - @discussion The SCPreferencesPath API allows an application to - load and store XML configuration data in a controlled - manner and provide the necessary notifications to other - applications that need to be aware of configuration - changes. - - The functions in the SCPreferencesPath API make certain - assumptions about the layout of the preferences data. - These functions view the data as a collection of dictionaries - of key-value pairs and an associated path name. - The root path ("/") identifies the top-level dictionary. - Additional path components specify the keys for subdictionaries. - - For example, the following dictionary can be accessed via - two paths. The root ("/") path would return a dictionary - with all keys and values. The path "/path1" would only - return the dictionary with the "key3" and "key4" properties. - -
-	@textblock
-	
-		key1
-		val1
-		key2
-		val2
-		path1
-		
-			key3
-			val3
-			key4
-			val4
-		
-	
-	@/textblock
-	
- - Each dictionary can also include the kSCResvLink ("__LINK__") key. - The value associated with this key is interpreted as a link to - another path. If this key is present, a call to the - SCPreferencesPathGetValue function returns the dictionary - specified by the link. - */ - - -__BEGIN_DECLS - -/*! - @function SCPreferencesPathCreateUniqueChild - @discussion Creates a new path component within the dictionary - hierarchy. - @param prefs The preferences session. - @param prefix A string that represents the parent path. - @result Returns a string representing the new (unique) child path; NULL - if the specified path does not exist. - */ -CFStringRef __nullable -SCPreferencesPathCreateUniqueChild ( - SCPreferencesRef prefs, - CFStringRef prefix - ) __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); - -/*! - @function SCPreferencesPathGetValue - @discussion Returns the dictionary associated with the specified - path. - @param prefs The preferences session. - @param path A string that represents the path to be returned. - @result Returns the dictionary associated with the specified path; NULL - if the path does not exist. - */ -CFDictionaryRef __nullable -SCPreferencesPathGetValue ( - SCPreferencesRef prefs, - CFStringRef path - ) __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); - -/*! - @function SCPreferencesPathGetLink - @discussion Returns the link (if one exists) associated with the - specified path. - @param prefs The preferences session. - @param path A string that represents the path to be returned. - @result Returns the dictionary associated with the specified path; NULL - if the path is not a link or does not exist. - */ -CFStringRef __nullable -SCPreferencesPathGetLink ( - SCPreferencesRef prefs, - CFStringRef path - ) __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); - -/*! - @function SCPreferencesPathSetValue - @discussion Associates a dictionary with the specified path. - @param prefs The preferences session. - @param path A string that represents the path to be updated. - @param value A dictionary that represents the data to be - stored at the specified path. - @result Returns TRUE if successful; FALSE otherwise. - */ -Boolean -SCPreferencesPathSetValue ( - SCPreferencesRef prefs, - CFStringRef path, - CFDictionaryRef value - ) __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); - -/*! - @function SCPreferencesPathSetLink - @discussion Associates a link to a second dictionary at the - specified path. - @param prefs The preferences session. - @param path A string that represents the path to be updated. - @param link A string that represents the link to be stored - at the specified path. - @result Returns TRUE if successful; FALSE otherwise. - */ -Boolean -SCPreferencesPathSetLink ( - SCPreferencesRef prefs, - CFStringRef path, - CFStringRef link - ) __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); - -/*! - @function SCPreferencesPathRemoveValue - @discussion Removes the data associated with the specified path. - @param prefs The preferences session. - @param path A string that represents the path to be returned. - @result Returns TRUE if successful; FALSE otherwise. - */ -Boolean -SCPreferencesPathRemoveValue ( - SCPreferencesRef prefs, - CFStringRef path - ) __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); - -__END_DECLS - -CF_ASSUME_NONNULL_END -CF_IMPLICIT_BRIDGING_DISABLED - -#endif /* _SCPREFERENCESPATH_H */ diff --git a/Clocker/Frameworks/SystemConfiguration.framework/Versions/A/Headers/SCPreferencesSetSpecific.h b/Clocker/Frameworks/SystemConfiguration.framework/Versions/A/Headers/SCPreferencesSetSpecific.h deleted file mode 100644 index 6de502a..0000000 --- a/Clocker/Frameworks/SystemConfiguration.framework/Versions/A/Headers/SCPreferencesSetSpecific.h +++ /dev/null @@ -1,95 +0,0 @@ -/* - * Copyright (c) 2000-2002, 2004, 2005, 2008, 2015 Apple Inc. All rights reserved. - * - * @APPLE_LICENSE_HEADER_START@ - * - * This file contains Original Code and/or Modifications of Original Code - * as defined in and that are subject to the Apple Public Source License - * Version 2.0 (the 'License'). You may not use this file except in - * compliance with the License. Please obtain a copy of the License at - * http://www.opensource.apple.com/apsl/ and read it before using this - * file. - * - * The Original Code and all software distributed under the License are - * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER - * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, - * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. - * Please see the License for the specific language governing rights and - * limitations under the License. - * - * @APPLE_LICENSE_HEADER_END@ - */ - -#ifndef _SCPREFERENCESSETSPECIFIC_H -#define _SCPREFERENCESSETSPECIFIC_H - -#include -#include -#include -#include - -CF_IMPLICIT_BRIDGING_ENABLED -CF_ASSUME_NONNULL_BEGIN - -/*! - @header SCPreferencesSetSpecific - @discussion The functions in the SCPreferencesSetSpecific API allow - an application to set specific configuration information - about the current system (for example, the computer or - sharing name). - - To access configuration preferences, you must first establish - a preferences session using the SCPreferencesCreate function. - */ - - -__BEGIN_DECLS - -/*! - @function SCPreferencesSetComputerName - @discussion Updates the computer name preference. - - Note: To commit these changes to permanent storage you must - call the SCPreferencesCommitChanges function. - In addition, you must call the SCPreferencesApplyChanges - function for the new name to become active. - @param prefs The preferences session. - @param name The computer name to be set. - @param nameEncoding The encoding associated with the computer name. - @result Returns TRUE if successful; FALSE otherwise. - */ -Boolean -SCPreferencesSetComputerName ( - SCPreferencesRef prefs, - CFStringRef name, - CFStringEncoding nameEncoding - ) __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); - -/*! - @function SCPreferencesSetLocalHostName - @discussion Updates the local host name. - - Note: To commit these changes to permanent storage you must - call the SCPreferencesCommitChanges function. - In addition, you must call the SCPreferencesApplyChanges - function for the new name to become active. - @param prefs The preferences session. - @param name The local host name to be set. - - Note: this string must conform to the naming conventions of a DNS host - name as specified in RFC 1034 (section 3.5). - @result Returns TRUE if successful; FALSE otherwise. - */ -Boolean -SCPreferencesSetLocalHostName ( - SCPreferencesRef prefs, - CFStringRef name - ) __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_NA); - -__END_DECLS - -CF_ASSUME_NONNULL_END -CF_IMPLICIT_BRIDGING_DISABLED - -#endif /* _SCPREFERENCESSETSPECIFIC_H */ diff --git a/Clocker/Frameworks/SystemConfiguration.framework/Versions/A/Headers/SCSchemaDefinitions.h b/Clocker/Frameworks/SystemConfiguration.framework/Versions/A/Headers/SCSchemaDefinitions.h deleted file mode 100644 index 6d1b9dc..0000000 --- a/Clocker/Frameworks/SystemConfiguration.framework/Versions/A/Headers/SCSchemaDefinitions.h +++ /dev/null @@ -1,2513 +0,0 @@ -/* - * Copyright (c) 2000-2015 Apple Inc. All rights reserved. - * - * @APPLE_LICENSE_HEADER_START@ - * - * This file contains Original Code and/or Modifications of Original Code - * as defined in and that are subject to the Apple Public Source License - * Version 2.0 (the 'License'). You may not use this file except in - * compliance with the License. Please obtain a copy of the License at - * http://www.opensource.apple.com/apsl/ and read it before using this - * file. - * - * The Original Code and all software distributed under the License are - * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER - * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, - * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. - * Please see the License for the specific language governing rights and - * limitations under the License. - * - * @APPLE_LICENSE_HEADER_END@ - */ - -/* - * This file is automatically generated - * DO NOT EDIT! - */ - -/* - * Reserved Keys - * - * kSCResvLink "__LINK__" CFString - * kSCResvInactive "__INACTIVE__" - * - * Generic Keys - * - * kSCPropInterfaceName "InterfaceName" CFString - * kSCPropMACAddress "MACAddress" CFString - * kSCPropUserDefinedName "UserDefinedName" CFString - * kSCPropVersion "Version" CFString - * - * Preference Keys - * - * kSCPrefCurrentSet "CurrentSet" CFString - * kSCPrefNetworkServices "NetworkServices" CFDictionary - * kSCPrefSets "Sets" CFDictionary - * kSCPrefSystem "System" CFDictionary - * - * Component Keys - * - * kSCCompNetwork "Network" - * kSCCompService "Service" - * kSCCompGlobal "Global" - * kSCCompHostNames "HostNames" - * kSCCompInterface "Interface" - * kSCCompSystem "System" - * kSCCompUsers "Users" - * - * --- Regex pattern which matches any component --- - * kSCCompAnyRegex "[^/]+" - * - * Network Entity Keys - * - * kSCEntNetAirPort "AirPort" CFDictionary - * kSCEntNetDHCP "DHCP" CFDictionary - * kSCEntNetDNS "DNS" CFDictionary - * kSCEntNetEthernet "Ethernet" CFDictionary - * kSCEntNetFireWire "FireWire" CFDictionary - * kSCEntNetInterface "Interface" CFDictionary - * kSCEntNetIPSec "IPSec" CFDictionary - * kSCEntNetIPv4 "IPv4" CFDictionary - * kSCEntNetIPv6 "IPv6" CFDictionary - * kSCEntNetL2TP "L2TP" CFDictionary - * kSCEntNetLink "Link" CFDictionary - * kSCEntNetModem "Modem" CFDictionary - * kSCEntNetPPP "PPP" CFDictionary - * kSCEntNetPPPoE "PPPoE" CFDictionary - * kSCEntNetPPPSerial "PPPSerial" CFDictionary - * kSCEntNetPPTP "PPTP" CFDictionary - * kSCEntNetProxies "Proxies" CFDictionary - * kSCEntNetSMB "SMB" CFDictionary - * kSCEntNet6to4 "6to4" CFDictionary - * - * kSCCompNetwork Properties - * - * kSCPropNetOverridePrimary "OverridePrimary" CFNumber (0 or 1) - * kSCPropNetServiceOrder "ServiceOrder" CFArray[CFString] - * kSCPropNetPPPOverridePrimary "PPPOverridePrimary" CFNumber (0 or 1) - * - * kSCCompNetworkInterface Properties - * - * kSCPropNetInterfaces "Interfaces" CFArray[CFString] - * - * kSCCompNetworkHostNames Properties - * - * kSCPropNetLocalHostName "LocalHostName" CFString - * - * kSCEntNetDNS Entity Keys - * - * kSCPropNetDNSDomainName "DomainName" CFString - * kSCPropNetDNSOptions "Options" CFString - * kSCPropNetDNSSearchDomains "SearchDomains" CFArray[CFString] - * kSCPropNetDNSSearchOrder "SearchOrder" CFNumber - * kSCPropNetDNSServerAddresses "ServerAddresses" CFArray[CFString] - * kSCPropNetDNSServerPort "ServerPort" CFNumber - * kSCPropNetDNSServerTimeout "ServerTimeout" CFNumber - * kSCPropNetDNSSortList "SortList" CFArray[CFString] - * kSCPropNetDNSSupplementalMatchDomains "SupplementalMatchDomains" CFArray[CFString] - * kSCPropNetDNSSupplementalMatchOrders "SupplementalMatchOrders" CFArray[CFNumber] - * - * kSCEntNetEthernet (Hardware) Entity Keys - * - * kSCPropNetEthernetMediaSubType "MediaSubType" CFString - * kSCPropNetEthernetMediaOptions "MediaOptions" CFArray[CFString] - * kSCPropNetEthernetMTU "MTU" CFNumber - * - * kSCEntNetFireWire (Hardware) Entity Keys - * - * * RESERVED FOR FUTURE USE * - * - * kSCEntNetInterface Entity Keys - * - * kSCPropNetInterfaceDeviceName "DeviceName" CFString - * kSCPropNetInterfaceHardware "Hardware" CFString - * kSCPropNetInterfaceType "Type" CFString - * kSCPropNetInterfaceSubType "SubType" CFString - * kSCPropNetInterfaceSupportsModemOnHold "SupportsModemOnHold" CFNumber (0 or 1) - * - * --- kSCPropNetInterfaceType values --- - * kSCValNetInterfaceTypeEthernet "Ethernet" - * kSCValNetInterfaceTypeFireWire "FireWire" - * kSCValNetInterfaceTypePPP "PPP" - * kSCValNetInterfaceType6to4 "6to4" - * kSCValNetInterfaceTypeIPSec "IPSec" - * - * --- kSCPropNetServiceSubType values (for PPP) --- - * kSCValNetInterfaceSubTypePPPoE "PPPoE" - * kSCValNetInterfaceSubTypePPPSerial "PPPSerial" - * kSCValNetInterfaceSubTypePPTP "PPTP" - * kSCValNetInterfaceSubTypeL2TP "L2TP" - * - * kSCEntNetIPSec Entity Keys - * - * kSCPropNetIPSecAuthenticationMethod "AuthenticationMethod" CFString - * kSCPropNetIPSecLocalCertificate "LocalCertificate" CFData - * kSCPropNetIPSecLocalIdentifier "LocalIdentifier" CFString - * kSCPropNetIPSecLocalIdentifierType "LocalIdentifierType" CFString - * kSCPropNetIPSecSharedSecret "SharedSecret" CFString - * kSCPropNetIPSecSharedSecretEncryption "SharedSecretEncryption" CFString - * kSCPropNetIPSecConnectTime "ConnectTime" CFNumber - * kSCPropNetIPSecRemoteAddress "RemoteAddress" CFString - * kSCPropNetIPSecStatus "Status" CFNumber - * kSCPropNetIPSecXAuthEnabled "XAuthEnabled" CFNumber (0 or 1) - * kSCPropNetIPSecXAuthName "XAuthName" CFString - * kSCPropNetIPSecXAuthPassword "XAuthPassword" CFString - * kSCPropNetIPSecXAuthPasswordEncryption "XAuthPasswordEncryption" CFString - * - * --- kSCPropNetIPSecAuthenticationMethod values --- - * kSCValNetIPSecAuthenticationMethodSharedSecret "SharedSecret" - * kSCValNetIPSecAuthenticationMethodCertificate "Certificate" - * kSCValNetIPSecAuthenticationMethodHybrid "Hybrid" - * - * --- kSCPropNetIPSecLocalIdentifierType values --- - * kSCValNetIPSecLocalIdentifierTypeKeyID "KeyID" - * - * --- kSCPropNetIPSecSharedSecretEncryption values --- - * kSCValNetIPSecSharedSecretEncryptionKeychain "Keychain" - * - * --- kSCPropNetIPSecXAuthPasswordEncryption values --- - * kSCValNetIPSecXAuthPasswordEncryptionKeychain "Keychain" - * kSCValNetIPSecXAuthPasswordEncryptionPrompt "Prompt" - * - * kSCEntNetIPv4 Entity Keys - * - * kSCPropNetIPv4Addresses "Addresses" CFArray[CFString] - * kSCPropNetIPv4ConfigMethod "ConfigMethod" CFString - * kSCPropNetIPv4DHCPClientID "DHCPClientID" CFString - * kSCPropNetIPv4Router "Router" CFString - * kSCPropNetIPv4SubnetMasks "SubnetMasks" CFArray[CFString] - * kSCPropNetIPv4DestAddresses "DestAddresses" CFArray[CFString] - * kSCPropNetIPv4BroadcastAddresses "BroadcastAddresses" CFArray[CFString] - * - * --- kSCPropNetIPv4ConfigMethod values --- - * kSCValNetIPv4ConfigMethodAutomatic "Automatic" - * kSCValNetIPv4ConfigMethodBOOTP "BOOTP" - * kSCValNetIPv4ConfigMethodDHCP "DHCP" - * kSCValNetIPv4ConfigMethodINFORM "INFORM" - * kSCValNetIPv4ConfigMethodLinkLocal "LinkLocal" - * kSCValNetIPv4ConfigMethodManual "Manual" - * kSCValNetIPv4ConfigMethodPPP "PPP" - * - * kSCEntNetIPv6 Entity Keys - * - * kSCPropNetIPv6Addresses "Addresses" CFArray[CFString] - * kSCPropNetIPv6ConfigMethod "ConfigMethod" CFString - * kSCPropNetIPv6DestAddresses "DestAddresses" CFArray[CFString] - * kSCPropNetIPv6Flags "Flags" CFNumber - * kSCPropNetIPv6PrefixLength "PrefixLength" CFArray[CFNumber] - * kSCPropNetIPv6Router "Router" CFString - * - * --- kSCPropNetIPv6ConfigMethod values --- - * kSCValNetIPv6ConfigMethodAutomatic "Automatic" - * kSCValNetIPv6ConfigMethodLinkLocal "LinkLocal" - * kSCValNetIPv6ConfigMethodManual "Manual" - * kSCValNetIPv6ConfigMethodRouterAdvertisement "RouterAdvertisement" - * kSCValNetIPv6ConfigMethod6to4 "6to4" - * - * kSCEntNet6to4 Entity Keys - * - * kSCPropNet6to4Relay "Relay" CFString - * - * kSCEntNetLink Entity Keys - * - * kSCPropNetLinkActive "Active" CFBoolean - * kSCPropNetLinkDetaching "Detaching" CFBoolean - * - * kSCEntNetModem (Hardware) Entity Keys - * - * kSCPropNetModemAccessPointName "AccessPointName" CFString - * kSCPropNetModemConnectionPersonality "ConnectionPersonality" CFString - * kSCPropNetModemConnectionScript "ConnectionScript" CFString - * kSCPropNetModemConnectSpeed "ConnectSpeed" CFNumber - * kSCPropNetModemDataCompression "DataCompression" CFNumber (0 or 1) - * kSCPropNetModemDeviceContextID "DeviceContextID" CFString - * kSCPropNetModemDeviceModel "DeviceModel" CFString - * kSCPropNetModemDeviceVendor "DeviceVendor" CFString - * kSCPropNetModemDialMode "DialMode" CFString - * kSCPropNetModemErrorCorrection "ErrorCorrection" CFNumber (0 or 1) - * kSCPropNetModemHoldCallWaitingAudibleAlert "HoldCallWaitingAudibleAlert" CFNumber (0 or 1) - * kSCPropNetModemHoldDisconnectOnAnswer "HoldDisconnectOnAnswer" CFNumber (0 or 1) - * kSCPropNetModemHoldEnabled "HoldEnabled" CFNumber (0 or 1) - * kSCPropNetModemHoldReminder "HoldReminder" CFNumber (0 or 1) - * kSCPropNetModemHoldReminderTime "HoldReminderTime" CFNumber - * kSCPropNetModemNote "Note" CFString - * kSCPropNetModemPulseDial "PulseDial" CFNumber (0 or 1) - * kSCPropNetModemSpeaker "Speaker" CFNumber (0 or 1) - * kSCPropNetModemSpeed "Speed" CFNumber - * - * --- kSCPropNetModemDialMode values --- - * kSCValNetModemDialModeIgnoreDialTone "IgnoreDialTone" - * kSCValNetModemDialModeManual "Manual" - * kSCValNetModemDialModeWaitForDialTone "WaitForDialTone" - * - * kSCEntNetPPP Entity Keys - * - * kSCPropNetPPPACSPEnabled "ACSPEnabled" CFNumber (0 or 1) - * kSCPropNetPPPConnectTime "ConnectTime" CFNumber - * kSCPropNetPPPDeviceLastCause "DeviceLastCause" CFNumber - * kSCPropNetPPPDialOnDemand "DialOnDemand" CFNumber (0 or 1) - * kSCPropNetPPPDisconnectOnFastUserSwitch "DisconnectOnFastUserSwitch" CFNumber (0 or 1) - * kSCPropNetPPPDisconnectOnIdle "DisconnectOnIdle" CFNumber (0 or 1) - * kSCPropNetPPPDisconnectOnIdleTimer "DisconnectOnIdleTimer" CFNumber - * kSCPropNetPPPDisconnectOnLogout "DisconnectOnLogout" CFNumber (0 or 1) - * kSCPropNetPPPDisconnectOnSleep "DisconnectOnSleep" CFNumber (0 or 1) - * kSCPropNetPPPDisconnectTime "DisconnectTime" CFNumber - * kSCPropNetPPPIdleReminderTimer "IdleReminderTimer" CFNumber - * kSCPropNetPPPIdleReminder "IdleReminder" CFNumber (0 or 1) - * kSCPropNetPPPLastCause "LastCause" CFNumber - * kSCPropNetPPPLogfile "Logfile" CFString - * kSCPropNetPPPPlugins "Plugins" CFArray[CFString] - * kSCPropNetPPPRetryConnectTime "RetryConnectTime" CFNumber - * kSCPropNetPPPSessionTimer "SessionTimer" CFNumber - * kSCPropNetPPPStatus "Status" CFNumber - * kSCPropNetPPPUseSessionTimer "UseSessionTimer" CFNumber (0 or 1) - * kSCPropNetPPPVerboseLogging "VerboseLogging" CFNumber (0 or 1) - * - * --- Auth: --- - * kSCPropNetPPPAuthEAPPlugins "AuthEAPPlugins" CFArray[CFString] - * kSCPropNetPPPAuthName "AuthName" CFString - * kSCPropNetPPPAuthPassword "AuthPassword" CFString - * kSCPropNetPPPAuthPasswordEncryption "AuthPasswordEncryption" CFString - * kSCPropNetPPPAuthPrompt "AuthPrompt" CFString - * kSCPropNetPPPAuthProtocol "AuthProtocol" CFArray[CFString] - * - * --- kSCPropNetPPPAuthPasswordEncryption values --- - * kSCValNetPPPAuthPasswordEncryptionKeychain "Keychain" - * kSCValNetPPPAuthPasswordEncryptionToken "Token" - * - * --- kSCPropNetPPPAuthPrompt values --- - * kSCValNetPPPAuthPromptBefore "Before" CFString - * kSCValNetPPPAuthPromptAfter "After" CFString - * - * --- kSCPropNetPPPAuthProtocol values --- - * kSCValNetPPPAuthProtocolCHAP "CHAP" CFString - * kSCValNetPPPAuthProtocolEAP "EAP" CFString - * kSCValNetPPPAuthProtocolMSCHAP1 "MSCHAP1" CFString - * kSCValNetPPPAuthProtocolMSCHAP2 "MSCHAP2" CFString - * kSCValNetPPPAuthProtocolPAP "PAP" CFString - * - * --- Comm: --- - * kSCPropNetPPPCommAlternateRemoteAddress "CommAlternateRemoteAddress" CFString - * kSCPropNetPPPCommConnectDelay "CommConnectDelay" CFNumber - * kSCPropNetPPPCommDisplayTerminalWindow "CommDisplayTerminalWindow" CFNumber (0 or 1) - * kSCPropNetPPPCommRedialCount "CommRedialCount" CFNumber - * kSCPropNetPPPCommRedialEnabled "CommRedialEnabled" CFNumber (0 or 1) - * kSCPropNetPPPCommRedialInterval "CommRedialInterval" CFNumber - * kSCPropNetPPPCommRemoteAddress "CommRemoteAddress" CFString - * kSCPropNetPPPCommTerminalScript "CommTerminalScript" CFString - * kSCPropNetPPPCommUseTerminalScript "CommUseTerminalScript" CFNumber (0 or 1) - * - * --- CCP: --- - * kSCPropNetPPPCCPEnabled "CCPEnabled" CFNumber (0 or 1) - * kSCPropNetPPPCCPMPPE40Enabled "CCPMPPE40Enabled" CFNumber (0 or 1) - * kSCPropNetPPPCCPMPPE128Enabled "CCPMPPE128Enabled" CFNumber (0 or 1) - * - * --- IPCP: --- - * kSCPropNetPPPIPCPCompressionVJ "IPCPCompressionVJ" CFNumber (0 or 1) - * kSCPropNetPPPIPCPUsePeerDNS "IPCPUsePeerDNS" CFNumber (0 or 1) - * - * --- LCP: --- - * kSCPropNetPPPLCPEchoEnabled "LCPEchoEnabled" CFNumber (0 or 1) - * kSCPropNetPPPLCPEchoFailure "LCPEchoFailure" CFNumber - * kSCPropNetPPPLCPEchoInterval "LCPEchoInterval" CFNumber - * kSCPropNetPPPLCPCompressionACField "LCPCompressionACField" CFNumber (0 or 1) - * kSCPropNetPPPLCPCompressionPField "LCPCompressionPField" CFNumber (0 or 1) - * kSCPropNetPPPLCPMRU "LCPMRU" CFNumber - * kSCPropNetPPPLCPMTU "LCPMTU" CFNumber - * kSCPropNetPPPLCPReceiveACCM "LCPReceiveACCM" CFNumber - * kSCPropNetPPPLCPTransmitACCM "LCPTransmitACCM" CFNumber - * - * kSCEntNetPPPoE Entity Keys - * - * * RESERVED FOR FUTURE USE * - * - * kSCEntNetPPPSerial Entity Keys - * - * * RESERVED FOR FUTURE USE * - * - * kSCEntNetPPTP Entity Keys - * - * * RESERVED FOR FUTURE USE * - * - * kSCEntNetL2TP Entity Keys - * - * kSCPropNetL2TPIPSecSharedSecret "IPSecSharedSecret" CFString - * kSCPropNetL2TPIPSecSharedSecretEncryption "IPSecSharedSecretEncryption" CFString - * kSCPropNetL2TPTransport "Transport" CFString - * - * --- kSCPropNetL2TPIPSecSharedSecretEncryption values --- - * kSCValNetL2TPIPSecSharedSecretEncryptionKeychain "Keychain" - * - * --- kSCPropNetL2TPTransport values --- - * kSCValNetL2TPTransportIP "IP" - * kSCValNetL2TPTransportIPSec "IPSec" - * - * kSCEntNetProxies Entity Keys - * - * kSCPropNetProxiesExceptionsList "ExceptionsList" CFArray[CFString] - * kSCPropNetProxiesExcludeSimpleHostnames "ExcludeSimpleHostnames" CFNumber (0 or 1) - * kSCPropNetProxiesFTPEnable "FTPEnable" CFNumber (0 or 1) - * kSCPropNetProxiesFTPPassive "FTPPassive" CFNumber (0 or 1) - * kSCPropNetProxiesFTPPort "FTPPort" CFNumber - * kSCPropNetProxiesFTPProxy "FTPProxy" CFString - * kSCPropNetProxiesGopherEnable "GopherEnable" CFNumber (0 or 1) - * kSCPropNetProxiesGopherPort "GopherPort" CFNumber - * kSCPropNetProxiesGopherProxy "GopherProxy" CFString - * kSCPropNetProxiesHTTPEnable "HTTPEnable" CFNumber (0 or 1) - * kSCPropNetProxiesHTTPPort "HTTPPort" CFNumber - * kSCPropNetProxiesHTTPProxy "HTTPProxy" CFString - * kSCPropNetProxiesHTTPSEnable "HTTPSEnable" CFNumber (0 or 1) - * kSCPropNetProxiesHTTPSPort "HTTPSPort" CFNumber - * kSCPropNetProxiesHTTPSProxy "HTTPSProxy" CFString - * kSCPropNetProxiesRTSPEnable "RTSPEnable" CFNumber (0 or 1) - * kSCPropNetProxiesRTSPPort "RTSPPort" CFNumber - * kSCPropNetProxiesRTSPProxy "RTSPProxy" CFString - * kSCPropNetProxiesSOCKSEnable "SOCKSEnable" CFNumber (0 or 1) - * kSCPropNetProxiesSOCKSPort "SOCKSPort" CFNumber - * kSCPropNetProxiesSOCKSProxy "SOCKSProxy" CFString - * kSCPropNetProxiesProxyAutoConfigEnable "ProxyAutoConfigEnable" CFNumber (0 or 1) - * kSCPropNetProxiesProxyAutoConfigJavaScript "ProxyAutoConfigJavaScript" CFString - * kSCPropNetProxiesProxyAutoConfigURLString "ProxyAutoConfigURLString" CFString - * kSCPropNetProxiesProxyAutoDiscoveryEnable "ProxyAutoDiscoveryEnable" CFNumber (0 or 1) - * - * kSCEntNetSMB Entity Keys - * - * kSCPropNetSMBNetBIOSName "NetBIOSName" CFString - * kSCPropNetSMBNetBIOSNodeType "NetBIOSNodeType" CFString - * kSCPropNetSMBNetBIOSScope "NetBIOSScope" CFString - * kSCPropNetSMBWINSAddresses "WINSAddresses" CFArray[CFString] - * kSCPropNetSMBWorkgroup "Workgroup" CFString - * - * --- kSCPropNetSMBNetBIOSNodeType values --- - * kSCValNetSMBNetBIOSNodeTypeBroadcast "Broadcast" - * kSCValNetSMBNetBIOSNodeTypePeer "Peer" - * kSCValNetSMBNetBIOSNodeTypeMixed "Mixed" - * kSCValNetSMBNetBIOSNodeTypeHybrid "Hybrid" - * - * kSCCompUsers Entity Keys - * - * kSCEntUsersConsoleUser "ConsoleUser" - * - * kSCCompSystem Properties - * - * kSCPropSystemComputerName "ComputerName" CFString - * kSCPropSystemComputerNameEncoding "ComputerNameEncoding" CFNumber - * - * SCDynamicStore "domain" prefixes - * - * kSCDynamicStoreDomainFile "File:" - * kSCDynamicStoreDomainPlugin "Plugin:" - * kSCDynamicStoreDomainSetup "Setup:" - * kSCDynamicStoreDomainState "State:" - * kSCDynamicStoreDomainPrefs "Prefs:" - * - * Preference ("location") Keys - * - * kSCDynamicStorePropSetupCurrentSet "CurrentSet" CFString - * kSCDynamicStorePropSetupLastUpdated "LastUpdated" - * - * Common/shared Keys - * - * kSCDynamicStorePropNetInterfaces "Interfaces" CFArray[CFString] - * kSCDynamicStorePropNetPrimaryInterface "PrimaryInterface" CFString - * kSCDynamicStorePropNetPrimaryService "PrimaryService" CFString - * kSCDynamicStorePropNetServiceIDs "ServiceIDs" CFArray[CFString] - */ - - -#ifndef _SCSCHEMADEFINITIONS_H -#define _SCSCHEMADEFINITIONS_H - -#include -#include -#include - -/*! - * @header SCSchemaDefinitions - */ - - -CF_ASSUME_NONNULL_BEGIN - -/*! - @const kSCResvLink - @discussion Value is a CFString - */ -extern const CFStringRef kSCResvLink __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCResvLink kSCResvLink - -/*! - @const kSCResvInactive - */ -extern const CFStringRef kSCResvInactive __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCResvInactive kSCResvInactive - -/*! - @const kSCPropInterfaceName - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropInterfaceName __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropInterfaceName kSCPropInterfaceName - -/*! - @const kSCPropMACAddress - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropMACAddress __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropMACAddress kSCPropMACAddress - -/*! - @const kSCPropUserDefinedName - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropUserDefinedName __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropUserDefinedName kSCPropUserDefinedName - -/*! - @const kSCPropVersion - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropVersion __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropVersion kSCPropVersion - -/*! - @group Preference Keys - */ - -/*! - @const kSCPrefCurrentSet - @discussion Value is a CFString - */ -extern const CFStringRef kSCPrefCurrentSet __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPrefCurrentSet kSCPrefCurrentSet - -/*! - @const kSCPrefNetworkServices - @discussion Value is a CFDictionary - */ -extern const CFStringRef kSCPrefNetworkServices __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPrefNetworkServices kSCPrefNetworkServices - -/*! - @const kSCPrefSets - @discussion Value is a CFDictionary - */ -extern const CFStringRef kSCPrefSets __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPrefSets kSCPrefSets - -/*! - @const kSCPrefSystem - @discussion Value is a CFDictionary - */ -extern const CFStringRef kSCPrefSystem __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPrefSystem kSCPrefSystem - -/*! - @group Component Keys - */ - -/*! - @const kSCCompNetwork - */ -extern const CFStringRef kSCCompNetwork __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCCompNetwork kSCCompNetwork - -/*! - @const kSCCompService - */ -extern const CFStringRef kSCCompService __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCCompService kSCCompService - -/*! - @const kSCCompGlobal - */ -extern const CFStringRef kSCCompGlobal __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCCompGlobal kSCCompGlobal - -/*! - @const kSCCompHostNames - */ -extern const CFStringRef kSCCompHostNames __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_NA); -#define kSCCompHostNames kSCCompHostNames - -/*! - @const kSCCompInterface - */ -extern const CFStringRef kSCCompInterface __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCCompInterface kSCCompInterface - -/*! - @const kSCCompSystem - */ -extern const CFStringRef kSCCompSystem __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCCompSystem kSCCompSystem - -/*! - @const kSCCompUsers - */ -extern const CFStringRef kSCCompUsers __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCCompUsers kSCCompUsers - -/*! - @const kSCCompAnyRegex - */ -extern const CFStringRef kSCCompAnyRegex __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCCompAnyRegex kSCCompAnyRegex - -/*! - @group Network Entity Keys - */ - -/*! - @const kSCEntNetAirPort - @discussion Value is a CFDictionary - */ -extern const CFStringRef kSCEntNetAirPort __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCEntNetAirPort kSCEntNetAirPort - -/*! - @const kSCEntNetAppleTalk - @discussion Value is a CFDictionary - */ -extern const CFStringRef kSCEntNetAppleTalk __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1,__MAC_10_6,__IPHONE_NA,__IPHONE_NA); -#define kSCEntNetAppleTalk kSCEntNetAppleTalk - -/*! - @const kSCEntNetDHCP - @discussion Value is a CFDictionary - */ -extern const CFStringRef kSCEntNetDHCP __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCEntNetDHCP kSCEntNetDHCP - -/*! - @const kSCEntNetDNS - @discussion Value is a CFDictionary - */ -extern const CFStringRef kSCEntNetDNS __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCEntNetDNS kSCEntNetDNS - -/*! - @const kSCEntNetEthernet - @discussion Value is a CFDictionary - */ -extern const CFStringRef kSCEntNetEthernet __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCEntNetEthernet kSCEntNetEthernet - -/*! - @const kSCEntNetFireWire - @discussion Value is a CFDictionary - */ -extern const CFStringRef kSCEntNetFireWire __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA); -#define kSCEntNetFireWire kSCEntNetFireWire - -/*! - @const kSCEntNetInterface - @discussion Value is a CFDictionary - */ -extern const CFStringRef kSCEntNetInterface __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCEntNetInterface kSCEntNetInterface - -/*! - @const kSCEntNetIPSec - @discussion Value is a CFDictionary - */ -extern const CFStringRef kSCEntNetIPSec __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); -#define kSCEntNetIPSec kSCEntNetIPSec - -/*! - @const kSCEntNetIPv4 - @discussion Value is a CFDictionary - */ -extern const CFStringRef kSCEntNetIPv4 __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCEntNetIPv4 kSCEntNetIPv4 - -/*! - @const kSCEntNetIPv6 - @discussion Value is a CFDictionary - */ -extern const CFStringRef kSCEntNetIPv6 __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCEntNetIPv6 kSCEntNetIPv6 - -/*! - @const kSCEntNetL2TP - @discussion Value is a CFDictionary - */ -extern const CFStringRef kSCEntNetL2TP __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA); -#define kSCEntNetL2TP kSCEntNetL2TP - -/*! - @const kSCEntNetLink - @discussion Value is a CFDictionary - */ -extern const CFStringRef kSCEntNetLink __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCEntNetLink kSCEntNetLink - -/*! - @const kSCEntNetModem - @discussion Value is a CFDictionary - */ -extern const CFStringRef kSCEntNetModem __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCEntNetModem kSCEntNetModem - -/*! - @const kSCEntNetNetInfo - @discussion Value is a CFDictionary - */ -extern const CFStringRef kSCEntNetNetInfo __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1,__MAC_10_5,__IPHONE_NA,__IPHONE_NA); -#define kSCEntNetNetInfo kSCEntNetNetInfo - -/*! - @const kSCEntNetPPP - @discussion Value is a CFDictionary - */ -extern const CFStringRef kSCEntNetPPP __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCEntNetPPP kSCEntNetPPP - -/*! - @const kSCEntNetPPPoE - @discussion Value is a CFDictionary - */ -extern const CFStringRef kSCEntNetPPPoE __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCEntNetPPPoE kSCEntNetPPPoE - -/*! - @const kSCEntNetPPPSerial - @discussion Value is a CFDictionary - */ -extern const CFStringRef kSCEntNetPPPSerial __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA); -#define kSCEntNetPPPSerial kSCEntNetPPPSerial - -/*! - @const kSCEntNetPPTP - @discussion Value is a CFDictionary - */ -extern const CFStringRef kSCEntNetPPTP __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA); -#define kSCEntNetPPTP kSCEntNetPPTP - -/*! - @const kSCEntNetProxies - @discussion Value is a CFDictionary - */ -extern const CFStringRef kSCEntNetProxies __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCEntNetProxies kSCEntNetProxies - -/*! - @const kSCEntNetSMB - @discussion Value is a CFDictionary - */ -extern const CFStringRef kSCEntNetSMB __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); -#define kSCEntNetSMB kSCEntNetSMB - -/*! - @const kSCEntNet6to4 - @discussion Value is a CFDictionary - */ -extern const CFStringRef kSCEntNet6to4 __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA); -#define kSCEntNet6to4 kSCEntNet6to4 - -/*! - @group kSCCompNetwork Properties - */ - -/*! - @const kSCPropNetOverridePrimary - @discussion Value is a CFNumber (0 or 1) - */ -extern const CFStringRef kSCPropNetOverridePrimary __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_NA); -#define kSCPropNetOverridePrimary kSCPropNetOverridePrimary - -/*! - @const kSCPropNetServiceOrder - @discussion Value is a CFArray[CFString] - */ -extern const CFStringRef kSCPropNetServiceOrder __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetServiceOrder kSCPropNetServiceOrder - -/*! - @const kSCPropNetPPPOverridePrimary - @discussion Value is a CFNumber (0 or 1) - */ -extern const CFStringRef kSCPropNetPPPOverridePrimary __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetPPPOverridePrimary kSCPropNetPPPOverridePrimary - -/*! - @group kSCCompNetworkInterface Properties - */ - -/*! - @const kSCPropNetInterfaces - @discussion Value is a CFArray[CFString] - */ -extern const CFStringRef kSCPropNetInterfaces __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_NA); -#define kSCPropNetInterfaces kSCPropNetInterfaces - -/*! - @group kSCCompNetworkHostNames Properties - */ - -/*! - @const kSCPropNetLocalHostName - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropNetLocalHostName __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_NA); -#define kSCPropNetLocalHostName kSCPropNetLocalHostName - -/*! - @group kSCEntNetAirPort (Hardware) Entity Keys - */ - -/*! - @const kSCPropNetAirPortAllowNetCreation - @discussion Value is a CFNumber (0 or 1) - */ -extern const CFStringRef kSCPropNetAirPortAllowNetCreation __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_2,__MAC_10_9,__IPHONE_NA,__IPHONE_NA); -#define kSCPropNetAirPortAllowNetCreation kSCPropNetAirPortAllowNetCreation - -/*! - @const kSCPropNetAirPortAuthPassword - @discussion Value is a CFData - */ -extern const CFStringRef kSCPropNetAirPortAuthPassword __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1,__MAC_10_9,__IPHONE_NA,__IPHONE_NA); -#define kSCPropNetAirPortAuthPassword kSCPropNetAirPortAuthPassword - -/*! - @const kSCPropNetAirPortAuthPasswordEncryption - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropNetAirPortAuthPasswordEncryption __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1,__MAC_10_9,__IPHONE_NA,__IPHONE_NA); -#define kSCPropNetAirPortAuthPasswordEncryption kSCPropNetAirPortAuthPasswordEncryption - -/*! - @const kSCPropNetAirPortJoinMode - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropNetAirPortJoinMode __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_2,__MAC_10_9,__IPHONE_NA,__IPHONE_NA); -#define kSCPropNetAirPortJoinMode kSCPropNetAirPortJoinMode - -/*! - @const kSCPropNetAirPortPowerEnabled - @discussion Value is a CFNumber (0 or 1) - */ -extern const CFStringRef kSCPropNetAirPortPowerEnabled __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1,__MAC_10_9,__IPHONE_NA,__IPHONE_NA); -#define kSCPropNetAirPortPowerEnabled kSCPropNetAirPortPowerEnabled - -/*! - @const kSCPropNetAirPortPreferredNetwork - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropNetAirPortPreferredNetwork __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1,__MAC_10_9,__IPHONE_NA,__IPHONE_NA); -#define kSCPropNetAirPortPreferredNetwork kSCPropNetAirPortPreferredNetwork - -/*! - @const kSCPropNetAirPortSavePasswords - @discussion Value is a CFNumber (0 or 1) - */ -extern const CFStringRef kSCPropNetAirPortSavePasswords __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_2,__MAC_10_9,__IPHONE_NA,__IPHONE_NA); -#define kSCPropNetAirPortSavePasswords kSCPropNetAirPortSavePasswords - -/*! - @const kSCValNetAirPortJoinModeAutomatic - */ -extern const CFStringRef kSCValNetAirPortJoinModeAutomatic __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_3,__MAC_10_9,__IPHONE_NA,__IPHONE_NA); -#define kSCValNetAirPortJoinModeAutomatic kSCValNetAirPortJoinModeAutomatic - -/*! - @const kSCValNetAirPortJoinModePreferred - */ -extern const CFStringRef kSCValNetAirPortJoinModePreferred __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_2,__MAC_10_9,__IPHONE_NA,__IPHONE_NA); -#define kSCValNetAirPortJoinModePreferred kSCValNetAirPortJoinModePreferred - -/*! - @const kSCValNetAirPortJoinModeRanked - */ -extern const CFStringRef kSCValNetAirPortJoinModeRanked __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4,__MAC_10_9,__IPHONE_NA,__IPHONE_NA); -#define kSCValNetAirPortJoinModeRanked kSCValNetAirPortJoinModeRanked - -/*! - @const kSCValNetAirPortJoinModeRecent - */ -extern const CFStringRef kSCValNetAirPortJoinModeRecent __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_2,__MAC_10_9,__IPHONE_NA,__IPHONE_NA); -#define kSCValNetAirPortJoinModeRecent kSCValNetAirPortJoinModeRecent - -/*! - @const kSCValNetAirPortJoinModeStrongest - */ -extern const CFStringRef kSCValNetAirPortJoinModeStrongest __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_2,__MAC_10_9,__IPHONE_NA,__IPHONE_NA); -#define kSCValNetAirPortJoinModeStrongest kSCValNetAirPortJoinModeStrongest - -/*! - @const kSCValNetAirPortAuthPasswordEncryptionKeychain - */ -extern const CFStringRef kSCValNetAirPortAuthPasswordEncryptionKeychain __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_3,__MAC_10_9,__IPHONE_NA,__IPHONE_NA); -#define kSCValNetAirPortAuthPasswordEncryptionKeychain kSCValNetAirPortAuthPasswordEncryptionKeychain - -/*! - @group kSCEntNetAppleTalk Entity Keys - */ - -/*! - @const kSCPropNetAppleTalkComputerName - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropNetAppleTalkComputerName __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1,__MAC_10_6,__IPHONE_NA,__IPHONE_NA); -#define kSCPropNetAppleTalkComputerName kSCPropNetAppleTalkComputerName - -/*! - @const kSCPropNetAppleTalkComputerNameEncoding - @discussion Value is a CFNumber - */ -extern const CFStringRef kSCPropNetAppleTalkComputerNameEncoding __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1,__MAC_10_6,__IPHONE_NA,__IPHONE_NA); -#define kSCPropNetAppleTalkComputerNameEncoding kSCPropNetAppleTalkComputerNameEncoding - -/*! - @const kSCPropNetAppleTalkConfigMethod - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropNetAppleTalkConfigMethod __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1,__MAC_10_6,__IPHONE_NA,__IPHONE_NA); -#define kSCPropNetAppleTalkConfigMethod kSCPropNetAppleTalkConfigMethod - -/*! - @const kSCPropNetAppleTalkDefaultZone - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropNetAppleTalkDefaultZone __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1,__MAC_10_6,__IPHONE_NA,__IPHONE_NA); -#define kSCPropNetAppleTalkDefaultZone kSCPropNetAppleTalkDefaultZone - -/*! - @const kSCPropNetAppleTalkNetworkID - @discussion Value is a CFNumber - */ -extern const CFStringRef kSCPropNetAppleTalkNetworkID __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1,__MAC_10_6,__IPHONE_NA,__IPHONE_NA); -#define kSCPropNetAppleTalkNetworkID kSCPropNetAppleTalkNetworkID - -/*! - @const kSCPropNetAppleTalkNetworkRange - @discussion Value is a CFArray[CFNumber] - */ -extern const CFStringRef kSCPropNetAppleTalkNetworkRange __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_2,__MAC_10_6,__IPHONE_NA,__IPHONE_NA); -#define kSCPropNetAppleTalkNetworkRange kSCPropNetAppleTalkNetworkRange - -/*! - @const kSCPropNetAppleTalkNodeID - @discussion Value is a CFNumber - */ -extern const CFStringRef kSCPropNetAppleTalkNodeID __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1,__MAC_10_6,__IPHONE_NA,__IPHONE_NA); -#define kSCPropNetAppleTalkNodeID kSCPropNetAppleTalkNodeID - -/*! - @const kSCPropNetAppleTalkSeedNetworkRange - @discussion Value is a CFArray[CFNumber] - */ -extern const CFStringRef kSCPropNetAppleTalkSeedNetworkRange __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1,__MAC_10_6,__IPHONE_NA,__IPHONE_NA); -#define kSCPropNetAppleTalkSeedNetworkRange kSCPropNetAppleTalkSeedNetworkRange - -/*! - @const kSCPropNetAppleTalkSeedZones - @discussion Value is a CFArray[CFString] - */ -extern const CFStringRef kSCPropNetAppleTalkSeedZones __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1,__MAC_10_6,__IPHONE_NA,__IPHONE_NA); -#define kSCPropNetAppleTalkSeedZones kSCPropNetAppleTalkSeedZones - -/*! - @const kSCValNetAppleTalkConfigMethodNode - */ -extern const CFStringRef kSCValNetAppleTalkConfigMethodNode __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1,__MAC_10_6,__IPHONE_NA,__IPHONE_NA); -#define kSCValNetAppleTalkConfigMethodNode kSCValNetAppleTalkConfigMethodNode - -/*! - @const kSCValNetAppleTalkConfigMethodRouter - */ -extern const CFStringRef kSCValNetAppleTalkConfigMethodRouter __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1,__MAC_10_6,__IPHONE_NA,__IPHONE_NA); -#define kSCValNetAppleTalkConfigMethodRouter kSCValNetAppleTalkConfigMethodRouter - -/*! - @const kSCValNetAppleTalkConfigMethodSeedRouter - */ -extern const CFStringRef kSCValNetAppleTalkConfigMethodSeedRouter __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1,__MAC_10_6,__IPHONE_NA,__IPHONE_NA); -#define kSCValNetAppleTalkConfigMethodSeedRouter kSCValNetAppleTalkConfigMethodSeedRouter - -/*! - @group kSCEntNetDNS Entity Keys - */ - -/*! - @const kSCPropNetDNSDomainName - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropNetDNSDomainName __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetDNSDomainName kSCPropNetDNSDomainName - -/*! - @const kSCPropNetDNSOptions - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropNetDNSOptions __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); -#define kSCPropNetDNSOptions kSCPropNetDNSOptions - -/*! - @const kSCPropNetDNSSearchDomains - @discussion Value is a CFArray[CFString] - */ -extern const CFStringRef kSCPropNetDNSSearchDomains __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetDNSSearchDomains kSCPropNetDNSSearchDomains - -/*! - @const kSCPropNetDNSSearchOrder - @discussion Value is a CFNumber - */ -extern const CFStringRef kSCPropNetDNSSearchOrder __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); -#define kSCPropNetDNSSearchOrder kSCPropNetDNSSearchOrder - -/*! - @const kSCPropNetDNSServerAddresses - @discussion Value is a CFArray[CFString] - */ -extern const CFStringRef kSCPropNetDNSServerAddresses __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetDNSServerAddresses kSCPropNetDNSServerAddresses - -/*! - @const kSCPropNetDNSServerPort - @discussion Value is a CFNumber - */ -extern const CFStringRef kSCPropNetDNSServerPort __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); -#define kSCPropNetDNSServerPort kSCPropNetDNSServerPort - -/*! - @const kSCPropNetDNSServerTimeout - @discussion Value is a CFNumber - */ -extern const CFStringRef kSCPropNetDNSServerTimeout __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); -#define kSCPropNetDNSServerTimeout kSCPropNetDNSServerTimeout - -/*! - @const kSCPropNetDNSSortList - @discussion Value is a CFArray[CFString] - */ -extern const CFStringRef kSCPropNetDNSSortList __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetDNSSortList kSCPropNetDNSSortList - -/*! - @const kSCPropNetDNSSupplementalMatchDomains - @discussion Value is a CFArray[CFString] - */ -extern const CFStringRef kSCPropNetDNSSupplementalMatchDomains __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); -#define kSCPropNetDNSSupplementalMatchDomains kSCPropNetDNSSupplementalMatchDomains - -/*! - @const kSCPropNetDNSSupplementalMatchOrders - @discussion Value is a CFArray[CFNumber] - */ -extern const CFStringRef kSCPropNetDNSSupplementalMatchOrders __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); -#define kSCPropNetDNSSupplementalMatchOrders kSCPropNetDNSSupplementalMatchOrders - -/*! - @group kSCEntNetEthernet (Hardware) Entity Keys - */ - -/*! - @const kSCPropNetEthernetMediaSubType - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropNetEthernetMediaSubType __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_NA); -#define kSCPropNetEthernetMediaSubType kSCPropNetEthernetMediaSubType - -/*! - @const kSCPropNetEthernetMediaOptions - @discussion Value is a CFArray[CFString] - */ -extern const CFStringRef kSCPropNetEthernetMediaOptions __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_NA); -#define kSCPropNetEthernetMediaOptions kSCPropNetEthernetMediaOptions - -/*! - @const kSCPropNetEthernetMTU - @discussion Value is a CFNumber - */ -extern const CFStringRef kSCPropNetEthernetMTU __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_NA); -#define kSCPropNetEthernetMTU kSCPropNetEthernetMTU - -/*! - @group kSCEntNetFireWire (Hardware) Entity Keys - */ - -/*! - @group kSCEntNetInterface Entity Keys - */ - -/*! - @const kSCPropNetInterfaceDeviceName - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropNetInterfaceDeviceName __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetInterfaceDeviceName kSCPropNetInterfaceDeviceName - -/*! - @const kSCPropNetInterfaceHardware - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropNetInterfaceHardware __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetInterfaceHardware kSCPropNetInterfaceHardware - -/*! - @const kSCPropNetInterfaceType - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropNetInterfaceType __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetInterfaceType kSCPropNetInterfaceType - -/*! - @const kSCPropNetInterfaceSubType - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropNetInterfaceSubType __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetInterfaceSubType kSCPropNetInterfaceSubType - -/*! - @const kSCPropNetInterfaceSupportsModemOnHold - @discussion Value is a CFNumber (0 or 1) - */ -extern const CFStringRef kSCPropNetInterfaceSupportsModemOnHold __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_NA); -#define kSCPropNetInterfaceSupportsModemOnHold kSCPropNetInterfaceSupportsModemOnHold - -/*! - @const kSCValNetInterfaceTypeEthernet - */ -extern const CFStringRef kSCValNetInterfaceTypeEthernet __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCValNetInterfaceTypeEthernet kSCValNetInterfaceTypeEthernet - -/*! - @const kSCValNetInterfaceTypeFireWire - */ -extern const CFStringRef kSCValNetInterfaceTypeFireWire __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA); -#define kSCValNetInterfaceTypeFireWire kSCValNetInterfaceTypeFireWire - -/*! - @const kSCValNetInterfaceTypePPP - */ -extern const CFStringRef kSCValNetInterfaceTypePPP __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCValNetInterfaceTypePPP kSCValNetInterfaceTypePPP - -/*! - @const kSCValNetInterfaceType6to4 - */ -extern const CFStringRef kSCValNetInterfaceType6to4 __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA); -#define kSCValNetInterfaceType6to4 kSCValNetInterfaceType6to4 - -/*! - @const kSCValNetInterfaceTypeIPSec - */ -extern const CFStringRef kSCValNetInterfaceTypeIPSec __OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA); -#define kSCValNetInterfaceTypeIPSec kSCValNetInterfaceTypeIPSec - -/*! - @const kSCValNetInterfaceSubTypePPPoE - */ -extern const CFStringRef kSCValNetInterfaceSubTypePPPoE __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCValNetInterfaceSubTypePPPoE kSCValNetInterfaceSubTypePPPoE - -/*! - @const kSCValNetInterfaceSubTypePPPSerial - */ -extern const CFStringRef kSCValNetInterfaceSubTypePPPSerial __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCValNetInterfaceSubTypePPPSerial kSCValNetInterfaceSubTypePPPSerial - -/*! - @const kSCValNetInterfaceSubTypePPTP - */ -extern const CFStringRef kSCValNetInterfaceSubTypePPTP __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_NA); -#define kSCValNetInterfaceSubTypePPTP kSCValNetInterfaceSubTypePPTP - -/*! - @const kSCValNetInterfaceSubTypeL2TP - */ -extern const CFStringRef kSCValNetInterfaceSubTypeL2TP __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA); -#define kSCValNetInterfaceSubTypeL2TP kSCValNetInterfaceSubTypeL2TP - -/*! - @group kSCEntNetIPSec Entity Keys - */ - -/*! - @const kSCPropNetIPSecAuthenticationMethod - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropNetIPSecAuthenticationMethod __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); -#define kSCPropNetIPSecAuthenticationMethod kSCPropNetIPSecAuthenticationMethod - -/*! - @const kSCPropNetIPSecLocalCertificate - @discussion Value is a CFData - */ -extern const CFStringRef kSCPropNetIPSecLocalCertificate __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); -#define kSCPropNetIPSecLocalCertificate kSCPropNetIPSecLocalCertificate - -/*! - @const kSCPropNetIPSecLocalIdentifier - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropNetIPSecLocalIdentifier __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); -#define kSCPropNetIPSecLocalIdentifier kSCPropNetIPSecLocalIdentifier - -/*! - @const kSCPropNetIPSecLocalIdentifierType - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropNetIPSecLocalIdentifierType __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); -#define kSCPropNetIPSecLocalIdentifierType kSCPropNetIPSecLocalIdentifierType - -/*! - @const kSCPropNetIPSecSharedSecret - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropNetIPSecSharedSecret __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); -#define kSCPropNetIPSecSharedSecret kSCPropNetIPSecSharedSecret - -/*! - @const kSCPropNetIPSecSharedSecretEncryption - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropNetIPSecSharedSecretEncryption __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); -#define kSCPropNetIPSecSharedSecretEncryption kSCPropNetIPSecSharedSecretEncryption - -/*! - @const kSCPropNetIPSecConnectTime - @discussion Value is a CFNumber - */ -extern const CFStringRef kSCPropNetIPSecConnectTime __OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA); -#define kSCPropNetIPSecConnectTime kSCPropNetIPSecConnectTime - -/*! - @const kSCPropNetIPSecRemoteAddress - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropNetIPSecRemoteAddress __OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA); -#define kSCPropNetIPSecRemoteAddress kSCPropNetIPSecRemoteAddress - -/*! - @const kSCPropNetIPSecStatus - @discussion Value is a CFNumber - */ -extern const CFStringRef kSCPropNetIPSecStatus __OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA); -#define kSCPropNetIPSecStatus kSCPropNetIPSecStatus - -/*! - @const kSCPropNetIPSecXAuthEnabled - @discussion Value is a CFNumber (0 or 1) - */ -extern const CFStringRef kSCPropNetIPSecXAuthEnabled __OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA); -#define kSCPropNetIPSecXAuthEnabled kSCPropNetIPSecXAuthEnabled - -/*! - @const kSCPropNetIPSecXAuthName - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropNetIPSecXAuthName __OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA); -#define kSCPropNetIPSecXAuthName kSCPropNetIPSecXAuthName - -/*! - @const kSCPropNetIPSecXAuthPassword - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropNetIPSecXAuthPassword __OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA); -#define kSCPropNetIPSecXAuthPassword kSCPropNetIPSecXAuthPassword - -/*! - @const kSCPropNetIPSecXAuthPasswordEncryption - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropNetIPSecXAuthPasswordEncryption __OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA); -#define kSCPropNetIPSecXAuthPasswordEncryption kSCPropNetIPSecXAuthPasswordEncryption - -/*! - @const kSCValNetIPSecAuthenticationMethodSharedSecret - */ -extern const CFStringRef kSCValNetIPSecAuthenticationMethodSharedSecret __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); -#define kSCValNetIPSecAuthenticationMethodSharedSecret kSCValNetIPSecAuthenticationMethodSharedSecret - -/*! - @const kSCValNetIPSecAuthenticationMethodCertificate - */ -extern const CFStringRef kSCValNetIPSecAuthenticationMethodCertificate __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); -#define kSCValNetIPSecAuthenticationMethodCertificate kSCValNetIPSecAuthenticationMethodCertificate - -/*! - @const kSCValNetIPSecAuthenticationMethodHybrid - */ -extern const CFStringRef kSCValNetIPSecAuthenticationMethodHybrid __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); -#define kSCValNetIPSecAuthenticationMethodHybrid kSCValNetIPSecAuthenticationMethodHybrid - -/*! - @const kSCValNetIPSecLocalIdentifierTypeKeyID - */ -extern const CFStringRef kSCValNetIPSecLocalIdentifierTypeKeyID __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); -#define kSCValNetIPSecLocalIdentifierTypeKeyID kSCValNetIPSecLocalIdentifierTypeKeyID - -/*! - @const kSCValNetIPSecSharedSecretEncryptionKeychain - */ -extern const CFStringRef kSCValNetIPSecSharedSecretEncryptionKeychain __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); -#define kSCValNetIPSecSharedSecretEncryptionKeychain kSCValNetIPSecSharedSecretEncryptionKeychain - -/*! - @const kSCValNetIPSecXAuthPasswordEncryptionKeychain - */ -extern const CFStringRef kSCValNetIPSecXAuthPasswordEncryptionKeychain __OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA); -#define kSCValNetIPSecXAuthPasswordEncryptionKeychain kSCValNetIPSecXAuthPasswordEncryptionKeychain - -/*! - @const kSCValNetIPSecXAuthPasswordEncryptionPrompt - */ -extern const CFStringRef kSCValNetIPSecXAuthPasswordEncryptionPrompt __OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA); -#define kSCValNetIPSecXAuthPasswordEncryptionPrompt kSCValNetIPSecXAuthPasswordEncryptionPrompt - -/*! - @group kSCEntNetIPv4 Entity Keys - */ - -/*! - @const kSCPropNetIPv4Addresses - @discussion Value is a CFArray[CFString] - */ -extern const CFStringRef kSCPropNetIPv4Addresses __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetIPv4Addresses kSCPropNetIPv4Addresses - -/*! - @const kSCPropNetIPv4ConfigMethod - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropNetIPv4ConfigMethod __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetIPv4ConfigMethod kSCPropNetIPv4ConfigMethod - -/*! - @const kSCPropNetIPv4DHCPClientID - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropNetIPv4DHCPClientID __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetIPv4DHCPClientID kSCPropNetIPv4DHCPClientID - -/*! - @const kSCPropNetIPv4Router - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropNetIPv4Router __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetIPv4Router kSCPropNetIPv4Router - -/*! - @const kSCPropNetIPv4SubnetMasks - @discussion Value is a CFArray[CFString] - */ -extern const CFStringRef kSCPropNetIPv4SubnetMasks __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetIPv4SubnetMasks kSCPropNetIPv4SubnetMasks - -/*! - @const kSCPropNetIPv4DestAddresses - @discussion Value is a CFArray[CFString] - */ -extern const CFStringRef kSCPropNetIPv4DestAddresses __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetIPv4DestAddresses kSCPropNetIPv4DestAddresses - -/*! - @const kSCPropNetIPv4BroadcastAddresses - @discussion Value is a CFArray[CFString] - */ -extern const CFStringRef kSCPropNetIPv4BroadcastAddresses __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetIPv4BroadcastAddresses kSCPropNetIPv4BroadcastAddresses - -/*! - @const kSCValNetIPv4ConfigMethodAutomatic - */ -extern const CFStringRef kSCValNetIPv4ConfigMethodAutomatic __OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA); -#define kSCValNetIPv4ConfigMethodAutomatic kSCValNetIPv4ConfigMethodAutomatic - -/*! - @const kSCValNetIPv4ConfigMethodBOOTP - */ -extern const CFStringRef kSCValNetIPv4ConfigMethodBOOTP __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCValNetIPv4ConfigMethodBOOTP kSCValNetIPv4ConfigMethodBOOTP - -/*! - @const kSCValNetIPv4ConfigMethodDHCP - */ -extern const CFStringRef kSCValNetIPv4ConfigMethodDHCP __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCValNetIPv4ConfigMethodDHCP kSCValNetIPv4ConfigMethodDHCP - -/*! - @const kSCValNetIPv4ConfigMethodINFORM - */ -extern const CFStringRef kSCValNetIPv4ConfigMethodINFORM __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCValNetIPv4ConfigMethodINFORM kSCValNetIPv4ConfigMethodINFORM - -/*! - @const kSCValNetIPv4ConfigMethodLinkLocal - */ -extern const CFStringRef kSCValNetIPv4ConfigMethodLinkLocal __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_NA); -#define kSCValNetIPv4ConfigMethodLinkLocal kSCValNetIPv4ConfigMethodLinkLocal - -/*! - @const kSCValNetIPv4ConfigMethodManual - */ -extern const CFStringRef kSCValNetIPv4ConfigMethodManual __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCValNetIPv4ConfigMethodManual kSCValNetIPv4ConfigMethodManual - -/*! - @const kSCValNetIPv4ConfigMethodPPP - */ -extern const CFStringRef kSCValNetIPv4ConfigMethodPPP __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCValNetIPv4ConfigMethodPPP kSCValNetIPv4ConfigMethodPPP - -/*! - @group kSCEntNetIPv6 Entity Keys - */ - -/*! - @const kSCPropNetIPv6Addresses - @discussion Value is a CFArray[CFString] - */ -extern const CFStringRef kSCPropNetIPv6Addresses __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetIPv6Addresses kSCPropNetIPv6Addresses - -/*! - @const kSCPropNetIPv6ConfigMethod - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropNetIPv6ConfigMethod __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetIPv6ConfigMethod kSCPropNetIPv6ConfigMethod - -/*! - @const kSCPropNetIPv6DestAddresses - @discussion Value is a CFArray[CFString] - */ -extern const CFStringRef kSCPropNetIPv6DestAddresses __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA); -#define kSCPropNetIPv6DestAddresses kSCPropNetIPv6DestAddresses - -/*! - @const kSCPropNetIPv6Flags - @discussion Value is a CFNumber - */ -extern const CFStringRef kSCPropNetIPv6Flags __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA); -#define kSCPropNetIPv6Flags kSCPropNetIPv6Flags - -/*! - @const kSCPropNetIPv6PrefixLength - @discussion Value is a CFArray[CFNumber] - */ -extern const CFStringRef kSCPropNetIPv6PrefixLength __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA); -#define kSCPropNetIPv6PrefixLength kSCPropNetIPv6PrefixLength - -/*! - @const kSCPropNetIPv6Router - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropNetIPv6Router __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA); -#define kSCPropNetIPv6Router kSCPropNetIPv6Router - -/*! - @const kSCValNetIPv6ConfigMethodAutomatic - */ -extern const CFStringRef kSCValNetIPv6ConfigMethodAutomatic __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA); -#define kSCValNetIPv6ConfigMethodAutomatic kSCValNetIPv6ConfigMethodAutomatic - -/*! - @const kSCValNetIPv6ConfigMethodLinkLocal - */ -extern const CFStringRef kSCValNetIPv6ConfigMethodLinkLocal __OSX_AVAILABLE_STARTING(__MAC_10_7,__IPHONE_NA); -#define kSCValNetIPv6ConfigMethodLinkLocal kSCValNetIPv6ConfigMethodLinkLocal - -/*! - @const kSCValNetIPv6ConfigMethodManual - */ -extern const CFStringRef kSCValNetIPv6ConfigMethodManual __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA); -#define kSCValNetIPv6ConfigMethodManual kSCValNetIPv6ConfigMethodManual - -/*! - @const kSCValNetIPv6ConfigMethodRouterAdvertisement - */ -extern const CFStringRef kSCValNetIPv6ConfigMethodRouterAdvertisement __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA); -#define kSCValNetIPv6ConfigMethodRouterAdvertisement kSCValNetIPv6ConfigMethodRouterAdvertisement - -/*! - @const kSCValNetIPv6ConfigMethod6to4 - */ -extern const CFStringRef kSCValNetIPv6ConfigMethod6to4 __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA); -#define kSCValNetIPv6ConfigMethod6to4 kSCValNetIPv6ConfigMethod6to4 - -/*! - @group kSCEntNet6to4 Entity Keys - */ - -/*! - @const kSCPropNet6to4Relay - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropNet6to4Relay __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA); -#define kSCPropNet6to4Relay kSCPropNet6to4Relay - -/*! - @group kSCEntNetLink Entity Keys - */ - -/*! - @const kSCPropNetLinkActive - @discussion Value is a CFBoolean - */ -extern const CFStringRef kSCPropNetLinkActive __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetLinkActive kSCPropNetLinkActive - -/*! - @const kSCPropNetLinkDetaching - @discussion Value is a CFBoolean - */ -extern const CFStringRef kSCPropNetLinkDetaching __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_NA); -#define kSCPropNetLinkDetaching kSCPropNetLinkDetaching - -/*! - @group kSCEntNetModem (Hardware) Entity Keys - */ - -/*! - @const kSCPropNetModemAccessPointName - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropNetModemAccessPointName __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); -#define kSCPropNetModemAccessPointName kSCPropNetModemAccessPointName - -/*! - @const kSCPropNetModemConnectionPersonality - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropNetModemConnectionPersonality __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); -#define kSCPropNetModemConnectionPersonality kSCPropNetModemConnectionPersonality - -/*! - @const kSCPropNetModemConnectionScript - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropNetModemConnectionScript __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetModemConnectionScript kSCPropNetModemConnectionScript - -/*! - @const kSCPropNetModemConnectSpeed - @discussion Value is a CFNumber - */ -extern const CFStringRef kSCPropNetModemConnectSpeed __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_NA); -#define kSCPropNetModemConnectSpeed kSCPropNetModemConnectSpeed - -/*! - @const kSCPropNetModemDataCompression - @discussion Value is a CFNumber (0 or 1) - */ -extern const CFStringRef kSCPropNetModemDataCompression __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetModemDataCompression kSCPropNetModemDataCompression - -/*! - @const kSCPropNetModemDeviceContextID - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropNetModemDeviceContextID __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); -#define kSCPropNetModemDeviceContextID kSCPropNetModemDeviceContextID - -/*! - @const kSCPropNetModemDeviceModel - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropNetModemDeviceModel __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); -#define kSCPropNetModemDeviceModel kSCPropNetModemDeviceModel - -/*! - @const kSCPropNetModemDeviceVendor - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropNetModemDeviceVendor __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); -#define kSCPropNetModemDeviceVendor kSCPropNetModemDeviceVendor - -/*! - @const kSCPropNetModemDialMode - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropNetModemDialMode __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetModemDialMode kSCPropNetModemDialMode - -/*! - @const kSCPropNetModemErrorCorrection - @discussion Value is a CFNumber (0 or 1) - */ -extern const CFStringRef kSCPropNetModemErrorCorrection __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetModemErrorCorrection kSCPropNetModemErrorCorrection - -/*! - @const kSCPropNetModemHoldCallWaitingAudibleAlert - @discussion Value is a CFNumber (0 or 1) - */ -extern const CFStringRef kSCPropNetModemHoldCallWaitingAudibleAlert __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_NA); -#define kSCPropNetModemHoldCallWaitingAudibleAlert kSCPropNetModemHoldCallWaitingAudibleAlert - -/*! - @const kSCPropNetModemHoldDisconnectOnAnswer - @discussion Value is a CFNumber (0 or 1) - */ -extern const CFStringRef kSCPropNetModemHoldDisconnectOnAnswer __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_NA); -#define kSCPropNetModemHoldDisconnectOnAnswer kSCPropNetModemHoldDisconnectOnAnswer - -/*! - @const kSCPropNetModemHoldEnabled - @discussion Value is a CFNumber (0 or 1) - */ -extern const CFStringRef kSCPropNetModemHoldEnabled __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_NA); -#define kSCPropNetModemHoldEnabled kSCPropNetModemHoldEnabled - -/*! - @const kSCPropNetModemHoldReminder - @discussion Value is a CFNumber (0 or 1) - */ -extern const CFStringRef kSCPropNetModemHoldReminder __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_NA); -#define kSCPropNetModemHoldReminder kSCPropNetModemHoldReminder - -/*! - @const kSCPropNetModemHoldReminderTime - @discussion Value is a CFNumber - */ -extern const CFStringRef kSCPropNetModemHoldReminderTime __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_NA); -#define kSCPropNetModemHoldReminderTime kSCPropNetModemHoldReminderTime - -/*! - @const kSCPropNetModemNote - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropNetModemNote __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_NA); -#define kSCPropNetModemNote kSCPropNetModemNote - -/*! - @const kSCPropNetModemPulseDial - @discussion Value is a CFNumber (0 or 1) - */ -extern const CFStringRef kSCPropNetModemPulseDial __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetModemPulseDial kSCPropNetModemPulseDial - -/*! - @const kSCPropNetModemSpeaker - @discussion Value is a CFNumber (0 or 1) - */ -extern const CFStringRef kSCPropNetModemSpeaker __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetModemSpeaker kSCPropNetModemSpeaker - -/*! - @const kSCPropNetModemSpeed - @discussion Value is a CFNumber - */ -extern const CFStringRef kSCPropNetModemSpeed __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetModemSpeed kSCPropNetModemSpeed - -/*! - @const kSCValNetModemDialModeIgnoreDialTone - */ -extern const CFStringRef kSCValNetModemDialModeIgnoreDialTone __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCValNetModemDialModeIgnoreDialTone kSCValNetModemDialModeIgnoreDialTone - -/*! - @const kSCValNetModemDialModeManual - */ -extern const CFStringRef kSCValNetModemDialModeManual __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCValNetModemDialModeManual kSCValNetModemDialModeManual - -/*! - @const kSCValNetModemDialModeWaitForDialTone - */ -extern const CFStringRef kSCValNetModemDialModeWaitForDialTone __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCValNetModemDialModeWaitForDialTone kSCValNetModemDialModeWaitForDialTone - -/*! - @group kSCEntNetNetInfo Entity Keys - */ - -/*! - @const kSCPropNetNetInfoBindingMethods - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropNetNetInfoBindingMethods __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1,__MAC_10_5,__IPHONE_NA,__IPHONE_NA); -#define kSCPropNetNetInfoBindingMethods kSCPropNetNetInfoBindingMethods - -/*! - @const kSCPropNetNetInfoServerAddresses - @discussion Value is a CFArray[CFString] - */ -extern const CFStringRef kSCPropNetNetInfoServerAddresses __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1,__MAC_10_5,__IPHONE_NA,__IPHONE_NA); -#define kSCPropNetNetInfoServerAddresses kSCPropNetNetInfoServerAddresses - -/*! - @const kSCPropNetNetInfoServerTags - @discussion Value is a CFArray[CFString] - */ -extern const CFStringRef kSCPropNetNetInfoServerTags __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1,__MAC_10_5,__IPHONE_NA,__IPHONE_NA); -#define kSCPropNetNetInfoServerTags kSCPropNetNetInfoServerTags - -/*! - @const kSCPropNetNetInfoBroadcastServerTag - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropNetNetInfoBroadcastServerTag __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1,__MAC_10_5,__IPHONE_NA,__IPHONE_NA); -#define kSCPropNetNetInfoBroadcastServerTag kSCPropNetNetInfoBroadcastServerTag - -/*! - @const kSCValNetNetInfoBindingMethodsBroadcast - */ -extern const CFStringRef kSCValNetNetInfoBindingMethodsBroadcast __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1,__MAC_10_5,__IPHONE_NA,__IPHONE_NA); -#define kSCValNetNetInfoBindingMethodsBroadcast kSCValNetNetInfoBindingMethodsBroadcast - -/*! - @const kSCValNetNetInfoBindingMethodsDHCP - */ -extern const CFStringRef kSCValNetNetInfoBindingMethodsDHCP __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1,__MAC_10_5,__IPHONE_NA,__IPHONE_NA); -#define kSCValNetNetInfoBindingMethodsDHCP kSCValNetNetInfoBindingMethodsDHCP - -/*! - @const kSCValNetNetInfoBindingMethodsManual - */ -extern const CFStringRef kSCValNetNetInfoBindingMethodsManual __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1,__MAC_10_5,__IPHONE_NA,__IPHONE_NA); -#define kSCValNetNetInfoBindingMethodsManual kSCValNetNetInfoBindingMethodsManual - -/*! - @const kSCValNetNetInfoDefaultServerTag - */ -extern const CFStringRef kSCValNetNetInfoDefaultServerTag __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1,__MAC_10_5,__IPHONE_NA,__IPHONE_NA); -#define kSCValNetNetInfoDefaultServerTag kSCValNetNetInfoDefaultServerTag - -/*! - @group kSCEntNetPPP Entity Keys - */ - -/*! - @const kSCPropNetPPPACSPEnabled - @discussion Value is a CFNumber (0 or 1) - */ -extern const CFStringRef kSCPropNetPPPACSPEnabled __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA); -#define kSCPropNetPPPACSPEnabled kSCPropNetPPPACSPEnabled - -/*! - @const kSCPropNetPPPConnectTime - @discussion Value is a CFNumber - */ -extern const CFStringRef kSCPropNetPPPConnectTime __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_NA); -#define kSCPropNetPPPConnectTime kSCPropNetPPPConnectTime - -/*! - @const kSCPropNetPPPDeviceLastCause - @discussion Value is a CFNumber - */ -extern const CFStringRef kSCPropNetPPPDeviceLastCause __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_NA); -#define kSCPropNetPPPDeviceLastCause kSCPropNetPPPDeviceLastCause - -/*! - @const kSCPropNetPPPDialOnDemand - @discussion Value is a CFNumber (0 or 1) - */ -extern const CFStringRef kSCPropNetPPPDialOnDemand __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetPPPDialOnDemand kSCPropNetPPPDialOnDemand - -/*! - @const kSCPropNetPPPDisconnectOnFastUserSwitch - @discussion Value is a CFNumber (0 or 1) - */ -extern const CFStringRef kSCPropNetPPPDisconnectOnFastUserSwitch __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); -#define kSCPropNetPPPDisconnectOnFastUserSwitch kSCPropNetPPPDisconnectOnFastUserSwitch - -/*! - @const kSCPropNetPPPDisconnectOnIdle - @discussion Value is a CFNumber (0 or 1) - */ -extern const CFStringRef kSCPropNetPPPDisconnectOnIdle __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetPPPDisconnectOnIdle kSCPropNetPPPDisconnectOnIdle - -/*! - @const kSCPropNetPPPDisconnectOnIdleTimer - @discussion Value is a CFNumber - */ -extern const CFStringRef kSCPropNetPPPDisconnectOnIdleTimer __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetPPPDisconnectOnIdleTimer kSCPropNetPPPDisconnectOnIdleTimer - -/*! - @const kSCPropNetPPPDisconnectOnLogout - @discussion Value is a CFNumber (0 or 1) - */ -extern const CFStringRef kSCPropNetPPPDisconnectOnLogout __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetPPPDisconnectOnLogout kSCPropNetPPPDisconnectOnLogout - -/*! - @const kSCPropNetPPPDisconnectOnSleep - @discussion Value is a CFNumber (0 or 1) - */ -extern const CFStringRef kSCPropNetPPPDisconnectOnSleep __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_NA); -#define kSCPropNetPPPDisconnectOnSleep kSCPropNetPPPDisconnectOnSleep - -/*! - @const kSCPropNetPPPDisconnectTime - @discussion Value is a CFNumber - */ -extern const CFStringRef kSCPropNetPPPDisconnectTime __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA); -#define kSCPropNetPPPDisconnectTime kSCPropNetPPPDisconnectTime - -/*! - @const kSCPropNetPPPIdleReminderTimer - @discussion Value is a CFNumber - */ -extern const CFStringRef kSCPropNetPPPIdleReminderTimer __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetPPPIdleReminderTimer kSCPropNetPPPIdleReminderTimer - -/*! - @const kSCPropNetPPPIdleReminder - @discussion Value is a CFNumber (0 or 1) - */ -extern const CFStringRef kSCPropNetPPPIdleReminder __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetPPPIdleReminder kSCPropNetPPPIdleReminder - -/*! - @const kSCPropNetPPPLastCause - @discussion Value is a CFNumber - */ -extern const CFStringRef kSCPropNetPPPLastCause __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_NA); -#define kSCPropNetPPPLastCause kSCPropNetPPPLastCause - -/*! - @const kSCPropNetPPPLogfile - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropNetPPPLogfile __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetPPPLogfile kSCPropNetPPPLogfile - -/*! - @const kSCPropNetPPPPlugins - @discussion Value is a CFArray[CFString] - */ -extern const CFStringRef kSCPropNetPPPPlugins __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_NA); -#define kSCPropNetPPPPlugins kSCPropNetPPPPlugins - -/*! - @const kSCPropNetPPPRetryConnectTime - @discussion Value is a CFNumber - */ -extern const CFStringRef kSCPropNetPPPRetryConnectTime __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA); -#define kSCPropNetPPPRetryConnectTime kSCPropNetPPPRetryConnectTime - -/*! - @const kSCPropNetPPPSessionTimer - @discussion Value is a CFNumber - */ -extern const CFStringRef kSCPropNetPPPSessionTimer __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetPPPSessionTimer kSCPropNetPPPSessionTimer - -/*! - @const kSCPropNetPPPStatus - @discussion Value is a CFNumber - */ -extern const CFStringRef kSCPropNetPPPStatus __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_NA); -#define kSCPropNetPPPStatus kSCPropNetPPPStatus - -/*! - @const kSCPropNetPPPUseSessionTimer - @discussion Value is a CFNumber (0 or 1) - */ -extern const CFStringRef kSCPropNetPPPUseSessionTimer __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_NA); -#define kSCPropNetPPPUseSessionTimer kSCPropNetPPPUseSessionTimer - -/*! - @const kSCPropNetPPPVerboseLogging - @discussion Value is a CFNumber (0 or 1) - */ -extern const CFStringRef kSCPropNetPPPVerboseLogging __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetPPPVerboseLogging kSCPropNetPPPVerboseLogging - -/*! - @const kSCPropNetPPPAuthEAPPlugins - @discussion Value is a CFArray[CFString] - */ -extern const CFStringRef kSCPropNetPPPAuthEAPPlugins __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA); -#define kSCPropNetPPPAuthEAPPlugins kSCPropNetPPPAuthEAPPlugins - -/*! - @const kSCPropNetPPPAuthName - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropNetPPPAuthName __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetPPPAuthName kSCPropNetPPPAuthName - -/*! - @const kSCPropNetPPPAuthPassword - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropNetPPPAuthPassword __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetPPPAuthPassword kSCPropNetPPPAuthPassword - -/*! - @const kSCPropNetPPPAuthPasswordEncryption - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropNetPPPAuthPasswordEncryption __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetPPPAuthPasswordEncryption kSCPropNetPPPAuthPasswordEncryption - -/*! - @const kSCPropNetPPPAuthPrompt - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropNetPPPAuthPrompt __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA); -#define kSCPropNetPPPAuthPrompt kSCPropNetPPPAuthPrompt - -/*! - @const kSCPropNetPPPAuthProtocol - @discussion Value is a CFArray[CFString] - */ -extern const CFStringRef kSCPropNetPPPAuthProtocol __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetPPPAuthProtocol kSCPropNetPPPAuthProtocol - -/*! - @const kSCValNetPPPAuthPasswordEncryptionKeychain - */ -extern const CFStringRef kSCValNetPPPAuthPasswordEncryptionKeychain __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA); -#define kSCValNetPPPAuthPasswordEncryptionKeychain kSCValNetPPPAuthPasswordEncryptionKeychain - -/*! - @const kSCValNetPPPAuthPasswordEncryptionToken - */ -extern const CFStringRef kSCValNetPPPAuthPasswordEncryptionToken __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); -#define kSCValNetPPPAuthPasswordEncryptionToken kSCValNetPPPAuthPasswordEncryptionToken - -/*! - @const kSCValNetPPPAuthPromptBefore - @discussion Value is a CFString - */ -extern const CFStringRef kSCValNetPPPAuthPromptBefore __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA); -#define kSCValNetPPPAuthPromptBefore kSCValNetPPPAuthPromptBefore - -/*! - @const kSCValNetPPPAuthPromptAfter - @discussion Value is a CFString - */ -extern const CFStringRef kSCValNetPPPAuthPromptAfter __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA); -#define kSCValNetPPPAuthPromptAfter kSCValNetPPPAuthPromptAfter - -/*! - @const kSCValNetPPPAuthProtocolCHAP - @discussion Value is a CFString - */ -extern const CFStringRef kSCValNetPPPAuthProtocolCHAP __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCValNetPPPAuthProtocolCHAP kSCValNetPPPAuthProtocolCHAP - -/*! - @const kSCValNetPPPAuthProtocolEAP - @discussion Value is a CFString - */ -extern const CFStringRef kSCValNetPPPAuthProtocolEAP __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA); -#define kSCValNetPPPAuthProtocolEAP kSCValNetPPPAuthProtocolEAP - -/*! - @const kSCValNetPPPAuthProtocolMSCHAP1 - @discussion Value is a CFString - */ -extern const CFStringRef kSCValNetPPPAuthProtocolMSCHAP1 __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA); -#define kSCValNetPPPAuthProtocolMSCHAP1 kSCValNetPPPAuthProtocolMSCHAP1 - -/*! - @const kSCValNetPPPAuthProtocolMSCHAP2 - @discussion Value is a CFString - */ -extern const CFStringRef kSCValNetPPPAuthProtocolMSCHAP2 __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA); -#define kSCValNetPPPAuthProtocolMSCHAP2 kSCValNetPPPAuthProtocolMSCHAP2 - -/*! - @const kSCValNetPPPAuthProtocolPAP - @discussion Value is a CFString - */ -extern const CFStringRef kSCValNetPPPAuthProtocolPAP __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCValNetPPPAuthProtocolPAP kSCValNetPPPAuthProtocolPAP - -/*! - @const kSCPropNetPPPCommAlternateRemoteAddress - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropNetPPPCommAlternateRemoteAddress __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetPPPCommAlternateRemoteAddress kSCPropNetPPPCommAlternateRemoteAddress - -/*! - @const kSCPropNetPPPCommConnectDelay - @discussion Value is a CFNumber - */ -extern const CFStringRef kSCPropNetPPPCommConnectDelay __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetPPPCommConnectDelay kSCPropNetPPPCommConnectDelay - -/*! - @const kSCPropNetPPPCommDisplayTerminalWindow - @discussion Value is a CFNumber (0 or 1) - */ -extern const CFStringRef kSCPropNetPPPCommDisplayTerminalWindow __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetPPPCommDisplayTerminalWindow kSCPropNetPPPCommDisplayTerminalWindow - -/*! - @const kSCPropNetPPPCommRedialCount - @discussion Value is a CFNumber - */ -extern const CFStringRef kSCPropNetPPPCommRedialCount __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetPPPCommRedialCount kSCPropNetPPPCommRedialCount - -/*! - @const kSCPropNetPPPCommRedialEnabled - @discussion Value is a CFNumber (0 or 1) - */ -extern const CFStringRef kSCPropNetPPPCommRedialEnabled __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetPPPCommRedialEnabled kSCPropNetPPPCommRedialEnabled - -/*! - @const kSCPropNetPPPCommRedialInterval - @discussion Value is a CFNumber - */ -extern const CFStringRef kSCPropNetPPPCommRedialInterval __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetPPPCommRedialInterval kSCPropNetPPPCommRedialInterval - -/*! - @const kSCPropNetPPPCommRemoteAddress - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropNetPPPCommRemoteAddress __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetPPPCommRemoteAddress kSCPropNetPPPCommRemoteAddress - -/*! - @const kSCPropNetPPPCommTerminalScript - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropNetPPPCommTerminalScript __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetPPPCommTerminalScript kSCPropNetPPPCommTerminalScript - -/*! - @const kSCPropNetPPPCommUseTerminalScript - @discussion Value is a CFNumber (0 or 1) - */ -extern const CFStringRef kSCPropNetPPPCommUseTerminalScript __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_NA); -#define kSCPropNetPPPCommUseTerminalScript kSCPropNetPPPCommUseTerminalScript - -/*! - @const kSCPropNetPPPCCPEnabled - @discussion Value is a CFNumber (0 or 1) - */ -extern const CFStringRef kSCPropNetPPPCCPEnabled __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_NA); -#define kSCPropNetPPPCCPEnabled kSCPropNetPPPCCPEnabled - -/*! - @const kSCPropNetPPPCCPMPPE40Enabled - @discussion Value is a CFNumber (0 or 1) - */ -extern const CFStringRef kSCPropNetPPPCCPMPPE40Enabled __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); -#define kSCPropNetPPPCCPMPPE40Enabled kSCPropNetPPPCCPMPPE40Enabled - -/*! - @const kSCPropNetPPPCCPMPPE128Enabled - @discussion Value is a CFNumber (0 or 1) - */ -extern const CFStringRef kSCPropNetPPPCCPMPPE128Enabled __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); -#define kSCPropNetPPPCCPMPPE128Enabled kSCPropNetPPPCCPMPPE128Enabled - -/*! - @const kSCPropNetPPPIPCPCompressionVJ - @discussion Value is a CFNumber (0 or 1) - */ -extern const CFStringRef kSCPropNetPPPIPCPCompressionVJ __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetPPPIPCPCompressionVJ kSCPropNetPPPIPCPCompressionVJ - -/*! - @const kSCPropNetPPPIPCPUsePeerDNS - @discussion Value is a CFNumber (0 or 1) - */ -extern const CFStringRef kSCPropNetPPPIPCPUsePeerDNS __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); -#define kSCPropNetPPPIPCPUsePeerDNS kSCPropNetPPPIPCPUsePeerDNS - -/*! - @const kSCPropNetPPPLCPEchoEnabled - @discussion Value is a CFNumber (0 or 1) - */ -extern const CFStringRef kSCPropNetPPPLCPEchoEnabled __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetPPPLCPEchoEnabled kSCPropNetPPPLCPEchoEnabled - -/*! - @const kSCPropNetPPPLCPEchoFailure - @discussion Value is a CFNumber - */ -extern const CFStringRef kSCPropNetPPPLCPEchoFailure __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetPPPLCPEchoFailure kSCPropNetPPPLCPEchoFailure - -/*! - @const kSCPropNetPPPLCPEchoInterval - @discussion Value is a CFNumber - */ -extern const CFStringRef kSCPropNetPPPLCPEchoInterval __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetPPPLCPEchoInterval kSCPropNetPPPLCPEchoInterval - -/*! - @const kSCPropNetPPPLCPCompressionACField - @discussion Value is a CFNumber (0 or 1) - */ -extern const CFStringRef kSCPropNetPPPLCPCompressionACField __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetPPPLCPCompressionACField kSCPropNetPPPLCPCompressionACField - -/*! - @const kSCPropNetPPPLCPCompressionPField - @discussion Value is a CFNumber (0 or 1) - */ -extern const CFStringRef kSCPropNetPPPLCPCompressionPField __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetPPPLCPCompressionPField kSCPropNetPPPLCPCompressionPField - -/*! - @const kSCPropNetPPPLCPMRU - @discussion Value is a CFNumber - */ -extern const CFStringRef kSCPropNetPPPLCPMRU __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetPPPLCPMRU kSCPropNetPPPLCPMRU - -/*! - @const kSCPropNetPPPLCPMTU - @discussion Value is a CFNumber - */ -extern const CFStringRef kSCPropNetPPPLCPMTU __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetPPPLCPMTU kSCPropNetPPPLCPMTU - -/*! - @const kSCPropNetPPPLCPReceiveACCM - @discussion Value is a CFNumber - */ -extern const CFStringRef kSCPropNetPPPLCPReceiveACCM __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetPPPLCPReceiveACCM kSCPropNetPPPLCPReceiveACCM - -/*! - @const kSCPropNetPPPLCPTransmitACCM - @discussion Value is a CFNumber - */ -extern const CFStringRef kSCPropNetPPPLCPTransmitACCM __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetPPPLCPTransmitACCM kSCPropNetPPPLCPTransmitACCM - -/*! - @group kSCEntNetPPPoE Entity Keys - */ - -/*! - @group kSCEntNetPPPSerial Entity Keys - */ - -/*! - @group kSCEntNetPPTP Entity Keys - */ - -/*! - @group kSCEntNetL2TP Entity Keys - */ - -/*! - @const kSCPropNetL2TPIPSecSharedSecret - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropNetL2TPIPSecSharedSecret __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA); -#define kSCPropNetL2TPIPSecSharedSecret kSCPropNetL2TPIPSecSharedSecret - -/*! - @const kSCPropNetL2TPIPSecSharedSecretEncryption - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropNetL2TPIPSecSharedSecretEncryption __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA); -#define kSCPropNetL2TPIPSecSharedSecretEncryption kSCPropNetL2TPIPSecSharedSecretEncryption - -/*! - @const kSCPropNetL2TPTransport - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropNetL2TPTransport __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA); -#define kSCPropNetL2TPTransport kSCPropNetL2TPTransport - -/*! - @const kSCValNetL2TPIPSecSharedSecretEncryptionKeychain - */ -extern const CFStringRef kSCValNetL2TPIPSecSharedSecretEncryptionKeychain __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA); -#define kSCValNetL2TPIPSecSharedSecretEncryptionKeychain kSCValNetL2TPIPSecSharedSecretEncryptionKeychain - -/*! - @const kSCValNetL2TPTransportIP - */ -extern const CFStringRef kSCValNetL2TPTransportIP __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA); -#define kSCValNetL2TPTransportIP kSCValNetL2TPTransportIP - -/*! - @const kSCValNetL2TPTransportIPSec - */ -extern const CFStringRef kSCValNetL2TPTransportIPSec __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA); -#define kSCValNetL2TPTransportIPSec kSCValNetL2TPTransportIPSec - -/*! - @group kSCEntNetProxies Entity Keys - */ - -/*! - @const kSCPropNetProxiesExceptionsList - @discussion Value is a CFArray[CFString] - */ -extern const CFStringRef kSCPropNetProxiesExceptionsList __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetProxiesExceptionsList kSCPropNetProxiesExceptionsList - -/*! - @const kSCPropNetProxiesExcludeSimpleHostnames - @discussion Value is a CFNumber (0 or 1) - */ -extern const CFStringRef kSCPropNetProxiesExcludeSimpleHostnames __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); -#define kSCPropNetProxiesExcludeSimpleHostnames kSCPropNetProxiesExcludeSimpleHostnames - -/*! - @const kSCPropNetProxiesFTPEnable - @discussion Value is a CFNumber (0 or 1) - */ -extern const CFStringRef kSCPropNetProxiesFTPEnable __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetProxiesFTPEnable kSCPropNetProxiesFTPEnable - -/*! - @const kSCPropNetProxiesFTPPassive - @discussion Value is a CFNumber (0 or 1) - */ -extern const CFStringRef kSCPropNetProxiesFTPPassive __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetProxiesFTPPassive kSCPropNetProxiesFTPPassive - -/*! - @const kSCPropNetProxiesFTPPort - @discussion Value is a CFNumber - */ -extern const CFStringRef kSCPropNetProxiesFTPPort __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetProxiesFTPPort kSCPropNetProxiesFTPPort - -/*! - @const kSCPropNetProxiesFTPProxy - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropNetProxiesFTPProxy __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetProxiesFTPProxy kSCPropNetProxiesFTPProxy - -/*! - @const kSCPropNetProxiesGopherEnable - @discussion Value is a CFNumber (0 or 1) - */ -extern const CFStringRef kSCPropNetProxiesGopherEnable __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetProxiesGopherEnable kSCPropNetProxiesGopherEnable - -/*! - @const kSCPropNetProxiesGopherPort - @discussion Value is a CFNumber - */ -extern const CFStringRef kSCPropNetProxiesGopherPort __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetProxiesGopherPort kSCPropNetProxiesGopherPort - -/*! - @const kSCPropNetProxiesGopherProxy - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropNetProxiesGopherProxy __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetProxiesGopherProxy kSCPropNetProxiesGopherProxy - -/*! - @const kSCPropNetProxiesHTTPEnable - @discussion Value is a CFNumber (0 or 1) - */ -extern const CFStringRef kSCPropNetProxiesHTTPEnable __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetProxiesHTTPEnable kSCPropNetProxiesHTTPEnable - -/*! - @const kSCPropNetProxiesHTTPPort - @discussion Value is a CFNumber - */ -extern const CFStringRef kSCPropNetProxiesHTTPPort __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetProxiesHTTPPort kSCPropNetProxiesHTTPPort - -/*! - @const kSCPropNetProxiesHTTPProxy - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropNetProxiesHTTPProxy __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetProxiesHTTPProxy kSCPropNetProxiesHTTPProxy - -/*! - @const kSCPropNetProxiesHTTPSEnable - @discussion Value is a CFNumber (0 or 1) - */ -extern const CFStringRef kSCPropNetProxiesHTTPSEnable __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetProxiesHTTPSEnable kSCPropNetProxiesHTTPSEnable - -/*! - @const kSCPropNetProxiesHTTPSPort - @discussion Value is a CFNumber - */ -extern const CFStringRef kSCPropNetProxiesHTTPSPort __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetProxiesHTTPSPort kSCPropNetProxiesHTTPSPort - -/*! - @const kSCPropNetProxiesHTTPSProxy - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropNetProxiesHTTPSProxy __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetProxiesHTTPSProxy kSCPropNetProxiesHTTPSProxy - -/*! - @const kSCPropNetProxiesRTSPEnable - @discussion Value is a CFNumber (0 or 1) - */ -extern const CFStringRef kSCPropNetProxiesRTSPEnable __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetProxiesRTSPEnable kSCPropNetProxiesRTSPEnable - -/*! - @const kSCPropNetProxiesRTSPPort - @discussion Value is a CFNumber - */ -extern const CFStringRef kSCPropNetProxiesRTSPPort __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetProxiesRTSPPort kSCPropNetProxiesRTSPPort - -/*! - @const kSCPropNetProxiesRTSPProxy - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropNetProxiesRTSPProxy __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetProxiesRTSPProxy kSCPropNetProxiesRTSPProxy - -/*! - @const kSCPropNetProxiesSOCKSEnable - @discussion Value is a CFNumber (0 or 1) - */ -extern const CFStringRef kSCPropNetProxiesSOCKSEnable __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetProxiesSOCKSEnable kSCPropNetProxiesSOCKSEnable - -/*! - @const kSCPropNetProxiesSOCKSPort - @discussion Value is a CFNumber - */ -extern const CFStringRef kSCPropNetProxiesSOCKSPort __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetProxiesSOCKSPort kSCPropNetProxiesSOCKSPort - -/*! - @const kSCPropNetProxiesSOCKSProxy - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropNetProxiesSOCKSProxy __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropNetProxiesSOCKSProxy kSCPropNetProxiesSOCKSProxy - -/*! - @const kSCPropNetProxiesProxyAutoConfigEnable - @discussion Value is a CFNumber (0 or 1) - */ -extern const CFStringRef kSCPropNetProxiesProxyAutoConfigEnable __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); -#define kSCPropNetProxiesProxyAutoConfigEnable kSCPropNetProxiesProxyAutoConfigEnable - -/*! - @const kSCPropNetProxiesProxyAutoConfigJavaScript - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropNetProxiesProxyAutoConfigJavaScript __OSX_AVAILABLE_STARTING(__MAC_10_7,__IPHONE_NA); -#define kSCPropNetProxiesProxyAutoConfigJavaScript kSCPropNetProxiesProxyAutoConfigJavaScript - -/*! - @const kSCPropNetProxiesProxyAutoConfigURLString - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropNetProxiesProxyAutoConfigURLString __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); -#define kSCPropNetProxiesProxyAutoConfigURLString kSCPropNetProxiesProxyAutoConfigURLString - -/*! - @const kSCPropNetProxiesProxyAutoDiscoveryEnable - @discussion Value is a CFNumber (0 or 1) - */ -extern const CFStringRef kSCPropNetProxiesProxyAutoDiscoveryEnable __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_NA); -#define kSCPropNetProxiesProxyAutoDiscoveryEnable kSCPropNetProxiesProxyAutoDiscoveryEnable - -/*! - @group kSCEntNetSMB Entity Keys - */ - -/*! - @const kSCPropNetSMBNetBIOSName - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropNetSMBNetBIOSName __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); -#define kSCPropNetSMBNetBIOSName kSCPropNetSMBNetBIOSName - -/*! - @const kSCPropNetSMBNetBIOSNodeType - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropNetSMBNetBIOSNodeType __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); -#define kSCPropNetSMBNetBIOSNodeType kSCPropNetSMBNetBIOSNodeType - -/*! - @const kSCPropNetSMBNetBIOSScope - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropNetSMBNetBIOSScope __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5,__MAC_10_7,__IPHONE_NA,__IPHONE_NA); -#define kSCPropNetSMBNetBIOSScope kSCPropNetSMBNetBIOSScope - -/*! - @const kSCPropNetSMBWINSAddresses - @discussion Value is a CFArray[CFString] - */ -extern const CFStringRef kSCPropNetSMBWINSAddresses __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); -#define kSCPropNetSMBWINSAddresses kSCPropNetSMBWINSAddresses - -/*! - @const kSCPropNetSMBWorkgroup - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropNetSMBWorkgroup __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); -#define kSCPropNetSMBWorkgroup kSCPropNetSMBWorkgroup - -/*! - @const kSCValNetSMBNetBIOSNodeTypeBroadcast - */ -extern const CFStringRef kSCValNetSMBNetBIOSNodeTypeBroadcast __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); -#define kSCValNetSMBNetBIOSNodeTypeBroadcast kSCValNetSMBNetBIOSNodeTypeBroadcast - -/*! - @const kSCValNetSMBNetBIOSNodeTypePeer - */ -extern const CFStringRef kSCValNetSMBNetBIOSNodeTypePeer __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); -#define kSCValNetSMBNetBIOSNodeTypePeer kSCValNetSMBNetBIOSNodeTypePeer - -/*! - @const kSCValNetSMBNetBIOSNodeTypeMixed - */ -extern const CFStringRef kSCValNetSMBNetBIOSNodeTypeMixed __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); -#define kSCValNetSMBNetBIOSNodeTypeMixed kSCValNetSMBNetBIOSNodeTypeMixed - -/*! - @const kSCValNetSMBNetBIOSNodeTypeHybrid - */ -extern const CFStringRef kSCValNetSMBNetBIOSNodeTypeHybrid __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); -#define kSCValNetSMBNetBIOSNodeTypeHybrid kSCValNetSMBNetBIOSNodeTypeHybrid - -/*! - @group kSCCompUsers Entity Keys - */ - -/*! - @const kSCEntUsersConsoleUser - */ -extern const CFStringRef kSCEntUsersConsoleUser __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCEntUsersConsoleUser kSCEntUsersConsoleUser - -/*! - @group kSCCompSystem Properties - */ - -/*! - @const kSCPropSystemComputerName - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropSystemComputerName __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropSystemComputerName kSCPropSystemComputerName - -/*! - @const kSCPropSystemComputerNameEncoding - @discussion Value is a CFNumber - */ -extern const CFStringRef kSCPropSystemComputerNameEncoding __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCPropSystemComputerNameEncoding kSCPropSystemComputerNameEncoding - -/*! - @group SCDynamicStore "domain" prefixes - */ - -/*! - @const kSCDynamicStoreDomainFile - */ -extern const CFStringRef kSCDynamicStoreDomainFile __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCDynamicStoreDomainFile kSCDynamicStoreDomainFile - -/*! - @const kSCDynamicStoreDomainPlugin - */ -extern const CFStringRef kSCDynamicStoreDomainPlugin __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCDynamicStoreDomainPlugin kSCDynamicStoreDomainPlugin - -/*! - @const kSCDynamicStoreDomainSetup - */ -extern const CFStringRef kSCDynamicStoreDomainSetup __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCDynamicStoreDomainSetup kSCDynamicStoreDomainSetup - -/*! - @const kSCDynamicStoreDomainState - */ -extern const CFStringRef kSCDynamicStoreDomainState __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCDynamicStoreDomainState kSCDynamicStoreDomainState - -/*! - @const kSCDynamicStoreDomainPrefs - */ -extern const CFStringRef kSCDynamicStoreDomainPrefs __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCDynamicStoreDomainPrefs kSCDynamicStoreDomainPrefs - -/*! - @group Preference ("location") Keys - */ - -/*! - @const kSCDynamicStorePropSetupCurrentSet - @discussion Value is a CFString - */ -extern const CFStringRef kSCDynamicStorePropSetupCurrentSet __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCDynamicStorePropSetupCurrentSet kSCDynamicStorePropSetupCurrentSet - -/*! - @const kSCDynamicStorePropSetupLastUpdated - */ -extern const CFStringRef kSCDynamicStorePropSetupLastUpdated __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCDynamicStorePropSetupLastUpdated kSCDynamicStorePropSetupLastUpdated - -/*! - @group Common/shared Keys - */ - -/*! - @const kSCDynamicStorePropNetInterfaces - @discussion Value is a CFArray[CFString] - */ -extern const CFStringRef kSCDynamicStorePropNetInterfaces __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCDynamicStorePropNetInterfaces kSCDynamicStorePropNetInterfaces - -/*! - @const kSCDynamicStorePropNetPrimaryInterface - @discussion Value is a CFString - */ -extern const CFStringRef kSCDynamicStorePropNetPrimaryInterface __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCDynamicStorePropNetPrimaryInterface kSCDynamicStorePropNetPrimaryInterface - -/*! - @const kSCDynamicStorePropNetPrimaryService - @discussion Value is a CFString - */ -extern const CFStringRef kSCDynamicStorePropNetPrimaryService __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCDynamicStorePropNetPrimaryService kSCDynamicStorePropNetPrimaryService - -/*! - @const kSCDynamicStorePropNetServiceIDs - @discussion Value is a CFArray[CFString] - */ -extern const CFStringRef kSCDynamicStorePropNetServiceIDs __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_NA); -#define kSCDynamicStorePropNetServiceIDs kSCDynamicStorePropNetServiceIDs - -/*! - @const kSCPropUsersConsoleUserName - @discussion Value is a CFString - */ -extern const CFStringRef kSCPropUsersConsoleUserName __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1,__MAC_10_4,__IPHONE_NA,__IPHONE_NA); -#define kSCPropUsersConsoleUserName kSCPropUsersConsoleUserName - -/*! - @const kSCPropUsersConsoleUserUID - @discussion Value is a CFNumber - */ -extern const CFStringRef kSCPropUsersConsoleUserUID __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1,__MAC_10_4,__IPHONE_NA,__IPHONE_NA); -#define kSCPropUsersConsoleUserUID kSCPropUsersConsoleUserUID - -/*! - @const kSCPropUsersConsoleUserGID - @discussion Value is a CFNumber - */ -extern const CFStringRef kSCPropUsersConsoleUserGID __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1,__MAC_10_4,__IPHONE_NA,__IPHONE_NA); -#define kSCPropUsersConsoleUserGID kSCPropUsersConsoleUserGID - -CF_ASSUME_NONNULL_END - -#endif /* _SCSCHEMADEFINITIONS_H */ diff --git a/Clocker/Frameworks/SystemConfiguration.framework/Versions/A/Headers/SystemConfiguration.h b/Clocker/Frameworks/SystemConfiguration.framework/Versions/A/Headers/SystemConfiguration.h deleted file mode 100644 index 70044ab..0000000 --- a/Clocker/Frameworks/SystemConfiguration.framework/Versions/A/Headers/SystemConfiguration.h +++ /dev/null @@ -1,181 +0,0 @@ -/* - * Copyright (c) 2000-2004, 2006, 2008-2010, 2012, 2015 Apple Inc. All rights reserved. - * - * @APPLE_LICENSE_HEADER_START@ - * - * This file contains Original Code and/or Modifications of Original Code - * as defined in and that are subject to the Apple Public Source License - * Version 2.0 (the 'License'). You may not use this file except in - * compliance with the License. Please obtain a copy of the License at - * http://www.opensource.apple.com/apsl/ and read it before using this - * file. - * - * The Original Code and all software distributed under the License are - * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER - * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, - * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. - * Please see the License for the specific language governing rights and - * limitations under the License. - * - * @APPLE_LICENSE_HEADER_END@ - */ - -#ifndef _SYSTEMCONFIGURATION_H -#define _SYSTEMCONFIGURATION_H - -#include -#include -#include - - -/*! - @header SystemConfiguration - @discussion The System Configuration framework provides access to the - data used to configure a running system. The APIs provided - by this framework communicate with the configd daemon. - - The configd daemon manages a dynamic store reflecting the - desired configuration settings as well as the current state - of the system. The daemon provides a notification mechanism - for processes that need to be aware of changes made to the - data. Lastly, the daemon loads a number of bundles (or - plug-ins) that monitor low-level kernel events and, through - a set of policy modules, keep the state data up to date. - */ - -/*! - @enum Error codes - @discussion Returned error codes. - @constant kSCStatusOK Success - @constant kSCStatusFailed Non-specific Failure - @constant kSCStatusInvalidArgument Invalid argument - @constant kSCStatusAccessError Permission denied - @constant kSCStatusNoKey No such key - @constant kSCStatusKeyExists Data associated with key already defined - @constant kSCStatusLocked Lock already held - @constant kSCStatusNeedLock Lock required for this operation - @constant kSCStatusNoStoreSession Configuration daemon session not active - @constant kSCStatusNoStoreServer Configuration daemon not (or no longer) available - @constant kSCStatusNotifierActive Notifier is currently active - @constant kSCStatusNoPrefsSession Preferences session not active - @constant kSCStatusPrefsBusy Preferences update currently in progress - @constant kSCStatusNoConfigFile Configuration file not found - @constant kSCStatusNoLink No such link - @constant kSCStatusStale Write attempted on stale version of object - @constant kSCStatusMaxLink Maximum link count exceeded - @constant kSCStatusReachabilityUnknown - A determination could not be made regarding the reachability - of the specified nodename or address. - @constant kSCStatusConnectionNoService Network service for connection not available -*/ -enum { - /* - * Generic error codes - */ - kSCStatusOK = 0, /* Success */ - kSCStatusFailed = 1001, /* Non-specific failure */ - kSCStatusInvalidArgument = 1002, /* Invalid argument */ - kSCStatusAccessError = 1003, /* Permission denied - - must be root to obtain lock - - could not create access/create preferences - */ - kSCStatusNoKey = 1004, /* No such key */ - kSCStatusKeyExists = 1005, /* Key already defined */ - kSCStatusLocked = 1006, /* Lock already held */ - kSCStatusNeedLock = 1007, /* Lock required for this operation */ - /* - * SCDynamicStore error codes - */ - kSCStatusNoStoreSession = 2001, /* Configuration daemon session not active */ - kSCStatusNoStoreServer = 2002, /* Configuration daemon not (no longer) available */ - kSCStatusNotifierActive = 2003, /* Notifier is currently active */ - /* - * SCPreferences error codes - */ - kSCStatusNoPrefsSession = 3001, /* Preference session not active */ - kSCStatusPrefsBusy = 3002, /* Preferences update currently in progress */ - kSCStatusNoConfigFile = 3003, /* Configuration file not found */ - kSCStatusNoLink = 3004, /* No such link */ - kSCStatusStale = 3005, /* Write attempted on stale version of object */ - kSCStatusMaxLink = 3006, /* Maximum link count exceeded */ - /* - * SCNetwork error codes - */ - kSCStatusReachabilityUnknown = 4001, /* Network reachability cannot be determined */ - /* - * SCNetworkConnection error codes - */ - kSCStatusConnectionNoService = 5001, /* Network service for connection not available - __OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_2_0) - */ - kSCStatusConnectionIgnore = 5002, /* Network connection information not available at this time - __OSX_AVAILABLE_STARTING(__MAC_10_9,__IPHONE_6_0) - */ -}; - - -/* SCDynamicStore APIs */ -#include -#include -#include - -/* SCPreferences APIs */ -#include -#include -#include - -/* Schema Definitions (for SCDynamicStore and SCPreferences) */ -#include - -/* SCNetworkConfiguration APIs */ -#include - -/* SCNetworkReachability and SCNetworkConnection APIs */ -#include -#include -#include - -CF_IMPLICIT_BRIDGING_ENABLED -CF_ASSUME_NONNULL_BEGIN - -/*! - @const kCFErrorDomainSystemConfiguration - @discussion CFError domain associated with errors reported by - the SystemConfiguration.framework. - */ -extern const CFStringRef kCFErrorDomainSystemConfiguration __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_2_0); - -__BEGIN_DECLS - -/*! - @function SCCopyLastError - @discussion Returns the most recent status or error code generated - as the result of calling a System Configuration framework API. - @result Returns the last error encountered. - */ -CFErrorRef SCCopyLastError (void) __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_2_0); - -/*! - @function SCError - @discussion Returns the most recent status or error code generated - as the result of calling a System Configuration framework API. - @result Returns the last error encountered. - */ -int SCError (void) __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_2_0); - -/*! - @function SCErrorString - @discussion Returns a pointer to the message string - associated with the specified status or error. - @param status The SCDynamicStoreStatus to be returned. - @result Returns a pointer to the error message string. - */ -const char * SCErrorString (int status) __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_2_0); - -__END_DECLS - -CF_ASSUME_NONNULL_END -CF_IMPLICIT_BRIDGING_DISABLED - -#endif /* _SYSTEMCONFIGURATION_H */ diff --git a/Clocker/Frameworks/SystemConfiguration.framework/Versions/A/Modules/module.modulemap b/Clocker/Frameworks/SystemConfiguration.framework/Versions/A/Modules/module.modulemap deleted file mode 100644 index 78d273c..0000000 --- a/Clocker/Frameworks/SystemConfiguration.framework/Versions/A/Modules/module.modulemap +++ /dev/null @@ -1,22 +0,0 @@ -framework module SystemConfiguration [extern_c] { - umbrella header "SystemConfiguration.h" - - export * - module * { export * } - - explicit module CaptiveNetwork { - header "CaptiveNetwork.h" - export * - } - - explicit module DHCPClientPreferences { - header "DHCPClientPreferences.h" - export * - } - - explicit module SCDynamicStoreCopyDHCPInfo { - header "SCDynamicStoreCopyDHCPInfo.h" - export * - } -} - diff --git a/Clocker/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration.tbd b/Clocker/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration.tbd deleted file mode 100644 index 8b00a14..0000000 --- a/Clocker/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration.tbd +++ /dev/null @@ -1,497 +0,0 @@ ---- -archs: [ i386, x86_64 ] -platform: macosx -install-name: /System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration -current-version: 801.1.1 -exports: - - archs: [ i386, x86_64 ] - symbols: [ _CNCopySupportedInterfaces, _CNMarkPortalOffline, - _CNMarkPortalOnline, _CNSetSupportedSSIDs, _DHCPClientPreferencesCopyApplicationOptions, - _DHCPClientPreferencesSetApplicationOptions, _DHCPInfoGetLeaseExpirationTime, - _DHCPInfoGetLeaseStartTime, _DHCPInfoGetOptionData, - _DeviceOnHoldCreate, _DeviceOnHoldGetStatus, _DeviceOnHoldGetTypeID, - _DeviceOnHoldResume, _DeviceOnHoldSuspend, _IPMonitorControlGetInterfacePrimaryRank, - _IsDeviceOnHoldSupported, _SCBondInterfaceCopyAll, - _SCBondInterfaceCopyAvailableMemberInterfaces, _SCBondInterfaceCopyStatus, - _SCBondInterfaceCreate, _SCBondInterfaceGetMemberInterfaces, - _SCBondInterfaceGetMode, _SCBondInterfaceGetOptions, - _SCBondInterfaceRemove, _SCBondInterfaceSetLocalizedDisplayName, - _SCBondInterfaceSetMemberInterfaces, _SCBondInterfaceSetMode, - _SCBondInterfaceSetOptions, _SCBondStatusGetInterfaceStatus, - _SCBondStatusGetMemberInterfaces, _SCBondStatusGetTypeID, - _SCBridgeInterfaceCopyAll, _SCBridgeInterfaceCopyAvailableMemberInterfaces, - _SCBridgeInterfaceCreate, _SCBridgeInterfaceGetMemberInterfaces, - _SCBridgeInterfaceGetOptions, _SCBridgeInterfaceRemove, - _SCBridgeInterfaceSetLocalizedDisplayName, _SCBridgeInterfaceSetMemberInterfaces, - _SCBridgeInterfaceSetOptions, _SCCopyLastError, - _SCDynamicStoreAddTemporaryValue, _SCDynamicStoreAddValue, - _SCDynamicStoreAddWatchedKey, _SCDynamicStoreCopyComputerName, - _SCDynamicStoreCopyConsoleInformation, _SCDynamicStoreCopyConsoleUser, - _SCDynamicStoreCopyDHCPInfo, _SCDynamicStoreCopyKeyList, - _SCDynamicStoreCopyLocalHostName, _SCDynamicStoreCopyLocation, - _SCDynamicStoreCopyMultiple, _SCDynamicStoreCopyNotifiedKeys, - _SCDynamicStoreCopyProxies, _SCDynamicStoreCopyProxiesWithOptions, - _SCDynamicStoreCopyValue, _SCDynamicStoreCreate, - _SCDynamicStoreCreateRunLoopSource, _SCDynamicStoreCreateWithOptions, - _SCDynamicStoreGetTypeID, _SCDynamicStoreKeyCreate, - _SCDynamicStoreKeyCreateComputerName, _SCDynamicStoreKeyCreateConsoleUser, - _SCDynamicStoreKeyCreateHostNames, _SCDynamicStoreKeyCreateLocation, - _SCDynamicStoreKeyCreateNetworkGlobalEntity, _SCDynamicStoreKeyCreateNetworkInterface, - _SCDynamicStoreKeyCreateNetworkInterfaceEntity, - _SCDynamicStoreKeyCreateNetworkServiceEntity, _SCDynamicStoreKeyCreatePreferences, - _SCDynamicStoreKeyCreateProxies, _SCDynamicStoreNotifyCancel, - _SCDynamicStoreNotifyFileDescriptor, _SCDynamicStoreNotifySignal, - _SCDynamicStoreNotifyValue, _SCDynamicStoreNotifyWait, - _SCDynamicStoreRemoveValue, _SCDynamicStoreRemoveWatchedKey, - _SCDynamicStoreSetConsoleInformation, _SCDynamicStoreSetConsoleUser, - _SCDynamicStoreSetDisconnectCallBack, _SCDynamicStoreSetDispatchQueue, - _SCDynamicStoreSetMultiple, _SCDynamicStoreSetNotificationKeys, - _SCDynamicStoreSetValue, _SCDynamicStoreSnapshot, - _SCError, _SCErrorString, _SCLOG, _SCLog, _SCLoggerCreate, - _SCLoggerGetFlags, _SCLoggerLog, _SCLoggerSetFlags, - _SCLoggerVLog, _SCNetworkCheckReachabilityByAddress, - _SCNetworkCheckReachabilityByName, _SCNetworkConnectionCanTunnelAddress, - _SCNetworkConnectionCopyAllUserPreferences, _SCNetworkConnectionCopyAvailableServices, - _SCNetworkConnectionCopyCurrentUserPreferences, - _SCNetworkConnectionCopyExtendedStatus, _SCNetworkConnectionCopyFlowDivertToken, - _SCNetworkConnectionCopyOnDemandInfo, _SCNetworkConnectionCopyServiceID, - _SCNetworkConnectionCopyStatistics, _SCNetworkConnectionCopyUserOptions, - _SCNetworkConnectionCopyUserPreferences, _SCNetworkConnectionCreate, - _SCNetworkConnectionCreateUserPreferences, _SCNetworkConnectionCreateWithService, - _SCNetworkConnectionCreateWithServiceID, _SCNetworkConnectionGetReachabilityInfo, - _SCNetworkConnectionGetService, _SCNetworkConnectionGetServiceIdentifier, - _SCNetworkConnectionGetStatus, _SCNetworkConnectionGetStatusFromNEStatus, - _SCNetworkConnectionGetType, _SCNetworkConnectionGetTypeID, - _SCNetworkConnectionIsOnDemandSuspended, _SCNetworkConnectionOnDemandShouldRetryOnFailure, - _SCNetworkConnectionRefreshOnDemandState, _SCNetworkConnectionResume, - _SCNetworkConnectionScheduleWithRunLoop, _SCNetworkConnectionSelectServiceWithOptions, - _SCNetworkConnectionSetClientAuditInfo, _SCNetworkConnectionSetClientInfo, - _SCNetworkConnectionSetDispatchQueue, _SCNetworkConnectionStart, - _SCNetworkConnectionStartWithUserPreferences, _SCNetworkConnectionStop, - _SCNetworkConnectionSuspend, _SCNetworkConnectionTriggerOnDemandIfNeeded, - _SCNetworkConnectionUnscheduleFromRunLoop, _SCNetworkInterfaceCheckPassword, - _SCNetworkInterfaceCopyAll, _SCNetworkInterfaceCopyCapability, - _SCNetworkInterfaceCopyMTU, _SCNetworkInterfaceCopyMediaOptions, - _SCNetworkInterfaceCopyMediaSubTypeOptions, _SCNetworkInterfaceCopyMediaSubTypes, - _SCNetworkInterfaceCopyPassword, _SCNetworkInterfaceCreateWithInterface, - _SCNetworkInterfaceForceConfigurationRefresh, _SCNetworkInterfaceGetBSDName, - _SCNetworkInterfaceGetConfiguration, _SCNetworkInterfaceGetDisableUntilNeeded, - _SCNetworkInterfaceGetExtendedConfiguration, _SCNetworkInterfaceGetHardwareAddressString, - _SCNetworkInterfaceGetInterface, _SCNetworkInterfaceGetInterfaceType, - _SCNetworkInterfaceGetLocalizedDisplayName, _SCNetworkInterfaceGetPrimaryRank, - _SCNetworkInterfaceGetSupportedInterfaceTypes, _SCNetworkInterfaceGetSupportedProtocolTypes, - _SCNetworkInterfaceGetTypeID, _SCNetworkInterfaceRefreshConfiguration, - _SCNetworkInterfaceRemovePassword, _SCNetworkInterfaceSetCapability, - _SCNetworkInterfaceSetConfiguration, _SCNetworkInterfaceSetDisableUntilNeeded, - _SCNetworkInterfaceSetExtendedConfiguration, _SCNetworkInterfaceSetMTU, - _SCNetworkInterfaceSetMediaOptions, _SCNetworkInterfaceSetPassword, - _SCNetworkInterfaceSetPrimaryRank, _SCNetworkProtocolGetConfiguration, - _SCNetworkProtocolGetEnabled, _SCNetworkProtocolGetProtocolType, - _SCNetworkProtocolGetTypeID, _SCNetworkProtocolSetConfiguration, - _SCNetworkProtocolSetEnabled, _SCNetworkProxiesCopyMatching, - _SCNetworkProxiesCopyMatchingWithOptions, _SCNetworkReachabilityCopyResolvedAddress, - _SCNetworkReachabilityCreateWithAddress, _SCNetworkReachabilityCreateWithAddressPair, - _SCNetworkReachabilityCreateWithName, _SCNetworkReachabilityCreateWithOptions, - _SCNetworkReachabilityGetFlags, _SCNetworkReachabilityGetInterfaceIndex, - _SCNetworkReachabilityGetTypeID, _SCNetworkReachabilityScheduleWithRunLoop, - _SCNetworkReachabilitySetCallback, _SCNetworkReachabilitySetDispatchQueue, - _SCNetworkReachabilityUnscheduleFromRunLoop, _SCNetworkServiceAddProtocolType, - _SCNetworkServiceCopy, _SCNetworkServiceCopyAll, - _SCNetworkServiceCopyExternalID, _SCNetworkServiceCopyProtocol, - _SCNetworkServiceCopyProtocols, _SCNetworkServiceCreate, - _SCNetworkServiceEstablishDefaultConfiguration, - _SCNetworkServiceGetEnabled, _SCNetworkServiceGetInterface, - _SCNetworkServiceGetName, _SCNetworkServiceGetPrimaryRank, - _SCNetworkServiceGetServiceID, _SCNetworkServiceGetTypeID, - _SCNetworkServiceRemove, _SCNetworkServiceRemoveProtocolType, - _SCNetworkServiceSetEnabled, _SCNetworkServiceSetExternalID, - _SCNetworkServiceSetName, _SCNetworkServiceSetPrimaryRank, - _SCNetworkSetAddService, _SCNetworkSetContainsInterface, - _SCNetworkSetCopy, _SCNetworkSetCopyAll, _SCNetworkSetCopyAvailableInterfaces, - _SCNetworkSetCopyCurrent, _SCNetworkSetCopySelectedVPNService, - _SCNetworkSetCopyServices, _SCNetworkSetCreate, - _SCNetworkSetEstablishDefaultConfiguration, _SCNetworkSetEstablishDefaultInterfaceConfiguration, - _SCNetworkSetGetName, _SCNetworkSetGetServiceOrder, - _SCNetworkSetGetSetID, _SCNetworkSetGetTypeID, _SCNetworkSetRemove, - _SCNetworkSetRemoveService, _SCNetworkSetSetCurrent, - _SCNetworkSetSetName, _SCNetworkSetSetSelectedVPNService, - _SCNetworkSetSetServiceOrder, _SCNetworkSignatureCopyActiveIdentifierForAddress, - _SCNetworkSignatureCopyActiveIdentifiers, _SCNetworkSignatureCopyIdentifierForConnectedSocket, - _SCPreferencesAddValue, _SCPreferencesApplyChanges, - _SCPreferencesCommitChanges, _SCPreferencesCopyKeyList, - _SCPreferencesCreate, _SCPreferencesCreateWithAuthorization, - _SCPreferencesCreateWithOptions, _SCPreferencesGetHostName, - _SCPreferencesGetSignature, _SCPreferencesGetTypeID, - _SCPreferencesGetValue, _SCPreferencesLock, _SCPreferencesPathCreateUniqueChild, - _SCPreferencesPathGetLink, _SCPreferencesPathGetValue, - _SCPreferencesPathRemoveValue, _SCPreferencesPathSetLink, - _SCPreferencesPathSetValue, _SCPreferencesRemoveAllValues, - _SCPreferencesRemoveValue, _SCPreferencesScheduleWithRunLoop, - _SCPreferencesSetCallback, _SCPreferencesSetComputerName, - _SCPreferencesSetDispatchQueue, _SCPreferencesSetHostName, - _SCPreferencesSetLocalHostName, _SCPreferencesSetValue, - _SCPreferencesSynchronize, _SCPreferencesUnlock, - _SCPreferencesUnscheduleFromRunLoop, _SCPrint, _SCTrace, - _SCUserPreferencesCheckInterfacePassword, _SCUserPreferencesCopyExtendedInterfaceConfiguration, - _SCUserPreferencesCopyInterfaceConfiguration, _SCUserPreferencesCopyInterfacePassword, - _SCUserPreferencesCopyName, _SCUserPreferencesGetTypeID, - _SCUserPreferencesGetUniqueID, _SCUserPreferencesIsForced, - _SCUserPreferencesRemove, _SCUserPreferencesRemoveInterfacePassword, - _SCUserPreferencesSetCurrent, _SCUserPreferencesSetExtendedInterfaceConfiguration, - _SCUserPreferencesSetInterfaceConfiguration, _SCUserPreferencesSetInterfacePassword, - _SCUserPreferencesSetName, _SCVLANInterfaceCopyAll, - _SCVLANInterfaceCopyAvailablePhysicalInterfaces, - _SCVLANInterfaceCreate, _SCVLANInterfaceGetOptions, - _SCVLANInterfaceGetPhysicalInterface, _SCVLANInterfaceGetTag, - _SCVLANInterfaceRemove, _SCVLANInterfaceSetLocalizedDisplayName, - _SCVLANInterfaceSetOptions, _SCVLANInterfaceSetPhysicalInterfaceAndTag, - _SystemConfigurationVersionNumber, _SystemConfigurationVersionString, - _VPNAppLayerCopyMatchingService, _VPNAppLayerGetMatchingServiceIdentifier, - _VPNApplicationInstalled, _VPNApplicationRemoved, - _VPNConfigurationConnectionStart, _VPNConfigurationConnectionStop, - _VPNConfigurationCopy, _VPNConfigurationCopyAll, - _VPNConfigurationCopyAppRule, _VPNConfigurationCopyAppRuleIDs, - _VPNConfigurationCopyCertificate, _VPNConfigurationCopyIdentities, - _VPNConfigurationCopyLastConnectionError, _VPNConfigurationCopyPersistentData, - _VPNConfigurationCopyVendorData, _VPNConfigurationCreate, - _VPNConfigurationCreateWithOptions, _VPNConfigurationEnableVPNType, - _VPNConfigurationGetEnabled, _VPNConfigurationGetName, - _VPNConfigurationGetStatus, _VPNConfigurationGetTunnelType, - _VPNConfigurationIsVPNTypeEnabled, _VPNConfigurationRemove, - _VPNConfigurationRemoveAppRule, _VPNConfigurationScheduleWithRunLoop, - _VPNConfigurationSendMessage, _VPNConfigurationSet, - _VPNConfigurationSetAppRule, _VPNConfigurationSetAuthorization, - _VPNConfigurationSetCallback, _VPNConfigurationSetEnabled, - _VPNConfigurationSetMessageCallback, _VPNConfigurationSetName, - _VPNConfigurationSetPersistentData, _VPNConfigurationSetVendorData, - _VPNConfigurationUnscheduleFromRunLoop, _VPNConfigurationValidateCertificate, - _VPNCopyLastError, _VPNFlowCanAcceptBytes, _VPNFlowCopyError, - _VPNFlowCopyProperty, _VPNFlowDatagramCopyNext, - _VPNFlowDatagramSend, _VPNFlowGetTypeID, _VPNFlowHasBytesAvailable, - _VPNFlowOpen, _VPNFlowReadClose, _VPNFlowScheduleWithRunLoop, - _VPNFlowSetDispatchQueue, _VPNFlowSetEventHandler, - _VPNFlowSetProperty, _VPNFlowStreamRead, _VPNFlowStreamWrite, - _VPNFlowUnscheduleFromRunLoop, _VPNFlowWriteClose, - _VPNSerializeData, _VPNServiceCopyAll, _VPNServiceCopyAllMatchingExternalID, - _VPNServiceCopyAppRule, _VPNServiceCopyAppRuleIDs, - _VPNServiceIsManagedAppVPN, _VPNServiceRemoveAppRule, - _VPNServiceSetAppRule, _VPNTunnelAuthenticate, _VPNTunnelClearConfiguration, - _VPNTunnelCopyPersistentData, _VPNTunnelCopySavedConfiguration, - _VPNTunnelCopySavedConfigurationName, _VPNTunnelCopySavedVendorData, - _VPNTunnelCopySocketInfo, _VPNTunnelCryptoAddConfigurations, - _VPNTunnelCryptoDisable, _VPNTunnelCryptoEnable, - _VPNTunnelCryptoGenerateIndex, _VPNTunnelCryptoRemoveConfigurations, - _VPNTunnelCryptoStartDataTraffic, _VPNTunnelCryptoStopDataTraffic, - _VPNTunnelDisplayBanner, _VPNTunnelEnvironmentEventComplete, - _VPNTunnelFetchCredentialComplete, _VPNTunnelIPCSendMessage, - _VPNTunnelIncrementDataReceived, _VPNTunnelIncrementDataSent, - _VPNTunnelLog, _VPNTunnelSetConfigurationEntities, - _VPNTunnelSetPersistentData, _VPNTunnelSetStatus, - _VPNTunnelSetTunnelSocket, _VPNTunnelUpdatePlugin, - _VPNUnserializeData, __SCBondInterfaceCopyActive, - __SCBondInterfaceUpdateConfiguration, __SCBridgeInterfaceCopyActive, - __SCBridgeInterfaceUpdateConfiguration, __SCCopyDescription, - __SCDPluginExecCommand, __SCDPluginExecCommand2, - __SCDPluginExecInit, __SCErrorSet, __SCHelperExec, - __SCNetworkConfigurationCheckValidity, __SCNetworkConfigurationCheckValidityWithPreferences, - __SCNetworkConfigurationCopyMigrationPaths, __SCNetworkConfigurationCopyMigrationRemovePaths, - __SCNetworkConfigurationPerformMigration, __SCNetworkInterfaceCompare, - __SCNetworkInterfaceCopyActive, __SCNetworkInterfaceCopyAllWithPreferences, - __SCNetworkInterfaceCopyBTPANInterface, __SCNetworkInterfaceCopyInterfaceInfo, - __SCNetworkInterfaceCopySlashDevPath, __SCNetworkInterfaceCreateWithBSDName, - __SCNetworkInterfaceCreateWithEntity, __SCNetworkInterfaceCreateWithIONetworkInterfaceObject, - __SCNetworkInterfaceForceConfigurationRefresh, __SCNetworkInterfaceGetConfigurationAction, - __SCNetworkInterfaceGetHardwareAddress, __SCNetworkInterfaceGetIOInterfaceNamePrefix, - __SCNetworkInterfaceGetIOInterfaceType, __SCNetworkInterfaceGetIOInterfaceUnit, - __SCNetworkInterfaceGetIOPath, __SCNetworkInterfaceGetIORegistryEntryID, - __SCNetworkInterfaceIsBluetoothP2P, __SCNetworkInterfaceIsBluetoothPAN, - __SCNetworkInterfaceIsBluetoothPAN_NAP, __SCNetworkInterfaceIsBuiltin, - __SCNetworkInterfaceIsHiddenConfiguration, __SCNetworkInterfaceIsModemV92, - __SCNetworkInterfaceIsPhysicalEthernet, __SCNetworkInterfaceIsTethered, - __SCNetworkInterfaceIsThunderbolt, __SCNetworkMigrationAreConfigurationsIdentical, - __SCNetworkReachabilityCopyTargetDescription, __SCNetworkReachabilityCopyTargetFlags, - __SCNetworkServiceCompare, __SCNetworkServiceCopyActive, - __SCNetworkServiceIsVPN, __SCNetworkServiceSetServiceID, - __SCNetworkSetSetSetID, __SCPreferencesCopyComputerName, - __SCPreferencesSystemKeychainPasswordItemCopy, __SCPreferencesSystemKeychainPasswordItemExists, - __SCPreferencesSystemKeychainPasswordItemRemove, - __SCPreferencesSystemKeychainPasswordItemSet, __SCSecKeychainCopySystemKeychain, - __SCSecKeychainPasswordItemCopy, __SCSecKeychainPasswordItemExists, - __SCSecKeychainPasswordItemRemove, __SCSecKeychainPasswordItemSet, - __SCSerialize, __SCSerializeData, __SCSerializeMultiple, - __SCSerializeString, __SCUnserialize, __SCUnserializeData, - __SCUnserializeMultiple, __SCUnserializeString, - __SCVLANInterfaceCopyActive, __SCVLANInterfaceUpdateConfiguration, - __SC_CFBundleCopyNonLocalizedString, __SC_CFBundleGet, - __SC_CFMachPortCreateWithPort, __SC_CFStringIsValidDNSName, - __SC_CFStringIsValidNetBIOSName, __SC_cfstring_to_cstring, - __SC_checkResolverReachabilityByAddress, __SC_copyBacktrace, - __SC_crash, __SC_domainEndsWithDomain, __SC_dos_encoding_and_codepage, - __SC_getconninfo, __SC_hostMatchesDomain, __SC_hw_model, - __SC_isInstallEnvironment, __SC_logMachPortReferences, - __SC_logMachPortStatus, __SC_sendMachMessage, __SC_sockaddr_to_string, - __SC_stringIsValidDNSName, __SC_string_to_sockaddr, - __SC_trimDomain, ___SCDynamicStoreCreatePrivate, - ___SCNetworkConnectionCopyOnDemandInfoWithName, - ___SCNetworkConnectionIPv4AddressMatchesRoutes, - ___SCNetworkConnectionIPv6AddressMatchesRoutes, - ___SCNetworkConnectionMaskIPv6Address, ___SCNetworkConnectionUseNetworkExtension, - ___SCNetworkConnectionUsingNetworkExtension, ___SCNetworkInterfaceCreateCapabilities, - ___SCNetworkInterfaceCreateMediaOptions, __sc_debug, - __sc_log, __sc_verbose, __scprefs_observer_cancel, - __scprefs_observer_watch, _isa_xpc_bool, _isa_xpc_connection, - _isa_xpc_dictionary, _isa_xpc_error, _kCFErrorDomainSystemConfiguration, - _kCFErrorDomainVPNTunnel, _kSCBondStatusDeviceAggregationStatus, - _kSCBondStatusDeviceCollecting, _kSCBondStatusDeviceDistributing, - _kSCCompAnyRegex, _kSCCompGlobal, _kSCCompHostNames, - _kSCCompInterface, _kSCCompNetwork, _kSCCompService, - _kSCCompSystem, _kSCCompUsers, _kSCConsoleSessionConsoleSet, - _kSCConsoleSessionID, _kSCConsoleSessionLoginDone, - _kSCConsoleSessionLoginwindowSafeLogin, _kSCConsoleSessionOnConsole, - _kSCConsoleSessionSystemSafeBoot, _kSCConsoleSessionUID, - _kSCConsoleSessionUserName, _kSCDynamicStoreDomainFile, - _kSCDynamicStoreDomainPlugin, _kSCDynamicStoreDomainPrefs, - _kSCDynamicStoreDomainSetup, _kSCDynamicStoreDomainState, - _kSCDynamicStorePropNetInterfaces, _kSCDynamicStorePropNetPrimaryInterface, - _kSCDynamicStorePropNetPrimaryService, _kSCDynamicStorePropNetServiceIDs, - _kSCDynamicStorePropSetupCurrentSet, _kSCDynamicStorePropSetupLastUpdated, - _kSCDynamicStoreUseSessionKeys, _kSCEntNet6to4, - _kSCEntNetActiveDuringSleepRequested, _kSCEntNetActiveDuringSleepSupported, - _kSCEntNetAirPort, _kSCEntNetAppLayer, _kSCEntNetAppleTalk, - _kSCEntNetDHCP, _kSCEntNetDNS, _kSCEntNetEAPOL, - _kSCEntNetEthernet, _kSCEntNetFireWire, _kSCEntNetIPSec, - _kSCEntNetIPv4, _kSCEntNetIPv4RouterARPAlive, _kSCEntNetIPv4RouterARPFailure, - _kSCEntNetIPv6, _kSCEntNetInterface, _kSCEntNetL2TP, - _kSCEntNetLink, _kSCEntNetLinkIssues, _kSCEntNetLinkQuality, - _kSCEntNetLoopback, _kSCEntNetModem, _kSCEntNetNetInfo, - _kSCEntNetOnDemand, _kSCEntNetPPP, _kSCEntNetPPPSerial, - _kSCEntNetPPPoE, _kSCEntNetPPTP, _kSCEntNetProxies, - _kSCEntNetSMB, _kSCEntNetService, _kSCEntNetVPN, - _kSCEntUsersConsoleUser, _kSCNetworkConfigurationMigrationActionKey, - _kSCNetworkConfigurationRepair, _kSCNetworkInterfaceIPv4, - _kSCNetworkInterfaceLoopback, _kSCNetworkInterfaceType6to4, - _kSCNetworkInterfaceTypeBluetooth, _kSCNetworkInterfaceTypeBond, - _kSCNetworkInterfaceTypeBridge, _kSCNetworkInterfaceTypeEthernet, - _kSCNetworkInterfaceTypeFireWire, _kSCNetworkInterfaceTypeIEEE80211, - _kSCNetworkInterfaceTypeIPSec, _kSCNetworkInterfaceTypeIPv4, - _kSCNetworkInterfaceTypeIrDA, _kSCNetworkInterfaceTypeL2TP, - _kSCNetworkInterfaceTypeLoopback, _kSCNetworkInterfaceTypeModem, - _kSCNetworkInterfaceTypePPP, _kSCNetworkInterfaceTypePPTP, - _kSCNetworkInterfaceTypeSerial, _kSCNetworkInterfaceTypeVLAN, - _kSCNetworkInterfaceTypeVPN, _kSCNetworkInterfaceTypeWWAN, - _kSCNetworkProtocolTypeAppleTalk, _kSCNetworkProtocolTypeDNS, - _kSCNetworkProtocolTypeIPv4, _kSCNetworkProtocolTypeIPv6, - _kSCNetworkProtocolTypeProxies, _kSCNetworkProtocolTypeSMB, - _kSCPrefCurrentSet, _kSCPrefNetworkServices, _kSCPrefSets, - _kSCPrefSystem, _kSCPrefVirtualNetworkInterfaces, - _kSCPreferencesUseEntitlementAuthorization, _kSCPropConfirmedInterfaceName, - _kSCPropDisableUntilNeeded, _kSCPropInterfaceName, - _kSCPropMACAddress, _kSCPropNet6to4Relay, _kSCPropNetAirPortAllowNetCreation, - _kSCPropNetAirPortAuthPassword, _kSCPropNetAirPortAuthPasswordEncryption, - _kSCPropNetAirPortJoinMode, _kSCPropNetAirPortPowerEnabled, - _kSCPropNetAirPortPreferredNetwork, _kSCPropNetAirPortSavePasswords, - _kSCPropNetAppleTalkComputerName, _kSCPropNetAppleTalkComputerNameEncoding, - _kSCPropNetAppleTalkConfigMethod, _kSCPropNetAppleTalkDefaultZone, - _kSCPropNetAppleTalkNetworkID, _kSCPropNetAppleTalkNetworkRange, - _kSCPropNetAppleTalkNodeID, _kSCPropNetAppleTalkSeedNetworkRange, - _kSCPropNetAppleTalkSeedZones, _kSCPropNetDNSConfirmedServiceID, - _kSCPropNetDNSDomainName, _kSCPropNetDNSOptions, - _kSCPropNetDNSSearchDomains, _kSCPropNetDNSSearchOrder, - _kSCPropNetDNSServerAddresses, _kSCPropNetDNSServerPort, - _kSCPropNetDNSServerTimeout, _kSCPropNetDNSServiceIdentifier, - _kSCPropNetDNSSortList, _kSCPropNetDNSSupplementalMatchDomains, - _kSCPropNetDNSSupplementalMatchDomainsNoSearch, - _kSCPropNetDNSSupplementalMatchOrders, _kSCPropNetEthernetCapabilityAV, - _kSCPropNetEthernetCapabilityJUMBO_MTU, _kSCPropNetEthernetCapabilityLRO, - _kSCPropNetEthernetCapabilityRXCSUM, _kSCPropNetEthernetCapabilityTSO, - _kSCPropNetEthernetCapabilityTSO4, _kSCPropNetEthernetCapabilityTSO6, - _kSCPropNetEthernetCapabilityTXCSUM, _kSCPropNetEthernetCapabilityVLAN_HWTAGGING, - _kSCPropNetEthernetCapabilityVLAN_MTU, _kSCPropNetEthernetMTU, - _kSCPropNetEthernetMediaOptions, _kSCPropNetEthernetMediaSubType, - _kSCPropNetIPSecAuthenticationMethod, _kSCPropNetIPSecConnectTime, - _kSCPropNetIPSecDisconnectOnWake, _kSCPropNetIPSecDisconnectOnWakeTimer, - _kSCPropNetIPSecLastCause, _kSCPropNetIPSecLocalCertificate, - _kSCPropNetIPSecLocalIdentifier, _kSCPropNetIPSecLocalIdentifierType, - _kSCPropNetIPSecOnDemandEnabled, _kSCPropNetIPSecOnDemandMatchDomainsAlways, - _kSCPropNetIPSecOnDemandMatchDomainsNever, _kSCPropNetIPSecOnDemandMatchDomainsOnRetry, - _kSCPropNetIPSecRemoteAddress, _kSCPropNetIPSecSharedSecret, - _kSCPropNetIPSecSharedSecretEncryption, _kSCPropNetIPSecStatus, - _kSCPropNetIPSecXAuthEnabled, _kSCPropNetIPSecXAuthName, - _kSCPropNetIPSecXAuthPassword, _kSCPropNetIPSecXAuthPasswordEncryption, - _kSCPropNetIPv4ARPResolvedHardwareAddress, _kSCPropNetIPv4ARPResolvedIPAddress, - _kSCPropNetIPv4AdditionalRoutes, _kSCPropNetIPv4Addresses, - _kSCPropNetIPv4BroadcastAddresses, _kSCPropNetIPv4ConfigMethod, - _kSCPropNetIPv4DHCPClientID, _kSCPropNetIPv4DestAddresses, - _kSCPropNetIPv4ExcludedRoutes, _kSCPropNetIPv4IncludedRoutes, - _kSCPropNetIPv4RouteDestinationAddress, _kSCPropNetIPv4RouteGatewayAddress, - _kSCPropNetIPv4RouteInterfaceName, _kSCPropNetIPv4RouteSubnetMask, - _kSCPropNetIPv4Router, _kSCPropNetIPv4SubnetMasks, - _kSCPropNetIPv6AdditionalRoutes, _kSCPropNetIPv6Addresses, - _kSCPropNetIPv6ConfigMethod, _kSCPropNetIPv6DestAddresses, - _kSCPropNetIPv6ExcludedRoutes, _kSCPropNetIPv6Flags, - _kSCPropNetIPv6IncludedRoutes, _kSCPropNetIPv6PrefixLength, - _kSCPropNetIPv6RouteDestinationAddress, _kSCPropNetIPv6RouteGatewayAddress, - _kSCPropNetIPv6RouteInterfaceName, _kSCPropNetIPv6RoutePrefixLength, - _kSCPropNetIPv6Router, _kSCPropNetIgnoreLinkStatus, - _kSCPropNetInterfaceDeviceName, _kSCPropNetInterfaceHardware, - _kSCPropNetInterfaceSubType, _kSCPropNetInterfaceSupportsModemOnHold, - _kSCPropNetInterfaceType, _kSCPropNetInterfaces, - _kSCPropNetL2TPIPSecSharedSecret, _kSCPropNetL2TPIPSecSharedSecretEncryption, - _kSCPropNetL2TPTransport, _kSCPropNetLinkActive, - _kSCPropNetLinkDetaching, _kSCPropNetLinkExpensive, - _kSCPropNetLinkIssuesInfo, _kSCPropNetLinkIssuesModuleID, - _kSCPropNetLinkIssuesTimeStamp, _kSCPropNetLinkQuality, - _kSCPropNetLocalHostName, _kSCPropNetModemAccessPointName, - _kSCPropNetModemConnectSpeed, _kSCPropNetModemConnectionPersonality, - _kSCPropNetModemConnectionScript, _kSCPropNetModemDataCompression, - _kSCPropNetModemDeviceContextID, _kSCPropNetModemDeviceModel, - _kSCPropNetModemDeviceVendor, _kSCPropNetModemDialMode, - _kSCPropNetModemErrorCorrection, _kSCPropNetModemHoldCallWaitingAudibleAlert, - _kSCPropNetModemHoldDisconnectOnAnswer, _kSCPropNetModemHoldEnabled, - _kSCPropNetModemHoldReminder, _kSCPropNetModemHoldReminderTime, - _kSCPropNetModemNote, _kSCPropNetModemPulseDial, - _kSCPropNetModemSpeaker, _kSCPropNetModemSpeed, - _kSCPropNetNetInfoBindingMethods, _kSCPropNetNetInfoBroadcastServerTag, - _kSCPropNetNetInfoServerAddresses, _kSCPropNetNetInfoServerTags, - _kSCPropNetOverridePrimary, _kSCPropNetPPPACSPEnabled, - _kSCPropNetPPPAuthEAPPlugins, _kSCPropNetPPPAuthName, - _kSCPropNetPPPAuthPassword, _kSCPropNetPPPAuthPasswordEncryption, - _kSCPropNetPPPAuthPrompt, _kSCPropNetPPPAuthProtocol, - _kSCPropNetPPPCCPEnabled, _kSCPropNetPPPCCPMPPE128Enabled, - _kSCPropNetPPPCCPMPPE40Enabled, _kSCPropNetPPPCommAlternateRemoteAddress, - _kSCPropNetPPPCommConnectDelay, _kSCPropNetPPPCommDisplayTerminalWindow, - _kSCPropNetPPPCommRedialCount, _kSCPropNetPPPCommRedialEnabled, - _kSCPropNetPPPCommRedialInterval, _kSCPropNetPPPCommRemoteAddress, - _kSCPropNetPPPCommTerminalScript, _kSCPropNetPPPCommUseTerminalScript, - _kSCPropNetPPPConnectTime, _kSCPropNetPPPDeviceLastCause, - _kSCPropNetPPPDialOnDemand, _kSCPropNetPPPDisconnectOnFastUserSwitch, - _kSCPropNetPPPDisconnectOnIdle, _kSCPropNetPPPDisconnectOnIdleTimer, - _kSCPropNetPPPDisconnectOnLogout, _kSCPropNetPPPDisconnectOnSleep, - _kSCPropNetPPPDisconnectOnWake, _kSCPropNetPPPDisconnectOnWakeTimer, - _kSCPropNetPPPDisconnectTime, _kSCPropNetPPPIPCPCompressionVJ, - _kSCPropNetPPPIPCPUsePeerDNS, _kSCPropNetPPPIdleReminder, - _kSCPropNetPPPIdleReminderTimer, _kSCPropNetPPPLCPCompressionACField, - _kSCPropNetPPPLCPCompressionPField, _kSCPropNetPPPLCPEchoEnabled, - _kSCPropNetPPPLCPEchoFailure, _kSCPropNetPPPLCPEchoInterval, - _kSCPropNetPPPLCPMRU, _kSCPropNetPPPLCPMTU, _kSCPropNetPPPLCPReceiveACCM, - _kSCPropNetPPPLCPTransmitACCM, _kSCPropNetPPPLastCause, - _kSCPropNetPPPLogfile, _kSCPropNetPPPOnDemandDomains, - _kSCPropNetPPPOnDemandEnabled, _kSCPropNetPPPOnDemandHostName, - _kSCPropNetPPPOnDemandMatchDomainsAlways, _kSCPropNetPPPOnDemandMatchDomainsNever, - _kSCPropNetPPPOnDemandMatchDomainsOnRetry, _kSCPropNetPPPOnDemandMode, - _kSCPropNetPPPOnDemandPriority, _kSCPropNetPPPOverridePrimary, - _kSCPropNetPPPPlugins, _kSCPropNetPPPRetryConnectTime, - _kSCPropNetPPPSessionTimer, _kSCPropNetPPPStatus, - _kSCPropNetPPPUseSessionTimer, _kSCPropNetPPPVerboseLogging, - _kSCPropNetProxiesBypassAllowed, _kSCPropNetProxiesExceptionsList, - _kSCPropNetProxiesExcludeSimpleHostnames, _kSCPropNetProxiesFTPEnable, - _kSCPropNetProxiesFTPPassive, _kSCPropNetProxiesFTPPort, - _kSCPropNetProxiesFTPProxy, _kSCPropNetProxiesFallBackAllowed, - _kSCPropNetProxiesGopherEnable, _kSCPropNetProxiesGopherPort, - _kSCPropNetProxiesGopherProxy, _kSCPropNetProxiesHTTPEnable, - _kSCPropNetProxiesHTTPPort, _kSCPropNetProxiesHTTPProxy, - _kSCPropNetProxiesHTTPSEnable, _kSCPropNetProxiesHTTPSPort, - _kSCPropNetProxiesHTTPSProxy, _kSCPropNetProxiesProxyAutoConfigEnable, - _kSCPropNetProxiesProxyAutoConfigJavaScript, _kSCPropNetProxiesProxyAutoConfigURLString, - _kSCPropNetProxiesProxyAutoDiscoveryEnable, _kSCPropNetProxiesRTSPEnable, - _kSCPropNetProxiesRTSPPort, _kSCPropNetProxiesRTSPProxy, - _kSCPropNetProxiesSOCKSEnable, _kSCPropNetProxiesSOCKSPort, - _kSCPropNetProxiesSOCKSProxy, _kSCPropNetProxiesScoped, - _kSCPropNetProxiesServiceSpecific, _kSCPropNetProxiesServices, - _kSCPropNetProxiesSupplemental, _kSCPropNetProxiesSupplementalMatchDomain, - _kSCPropNetProxiesSupplementalMatchDomains, _kSCPropNetProxiesSupplementalMatchOrders, - _kSCPropNetSMBNetBIOSName, _kSCPropNetSMBNetBIOSNodeType, - _kSCPropNetSMBNetBIOSScope, _kSCPropNetSMBWINSAddresses, - _kSCPropNetSMBWorkgroup, _kSCPropNetServiceOrder, - _kSCPropNetServicePrimaryRank, _kSCPropNetServiceUserDefinedName, - _kSCPropNetVPNAppRules, _kSCPropNetVPNAuthCredentialPassword, - _kSCPropNetVPNAuthName, _kSCPropNetVPNAuthPassword, - _kSCPropNetVPNAuthPasswordEncryption, _kSCPropNetVPNAuthPasswordPluginType, - _kSCPropNetVPNAuthenticationMethod, _kSCPropNetVPNConnectTime, - _kSCPropNetVPNDisconnectOnFastUserSwitch, _kSCPropNetVPNDisconnectOnIdle, - _kSCPropNetVPNDisconnectOnIdleTimer, _kSCPropNetVPNDisconnectOnLogout, - _kSCPropNetVPNDisconnectOnSleep, _kSCPropNetVPNDisconnectOnWake, - _kSCPropNetVPNDisconnectOnWakeTimer, _kSCPropNetVPNLocalCertificate, - _kSCPropNetVPNLogfile, _kSCPropNetVPNMTU, _kSCPropNetVPNOnDemandEnabled, - _kSCPropNetVPNOnDemandMatchAppEnabled, _kSCPropNetVPNOnDemandMatchDomainsAlways, - _kSCPropNetVPNOnDemandMatchDomainsNever, _kSCPropNetVPNOnDemandMatchDomainsOnRetry, - _kSCPropNetVPNOnDemandRuleAction, _kSCPropNetVPNOnDemandRuleActionParameters, - _kSCPropNetVPNOnDemandRuleActionParametersDomainAction, - _kSCPropNetVPNOnDemandRuleActionParametersDomains, - _kSCPropNetVPNOnDemandRuleActionParametersRequiredDNSServers, - _kSCPropNetVPNOnDemandRuleActionParametersRequiredURLStringProbe, - _kSCPropNetVPNOnDemandRuleDNSDomainMatch, _kSCPropNetVPNOnDemandRuleDNSServerAddressMatch, - _kSCPropNetVPNOnDemandRuleInterfaceTypeMatch, _kSCPropNetVPNOnDemandRuleSSIDMatch, - _kSCPropNetVPNOnDemandRuleURLStringProbe, _kSCPropNetVPNOnDemandRules, - _kSCPropNetVPNOnDemandSuspended, _kSCPropNetVPNPluginCapability, - _kSCPropNetVPNRemoteAddress, _kSCPropNetVPNStatus, - _kSCPropNetVPNVerboseLogging, _kSCPropSystemComputerName, - _kSCPropSystemComputerNameEncoding, _kSCPropSystemComputerNameRegion, - _kSCPropSystemHostName, _kSCPropUserDefinedName, - _kSCPropUsersConsoleUserGID, _kSCPropUsersConsoleUserName, - _kSCPropUsersConsoleUserUID, _kSCPropVersion, _kSCPropVirtualNetworkInterfacesBondInterfaces, - _kSCPropVirtualNetworkInterfacesBondMode, _kSCPropVirtualNetworkInterfacesBondOptions, - _kSCPropVirtualNetworkInterfacesBridgeInterfaces, - _kSCPropVirtualNetworkInterfacesBridgeOptions, _kSCPropVirtualNetworkInterfacesVLANInterface, - _kSCPropVirtualNetworkInterfacesVLANOptions, _kSCPropVirtualNetworkInterfacesVLANTag, - _kSCProxiesNoGlobal, _kSCResvInactive, _kSCResvLink, - _kSCValNetAirPortAuthPasswordEncryptionKeychain, - _kSCValNetAirPortJoinModeAutomatic, _kSCValNetAirPortJoinModePreferred, - _kSCValNetAirPortJoinModeRanked, _kSCValNetAirPortJoinModeRecent, - _kSCValNetAirPortJoinModeStrongest, _kSCValNetAppleTalkConfigMethodNode, - _kSCValNetAppleTalkConfigMethodRouter, _kSCValNetAppleTalkConfigMethodSeedRouter, - _kSCValNetIPSecAuthenticationMethodCertificate, - _kSCValNetIPSecAuthenticationMethodHybrid, _kSCValNetIPSecAuthenticationMethodSharedSecret, - _kSCValNetIPSecLocalIdentifierTypeKeyID, _kSCValNetIPSecSharedSecretEncryptionKeychain, - _kSCValNetIPSecXAuthPasswordEncryptionKeychain, - _kSCValNetIPSecXAuthPasswordEncryptionPrompt, _kSCValNetIPv4ConfigMethodAutomatic, - _kSCValNetIPv4ConfigMethodBOOTP, _kSCValNetIPv4ConfigMethodDHCP, - _kSCValNetIPv4ConfigMethodFailover, _kSCValNetIPv4ConfigMethodINFORM, - _kSCValNetIPv4ConfigMethodLinkLocal, _kSCValNetIPv4ConfigMethodManual, - _kSCValNetIPv4ConfigMethodPPP, _kSCValNetIPv6ConfigMethod6to4, - _kSCValNetIPv6ConfigMethodAutomatic, _kSCValNetIPv6ConfigMethodLinkLocal, - _kSCValNetIPv6ConfigMethodManual, _kSCValNetIPv6ConfigMethodRouterAdvertisement, - _kSCValNetInterfaceSubTypeL2TP, _kSCValNetInterfaceSubTypePPPSerial, - _kSCValNetInterfaceSubTypePPPoE, _kSCValNetInterfaceSubTypePPTP, - _kSCValNetInterfaceType6to4, _kSCValNetInterfaceTypeEthernet, - _kSCValNetInterfaceTypeFireWire, _kSCValNetInterfaceTypeIPSec, - _kSCValNetInterfaceTypeLoopback, _kSCValNetInterfaceTypePPP, - _kSCValNetInterfaceTypeVPN, _kSCValNetL2TPIPSecSharedSecretEncryptionKeychain, - _kSCValNetL2TPTransportIP, _kSCValNetL2TPTransportIPSec, - _kSCValNetModemDialModeIgnoreDialTone, _kSCValNetModemDialModeManual, - _kSCValNetModemDialModeWaitForDialTone, _kSCValNetNetInfoBindingMethodsBroadcast, - _kSCValNetNetInfoBindingMethodsDHCP, _kSCValNetNetInfoBindingMethodsManual, - _kSCValNetNetInfoDefaultServerTag, _kSCValNetPPPAuthPasswordEncryptionKeychain, - _kSCValNetPPPAuthPasswordEncryptionToken, _kSCValNetPPPAuthPromptAfter, - _kSCValNetPPPAuthPromptBefore, _kSCValNetPPPAuthProtocolCHAP, - _kSCValNetPPPAuthProtocolEAP, _kSCValNetPPPAuthProtocolMSCHAP1, - _kSCValNetPPPAuthProtocolMSCHAP2, _kSCValNetPPPAuthProtocolPAP, - _kSCValNetPPPOnDemandModeAggressive, _kSCValNetPPPOnDemandModeCompatible, - _kSCValNetPPPOnDemandModeConservative, _kSCValNetPPPOnDemandPriorityDefault, - _kSCValNetPPPOnDemandPriorityHigh, _kSCValNetPPPOnDemandPriorityLow, - _kSCValNetSMBNetBIOSNodeTypeBroadcast, _kSCValNetSMBNetBIOSNodeTypeHybrid, - _kSCValNetSMBNetBIOSNodeTypeMixed, _kSCValNetSMBNetBIOSNodeTypePeer, - _kSCValNetServicePrimaryRankFirst, _kSCValNetServicePrimaryRankLast, - _kSCValNetServicePrimaryRankNever, _kSCValNetServicePrimaryRankScoped, - _kSCValNetVPNAppRuleAccountIdentifierMatch, _kSCValNetVPNAppRuleDNSDomainMatch, - _kSCValNetVPNAppRuleExecutableDesignatedRequirement, - _kSCValNetVPNAppRuleExecutableMatch, _kSCValNetVPNAppRuleExecutableSigningIdentifier, - _kSCValNetVPNAppRuleExecutableUUID, _kSCValNetVPNAppRuleIdentifier, - _kSCValNetVPNAuthPasswordEncryptionExternal, _kSCValNetVPNAuthPasswordEncryptionKeychain, - _kSCValNetVPNAuthPasswordEncryptionPrompt, _kSCValNetVPNAuthenticationMethodCertificate, - _kSCValNetVPNAuthenticationMethodPassword, _kSCValNetVPNOnDemandRuleActionAllow, - _kSCValNetVPNOnDemandRuleActionConnect, _kSCValNetVPNOnDemandRuleActionDisconnect, - _kSCValNetVPNOnDemandRuleActionEvaluateConnection, - _kSCValNetVPNOnDemandRuleActionIgnore, _kSCValNetVPNOnDemandRuleActionParametersDomainActionConnectIfNeeded, - _kSCValNetVPNOnDemandRuleActionParametersDomainActionNeverConnect, - _kSCValNetVPNOnDemandRuleInterfaceTypeMatchEthernet, - _kSCValNetVPNOnDemandRuleInterfaceTypeMatchWiFi, - _kSCValNetVPNPluginCapabilityAuth, _kSCValNetVPNPluginCapabilityConnect, - _kVPNConfigurationKeyCertificateRef, _kVPNConfigurationKeyPersistentRef, - _kVPNConfigurationOptionTunnelType, _kVPNFlowPropertyAppRuleIdentifier, - _kVPNFlowPropertyAppUnique, _kVPNFlowPropertyDestinationEndpoint, - _kVPNFlowPropertyDestinationName, _kVPNFlowPropertyNetworkServiceType, - _kVPNFlowPropertyTunnelSocketNativeHandle, _kVPNFlowPropertyType, - _snhelper_flow_divert_uuid_policy_add, _snhelper_flow_divert_uuid_policy_clear, - _snhelper_flow_divert_uuid_policy_remove, _snhelper_get_uuid_for_app ] -... diff --git a/Clocker/Frameworks/SystemConfiguration.framework/Versions/Current b/Clocker/Frameworks/SystemConfiguration.framework/Versions/Current deleted file mode 120000 index 8c7e5a6..0000000 --- a/Clocker/Frameworks/SystemConfiguration.framework/Versions/Current +++ /dev/null @@ -1 +0,0 @@ -A \ No newline at end of file diff --git a/Clocker/GoogleService-Info.plist b/Clocker/GoogleService-Info.plist new file mode 100644 index 0000000..9db137e --- /dev/null +++ b/Clocker/GoogleService-Info.plist @@ -0,0 +1,36 @@ + + + + + CLIENT_ID + 59694130826-ra8s6202rhdb12j7kqgjij4utu6c467r.apps.googleusercontent.com + REVERSED_CLIENT_ID + com.googleusercontent.apps.59694130826-ra8s6202rhdb12j7kqgjij4utu6c467r + API_KEY + AIzaSyAUFTmji4YcfRPoWhTZ4hZs4JdxX5y_R2w + GCM_SENDER_ID + 59694130826 + PLIST_VERSION + 1 + BUNDLE_ID + com.abhishek.Clocker + PROJECT_ID + fiery-heat-5237 + STORAGE_BUCKET + fiery-heat-5237.appspot.com + IS_ADS_ENABLED + + IS_ANALYTICS_ENABLED + + IS_APPINVITE_ENABLED + + IS_GCM_ENABLED + + IS_SIGNIN_ENABLED + + GOOGLE_APP_ID + 1:59694130826:ios:6d8dbaa6eee09934a76f73 + DATABASE_URL + https://fiery-heat-5237.firebaseio.com + + diff --git a/Clocker/run b/Clocker/run new file mode 100755 index 0000000..128837f --- /dev/null +++ b/Clocker/run @@ -0,0 +1,72 @@ +#!/bin/sh + +# Copyright 2019 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. +# +# run +# +# This script is meant to be run as a Run Script in the "Build Phases" section +# of your Xcode project. It sends debug symbols to symbolicate stacktraces, +# sends build events to track versions, and onboards apps for Crashlytics. +# +# This script calls upload-symbols twice: +# +# 1) First it calls upload-symbols synchronously in "validation" mode. If the +# script finds issues with the build environment, it will report errors to Xcode. +# In validation mode it exits before doing any time consuming work. +# +# 2) Then it calls upload-symbols in the background to actually send the build +# event and upload symbols. It does this in the background so that it doesn't +# slow down your builds. If an error happens here, you won't see it in Xcode. +# +# You can find the output for the background execution in Console.app, by +# searching for "upload-symbols". +# +# If you want verbose output, you can pass the --debug flag to this script +# + +# Figure out where we're being called from +DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) + +# Build up the arguments list, passing through any flags added, and quoting +# every argument in case there are spaces in any of the the paths. +ARGUMENTS='' +for i in "$@"; do + ARGUMENTS="$ARGUMENTS \"$i\"" +done + +VALIDATE_ARGUMENTS="$ARGUMENTS --build-phase --validate" +UPLOAD_ARGUMENTS="$ARGUMENTS --build-phase" + +# Quote the path to handle folders with special characters +COMMAND_PATH="\"$DIR/upload-symbols\" " + +# Ensure params are as expected, run in sync mode to validate, +# and cause a build error if validation fails +eval $COMMAND_PATH$VALIDATE_ARGUMENTS +return_code=$? + +if [[ $return_code != 0 ]]; then + exit $return_code +fi + +# Verification passed, convert and upload dSYMs in the background to prevent +# build delays +# +# Note: Validation is performed again at this step before upload +# +# Note: Output can still be found in Console.app, by searching for +# "upload-symbols" +# +eval $COMMAND_PATH$UPLOAD_ARGUMENTS > /dev/null 2>&1 & diff --git a/Clocker/upload-symbols b/Clocker/upload-symbols new file mode 100755 index 0000000..c8ca8b3 Binary files /dev/null and b/Clocker/upload-symbols differ