Register CrossProcessNotifier.

pull/1/head
Matthew Chen 8 years ago
parent 64762eb427
commit e7df2511a4

@ -25,6 +25,8 @@ extern NSString *const TSSecondaryDevicesDatabaseViewExtensionName;
// This method can be called from any thread.
+ (BOOL)hasPendingViewRegistrations;
+ (void)registerCrossProcessNotifier;
// This method must be called _AFTER_ registerThreadInteractionsDatabaseView.
+ (void)registerThreadDatabaseView;

@ -11,6 +11,7 @@
#import "TSOutgoingMessage.h"
#import "TSStorageManager.h"
#import "TSThread.h"
#import <YapDatabase/YapDatabaseCrossProcessNotification.h>
#import <YapDatabase/YapDatabaseView.h>
NSString *const kNSNotificationName_DatabaseViewRegistrationComplete =
@ -88,6 +89,15 @@ NSString *const TSSecondaryDevicesDatabaseViewExtensionName = @"TSSecondaryDevic
}
}
+ (void)registerCrossProcessNotifier
{
// I don't think the identifier and name of this extension matter for our purposes,
// so long as they don't conflict with any other extension names.
YapDatabaseExtension *extension =
[[YapDatabaseCrossProcessNotification alloc] initWithIdentifier:@"SignalCrossProcessNotifier"];
[[TSStorageManager sharedManager].database registerExtension:extension withName:@"SignalCrossProcessNotifier"];
}
+ (void)registerMessageDatabaseViewWithName:(NSString *)viewName
viewGrouping:(YapDatabaseViewGrouping *)viewGrouping
version:(NSString *)version

@ -310,6 +310,7 @@ void setDatabaseInitialized()
- (void)setupDatabaseWithSafeBlockingMigrations:(void (^_Nonnull)())safeBlockingMigrationsBlock
{
// Synchronously register extensions which are essential for views.
[TSDatabaseView registerCrossProcessNotifier];
[TSDatabaseView registerThreadInteractionsDatabaseView];
[TSDatabaseView registerThreadDatabaseView];
[TSDatabaseView registerUnreadDatabaseView];

Loading…
Cancel
Save