luxlabs header browser preview


@class EDThreadScopeManager, EMBlockedSenderManager, EDMessagePersistence, NSString, NSMutableSet, NSMutableArray, EDPersistenceHookRegistry, EFSQLTableSchema, NSObject, EDPersistenceDatabase, EFDebouncer;
@protocol OS_os_log, EMVIPManager, EFScheduler;

@interface EDThreadPersistence : NSObject <EDDatabaseChangeHookResponder, EDAccountChangeHookResponder, EDMailboxChangeHookResponder, EDMessageChangeHookResponder, EDProtectedDataReconciliationHookResponder, EDSenderBucketChangeHookResponder, EDThreadScopeManagerDataSource, EFSignpostable, EDPersistenceDatabaseSchemaProvider, EFLoggable> {
    NSMutableSet *_threadObjectIDsToRecompute;
    struct os_unfair_lock_s { unsigned int _os_unfair_lock_opaque; } _threadRecomputationLock;
    NSMutableArray *_migratingThreadScopes;
    struct os_unfair_lock_s { unsigned int _os_unfair_lock_opaque; } _migratingThreadScopesLock;
}

@property (class, readonly, nonatomic) EFSQLTableSchema *threadScopesTableSchema;
@property (class, readonly, nonatomic) EFSQLTableSchema *threadsTableSchema;
@property (class, readonly, nonatomic) EFSQLTableSchema *threadMailboxesTableSchema;
@property (class, readonly, nonatomic) EFSQLTableSchema *threadSendersTableSchema;
@property (class, readonly, nonatomic) EFSQLTableSchema *threadRecipientsTableSchema;
@property (class, readonly) NSObject<OS_os_log> *signpostLog;
@property (class, readonly) NSObject<OS_os_log> *log;

@property (readonly, nonatomic) EDMessagePersistence *messagePersistence;
@property (readonly, nonatomic) EDPersistenceDatabase *database;
@property (readonly, nonatomic) EDPersistenceHookRegistry *hookRegistry;
@property (readonly, nonatomic) id<EMVIPManager> vipManager;
@property (readonly, nonatomic) EMBlockedSenderManager *blockedSenderManager;
@property (readonly, nonatomic) EDThreadScopeManager *threadScopeManager;
@property (readonly, nonatomic) id<EFScheduler> consistencyCheckScheduler;
@property (retain, nonatomic) id<EFScheduler> threadRecomputationScheduler;
@property (retain, nonatomic) EFDebouncer *threadRecomputationDebouncer;
@property (readonly) unsigned long long hash;
@property (readonly) Class superclass;
@property (readonly, copy) NSString *description;
@property (readonly, copy) NSString *debugDescription;
@property (readonly) unsigned long long signpostID;

+ (id)tablesAndForeignKeysToResolve:(id *)a0 associationsToResolve:(id *)a1;

