session-ios/SignalServiceKit/src/Storage/TSStorageManager.h

73 lines
2.7 KiB
C
Raw Normal View History

2015-12-07 03:31:43 +01:00
//
// Copyright (c) 2017 Open Whisper Systems. All rights reserved.
2015-12-07 03:31:43 +01:00
//
#import "TSStorageKeys.h"
#import "YapDatabaseConnection+OWS.h"
2015-12-07 03:31:43 +01:00
#import <YapDatabase/YapDatabase.h>
@class ECKeyPair;
@class PreKeyRecord;
@class SignedPreKeyRecord;
NS_ASSUME_NONNULL_BEGIN
2015-12-07 03:31:43 +01:00
@interface TSStorageManager : NSObject
- (instancetype)init NS_UNAVAILABLE;
2015-12-07 03:31:43 +01:00
+ (instancetype)sharedManager;
/**
* Returns NO if:
*
* - Keychain is locked because device has just been restarted.
* - Password could not be retrieved because of a keychain error.
*/
+ (BOOL)isDatabasePasswordAccessible;
/**
* 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.
*/
2017-12-01 01:57:56 +01:00
- (void)setupDatabaseWithSafeBlockingMigrations:(void (^_Nonnull)(void))safeBlockingMigrationsBlock;
2015-12-07 03:31:43 +01:00
- (void)deleteThreadsAndMessages;
- (void)resetSignalStorage;
2015-12-07 03:31:43 +01:00
- (nullable YapDatabase *)database;
- (nullable YapDatabaseConnection *)newDatabaseConnection;
2015-12-07 03:31:43 +01:00
- (void)setObject:(id)object forKey:(NSString *)key inCollection:(NSString *)collection;
- (void)removeObjectForKey:(NSString *)string inCollection:(NSString *)collection;
- (BOOL)boolForKey:(NSString *)key inCollection:(NSString *)collection;
- (int)intForKey:(NSString *)key inCollection:(NSString *)collection;
- (void)setInt:(int)integer forKey:(NSString *)key inCollection:(NSString *)collection;
- (id)objectForKey:(NSString *)key inCollection:(NSString *)collection;
2017-02-10 19:20:11 +01:00
- (int)incrementIntForKey:(NSString *)key inCollection:(NSString *)collection;
- (nullable NSDate *)dateForKey:(NSString *)key inCollection:(NSString *)collection;
- (void)setDate:(NSDate *)value forKey:(NSString *)key inCollection:(NSString *)collection;
- (nullable NSDictionary *)dictionaryForKey:(NSString *)key inCollection:(NSString *)collection;
- (nullable NSString *)stringForKey:(NSString *)key inCollection:(NSString *)collection;
- (nullable NSData *)dataForKey:(NSString *)key inCollection:(NSString *)collection;
- (nullable ECKeyPair *)keyPairForKey:(NSString *)key inCollection:(NSString *)collection;
- (nullable PreKeyRecord *)preKeyRecordForKey:(NSString *)key inCollection:(NSString *)collection;
- (nullable SignedPreKeyRecord *)signedPreKeyRecordForKey:(NSString *)key inCollection:(NSString *)collection;
2015-12-07 03:31:43 +01:00
- (void)purgeCollection:(NSString *)collection;
@property (nullable, nonatomic, readonly) YapDatabaseConnection *dbReadConnection;
@property (nullable, nonatomic, readonly) YapDatabaseConnection *dbReadWriteConnection;
2015-12-07 03:31:43 +01:00
2017-11-28 19:46:26 +01:00
+ (void)migrateToSharedData;
+ (void)verifyDBKeysAvailableBeforeBackgroundLaunch;
2015-12-07 03:31:43 +01:00
@end
NS_ASSUME_NONNULL_END