Move db connections to environments.

This commit is contained in:
Matthew Chen 2018-10-16 13:00:50 -04:00
parent 829851bd7b
commit f1646b6cbc
5 changed files with 40 additions and 22 deletions

View File

@ -4,6 +4,7 @@
#import "OWSDatabaseMigration.h"
#import <SignalServiceKit/OWSPrimaryStorage.h>
#import <SignalServiceKit/SSKEnvironment.h>
NS_ASSUME_NONNULL_BEGIN
@ -81,13 +82,7 @@ NS_ASSUME_NONNULL_BEGIN
+ (YapDatabaseConnection *)dbReadWriteConnection
{
static dispatch_once_t onceToken;
static YapDatabaseConnection *sharedDBConnection;
dispatch_once(&onceToken, ^{
sharedDBConnection = [OWSPrimaryStorage sharedManager].newDatabaseConnection;
});
return sharedDBConnection;
return SSKEnvironment.shared.migrationDBConnection;
}
- (YapDatabaseConnection *)dbReadConnection

View File

@ -220,12 +220,7 @@ NSString *NSStringForOutgoingMessageRecipientState(OWSOutgoingMessageRecipientSt
+ (YapDatabaseConnection *)dbMigrationConnection
{
static YapDatabaseConnection *connection = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
connection = [[OWSPrimaryStorage sharedManager] newDatabaseConnection];
});
return connection;
return SSKEnvironment.shared.migrationDBConnection;
}
+ (instancetype)outgoingMessageInThread:(nullable TSThread *)thread

View File

@ -90,6 +90,9 @@ NS_ASSUME_NONNULL_BEGIN
@property (atomic, nullable) id<NotificationsProtocol> notificationsManager;
@property (atomic, readonly) YapDatabaseConnection *objectReadWriteConnection;
@property (atomic, readonly) YapDatabaseConnection *sessionStoreDBConnection;
@property (atomic, readonly) YapDatabaseConnection *migrationDBConnection;
@property (atomic, readonly) YapDatabaseConnection *analyticsDBConnection;
- (BOOL)isComplete;

View File

@ -42,6 +42,9 @@ static SSKEnvironment *sharedSSKEnvironment;
@synthesize callMessageHandler = _callMessageHandler;
@synthesize notificationsManager = _notificationsManager;
@synthesize objectReadWriteConnection = _objectReadWriteConnection;
@synthesize sessionStoreDBConnection = _sessionStoreDBConnection;
@synthesize migrationDBConnection = _migrationDBConnection;
@synthesize analyticsDBConnection = _analyticsDBConnection;
- (instancetype)initWithContactsManager:(id<ContactsManagerProtocol>)contactsManager
messageSender:(OWSMessageSender *)messageSender
@ -188,6 +191,34 @@ static SSKEnvironment *sharedSSKEnvironment;
return _objectReadWriteConnection;
}
}
- (YapDatabaseConnection *)sessionStoreDBConnection {
@synchronized(self) {
if (!_sessionStoreDBConnection) {
_sessionStoreDBConnection = self.primaryStorage.newDatabaseConnection;
}
return _sessionStoreDBConnection;
}
}
- (YapDatabaseConnection *)migrationDBConnection {
@synchronized(self) {
if (!_migrationDBConnection) {
_migrationDBConnection = self.primaryStorage.newDatabaseConnection;
}
return _migrationDBConnection;
}
}
- (YapDatabaseConnection *)analyticsDBConnection {
@synchronized(self) {
if (!_analyticsDBConnection) {
_analyticsDBConnection = self.primaryStorage.newDatabaseConnection;
}
return _analyticsDBConnection;
}
}
@end
NS_ASSUME_NONNULL_END

View File

@ -2,8 +2,9 @@
// Copyright (c) 2018 Open Whisper Systems. All rights reserved.
//
#import "OWSPrimaryStorage+SessionStore.h"
#import "OWSFileSystem.h"
#import "OWSPrimaryStorage+SessionStore.h"
#import "SSKEnvironment.h"
#import "YapDatabaseConnection+OWS.h"
#import "YapDatabaseTransaction+OWS.h"
#import <AxolotlKit/SessionRecord.h>
@ -23,14 +24,7 @@ NSString *const kSessionStoreDBConnectionKey = @"kSessionStoreDBConnectionKey";
*/
+ (YapDatabaseConnection *)sessionStoreDBConnection
{
static dispatch_once_t onceToken;
static YapDatabaseConnection *sessionStoreDBConnection;
dispatch_once(&onceToken, ^{
sessionStoreDBConnection = [OWSPrimaryStorage sharedManager].newDatabaseConnection;
sessionStoreDBConnection.objectCacheEnabled = NO;
});
return sessionStoreDBConnection;
return SSKEnvironment.shared.sessionStoreDBConnection;
}
- (YapDatabaseConnection *)sessionStoreDBConnection