CKKSZoneChangeFetcher.h [plain text]
#if OCTAGON
#import <CloudKit/CloudKit.h>
#import <Foundation/Foundation.h>
#import "keychain/ckks/CKKSResultOperation.h"
#import "keychain/ckks/CKKSFetchAllRecordZoneChangesOperation.h"
#import "keychain/ckks/OctagonAPSReceiver.h"
NS_ASSUME_NONNULL_BEGIN
@class CKKSKeychainView;
@class CKKSReachabilityTracker;
@class CKKSNearFutureScheduler;
@interface CKKSZoneChangeFetcher : NSObject <CKKSZoneUpdateReceiverProtocol>
@property (readonly) Class<CKKSFetchRecordZoneChangesOperation> fetchRecordZoneChangesOperationClass;
@property (readonly) CKContainer* container;
@property CKKSReachabilityTracker* reachabilityTracker;
@property (readonly) NSError* lastCKFetchError;
- (instancetype)init NS_UNAVAILABLE;
- (instancetype)initWithContainer:(CKContainer*)container
fetchClass:(Class<CKKSFetchRecordZoneChangesOperation>)fetchRecordZoneChangesOperationClass
reachabilityTracker:(CKKSReachabilityTracker *)reachabilityTracker;
- (void)registerClient:(id<CKKSChangeFetcherClient>)client;
- (CKKSResultOperation*)requestSuccessfulFetch:(CKKSFetchBecause*)why;
- (CKKSResultOperation*)requestSuccessfulFetchForManyReasons:(NSSet<CKKSFetchBecause*>*)why;
- (CKKSResultOperation* _Nullable)inflightFetch;
- (void)notifyZoneChange:(CKRecordZoneNotification* _Nullable)notification;
- (void)holdFetchesUntil:(CKKSResultOperation* _Nullable)holdOperation;
- (void)cancel;
@property CKKSNearFutureScheduler* fetchScheduler;
@end
NS_ASSUME_NONNULL_END
#endif