Respond to CR.

pull/1/head
Matthew Chen 7 years ago
parent 51cec20c50
commit 43765ef3b5

@ -0,0 +1,3 @@
#!/bin/bash
rm -rf ~/Library/Developer/Xcode/DerivedData

@ -926,7 +926,7 @@ typedef NS_ENUM(NSInteger, MessagesRangeSizeMode) {
continue;
}
[TSStorageManager.protocolStoreDBConnection
[self.editingDatabaseConnection
asyncReadWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {
[OWSIdentityManager.sharedManager setVerificationState:OWSVerificationStateDefault
identityKey:identityKey

@ -1258,7 +1258,7 @@ NS_ASSUME_NONNULL_BEGIN
NSData *envelopeData = [envelopeBuilder build].data;
OWSAssert(envelopeData);
[TSStorageManager.protocolStoreDBConnection readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {
[TSStorageManager.dbReadWriteConnection readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {
[[OWSBatchMessageProcessor sharedInstance] enqueueEnvelopeData:envelopeData
plaintextData:plaintextData
transaction:transaction];

@ -60,7 +60,8 @@ class MessageDetailViewController: OWSViewController, UIScrollViewDelegate, Medi
self.viewItem = viewItem
self.message = message
self.mode = mode
self.databaseConnection = TSStorageManager.shared().newDatabaseConnection()!
self.databaseConnection = TSStorageManager.shared().newDatabaseConnection()
super.init(nibName: nil, bundle: nil)
}

@ -130,7 +130,7 @@ public class ProfileFetcherJob: NSObject {
}
private func verifyIdentityUpToDateAsync(recipientId: String, latestIdentityKey: Data) {
TSStorageManager.protocolStoreDBConnection().asyncReadWrite { (transaction) in
storageManager.newDatabaseConnection().asyncReadWrite { (transaction) in
if OWSIdentityManager.shared().saveRemoteIdentity(latestIdentityKey, recipientId: recipientId, protocolContext: transaction) {
Logger.info("\(self.TAG) updated identity key with fetched profile for recipient: \(recipientId)")
self.storageManager.archiveAllSessions(forContact: recipientId, protocolContext: transaction)

@ -234,7 +234,7 @@ NSString *const OWSMessageContentJobFinderExtensionGroup = @"OWSMessageContentJo
@interface OWSMessageContentQueue : NSObject
@property (nonatomic, readonly) OWSMessageManager *messagesManager;
@property (nonatomic, readonly) YapDatabaseConnection *dbReadWriteConnection;
@property (nonatomic, readonly) YapDatabaseConnection *dbConnection;
@property (nonatomic, readonly) OWSMessageContentJobFinder *finder;
@property (nonatomic) BOOL isDrainingQueue;
@ -261,7 +261,7 @@ NSString *const OWSMessageContentJobFinderExtensionGroup = @"OWSMessageContentJo
}
_messagesManager = messagesManager;
_dbReadWriteConnection = [storageManager newDatabaseConnection];
_dbConnection = [storageManager newDatabaseConnection];
_finder = finder;
_isDrainingQueue = NO;
@ -369,9 +369,7 @@ NSString *const OWSMessageContentJobFinderExtensionGroup = @"OWSMessageContentJo
{
AssertOnDispatchQueue(self.serialQueue);
// Note that we use the protocolStoreDBConnection to process incoming messages,
// to ensure session & identity store consistency.
[TSStorageManager.protocolStoreDBConnection readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {
[self.dbConnection readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {
for (OWSMessageContentJob *job in jobs) {
[self.messagesManager processEnvelope:job.envelopeProto
plaintextData:job.plaintextData

@ -156,10 +156,9 @@ NS_ASSUME_NONNULL_BEGIN
case OWSSignalServiceProtosEnvelopeTypeReceipt:
case OWSSignalServiceProtosEnvelopeTypeKeyExchange:
case OWSSignalServiceProtosEnvelopeTypeUnknown: {
[TSStorageManager.protocolStoreDBConnection
readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {
successBlock(nil, transaction);
}];
[self.dbConnection readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {
successBlock(nil, transaction);
}];
// Return to avoid double-acknowledging.
return;
}
@ -236,7 +235,7 @@ NS_ASSUME_NONNULL_BEGIN
return;
}
[TSStorageManager.protocolStoreDBConnection
[self.dbConnection
asyncReadWriteWithBlock:^(YapDatabaseReadWriteTransaction *_Nonnull transaction) {
@try {
id<CipherMessage> cipherMessage = cipherMessageBlock(encryptedData);

@ -904,7 +904,7 @@ NSString *const OWSMessageSenderRateLimitedException = @"RateLimitedException";
NSData *newIdentityKey = [newIdentityKeyWithVersion removeKeyType];
[TSStorageManager.protocolStoreDBConnection
[self.dbConnection
readWriteWithBlock:^(YapDatabaseReadWriteTransaction *_Nonnull transaction) {
[[OWSIdentityManager sharedManager] saveRemoteIdentity:newIdentityKey
recipientId:recipient.recipientId
@ -1104,7 +1104,7 @@ NSString *const OWSMessageSenderRateLimitedException = @"RateLimitedException";
}
}
[TSStorageManager.protocolStoreDBConnection
[self.dbConnection
asyncReadWriteWithBlock:^(YapDatabaseReadWriteTransaction *_Nonnull transaction) {
if (extraDevices.count < 1 && missingDevices.count < 1) {
OWSProdFail([OWSAnalyticsEvents messageSenderErrorNoMissingOrExtraDevices]);
@ -1256,7 +1256,7 @@ NSString *const OWSMessageSenderRateLimitedException = @"RateLimitedException";
@try {
__block NSDictionary *messageDict;
__block NSException *encryptionException;
[TSStorageManager.protocolStoreDBConnection
[self.dbConnection
readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {
@try {
messageDict = [self encryptedMessageWithPlaintext:plainText
@ -1436,8 +1436,7 @@ NSString *const OWSMessageSenderRateLimitedException = @"RateLimitedException";
return;
}
[TSStorageManager.protocolStoreDBConnection asyncReadWriteWithBlock:^(
YapDatabaseReadWriteTransaction *transaction) {
[self.dbConnection asyncReadWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {
for (NSUInteger i = 0; i < [devices count]; i++) {
int deviceNumber = [devices[i] intValue];
[[TSStorageManager sharedManager] deleteSessionForContact:identifier

@ -126,65 +126,6 @@ OWSSignalServiceProtosVerifiedState OWSVerificationStateToProtoState(OWSVerifica
}];
}
- (void)saveWithTransaction:(YapDatabaseReadWriteTransaction *)transaction
{
// For consistency, we should only access instances of this class on
// non-caching connections.
OWSAssert(!transaction.connection.objectCacheEnabled);
[super saveWithTransaction:transaction];
}
- (void)removeWithTransaction:(YapDatabaseReadWriteTransaction *)transaction
{
// For consistency, we should only access instances of this class on
// non-caching connections.
OWSAssert(!transaction.connection.objectCacheEnabled);
[super removeWithTransaction:transaction];
}
- (void)touchWithTransaction:(YapDatabaseReadWriteTransaction *)transaction
{
// For consistency, we should only access instances of this class on
// non-caching connections.
OWSAssert(!transaction.connection.objectCacheEnabled);
[super touchWithTransaction:transaction];
}
+ (nullable instancetype)fetchObjectWithUniqueID:(NSString *)uniqueID
transaction:(YapDatabaseReadTransaction *)transaction
{
// For consistency, we should only access instances of this class on
// non-caching connections.
OWSAssert(!transaction.connection.objectCacheEnabled);
return [super fetchObjectWithUniqueID:uniqueID transaction:transaction];
}
#pragma mark - Database Connections
+ (YapDatabaseConnection *)dbReadConnection
{
return self.dbReadWriteConnection;
}
+ (YapDatabaseConnection *)dbReadWriteConnection
{
return TSStorageManager.protocolStoreDBConnection;
}
- (YapDatabaseConnection *)dbReadConnection
{
return OWSRecipientIdentity.dbReadConnection;
}
- (YapDatabaseConnection *)dbReadWriteConnection
{
return OWSRecipientIdentity.dbReadWriteConnection;
}
#pragma mark - debug
+ (void)printAllIdentities

@ -49,8 +49,6 @@ NSString *const kSessionStoreDBConnectionKey = @"kSessionStoreDBConnectionKey";
OWSAssert([protocolContext isKindOfClass:[YapDatabaseReadWriteTransaction class]]);
YapDatabaseReadWriteTransaction *transaction = protocolContext;
// For consistency, we should only access session state on non-caching connections.
OWSAssert(!transaction.connection.objectCacheEnabled);
NSDictionary *_Nullable dictionary =
[transaction objectForKey:contactIdentifier inCollection:TSStorageManagerSessionStoreCollection];
@ -78,8 +76,6 @@ NSString *const kSessionStoreDBConnectionKey = @"kSessionStoreDBConnectionKey";
OWSFail(@"%@ subDevicesSessions is deprecated", self.logTag);
YapDatabaseReadWriteTransaction *transaction = protocolContext;
// For consistency, we should only access session state on non-caching connections.
OWSAssert(!transaction.connection.objectCacheEnabled);
NSDictionary *_Nullable dictionary =
[transaction objectForKey:contactIdentifier inCollection:TSStorageManagerSessionStoreCollection];
@ -97,8 +93,6 @@ NSString *const kSessionStoreDBConnectionKey = @"kSessionStoreDBConnectionKey";
OWSAssert([protocolContext isKindOfClass:[YapDatabaseReadWriteTransaction class]]);
YapDatabaseReadWriteTransaction *transaction = protocolContext;
// For consistency, we should only access session state on non-caching connections.
OWSAssert(!transaction.connection.objectCacheEnabled);
// We need to ensure subsequent usage of this SessionRecord does not consider this session as "fresh". Normally this
// is achieved by marking things as "not fresh" at the point of deserialization - when we fetch a SessionRecord from
@ -142,8 +136,6 @@ NSString *const kSessionStoreDBConnectionKey = @"kSessionStoreDBConnectionKey";
OWSAssert([protocolContext isKindOfClass:[YapDatabaseReadWriteTransaction class]]);
YapDatabaseReadWriteTransaction *transaction = protocolContext;
// For consistency, we should only access session state on non-caching connections.
OWSAssert(!transaction.connection.objectCacheEnabled);
DDLogInfo(
@"[TSStorageManager (SessionStore)] deleting session for contact: %@ device: %d", contactIdentifier, deviceId);
@ -167,8 +159,6 @@ NSString *const kSessionStoreDBConnectionKey = @"kSessionStoreDBConnectionKey";
OWSAssert([protocolContext isKindOfClass:[YapDatabaseReadWriteTransaction class]]);
YapDatabaseReadWriteTransaction *transaction = protocolContext;
// For consistency, we should only access session state on non-caching connections.
OWSAssert(!transaction.connection.objectCacheEnabled);
DDLogInfo(@"[TSStorageManager (SessionStore)] deleting all sessions for contact:%@", contactIdentifier);
@ -181,8 +171,6 @@ NSString *const kSessionStoreDBConnectionKey = @"kSessionStoreDBConnectionKey";
OWSAssert([protocolContext isKindOfClass:[YapDatabaseReadWriteTransaction class]]);
YapDatabaseReadWriteTransaction *transaction = protocolContext;
// For consistency, we should only access session state on non-caching connections.
OWSAssert(!transaction.connection.objectCacheEnabled);
DDLogInfo(@"[TSStorageManager (SessionStore)] archiving all sessions for contact: %@", contactIdentifier);

@ -51,7 +51,7 @@ extern NSString *const StorageIsReadyNotification;
+ (void)resetAllStorage;
// TODO: Deprecate?
- (nullable YapDatabaseConnection *)newDatabaseConnection;
- (YapDatabaseConnection *)newDatabaseConnection;
#ifdef DEBUG
- (BOOL)registerExtension:(YapDatabaseExtension *)extension withName:(NSString *)extensionName;

@ -451,9 +451,12 @@ typedef NSData *_Nullable (^CreateDatabaseMetadataBlock)(void);
};
}
- (nullable YapDatabaseConnection *)newDatabaseConnection
- (YapDatabaseConnection *)newDatabaseConnection
{
return self.database.newConnection;
YapDatabaseConnection *dbConnection = self.database.newConnection;
OWSRaiseException(
@"OWSStorageExceptionName_CouldNotOpenConnection", @"Storage could not open new database connection.");
return dbConnection;
}
- (BOOL)registerExtension:(YapDatabaseExtension *)extension withName:(NSString *)extensionName

Loading…
Cancel
Save