CKKSDeviceStateEntry.h [plain text]
#ifndef CKKSDeviceStateEntry_h
#define CKKSDeviceStateEntry_h
#if OCTAGON
#include "keychain/securityd/SecDbItem.h"
#include <utilities/SecDb.h>
#import <CloudKit/CloudKit.h>
#import "keychain/ckks/CKKS.h"
#import "keychain/ckks/CKKSRecordHolder.h"
#import "keychain/ckks/CKKSAccountStateTracker.h"
#import "keychain/ckks/CKKSSQLDatabaseObject.h"
#import "keychain/ot/OTClique.h"
NS_ASSUME_NONNULL_BEGIN
@class CKKSKeychainViewState;
@interface CKKSDeviceStateEntry : CKKSCKRecordHolder
@property NSString* device;
@property (nullable) NSString* osVersion;
@property (nullable) NSDate* lastUnlockTime;
@property (nullable) NSString* circlePeerID;
@property (nullable) NSString* octagonPeerID;
@property SOSCCStatus circleStatus;
@property (nullable) OTCliqueStatusWrapper* octagonStatus;
@property (nullable) CKKSZoneKeyState* keyState;
@property (nullable) NSString* currentTLKUUID;
@property (nullable) NSString* currentClassAUUID;
@property (nullable) NSString* currentClassCUUID;
+ (instancetype)fromDatabase:(NSString*)device zoneID:(CKRecordZoneID*)zoneID error:(NSError* __autoreleasing*)error;
+ (instancetype)tryFromDatabase:(NSString*)device zoneID:(CKRecordZoneID*)zoneID error:(NSError* __autoreleasing*)error;
+ (instancetype)tryFromDatabaseFromCKRecordID:(CKRecordID*)recordID error:(NSError* __autoreleasing*)error;
+ (NSArray<CKKSDeviceStateEntry*>*)allInZone:(CKRecordZoneID*)zoneID error:(NSError* __autoreleasing*)error;
- (instancetype)init NS_UNAVAILABLE;
- (instancetype)initForDevice:(NSString*)device
osVersion:(NSString* _Nullable)osVersion
lastUnlockTime:(NSDate* _Nullable)lastUnlockTime
octagonPeerID:(NSString* _Nullable)octagonPeerID
octagonStatus:(OTCliqueStatusWrapper* _Nullable)octagonStatus
circlePeerID:(NSString* _Nullable)circlePeerID
circleStatus:(SOSCCStatus)circleStatus
keyState:(CKKSZoneKeyState* _Nullable)keyState
currentTLKUUID:(NSString* _Nullable)currentTLKUUID
currentClassAUUID:(NSString* _Nullable)currentClassAUUID
currentClassCUUID:(NSString* _Nullable)currentClassCUUID
zoneID:(CKRecordZoneID*)zoneID
encodedCKRecord:(NSData* _Nullable)encodedrecord;
+ (CKKSDeviceStateEntry* _Nullable)intransactionCreateDeviceStateForView:(CKKSKeychainViewState*)viewState
accountTracker:(CKKSAccountStateTracker*)accountTracker
lockStateTracker:(CKKSLockStateTracker*)lockStateTracker
error:(NSError**)error;
+ (BOOL)intransactionRecordChanged:(CKRecord*)record resync:(BOOL)resync error:(NSError**)error;
+ (BOOL)intransactionRecordDeleted:(CKRecordID*)recordID resync:(BOOL)resync error:(NSError**)error;
@end
NS_ASSUME_NONNULL_END
#endif // OCTAGON
#endif