System/Library/PrivateFrameworks/HealthDaemon.framework
HDDatabase.h
@class NSMutableDictionary, HDContentProtectionManager, HDXPCGatedActivity, NSDate, HDProfile, NSObject, HKProfileIdentifier, HDAssertionManager, HDDatabaseJournal, NSMutableArray, NSConditionLock, NSDictionary, NSString, NSHashTable, NSMutableSet, NSOperationQueue, HKObserverSet, NSLock, NSUUID;
@protocol OS_dispatch_queue, OS_dispatch_group, OS_dispatch_source;
@interface HDDatabase : NSObject <HDAssertionObserver, HDContentProtectionObserver, HDDiagnosticObject, HDSQLiteDatabaseDelegate, HDDatabaseConnectionPoolDelegate, HDSQLiteDatabaseProvider, HDDatabaseJournalDelegate, HDDatabaseMigrationTransactionDelegate, HDProfileReadyObserver, HDHealthDaemonReadyObserver, HDAnalyticsSubmissionCoordinatorDelegate, HDDatabaseCorruptionEventStoreDelegate, HDHealthDatabase> {
_Atomic BOOL _invalidated;
_Atomic BOOL _started;
NSString *_profileDirectoryPath;
NSUUID *_databaseUUID;
struct os_unfair_lock_s { unsigned int _os_unfair_lock_opaque; } _databaseUUIDLock;
NSObject<OS_dispatch_queue> *_serialAsynchronousQueue;
NSLock *_writeLock;
NSObject<OS_dispatch_queue> *_protectedDataQueue;
struct os_unfair_lock_s { unsigned int _os_unfair_lock_opaque; } _protectedDataLock;
HKObserverSet *_protectedDataObservers;
long long _protectedDataState;
long long _protectedDataLock_observedContentProtectionState;
BOOL _isObservingContentProtection;
NSObject<OS_dispatch_group> *_contentProtectionObservationGroup;
NSObject<OS_dispatch_source> *_inactivityFlushTimer;
BOOL _hasFlushedForInactivity;
NSMutableArray *_firstUnprotectedWriteTransactionBlocks;
NSMutableArray *_firstProtectedWriteTransactionBlocks;
struct os_unfair_lock_s { unsigned int _os_unfair_lock_opaque; } _transactionStartLock;
NSObject<OS_dispatch_group> *_transactionStartGroup;
NSMutableArray *_firstUnlockBlocks;
BOOL _shouldNotifyFirstUnlockObservers;
NSDate *_protectedDataFlushDeadlineDate;
NSObject<OS_dispatch_source> *_protectedDataFlushDeadlineTimer;
BOOL _hasFlushedProtectedData;
BOOL _disableTakingProtectedDataAssertionsWhenLocked;
unsigned long long _journalMergeEpoch;
unsigned long long _mergedJournalEpoch;
_Atomic BOOL _hasPendingSecondaryJournalMerge;
_Atomic BOOL _shouldPerformHFDVerificationAfterSecondaryJournalMerge;
HDXPCGatedActivity *_secondaryJournalMergeActivity;
_Atomic BOOL _hasCompletedFirstJournalMergeCleanup;
NSMutableDictionary *_databaseJournalMergeObserverSetByType;
NSHashTable *_protectedResourceStores;
struct os_unfair_lock_s { unsigned int _os_unfair_lock_opaque; } _protectedResourceAssertionsLock;
NSMutableDictionary *_protectedResourceAssertionsByIdentifier;
struct atomic_flag { _Atomic BOOL _Value; } _hasFaultedForCorruptionError;
NSString *_threadLocalTransactionKey;
NSString *_threadLocalTransactionContextStackKey;
HDAssertionManager *_assertionManager;
NSLock *_schemaMigrationLock;
NSConditionLock *_activeDatabasesLock;
NSMutableSet *_activeDatabases;
NSHashTable *_migratedDatabases;
NSOperationQueue *_asynchronousOperationQueue;
NSMutableDictionary *_extendedTransactions;
NSDictionary *_databasePoolForType;
}
@property (readonly, nonatomic) HDContentProtectionManager *contentProtectionManager;
@property (nonatomic) double offsetTimeInterval;
@property (nonatomic) double protectedDataFlushInterval;
@property (nonatomic) double inactivityFlushInterval;
@property (nonatomic) BOOL didRunPostMigrationUpdates;
@property (nonatomic) long long corruptedMigrationAttemptsCount;
@property (readonly, copy, nonatomic) NSDate *mostRecentObliterationDate;
@property (copy, nonatomic) id /* block */ unitTest_didWaitForJournalMergeHandler;
@property (readonly, nonatomic) HDDatabaseJournal *journal;
@property (readonly, nonatomic) HDDatabaseJournal *cloudSyncJournal;
@property (weak, nonatomic) HDProfile *profile;
@property (readonly) unsigned long long hash;
@property (readonly) Class superclass;
@property (readonly, copy) NSString *description;
@property (readonly, copy) NSString *debugDescription;
@property (readonly, copy, nonatomic) NSString *profileDirectoryPath;
@property (readonly, copy, nonatomic) HKProfileIdentifier *profileIdentifier;
@property (readonly, nonatomic, getter=isDataProtectedByFirstUnlockAvailable) BOOL dataProtectedByFirstUnlockAvailable;
@property (readonly, nonatomic, getter=isProtectedDataAvailable) BOOL protectedDataAvailable;
+ (id)allEntityClassesWithBehavior:(id)a0;
+ (id)allCurrentAndFutureEntityClasses;
- (void)profileDidBecomeReady:(id)a0;
- (void)daemonReady:(id)a0;
- (id)databaseSizeInBytesForTypeUnprotected:(BOOL)a0 WAL:(BOOL)a1;
- (void)assertionManager:(id)a0 assertionInvalidated:(id)a1;
- (id)_newTTRPromptControllerWithProfile:(id)a0 domainName:(id)a1 loggingCategory:(id)a2;
- (void)checkInDatabase:(id)a0 type:(long long)a1 protectedResources:(id)a2;
- (void)unitTest_disableDatabaseAccessibilityAssertions;
- (id)_newDatabaseConnectionWithURL:(id)a0;
- (void)dealloc;
- (void)_reportSQLiteCorruption:(id)a0 forDatabase:(long long)a1 shouldPrompt:(BOOL)a2;
- (id)checkOutProtectedDatabase:(id)a0 error:(id *)a1;
- (void)start;
- (id)diagnosticDescription;
- (id)store:(id)a0 objectForKey:(id)a1;
- (BOOL)performTransactionWithContext:(id)a0 error:(id *)a1 block:(id /* block */)a2 inaccessibilityHandler:(id /* block */)a3;
- (id)takeAccessibilityAssertionWithOwnerIdentifier:(id)a0 timeout:(double)a1 error:(id *)a2;
- (unsigned long long)journalChapterCountForType:(long long)a0;
- (BOOL)accessHighFrequencyDataStoreWithError:(id *)a0 block:(id /* block */)a1;
- (id)HFDSizeInBytes;
- (id)databaseSizeInBytesExcludingHFD;
- (void)obliterateWithReason:(id)a0 preserveCopy:(BOOL)a1;
- (void)addProtectedDataObserver:(id)a0;
- (id)databaseUUIDWithError:(id *)a0;
- (void)performInFirstProtectedWriteTransaction:(id /* block */)a0;
- (void)migrationTransaction:(id)a0 didCreateDatabasesWithIdentifier:(id)a1;
- (id)_newCorruptionEventStore;
- (void)performWhenDataProtectedByFirstUnlockIsAvailable:(id /* block */)a0;
- (void)finalizeExtendedTransactionForIdentifier:(id)a0;
- (id)allEntityClassesWithProtectionClass:(long long)a0;
- (void)store:(id)a0 setObject:(id)a1 forKey:(id)a2;
- (BOOL)addJournalEntry:(id)a0 error:(id *)a1;
- (void)reportDailyAnalyticsWithCoordinator:(id)a0 completion:(id /* block */)a1;
- (id)progressForJournalMergeWithType:(long long)a0;
- (id)takeAccessibilityAssertionWithOwnerIdentifier:(id)a0 shouldPerformTransaction:(BOOL)a1 timeout:(double)a2 error:(id *)a3;
- (id)initWithProfile:(id)a0 concurrentReaderLimit:(unsigned long long)a1;
- (id)_journalForType:(long long)a0;
- (BOOL)performHighPriorityTransactionsWithError:(id *)a0 block:(id /* block */)a1;
- (id)databasePoolForDatabaseType:(long long)a0;
- (id)cloneAccessibilityAssertion:(id)a0 ownerIdentifier:(id)a1 error:(id *)a2;
- (void)addProtectedDataObserver:(id)a0 queue:(id)a1;
- (void)performInFirstUnprotectedWriteTransaction:(id /* block */)a0;
- (id)checkOutUnprotectedDatabase:(id)a0 error:(id *)a1;
- (void)addDatabaseJournalMergeObserver:(id)a0 journalType:(long long)a1 queue:(id)a2;
- (void).cxx_destruct;
- (id)beginExtendedTransactionWithContext:(id)a0 transactionTimeout:(double)a1 continuationTimeout:(double)a2 error:(id *)a3;
- (void)databaseJournalMergeDidComplete:(id)a0;
- (BOOL)performWithJournalType:(long long)a0 error:(id *)a1 block:(id /* block */)a2;
- (void)unitTest_clearFirstJournalMergeCleanupFlag;
- (void)unitTest_enableDatabaseAccessibilityAssertions;
- (void)invalidateAndWait;
- (void)databasePool:(id)a0 didFlushConnections:(id)a1;
- (BOOL)addJournalEntries:(id)a0 error:(id *)a1;
- (void)unitTest_setContentProtectionStateAndWait:(long long)a0;
- (void)performAsynchronouslySerial:(id /* block */)a0;
- (id)checkOutProtectedResources:(id)a0 error:(id *)a1;
- (void)removeDatabaseJournalMergeObserver:(id)a0 journalType:(long long)a1;
- (void)migrationTransaction:(id)a0 didEncounterDatabaseMismatchWithUnprotectedIdentifier:(id)a1 protectedIdentifier:(id)a2;
- (void)performAsynchronously:(id /* block */)a0;
- (id)allSeriesEntityClasses;
- (void)migrationTransaction:(id)a0 reportHFDMigrationStatus:(long long)a1 schemaVersion:(long long)a2 error:(id)a3;
- (id)migrationTransaction:(id)a0 entityClassesWithBehavior:(id)a1;
- (id)unitTest_currentTransaction;
- (id)newConnectionForPool:(id)a0 error:(id *)a1;
- (id)extendedDatabaseTransactionForIdentifier:(id)a0;
- (void)_reportDatabaseMigrationStatus:(long long)a0 component:(long long)a1 schemaVersion:(long long)a2 error:(id)a3;
- (void)contentProtectionStateChanged:(long long)a0 previousState:(long long)a1;
- (void)removeProtectedDataObserver:(id)a0;
- (BOOL)performWithTransactionContext:(id)a0 error:(id *)a1 block:(id /* block */)a2;
- (void)performWhenDataProtectedByFirstUnlockIsAvailableOnQueue:(id)a0 block:(id /* block */)a1;
@end