mirror of https://github.com/oxen-io/session-ios
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
56 lines
1.6 KiB
Objective-C
56 lines
1.6 KiB
Objective-C
//
|
|
// Copyright (c) 2017 Open Whisper Systems. All rights reserved.
|
|
//
|
|
|
|
#import <YapDatabase/YapDatabaseConnection.h>
|
|
|
|
NS_ASSUME_NONNULL_BEGIN
|
|
|
|
extern NSString *const StorageIsReadyNotification;
|
|
|
|
@class YapDatabaseExtension;
|
|
|
|
@interface OWSStorage : NSObject
|
|
|
|
- (instancetype)init NS_UNAVAILABLE;
|
|
- (instancetype)initStorage NS_DESIGNATED_INITIALIZER;
|
|
|
|
// Returns YES if _ALL_ storage classes have completed both their
|
|
// sync _AND_ async view registrations.
|
|
+ (BOOL)isStorageReady;
|
|
|
|
/**
|
|
* The safeBlockingMigrationsBlock block will
|
|
* run any outstanding version migrations that are a) blocking and b) safe
|
|
* to be run before the environment and storage is completely configured.
|
|
*
|
|
* Specifically, these migration should not depend on or affect the data
|
|
* of any database view.
|
|
*/
|
|
+ (void)setupWithSafeBlockingMigrations:(void (^_Nonnull)(void))safeBlockingMigrationsBlock;
|
|
|
|
+ (void)resetAllStorage;
|
|
|
|
// TODO: Deprecate?
|
|
- (nullable YapDatabaseConnection *)newDatabaseConnection;
|
|
|
|
- (BOOL)registerExtension:(YapDatabaseExtension *)extension withName:(NSString *)extensionName;
|
|
- (void)asyncRegisterExtension:(YapDatabaseExtension *)extension
|
|
withName:(NSString *)extensionName
|
|
completionBlock:(nullable void (^)(BOOL ready))completionBlock;
|
|
- (nullable id)registeredExtension:(NSString *)extensionName;
|
|
|
|
#pragma mark - Password
|
|
|
|
/**
|
|
* Returns NO if:
|
|
*
|
|
* - Keychain is locked because device has just been restarted.
|
|
* - Password could not be retrieved because of a keychain error.
|
|
*/
|
|
+ (BOOL)isDatabasePasswordAccessible;
|
|
|
|
@end
|
|
|
|
NS_ASSUME_NONNULL_END
|