Merge branch 'charlesmchen/migrateDecryptJobs'

pull/1/head
Matthew Chen 8 years ago
commit 8088318db8

@ -24,9 +24,12 @@ NS_ASSUME_NONNULL_BEGIN
@interface OWSMessageContentJob : TSYapDatabaseObject @interface OWSMessageContentJob : TSYapDatabaseObject
@property (nonatomic, readonly) NSDate *createdAt; @property (nonatomic, readonly) NSDate *createdAt;
@property (nonatomic, readonly) NSData *envelopeData;
@property (nonatomic, readonly, nullable) NSData *plaintextData;
- (instancetype)initWithEnvelopeData:(NSData *)envelopeData - (instancetype)initWithEnvelopeData:(NSData *)envelopeData
plaintextData:(NSData *_Nullable)plaintextData NS_DESIGNATED_INITIALIZER; plaintextData:(NSData *_Nullable)plaintextData NS_DESIGNATED_INITIALIZER;
- (nullable instancetype)initWithCoder:(NSCoder *)coder NS_DESIGNATED_INITIALIZER;
- (instancetype)initWithUniqueId:(NSString *)uniqueId NS_UNAVAILABLE; - (instancetype)initWithUniqueId:(NSString *)uniqueId NS_UNAVAILABLE;
- (OWSSignalServiceProtosEnvelope *)envelopeProto; - (OWSSignalServiceProtosEnvelope *)envelopeProto;
@ -34,15 +37,6 @@ NS_ASSUME_NONNULL_BEGIN
#pragma mark - #pragma mark -
@interface OWSMessageContentJob ()
@property (nonatomic, readonly) NSData *envelopeData;
@property (nonatomic, readonly, nullable) NSData *plaintextData;
@end
#pragma mark -
@implementation OWSMessageContentJob @implementation OWSMessageContentJob
+ (NSString *)collection + (NSString *)collection
@ -66,6 +60,11 @@ NS_ASSUME_NONNULL_BEGIN
return self; return self;
} }
- (nullable instancetype)initWithCoder:(NSCoder *)coder
{
return [super initWithCoder:coder];
}
- (OWSSignalServiceProtosEnvelope *)envelopeProto - (OWSSignalServiceProtosEnvelope *)envelopeProto
{ {
return [OWSSignalServiceProtosEnvelope parseFromData:self.envelopeData]; return [OWSSignalServiceProtosEnvelope parseFromData:self.envelopeData];
@ -75,8 +74,8 @@ NS_ASSUME_NONNULL_BEGIN
#pragma mark - Finder #pragma mark - Finder
NSString *const OWSMessageContentJobFinderExtensionName = @"OWSBatchMessageProcessingFinderExtensionName"; NSString *const OWSMessageContentJobFinderExtensionName = @"OWSMessageContentJobFinderExtensionName2";
NSString *const OWSMessageContentJobFinderExtensionGroup = @"OWSBatchMessageProcessingFinderExtensionGroup"; NSString *const OWSMessageContentJobFinderExtensionGroup = @"OWSMessageContentJobFinderExtensionGroup2";
@interface OWSMessageContentJobFinder : NSObject @interface OWSMessageContentJobFinder : NSObject

@ -18,15 +18,13 @@
NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_BEGIN
#pragma mark - Persisted data model
@class OWSSignalServiceProtosEnvelope;
@interface OWSMessageDecryptJob : TSYapDatabaseObject @interface OWSMessageDecryptJob : TSYapDatabaseObject
@property (nonatomic, readonly) NSDate *createdAt; @property (nonatomic, readonly) NSDate *createdAt;
@property (nonatomic, readonly) NSData *envelopeData;
- (instancetype)initWithEnvelope:(OWSSignalServiceProtosEnvelope *)envelope NS_DESIGNATED_INITIALIZER; - (instancetype)initWithEnvelope:(OWSSignalServiceProtosEnvelope *)envelope NS_DESIGNATED_INITIALIZER;
- (nullable instancetype)initWithCoder:(NSCoder *)coder NS_DESIGNATED_INITIALIZER;
- (instancetype)initWithUniqueId:(NSString *)uniqueId NS_UNAVAILABLE; - (instancetype)initWithUniqueId:(NSString *)uniqueId NS_UNAVAILABLE;
- (OWSSignalServiceProtosEnvelope *)envelopeProto; - (OWSSignalServiceProtosEnvelope *)envelopeProto;
@ -34,14 +32,6 @@ NS_ASSUME_NONNULL_BEGIN
#pragma mark - #pragma mark -
@interface OWSMessageDecryptJob ()
@property (nonatomic, readonly) NSData *envelopeData;
@end
#pragma mark -
@implementation OWSMessageDecryptJob @implementation OWSMessageDecryptJob
+ (NSString *)collection + (NSString *)collection
@ -64,6 +54,11 @@ NS_ASSUME_NONNULL_BEGIN
return self; return self;
} }
- (nullable instancetype)initWithCoder:(NSCoder *)coder
{
return [super initWithCoder:coder];
}
- (OWSSignalServiceProtosEnvelope *)envelopeProto - (OWSSignalServiceProtosEnvelope *)envelopeProto
{ {
return [OWSSignalServiceProtosEnvelope parseFromData:self.envelopeData]; return [OWSSignalServiceProtosEnvelope parseFromData:self.envelopeData];
@ -73,8 +68,8 @@ NS_ASSUME_NONNULL_BEGIN
#pragma mark - Finder #pragma mark - Finder
NSString *const OWSMessageDecryptJobFinderExtensionName = @"OWSMessageProcessingJobFinderExtensionName"; NSString *const OWSMessageDecryptJobFinderExtensionName = @"OWSMessageProcessingJobFinderExtensionName2";
NSString *const OWSMessageDecryptJobFinderExtensionGroup = @"OWSMessageProcessingJobFinderExtensionGroup"; NSString *const OWSMessageDecryptJobFinderExtensionGroup = @"OWSMessageProcessingJobFinderExtensionGroup2";
@interface OWSMessageDecryptJobFinder : NSObject @interface OWSMessageDecryptJobFinder : NSObject
@ -103,6 +98,8 @@ NSString *const OWSMessageDecryptJobFinderExtensionGroup = @"OWSMessageProcessin
_dbConnection = dbConnection; _dbConnection = dbConnection;
[OWSMessageDecryptJobFinder registerLegacyClasses];
return self; return self;
} }
@ -180,9 +177,19 @@ NSString *const OWSMessageDecryptJobFinderExtensionGroup = @"OWSMessageProcessin
return [[YapDatabaseView alloc] initWithGrouping:grouping sorting:sorting versionTag:@"1" options:options]; return [[YapDatabaseView alloc] initWithGrouping:grouping sorting:sorting versionTag:@"1" options:options];
} }
+ (void)registerLegacyClasses
{
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
// We've renamed OWSMessageProcessingJob to OWSMessageDecryptJob.
[NSKeyedUnarchiver setClass:[OWSMessageDecryptJob class] forClassName:[OWSMessageDecryptJob collection]];
});
}
+ (void)syncRegisterDatabaseExtension:(YapDatabase *)database + (void)syncRegisterDatabaseExtension:(YapDatabase *)database
{ {
[self registerLegacyClasses];
YapDatabaseView *existingView = [database registeredExtension:OWSMessageDecryptJobFinderExtensionName]; YapDatabaseView *existingView = [database registeredExtension:OWSMessageDecryptJobFinderExtensionName];
if (existingView) { if (existingView) {
OWSFail(@"%@ was already initialized.", OWSMessageDecryptJobFinderExtensionName); OWSFail(@"%@ was already initialized.", OWSMessageDecryptJobFinderExtensionName);

@ -186,10 +186,23 @@ void setDatabaseInitialized()
- (nullable Class)unarchiver:(NSKeyedUnarchiver *)unarchiver cannotDecodeObjectOfClassName:(NSString *)name originalClasses:(NSArray<NSString *> *)classNames - (nullable Class)unarchiver:(NSKeyedUnarchiver *)unarchiver cannotDecodeObjectOfClassName:(NSString *)name originalClasses:(NSArray<NSString *> *)classNames
{ {
DDLogError(@"%@ Could not decode object: %@", self.tag, name);
OWSProdError([OWSAnalyticsEvents storageErrorCouldNotDecodeClass]); OWSProdError([OWSAnalyticsEvents storageErrorCouldNotDecodeClass]);
return [OWSUnknownObject class]; return [OWSUnknownObject class];
} }
#pragma mark - Logging
+ (NSString *)tag
{
return [NSString stringWithFormat:@"[%@]", self.class];
}
- (NSString *)tag
{
return self.class.tag;
}
@end @end
#pragma mark - #pragma mark -

Loading…
Cancel
Save