// // ICRDataBaseController.h // XFFruit // // Created by Xummer on 4/5/15. // Copyright (c) 2015 Xummer. All rights reserved. // #import "IBTObject.h" #import "FMDB.h" typedef void (^ICRDatabaseUpdateBlock)(FMDatabase *db); typedef FMResultSet *(^ICRDatabaseFetchBlock)(FMDatabase *db); typedef void(^ICRDatabaseFetchResultsBlock)(NSArray *fetchedObjects); @protocol IBTDatabaseObject; @interface ICRDataBaseController : IBTObject + (instancetype)sharedController; + (NSString *)GetDataBasePath; + (void)CleanUpDBPath; #pragma mark - Storage - (void)storageEntities:(NSArray *)arrObjects objectClass:(Class)DBObjClass deleteLocal:(BOOL)bDeleteLocal handleData:(void (^)(id ))handleDataBlock complete:(void (^)(void))complete fail:(void (^)(NSError *))fail; - (void)storageEntities:(NSArray *)arrObjects objectClass:(Class)DBObjClass updateNil:(BOOL)bUpdateNil deleteLocal:(BOOL)bDeleteLocal handleData:(void (^)(id ))handleDataBlock complete:(void (^)(void))complete fail:(void (^)(NSError *))fail; - (void)storageEntity:(NSDictionary *)dictObject objectClass:(Class)DBObjClass handleData:(void (^)(id ))handleDataBlock complete:(void (^)(void))complete fail:(void (^)(NSError *))fail; - (void)storageDBObject:(id)dbObj handleData:(void (^)(id ))handleDataBlock complete:(void (^)(void))complete fail:(void (^)(NSError *))fail; #pragma mark - Query - (void)runFetchForClass:(Class)dbObjClass fetchBlock:(ICRDatabaseFetchBlock)fetchBlock fetchResultsBlock:(ICRDatabaseFetchResultsBlock)fetchResultBlock; @end