- (id)_int64SetFromSet:(id)a0 byRemovingIndexesFromSet:(id)a1 andLimitingTo:(unsigned long long)a2;
- (BOOL)endMigratingThreadScope:(id)a0 wasCanceledOrReset:(BOOL)a1;
- (id)oldestThreadObjectIDForMailbox:(id)a0 threadScope:(id)a1;
- (BOOL)setPriorityForDisplayMessageSenderForThreadObjectID:(id)a0;
- (void)_logFailedVerifyConsistencyForConversationIDs:(id)a0;
- (id)_deleteWrappedMessages:(id)a0 fromThreadWithObjectID:(id)a1 threadScopeDatabaseID:(long long)a2 generationWindow:(id)a3;
- (void)persistenceIsUpdatingDisplayDateForMessage:(id)a0 fromDate:(id)a1 generation:(long long)a2;
- (void)_recomputeThreads;
- (void)threadObjectIDsForThreadScope:(id)a0 sortDescriptors:(id)a1 initialBatchSize:(unsigned long long)a2 journaledObjectIDs:(id)a3 batchBlock:(id /* block */)a4;
- (BOOL)_deleteSendersFromThreadWithDatabaseID:(id)a0 messageThreadExpression:(id)a1;
- (id)_messageThreadExpressionForThreadObjectID:(id)a0;
- (id)_threadExpressionForThreadScopeDatabaseID:(long long)a0 conversation:(long long)a1;
- (BOOL)_deleteRecipientsOfType:(unsigned long long)a0 fromThreadWithDatabaseID:(id)a1 messageThreadExpression:(id)a2;
- (id)_messageThreadExpressionForThreadScope:(id)a0 conversationExpression:(id)a1;
- (id)statisticsForThreadScopesWithDatabaseIDs:(id)a0;
- (BOOL)_addThreadScopeToDatabase:(id)a0 needsUpdate:(BOOL)a1 lastViewedDate:(id)a2 updateThreadScopeManager:(BOOL)a3;
- (id)_recipientsOfType:(unsigned long long)a0 fromMessagesForThreadObjectID:(id)a1;
- (void)_reportSenderBucketChangeForThreadsWithSenderAddresses:(id)a0 generation:(long long)a1;
- (void)_iterateWrappedMessagesByConversationForPersistedMessages:(id)a0 block:(id /* block */)a1;
- (id)_mailboxesForThreadDatabaseID:(id)a0;
- (void)setNeedsUpdateForThreadScope:(id)a0;
- (id)_recipientsOfType:(unsigned long long)a0 forThreadDatabaseID:(id)a1;
- (void)persistenceDidAddMessages:(id)a0 generationWindow:(id)a1;
- (id)_updateThreadForDeleteWithObjectID:(id)a0 threadScopeDatabaseID:(long long)a1 generationWindow:(id)a2;
- (void)persistenceIsAddingMessages:(id)a0 journaled:(BOOL)a1 generationWindow:(id)a2;
- (id)_addressesFromSelectStatement:(id)a0 additionalRowHandling:(id /* block */)a1;
- (id)resetThreadScopesForAccount:(id)a0;
- (id)_statementForOldestThreadInMailbox:(id)a0 threadScope:(id)a1 createMailboxDatabaseIDIfNecessary:(BOOL)a2;
- (id)_mailboxScopeForThreadScope:(id)a0 andFilterPredicate:(long long *)a1;
- (id)_threadQueryForThreadScope:(id)a0;
- (id)_countMessagesForExpression:(id)a0;
- (void)_getIndividualMailboxScopes:(id *)a0 unifiedMailboxThreadScopes:(id *)a1 forAccount:(id)a2;
- (void)_resetThreadScope:(id)a0 withDatabaseID:(id)a1;
- (BOOL)_enumerateThreadObjectIDsForThreadScope:(id)a0 filterClause:(id)a1 sortDescriptors:(id)a2 batchBlock:(id /* block */)a3;
- (id)_messageMailboxesExpressionForMailboxType:(long long)a0;
- (id)_expressionForThreadScope:(id)a0;
- (BOOL)_addThreadScopeToDatabase:(id)a0 withMailboxDatabaseID:(long long)a1 filterPredicate:(long long)a2 needsUpdate:(BOOL)a3 lastViewedDate:(id)a4 updateThreadScopeManager:(BOOL)a5 connection:(id)a6;
- (id)_messageThreadExpressionForThreadScope:(id)a0 objectIDs:(id)a1;
- (void)_addKeyPathsForBasicPropertiesChangeToKeyPaths:(id)a0;
- (void)_persistenceDidUpdateFollowUpOrReadLaterForMessages:(id)a0 generationWindow:(id)a1 isFollowUp:(BOOL)a2;
- (void)_addOrderByToThreadSelect:(id)a0 forSortDescriptors:(id)a1;
- (void)_addPersistedMessages:(id)a0 journaled:(BOOL)a1 generationWindow:(id)a2;
- (id)nextExistingThreadObjectIDForThreadObjectID:(id)a0 forSortDescriptors:(id)a1 journaledThreadsToCheck:(id)a2 excluding:(id)a3;
- (void)_scheduleRecomputationForThread:(id)a0 reason:(id)a1;
- (id)changeForThreadWithObjectID:(id)a0 changedKeyPaths:(id)a1;
- (void)persistenceIsAddingMailboxWithDatabaseID:(long long)a0 objectID:(id)a1 generationWindow:(id)a2;
- (void)_persistenceIsChangingFlags:(id)a0 messages:(id)a1 generationWindow:(id)a2;
- (BOOL)threadScopeManager:(id)a0 isValidMailboxObjectID:(id)a1;
- (id)_sendersFromMessagesForThreadObjectID:(id)a0;
- (BOOL)_updateNewestReadMessageWithWrappedMessage:(id)a0 threadExpression:(id)a1;
- (void)persistenceDidChangeSenderBucketForSenders:(id)a0 generation:(long long)a1;
- (id)_messageFilterExpressionForFilterPredicate:(id)a0;
- (void)persistenceIsChangingConversationID:(long long)a0 messages:(id)a1 generationWindow:(id)a2;
- (id)_filteredPersistedMessagesForPersistedMessages:(id)a0;
- (id)threadForObjectID:(id)a0 originatingQuery:(id)a1 error:(id *)a2;
- (BOOL)threadScopeManager:(id)a0 evictThreadScopesWithDatabaseIDs:(id)a1 completionBlock:(id /* block */)a2;
- (id)_threadForWrappedMessages:(id)a0 objectID:(id)a1;
- (BOOL)threadScopeManager:(id)a0 mailboxScopeExists:(id)a1;
- (id)threadObjectIDsByNextExistingForThreadObjectIDs:(id)a0 forSortDescriptors:(id)a1 journaledThreadsToCheck:(id)a2;
- (id)_columnForSortDescriptor:(id)a0;
- (id)_messageMailboxesExpressionForMailboxObjectIDs:(id)a0;
- (id)_upsertForThreadsWithThreadScopeDatabaseID:(long long)a0 conversation:(long long)a1;
- (void)persistenceIsInitializingDatabaseWithConnection:(id)a0;
- (id)_messageActiveFollowUpExpressionForSentMailboxObjectIDs:(id)a0;
- (BOOL)deleteThreadsWithObjectIDs:(id)a0;
- (id)_messageMailboxesExpressionForMailboxScope:(id)a0;
- (void).cxx_destruct;
- (void)persistenceDidDeleteAllMessagesInMailboxesWithURLs:(id)a0 generationWindow:(id)a1;
- (BOOL)addThreadScopeToDatabase:(id)a0 needsUpdate:(BOOL)a1 lastViewedDate:(id)a2;
- (id)_addressesFromMessageAddressesStatement:(id)a0;
- (void)persistenceIsChangingFlags:(id)a0 messages:(id)a1 generationWindow:(id)a2;
- (void)persistenceDidUpdateFollowUpForMessages:(id)a0 generationWindow:(id)a1;
- (void)verifyConsistencyOfThreadScope:(id)a0;
- (BOOL)_addThreadScopeToDatabaseWithMailboxType:(id)a0 filterPredicate:(long long)a1 needsUpdate:(BOOL)a2 lastViewedDate:(id)a3 connection:(id)a4;
- (id)_flagColorsFromRow:(id)a0;
- (id)initWithMessagePersistence:(id)a0 database:(id)a1 hookRegistry:(id)a2 vipManager:(id)a3 blockedSenderManager:(id)a4;
- (void)persistenceIsDeletingMessages:(id)a0 generationWindow:(id)a1;
- (void)resetThreadScopesForMailboxScope:(id)a0;
- (void)_persistenceIsDeletingMessages:(id)a0 generationWindow:(id)a1;
- (void)persistenceIsDeletingAllMessagesInMailboxWithURL:(id)a0 generationWindow:(id)a1;
- (BOOL)_messagesAreJournaledForThreadWithObjectID:(id)a0;
- (id)_persistedMessagesByPossibleThreadScopeForPersistedMessages:(id)a0;
- (BOOL)addThreads:(id)a0;
- (void)persistenceDidAddAddresses:(id)a0 toSender:(id)a1 generation:(long long)a2;
- (id)_senderAddressesExpressionForMessages:(id)a0;
- (void)test_tearDown;
- (void)threadScopeManager:(id)a0 gatherStatisticsForThreadScopesWithDatabaseIDs:(id)a1 block:(id /* block */)a2;
- (id)_persistenceIsChangingFlags:(id)a0 wrappedMessages:(id)a1 threadObjectID:(id)a2 threadScopeDatabaseID:(long long)a3;
- (void)_iterateWrappedMessagesByConversationForPersistedMessages:(id)a0 messageFilter:(id /* block */)a1 writeBlock:(id /* block */)a2;
- (id)_persistedMessagesForMailboxScope:(id)a0 messageExpression:(id)a1;
- (void)_writeThreadedMessages:(id)a0 withChangedKeyPaths:(id)a1 journaled:(BOOL)a2 generationWindow:(id)a3;
- (void)updateLastViewedDateForThreadScope:(id)a0;
- (void)persistenceDidUpdateDisplayDateForReadLaterDateMessages:(id)a0 generationWindow:(id)a1;
- (void)_addKeyPathsForDisplayMessageChangeToKeyPaths:(id)a0;
- (BOOL)_isThreadScopePrecomputed:(id)a0 shouldMigrate:(BOOL *)a1;
- (id)_wrappedMessagesByThreadScopeForPersistedMessages:(id)a0 messageFilter:(id /* block */)a1;
- (id)threadScopesByDatabaseID;
- (void)persistenceDidRemoveAddresses:(id)a0 fromSender:(id)a1 generation:(long long)a2;
- (void)persistenceDidChangeFlags:(id)a0 messages:(id)a1 generationWindow:(id)a2;
- (id)_comparisonExpressionForSortDescriptors:(id)a0 conversationID:(long long)a1 threadExpression:(id)a2 threadScopeDatabaseID:(long long)a3 connection:(id)a4;
- (void)_enumerateThreadScopesUsingBlock:(id /* block */)a0;
- (void)persistenceDidUpdateProperties:(id)a0 message:(id)a1 generationWindow:(id)a2;
- (void)persistenceDidChangeGlobalMessageID:(long long)a0 orConversationID:(long long)a1 message:(id)a2 generationWindow:(id)a3;
- (void)persistenceDidChangeReadLaterDate:(id)a0 messages:(id)a1 changeIsRemote:(BOOL)a2 generationWindow:(id)a3;
- (void)persistenceDidDeleteMessages:(id)a0 generationWindow:(id)a1;
- (id)_sendersForThreadDatabaseID:(id)a0 senderBucket:(long long *)a1;
- (id)_threadDatabaseIDExpressionForThreadScopeDatabaseID:(long long)a0 conversation:(long long)a1;
- (id)_recipientAddressesExpressionForRecipientType:(unsigned long long)a0 messages:(id)a1;
- (id)_mailboxDatabaseIDsForWrappedMessages:(id)a0;
- (BOOL)beginMigratingThreadScope:(id)a0;
- (long long)_databaseIDForThreadObjectID:(id)a0;
- (id)_nonJournaledSubjectForThreadWithObjectID:(id)a0 connection:(id)a1;
- (unsigned long long)persistenceStateForThreadScope:(id)a0;
- (id)_messageMailboxesExpressionForAccountObjectIDs:(id)a0;
- (BOOL)_recalculateNewestReadMessageForThreadObjectID:(id)a0 threadScopeDatabaseID:(long long)a1;
- (void)persistenceDidUpdateDisplayDateForMessages:(id)a0 changeIsRemote:(BOOL)a1 generation:(long long)a2;
- (BOOL)_deleteMailboxesFromWrappedMessages:(id)a0 fromThreadWithDatabaseID:(id)a1 messageThreadExpression:(id)a2;
- (id)_messageFiredReadLaterExpression:(id)a0;
- (id)_wrappedMessageForPersistedMessages:(id)a0 threadScope:(id)a1 messageFilter:(id /* block */)a2;
- (id)_updateBasicPropertiesAfterDeleteForThreadObjectID:(id)a0 threadScopeDatabaseID:(long long)a1;
- (id)_recalculateDisplayMessageForThreadObjectID:(id)a0 threadScopeDatabaseID:(long long)a1;
- (void)threadScopeManager:(id)a0 populateThreadScopesWithBlock:(id /* block */)a1;
- (id)_messageIsNotDeletedExpression;

@end