| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- //
- // FMDatabasePool.h
- // fmdb
- //
- // Created by August Mueller on 6/22/11.
- // Copyright 2011 Flying Meat Inc. All rights reserved.
- //
- #import <Foundation/Foundation.h>
- #import "sqlite3.h"
- @class FMDatabase;
- @interface FMDatabasePool : NSObject {
- NSString *_path;
-
- dispatch_queue_t _lockQueue;
-
- NSMutableArray *_databaseInPool;
- NSMutableArray *_databaseOutPool;
-
- __unsafe_unretained id _delegate;
-
- NSUInteger _maximumNumberOfDatabasesToCreate;
- }
- @property (retain) NSString *path;
- @property (assign) id delegate;
- @property (assign) NSUInteger maximumNumberOfDatabasesToCreate;
- + (id)databasePoolWithPath:(NSString*)aPath;
- - (id)initWithPath:(NSString*)aPath;
- - (void)pushDatabaseBackInPool:(FMDatabase*)db;
- - (FMDatabase*)db;
- - (NSUInteger)countOfCheckedInDatabases;
- - (NSUInteger)countOfCheckedOutDatabases;
- - (NSUInteger)countOfOpenDatabases;
- - (void)releaseAllDatabases;
- - (void)inDatabase:(void (^)(FMDatabase *db))block;
- - (void)inTransaction:(void (^)(FMDatabase *db, BOOL *rollback))block;
- - (void)inDeferredTransaction:(void (^)(FMDatabase *db, BOOL *rollback))block;
- #if SQLITE_VERSION_NUMBER >= 3007000
- // NOTE: you can not nest these, since calling it will pull another database out of the pool and you'll get a deadlock.
- // If you need to nest, use FMDatabase's startSavePointWithName:error: instead.
- - (NSError*)inSavePoint:(void (^)(FMDatabase *db, BOOL *rollback))block;
- #endif
- @end
- @interface NSObject (FMDatabasePoolDelegate)
- - (BOOL)databasePool:(FMDatabasePool*)pool shouldAddDatabaseToPool:(FMDatabase*)database;
- @end
|