session-ios/src/Storage/TSStorageManager.h

57 lines
1.9 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 <Foundation/Foundation.h>
#import <YapDatabase/YapDatabase.h>
@class ECKeyPair;
@class PreKeyRecord;
@class SignedPreKeyRecord;
@class TSPrivacyPreferences;
2015-12-07 03:31:43 +01:00
extern NSString *const TSUIDatabaseConnectionDidUpdateNotification;
@interface TSStorageManager : NSObject
+ (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;
2015-12-07 03:31:43 +01:00
- (void)setupDatabase;
- (void)deleteThreadsAndMessages;
- (void)resetSignalStorage;
2015-12-07 03:31:43 +01:00
- (YapDatabase *)database;
- (YapDatabaseConnection *)newDatabaseConnection;
- (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;
- (NSDictionary *)dictionaryForKey:(NSString *)key inCollection:(NSString *)collection;
- (NSString *)stringForKey:(NSString *)key inCollection:(NSString *)collection;
- (NSData *)dataForKey:(NSString *)key inCollection:(NSString *)collection;
- (ECKeyPair *)keyPairForKey:(NSString *)key inCollection:(NSString *)collection;
- (PreKeyRecord *)preKeyRecordForKey:(NSString *)key inCollection:(NSString *)collection;
- (SignedPreKeyRecord *)signedPreKeyRecordForKey:(NSString *)key inCollection:(NSString *)collection;
- (void)purgeCollection:(NSString *)collection;
@property (nonatomic, readonly) YapDatabaseConnection *dbConnection;
@property (nonatomic, readonly) TSPrivacyPreferences *privacyPreferences;
2015-12-07 03:31:43 +01:00
@end