mirror of
https://github.com/zhigang1992/transshift.git
synced 2026-06-11 16:50:01 +08:00
87 lines
1.8 KiB
Objective-C
87 lines
1.8 KiB
Objective-C
//
|
|
// RPCServerConfigDB.m
|
|
// TransmissionRPCClient
|
|
//
|
|
// Created by Alexey Chechetkin on 24.06.15.
|
|
// Copyright (c) 2015 Alexey Chechetkin. All rights reserved.
|
|
//
|
|
|
|
#import "RPCServerConfigDB.h"
|
|
|
|
|
|
@interface RPCServerConfigDB()
|
|
|
|
@property (nonatomic,readonly) NSString *dbFileName;
|
|
|
|
@end
|
|
|
|
// singlton for getting rpc data config
|
|
@implementation RPCServerConfigDB
|
|
|
|
{
|
|
NSMutableArray *_configData;
|
|
}
|
|
|
|
// returns shared instance of config
|
|
+ (RPCServerConfigDB*)sharedDB
|
|
{
|
|
static RPCServerConfigDB* _inst = nil;
|
|
|
|
static dispatch_once_t onceToken;
|
|
dispatch_once(&onceToken, ^{
|
|
_inst = [[RPCServerConfigDB alloc] initPrivate];
|
|
});
|
|
|
|
return _inst;
|
|
}
|
|
|
|
// closed init method
|
|
- (instancetype)init
|
|
{
|
|
@throw [NSException exceptionWithName:@"RPCServerConfigDB singlton" reason:@"RPCServerConfigDB : user singlton methods" userInfo:nil];
|
|
}
|
|
|
|
- (instancetype)initPrivate
|
|
{
|
|
self = [super init];
|
|
if( self )
|
|
{
|
|
_configData = [NSMutableArray array];
|
|
}
|
|
|
|
return self;
|
|
}
|
|
|
|
- (NSMutableArray *)db
|
|
{
|
|
return _configData;
|
|
}
|
|
|
|
- (NSString*)dbFileName
|
|
{
|
|
NSArray *arr = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
|
|
return [[arr firstObject] stringByAppendingPathComponent:@"RPCServerConfigDB"];
|
|
}
|
|
|
|
- (void)loadDB
|
|
{
|
|
NSString *filePath = self.dbFileName;
|
|
_configData = [NSKeyedUnarchiver unarchiveObjectWithFile:filePath];
|
|
if (!_configData)
|
|
{
|
|
NSLog( @"RPCServerConfigDB: Can't load db at path: %@", filePath );
|
|
_configData = [NSMutableArray array];
|
|
}
|
|
}
|
|
|
|
- (void)saveDB
|
|
{
|
|
NSString *filePath = self.dbFileName;
|
|
if( ![NSKeyedArchiver archiveRootObject:_configData toFile:filePath] )
|
|
{
|
|
NSLog( @"RPCServerConfigDB: Can't save db at path: %@", filePath );
|
|
}
|
|
}
|
|
|
|
@end
|