]> git.saurik.com Git - apple/security.git/blobdiff - Analytics/Clients/LocalKeychainAnalytics.h
Security-58286.200.222.tar.gz
[apple/security.git] / Analytics / Clients / LocalKeychainAnalytics.h
diff --git a/Analytics/Clients/LocalKeychainAnalytics.h b/Analytics/Clients/LocalKeychainAnalytics.h
new file mode 100644 (file)
index 0000000..13800cf
--- /dev/null
@@ -0,0 +1,42 @@
+#ifndef LocalKeychainAnalytics_h
+#define LocalKeychainAnalytics_h
+
+#include <CoreFoundation/CoreFoundation.h>
+
+typedef enum {
+    LKAKeychainUpgradeOutcomeSuccess,
+    LKAKeychainUpgradeOutcomeUnknownFailure,
+    LKAKeychainUpgradeOutcomeLocked,
+    LKAKeychainUpgradeOutcomeInternal,
+    LKAKeychainUpgradeOutcomeNewDb,
+    LKAKeychainUpgradeOutcomeObsoleteDb,
+    LKAKeychainUpgradeOutcomeNoSchema,
+    LKAKeychainUpgradeOutcomeIndices,
+    LKAKeychainUpgradeOutcomePhase1AlterTables,
+    LKAKeychainUpgradeOutcomePhase1DropIndices,
+    LKAKeychainUpgradeOutcomePhase1CreateSchema,
+    LKAKeychainUpgradeOutcomePhase1Items,
+    LKAKeychainUpgradeOutcomePhase1NonItems,
+    LKAKeychainUpgradeOutcomePhase1DropOld,
+    LKAKeychainUpgradeOutcomePhase2,
+} LKAKeychainUpgradeOutcome;
+
+void LKAReportKeychainUpgradeOutcome(int fromversion, int toversion, LKAKeychainUpgradeOutcome outcome);
+void LKAReportKeychainUpgradeOutcomeWithError(int fromversion, int toversion, LKAKeychainUpgradeOutcome outcome, CFErrorRef error);
+
+#if __OBJC2__
+
+#import <Foundation/Foundation.h>
+#import <Security/SFAnalytics.h>
+
+typedef NSString* LKAnalyticsFailableEvent NS_STRING_ENUM;
+extern LKAnalyticsFailableEvent const LKAEventUpgrade;
+
+@interface LocalKeychainAnalytics : SFAnalytics
+
+- (void)reportKeychainUpgradeFrom:(int)oldVersion to:(int)newVersion outcome:(LKAKeychainUpgradeOutcome)result error:(NSError*)error;
+
+@end
+
+#endif  // OBJC2
+#endif  // LocalKeychainAnalytics_h