From d3efb2e1c9d738a04dd2fc7cc21527848b72c296 Mon Sep 17 00:00:00 2001 From: Matthew Chen Date: Mon, 18 Dec 2017 21:58:27 -0500 Subject: [PATCH] Clean up TSStorageManager usage. --- .../OWSFailedAttachmentDownloadsJob.h | 2 +- .../OWSFailedAttachmentDownloadsJob.m | 24 +++++++++---------- .../src/Messages/OWSFailedMessagesJob.h | 2 +- .../src/Messages/OWSFailedMessagesJob.m | 24 +++++++++---------- .../TSStorageManager+PreKeyStore.m | 1 + .../src/Storage/OWSIncomingMessageFinder.h | 2 +- .../src/Storage/OWSIncomingMessageFinder.m | 16 ++++++------- .../src/Storage/TSStorageManager.h | 1 - .../src/Storage/TSStorageManager.m | 14 +++-------- 9 files changed, 39 insertions(+), 47 deletions(-) diff --git a/SignalServiceKit/src/Messages/OWSFailedAttachmentDownloadsJob.h b/SignalServiceKit/src/Messages/OWSFailedAttachmentDownloadsJob.h index 7ad6b20ee..a727f1656 100644 --- a/SignalServiceKit/src/Messages/OWSFailedAttachmentDownloadsJob.h +++ b/SignalServiceKit/src/Messages/OWSFailedAttachmentDownloadsJob.h @@ -16,7 +16,7 @@ NS_ASSUME_NONNULL_BEGIN /** * Database extensions required for class to work. */ -- (void)asyncRegisterDatabaseExtensions; ++ (void)asyncRegisterDatabaseExtensionsWithStorageManager:(TSStorageManager *)storageManager; /** * Only use the sync version for testing, generally we'll want to register extensions async diff --git a/SignalServiceKit/src/Messages/OWSFailedAttachmentDownloadsJob.m b/SignalServiceKit/src/Messages/OWSFailedAttachmentDownloadsJob.m index fb00bec7e..3021d30b9 100644 --- a/SignalServiceKit/src/Messages/OWSFailedAttachmentDownloadsJob.m +++ b/SignalServiceKit/src/Messages/OWSFailedAttachmentDownloadsJob.m @@ -96,7 +96,7 @@ static NSString *const OWSFailedAttachmentDownloadsJobAttachmentStateIndex = @"i #pragma mark - YapDatabaseExtension -- (YapDatabaseSecondaryIndex *)indexDatabaseExtension ++ (YapDatabaseSecondaryIndex *)indexDatabaseExtension { YapDatabaseSecondaryIndexSetup *setup = [YapDatabaseSecondaryIndexSetup new]; [setup addColumn:OWSFailedAttachmentDownloadsJobAttachmentStateColumn @@ -121,21 +121,21 @@ static NSString *const OWSFailedAttachmentDownloadsJobAttachmentStateIndex = @"i // Useful for tests, don't use in app startup path because it's slow. - (void)blockingRegisterDatabaseExtensions { - [self.storageManager registerExtension:[self indexDatabaseExtension] + [self.storageManager registerExtension:[self.class indexDatabaseExtension] withName:OWSFailedAttachmentDownloadsJobAttachmentStateIndex]; } -- (void)asyncRegisterDatabaseExtensions ++ (void)asyncRegisterDatabaseExtensionsWithStorageManager:(TSStorageManager *)storageManager { - [self.storageManager asyncRegisterExtension:[self indexDatabaseExtension] - withName:OWSFailedAttachmentDownloadsJobAttachmentStateIndex - completionBlock:^(BOOL ready) { - if (ready) { - DDLogDebug(@"%@ completed registering extension async.", self.logTag); - } else { - DDLogError(@"%@ failed registering extension async.", self.logTag); - } - }]; + [storageManager asyncRegisterExtension:[self indexDatabaseExtension] + withName:OWSFailedAttachmentDownloadsJobAttachmentStateIndex + completionBlock:^(BOOL ready) { + if (ready) { + DDLogDebug(@"%@ completed registering extension async.", self.logTag); + } else { + DDLogError(@"%@ failed registering extension async.", self.logTag); + } + }]; } @end diff --git a/SignalServiceKit/src/Messages/OWSFailedMessagesJob.h b/SignalServiceKit/src/Messages/OWSFailedMessagesJob.h index 49d8c67d2..29b8761bf 100644 --- a/SignalServiceKit/src/Messages/OWSFailedMessagesJob.h +++ b/SignalServiceKit/src/Messages/OWSFailedMessagesJob.h @@ -16,7 +16,7 @@ NS_ASSUME_NONNULL_BEGIN /** * Database extensions required for class to work. */ -- (void)asyncRegisterDatabaseExtensions; ++ (void)asyncRegisterDatabaseExtensionsWithStorageManager:(TSStorageManager *)storageManager; /** * Only use the sync version for testing, generally we'll want to register extensions async diff --git a/SignalServiceKit/src/Messages/OWSFailedMessagesJob.m b/SignalServiceKit/src/Messages/OWSFailedMessagesJob.m index 886fd9112..4c39906e2 100644 --- a/SignalServiceKit/src/Messages/OWSFailedMessagesJob.m +++ b/SignalServiceKit/src/Messages/OWSFailedMessagesJob.m @@ -105,7 +105,7 @@ static NSString *const OWSFailedMessagesJobMessageStateIndex = @"index_outoing_m #pragma mark - YapDatabaseExtension -- (YapDatabaseSecondaryIndex *)indexDatabaseExtension ++ (YapDatabaseSecondaryIndex *)indexDatabaseExtension { YapDatabaseSecondaryIndexSetup *setup = [YapDatabaseSecondaryIndexSetup new]; [setup addColumn:OWSFailedMessagesJobMessageStateColumn withType:YapDatabaseSecondaryIndexTypeInteger]; @@ -130,21 +130,21 @@ static NSString *const OWSFailedMessagesJobMessageStateIndex = @"index_outoing_m // Useful for tests, don't use in app startup path because it's slow. - (void)blockingRegisterDatabaseExtensions { - [self.storageManager registerExtension:[self indexDatabaseExtension] + [self.storageManager registerExtension:[self.class indexDatabaseExtension] withName:OWSFailedMessagesJobMessageStateIndex]; } -- (void)asyncRegisterDatabaseExtensions ++ (void)asyncRegisterDatabaseExtensionsWithStorageManager:(TSStorageManager *)storageManager { - [self.storageManager asyncRegisterExtension:[self indexDatabaseExtension] - withName:OWSFailedMessagesJobMessageStateIndex - completionBlock:^(BOOL ready) { - if (ready) { - DDLogDebug(@"%@ completed registering extension async.", self.logTag); - } else { - DDLogError(@"%@ failed registering extension async.", self.logTag); - } - }]; + [storageManager asyncRegisterExtension:[self indexDatabaseExtension] + withName:OWSFailedMessagesJobMessageStateIndex + completionBlock:^(BOOL ready) { + if (ready) { + DDLogDebug(@"%@ completed registering extension async.", self.logTag); + } else { + DDLogError(@"%@ failed registering extension async.", self.logTag); + } + }]; } @end diff --git a/SignalServiceKit/src/Storage/AxolotlStore/TSStorageManager+PreKeyStore.m b/SignalServiceKit/src/Storage/AxolotlStore/TSStorageManager+PreKeyStore.m index 5cd933b9b..6654c1691 100644 --- a/SignalServiceKit/src/Storage/AxolotlStore/TSStorageManager+PreKeyStore.m +++ b/SignalServiceKit/src/Storage/AxolotlStore/TSStorageManager+PreKeyStore.m @@ -2,6 +2,7 @@ // Copyright (c) 2017 Open Whisper Systems. All rights reserved. // +#import "TSStorageKeys.h" #import "TSStorageManager+PreKeyStore.h" #import "TSStorageManager+keyFromIntLong.h" #import "YapDatabaseConnection+OWS.h" diff --git a/SignalServiceKit/src/Storage/OWSIncomingMessageFinder.h b/SignalServiceKit/src/Storage/OWSIncomingMessageFinder.h index 6a5fb7794..d4a1e3028 100644 --- a/SignalServiceKit/src/Storage/OWSIncomingMessageFinder.h +++ b/SignalServiceKit/src/Storage/OWSIncomingMessageFinder.h @@ -14,7 +14,7 @@ NS_ASSUME_NONNULL_BEGIN /** * Must be called before using this finder. */ -- (void)asyncRegisterExtension; ++ (void)asyncRegisterExtensionWithStorageManager:(TSStorageManager *)storageManager; /** * Detects existance of a duplicate incoming message. diff --git a/SignalServiceKit/src/Storage/OWSIncomingMessageFinder.m b/SignalServiceKit/src/Storage/OWSIncomingMessageFinder.m index 854b61989..77492524a 100644 --- a/SignalServiceKit/src/Storage/OWSIncomingMessageFinder.m +++ b/SignalServiceKit/src/Storage/OWSIncomingMessageFinder.m @@ -62,7 +62,7 @@ NSString *const OWSIncomingMessageFinderColumnSourceDeviceId = @"OWSIncomingMess #pragma mark - YAP integration -- (YapDatabaseSecondaryIndex *)indexExtension ++ (YapDatabaseSecondaryIndex *)indexExtension { YapDatabaseSecondaryIndexSetup *setup = [YapDatabaseSecondaryIndexSetup new]; @@ -92,21 +92,21 @@ NSString *const OWSIncomingMessageFinderColumnSourceDeviceId = @"OWSIncomingMess return [[YapDatabaseSecondaryIndex alloc] initWithSetup:setup handler:handler]; } -- (void)asyncRegisterExtension ++ (void)asyncRegisterExtensionWithStorageManager:(TSStorageManager *)storageManager { DDLogInfo(@"%@ registering async.", self.logTag); - [self.storageManager asyncRegisterExtension:self.indexExtension - withName:OWSIncomingMessageFinderExtensionName - completionBlock:^(BOOL ready) { - DDLogInfo(@"%@ finished registering async.", self.logTag); - }]; + [storageManager asyncRegisterExtension:self.indexExtension + withName:OWSIncomingMessageFinderExtensionName + completionBlock:^(BOOL ready) { + DDLogInfo(@"%@ finished registering async.", self.logTag); + }]; } // We should not normally hit this, as we should have prefer registering async, but it is useful for testing. - (void)registerExtension { DDLogError(@"%@ registering SYNC. We should prefer async when possible.", self.logTag); - [self.storageManager registerExtension:self.indexExtension withName:OWSIncomingMessageFinderExtensionName]; + [self.storageManager registerExtension:self.class.indexExtension withName:OWSIncomingMessageFinderExtensionName]; } #pragma mark - instance methods diff --git a/SignalServiceKit/src/Storage/TSStorageManager.h b/SignalServiceKit/src/Storage/TSStorageManager.h index 3ae073a8a..642d499d5 100644 --- a/SignalServiceKit/src/Storage/TSStorageManager.h +++ b/SignalServiceKit/src/Storage/TSStorageManager.h @@ -3,7 +3,6 @@ // #import "OWSStorage.h" -#import "TSStorageKeys.h" NS_ASSUME_NONNULL_BEGIN diff --git a/SignalServiceKit/src/Storage/TSStorageManager.m b/SignalServiceKit/src/Storage/TSStorageManager.m index a389cd39d..23c7078a5 100644 --- a/SignalServiceKit/src/Storage/TSStorageManager.m +++ b/SignalServiceKit/src/Storage/TSStorageManager.m @@ -11,13 +11,8 @@ #import "OWSFileSystem.h" #import "OWSIncomingMessageFinder.h" #import "OWSMessageReceiver.h" -#import "SignalRecipient.h" -#import "TSAttachmentStream.h" #import "TSDatabaseSecondaryIndexes.h" #import "TSDatabaseView.h" -#import "TSInteraction.h" -#import "TSThread.h" -#import NS_ASSUME_NONNULL_BEGIN @@ -110,14 +105,11 @@ NSString *const TSStorageManagerExceptionName_CouldNotCreateDatabaseDirectory [TSDatabaseView asyncRegisterThreadSpecialMessagesDatabaseView]; // Register extensions which aren't essential for rendering threads async. - [[OWSIncomingMessageFinder new] asyncRegisterExtension]; + [OWSIncomingMessageFinder asyncRegisterExtensionWithStorageManager:self]; [TSDatabaseView asyncRegisterSecondaryDevicesDatabaseView]; [OWSDisappearingMessagesFinder asyncRegisterDatabaseExtensions:self]; - OWSFailedMessagesJob *failedMessagesJob = [[OWSFailedMessagesJob alloc] initWithStorageManager:self]; - [failedMessagesJob asyncRegisterDatabaseExtensions]; - OWSFailedAttachmentDownloadsJob *failedAttachmentDownloadsMessagesJob = - [[OWSFailedAttachmentDownloadsJob alloc] initWithStorageManager:self]; - [failedAttachmentDownloadsMessagesJob asyncRegisterDatabaseExtensions]; + [OWSFailedMessagesJob asyncRegisterDatabaseExtensionsWithStorageManager:self]; + [OWSFailedAttachmentDownloadsJob asyncRegisterDatabaseExtensionsWithStorageManager:self]; // NOTE: [TSDatabaseView asyncRegistrationCompletion] ensures that // DatabaseViewRegistrationCompleteNotification is not fired until all