Initial commit
This commit is contained in:
@ -0,0 +1,77 @@
|
||||
// This Source Code Form is subject to the terms of the Mozilla Public
|
||||
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
#import "OCTDefaultFileStorage.h"
|
||||
|
||||
@interface OCTDefaultFileStorage ()
|
||||
|
||||
@property (copy, nonatomic) NSString *saveFileName;
|
||||
@property (copy, nonatomic) NSString *baseDirectory;
|
||||
@property (copy, nonatomic) NSString *temporaryDirectory;
|
||||
|
||||
@end
|
||||
|
||||
@implementation OCTDefaultFileStorage
|
||||
|
||||
#pragma mark - Lifecycle
|
||||
|
||||
- (instancetype)initWithBaseDirectory:(NSString *)baseDirectory temporaryDirectory:(NSString *)temporaryDirectory
|
||||
{
|
||||
return [self initWithToxSaveFileName:nil baseDirectory:baseDirectory temporaryDirectory:temporaryDirectory];
|
||||
}
|
||||
|
||||
- (instancetype)initWithToxSaveFileName:(NSString *)saveFileName
|
||||
baseDirectory:(NSString *)baseDirectory
|
||||
temporaryDirectory:(NSString *)temporaryDirectory
|
||||
{
|
||||
self = [super init];
|
||||
|
||||
if (! self) {
|
||||
return nil;
|
||||
}
|
||||
|
||||
if (! saveFileName) {
|
||||
saveFileName = @"save";
|
||||
}
|
||||
|
||||
self.saveFileName = [saveFileName stringByAppendingString:@".tox"];
|
||||
self.baseDirectory = baseDirectory;
|
||||
self.temporaryDirectory = temporaryDirectory;
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
#pragma mark - OCTFileStorageProtocol
|
||||
|
||||
- (NSString *)pathForToxSaveFile
|
||||
{
|
||||
return [self.baseDirectory stringByAppendingPathComponent:self.saveFileName];
|
||||
}
|
||||
|
||||
- (NSString *)pathForDatabase
|
||||
{
|
||||
return [self.baseDirectory stringByAppendingPathComponent:@"database"];
|
||||
}
|
||||
|
||||
- (NSString *)pathForDatabaseEncryptionKey
|
||||
{
|
||||
return [self.baseDirectory stringByAppendingPathComponent:@"database.encryptionkey"];
|
||||
}
|
||||
|
||||
- (NSString *)pathForDownloadedFilesDirectory
|
||||
{
|
||||
return [self.baseDirectory stringByAppendingPathComponent:@"files"];
|
||||
}
|
||||
|
||||
- (NSString *)pathForUploadedFilesDirectory
|
||||
{
|
||||
return [self.baseDirectory stringByAppendingPathComponent:@"files"];
|
||||
}
|
||||
|
||||
- (NSString *)pathForTemporaryFilesDirectory
|
||||
{
|
||||
return self.temporaryDirectory;
|
||||
}
|
||||
|
||||
@end
|
@ -0,0 +1,51 @@
|
||||
// This Source Code Form is subject to the terms of the Mozilla Public
|
||||
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
#import "OCTManagerConfiguration.h"
|
||||
#import "OCTDefaultFileStorage.h"
|
||||
|
||||
static NSString *const kDefaultBaseDirectory = @"me.dvor.objcTox";
|
||||
|
||||
@implementation OCTManagerConfiguration
|
||||
|
||||
#pragma mark - Class methods
|
||||
|
||||
+ (instancetype)defaultConfiguration
|
||||
{
|
||||
OCTManagerConfiguration *configuration = [OCTManagerConfiguration new];
|
||||
|
||||
NSString *baseDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
|
||||
baseDirectory = [baseDirectory stringByAppendingPathComponent:kDefaultBaseDirectory];
|
||||
|
||||
[[NSFileManager defaultManager] createDirectoryAtPath:baseDirectory
|
||||
withIntermediateDirectories:YES
|
||||
attributes:nil
|
||||
error:nil];
|
||||
|
||||
configuration.fileStorage = [[OCTDefaultFileStorage alloc] initWithBaseDirectory:baseDirectory
|
||||
temporaryDirectory:NSTemporaryDirectory()];
|
||||
|
||||
configuration.options = [OCTToxOptions new];
|
||||
|
||||
configuration.importToxSaveFromPath = nil;
|
||||
configuration.useFauxOfflineMessaging = YES;
|
||||
|
||||
return configuration;
|
||||
}
|
||||
|
||||
#pragma mark - NSCopying
|
||||
|
||||
- (id)copyWithZone:(NSZone *)zone
|
||||
{
|
||||
OCTManagerConfiguration *configuration = [[[self class] allocWithZone:zone] init];
|
||||
|
||||
configuration.fileStorage = self.fileStorage;
|
||||
configuration.options = [self.options copy];
|
||||
configuration.importToxSaveFromPath = [self.importToxSaveFromPath copy];
|
||||
configuration.useFauxOfflineMessaging = self.useFauxOfflineMessaging;
|
||||
|
||||
return configuration;
|
||||
}
|
||||
|
||||
@end
|
Reference in New Issue
Block a user