From 0f8b152b7433b23c98ef713533433a5becc5fe67 Mon Sep 17 00:00:00 2001 From: iska Date: Wed, 5 Aug 2015 21:11:58 +0200 Subject: [PATCH 01/76] Add .travis.yml file --- .travis.yml | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..57e3a9c --- /dev/null +++ b/.travis.yml @@ -0,0 +1,2 @@ +language: objective-c +osx_image: beta-xcode6.4 From 56ae66e08bf05bd6a59bb3a3cbf12ff13b55d59c Mon Sep 17 00:00:00 2001 From: iska Date: Wed, 5 Aug 2015 23:48:08 +0200 Subject: [PATCH 02/76] Add build and test scripts to travis.yml --- .travis.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 57e3a9c..f312ecc 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,2 +1,7 @@ language: objective-c -osx_image: beta-xcode6.4 +osx_image: xcode6.4 +script: +- xctool -project ObjectiveRocks.xcodeproj -scheme ObjectiveRocks -sdk macosx -configuration Release ONLY_ACTIVE_ARCH=NO +- xctool test -project ObjectiveRocks.xcodeproj -scheme ObjectiveRocksTests -sdk macosx ONLY_ACTIVE_ARCH=NO +- xctool -project ObjectiveRocks.xcodeproj -scheme ObjectiveRocks-iOS -sdk iphoneos -configuration Release ONLY_ACTIVE_ARCH=NO +- xctool test -project ObjectiveRocks.xcodeproj -scheme ObjectiveRocksTests-iOS -sdk iphonesimulator ONLY_ACTIVE_ARCH=NO From c713d23f89cc11854392898f952a556c22fb5786 Mon Sep 17 00:00:00 2001 From: iska Date: Thu, 6 Aug 2015 01:07:10 +0200 Subject: [PATCH 03/76] Fix tests for built-in number comparators --- ObjectiveRocksTests/RocksDBComparatorTests.mm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ObjectiveRocksTests/RocksDBComparatorTests.mm b/ObjectiveRocksTests/RocksDBComparatorTests.mm index d28683e..8191a73 100644 --- a/ObjectiveRocksTests/RocksDBComparatorTests.mm +++ b/ObjectiveRocksTests/RocksDBComparatorTests.mm @@ -200,11 +200,11 @@ - (void)testComparator_Number_Ascending } __block NSUInteger count = 0; - __block NSNumber *lastKey = [NSNumber numberWithUnsignedInt:0]; + __block NSNumber *lastKey = @(0); RocksDBIterator *iterator = [_rocks iterator]; [iterator enumerateKeysUsingBlock:^(id key, BOOL *stop) { - XCTAssertGreaterThan(key, lastKey); + XCTAssertGreaterThanOrEqual([key unsignedIntValue], [lastKey unsignedIntValue]); lastKey = key; count++; }]; @@ -240,11 +240,11 @@ - (void)testComparator_Number_Descending } __block NSUInteger count = 0; - __block NSNumber *lastKey = [NSNumber numberWithUnsignedInt:UINT32_MAX]; + __block NSNumber *lastKey = @(UINT32_MAX); RocksDBIterator *iterator = [_rocks iterator]; [iterator enumerateKeysUsingBlock:^(id key, BOOL *stop) { - XCTAssertLessThan(key, lastKey); + XCTAssertLessThanOrEqual([key unsignedIntValue], [lastKey unsignedIntValue]); lastKey = key; count++; }]; From 2a497fc0c60c6fbd221bc46c88e5ab837e8ec390 Mon Sep 17 00:00:00 2001 From: iska Date: Thu, 6 Aug 2015 01:07:36 +0200 Subject: [PATCH 04/76] Add Readme Travis-CI badge --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1ab0d30..86e1a3e 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# ObjectiveRocks +# ObjectiveRocks [![Build Status](https://travis-ci.org/iabudiab/ObjectiveRocks.svg?branch=develop)](https://travis-ci.org/iabudiab/ObjectiveRocks) ObjectiveRocks is an Objective-C wrapper of Facebook's [RocksDB](https://github.com/facebook/rocksdb) - A Persistent Key-Value Store for Flash and RAM Storage. From a34cab5d989b3d2dcf9fb0142723d3e7ed6fbf40 Mon Sep 17 00:00:00 2001 From: iska Date: Mon, 10 Aug 2015 03:59:48 +0200 Subject: [PATCH 05/76] Add DB initializers with read-only mode - RocksDB initializer methods were changed to class instead of instance methods to reduce redundancy. - All tests are refactored accordingly --- ObjectiveRocks/RocksDB.h | 77 +++++++---- ObjectiveRocks/RocksDB.mm | 124 +++++++++++++----- ObjectiveRocksTests/RocksDBBackupTests.mm | 20 +-- ObjectiveRocksTests/RocksDBBackupTests.swift | 20 +-- ObjectiveRocksTests/RocksDBBasicTests.mm | 8 +- ObjectiveRocksTests/RocksDBBasicTests.swift | 8 +- ObjectiveRocksTests/RocksDBCheckpointTests.mm | 6 +- .../RocksDBCheckpointTests.swift | 6 +- .../RocksDBColumnFamilyMetadataTests.mm | 2 +- .../RocksDBColumnFamilyMetadataTests.swift | 2 +- .../RocksDBColumnFamilyTests.mm | 22 ++-- .../RocksDBColumnFamilyTests.swift | 22 ++-- ObjectiveRocksTests/RocksDBComparatorTests.mm | 12 +- .../RocksDBComparatorTests.swift | 12 +- ObjectiveRocksTests/RocksDBIteratorTests.mm | 28 ++-- .../RocksDBIteratorTests.swift | 28 ++-- .../RocksDBMergeOperatorTests.mm | 8 +- .../RocksDBMergeOperatorTests.swift | 8 +- .../RocksDBPrefixExtractorTests.mm | 4 +- .../RocksDBPrefixExtractorTests.swift | 4 +- ObjectiveRocksTests/RocksDBPropertiesTests.mm | 4 +- .../RocksDBPropertiesTests.swift | 4 +- ObjectiveRocksTests/RocksDBSnapshotTests.mm | 6 +- .../RocksDBSnapshotTests.swift | 8 +- ObjectiveRocksTests/RocksDBStatisticsTests.mm | 6 +- .../RocksDBStatisticsTests.swift | 6 +- ObjectiveRocksTests/RocksDBWriteBatchTests.mm | 18 +-- .../RocksDBWriteBatchTests.swift | 18 +-- 28 files changed, 291 insertions(+), 200 deletions(-) diff --git a/ObjectiveRocks/RocksDB.h b/ObjectiveRocks/RocksDB.h index c8a7df9..508368f 100644 --- a/ObjectiveRocks/RocksDB.h +++ b/ObjectiveRocks/RocksDB.h @@ -24,23 +24,6 @@ /// @name Initializing the database ///-------------------------------- -/** - Intializes a DB instance with the given path. - - @discussion This method initializes the DB with the default Column Family, uses the - default DB and Column Family settings, and does not setup key/value encoders. - - @param path The path where the DB resides. - @return The newly-intializad DB instance with the given path and default settings. - - @see RocksDBOptions - @see RocksDBColumnFamily - - @warning When opening a DB in a read-write mode, you need to specify all Column Families - that currently exist in the DB. - */ -- (instancetype)initWithPath:(NSString *)path; - /** Intializes a DB instance with the given path and configured with the given options. @@ -59,8 +42,8 @@ @warning When opening a DB in a read-write mode, you need to specify all Column Families that currently exist in the DB. */ -- (instancetype)initWithPath:(NSString *)path - andDBOptions:(void (^)(RocksDBOptions *options))options; ++ (instancetype)databaseAtPath:(NSString *)path + andDBOptions:(void (^)(RocksDBOptions *options))options; /** Intializes a DB instance and opens the defined Column Families. @@ -84,9 +67,59 @@ @warning When opening a DB in a read-write mode, you need to specify all Column Families that currently exist in the DB. */ -- (instancetype)initWithPath:(NSString *)path - columnFamilies:(RocksDBColumnFamilyDescriptor *)descriptor - andDatabaseOptions:(void (^)(RocksDBDatabaseOptions *options))options; ++ (instancetype)databaseAtPath:(NSString *)path + columnFamilies:(RocksDBColumnFamilyDescriptor *)descriptor + andDatabaseOptions:(void (^)(RocksDBDatabaseOptions *options))options; + +#ifndef ROCKSDB_LITE + +/** + Intializes a DB instance for read-only with the given path and configured with the given options. + + @discussion This method initializes the DB for read-only mode with the default Column Family and + allows for configuring the DB via the RocksDBOptions block. The block gets a single argument, an + instance of `RocksDBOptions`, which is initialized with the default values and passed for + further tuning. If the options block is `nil`, then default settings will be used. + + All DB interfaces that modify data, like put/delete, will return error. In read-only mode no + compactions will happen. + + @param path The file path of the DB. + @param options A block with a single argument, an instance of `RocksDBOptions`. + @return The newly-intialized DB instance with the given path and options. + + @see RocksDBOptions + */ ++ (instancetype)databaseForReadOnlyAtPath:(NSString *)path + andDBOptions:(void (^)(RocksDBOptions *options))options; + +/** + Intializes a DB instance for read-only and opens the defined Column Families. + + @param path The file path of the database. + @param descriptor The descriptor holds the names and the options of the existing Column Families + in the DB. + @param options A block with a single argument, an instance of `RocksDBDatabaseOptions`, which can + be used to tune the DB configuration. + @return The newly-intialized DB instance with the given path and database options. Furthermore, the + DB instance also opens the defined Column Families. + + @see RocksDBColumnFamily + @see RocksDBColumnFamilyDescriptor + @see RocksDBOptions + @see RocksDBDatabaseOptions + + @remark The `RocksDBDatabaseOptions` differs from the `RocksDBOptions` as it holds only database-wide + configuration settings. + + @warning When opening DB with read only, it is possible to specify only a subset of column families + in the database that should be opened. However, default column family must specified. + */ ++ (instancetype)databaseForReadOnlyAtPath:(NSString *)path + columnFamilies:(RocksDBColumnFamilyDescriptor *)descriptor + andDatabaseOptions:(void (^)(RocksDBDatabaseOptions *options))options; + +#endif /** @brief Closes the database instance */ - (void)close; diff --git a/ObjectiveRocks/RocksDB.mm b/ObjectiveRocks/RocksDB.mm index 40f3044..b8eb12d 100644 --- a/ObjectiveRocks/RocksDB.mm +++ b/ObjectiveRocks/RocksDB.mm @@ -88,49 +88,83 @@ @implementation RocksDB #pragma mark - Lifecycle -- (instancetype)initWithPath:(NSString *)path ++ (instancetype)databaseAtPath:(NSString *)path andDBOptions:(void (^)(RocksDBOptions *))optionsBlock { - return [self initWithPath:path andDBOptions:nil]; + RocksDB *rocks = [[RocksDB alloc] initWithPath:path]; + + if (optionsBlock) { + optionsBlock(rocks.options); + } + + if ([rocks openDatabaseReadOnly:NO] == NO) { + return nil; + } + return rocks; } -- (instancetype)initWithPath:(NSString *)path andDBOptions:(void (^)(RocksDBOptions *))optionsBlock ++ (instancetype)databaseAtPath:(NSString *)path + columnFamilies:(RocksDBColumnFamilyDescriptor *)descriptor + andDatabaseOptions:(void (^)(RocksDBDatabaseOptions *options))optionsBlock { - self = [super init]; - if (self) { - _path = [path copy]; - _options = [RocksDBOptions new]; - if (optionsBlock) { - optionsBlock(_options); - } + RocksDB *rocks = [[RocksDB alloc] initWithPath:path]; - if ([self openColumnFamilies:nil] == NO) { - return nil; - } - [self setDefaultReadOptions:nil andWriteOptions:nil]; + RocksDBDatabaseOptions *dbOptions = [RocksDBDatabaseOptions new]; + if (optionsBlock) { + optionsBlock(dbOptions); } - return self; + rocks.options.databaseOptions = dbOptions; + + if ([rocks openColumnFamilies:descriptor readOnly:NO] == NO) { + return nil; + } + return rocks; +} + +#ifndef ROCKSDB_LITE + ++ (instancetype)databaseForReadOnlyAtPath:(NSString *)path + andDBOptions:(void (^)(RocksDBOptions *options))optionsBlock +{ + RocksDB *rocks = [[RocksDB alloc] initWithPath:path]; + + if (optionsBlock) { + optionsBlock(rocks.options); + } + + if ([rocks openDatabaseReadOnly:YES] == NO) { + return nil; + } + return rocks; +} + ++ (instancetype)databaseForReadOnlyAtPath:(NSString *)path + columnFamilies:(RocksDBColumnFamilyDescriptor *)descriptor + andDatabaseOptions:(void (^)(RocksDBDatabaseOptions *options))optionsBlock +{ + RocksDB *rocks = [[RocksDB alloc] initWithPath:path]; + + RocksDBDatabaseOptions *dbOptions = [RocksDBDatabaseOptions new]; + if (optionsBlock) { + optionsBlock(dbOptions); + } + rocks.options.databaseOptions = dbOptions; + + if ([rocks openColumnFamilies:descriptor readOnly:YES] == NO) { + return nil; + } + return rocks; } +#endif + - (instancetype)initWithPath:(NSString *)path - columnFamilies:(RocksDBColumnFamilyDescriptor *)descriptor - andDatabaseOptions:(void (^)(RocksDBDatabaseOptions *options))optionsBlock { self = [super init]; if (self) { _path = [path copy]; - - RocksDBDatabaseOptions *dbOptions = [RocksDBDatabaseOptions new]; - if (optionsBlock) { - optionsBlock(dbOptions); - } - _options = [RocksDBOptions new]; - _options.databaseOptions = dbOptions; - - if ([self openColumnFamilies:descriptor] == NO) { - return nil; - } - [self setDefaultReadOptions:nil andWriteOptions:nil]; + _readOptions = [RocksDBReadOptions new]; + _writeOptions = [RocksDBWriteOptions new]; } return self; } @@ -159,14 +193,38 @@ - (void)close #pragma mark - Open -- (BOOL)openColumnFamilies:(RocksDBColumnFamilyDescriptor *)descriptor +- (BOOL)openDatabaseReadOnly:(BOOL)readOnly { rocksdb::Status status; - if (descriptor == nil) { + if (readOnly) { + status = rocksdb::DB::OpenForReadOnly(_options.options, _path.UTF8String, &_db); + } else { status = rocksdb::DB::Open(_options.options, _path.UTF8String, &_db); + } + + if (!status.ok()) { + NSLog(@"Error opening database: %@", [RocksDBError errorWithRocksStatus:status]); + [self close]; + return NO; + } + _columnFamily = _db->DefaultColumnFamily(); + + return YES; +} + +- (BOOL)openColumnFamilies:(RocksDBColumnFamilyDescriptor *)descriptor readOnly:(BOOL)readOnly +{ + rocksdb::Status status; + std::vector *columnFamilies = descriptor.columnFamilies; + _columnFamilyHandles = new std::vector; + + if (readOnly) { + status = rocksdb::DB::OpenForReadOnly(_options.options, + _path.UTF8String, + *columnFamilies, + _columnFamilyHandles, + &_db); } else { - std::vector *columnFamilies = descriptor.columnFamilies; - _columnFamilyHandles = new std::vector; status = rocksdb::DB::Open(_options.options, _path.UTF8String, *columnFamilies, diff --git a/ObjectiveRocksTests/RocksDBBackupTests.mm b/ObjectiveRocksTests/RocksDBBackupTests.mm index 9d10fa0..5671950 100644 --- a/ObjectiveRocksTests/RocksDBBackupTests.mm +++ b/ObjectiveRocksTests/RocksDBBackupTests.mm @@ -16,7 +16,7 @@ @implementation RocksDBBackupTests - (void)testBackup_Create { - _rocks = [[RocksDB alloc] initWithPath:_path andDBOptions:^(RocksDBOptions *options) { + _rocks = [RocksDB databaseAtPath:_path andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; }]; @@ -37,7 +37,7 @@ - (void)testBackup_Create - (void)testBackup_BackupInfo { - _rocks = [[RocksDB alloc] initWithPath:_path andDBOptions:^(RocksDBOptions *options) { + _rocks = [RocksDB databaseAtPath:_path andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; }]; @@ -63,7 +63,7 @@ - (void)testBackup_BackupInfo - (void)testBackup_BackupInfo_Multiple { - _rocks = [[RocksDB alloc] initWithPath:_path andDBOptions:^(RocksDBOptions *options) { + _rocks = [RocksDB databaseAtPath:_path andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; }]; @@ -92,7 +92,7 @@ - (void)testBackup_BackupInfo_Multiple - (void)testBackup_PurgeBackups { - _rocks = [[RocksDB alloc] initWithPath:_path andDBOptions:^(RocksDBOptions *options) { + _rocks = [RocksDB databaseAtPath:_path andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; }]; @@ -122,7 +122,7 @@ - (void)testBackup_PurgeBackups - (void)testBackup_DeleteBackup { - _rocks = [[RocksDB alloc] initWithPath:_path andDBOptions:^(RocksDBOptions *options) { + _rocks = [RocksDB databaseAtPath:_path andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; }]; @@ -152,7 +152,7 @@ - (void)testBackup_DeleteBackup - (void)testBackup_Restore { - _rocks = [[RocksDB alloc] initWithPath:_path andDBOptions:^(RocksDBOptions *options) { + _rocks = [RocksDB databaseAtPath:_path andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; }]; @@ -172,7 +172,7 @@ - (void)testBackup_Restore [backupEngine restoreBackupToDestinationPath:_restorePath error:nil]; - RocksDB *backupRocks = [[RocksDB alloc] initWithPath:_restorePath]; + RocksDB *backupRocks = [RocksDB databaseAtPath:_restorePath]; XCTAssertEqualObjects([backupRocks dataForKey:Data(@"key 1")], Data(@"value 1")); XCTAssertEqualObjects([backupRocks dataForKey:Data(@"key 2")], Data(@"value 2")); @@ -183,7 +183,7 @@ - (void)testBackup_Restore - (void)testBackup_Restore_Specific { - _rocks = [[RocksDB alloc] initWithPath:_path andDBOptions:^(RocksDBOptions *options) { + _rocks = [RocksDB databaseAtPath:_path andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; }]; @@ -202,7 +202,7 @@ - (void)testBackup_Restore_Specific [backupEngine restoreBackupWithId:1 toDestinationPath:_restorePath error:nil]; - RocksDB *backupRocks = [[RocksDB alloc] initWithPath:_restorePath]; + RocksDB *backupRocks = [RocksDB databaseAtPath:_restorePath]; XCTAssertEqualObjects([backupRocks dataForKey:Data(@"key 1")], Data(@"value 1")); XCTAssertEqualObjects([backupRocks dataForKey:Data(@"key 2")], nil); @@ -212,7 +212,7 @@ - (void)testBackup_Restore_Specific [backupEngine restoreBackupWithId:2 toDestinationPath:_restorePath error:nil]; - backupRocks = [[RocksDB alloc] initWithPath:_restorePath]; + backupRocks = [RocksDB databaseAtPath:_restorePath]; XCTAssertEqualObjects([backupRocks dataForKey:Data(@"key 1")], Data(@"value 1")); XCTAssertEqualObjects([backupRocks dataForKey:Data(@"key 2")], Data(@"value 2")); diff --git a/ObjectiveRocksTests/RocksDBBackupTests.swift b/ObjectiveRocksTests/RocksDBBackupTests.swift index decb9dc..a61dbcc 100644 --- a/ObjectiveRocksTests/RocksDBBackupTests.swift +++ b/ObjectiveRocksTests/RocksDBBackupTests.swift @@ -11,7 +11,7 @@ import XCTest class RocksDBBackupTests : RocksDBTests { func testSwift_Backup_Create() { - rocks = RocksDB(path: self.path, andDBOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.path, andDBOptions: { (options) -> Void in options.createIfMissing = true }) @@ -30,7 +30,7 @@ class RocksDBBackupTests : RocksDBTests { } func testSwift_Backup_BackupInfo() { - rocks = RocksDB(path: self.path, andDBOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.path, andDBOptions: { (options) -> Void in options.createIfMissing = true }) @@ -55,7 +55,7 @@ class RocksDBBackupTests : RocksDBTests { } func testSwift_Backup_BackupInfo_Multiple() { - rocks = RocksDB(path: self.path, andDBOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.path, andDBOptions: { (options) -> Void in options.createIfMissing = true }) @@ -83,7 +83,7 @@ class RocksDBBackupTests : RocksDBTests { } func testSwift_Backup_PurgeBackups() { - rocks = RocksDB(path: self.path, andDBOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.path, andDBOptions: { (options) -> Void in options.createIfMissing = true }) @@ -112,7 +112,7 @@ class RocksDBBackupTests : RocksDBTests { } func testSwift_Backup_DeleteBackup() { - rocks = RocksDB(path: self.path, andDBOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.path, andDBOptions: { (options) -> Void in options.createIfMissing = true }) @@ -141,7 +141,7 @@ class RocksDBBackupTests : RocksDBTests { } func testSwift_Backup_Restore() { - rocks = RocksDB(path: self.path, andDBOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.path, andDBOptions: { (options) -> Void in options.createIfMissing = true }) @@ -161,7 +161,7 @@ class RocksDBBackupTests : RocksDBTests { backupEngine.restoreBackupToDestinationPath(self.restorePath, error: nil) - let backupRocks = RocksDB(path: restorePath) + let backupRocks = RocksDB.databaseAtPath(restorePath) XCTAssertEqual(backupRocks.dataForKey(Data("key 1")), Data("value 1")) XCTAssertEqual(backupRocks.dataForKey(Data("key 2")), Data("value 2")) @@ -171,7 +171,7 @@ class RocksDBBackupTests : RocksDBTests { } func testSwift_Backup_Restore_Specific() { - rocks = RocksDB(path: self.path, andDBOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.path, andDBOptions: { (options) -> Void in options.createIfMissing = true }) @@ -190,7 +190,7 @@ class RocksDBBackupTests : RocksDBTests { backupEngine.restoreBackupWithId(1, toDestinationPath: self.restorePath, error: nil) - var backupRocks = RocksDB(path: restorePath) + var backupRocks = RocksDB.databaseAtPath(restorePath) XCTAssertEqual(backupRocks.dataForKey(Data("key 1")), Data("value 1")) XCTAssertNil(backupRocks.dataForKey(Data("key 2"))) @@ -200,7 +200,7 @@ class RocksDBBackupTests : RocksDBTests { backupEngine.restoreBackupWithId(2, toDestinationPath: self.restorePath, error: nil) - backupRocks = RocksDB(path: restorePath) + backupRocks = RocksDB.databaseAtPath(restorePath) XCTAssertEqual(backupRocks.dataForKey(Data("key 1")), Data("value 1")) XCTAssertEqual(backupRocks.dataForKey(Data("key 2")), Data("value 2")) diff --git a/ObjectiveRocksTests/RocksDBBasicTests.mm b/ObjectiveRocksTests/RocksDBBasicTests.mm index 3c9a54d..d46e29a 100644 --- a/ObjectiveRocksTests/RocksDBBasicTests.mm +++ b/ObjectiveRocksTests/RocksDBBasicTests.mm @@ -16,12 +16,12 @@ @implementation RocksDBBasicTests - (void)testDB_Open_ErrorIfExists { - _rocks = [[RocksDB alloc] initWithPath:_path andDBOptions:^(RocksDBOptions *options) { + _rocks = [RocksDB databaseAtPath:_path andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; }]; [_rocks close]; - RocksDB *db = [[RocksDB alloc] initWithPath:_path andDBOptions:^(RocksDBOptions *options) { + RocksDB *db = [RocksDB databaseAtPath:_path andDBOptions:^(RocksDBOptions *options) { options.errorIfExists = YES; }]; @@ -30,7 +30,7 @@ - (void)testDB_Open_ErrorIfExists - (void)testDB_CRUD { - _rocks = [[RocksDB alloc] initWithPath:_path andDBOptions:^(RocksDBOptions *options) { + _rocks = [RocksDB databaseAtPath:_path andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; }]; [_rocks setDefaultReadOptions:^(RocksDBReadOptions *readOptions) { @@ -60,7 +60,7 @@ - (void)testDB_CRUD - (void)testDB_CRUD_Encoded { - _rocks = [[RocksDB alloc] initWithPath:_path andDBOptions:^(RocksDBOptions *options) { + _rocks = [RocksDB databaseAtPath:_path andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; options.keyType = RocksDBTypeNSString; options.valueType = RocksDBTypeNSString; diff --git a/ObjectiveRocksTests/RocksDBBasicTests.swift b/ObjectiveRocksTests/RocksDBBasicTests.swift index 9231f1f..664ae99 100644 --- a/ObjectiveRocksTests/RocksDBBasicTests.swift +++ b/ObjectiveRocksTests/RocksDBBasicTests.swift @@ -11,12 +11,12 @@ import XCTest class RocksDBBasicTests : RocksDBTests { func testSwift_DB_Open_ErrorIfExists() { - rocks = RocksDB(path: self.path, andDBOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.path, andDBOptions: { (options) -> Void in options.createIfMissing = true }) rocks.close() - let db = RocksDB(path: self.path, andDBOptions: { (options) -> Void in + let db = RocksDB.databaseAtPath(self.path, andDBOptions: { (options) -> Void in options.errorIfExists = true }) @@ -24,7 +24,7 @@ class RocksDBBasicTests : RocksDBTests { } func testSwift_DB_CRUD() { - rocks = RocksDB(path: self.path, andDBOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.path, andDBOptions: { (options) -> Void in options.createIfMissing = true }) rocks.setDefaultReadOptions({ (readOptions) -> Void in @@ -52,7 +52,7 @@ class RocksDBBasicTests : RocksDBTests { } func testSwift_DB_CRUD_Encoded() { - rocks = RocksDB(path: self.path, andDBOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.path, andDBOptions: { (options) -> Void in options.createIfMissing = true options.keyType = .NSString options.valueType = .NSString diff --git a/ObjectiveRocksTests/RocksDBCheckpointTests.mm b/ObjectiveRocksTests/RocksDBCheckpointTests.mm index 29467a3..891bb2e 100644 --- a/ObjectiveRocksTests/RocksDBCheckpointTests.mm +++ b/ObjectiveRocksTests/RocksDBCheckpointTests.mm @@ -16,7 +16,7 @@ @implementation RocksDBCheckpointTests - (void)testCheckpoint { - _rocks = [[RocksDB alloc] initWithPath:_path andDBOptions:^(RocksDBOptions *options) { + _rocks = [RocksDB databaseAtPath:_path andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; }]; @@ -32,7 +32,7 @@ - (void)testCheckpoint [_rocks close]; - _rocks = [[RocksDB alloc] initWithPath:_chekpointPath_1 andDBOptions:^(RocksDBOptions *options) { + _rocks = [RocksDB databaseAtPath:_chekpointPath_1 andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; }]; @@ -41,7 +41,7 @@ - (void)testCheckpoint [_rocks close]; - _rocks = [[RocksDB alloc] initWithPath:_chekpointPath_2 andDBOptions:^(RocksDBOptions *options) { + _rocks = [RocksDB databaseAtPath:_chekpointPath_2 andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; }]; diff --git a/ObjectiveRocksTests/RocksDBCheckpointTests.swift b/ObjectiveRocksTests/RocksDBCheckpointTests.swift index dc02dc6..74bba27 100644 --- a/ObjectiveRocksTests/RocksDBCheckpointTests.swift +++ b/ObjectiveRocksTests/RocksDBCheckpointTests.swift @@ -11,7 +11,7 @@ import XCTest class RocksDBCheckpointTests : RocksDBTests { func testSwift_Checkpoint() { - rocks = RocksDB(path: self.path, andDBOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.path, andDBOptions: { (options) -> Void in options.createIfMissing = true }) @@ -27,7 +27,7 @@ class RocksDBCheckpointTests : RocksDBTests { rocks.close() - rocks = RocksDB(path: self.checkpointPath1, andDBOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.checkpointPath1, andDBOptions: { (options) -> Void in options.createIfMissing = true }) @@ -36,7 +36,7 @@ class RocksDBCheckpointTests : RocksDBTests { rocks.close() - rocks = RocksDB(path: self.checkpointPath2, andDBOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.checkpointPath2, andDBOptions: { (options) -> Void in options.createIfMissing = true }) diff --git a/ObjectiveRocksTests/RocksDBColumnFamilyMetadataTests.mm b/ObjectiveRocksTests/RocksDBColumnFamilyMetadataTests.mm index 65f84ea..9c7fbf5 100644 --- a/ObjectiveRocksTests/RocksDBColumnFamilyMetadataTests.mm +++ b/ObjectiveRocksTests/RocksDBColumnFamilyMetadataTests.mm @@ -20,7 +20,7 @@ - (void)testColumnFamilies_Metadata [descriptor addDefaultColumnFamilyWithOptions:nil]; [descriptor addColumnFamilyWithName:@"new_cf" andOptions:nil]; - _rocks = [[RocksDB alloc] initWithPath:_path columnFamilies:descriptor andDatabaseOptions:^(RocksDBDatabaseOptions *options) { + _rocks = [RocksDB databaseAtPath:_path columnFamilies:descriptor andDatabaseOptions:^(RocksDBDatabaseOptions *options) { options.createIfMissing = YES; options.createMissingColumnFamilies = YES; }]; diff --git a/ObjectiveRocksTests/RocksDBColumnFamilyMetadataTests.swift b/ObjectiveRocksTests/RocksDBColumnFamilyMetadataTests.swift index 07e1d13..69e660c 100644 --- a/ObjectiveRocksTests/RocksDBColumnFamilyMetadataTests.swift +++ b/ObjectiveRocksTests/RocksDBColumnFamilyMetadataTests.swift @@ -15,7 +15,7 @@ class RocksDBColumnFamilyMetadataTests : RocksDBTests { descriptor.addDefaultColumnFamilyWithOptions(nil) descriptor.addColumnFamilyWithName("new_cf", andOptions: nil) - rocks = RocksDB(path: self.path, columnFamilies: descriptor, andDatabaseOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.path, columnFamilies: descriptor, andDatabaseOptions: { (options) -> Void in options.createIfMissing = true options.createMissingColumnFamilies = true }) diff --git a/ObjectiveRocksTests/RocksDBColumnFamilyTests.mm b/ObjectiveRocksTests/RocksDBColumnFamilyTests.mm index 8eab380..7365da7 100644 --- a/ObjectiveRocksTests/RocksDBColumnFamilyTests.mm +++ b/ObjectiveRocksTests/RocksDBColumnFamilyTests.mm @@ -16,7 +16,7 @@ @implementation RocksDBColumnFamilyTests - (void)testColumnFamilies_List { - _rocks = [[RocksDB alloc] initWithPath:_path andDBOptions:^(RocksDBOptions *options) { + _rocks = [RocksDB databaseAtPath:_path andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; }]; [_rocks close]; @@ -29,7 +29,7 @@ - (void)testColumnFamilies_List - (void)testColumnFamilies_Create { - _rocks = [[RocksDB alloc] initWithPath:_path andDBOptions:^(RocksDBOptions *options) { + _rocks = [RocksDB databaseAtPath:_path andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; }]; @@ -47,7 +47,7 @@ - (void)testColumnFamilies_Create - (void)testColumnFamilies_Drop { - _rocks = [[RocksDB alloc] initWithPath:_path andDBOptions:^(RocksDBOptions *options) { + _rocks = [RocksDB databaseAtPath:_path andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; }]; @@ -65,7 +65,7 @@ - (void)testColumnFamilies_Drop - (void)testColumnFamilies_Open { - _rocks = [[RocksDB alloc] initWithPath:_path andDBOptions:^(RocksDBOptions *options) { + _rocks = [RocksDB databaseAtPath:_path andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; options.comparator = [RocksDBComparator comaparatorWithType:RocksDBComparatorStringCompareAscending]; }]; @@ -91,7 +91,7 @@ - (void)testColumnFamilies_Open options.comparator = [RocksDBComparator comaparatorWithType:RocksDBComparatorBytewiseDescending]; }]; - _rocks = [[RocksDB alloc] initWithPath:_path columnFamilies:descriptor andDatabaseOptions:^(RocksDBDatabaseOptions *options) { + _rocks = [RocksDB databaseAtPath:_path columnFamilies:descriptor andDatabaseOptions:^(RocksDBDatabaseOptions *options) { options.createIfMissing = YES; }]; @@ -111,7 +111,7 @@ - (void)testColumnFamilies_Open - (void)testColumnFamilies_Open_ComparatorMismatch { - _rocks = [[RocksDB alloc] initWithPath:_path andDBOptions:^(RocksDBOptions *options) { + _rocks = [RocksDB databaseAtPath:_path andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; options.comparator = [RocksDBComparator comaparatorWithType:RocksDBComparatorStringCompareAscending]; }]; @@ -137,7 +137,7 @@ - (void)testColumnFamilies_Open_ComparatorMismatch options.comparator = [RocksDBComparator comaparatorWithType:RocksDBComparatorStringCompareAscending]; }]; - _rocks = [[RocksDB alloc] initWithPath:_path columnFamilies:descriptor andDatabaseOptions:^(RocksDBDatabaseOptions *options) { + _rocks = [RocksDB databaseAtPath:_path columnFamilies:descriptor andDatabaseOptions:^(RocksDBDatabaseOptions *options) { options.createIfMissing = YES; }]; @@ -146,7 +146,7 @@ - (void)testColumnFamilies_Open_ComparatorMismatch - (void)testColumnFamilies_CRUD { - _rocks = [[RocksDB alloc] initWithPath:_path andDBOptions:^(RocksDBOptions *options) { + _rocks = [RocksDB databaseAtPath:_path andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; }]; @@ -165,7 +165,7 @@ - (void)testColumnFamilies_CRUD [descriptor addDefaultColumnFamilyWithOptions:nil]; [descriptor addColumnFamilyWithName:@"new_cf" andOptions:nil]; - _rocks = [[RocksDB alloc] initWithPath:_path columnFamilies:descriptor andDatabaseOptions:^(RocksDBDatabaseOptions *options) { + _rocks = [RocksDB databaseAtPath:_path columnFamilies:descriptor andDatabaseOptions:^(RocksDBDatabaseOptions *options) { options.createIfMissing = YES; }]; @@ -205,7 +205,7 @@ - (void)testColumnFamilies_WriteBatch [descriptor addDefaultColumnFamilyWithOptions:nil]; [descriptor addColumnFamilyWithName:@"new_cf" andOptions:nil]; - _rocks = [[RocksDB alloc] initWithPath:_path columnFamilies:descriptor andDatabaseOptions:^(RocksDBDatabaseOptions *options) { + _rocks = [RocksDB databaseAtPath:_path columnFamilies:descriptor andDatabaseOptions:^(RocksDBDatabaseOptions *options) { options.createIfMissing = YES; options.createMissingColumnFamilies = YES; }]; @@ -246,7 +246,7 @@ - (void)testColumnFamilies_Iterator [descriptor addDefaultColumnFamilyWithOptions:nil]; [descriptor addColumnFamilyWithName:@"new_cf" andOptions:nil]; - _rocks = [[RocksDB alloc] initWithPath:_path columnFamilies:descriptor andDatabaseOptions:^(RocksDBDatabaseOptions *options) { + _rocks = [RocksDB databaseAtPath:_path columnFamilies:descriptor andDatabaseOptions:^(RocksDBDatabaseOptions *options) { options.createIfMissing = YES; options.createMissingColumnFamilies = YES; }]; diff --git a/ObjectiveRocksTests/RocksDBColumnFamilyTests.swift b/ObjectiveRocksTests/RocksDBColumnFamilyTests.swift index e9e00a1..cce5771 100644 --- a/ObjectiveRocksTests/RocksDBColumnFamilyTests.swift +++ b/ObjectiveRocksTests/RocksDBColumnFamilyTests.swift @@ -11,7 +11,7 @@ import XCTest class RocksDBColumnFamilyTests : RocksDBTests { func testSwift_ColumnFamilies_List() { - rocks = RocksDB(path: self.path, andDBOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.path, andDBOptions: { (options) -> Void in options.createIfMissing = true }) @@ -24,7 +24,7 @@ class RocksDBColumnFamilyTests : RocksDBTests { } func testSwift_ColumnFamilies_Create() { - rocks = RocksDB(path: self.path, andDBOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.path, andDBOptions: { (options) -> Void in options.createIfMissing = true }) @@ -40,7 +40,7 @@ class RocksDBColumnFamilyTests : RocksDBTests { } func testSwift_ColumnFamilies_Drop() { - rocks = RocksDB(path: self.path, andDBOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.path, andDBOptions: { (options) -> Void in options.createIfMissing = true }) @@ -56,7 +56,7 @@ class RocksDBColumnFamilyTests : RocksDBTests { } func testSwift_ColumnFamilies_Open() { - rocks = RocksDB(path: self.path, andDBOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.path, andDBOptions: { (options) -> Void in options.createIfMissing = true options.comparator = RocksDBComparator.comaparatorWithType(.StringCompareAscending) }) @@ -84,7 +84,7 @@ class RocksDBColumnFamilyTests : RocksDBTests { options.comparator = RocksDBComparator.comaparatorWithType(.BytewiseDescending) }) - rocks = RocksDB(path: self.path, columnFamilies: descriptor, andDatabaseOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.path, columnFamilies: descriptor, andDatabaseOptions: { (options) -> Void in options.createIfMissing = true }) @@ -103,7 +103,7 @@ class RocksDBColumnFamilyTests : RocksDBTests { } func testSwift_ColumnFamilies_Open_ComparatorMismatch() { - rocks = RocksDB(path: self.path, andDBOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.path, andDBOptions: { (options) -> Void in options.createIfMissing = true options.comparator = RocksDBComparator.comaparatorWithType(.StringCompareAscending) }) @@ -131,7 +131,7 @@ class RocksDBColumnFamilyTests : RocksDBTests { options.comparator = RocksDBComparator.comaparatorWithType(.StringCompareAscending) }) - rocks = RocksDB(path: self.path, columnFamilies: descriptor, andDatabaseOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.path, columnFamilies: descriptor, andDatabaseOptions: { (options) -> Void in options.createIfMissing = true }) @@ -139,7 +139,7 @@ class RocksDBColumnFamilyTests : RocksDBTests { } func testSwift_ColumnFamilies_CRUD() { - rocks = RocksDB(path: self.path, andDBOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.path, andDBOptions: { (options) -> Void in options.createIfMissing = true }) @@ -160,7 +160,7 @@ class RocksDBColumnFamilyTests : RocksDBTests { descriptor.addDefaultColumnFamilyWithOptions(nil) descriptor.addColumnFamilyWithName("new_cf", andOptions: nil) - rocks = RocksDB(path: self.path, columnFamilies: descriptor, andDatabaseOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.path, columnFamilies: descriptor, andDatabaseOptions: { (options) -> Void in options.createIfMissing = true options.createMissingColumnFamilies = true }) @@ -201,7 +201,7 @@ class RocksDBColumnFamilyTests : RocksDBTests { descriptor.addDefaultColumnFamilyWithOptions(nil) descriptor.addColumnFamilyWithName("new_cf", andOptions: nil) - rocks = RocksDB(path: self.path, columnFamilies: descriptor, andDatabaseOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.path, columnFamilies: descriptor, andDatabaseOptions: { (options) -> Void in options.createIfMissing = true options.createMissingColumnFamilies = true }) @@ -242,7 +242,7 @@ class RocksDBColumnFamilyTests : RocksDBTests { descriptor.addDefaultColumnFamilyWithOptions(nil) descriptor.addColumnFamilyWithName("new_cf", andOptions: nil) - rocks = RocksDB(path: self.path, columnFamilies: descriptor, andDatabaseOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.path, columnFamilies: descriptor, andDatabaseOptions: { (options) -> Void in options.createIfMissing = true options.createMissingColumnFamilies = true }) diff --git a/ObjectiveRocksTests/RocksDBComparatorTests.mm b/ObjectiveRocksTests/RocksDBComparatorTests.mm index 8191a73..35715db 100644 --- a/ObjectiveRocksTests/RocksDBComparatorTests.mm +++ b/ObjectiveRocksTests/RocksDBComparatorTests.mm @@ -16,7 +16,7 @@ @implementation RocksDBComparatorTests - (void)testComparator_Native_Bytewise_Ascending { - _rocks = [[RocksDB alloc] initWithPath:_path andDBOptions:^(RocksDBOptions *options) { + _rocks = [RocksDB databaseAtPath:_path andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; options.comparator = [RocksDBComparator comaparatorWithType:RocksDBComparatorBytewiseAscending]; }]; @@ -66,7 +66,7 @@ - (void)testComparator_Native_Bytewise_Ascending - (void)testComparator_Native_Bytewise_Descending { - _rocks = [[RocksDB alloc] initWithPath:_path andDBOptions:^(RocksDBOptions *options) { + _rocks = [RocksDB databaseAtPath:_path andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; options.comparator = [RocksDBComparator comaparatorWithType:RocksDBComparatorBytewiseDescending]; }]; @@ -120,7 +120,7 @@ - (void)testComparator_Native_Bytewise_Descending - (void)testComparator_StringCompare_Ascending { - _rocks = [[RocksDB alloc] initWithPath:_path andDBOptions:^(RocksDBOptions *options) { + _rocks = [RocksDB databaseAtPath:_path andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; options.comparator = [RocksDBComparator comaparatorWithType:RocksDBComparatorStringCompareAscending]; options.keyType = RocksDBTypeNSString; @@ -147,7 +147,7 @@ - (void)testComparator_StringCompare_Ascending - (void)testComparator_StringCompare_Descending { - _rocks = [[RocksDB alloc] initWithPath:_path andDBOptions:^(RocksDBOptions *options) { + _rocks = [RocksDB databaseAtPath:_path andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; options.comparator = [RocksDBComparator comaparatorWithType:RocksDBComparatorStringCompareDescending]; options.keyType = RocksDBTypeNSString; @@ -174,7 +174,7 @@ - (void)testComparator_StringCompare_Descending - (void)testComparator_Number_Ascending { - _rocks = [[RocksDB alloc] initWithPath:_path andDBOptions:^(RocksDBOptions *options) { + _rocks = [RocksDB databaseAtPath:_path andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; options.comparator = [RocksDBComparator comaparatorWithType:RocksDBComparatorNumberAscending]; @@ -214,7 +214,7 @@ - (void)testComparator_Number_Ascending - (void)testComparator_Number_Descending { - _rocks = [[RocksDB alloc] initWithPath:_path andDBOptions:^(RocksDBOptions *options) { + _rocks = [RocksDB databaseAtPath:_path andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; options.comparator = [RocksDBComparator comaparatorWithType:RocksDBComparatorNumberDescending]; diff --git a/ObjectiveRocksTests/RocksDBComparatorTests.swift b/ObjectiveRocksTests/RocksDBComparatorTests.swift index 6df1f11..a276cab 100644 --- a/ObjectiveRocksTests/RocksDBComparatorTests.swift +++ b/ObjectiveRocksTests/RocksDBComparatorTests.swift @@ -11,7 +11,7 @@ import XCTest class RocksDBComparatorTests : RocksDBTests { func testSwift_Comparator_Native_Bytewise_Ascending() { - rocks = RocksDB(path: self.path, andDBOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.path, andDBOptions: { (options) -> Void in options.createIfMissing = true options.comparator = RocksDBComparator.comaparatorWithType(.BytewiseAscending) }) @@ -60,7 +60,7 @@ class RocksDBComparatorTests : RocksDBTests { } func testSwift_Comparator_Native_Bytewise_Descending() { - rocks = RocksDB(path: self.path, andDBOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.path, andDBOptions: { (options) -> Void in options.createIfMissing = true options.comparator = RocksDBComparator.comaparatorWithType(.BytewiseDescending) }) @@ -113,7 +113,7 @@ class RocksDBComparatorTests : RocksDBTests { } func testSwift_Comparator_StringCompare_Ascending() { - rocks = RocksDB(path: self.path, andDBOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.path, andDBOptions: { (options) -> Void in options.createIfMissing = true options.comparator = RocksDBComparator.comaparatorWithType(.StringCompareAscending) options.keyType = .NSString @@ -140,7 +140,7 @@ class RocksDBComparatorTests : RocksDBTests { } func testSwift_Comparator_StringCompare_Descending() { - rocks = RocksDB(path: self.path, andDBOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.path, andDBOptions: { (options) -> Void in options.createIfMissing = true options.comparator = RocksDBComparator.comaparatorWithType(.StringCompareDescending) options.keyType = .NSString @@ -167,7 +167,7 @@ class RocksDBComparatorTests : RocksDBTests { } func testSwift_Comparator_Number_Ascending() { - rocks = RocksDB(path: self.path, andDBOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.path, andDBOptions: { (options) -> Void in options.createIfMissing = true options.comparator = RocksDBComparator.comaparatorWithType(.NumberAscending) options.keyEncoder = { @@ -210,7 +210,7 @@ class RocksDBComparatorTests : RocksDBTests { } func testSwift_Comparator_Number_Decending() { - rocks = RocksDB(path: self.path, andDBOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.path, andDBOptions: { (options) -> Void in options.createIfMissing = true options.comparator = RocksDBComparator.comaparatorWithType(.NumberDescending) options.keyEncoder = { diff --git a/ObjectiveRocksTests/RocksDBIteratorTests.mm b/ObjectiveRocksTests/RocksDBIteratorTests.mm index 34843a7..57fadf3 100644 --- a/ObjectiveRocksTests/RocksDBIteratorTests.mm +++ b/ObjectiveRocksTests/RocksDBIteratorTests.mm @@ -16,7 +16,7 @@ @implementation RocksDBIteratorTests - (void)testDB_Iterator { - _rocks = [[RocksDB alloc] initWithPath:_path andDBOptions:^(RocksDBOptions *options) { + _rocks = [RocksDB databaseAtPath:_path andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; }]; @@ -38,7 +38,7 @@ - (void)testDB_Iterator - (void)testDB_Iterator_Seek { - _rocks = [[RocksDB alloc] initWithPath:_path andDBOptions:^(RocksDBOptions *options) { + _rocks = [RocksDB databaseAtPath:_path andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; }]; @@ -82,7 +82,7 @@ - (void)testDB_Iterator_Seek - (void)testDB_Iterator_EnumerateKeys { - _rocks = [[RocksDB alloc] initWithPath:_path andDBOptions:^(RocksDBOptions *options) { + _rocks = [RocksDB databaseAtPath:_path andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; }]; @@ -104,7 +104,7 @@ - (void)testDB_Iterator_EnumerateKeys - (void)testDB_Iterator_EnumerateKeys_Reverse { - _rocks = [[RocksDB alloc] initWithPath:_path andDBOptions:^(RocksDBOptions *options) { + _rocks = [RocksDB databaseAtPath:_path andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; }]; @@ -126,7 +126,7 @@ - (void)testDB_Iterator_EnumerateKeys_Reverse - (void)testDB_Iterator_EnumerateKeys_RangeStart { - _rocks = [[RocksDB alloc] initWithPath:_path andDBOptions:^(RocksDBOptions *options) { + _rocks = [RocksDB databaseAtPath:_path andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; }]; @@ -149,7 +149,7 @@ - (void)testDB_Iterator_EnumerateKeys_RangeStart - (void)testDB_Iterator_EnumerateKeys_RangeEnd { - _rocks = [[RocksDB alloc] initWithPath:_path andDBOptions:^(RocksDBOptions *options) { + _rocks = [RocksDB databaseAtPath:_path andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; }]; @@ -172,7 +172,7 @@ - (void)testDB_Iterator_EnumerateKeys_RangeEnd - (void)testDB_Iterator_EnumerateKeys_RangeStartEnd { - _rocks = [[RocksDB alloc] initWithPath:_path andDBOptions:^(RocksDBOptions *options) { + _rocks = [RocksDB databaseAtPath:_path andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; }]; @@ -195,7 +195,7 @@ - (void)testDB_Iterator_EnumerateKeys_RangeStartEnd - (void)testDB_Iterator_EnumerateKeys_Encoded { - _rocks = [[RocksDB alloc] initWithPath:_path andDBOptions:^(RocksDBOptions *options) { + _rocks = [RocksDB databaseAtPath:_path andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; options.keyType = RocksDBTypeNSString; options.valueType = RocksDBTypeNSString; @@ -219,7 +219,7 @@ - (void)testDB_Iterator_EnumerateKeys_Encoded - (void)testDB_Iterator_EnumerateKeysAndValues { - _rocks = [[RocksDB alloc] initWithPath:_path andDBOptions:^(RocksDBOptions *options) { + _rocks = [RocksDB databaseAtPath:_path andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; }]; @@ -242,7 +242,7 @@ - (void)testDB_Iterator_EnumerateKeysAndValues - (void)testDB_Iterator_EnumerateKeysAndValues_Reverse { - _rocks = [[RocksDB alloc] initWithPath:_path andDBOptions:^(RocksDBOptions *options) { + _rocks = [RocksDB databaseAtPath:_path andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; }]; @@ -265,7 +265,7 @@ - (void)testDB_Iterator_EnumerateKeysAndValues_Reverse - (void)testDB_Iterator_EnumerateKeysAndValues_RangeStart { - _rocks = [[RocksDB alloc] initWithPath:_path andDBOptions:^(RocksDBOptions *options) { + _rocks = [RocksDB databaseAtPath:_path andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; }]; @@ -291,7 +291,7 @@ - (void)testDB_Iterator_EnumerateKeysAndValues_RangeStart - (void)testDB_Iterator_EnumerateKeysAndValues_RangeEnd { - _rocks = [[RocksDB alloc] initWithPath:_path andDBOptions:^(RocksDBOptions *options) { + _rocks = [RocksDB databaseAtPath:_path andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; }]; @@ -317,7 +317,7 @@ - (void)testDB_Iterator_EnumerateKeysAndValues_RangeEnd - (void)testDB_Iterator_EnumerateKeysAndValues_RangeStartEnd { - _rocks = [[RocksDB alloc] initWithPath:_path andDBOptions:^(RocksDBOptions *options) { + _rocks = [RocksDB databaseAtPath:_path andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; }]; @@ -344,7 +344,7 @@ - (void)testDB_Iterator_EnumerateKeysAndValues_RangeStartEnd - (void)testDB_Iterator_EnumerateKeysAndValues_Encoded { - _rocks = [[RocksDB alloc] initWithPath:_path andDBOptions:^(RocksDBOptions *options) { + _rocks = [RocksDB databaseAtPath:_path andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; options.keyType = RocksDBTypeNSString; options.valueType = RocksDBTypeNSString; diff --git a/ObjectiveRocksTests/RocksDBIteratorTests.swift b/ObjectiveRocksTests/RocksDBIteratorTests.swift index 5e9ad75..705b9fa 100644 --- a/ObjectiveRocksTests/RocksDBIteratorTests.swift +++ b/ObjectiveRocksTests/RocksDBIteratorTests.swift @@ -11,7 +11,7 @@ import XCTest class RocksDBIteratorTests : RocksDBTests { func testSwift_DB_Iterator() { - rocks = RocksDB(path: self.path, andDBOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.path, andDBOptions: { (options) -> Void in options.createIfMissing = true }) @@ -33,7 +33,7 @@ class RocksDBIteratorTests : RocksDBTests { } func testSwift_DB_Iterator_Seek() { - rocks = RocksDB(path: self.path, andDBOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.path, andDBOptions: { (options) -> Void in options.createIfMissing = true }) @@ -76,7 +76,7 @@ class RocksDBIteratorTests : RocksDBTests { } func testSwift_DB_Iterator_EnumerateKeys() { - rocks = RocksDB(path: self.path, andDBOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.path, andDBOptions: { (options) -> Void in options.createIfMissing = true }) @@ -99,7 +99,7 @@ class RocksDBIteratorTests : RocksDBTests { } func testSwift_DB_Iterator_EnumerateKeys_Reverse() { - rocks = RocksDB(path: self.path, andDBOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.path, andDBOptions: { (options) -> Void in options.createIfMissing = true }) @@ -121,7 +121,7 @@ class RocksDBIteratorTests : RocksDBTests { } func testSwift_DB_Iterator_EnumerateKeys_RangeStart() { - rocks = RocksDB(path: self.path, andDBOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.path, andDBOptions: { (options) -> Void in options.createIfMissing = true }) @@ -146,7 +146,7 @@ class RocksDBIteratorTests : RocksDBTests { } func testSwift_DB_Iterator_EnumerateKeys_RangeEnd() { - rocks = RocksDB(path: self.path, andDBOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.path, andDBOptions: { (options) -> Void in options.createIfMissing = true }) @@ -171,7 +171,7 @@ class RocksDBIteratorTests : RocksDBTests { } func testSwift_DB_Iterator_EnumerateKeys_RangeStartEnd() { - rocks = RocksDB(path: self.path, andDBOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.path, andDBOptions: { (options) -> Void in options.createIfMissing = true }) @@ -196,7 +196,7 @@ class RocksDBIteratorTests : RocksDBTests { } func testSwift_DB_Iterator_EnumerateKeys_Encoded() { - rocks = RocksDB(path: self.path, andDBOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.path, andDBOptions: { (options) -> Void in options.createIfMissing = true options.keyType = .NSString options.valueType = .NSString @@ -220,7 +220,7 @@ class RocksDBIteratorTests : RocksDBTests { } func testSwift_DB_Iterator_EnumerateKeysAndValues() { - rocks = RocksDB(path: self.path, andDBOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.path, andDBOptions: { (options) -> Void in options.createIfMissing = true }) @@ -243,7 +243,7 @@ class RocksDBIteratorTests : RocksDBTests { } func testSwift_DB_Iterator_EnumerateKeysAndValues_Reverse() { - rocks = RocksDB(path: self.path, andDBOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.path, andDBOptions: { (options) -> Void in options.createIfMissing = true }) @@ -266,7 +266,7 @@ class RocksDBIteratorTests : RocksDBTests { } func testSwift_DB_Iterator_EnumerateKeysAndValues_RangeStart() { - rocks = RocksDB(path: self.path, andDBOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.path, andDBOptions: { (options) -> Void in options.createIfMissing = true }) @@ -292,7 +292,7 @@ class RocksDBIteratorTests : RocksDBTests { } func testSwift_DB_Iterator_EnumerateKeysAndValues_RangeEnd() { - rocks = RocksDB(path: self.path, andDBOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.path, andDBOptions: { (options) -> Void in options.createIfMissing = true }) @@ -318,7 +318,7 @@ class RocksDBIteratorTests : RocksDBTests { } func testSwift_DB_Iterator_EnumerateKeysAndValues_RangeStartEnd() { - rocks = RocksDB(path: self.path, andDBOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.path, andDBOptions: { (options) -> Void in options.createIfMissing = true }) @@ -344,7 +344,7 @@ class RocksDBIteratorTests : RocksDBTests { } func testSwift_DB_Iterator_EnumerateKeysAndValues_Encoded() { - rocks = RocksDB(path: self.path, andDBOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.path, andDBOptions: { (options) -> Void in options.createIfMissing = true options.keyType = .NSString options.valueType = .NSString diff --git a/ObjectiveRocksTests/RocksDBMergeOperatorTests.mm b/ObjectiveRocksTests/RocksDBMergeOperatorTests.mm index 99edc8d..f91da62 100644 --- a/ObjectiveRocksTests/RocksDBMergeOperatorTests.mm +++ b/ObjectiveRocksTests/RocksDBMergeOperatorTests.mm @@ -30,7 +30,7 @@ - (void)testAssociativeMergeOperator return [NSData dataWithBytes:&result length:sizeof(uint64_t)]; }]; - _rocks = [[RocksDB alloc] initWithPath:_path andDBOptions:^(RocksDBOptions *options) { + _rocks = [RocksDB databaseAtPath:_path andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; options.mergeOperator = mergeOp; }]; @@ -55,7 +55,7 @@ - (void)testAssociativeMergeOperator_NumberAdd_Encoded return result; }]; - _rocks = [[RocksDB alloc] initWithPath:_path andDBOptions:^(RocksDBOptions *options) { + _rocks = [RocksDB databaseAtPath:_path andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; options.mergeOperator = mergeOp; @@ -95,7 +95,7 @@ - (void)testAssociativeMergeOperator_DictionaryPut_Encoded } }]; - _rocks = [[RocksDB alloc] initWithPath:_path andDBOptions:^(RocksDBOptions *options) { + _rocks = [RocksDB databaseAtPath:_path andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; options.mergeOperator = mergeOp; @@ -147,7 +147,7 @@ - (void)testMergeOperator_DictionaryUpdate_Encoded return existing; }]; - _rocks = [[RocksDB alloc] initWithPath:_path andDBOptions:^(RocksDBOptions *options) { + _rocks = [RocksDB databaseAtPath:_path andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; options.mergeOperator = mergeOp; diff --git a/ObjectiveRocksTests/RocksDBMergeOperatorTests.swift b/ObjectiveRocksTests/RocksDBMergeOperatorTests.swift index e7356c6..1a878ae 100644 --- a/ObjectiveRocksTests/RocksDBMergeOperatorTests.swift +++ b/ObjectiveRocksTests/RocksDBMergeOperatorTests.swift @@ -23,7 +23,7 @@ class RocksDBMergeOperatorTests : RocksDBTests { return NSData(bytes: &result, length: sizeof(UInt64)) } - rocks = RocksDB(path: self.path, andDBOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.path, andDBOptions: { (options) -> Void in options.createIfMissing = true options.mergeOperator = mergeOp }) @@ -49,7 +49,7 @@ class RocksDBMergeOperatorTests : RocksDBTests { return result } - rocks = RocksDB(path: self.path, andDBOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.path, andDBOptions: { (options) -> Void in options.createIfMissing = true options.mergeOperator = mergeOp options.keyType = .NSString @@ -89,7 +89,7 @@ class RocksDBMergeOperatorTests : RocksDBTests { } } - rocks = RocksDB(path: self.path, andDBOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.path, andDBOptions: { (options) -> Void in options.createIfMissing = true options.mergeOperator = mergeOp options.keyType = .NSString @@ -140,7 +140,7 @@ class RocksDBMergeOperatorTests : RocksDBTests { return existing as! NSMutableDictionary }) - rocks = RocksDB(path: self.path, andDBOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.path, andDBOptions: { (options) -> Void in options.createIfMissing = true options.mergeOperator = mergeOp options.keyType = .NSString diff --git a/ObjectiveRocksTests/RocksDBPrefixExtractorTests.mm b/ObjectiveRocksTests/RocksDBPrefixExtractorTests.mm index 6ace030..5eb0bd7 100644 --- a/ObjectiveRocksTests/RocksDBPrefixExtractorTests.mm +++ b/ObjectiveRocksTests/RocksDBPrefixExtractorTests.mm @@ -18,7 +18,7 @@ @implementation RocksDBPrefixExtractorTests - (void)testPrefixExtractor_FixedLength { - _rocks = [[RocksDB alloc] initWithPath:_path andDBOptions:^(RocksDBOptions *options) { + _rocks = [RocksDB databaseAtPath:_path andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; options.prefixExtractor = [RocksDBPrefixExtractor prefixExtractorWithType:RocksDBPrefixFixedLength length:3]; @@ -73,7 +73,7 @@ - (void)testPrefixExtractor_FixedLength_CustomComparator return [[key1 substringFromIndex:2] compare:[key2 substringFromIndex:2]]; }]; - _rocks = [[RocksDB alloc] initWithPath:_path andDBOptions:^(RocksDBOptions *options) { + _rocks = [RocksDB databaseAtPath:_path andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; options.comparator = cmp; options.prefixExtractor = [RocksDBPrefixExtractor prefixExtractorWithType:RocksDBPrefixFixedLength length:2]; diff --git a/ObjectiveRocksTests/RocksDBPrefixExtractorTests.swift b/ObjectiveRocksTests/RocksDBPrefixExtractorTests.swift index d99329b..521f6d6 100644 --- a/ObjectiveRocksTests/RocksDBPrefixExtractorTests.swift +++ b/ObjectiveRocksTests/RocksDBPrefixExtractorTests.swift @@ -11,7 +11,7 @@ import XCTest class RocksDBPrefixExtractorTests : RocksDBTests { func testSwift_PrefixExtractor_FixedLength() { - rocks = RocksDB(path: self.path, andDBOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.path, andDBOptions: { (options) -> Void in options.createIfMissing = true options.prefixExtractor = RocksDBPrefixExtractor(type: .FixedLength, length: 3) options.keyType = .NSString; @@ -76,7 +76,7 @@ class RocksDBPrefixExtractorTests : RocksDBTests { } } - rocks = RocksDB(path: self.path, andDBOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.path, andDBOptions: { (options) -> Void in options.createIfMissing = true options.comparator = cmp options.prefixExtractor = RocksDBPrefixExtractor(type: .FixedLength, length: 2) diff --git a/ObjectiveRocksTests/RocksDBPropertiesTests.mm b/ObjectiveRocksTests/RocksDBPropertiesTests.mm index d6b0ba0..096feda 100644 --- a/ObjectiveRocksTests/RocksDBPropertiesTests.mm +++ b/ObjectiveRocksTests/RocksDBPropertiesTests.mm @@ -16,7 +16,7 @@ @implementation RocksDBPropertiesTests - (void)testProperties { - _rocks = [[RocksDB alloc] initWithPath:_path andDBOptions:^(RocksDBOptions *options) { + _rocks = [RocksDB databaseAtPath:_path andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; options.maxWriteBufferNumber = 10; options.minWriteBufferNumberToMerge = 10; @@ -36,7 +36,7 @@ - (void)testProperties_ColumnFamily [descriptor addColumnFamilyWithName:@"default" andOptions:nil]; [descriptor addColumnFamilyWithName:@"new_cf" andOptions:nil]; - _rocks = [[RocksDB alloc] initWithPath:_path columnFamilies:descriptor andDatabaseOptions:^(RocksDBDatabaseOptions *options) { + _rocks = [RocksDB databaseAtPath:_path columnFamilies:descriptor andDatabaseOptions:^(RocksDBDatabaseOptions *options) { options.createIfMissing = YES; options.createMissingColumnFamilies = YES; }]; diff --git a/ObjectiveRocksTests/RocksDBPropertiesTests.swift b/ObjectiveRocksTests/RocksDBPropertiesTests.swift index a29a0aa..8123791 100644 --- a/ObjectiveRocksTests/RocksDBPropertiesTests.swift +++ b/ObjectiveRocksTests/RocksDBPropertiesTests.swift @@ -12,7 +12,7 @@ import XCTest class RocksDBPropertiesTests : RocksDBTests { func testSwift_Properties() { - rocks = RocksDB(path: self.path, andDBOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.path, andDBOptions: { (options) -> Void in options.createIfMissing = true options.maxWriteBufferNumber = 10; options.minWriteBufferNumberToMerge = 10; @@ -32,7 +32,7 @@ class RocksDBPropertiesTests : RocksDBTests { descriptor.addDefaultColumnFamilyWithOptions(nil) descriptor.addColumnFamilyWithName("new_cf", andOptions: nil) - rocks = RocksDB(path: path, columnFamilies: descriptor, andDatabaseOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(path, columnFamilies: descriptor, andDatabaseOptions: { (options) -> Void in options.createIfMissing = true options.createMissingColumnFamilies = true }) diff --git a/ObjectiveRocksTests/RocksDBSnapshotTests.mm b/ObjectiveRocksTests/RocksDBSnapshotTests.mm index 4345a31..1ddb633 100644 --- a/ObjectiveRocksTests/RocksDBSnapshotTests.mm +++ b/ObjectiveRocksTests/RocksDBSnapshotTests.mm @@ -16,7 +16,7 @@ @implementation RocksDBSnapshotTests - (void)testSnapshot { - _rocks = [[RocksDB alloc] initWithPath:_path andDBOptions:^(RocksDBOptions *options) { + _rocks = [RocksDB databaseAtPath:_path andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; }]; @@ -42,7 +42,7 @@ - (void)testSnapshot - (void)testSnapshot_Iterator { - _rocks = [[RocksDB alloc] initWithPath:_path andDBOptions:^(RocksDBOptions *options) { + _rocks = [RocksDB databaseAtPath:_path andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; }]; @@ -79,7 +79,7 @@ - (void)testSnapshot_Iterator - (void)testSnapshot_SequenceNumber { - _rocks = [[RocksDB alloc] initWithPath:_path andDBOptions:^(RocksDBOptions *options) { + _rocks = [RocksDB databaseAtPath:_path andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; }]; diff --git a/ObjectiveRocksTests/RocksDBSnapshotTests.swift b/ObjectiveRocksTests/RocksDBSnapshotTests.swift index 5c0f2c7..6d559d6 100644 --- a/ObjectiveRocksTests/RocksDBSnapshotTests.swift +++ b/ObjectiveRocksTests/RocksDBSnapshotTests.swift @@ -11,9 +11,9 @@ import XCTest class RocksDBSnapshotTests : RocksDBTests { func testSwift_Snapshot() { - rocks = RocksDB(path: self.path, andDBOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.path, andDBOptions: { (options) -> Void in options.createIfMissing = true - }) + }); rocks.setData(Data("value 1"), forKey: Data("key 1")) rocks.setData(Data("value 2"), forKey: Data("key 2")) @@ -36,7 +36,7 @@ class RocksDBSnapshotTests : RocksDBTests { } func testSwift_Snapshot_Iterator() { - rocks = RocksDB(path: self.path, andDBOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.path, andDBOptions: { (options) -> Void in options.createIfMissing = true }) @@ -72,7 +72,7 @@ class RocksDBSnapshotTests : RocksDBTests { } func testSwift_Snapshot_SequenceNumber() { - rocks = RocksDB(path: self.path, andDBOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.path, andDBOptions: { (options) -> Void in options.createIfMissing = true }) diff --git a/ObjectiveRocksTests/RocksDBStatisticsTests.mm b/ObjectiveRocksTests/RocksDBStatisticsTests.mm index 2ea8779..6fd1b66 100644 --- a/ObjectiveRocksTests/RocksDBStatisticsTests.mm +++ b/ObjectiveRocksTests/RocksDBStatisticsTests.mm @@ -18,7 +18,7 @@ - (void)testStatistics { RocksDBStatistics *statistics = [RocksDBStatistics new]; - _rocks = [[RocksDB alloc] initWithPath:_path andDBOptions:^(RocksDBOptions *options) { + _rocks = [RocksDB databaseAtPath:_path andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; options.statistics = statistics; }]; @@ -32,7 +32,7 @@ - (void)testStatistics_Ticker { RocksDBStatistics *statistics = [RocksDBStatistics new]; - _rocks = [[RocksDB alloc] initWithPath:_path andDBOptions:^(RocksDBOptions *options) { + _rocks = [RocksDB databaseAtPath:_path andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; options.statistics = statistics; }]; @@ -51,7 +51,7 @@ - (void)testStatistics_Histogram { RocksDBStatistics *statistics = [RocksDBStatistics new]; - _rocks = [[RocksDB alloc] initWithPath:_path andDBOptions:^(RocksDBOptions *options) { + _rocks = [RocksDB databaseAtPath:_path andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; options.statistics = statistics; }]; diff --git a/ObjectiveRocksTests/RocksDBStatisticsTests.swift b/ObjectiveRocksTests/RocksDBStatisticsTests.swift index 1f9eb44..b88a98c 100644 --- a/ObjectiveRocksTests/RocksDBStatisticsTests.swift +++ b/ObjectiveRocksTests/RocksDBStatisticsTests.swift @@ -13,7 +13,7 @@ class RocksDBStatisticsTests : RocksDBTests { func testSwift_Statistics() { let statistics = RocksDBStatistics() - rocks = RocksDB(path: self.path, andDBOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.path, andDBOptions: { (options) -> Void in options.createIfMissing = true options.statistics = statistics; }) @@ -26,7 +26,7 @@ class RocksDBStatisticsTests : RocksDBTests { func testSwift_Statistics_Ticker() { let statistics = RocksDBStatistics() - rocks = RocksDB(path: self.path, andDBOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.path, andDBOptions: { (options) -> Void in options.createIfMissing = true options.statistics = statistics; }) @@ -44,7 +44,7 @@ class RocksDBStatisticsTests : RocksDBTests { func testSwift_Statistics_Histogram() { let statistics = RocksDBStatistics() - rocks = RocksDB(path: self.path, andDBOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.path, andDBOptions: { (options) -> Void in options.createIfMissing = true options.statistics = statistics; }) diff --git a/ObjectiveRocksTests/RocksDBWriteBatchTests.mm b/ObjectiveRocksTests/RocksDBWriteBatchTests.mm index 1a3267e..49d632b 100644 --- a/ObjectiveRocksTests/RocksDBWriteBatchTests.mm +++ b/ObjectiveRocksTests/RocksDBWriteBatchTests.mm @@ -16,7 +16,7 @@ @implementation RocksDBWriteBatchTests - (void)testWriteBatch_Perform { - _rocks = [[RocksDB alloc] initWithPath:_path andDBOptions:^(RocksDBOptions *options) { + _rocks = [RocksDB databaseAtPath:_path andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; }]; @@ -34,7 +34,7 @@ - (void)testWriteBatch_Perform - (void)testWriteBatch_Perform_DeleteOps { - _rocks = [[RocksDB alloc] initWithPath:_path andDBOptions:^(RocksDBOptions *options) { + _rocks = [RocksDB databaseAtPath:_path andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; }]; @@ -54,7 +54,7 @@ - (void)testWriteBatch_Perform_DeleteOps - (void)testWriteBatch_Perform_ClearOps { - _rocks = [[RocksDB alloc] initWithPath:_path andDBOptions:^(RocksDBOptions *options) { + _rocks = [RocksDB databaseAtPath:_path andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; }]; @@ -76,7 +76,7 @@ - (void)testWriteBatch_Perform_ClearOps - (void)testWriteBatch_Apply { - _rocks = [[RocksDB alloc] initWithPath:_path andDBOptions:^(RocksDBOptions *options) { + _rocks = [RocksDB databaseAtPath:_path andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; }]; @@ -96,7 +96,7 @@ - (void)testWriteBatch_Apply - (void)testWriteBatch_Apply_DeleteOps { - _rocks = [[RocksDB alloc] initWithPath:_path andDBOptions:^(RocksDBOptions *options) { + _rocks = [RocksDB databaseAtPath:_path andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; }]; @@ -118,7 +118,7 @@ - (void)testWriteBatch_Apply_DeleteOps - (void)testWriteBatch_Apply_MergeOps { - _rocks = [[RocksDB alloc] initWithPath:_path andDBOptions:^(RocksDBOptions *options) { + _rocks = [RocksDB databaseAtPath:_path andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; options.mergeOperator = [RocksDBMergeOperator operatorWithName:@"merge" andBlock:^id(id key, id existingValue, id value) { NSMutableString *result = [NSMutableString string]; @@ -147,7 +147,7 @@ - (void)testWriteBatch_Apply_MergeOps - (void)testWriteBatch_Apply_ClearOps { - _rocks = [[RocksDB alloc] initWithPath:_path andDBOptions:^(RocksDBOptions *options) { + _rocks = [RocksDB databaseAtPath:_path andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; }]; @@ -171,7 +171,7 @@ - (void)testWriteBatch_Apply_ClearOps - (void)testWriteBatch_Count { - _rocks = [[RocksDB alloc] initWithPath:_path andDBOptions:^(RocksDBOptions *options) { + _rocks = [RocksDB databaseAtPath:_path andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; }]; @@ -204,7 +204,7 @@ - (void)testWriteBatch_Count - (void)testWriteBatch_Encoded { - _rocks = [[RocksDB alloc] initWithPath:_path andDBOptions:^(RocksDBOptions *options) { + _rocks = [RocksDB databaseAtPath:_path andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; options.keyType = RocksDBTypeNSString; options.valueType = RocksDBTypeNSString; diff --git a/ObjectiveRocksTests/RocksDBWriteBatchTests.swift b/ObjectiveRocksTests/RocksDBWriteBatchTests.swift index 7b3f57e..1e89c5a 100644 --- a/ObjectiveRocksTests/RocksDBWriteBatchTests.swift +++ b/ObjectiveRocksTests/RocksDBWriteBatchTests.swift @@ -11,7 +11,7 @@ import XCTest class RocksDBWriteBatchTests : RocksDBTests { func testSwift_WriteBatch_Perform() { - rocks = RocksDB(path: self.path, andDBOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.path, andDBOptions: { (options) -> Void in options.createIfMissing = true }) @@ -28,7 +28,7 @@ class RocksDBWriteBatchTests : RocksDBTests { } func testSwift_WriteBatch_Perform_DeleteOps() { - rocks = RocksDB(path: self.path, andDBOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.path, andDBOptions: { (options) -> Void in options.createIfMissing = true }) @@ -47,7 +47,7 @@ class RocksDBWriteBatchTests : RocksDBTests { } func testSwift_WriteBatch_Perform_ClearOps() { - rocks = RocksDB(path: self.path, andDBOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.path, andDBOptions: { (options) -> Void in options.createIfMissing = true }) @@ -68,7 +68,7 @@ class RocksDBWriteBatchTests : RocksDBTests { } func testSwift_WriteBatch_Apply() { - rocks = RocksDB(path: self.path, andDBOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.path, andDBOptions: { (options) -> Void in options.createIfMissing = true }) @@ -87,7 +87,7 @@ class RocksDBWriteBatchTests : RocksDBTests { } func testSwift_WriteBatch_Apply_DeleteOps() { - rocks = RocksDB(path: self.path, andDBOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.path, andDBOptions: { (options) -> Void in options.createIfMissing = true }) @@ -108,7 +108,7 @@ class RocksDBWriteBatchTests : RocksDBTests { } func testSwift_WriteBatch_Apply_MergeOps() { - rocks = RocksDB(path: self.path, andDBOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.path, andDBOptions: { (options) -> Void in options.createIfMissing = true options.mergeOperator = RocksDBMergeOperator(name: "merge", andBlock: { (key, existing, value) -> AnyObject! in var result: NSMutableString = "" @@ -136,7 +136,7 @@ class RocksDBWriteBatchTests : RocksDBTests { } func testSwift_WriteBatch_Apply_ClearOps() { - rocks = RocksDB(path: self.path, andDBOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.path, andDBOptions: { (options) -> Void in options.createIfMissing = true }) @@ -159,7 +159,7 @@ class RocksDBWriteBatchTests : RocksDBTests { } func testSwift_WriteBatch_Count() { - rocks = RocksDB(path: self.path, andDBOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.path, andDBOptions: { (options) -> Void in options.createIfMissing = true }) @@ -191,7 +191,7 @@ class RocksDBWriteBatchTests : RocksDBTests { } func testSwift_WriteBatch_Encoded() { - rocks = RocksDB(path: self.path, andDBOptions: { (options) -> Void in + rocks = RocksDB.databaseAtPath(self.path, andDBOptions: { (options) -> Void in options.createIfMissing = true options.keyType = .NSString options.valueType = .NSString From 3505543bdc1d266e6e045c7e977bd9d8a1671c58 Mon Sep 17 00:00:00 2001 From: iska Date: Mon, 10 Aug 2015 14:26:40 +0200 Subject: [PATCH 06/76] Fix backup tests after refactoring RocksDB initializers --- ObjectiveRocksTests/RocksDBBackupTests.mm | 6 +++--- ObjectiveRocksTests/RocksDBBackupTests.swift | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/ObjectiveRocksTests/RocksDBBackupTests.mm b/ObjectiveRocksTests/RocksDBBackupTests.mm index 5671950..7c638fa 100644 --- a/ObjectiveRocksTests/RocksDBBackupTests.mm +++ b/ObjectiveRocksTests/RocksDBBackupTests.mm @@ -172,7 +172,7 @@ - (void)testBackup_Restore [backupEngine restoreBackupToDestinationPath:_restorePath error:nil]; - RocksDB *backupRocks = [RocksDB databaseAtPath:_restorePath]; + RocksDB *backupRocks = [RocksDB databaseAtPath:_restorePath andDBOptions:nil]; XCTAssertEqualObjects([backupRocks dataForKey:Data(@"key 1")], Data(@"value 1")); XCTAssertEqualObjects([backupRocks dataForKey:Data(@"key 2")], Data(@"value 2")); @@ -202,7 +202,7 @@ - (void)testBackup_Restore_Specific [backupEngine restoreBackupWithId:1 toDestinationPath:_restorePath error:nil]; - RocksDB *backupRocks = [RocksDB databaseAtPath:_restorePath]; + RocksDB *backupRocks = [RocksDB databaseAtPath:_restorePath andDBOptions:nil]; XCTAssertEqualObjects([backupRocks dataForKey:Data(@"key 1")], Data(@"value 1")); XCTAssertEqualObjects([backupRocks dataForKey:Data(@"key 2")], nil); @@ -212,7 +212,7 @@ - (void)testBackup_Restore_Specific [backupEngine restoreBackupWithId:2 toDestinationPath:_restorePath error:nil]; - backupRocks = [RocksDB databaseAtPath:_restorePath]; + backupRocks = [RocksDB databaseAtPath:_restorePath andDBOptions:nil]; XCTAssertEqualObjects([backupRocks dataForKey:Data(@"key 1")], Data(@"value 1")); XCTAssertEqualObjects([backupRocks dataForKey:Data(@"key 2")], Data(@"value 2")); diff --git a/ObjectiveRocksTests/RocksDBBackupTests.swift b/ObjectiveRocksTests/RocksDBBackupTests.swift index a61dbcc..962f552 100644 --- a/ObjectiveRocksTests/RocksDBBackupTests.swift +++ b/ObjectiveRocksTests/RocksDBBackupTests.swift @@ -161,7 +161,7 @@ class RocksDBBackupTests : RocksDBTests { backupEngine.restoreBackupToDestinationPath(self.restorePath, error: nil) - let backupRocks = RocksDB.databaseAtPath(restorePath) + let backupRocks = RocksDB.databaseAtPath(restorePath, andDBOptions: nil) XCTAssertEqual(backupRocks.dataForKey(Data("key 1")), Data("value 1")) XCTAssertEqual(backupRocks.dataForKey(Data("key 2")), Data("value 2")) @@ -190,7 +190,7 @@ class RocksDBBackupTests : RocksDBTests { backupEngine.restoreBackupWithId(1, toDestinationPath: self.restorePath, error: nil) - var backupRocks = RocksDB.databaseAtPath(restorePath) + var backupRocks = RocksDB.databaseAtPath(restorePath, andDBOptions: nil) XCTAssertEqual(backupRocks.dataForKey(Data("key 1")), Data("value 1")) XCTAssertNil(backupRocks.dataForKey(Data("key 2"))) @@ -200,7 +200,7 @@ class RocksDBBackupTests : RocksDBTests { backupEngine.restoreBackupWithId(2, toDestinationPath: self.restorePath, error: nil) - backupRocks = RocksDB.databaseAtPath(restorePath) + backupRocks = RocksDB.databaseAtPath(restorePath, andDBOptions: nil) XCTAssertEqual(backupRocks.dataForKey(Data("key 1")), Data("value 1")) XCTAssertEqual(backupRocks.dataForKey(Data("key 2")), Data("value 2")) From 48cd828cf02b8b062d33f451e85ce6106589936a Mon Sep 17 00:00:00 2001 From: iska Date: Mon, 10 Aug 2015 15:00:35 +0200 Subject: [PATCH 07/76] Add tests for opening the DB in read-only mode --- ObjectiveRocks.xcodeproj/project.pbxproj | 8 +++ ObjectiveRocksTests/RocksDBReadOnlyTests.m | 63 +++++++++++++++++++ .../RocksDBReadOnlyTests.swift | 56 +++++++++++++++++ 3 files changed, 127 insertions(+) create mode 100644 ObjectiveRocksTests/RocksDBReadOnlyTests.m create mode 100644 ObjectiveRocksTests/RocksDBReadOnlyTests.swift diff --git a/ObjectiveRocks.xcodeproj/project.pbxproj b/ObjectiveRocks.xcodeproj/project.pbxproj index 91c2abb..754f76d 100644 --- a/ObjectiveRocks.xcodeproj/project.pbxproj +++ b/ObjectiveRocks.xcodeproj/project.pbxproj @@ -90,6 +90,8 @@ 624C22641AF01CA7006DC8FA /* experimental.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C22621AF01CA7006DC8FA /* experimental.cc */; }; 624C226B1AF02B1B006DC8FA /* instrumented_mutex.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C22691AF02B1B006DC8FA /* instrumented_mutex.cc */; }; 624C226C1AF02B1B006DC8FA /* instrumented_mutex.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C22691AF02B1B006DC8FA /* instrumented_mutex.cc */; }; + 6251A3731B783DA7009BABD5 /* RocksDBReadOnlyTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 6251A3721B783DA7009BABD5 /* RocksDBReadOnlyTests.m */; }; + 6251A3751B783DBC009BABD5 /* RocksDBReadOnlyTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6251A3741B783DBC009BABD5 /* RocksDBReadOnlyTests.swift */; }; 625F8F1C1A59C3EB007796BA /* RocksDBProperties.m in Sources */ = {isa = PBXBuildFile; fileRef = 625F8F1B1A59C3EB007796BA /* RocksDBProperties.m */; }; 625F8F1D1A59C3EB007796BA /* RocksDBProperties.m in Sources */ = {isa = PBXBuildFile; fileRef = 625F8F1B1A59C3EB007796BA /* RocksDBProperties.m */; }; 625F8F1F1A59C9B3007796BA /* RocksDBPropertiesTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 625F8F1E1A59C9B3007796BA /* RocksDBPropertiesTests.mm */; }; @@ -692,6 +694,8 @@ 624C22681AF0217C006DC8FA /* thread_list_test.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = thread_list_test.cc; sourceTree = ""; }; 624C22691AF02B1B006DC8FA /* instrumented_mutex.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = instrumented_mutex.cc; sourceTree = ""; }; 624C226A1AF02B1B006DC8FA /* instrumented_mutex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = instrumented_mutex.h; sourceTree = ""; }; + 6251A3721B783DA7009BABD5 /* RocksDBReadOnlyTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RocksDBReadOnlyTests.m; sourceTree = ""; }; + 6251A3741B783DBC009BABD5 /* RocksDBReadOnlyTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RocksDBReadOnlyTests.swift; sourceTree = ""; }; 625F8F1A1A59C3EB007796BA /* RocksDBProperties.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RocksDBProperties.h; sourceTree = ""; }; 625F8F1B1A59C3EB007796BA /* RocksDBProperties.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RocksDBProperties.m; sourceTree = ""; }; 625F8F1E1A59C9B3007796BA /* RocksDBPropertiesTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RocksDBPropertiesTests.mm; sourceTree = ""; }; @@ -1216,6 +1220,7 @@ 6221B7A31A629B3500D28BF5 /* ObjectiveRocksTests-iOS-Bridging-Header.h */, 6221B7A41A629B3600D28BF5 /* RockDBTests.swift */, 6216360C1A62C9FB00B132CE /* RocksDBBasicTests.swift */, + 6251A3741B783DBC009BABD5 /* RocksDBReadOnlyTests.swift */, 6216360F1A62D1BE00B132CE /* RocksDBWriteBatchTests.swift */, 62A37D131A632316003F6095 /* RocksDBIteratorTests.swift */, 62102D411A643A13007E63F0 /* RocksDBComparatorTests.swift */, @@ -1486,6 +1491,7 @@ 6249A3CD1A4A6E4000949B07 /* RocksDBTests.h */, 6249A3CB1A4A43CA00949B07 /* RocksDBTests.mm */, 6299F8551A17B7AD00123F56 /* RocksDBBasicTests.mm */, + 6251A3721B783DA7009BABD5 /* RocksDBReadOnlyTests.m */, 62685CB81A2E600A009401B1 /* RocksDBWriteBatchTests.mm */, 62385EB31A2FCFB100493F18 /* RocksDBIteratorTests.mm */, 62385EB51A2FD05500493F18 /* RocksDBComparatorTests.mm */, @@ -2535,8 +2541,10 @@ 6216361B1A631F2900B132CE /* RocksDBStatisticsTests.swift in Sources */, 62FC8B471A565B19003DF5C6 /* RocksDBBackupTests.mm in Sources */, 62E173E61A6AD40E00A00DF3 /* RocksDBBackupTests.swift in Sources */, + 6251A3731B783DA7009BABD5 /* RocksDBReadOnlyTests.m in Sources */, 62102D421A643A13007E63F0 /* RocksDBComparatorTests.swift in Sources */, 62F4AA7C1A6AAF9A00489D6C /* RocksDBColumnFamilyMetadataTests.swift in Sources */, + 6251A3751B783DBC009BABD5 /* RocksDBReadOnlyTests.swift in Sources */, 6221B7A71A629E1B00D28BF5 /* RockDBTests.swift in Sources */, 621636181A631CE100B132CE /* RocksDBCheckpointTests.swift in Sources */, 625F8F251A59D11D007796BA /* RocksDBCheckpointTests.mm in Sources */, diff --git a/ObjectiveRocksTests/RocksDBReadOnlyTests.m b/ObjectiveRocksTests/RocksDBReadOnlyTests.m new file mode 100644 index 0000000..2827432 --- /dev/null +++ b/ObjectiveRocksTests/RocksDBReadOnlyTests.m @@ -0,0 +1,63 @@ +// +// RocksDBReadOnlyTests.m +// ObjectiveRocks +// +// Created by Iska on 10/08/15. +// Copyright (c) 2015 BrainCookie. All rights reserved. +// + +#import "RocksDBTests.h" + +@interface RocksDBReadOnlyTests : RocksDBTests + +@end + +@implementation RocksDBReadOnlyTests + +- (void)testDB_Open_ReadOnly_NilIfMissing +{ + _rocks = [RocksDB databaseForReadOnlyAtPath:_path andDBOptions:nil]; + XCTAssertNil(_rocks); +} + +- (void)testDB_Open_ReadOnly +{ + _rocks = [RocksDB databaseAtPath:_path andDBOptions:^(RocksDBOptions *options) { + options.createIfMissing = YES; + }]; + XCTAssertNotNil(_rocks); + [_rocks close]; + + _rocks = [RocksDB databaseForReadOnlyAtPath:_path andDBOptions:nil]; + XCTAssertNotNil(_rocks); +} + +- (void)testDB_ReadOnly_NotWritable +{ + _rocks = [RocksDB databaseAtPath:_path andDBOptions:^(RocksDBOptions *options) { + options.createIfMissing = YES; + }]; + XCTAssertNotNil(_rocks); + [_rocks setData:Data(@"data") forKey:Data(@"key")]; + [_rocks close]; + + _rocks = [RocksDB databaseForReadOnlyAtPath:_path andDBOptions:nil]; + + NSError *error = nil; + [_rocks dataForKey:Data(@"key") error:&error]; + XCTAssertNil(error); + + error = nil; + [_rocks setData:Data(@"data") forKey:Data(@"key") error:&error]; + XCTAssertNotNil(error); + + error = nil; + [_rocks deleteDataForKey:Data(@"key") error:&error]; + XCTAssertNotNil(error); + + error = nil; + [_rocks mergeData:Data(@"data") forKey:Data(@"key") error:&error]; + XCTAssertNotNil(error); +} + +@end diff --git a/ObjectiveRocksTests/RocksDBReadOnlyTests.swift b/ObjectiveRocksTests/RocksDBReadOnlyTests.swift new file mode 100644 index 0000000..6554ea0 --- /dev/null +++ b/ObjectiveRocksTests/RocksDBReadOnlyTests.swift @@ -0,0 +1,56 @@ +// +// RocksDBReadOnlyTests.swift +// ObjectiveRocks +// +// Created by Iska on 10/08/15. +// Copyright (c) 2015 BrainCookie. All rights reserved. +// + +import XCTest + +class RocksDBReadOnlyTests : RocksDBTests { + + func testDB_Open_ReadOnly_NilIfMissing() { + rocks = RocksDB.databaseForReadOnlyAtPath(path, andDBOptions:nil) + XCTAssertNil(rocks); + } + + func testDB_Open_ReadOnly() { + rocks = RocksDB.databaseAtPath(path, andDBOptions: { (options) -> Void in + options.createIfMissing = true; + }); + XCTAssertNotNil(rocks); + rocks.close() + + rocks = RocksDB.databaseForReadOnlyAtPath(path, andDBOptions:nil) + XCTAssertNotNil(rocks); + } + + func testDB_ReadOnly_NotWritable() { + rocks = RocksDB.databaseAtPath(path, andDBOptions: { (options) -> Void in + options.createIfMissing = true; + }); + XCTAssertNotNil(rocks); + rocks.setData(Data("data"), forKey: Data("key")) + rocks.close() + + rocks = RocksDB.databaseForReadOnlyAtPath(path, andDBOptions:nil) + + var error: NSError? = nil; + rocks.dataForKey(Data("key"), error: &error) + XCTAssertNil(error); + + error = nil; + rocks.setData(Data("data"), forKey:Data("key"), error:&error); + XCTAssertNotNil(error); + + error = nil; + rocks.deleteDataForKey(Data("key"), error:&error); + XCTAssertNotNil(error); + + error = nil; + rocks.mergeData(Data("data"), forKey:Data("key"), error:&error); + XCTAssertNotNil(error); + } + +} From 2e1ed28e7fc7d30d81e6ca02acf826ff05e7ca0e Mon Sep 17 00:00:00 2001 From: iska Date: Mon, 10 Aug 2015 15:03:56 +0200 Subject: [PATCH 08/76] Add remarks to the methods documentation about opening a non-existing DB in read-only mode --- ObjectiveRocks/RocksDB.h | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/ObjectiveRocks/RocksDB.h b/ObjectiveRocks/RocksDB.h index 508368f..7f5d61e 100644 --- a/ObjectiveRocks/RocksDB.h +++ b/ObjectiveRocks/RocksDB.h @@ -89,6 +89,9 @@ @return The newly-intialized DB instance with the given path and options. @see RocksDBOptions + + @remark Opening a non-existing database in read-only mode wont have any effect, even + if `createIfMissing` option is set. */ + (instancetype)databaseForReadOnlyAtPath:(NSString *)path andDBOptions:(void (^)(RocksDBOptions *options))options; @@ -96,6 +99,9 @@ /** Intializes a DB instance for read-only and opens the defined Column Families. + @discussion All DB interfaces that modify data, like put/delete, will return error. In read-only mode no + compactions will happen. + @param path The file path of the database. @param descriptor The descriptor holds the names and the options of the existing Column Families in the DB. @@ -112,7 +118,10 @@ @remark The `RocksDBDatabaseOptions` differs from the `RocksDBOptions` as it holds only database-wide configuration settings. - @warning When opening DB with read only, it is possible to specify only a subset of column families + @remark Opening a non-existing database in read-only mode wont have any effect, even + if `createIfMissing` option is set. + + @remark When opening DB with read only, it is possible to specify only a subset of column families in the database that should be opened. However, default column family must specified. */ + (instancetype)databaseForReadOnlyAtPath:(NSString *)path From 6bc962e56077314773b787c76fcd545875ecec84 Mon Sep 17 00:00:00 2001 From: iska Date: Mon, 10 Aug 2015 15:09:21 +0200 Subject: [PATCH 09/76] Mark new initializer methods as unavailable in the Snapshot header --- ObjectiveRocks/RocksDBSnapshot.h | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/ObjectiveRocks/RocksDBSnapshot.h b/ObjectiveRocks/RocksDBSnapshot.h index 91e0c03..f590683 100644 --- a/ObjectiveRocks/RocksDBSnapshot.h +++ b/ObjectiveRocks/RocksDBSnapshot.h @@ -27,12 +27,20 @@ */ @interface RocksDBSnapshot (Unavailable) -- (instancetype)initWithPath:(NSString *)path UNAVAILABLE("Create a snapshot via a DB instance"); -- (instancetype)initWithPath:(NSString *)path - andDBOptions:(void (^)(RocksDBOptions *options))options UNAVAILABLE("Create a snapshot via a DB instance"); -- (instancetype)initWithPath:(NSString *)path - columnFamilies:(RocksDBColumnFamilyDescriptor *)descriptor - andDatabaseOptions:(void (^)(RocksDBDatabaseOptions *options))options UNAVAILABLE("Create a snapshot via a DB instance"); ++ (instancetype)databaseAtPath:(NSString *)path + andDBOptions:(void (^)(RocksDBOptions *options))options UNAVAILABLE("Create a snapshot via a DB instance"); ++ (instancetype)databaseAtPath:(NSString *)path + columnFamilies:(RocksDBColumnFamilyDescriptor *)descriptor + andDatabaseOptions:(void (^)(RocksDBDatabaseOptions *options))options UNAVAILABLE("Create a snapshot via a DB instance"); + +#ifndef ROCKSDB_LITE + ++ (instancetype)databaseForReadOnlyAtPath:(NSString *)path + andDBOptions:(void (^)(RocksDBOptions *options))options UNAVAILABLE("Create a snapshot via a DB instance"); ++ (instancetype)databaseForReadOnlyAtPath:(NSString *)path + columnFamilies:(RocksDBColumnFamilyDescriptor *)descriptor + andDatabaseOptions:(void (^)(RocksDBDatabaseOptions *options))options UNAVAILABLE("Create a snapshot via a DB instance"); +#endif + (NSArray *)listColumnFamiliesInDatabaseAtPath:(NSString *)path UNAVAILABLE("Column Family API not available"); From 1d829fed01b85a7f27c7750c21ba610933b708a2 Mon Sep 17 00:00:00 2001 From: iska Date: Mon, 10 Aug 2015 15:58:34 +0200 Subject: [PATCH 10/76] Update RocksDB properties - Change constant strings to enums - Use the constants defined in rocksdb::DB::Properties instead of hard-coded strings --- ObjectiveRocks.xcodeproj/project.pbxproj | 12 ++-- ObjectiveRocks/RocksDB.h | 5 +- ObjectiveRocks/RocksDB.mm | 10 +-- ObjectiveRocks/RocksDBProperties.h | 49 ++++++++------ ObjectiveRocks/RocksDBProperties.m | 30 --------- ObjectiveRocks/RocksDBProperties.mm | 67 +++++++++++++++++++ ObjectiveRocksTests/RocksDBPropertiesTests.mm | 2 +- .../RocksDBPropertiesTests.swift | 16 ++--- 8 files changed, 121 insertions(+), 70 deletions(-) delete mode 100644 ObjectiveRocks/RocksDBProperties.m create mode 100644 ObjectiveRocks/RocksDBProperties.mm diff --git a/ObjectiveRocks.xcodeproj/project.pbxproj b/ObjectiveRocks.xcodeproj/project.pbxproj index 754f76d..8fb3a5e 100644 --- a/ObjectiveRocks.xcodeproj/project.pbxproj +++ b/ObjectiveRocks.xcodeproj/project.pbxproj @@ -37,6 +37,7 @@ 62297D571B6AC08B00F72BF2 /* event_logger_helpers.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62297D541B6AC08B00F72BF2 /* event_logger_helpers.cc */; }; 62297D5A1B6AC8CE00F72BF2 /* build_version.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62297D591B6AC8CE00F72BF2 /* build_version.cc */; }; 62297D5B1B6AC8CE00F72BF2 /* build_version.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62297D591B6AC8CE00F72BF2 /* build_version.cc */; }; + 622A9B5B1B7981B60012A976 /* RocksDBProperties.mm in Sources */ = {isa = PBXBuildFile; fileRef = 625F8F1B1A59C3EB007796BA /* RocksDBProperties.mm */; }; 622DB8661A7EA1D40026C73F /* memenv.cc in Sources */ = {isa = PBXBuildFile; fileRef = 622DB8651A7EA1CB0026C73F /* memenv.cc */; }; 622DB8671A7EA1D50026C73F /* memenv.cc in Sources */ = {isa = PBXBuildFile; fileRef = 622DB8651A7EA1CB0026C73F /* memenv.cc */; }; 622DB8691A7EA2300026C73F /* thread_status_updater_debug.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62451ACC1A4BC85400AF11C8 /* thread_status_updater_debug.cc */; }; @@ -92,8 +93,7 @@ 624C226C1AF02B1B006DC8FA /* instrumented_mutex.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C22691AF02B1B006DC8FA /* instrumented_mutex.cc */; }; 6251A3731B783DA7009BABD5 /* RocksDBReadOnlyTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 6251A3721B783DA7009BABD5 /* RocksDBReadOnlyTests.m */; }; 6251A3751B783DBC009BABD5 /* RocksDBReadOnlyTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6251A3741B783DBC009BABD5 /* RocksDBReadOnlyTests.swift */; }; - 625F8F1C1A59C3EB007796BA /* RocksDBProperties.m in Sources */ = {isa = PBXBuildFile; fileRef = 625F8F1B1A59C3EB007796BA /* RocksDBProperties.m */; }; - 625F8F1D1A59C3EB007796BA /* RocksDBProperties.m in Sources */ = {isa = PBXBuildFile; fileRef = 625F8F1B1A59C3EB007796BA /* RocksDBProperties.m */; }; + 625F8F1D1A59C3EB007796BA /* RocksDBProperties.mm in Sources */ = {isa = PBXBuildFile; fileRef = 625F8F1B1A59C3EB007796BA /* RocksDBProperties.mm */; }; 625F8F1F1A59C9B3007796BA /* RocksDBPropertiesTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 625F8F1E1A59C9B3007796BA /* RocksDBPropertiesTests.mm */; }; 625F8F231A59CF82007796BA /* RocksDBCheckpoint.mm in Sources */ = {isa = PBXBuildFile; fileRef = 625F8F221A59CF82007796BA /* RocksDBCheckpoint.mm */; }; 625F8F251A59D11D007796BA /* RocksDBCheckpointTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 625F8F241A59D11D007796BA /* RocksDBCheckpointTests.mm */; }; @@ -697,7 +697,7 @@ 6251A3721B783DA7009BABD5 /* RocksDBReadOnlyTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RocksDBReadOnlyTests.m; sourceTree = ""; }; 6251A3741B783DBC009BABD5 /* RocksDBReadOnlyTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RocksDBReadOnlyTests.swift; sourceTree = ""; }; 625F8F1A1A59C3EB007796BA /* RocksDBProperties.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RocksDBProperties.h; sourceTree = ""; }; - 625F8F1B1A59C3EB007796BA /* RocksDBProperties.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RocksDBProperties.m; sourceTree = ""; }; + 625F8F1B1A59C3EB007796BA /* RocksDBProperties.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RocksDBProperties.mm; sourceTree = ""; }; 625F8F1E1A59C9B3007796BA /* RocksDBPropertiesTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RocksDBPropertiesTests.mm; sourceTree = ""; }; 625F8F211A59CF82007796BA /* RocksDBCheckpoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RocksDBCheckpoint.h; sourceTree = ""; }; 625F8F221A59CF82007796BA /* RocksDBCheckpoint.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RocksDBCheckpoint.mm; sourceTree = ""; }; @@ -1463,7 +1463,7 @@ 6299F80C1A17B28200123F56 /* RocksDB.h */, 6299F80E1A17B28200123F56 /* RocksDB.mm */, 625F8F1A1A59C3EB007796BA /* RocksDBProperties.h */, - 625F8F1B1A59C3EB007796BA /* RocksDBProperties.m */, + 625F8F1B1A59C3EB007796BA /* RocksDBProperties.mm */, 62451AC81A4BAEC000AF11C8 /* RocksDBTypes.h */, 62451AC91A4BAEC000AF11C8 /* RocksDBTypes.m */, 628B0CE81A1C104D0099C39B /* RocksDBError.h */, @@ -2416,7 +2416,6 @@ 62EE2CDF1A1ABA2000486C31 /* cuckoo_table_reader.cc in Sources */, 62EE2CFB1A1ABA2000486C31 /* plain_table_reader.cc in Sources */, 62F3ED5B1A574F7500EBFEBF /* RocksDBTableFactory.mm in Sources */, - 625F8F1C1A59C3EB007796BA /* RocksDBProperties.m in Sources */, 62EE2CEB1A1ABA2000486C31 /* iterator.cc in Sources */, 62EE2CF01A1ABA2000486C31 /* meta_blocks.cc in Sources */, 622DB8661A7EA1D40026C73F /* memenv.cc in Sources */, @@ -2479,6 +2478,7 @@ 62EE2D591A1ABA2100486C31 /* options_helper.cc in Sources */, 62EE2D3A1A1ABA2100486C31 /* hash_cuckoo_rep.cc in Sources */, 62EE2CD21A1ABA2000486C31 /* block_hash_index.cc in Sources */, + 622A9B5B1B7981B60012A976 /* RocksDBProperties.mm in Sources */, 62EE2CCC1A1ABA2000486C31 /* block_based_table_factory.cc in Sources */, 62EE2C101A1ABA2000486C31 /* log_writer.cc in Sources */, 62EE2D241A1ABA2100486C31 /* crc32c.cc in Sources */, @@ -2621,7 +2621,7 @@ 62A8AFC41A58C30E0069B4C8 /* stringappend2.cc in Sources */, 622DB86A1A7EA2310026C73F /* thread_status_updater_debug.cc in Sources */, 62A8AFC51A58C30E0069B4C8 /* table_properties_collector.cc in Sources */, - 625F8F1D1A59C3EB007796BA /* RocksDBProperties.m in Sources */, + 625F8F1D1A59C3EB007796BA /* RocksDBProperties.mm in Sources */, 62A8AFC61A58C30E0069B4C8 /* sync_point.cc in Sources */, 62A8AFC71A58C30E0069B4C8 /* plain_table_factory.cc in Sources */, 62A8AFC81A58C30E0069B4C8 /* thread_local.cc in Sources */, diff --git a/ObjectiveRocks/RocksDB.h b/ObjectiveRocks/RocksDB.h index 7f5d61e..9e1a3b1 100644 --- a/ObjectiveRocks/RocksDB.h +++ b/ObjectiveRocks/RocksDB.h @@ -14,6 +14,7 @@ #import "RocksDBWriteOptions.h" #import "RocksDBWriteBatch.h" #import "RocksDBIterator.h" +#import "RocksDBProperties.h" @class RocksDBColumnFamily; @class RocksDBSnapshot; @@ -215,7 +216,7 @@ @warning Not available in RocksDB Lite. */ -- (NSString *)valueForProperty:(NSString *)property; +- (NSString *)valueForProperty:(RocksDBProperty)property; /** Returns the integer value for the given int property name. @@ -227,7 +228,7 @@ @warning Not available in RocksDB Lite. */ -- (uint64_t)valueForIntProperty:(NSString *)property; +- (uint64_t)valueForIntProperty:(RocksDBIntProperty)property; @end diff --git a/ObjectiveRocks/RocksDB.mm b/ObjectiveRocks/RocksDB.mm index b8eb12d..2d74dd8 100644 --- a/ObjectiveRocks/RocksDB.mm +++ b/ObjectiveRocks/RocksDB.mm @@ -29,6 +29,8 @@ #include #include +#import "RocksDBProperties.h" + #pragma mark - @interface RocksDBColumnFamilyDescriptor (Private) @@ -334,11 +336,11 @@ - (void)setDefaultReadOptions:(void (^)(RocksDBReadOptions *))readOptionsBlock a #pragma mark - Peroperties -- (NSString *)valueForProperty:(NSString *)property +- (NSString *)valueForProperty:(RocksDBProperty)property { std::string value; bool ok = _db->GetProperty(_columnFamily, - SliceFromData([property dataUsingEncoding:NSUTF8StringEncoding]), + SliceFromData([ResolveProperty(property) dataUsingEncoding:NSUTF8StringEncoding]), &value); if (!ok) { return nil; @@ -348,11 +350,11 @@ - (NSString *)valueForProperty:(NSString *)property return [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; } -- (uint64_t)valueForIntProperty:(NSString *)property +- (uint64_t)valueForIntProperty:(RocksDBIntProperty)property { uint64_t value; bool ok = _db->GetIntProperty(_columnFamily, - SliceFromData([property dataUsingEncoding:NSUTF8StringEncoding]), + SliceFromData([ResolveIntProperty(property) dataUsingEncoding:NSUTF8StringEncoding]), &value); if (!ok) { return 0; diff --git a/ObjectiveRocks/RocksDBProperties.h b/ObjectiveRocks/RocksDBProperties.h index b1f0f57..b38bba1 100644 --- a/ObjectiveRocks/RocksDBProperties.h +++ b/ObjectiveRocks/RocksDBProperties.h @@ -8,23 +8,34 @@ #import -extern NSString * const RocksDBPropertyNumFilesAtLevel; -extern NSString * const RocksDBPropertyLevelStats; -extern NSString * const RocksDBPropertyCFStats; -extern NSString * const RocksDBPropertyDBStats; -extern NSString * const RocksDBPropertyStats; -extern NSString * const RocksDBPropertySsTables; +typedef NS_ENUM(NSUInteger, RocksDBProperty) +{ + RocksDBPropertyNumFilesAtLevel, + RocksDBPropertyStats, + RocksDBPropertySsTables, + RocksDBPropertyCFStats, + RocksDBPropertyDBStats, +}; -extern NSString * const RocksDBIntPropertyNumImmutableMemTable; -extern NSString * const RocksDBIntPropertyMemtableFlushPending; -extern NSString * const RocksDBIntPropertyCompactionPending; -extern NSString * const RocksDBIntPropertyBackgroundErrors; -extern NSString * const RocksDBIntPropertyCurSizeActiveMemTable; -extern NSString * const RocksDBIntPropertyCurSizeAllMemTables; -extern NSString * const RocksDBIntPropertyNumEntriesInMutableMemtable; -extern NSString * const RocksDBIntPropertyNumEntriesInImmutableMemtable; -extern NSString * const RocksDBIntPropertyEstimatedNumKeys; -extern NSString * const RocksDBIntPropertyEstimatedUsageByTableReaders; -extern NSString * const RocksDBIntPropertyIsFileDeletionEnabled; -extern NSString * const RocksDBIntPropertyNumSnapshots; -extern NSString * const RocksDBIntPropertyOldestSnapshotTime; +typedef NS_ENUM(NSUInteger, RocksDBIntProperty) +{ + RocksDBIntPropertyNumImmutableMemTable, + RocksDBIntPropertyMemtableFlushPending, + RocksDBIntPropertyCompactionPending, + RocksDBIntPropertyBackgroundErrors, + RocksDBIntPropertyCurSizeActiveMemTable, + RocksDBIntPropertyCurSizeAllMemTables, + RocksDBIntPropertyNumDeletesActiveMemtable, + RocksDBIntPropertyNumDeletesImmutableMemtables, + RocksDBIntPropertyNumEntriesActiveMemtable, + RocksDBIntPropertyNumEntriesImmutableMemtables, + RocksDBIntPropertyEstimatedNumKeys, + RocksDBIntPropertyEstimatedUsageByTableReaders, + RocksDBIntPropertyIsFileDeletionEnabled, + RocksDBIntPropertyNumSnapshots, + RocksDBIntPropertyOldestSnapshotTime, + RocksDBIntPropertyNumLiveVersions +}; + +extern NSString * ResolveProperty(RocksDBProperty property); +extern NSString * ResolveIntProperty(RocksDBIntProperty property); diff --git a/ObjectiveRocks/RocksDBProperties.m b/ObjectiveRocks/RocksDBProperties.m deleted file mode 100644 index bb5559e..0000000 --- a/ObjectiveRocks/RocksDBProperties.m +++ /dev/null @@ -1,30 +0,0 @@ -// -// RocksDBProperties.m -// ObjectiveRocks -// -// Created by Iska on 04/01/15. -// Copyright (c) 2015 BrainCookie. All rights reserved. -// - -#import "RocksDBProperties.h" - -NSString * const RocksDBPropertyNumFilesAtLevel = @"rocksdb.num-files-at-level%d"; -NSString * const RocksDBPropertyLevelStats = @"rocksdb.levelstats"; -NSString * const RocksDBPropertyCFStats = @"rocksdb.cfstats"; -NSString * const RocksDBPropertyDBStats = @"rocksdb.dbstats"; -NSString * const RocksDBPropertyStats = @"rocksdb.stats"; -NSString * const RocksDBPropertySsTables = @"rocksdb.sstables"; - -NSString * const RocksDBIntPropertyNumImmutableMemTable = @"rocksdb.num-immutable-mem-table"; -NSString * const RocksDBIntPropertyMemtableFlushPending = @"rocksdb.mem-table-flush-pending"; -NSString * const RocksDBIntPropertyCompactionPending = @"rocksdb.compaction-pending"; -NSString * const RocksDBIntPropertyBackgroundErrors = @"rocksdb.background-errors"; -NSString * const RocksDBIntPropertyCurSizeActiveMemTable = @"rocksdb.cur-size-active-mem-table"; -NSString * const RocksDBIntPropertyCurSizeAllMemTables = @"rocksdb.cur-size-all-mem-tables"; -NSString * const RocksDBIntPropertyNumEntriesInMutableMemtable = @"rocksdb.num-entries-active-mem-table"; -NSString * const RocksDBIntPropertyNumEntriesInImmutableMemtable = @"rocksdb.num-entries-imm-mem-tables"; -NSString * const RocksDBIntPropertyEstimatedNumKeys = @"rocksdb.estimate-num-keys"; -NSString * const RocksDBIntPropertyEstimatedUsageByTableReaders = @"rocksdb.estimate-table-readers-mem"; -NSString * const RocksDBIntPropertyIsFileDeletionEnabled = @"rocksdb.is-file-deletions-enabled"; -NSString * const RocksDBIntPropertyNumSnapshots = @"rocksdb.num-snapshots"; -NSString * const RocksDBIntPropertyOldestSnapshotTime = @"rocksdb.oldest-snapshot-time"; diff --git a/ObjectiveRocks/RocksDBProperties.mm b/ObjectiveRocks/RocksDBProperties.mm new file mode 100644 index 0000000..d6df2b2 --- /dev/null +++ b/ObjectiveRocks/RocksDBProperties.mm @@ -0,0 +1,67 @@ +// +// RocksDBProperties.m +// ObjectiveRocks +// +// Created by Iska on 04/01/15. +// Copyright (c) 2015 BrainCookie. All rights reserved. +// + +#import "RocksDBProperties.h" + +#import + +NSString * ResolveProperty(RocksDBProperty property) { + switch (property) { + case RocksDBPropertyNumFilesAtLevel: + return @(rocksdb::DB::Properties::kNumFilesAtLevelPrefix.c_str()); + case RocksDBPropertyStats: + return @(rocksdb::DB::Properties::kStats.c_str()); + case RocksDBPropertySsTables: + return @(rocksdb::DB::Properties::kSSTables.c_str()); + case RocksDBPropertyCFStats: + return @(rocksdb::DB::Properties::kCFStats.c_str()); + case RocksDBPropertyDBStats: + return @(rocksdb::DB::Properties::kDBStats.c_str()); + default: + return @""; + } +} + +NSString * ResolveIntProperty(RocksDBIntProperty property) { + switch (property) { + case RocksDBIntPropertyNumImmutableMemTable: + return @(rocksdb::DB::Properties::kNumImmutableMemTable.c_str()); + case RocksDBIntPropertyMemtableFlushPending: + return @(rocksdb::DB::Properties::kMemTableFlushPending.c_str()); + case RocksDBIntPropertyCompactionPending: + return @(rocksdb::DB::Properties::kCompactionPending.c_str()); + case RocksDBIntPropertyBackgroundErrors: + return @(rocksdb::DB::Properties::kBackgroundErrors.c_str()); + case RocksDBIntPropertyCurSizeActiveMemTable: + return @(rocksdb::DB::Properties::kCurSizeActiveMemTable.c_str()); + case RocksDBIntPropertyCurSizeAllMemTables: + return @(rocksdb::DB::Properties::kCurSizeAllMemTables.c_str()); + case RocksDBIntPropertyNumEntriesActiveMemtable: + return @(rocksdb::DB::Properties::kNumEntriesActiveMemTable.c_str()); + case RocksDBIntPropertyNumEntriesImmutableMemtables: + return @(rocksdb::DB::Properties::kNumEntriesImmMemTables.c_str()); + case RocksDBIntPropertyNumDeletesActiveMemtable: + return @(rocksdb::DB::Properties::kNumDeletesActiveMemTable.c_str()); + case RocksDBIntPropertyNumDeletesImmutableMemtables: + return @(rocksdb::DB::Properties::kNumDeletesImmMemTables.c_str()); + case RocksDBIntPropertyEstimatedNumKeys: + return @(rocksdb::DB::Properties::kEstimateNumKeys.c_str()); + case RocksDBIntPropertyEstimatedUsageByTableReaders: + return @(rocksdb::DB::Properties::kEstimateTableReadersMem.c_str()); + case RocksDBIntPropertyIsFileDeletionEnabled: + return @(rocksdb::DB::Properties::kIsFileDeletionsEnabled.c_str()); + case RocksDBIntPropertyNumSnapshots: + return @(rocksdb::DB::Properties::kNumSnapshots.c_str()); + case RocksDBIntPropertyOldestSnapshotTime: + return @(rocksdb::DB::Properties::kOldestSnapshotTime.c_str()); + case RocksDBIntPropertyNumLiveVersions: + return @(rocksdb::DB::Properties::kNumLiveVersions.c_str()); + default: + return @""; + } +} diff --git a/ObjectiveRocksTests/RocksDBPropertiesTests.mm b/ObjectiveRocksTests/RocksDBPropertiesTests.mm index 096feda..3abc41d 100644 --- a/ObjectiveRocksTests/RocksDBPropertiesTests.mm +++ b/ObjectiveRocksTests/RocksDBPropertiesTests.mm @@ -26,7 +26,7 @@ - (void)testProperties [_rocks setData:Data(@"value 2") forKey:Data(@"key 2")]; [_rocks setData:Data(@"value 3") forKey:Data(@"key 3")]; - XCTAssertGreaterThan([_rocks valueForIntProperty:RocksDBIntPropertyNumEntriesInMutableMemtable], 0); + XCTAssertGreaterThan([_rocks valueForIntProperty:RocksDBIntPropertyNumEntriesActiveMemtable], 0); XCTAssertGreaterThan([_rocks valueForIntProperty:RocksDBIntPropertyCurSizeActiveMemTable], 0); } diff --git a/ObjectiveRocksTests/RocksDBPropertiesTests.swift b/ObjectiveRocksTests/RocksDBPropertiesTests.swift index 8123791..61bf2dd 100644 --- a/ObjectiveRocksTests/RocksDBPropertiesTests.swift +++ b/ObjectiveRocksTests/RocksDBPropertiesTests.swift @@ -22,8 +22,8 @@ class RocksDBPropertiesTests : RocksDBTests { rocks.setData(Data("value 2"), forKey: Data("key 2")) rocks.setData(Data("value 3"), forKey: Data("key 3")) - XCTAssertGreaterThan(rocks.valueForIntProperty(String(RocksDBIntPropertyNumEntriesInMutableMemtable)), 0 as UInt64); - XCTAssertGreaterThan(rocks.valueForIntProperty(String(RocksDBIntPropertyCurSizeActiveMemTable)), 0 as UInt64); + XCTAssertGreaterThan(rocks.valueForIntProperty(.NumEntriesActiveMemtable), 0 as UInt64); + XCTAssertGreaterThan(rocks.valueForIntProperty(.CurSizeActiveMemTable), 0 as UInt64); } func testSwift_Properties_ColumnFamily() { @@ -37,12 +37,12 @@ class RocksDBPropertiesTests : RocksDBTests { options.createMissingColumnFamilies = true }) - XCTAssertGreaterThanOrEqual(rocks.columnFamilies()[0].valueForIntProperty(String(RocksDBIntPropertyEstimatedNumKeys)), 0 as UInt64); - XCTAssertNotNil(rocks.columnFamilies()[0].valueForProperty(String(RocksDBPropertyStats))); - XCTAssertNotNil(rocks.columnFamilies()[0].valueForProperty(String(RocksDBPropertySsTables))); + XCTAssertGreaterThanOrEqual(rocks.columnFamilies()[0].valueForIntProperty(.EstimatedNumKeys), 0 as UInt64); + XCTAssertNotNil(rocks.columnFamilies()[0].valueForProperty(.Stats)); + XCTAssertNotNil(rocks.columnFamilies()[0].valueForProperty(.SsTables)); - XCTAssertGreaterThanOrEqual(rocks.columnFamilies()[1].valueForIntProperty(String(RocksDBIntPropertyEstimatedNumKeys)), 0 as UInt64); - XCTAssertNotNil(rocks.columnFamilies()[1].valueForProperty(String(RocksDBPropertyStats))); - XCTAssertNotNil(rocks.columnFamilies()[1].valueForProperty(String(RocksDBPropertySsTables))); + XCTAssertGreaterThanOrEqual(rocks.columnFamilies()[1].valueForIntProperty(.EstimatedNumKeys), 0 as UInt64); + XCTAssertNotNil(rocks.columnFamilies()[1].valueForProperty(.Stats)); + XCTAssertNotNil(rocks.columnFamilies()[1].valueForProperty(.SsTables)); } } From 7dacac03404c0349ed09374a6d777ef33df5c931 Mon Sep 17 00:00:00 2001 From: iska Date: Tue, 11 Aug 2015 04:05:59 +0200 Subject: [PATCH 11/76] Add guards to exclude properties-related code from RocksDB Lite --- ObjectiveRocks.xcodeproj/project.pbxproj | 2 -- ObjectiveRocks/RocksDB.h | 3 +++ ObjectiveRocks/RocksDB.mm | 4 ++++ 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/ObjectiveRocks.xcodeproj/project.pbxproj b/ObjectiveRocks.xcodeproj/project.pbxproj index 8fb3a5e..c151bc4 100644 --- a/ObjectiveRocks.xcodeproj/project.pbxproj +++ b/ObjectiveRocks.xcodeproj/project.pbxproj @@ -93,7 +93,6 @@ 624C226C1AF02B1B006DC8FA /* instrumented_mutex.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C22691AF02B1B006DC8FA /* instrumented_mutex.cc */; }; 6251A3731B783DA7009BABD5 /* RocksDBReadOnlyTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 6251A3721B783DA7009BABD5 /* RocksDBReadOnlyTests.m */; }; 6251A3751B783DBC009BABD5 /* RocksDBReadOnlyTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6251A3741B783DBC009BABD5 /* RocksDBReadOnlyTests.swift */; }; - 625F8F1D1A59C3EB007796BA /* RocksDBProperties.mm in Sources */ = {isa = PBXBuildFile; fileRef = 625F8F1B1A59C3EB007796BA /* RocksDBProperties.mm */; }; 625F8F1F1A59C9B3007796BA /* RocksDBPropertiesTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 625F8F1E1A59C9B3007796BA /* RocksDBPropertiesTests.mm */; }; 625F8F231A59CF82007796BA /* RocksDBCheckpoint.mm in Sources */ = {isa = PBXBuildFile; fileRef = 625F8F221A59CF82007796BA /* RocksDBCheckpoint.mm */; }; 625F8F251A59D11D007796BA /* RocksDBCheckpointTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 625F8F241A59D11D007796BA /* RocksDBCheckpointTests.mm */; }; @@ -2621,7 +2620,6 @@ 62A8AFC41A58C30E0069B4C8 /* stringappend2.cc in Sources */, 622DB86A1A7EA2310026C73F /* thread_status_updater_debug.cc in Sources */, 62A8AFC51A58C30E0069B4C8 /* table_properties_collector.cc in Sources */, - 625F8F1D1A59C3EB007796BA /* RocksDBProperties.mm in Sources */, 62A8AFC61A58C30E0069B4C8 /* sync_point.cc in Sources */, 62A8AFC71A58C30E0069B4C8 /* plain_table_factory.cc in Sources */, 62A8AFC81A58C30E0069B4C8 /* thread_local.cc in Sources */, diff --git a/ObjectiveRocks/RocksDB.h b/ObjectiveRocks/RocksDB.h index 9e1a3b1..fdada43 100644 --- a/ObjectiveRocks/RocksDB.h +++ b/ObjectiveRocks/RocksDB.h @@ -14,7 +14,10 @@ #import "RocksDBWriteOptions.h" #import "RocksDBWriteBatch.h" #import "RocksDBIterator.h" + +#ifndef ROCKSDB_LITE #import "RocksDBProperties.h" +#endif @class RocksDBColumnFamily; @class RocksDBSnapshot; diff --git a/ObjectiveRocks/RocksDB.mm b/ObjectiveRocks/RocksDB.mm index 2d74dd8..806ef54 100644 --- a/ObjectiveRocks/RocksDB.mm +++ b/ObjectiveRocks/RocksDB.mm @@ -334,6 +334,8 @@ - (void)setDefaultReadOptions:(void (^)(RocksDBReadOptions *))readOptionsBlock a } } +#ifndef ROCKSDB_LITE + #pragma mark - Peroperties - (NSString *)valueForProperty:(RocksDBProperty)property @@ -362,6 +364,8 @@ - (uint64_t)valueForIntProperty:(RocksDBIntProperty)property return value; } +#endif + #pragma mark - Write Operations - (BOOL)setObject:(id)anObject forKey:(id)aKey From 34f6142559af1cd01f2fe2b1cb4b0b9f44369900 Mon Sep 17 00:00:00 2001 From: iska Date: Tue, 11 Aug 2015 18:40:01 +0200 Subject: [PATCH 12/76] Fix names of built-in NSNumber-based comparators --- ObjectiveRocks/RocksDBComparator.mm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ObjectiveRocks/RocksDBComparator.mm b/ObjectiveRocks/RocksDBComparator.mm index 1515cbd..c462325 100644 --- a/ObjectiveRocks/RocksDBComparator.mm +++ b/ObjectiveRocks/RocksDBComparator.mm @@ -53,12 +53,12 @@ + (instancetype)comaparatorWithType:(RocksDBComparatorType)type }]; case RocksDBComparatorNumberAscending: - return [[self alloc] initWithName:@"objectiverocks.key.length.asc" andBlock:^int(id key1, id key2) { + return [[self alloc] initWithName:@"objectiverocks.number.asc" andBlock:^int(id key1, id key2) { return [key1 compare:key2]; }]; case RocksDBComparatorNumberDescending: - return [[self alloc] initWithName:@"objectiverocks.key.length.desc" andBlock:^int(id key1, id key2) { + return [[self alloc] initWithName:@"objectiverocks.number.desc" andBlock:^int(id key1, id key2) { return [key1 compare:key2] * -1; }]; } From 26d77daecd5d71b5be760ff36f136d59d662614c Mon Sep 17 00:00:00 2001 From: iska Date: Wed, 12 Aug 2015 03:31:48 +0200 Subject: [PATCH 13/76] Update Readme for new initializer methods --- README.md | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index 86e1a3e..f08fe00 100644 --- a/README.md +++ b/README.md @@ -62,7 +62,7 @@ Clone the repository and add ObjectiveRocks as a sub-project in Xcode. Notice th To open a database you have to specify its location: ```objective-c -RocksDB *db = [[RocksDB alloc] initWithPath:@"path/to/db"]; +RocksDB *db = [RocksDB databaseAtPath:@"path/to/db"]; ... [db close]; ``` @@ -70,7 +70,7 @@ RocksDB *db = [[RocksDB alloc] initWithPath:@"path/to/db"]; RocksDB features many configuration settings, that can be specified when opening the database. ObjectiveRocks offers a blocks-based initializer for this purpose, for example: ```objective-c -RocksDB *db = [[RocksDB alloc] initWithPath:@"path/to/db" andDBOptions:^(RocksDBOptions *options) { +RocksDB *db = [RocksDB databaseAtPath:@"path/to/db" andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; options.maxOpenFiles = 3000; options.writeBufferSize = 64 * 1024 * 1024; @@ -83,7 +83,7 @@ The [configuration guide](#configuration), *currently in progress*, lists all cu A more production ready setup could look like this: ```objective-c -RocksDB *db = [[RocksDB alloc] initWithPath:@"path/to/db" andDBOptions:^(RocksDBOptions *options) { +RocksDB *db = [RocksDB databaseAtPath:@"path/to/db" andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; options.maxOpenFiles = 50000; @@ -109,7 +109,7 @@ RocksDB *db = [[RocksDB alloc] initWithPath:@"path/to/db" andDBOptions:^(RocksDB Once you have a `RocksDB` instance you can create and drop column families on the fly: ```objective-c -RocksDB *db = [[RocksDB alloc] initWithPath:@"path/to/db"]; +RocksDB *db = [RocksDB databaseAtPath:@"path/to/db" andDBOptions:...]; RocksDBColumnFamily *columnFamily = [db createColumnFamilyWithName:@"new_column_family" andOptions:^(RocksDBColumnFamilyOptions *options) { // Options for the new column family @@ -135,7 +135,7 @@ RocksDBColumnFamilyDescriptor *descriptor = [RocksDBColumnFamilyDescriptor new]; // Options for the stuff_column_family }]; -RocksDB *db = [[RocksDB alloc] initWithPath:@"path/to/db" columnFamilies:descriptor andDatabaseOptions:^(RocksDBDatabaseOptions *options) { +RocksDB *db = [RocksDB databaseAtPath:@"path/to/db" columnFamilies:descriptor andDatabaseOptions:^(RocksDBDatabaseOptions *options) { // Database options here }]; @@ -151,7 +151,7 @@ RocksDBColumnFamily *stuffColumnFamily = columnFamilies[1]; The database provides three basic methods, `Put`, `Get`, and `Delete` to store/query data. Keys and values in RocksDB are arbitrary byte arrays: ```objective-c -RocksDB *db = [[RocksDB alloc] initWithPath:@"path/to/db" andDBOptions:^(RocksDBOptions *options) { +RocksDB *db = [RocksDB databaseAtPath:@"path/to/db" andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; }]; @@ -169,7 +169,7 @@ Since working with `NSData` objects is cumbersome, ObjectiveRocks offers an easy ```objective-c -RocksDB *db = [[RocksDB alloc] initWithPath:@"path/to/db" andDBOptions:^(RocksDBOptions *options) { +RocksDB *db = [RocksDB databaseAtPath:@"path/to/db" andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; options.keyEncoder = ^NSData * (id key) { @@ -204,7 +204,7 @@ The `valueEncoder` and `valueDecoder` blocks take the `key` as first parameter t ObjectiveRocks provides built-in support for some common key/value types. So the previous example can be written like this: ```objective-c -RocksDB *db = [[RocksDB alloc] initWithPath:@"path/to/db" andDBOptions:^(RocksDBOptions *options) { +RocksDB *db = [RocksDB databaseAtPath:@"path/to/db" andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; options.keyType = RocksDBTypeNSString; @@ -405,7 +405,7 @@ RocksDBIteratorKeyRange range = RocksDBMakeKeyRange(@"A", @"C"); `RocksDBIterator` supports iterating inside a key-prefix by providing a `RocksDBPrefixExtractor`. One such extractor is built-in and it extracts a fixed-length prefix for each key: ```objective-c -RocksDB *db = [[RocksDB alloc] initWithPath:_path andDBOptions:^(RocksDBOptions *options) { +RocksDB *db = [RocksDB databaseAtPath:_path andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; options.prefixExtractor = [RocksDBPrefixExtractor prefixExtractorWithType:RocksDBPrefixFixedLength length:2]; @@ -498,7 +498,7 @@ RocksDBCheckpoint *checkpoint = [[RocksDBCheckpoint alloc] initWithDatabase:db]; NSError *error = nil; [checkpoint createCheckpointAtPath:@"path/to/checkpoint" error:&error]; -RocksDB *db2 = [[RocksDB alloc] initWithPath:@"path/to/checkpoint"]; +RocksDB *db2 = [RocksDB databaseAtPath:@"path/to/checkpoint"]; ... [db close]; [db2 close]; @@ -517,7 +517,7 @@ RocksDBComparator *localizedKeys = [[RocksDBComparator alloc] initWithName:@"Loc return [key1 localizedCaseInsensitiveCompare:key2]; ]; -RocksDB *db = [[RocksDB alloc] initWithPath:_path andDBOptions:^(RocksDBOptions *options) { +RocksDB *db = [RocksDB databaseAtPath:_path andDBOptions:^(RocksDBOptions *options) { options.comparator = localizedKeys; }]; ``` @@ -529,7 +529,7 @@ RocksDB *db = [[RocksDB alloc] initWithPath:_path andDBOptions:^(RocksDBOptions ObjectiveRocks features some built-in comparators, which can be used like this: ```objective-c -RocksDB *db = [[RocksDB alloc] initWithPath:@"path/to/db" andDBOptions:^(RocksDBOptions *options) { +RocksDB *db = [RocksDB databaseAtPath:@"path/to/db" andDBOptions:^(RocksDBOptions *options) { options.comparator = [RocksDBComparator comaparatorWithType:RocksDBComparatorNumberAscending]; }]; ``` @@ -567,7 +567,7 @@ RocksDBMergeOperator *arrayAppend = [RocksDBMergeOperator operatorWithName:@"Arr } }]; -RocksDB *db = [[RocksDB alloc] initWithPath:@"path/to/db" andDBOptions:^(RocksDBOptions *options) { +RocksDB *db = [RocksDB databaseAtPath:@"path/to/db" andDBOptions:^(RocksDBOptions *options) { options.mergeOperator = arrayAppend; options.keyType = RocksDBTypeNSString; options.valueType = RocksDBTypeNSJSONSerializable; @@ -617,7 +617,7 @@ RocksDBMergeOperator *mergeOp = [RocksDBMergeOperator operatorWithName:@"operato } ]; -RocksDB *db = [[RocksDB alloc] initWithPath:_path andDBOptions:^(RocksDBOptions *options) { +RocksDB *db = [RocksDB databaseAtPath:_path andDBOptions:^(RocksDBOptions *options) { options.createIfMissing = YES; options.mergeOperator = mergeOp; @@ -650,7 +650,7 @@ The `RocksDBEnv` allows for modifying the thread pool for backgrond jobs. RocksD ```objective-c RocksDBEnv *dbEnv = [RocksDBEnv envWithLowPriorityThreadCount:12 andHighPriorityThreadCount:4]; -RocksDB *db = [[RocksDB alloc] initWithPath:@"path/to/db" andDBOptions:^(RocksDBOptions *options) { +RocksDB *db = [RocksDB databaseAtPath:@"path/to/db" andDBOptions:^(RocksDBOptions *options) { options.env = dbEnv; }]; @@ -684,7 +684,7 @@ RocksDBBackupEngine *backupEngine = [[RocksDBBackupEngine alloc] initWithPath:@" backupEngine restoreBackupToDestinationPath:@"path/to/db" error:nil]; backupEngine close]; -RocksDB *db = [[RocksDB alloc] initWithPath:@"path/to/db"]; +RocksDB *db = [RocksDB databaseAtPath:@"path/to/db"]; ... [db2 close]; ``` @@ -730,7 +730,7 @@ You can collect those statistics by creating and setting the `RocksDBStatistics` ```objective-c RocksDBStatistics *dbStatistics = [RocksDBStatistics new]; -RocksDB *db = [[RocksDB alloc] initWithPath:@"path/to/db" andDBOptions:^(RocksDBOptions *options) { +RocksDB *db = [RocksDB databaseAtPath:@"path/to/db" andDBOptions:^(RocksDBOptions *options) { options.statistics = dbStatistics; }]; ... From e40f25c8212b7f52f2685ac8450f678f593c1e07 Mon Sep 17 00:00:00 2001 From: iska Date: Tue, 18 Aug 2015 23:16:47 +0200 Subject: [PATCH 14/76] Mark new initializer methods as unavailable in the ColumnFamily header --- ObjectiveRocks/RocksDBColumnFamily.h | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/ObjectiveRocks/RocksDBColumnFamily.h b/ObjectiveRocks/RocksDBColumnFamily.h index b463fe1..96df9e3 100644 --- a/ObjectiveRocks/RocksDBColumnFamily.h +++ b/ObjectiveRocks/RocksDBColumnFamily.h @@ -19,12 +19,20 @@ */ @interface RocksDBColumnFamily : RocksDB -- (instancetype)initWithPath:(NSString *)path __attribute__((unavailable("Create column family via a RocksDB instance"))); -- (instancetype)initWithPath:(NSString *)path - andDBOptions:(void (^)(RocksDBOptions *options))options __attribute__((unavailable("Create column family via a RocksDB instance"))); -- (instancetype)initWithPath:(NSString *)path - columnFamilies:(RocksDBColumnFamilyDescriptor *)descriptor - andDatabaseOptions:(void (^)(RocksDBDatabaseOptions *options))options __attribute__((unavailable("Create column family via a RocksDB instance"))); ++ (instancetype)databaseAtPath:(NSString *)path + andDBOptions:(void (^)(RocksDBOptions *options))options __attribute__((unavailable("Create column family via a RocksDB instance"))); ++ (instancetype)databaseAtPath:(NSString *)path + columnFamilies:(RocksDBColumnFamilyDescriptor *)descriptor + andDatabaseOptions:(void (^)(RocksDBDatabaseOptions *options))options __attribute__((unavailable("Create column family via a RocksDB instance"))); + +#ifndef ROCKSDB_LITE + ++ (instancetype)databaseForReadOnlyAtPath:(NSString *)path + andDBOptions:(void (^)(RocksDBOptions *options))options __attribute__((unavailable("Create column family via a RocksDB instance"))); ++ (instancetype)databaseForReadOnlyAtPath:(NSString *)path + columnFamilies:(RocksDBColumnFamilyDescriptor *)descriptor + andDatabaseOptions:(void (^)(RocksDBDatabaseOptions *options))options __attribute__((unavailable("Create column family via a RocksDB instance"))); +#endif + (NSArray *)listColumnFamiliesInDatabaseAtPath:(NSString *)path __attribute__((unavailable("Use the superclass RocksDB instead"))); - (RocksDBColumnFamily *)createColumnFamilyWithName:(NSString *)name From 10501edfcc4530c5eae7ea8e9d7b1cc602ee58f0 Mon Sep 17 00:00:00 2001 From: iska Date: Thu, 20 Aug 2015 00:28:49 +0200 Subject: [PATCH 15/76] Add implementation stub for the Write Batch With Index - Refactor the base Write Batch class to use a reference to a rocksdb::WriteBatchBase instead of concrete implementation - Add new initializer methods - Add class stub for Indexed Write Batch --- ObjectiveRocks.xcodeproj/project.pbxproj | 8 +++ ObjectiveRocks/RocksDB.mm | 8 +-- ObjectiveRocks/RocksDBIndexedWriteBatch.h | 13 +++++ ObjectiveRocks/RocksDBIndexedWriteBatch.mm | 25 +++++++++ ObjectiveRocks/RocksDBWriteBatch+Private.h | 50 ++++++++++++++++-- ObjectiveRocks/RocksDBWriteBatch.mm | 59 +++++++++++++++------- 6 files changed, 137 insertions(+), 26 deletions(-) create mode 100644 ObjectiveRocks/RocksDBIndexedWriteBatch.h create mode 100644 ObjectiveRocks/RocksDBIndexedWriteBatch.mm diff --git a/ObjectiveRocks.xcodeproj/project.pbxproj b/ObjectiveRocks.xcodeproj/project.pbxproj index c151bc4..cce02df 100644 --- a/ObjectiveRocks.xcodeproj/project.pbxproj +++ b/ObjectiveRocks.xcodeproj/project.pbxproj @@ -463,6 +463,8 @@ 62F4AA7E1A6AAFD700489D6C /* RocksDBColumnFamilyTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62F4AA7D1A6AAFD700489D6C /* RocksDBColumnFamilyTests.swift */; }; 62F4AA7F1A6AAFD700489D6C /* RocksDBColumnFamilyTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62F4AA7D1A6AAFD700489D6C /* RocksDBColumnFamilyTests.swift */; }; 62F4AA801A6AAFE500489D6C /* RocksDBColumnFamilyMetadataTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 627FBE761A61E0AA0038696A /* RocksDBColumnFamilyMetadataTests.mm */; }; + 62F8C5FF1B85386A00E2577F /* RocksDBIndexedWriteBatch.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62F8C5FE1B85386A00E2577F /* RocksDBIndexedWriteBatch.mm */; }; + 62F8C6001B85386A00E2577F /* RocksDBIndexedWriteBatch.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62F8C5FE1B85386A00E2577F /* RocksDBIndexedWriteBatch.mm */; }; 62FC8B471A565B19003DF5C6 /* RocksDBBackupTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62FC8B461A565B19003DF5C6 /* RocksDBBackupTests.mm */; }; /* End PBXBuildFile section */ @@ -1142,6 +1144,8 @@ 62F3ED5A1A574F7500EBFEBF /* RocksDBTableFactory.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RocksDBTableFactory.mm; sourceTree = ""; }; 62F4AA7B1A6AAF9A00489D6C /* RocksDBColumnFamilyMetadataTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RocksDBColumnFamilyMetadataTests.swift; sourceTree = ""; }; 62F4AA7D1A6AAFD700489D6C /* RocksDBColumnFamilyTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RocksDBColumnFamilyTests.swift; sourceTree = ""; }; + 62F8C5FD1B85386A00E2577F /* RocksDBIndexedWriteBatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RocksDBIndexedWriteBatch.h; sourceTree = ""; }; + 62F8C5FE1B85386A00E2577F /* RocksDBIndexedWriteBatch.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RocksDBIndexedWriteBatch.mm; sourceTree = ""; }; 62FC8B461A565B19003DF5C6 /* RocksDBBackupTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RocksDBBackupTests.mm; sourceTree = ""; }; /* End PBXFileReference section */ @@ -1415,6 +1419,8 @@ children = ( 623FE74E1A2D2ED500E68421 /* RocksDBWriteBatch.h */, 623FE74F1A2D2ED500E68421 /* RocksDBWriteBatch.mm */, + 62F8C5FD1B85386A00E2577F /* RocksDBIndexedWriteBatch.h */, + 62F8C5FE1B85386A00E2577F /* RocksDBIndexedWriteBatch.mm */, ); name = "Write Batch"; sourceTree = ""; @@ -2361,6 +2367,7 @@ 62EE2CD51A1ABA2000486C31 /* block_prefix_index.cc in Sources */, 623FE7501A2D2ED500E68421 /* RocksDBWriteBatch.mm in Sources */, 62EE2CC31A1ABA2000486C31 /* adaptive_table_factory.cc in Sources */, + 62F8C5FF1B85386A00E2577F /* RocksDBIndexedWriteBatch.mm in Sources */, 624C22571AF0195F006DC8FA /* flashcache.cc in Sources */, 62EE2CF91A1ABA2000486C31 /* plain_table_key_coding.cc in Sources */, 62AEF9BB1A1D5DA900E63E89 /* RocksDBOptions.mm in Sources */, @@ -2615,6 +2622,7 @@ 62A8AFC01A58C30E0069B4C8 /* perf_context.cc in Sources */, 62A8AFC11A58C30E0069B4C8 /* env.cc in Sources */, 624C22641AF01CA7006DC8FA /* experimental.cc in Sources */, + 62F8C6001B85386A00E2577F /* RocksDBIndexedWriteBatch.mm in Sources */, 62A8AFC21A58C30E0069B4C8 /* version_builder.cc in Sources */, 62A8AFC31A58C30E0069B4C8 /* env_posix.cc in Sources */, 62A8AFC41A58C30E0069B4C8 /* stringappend2.cc in Sources */, diff --git a/ObjectiveRocks/RocksDB.mm b/ObjectiveRocks/RocksDB.mm index 806ef54..d64798a 100644 --- a/ObjectiveRocks/RocksDB.mm +++ b/ObjectiveRocks/RocksDB.mm @@ -723,8 +723,8 @@ - (BOOL)performWriteBatch:(void (^)(RocksDBWriteBatch *batch, RocksDBWriteOption RocksDBWriteOptions *writeOptions = [_writeOptions copy]; batchBlock(writeBatch, writeOptions); - rocksdb::WriteBatch batch = writeBatch.writeBatch; - rocksdb::Status status = _db->Write(writeOptions.options, &batch); + rocksdb::WriteBatch *batch = writeBatch.writeBatchBase->GetWriteBatch(); + rocksdb::Status status = _db->Write(writeOptions.options, batch); if (!status.ok()) { NSError *temp = [RocksDBError errorWithRocksStatus:status]; @@ -748,8 +748,8 @@ - (BOOL)applyWriteBatch:(RocksDBWriteBatch *)writeBatch error:(NSError **)error writeOptionsBlock(writeOptions); } - rocksdb::WriteBatch batch = writeBatch.writeBatch; - rocksdb::Status status = _db->Write(writeOptions.options, &batch); + rocksdb::WriteBatch *batch = writeBatch.writeBatchBase->GetWriteBatch(); + rocksdb::Status status = _db->Write(writeOptions.options, batch); if (!status.ok()) { NSError *temp = [RocksDBError errorWithRocksStatus:status]; diff --git a/ObjectiveRocks/RocksDBIndexedWriteBatch.h b/ObjectiveRocks/RocksDBIndexedWriteBatch.h new file mode 100644 index 0000000..3c583db --- /dev/null +++ b/ObjectiveRocks/RocksDBIndexedWriteBatch.h @@ -0,0 +1,13 @@ +// +// RocksDBIndexedWriteBatch.h +// ObjectiveRocks +// +// Created by Iska on 20/08/15. +// Copyright (c) 2015 BrainCookie. All rights reserved. +// + +#import "RocksDBWriteBatch.h" + +@interface RocksDBIndexedWriteBatch : RocksDBWriteBatch + +@end diff --git a/ObjectiveRocks/RocksDBIndexedWriteBatch.mm b/ObjectiveRocks/RocksDBIndexedWriteBatch.mm new file mode 100644 index 0000000..edd462e --- /dev/null +++ b/ObjectiveRocks/RocksDBIndexedWriteBatch.mm @@ -0,0 +1,25 @@ +// +// RocksDBIndexedWriteBatch.m +// ObjectiveRocks +// +// Created by Iska on 20/08/15. +// Copyright (c) 2015 BrainCookie. All rights reserved. +// + +#import "RocksDBIndexedWriteBatch.h" +#import "RocksDBWriteBatch+Private.h" + +#import + +@implementation RocksDBIndexedWriteBatch + +- (instancetype)initColumnFamily:(rocksdb::ColumnFamilyHandle *)columnFamily + andEncodingOptions:(RocksDBEncodingOptions *)options +{ + self = [super initWithNativeWriteBatch:new rocksdb::WriteBatchWithIndex() + columnFamily:columnFamily + andEncodingOptions:options]; + return self; +} + +@end diff --git a/ObjectiveRocks/RocksDBWriteBatch+Private.h b/ObjectiveRocks/RocksDBWriteBatch+Private.h index 3d66dc2..76030f7 100644 --- a/ObjectiveRocks/RocksDBWriteBatch+Private.h +++ b/ObjectiveRocks/RocksDBWriteBatch+Private.h @@ -7,10 +7,11 @@ // #import "RocksDBWriteBatch.h" +#import "RocksDBIndexedWriteBatch.h" namespace rocksdb { class ColumnFamilyHandle; - class WriteBatch; + class WriteBatchBase; } /** @@ -19,13 +20,54 @@ namespace rocksdb { */ @interface RocksDBWriteBatch (Private) -/** @brief The rocksdb::WriteBatch associated with this instance. */ -@property (nonatomic, readonly) rocksdb::WriteBatch writeBatch; +/** @brief The rocksdb::WriteBatchBase associated with this instance. */ +@property (nonatomic, readonly) rocksdb::WriteBatchBase *writeBatchBase; /** - Initializes a new instance of `RocksDBWriteBatch` with the given options and + Initializes a new instance of `RocksDBWriteBatch` with the given native rocksdb::WriteBatchBase + instance, encoding options and rocksdb::ColumnFamilyHandle instance. + + @discussion This initializer is used by the subclasses of `RocksDBWriteBatch`. + + @param writeBatchBase An instance of a concrete subclass implementation of rocksdb::WriteBatchBase. + @param columnFamily The rocks::ColumnFamilyHandle instance. + @param options The Encoding options. + @return a newly-initialized instance of `RocksDBWriteBatch`. + + @see RocksDBEncodingOptions + */ +- (instancetype)initWithNativeWriteBatch:(rocksdb::WriteBatchBase *)writeBatchBase + columnFamily:(rocksdb::ColumnFamilyHandle *)columnFamily + andEncodingOptions:(RocksDBEncodingOptions *)options; + +/** + Initializes a new instance of a simple `RocksDBWriteBatch` with the given options and + rocksdb::ColumnFamilyHandle instance. + + @param columnFamily The rocks::ColumnFamilyHandle instance. + @param options The Encoding options. + @return a newly-initialized instance of `RocksDBWriteBatch`. + + @see RocksDBEncodingOptions + */ +- (instancetype)initWithColumnFamily:(rocksdb::ColumnFamilyHandle *)columnFamily + andEncodingOptions:(RocksDBEncodingOptions *)options; + +@end + +/** + This category is intended to hide all C++ types from the public interface in order to + maintain a pure Objective-C API for Swift compatibility. + */ +@interface RocksDBIndexedWriteBatch (Private) + +/** + Initializes a new instance of `RocksDBIndexedWriteBatch` with the given options and rocksdb::ColumnFamilyHandle instance. + @discussion `RocksDBIndexedWriteBatch` builds a binary searchable index for all + the keys inserted. + @param columnFamily The rocks::ColumnFamilyHandle instance. @param options The Encoding options. @return a newly-initialized instance of `RocksDBWriteBatch`. diff --git a/ObjectiveRocks/RocksDBWriteBatch.mm b/ObjectiveRocks/RocksDBWriteBatch.mm index 688988e..0ca414d 100644 --- a/ObjectiveRocks/RocksDBWriteBatch.mm +++ b/ObjectiveRocks/RocksDBWriteBatch.mm @@ -7,37 +7,58 @@ // #import "RocksDBWriteBatch.h" +#import "RocksDBWriteBatch+Private.h" #import "RocksDBColumnFamily.h" #import "RocksDBColumnFamily+Private.h" #import "RocksDBSlice.h" +#import #import @interface RocksDBWriteBatch () { - RocksDBEncodingOptions *_encodingOptions; - rocksdb::WriteBatch _writeBatch; rocksdb::ColumnFamilyHandle *_columnFamily; + RocksDBEncodingOptions *_encodingOptions; } -@property (nonatomic, readonly) rocksdb::WriteBatch writeBatch; +@property (nonatomic, assign) rocksdb::WriteBatchBase *writeBatchBase; @end @implementation RocksDBWriteBatch -@synthesize writeBatch = _writeBatch; +@synthesize writeBatchBase = _writeBatchBase; #pragma mark - Lifecycle - (instancetype)initWithColumnFamily:(rocksdb::ColumnFamilyHandle *)columnFamily - andEncodingOptions:(RocksDBEncodingOptions *)options + andEncodingOptions:(RocksDBEncodingOptions *)options +{ + return [self initWithNativeWriteBatch:new rocksdb::WriteBatch() + columnFamily:columnFamily + andEncodingOptions:options]; +} + +- (instancetype)initWithNativeWriteBatch:(rocksdb::WriteBatchBase *)writeBatchBase + columnFamily:(rocksdb::ColumnFamilyHandle *)columnFamily + andEncodingOptions:(RocksDBEncodingOptions *)options { self = [super init]; if (self) { + _writeBatchBase = writeBatchBase; _columnFamily = columnFamily; _encodingOptions = options; } return self; } +- (void)dealloc +{ + @synchronized(self) { + if (_writeBatchBase != nullptr) { + delete _writeBatchBase; + _writeBatchBase = nullptr; + } + } +} + #pragma mark - Put - (void)setObject:(id)anObject forKey:(id)aKey @@ -65,9 +86,9 @@ - (void)setData:(NSData *)data forKey:(NSData *)aKey inColumnFamily:(RocksDBColu handle = columnFamily.columnFamily; } - _writeBatch.Put(handle, - SliceFromData(aKey), - SliceFromData(data)); + _writeBatchBase->Put(handle, + SliceFromData(aKey), + SliceFromData(data)); } } @@ -109,9 +130,10 @@ - (void)mergeData:(NSData *)data forKey:(NSData *)aKey inColumnFamily:(RocksDBCo if (columnFamily != nil) { handle = columnFamily.columnFamily; } - _writeBatch.Merge(handle, - SliceFromData(aKey), - SliceFromData(data)); + + _writeBatchBase->Merge(handle, + SliceFromData(aKey), + SliceFromData(data)); } } @@ -140,8 +162,9 @@ - (void)deleteDataForKey:(NSData *)aKey inColumnFamily:(RocksDBColumnFamily *)co if (columnFamily != nil) { handle = columnFamily.columnFamily; } - _writeBatch.Delete(handle, - SliceFromData(aKey)); + + _writeBatchBase->Delete(handle, + SliceFromData(aKey)); } } @@ -150,31 +173,31 @@ - (void)deleteDataForKey:(NSData *)aKey inColumnFamily:(RocksDBColumnFamily *)co - (void)putLogData:(NSData *)logData; { if (logData != nil) { - _writeBatch.PutLogData(SliceFromData(logData)); + _writeBatchBase->PutLogData(SliceFromData(logData)); } } - (void)clear { - _writeBatch.Clear(); + _writeBatchBase->Clear(); } #pragma mark - Meta - (int)count { - return _writeBatch.Count(); + return _writeBatchBase->GetWriteBatch()->Count(); } - (NSData *)data { - std::string rep = _writeBatch.Data(); + std::string rep = _writeBatchBase->GetWriteBatch()->Data(); return DataFromSlice(rocksdb::Slice(rep)); } - (size_t)dataSize { - return _writeBatch.GetDataSize(); + return _writeBatchBase->GetWriteBatch()->GetDataSize(); } @end From 5b99d33de5663781f2a793b2a058b52c63874eb7 Mon Sep 17 00:00:00 2001 From: iska Date: Fri, 21 Aug 2015 02:35:12 +0200 Subject: [PATCH 16/76] Add implementation for the Write Batch Iterator - The implementation of Write Batch Iterator is duplicated from RocksDBIterator since there is no common base class for rocksdb::WBWIIterator and rocksdb::Iterator. This was the easiest and most straightforward approach instead of some workaround to provide a base wrapper/generic proxy for the two. --- ObjectiveRocks.xcodeproj/project.pbxproj | 30 ++-- ObjectiveRocks/RocksDBIndexedWriteBatch.h | 14 ++ ObjectiveRocks/RocksDBIndexedWriteBatch.mm | 23 +++- ObjectiveRocks/RocksDBWriteBatch+Private.h | 31 +---- .../RocksDBWriteBatchIterator+Private.h | 34 +++++ ObjectiveRocks/RocksDBWriteBatchIterator.h | 96 +++++++++++++ ObjectiveRocks/RocksDBWriteBatchIterator.mm | 129 ++++++++++++++++++ 7 files changed, 320 insertions(+), 37 deletions(-) create mode 100644 ObjectiveRocks/RocksDBWriteBatchIterator+Private.h create mode 100644 ObjectiveRocks/RocksDBWriteBatchIterator.h create mode 100644 ObjectiveRocks/RocksDBWriteBatchIterator.mm diff --git a/ObjectiveRocks.xcodeproj/project.pbxproj b/ObjectiveRocks.xcodeproj/project.pbxproj index cce02df..5818be1 100644 --- a/ObjectiveRocks.xcodeproj/project.pbxproj +++ b/ObjectiveRocks.xcodeproj/project.pbxproj @@ -53,7 +53,6 @@ 6236E25A1A4DD71600A81ED6 /* RocksDBCallbackSliceTransform.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6236E2581A4DD71600A81ED6 /* RocksDBCallbackSliceTransform.cpp */; }; 6236E25C1A4E19A300A81ED6 /* RocksDBPrefixExtractorTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6236E25B1A4E19A300A81ED6 /* RocksDBPrefixExtractorTests.mm */; }; 62376BBF1A20EDF000C85DFB /* RocksDBCallbackComparator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 62376BBD1A20EDF000C85DFB /* RocksDBCallbackComparator.cpp */; }; - 62385EB21A2FC87500493F18 /* RocksDBIterator.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62385EB11A2FC87500493F18 /* RocksDBIterator.mm */; }; 62385EB41A2FCFB100493F18 /* RocksDBIteratorTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62385EB31A2FCFB100493F18 /* RocksDBIteratorTests.mm */; }; 62385EB61A2FD05500493F18 /* RocksDBComparatorTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62385EB51A2FD05500493F18 /* RocksDBComparatorTests.mm */; }; 623DC2561A335BAF00B61B18 /* RocksDBSnapshotTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 623DC2551A335BAF00B61B18 /* RocksDBSnapshotTests.mm */; }; @@ -108,7 +107,6 @@ 625F8F561A5A2273007796BA /* RocksDBError.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 628B0CE81A1C104D0099C39B /* RocksDBError.h */; }; 625F8F571A5A2273007796BA /* RocksDBColumnFamily.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 620629681A510D36001DEDC4 /* RocksDBColumnFamily.h */; }; 625F8F581A5A2273007796BA /* RocksDBColumnFamilyDescriptor.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 62074F2B1A520EC2002B1885 /* RocksDBColumnFamilyDescriptor.h */; }; - 625F8F591A5A2273007796BA /* RocksDBIterator.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 62385EB01A2FC87500493F18 /* RocksDBIterator.h */; }; 625F8F5A1A5A2273007796BA /* RocksDBPrefixExtractor.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 6236E2551A4DD25000A81ED6 /* RocksDBPrefixExtractor.h */; }; 625F8F5B1A5A2273007796BA /* RocksDBWriteBatch.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 623FE74E1A2D2ED500E68421 /* RocksDBWriteBatch.h */; }; 625F8F5C1A5A2273007796BA /* RocksDBComparator.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 623224AA1A2116A400FB6625 /* RocksDBComparator.h */; }; @@ -137,7 +135,6 @@ 625F8F741A5A229C007796BA /* RocksDBError.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 628B0CE81A1C104D0099C39B /* RocksDBError.h */; }; 625F8F751A5A229C007796BA /* RocksDBColumnFamily.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 620629681A510D36001DEDC4 /* RocksDBColumnFamily.h */; }; 625F8F761A5A229C007796BA /* RocksDBColumnFamilyDescriptor.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 62074F2B1A520EC2002B1885 /* RocksDBColumnFamilyDescriptor.h */; }; - 625F8F771A5A229C007796BA /* RocksDBIterator.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 62385EB01A2FC87500493F18 /* RocksDBIterator.h */; }; 625F8F781A5A229C007796BA /* RocksDBPrefixExtractor.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 6236E2551A4DD25000A81ED6 /* RocksDBPrefixExtractor.h */; }; 625F8F791A5A229C007796BA /* RocksDBWriteBatch.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 623FE74E1A2D2ED500E68421 /* RocksDBWriteBatch.h */; }; 625F8F7A1A5A229C007796BA /* RocksDBComparator.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 623224AA1A2116A400FB6625 /* RocksDBComparator.h */; }; @@ -255,7 +252,6 @@ 62A8AFF51A58C30E0069B4C8 /* db_stress.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AFF1A1ABA2000486C31 /* db_stress.cc */; }; 62A8AFF61A58C30E0069B4C8 /* table_properties.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AE01A1ABA1F00486C31 /* table_properties.cc */; }; 62A8AFF71A58C30E0069B4C8 /* histogram.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B4B1A1ABA2000486C31 /* histogram.cc */; }; - 62A8AFF81A58C30E0069B4C8 /* RocksDBIterator.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62385EB11A2FC87500493F18 /* RocksDBIterator.mm */; }; 62A8AFF91A58C30E0069B4C8 /* backupable_db.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B9F1A1ABA2000486C31 /* backupable_db.cc */; }; 62A8AFFA1A58C30E0069B4C8 /* RocksDBColumnFamilyOptions.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6206295F1A509DF1001DEDC4 /* RocksDBColumnFamilyOptions.mm */; }; 62A8AFFB1A58C30E0069B4C8 /* write_batch_with_index.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BD31A1ABA2000486C31 /* write_batch_with_index.cc */; }; @@ -465,6 +461,10 @@ 62F4AA801A6AAFE500489D6C /* RocksDBColumnFamilyMetadataTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 627FBE761A61E0AA0038696A /* RocksDBColumnFamilyMetadataTests.mm */; }; 62F8C5FF1B85386A00E2577F /* RocksDBIndexedWriteBatch.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62F8C5FE1B85386A00E2577F /* RocksDBIndexedWriteBatch.mm */; }; 62F8C6001B85386A00E2577F /* RocksDBIndexedWriteBatch.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62F8C5FE1B85386A00E2577F /* RocksDBIndexedWriteBatch.mm */; }; + 62F8C6031B853ABA00E2577F /* RocksDBWriteBatchIterator.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62F8C6021B853ABA00E2577F /* RocksDBWriteBatchIterator.mm */; }; + 62F8C6041B853ABA00E2577F /* RocksDBWriteBatchIterator.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62F8C6021B853ABA00E2577F /* RocksDBWriteBatchIterator.mm */; }; + 62F8C6071B85632500E2577F /* RocksDBIterator.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62F8C6061B85632500E2577F /* RocksDBIterator.mm */; }; + 62F8C6081B85632500E2577F /* RocksDBIterator.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62F8C6061B85632500E2577F /* RocksDBIterator.mm */; }; 62FC8B471A565B19003DF5C6 /* RocksDBBackupTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62FC8B461A565B19003DF5C6 /* RocksDBBackupTests.mm */; }; /* End PBXBuildFile section */ @@ -498,7 +498,6 @@ 625F8F561A5A2273007796BA /* RocksDBError.h in CopyFiles */, 625F8F571A5A2273007796BA /* RocksDBColumnFamily.h in CopyFiles */, 625F8F581A5A2273007796BA /* RocksDBColumnFamilyDescriptor.h in CopyFiles */, - 625F8F591A5A2273007796BA /* RocksDBIterator.h in CopyFiles */, 625F8F5A1A5A2273007796BA /* RocksDBPrefixExtractor.h in CopyFiles */, 625F8F5B1A5A2273007796BA /* RocksDBWriteBatch.h in CopyFiles */, 625F8F5C1A5A2273007796BA /* RocksDBComparator.h in CopyFiles */, @@ -537,7 +536,6 @@ 625F8F741A5A229C007796BA /* RocksDBError.h in CopyFiles */, 625F8F751A5A229C007796BA /* RocksDBColumnFamily.h in CopyFiles */, 625F8F761A5A229C007796BA /* RocksDBColumnFamilyDescriptor.h in CopyFiles */, - 625F8F771A5A229C007796BA /* RocksDBIterator.h in CopyFiles */, 625F8F781A5A229C007796BA /* RocksDBPrefixExtractor.h in CopyFiles */, 625F8F791A5A229C007796BA /* RocksDBWriteBatch.h in CopyFiles */, 625F8F7A1A5A229C007796BA /* RocksDBComparator.h in CopyFiles */, @@ -630,8 +628,6 @@ 6236E25B1A4E19A300A81ED6 /* RocksDBPrefixExtractorTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RocksDBPrefixExtractorTests.mm; sourceTree = ""; }; 62376BBD1A20EDF000C85DFB /* RocksDBCallbackComparator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RocksDBCallbackComparator.cpp; sourceTree = ""; }; 62376BBE1A20EDF000C85DFB /* RocksDBCallbackComparator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RocksDBCallbackComparator.h; sourceTree = ""; }; - 62385EB01A2FC87500493F18 /* RocksDBIterator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RocksDBIterator.h; sourceTree = ""; }; - 62385EB11A2FC87500493F18 /* RocksDBIterator.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RocksDBIterator.mm; sourceTree = ""; }; 62385EB31A2FCFB100493F18 /* RocksDBIteratorTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RocksDBIteratorTests.mm; sourceTree = ""; }; 62385EB51A2FD05500493F18 /* RocksDBComparatorTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RocksDBComparatorTests.mm; sourceTree = ""; }; 623D3C201A37C4FF00389207 /* RocksDBSlice.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RocksDBSlice.h; sourceTree = ""; }; @@ -1146,6 +1142,11 @@ 62F4AA7D1A6AAFD700489D6C /* RocksDBColumnFamilyTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RocksDBColumnFamilyTests.swift; sourceTree = ""; }; 62F8C5FD1B85386A00E2577F /* RocksDBIndexedWriteBatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RocksDBIndexedWriteBatch.h; sourceTree = ""; }; 62F8C5FE1B85386A00E2577F /* RocksDBIndexedWriteBatch.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RocksDBIndexedWriteBatch.mm; sourceTree = ""; }; + 62F8C6011B853ABA00E2577F /* RocksDBWriteBatchIterator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RocksDBWriteBatchIterator.h; sourceTree = ""; }; + 62F8C6021B853ABA00E2577F /* RocksDBWriteBatchIterator.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RocksDBWriteBatchIterator.mm; sourceTree = ""; }; + 62F8C6051B85632500E2577F /* RocksDBIterator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RocksDBIterator.h; sourceTree = ""; }; + 62F8C6061B85632500E2577F /* RocksDBIterator.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RocksDBIterator.mm; sourceTree = ""; }; + 62F9D8A11B86A74900C65860 /* RocksDBWriteBatchIterator+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "RocksDBWriteBatchIterator+Private.h"; sourceTree = ""; }; 62FC8B461A565B19003DF5C6 /* RocksDBBackupTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RocksDBBackupTests.mm; sourceTree = ""; }; /* End PBXFileReference section */ @@ -1186,8 +1187,8 @@ 620494831A32808800A0E950 /* Iterator */ = { isa = PBXGroup; children = ( - 62385EB01A2FC87500493F18 /* RocksDBIterator.h */, - 62385EB11A2FC87500493F18 /* RocksDBIterator.mm */, + 62F8C6051B85632500E2577F /* RocksDBIterator.h */, + 62F8C6061B85632500E2577F /* RocksDBIterator.mm */, 6236E2551A4DD25000A81ED6 /* RocksDBPrefixExtractor.h */, 6236E2561A4DD25000A81ED6 /* RocksDBPrefixExtractor.mm */, ); @@ -1259,6 +1260,7 @@ 6221B7921A62976F00D28BF5 /* RocksDBColumnFamilyMetaData+Private.h */, 6221B7961A6298AD00D28BF5 /* RocksDBIterator+Private.h */, 6221B79A1A6298F800D28BF5 /* RocksDBWriteBatch+Private.h */, + 62F9D8A11B86A74900C65860 /* RocksDBWriteBatchIterator+Private.h */, 6221B79E1A629A4F00D28BF5 /* RocksDBSnapshot+Private.h */, ); name = Private; @@ -1421,6 +1423,8 @@ 623FE74F1A2D2ED500E68421 /* RocksDBWriteBatch.mm */, 62F8C5FD1B85386A00E2577F /* RocksDBIndexedWriteBatch.h */, 62F8C5FE1B85386A00E2577F /* RocksDBIndexedWriteBatch.mm */, + 62F8C6011B853ABA00E2577F /* RocksDBWriteBatchIterator.h */, + 62F8C6021B853ABA00E2577F /* RocksDBWriteBatchIterator.mm */, ); name = "Write Batch"; sourceTree = ""; @@ -2370,6 +2374,7 @@ 62F8C5FF1B85386A00E2577F /* RocksDBIndexedWriteBatch.mm in Sources */, 624C22571AF0195F006DC8FA /* flashcache.cc in Sources */, 62EE2CF91A1ABA2000486C31 /* plain_table_key_coding.cc in Sources */, + 62F8C6071B85632500E2577F /* RocksDBIterator.mm in Sources */, 62AEF9BB1A1D5DA900E63E89 /* RocksDBOptions.mm in Sources */, 62EE2CBD1A1ABA2000486C31 /* port_posix.cc in Sources */, 62EE2D221A1ABA2100486C31 /* comparator.cc in Sources */, @@ -2465,7 +2470,6 @@ 62EE2D061A1ABA2000486C31 /* db_stress.cc in Sources */, 62EE2CFD1A1ABA2000486C31 /* table_properties.cc in Sources */, 62EE2D401A1ABA2100486C31 /* histogram.cc in Sources */, - 62385EB21A2FC87500493F18 /* RocksDBIterator.mm in Sources */, 62EE2D791A1ABA2100486C31 /* backupable_db.cc in Sources */, 620629601A509DF1001DEDC4 /* RocksDBColumnFamilyOptions.mm in Sources */, 625F8F231A59CF82007796BA /* RocksDBCheckpoint.mm in Sources */, @@ -2517,6 +2521,7 @@ 62EE2C181A1ABA2000486C31 /* merge_operator.cc in Sources */, 62269EDC1A1FF27A005A58D3 /* checkpoint.cc in Sources */, 62EE2D901A1ABA2100486C31 /* redis_lists.cc in Sources */, + 62F8C6031B853ABA00E2577F /* RocksDBWriteBatchIterator.mm in Sources */, 624C22391AF0174B006DC8FA /* convenience.cc in Sources */, 62EE2D271A1ABA2100486C31 /* db_info_dumper.cc in Sources */, 62EE2D571A1ABA2100486C31 /* options_builder.cc in Sources */, @@ -2681,10 +2686,10 @@ 62A8AFF51A58C30E0069B4C8 /* db_stress.cc in Sources */, 62A8AFF61A58C30E0069B4C8 /* table_properties.cc in Sources */, 62A8AFF71A58C30E0069B4C8 /* histogram.cc in Sources */, - 62A8AFF81A58C30E0069B4C8 /* RocksDBIterator.mm in Sources */, 62A8AFF91A58C30E0069B4C8 /* backupable_db.cc in Sources */, 62A8AFFA1A58C30E0069B4C8 /* RocksDBColumnFamilyOptions.mm in Sources */, 62A8AFFB1A58C30E0069B4C8 /* write_batch_with_index.cc in Sources */, + 62F8C6081B85632500E2577F /* RocksDBIterator.mm in Sources */, 62A8AFFC1A58C30E0069B4C8 /* RocksDBColumnFamilyDescriptor.mm in Sources */, 62A8AFFD1A58C30E0069B4C8 /* RocksDBCache.mm in Sources */, 62A8AFFE1A58C30E0069B4C8 /* db_repl_stress.cc in Sources */, @@ -2693,6 +2698,7 @@ 62A8B0011A58C30E0069B4C8 /* slice.cc in Sources */, 625F8F2B1A59DE25007796BA /* RocksDBStatistics.mm in Sources */, 62A8B0021A58C30E0069B4C8 /* murmurhash.cc in Sources */, + 62F8C6041B853ABA00E2577F /* RocksDBWriteBatchIterator.mm in Sources */, 62A8B0031A58C30E0069B4C8 /* write_thread.cc in Sources */, 624C22191AF01485006DC8FA /* xfunc.cc in Sources */, 62A8B0041A58C30E0069B4C8 /* ldb_tool.cc in Sources */, diff --git a/ObjectiveRocks/RocksDBIndexedWriteBatch.h b/ObjectiveRocks/RocksDBIndexedWriteBatch.h index 3c583db..bccee43 100644 --- a/ObjectiveRocks/RocksDBIndexedWriteBatch.h +++ b/ObjectiveRocks/RocksDBIndexedWriteBatch.h @@ -7,7 +7,21 @@ // #import "RocksDBWriteBatch.h" +#import "RocksDBWriteBatchIterator.h" @interface RocksDBIndexedWriteBatch : RocksDBWriteBatch +/** + Creates and returns an iterator over this indexed write batch. + + @discussion Keys will be iterated in the order given by the write batch's + comparator. For multiple updates on the same key, each update will be + returned as a separate entry, in the order of update time. + + @return An iterator over this indexed write batch. + + @see RocksDBWriteBatchIterator + */ +- (RocksDBWriteBatchIterator *)iterator; + @end diff --git a/ObjectiveRocks/RocksDBIndexedWriteBatch.mm b/ObjectiveRocks/RocksDBIndexedWriteBatch.mm index edd462e..812f658 100644 --- a/ObjectiveRocks/RocksDBIndexedWriteBatch.mm +++ b/ObjectiveRocks/RocksDBIndexedWriteBatch.mm @@ -8,18 +8,39 @@ #import "RocksDBIndexedWriteBatch.h" #import "RocksDBWriteBatch+Private.h" +#import "RocksDBWriteBatchIterator+Private.h" #import +@interface RocksDBIndexedWriteBatch () +{ + rocksdb::WriteBatchWithIndex *_writeBatchWithIndex; +} +@end + @implementation RocksDBIndexedWriteBatch +#pragma mark - Lifecycle + - (instancetype)initColumnFamily:(rocksdb::ColumnFamilyHandle *)columnFamily - andEncodingOptions:(RocksDBEncodingOptions *)options + andEncodingOptions:(RocksDBEncodingOptions *)options { self = [super initWithNativeWriteBatch:new rocksdb::WriteBatchWithIndex() columnFamily:columnFamily andEncodingOptions:options]; + if (self) { + _writeBatchWithIndex = static_cast(self.writeBatchBase); + } return self; } +#pragma mark - Iterator + +- (RocksDBWriteBatchIterator *)iterator +{ + rocksdb::WBWIIterator *nativeIterator = _writeBatchWithIndex->NewIterator(self.columnFamily); + return [[RocksDBWriteBatchIterator alloc] initWithWriteBatchIterator:nativeIterator + andEncodingOptions:self.encodingOptions]; +} + @end diff --git a/ObjectiveRocks/RocksDBWriteBatch+Private.h b/ObjectiveRocks/RocksDBWriteBatch+Private.h index 76030f7..b20ca5f 100644 --- a/ObjectiveRocks/RocksDBWriteBatch+Private.h +++ b/ObjectiveRocks/RocksDBWriteBatch+Private.h @@ -8,6 +8,7 @@ #import "RocksDBWriteBatch.h" #import "RocksDBIndexedWriteBatch.h" +#import "RocksDBEncodingOptions.h" namespace rocksdb { class ColumnFamilyHandle; @@ -23,6 +24,12 @@ namespace rocksdb { /** @brief The rocksdb::WriteBatchBase associated with this instance. */ @property (nonatomic, readonly) rocksdb::WriteBatchBase *writeBatchBase; +/** @brief The rocksdb::ColumnFamilyHandle associated with this instance. */ +@property (nonatomic, readonly) rocksdb::ColumnFamilyHandle *columnFamily; + +/** @brief The RocksDBEncodingOptions associated with this instance. */ +@property (nonatomic, readonly) RocksDBEncodingOptions *encodingOptions; + /** Initializes a new instance of `RocksDBWriteBatch` with the given native rocksdb::WriteBatchBase instance, encoding options and rocksdb::ColumnFamilyHandle instance. @@ -54,27 +61,3 @@ namespace rocksdb { andEncodingOptions:(RocksDBEncodingOptions *)options; @end - -/** - This category is intended to hide all C++ types from the public interface in order to - maintain a pure Objective-C API for Swift compatibility. - */ -@interface RocksDBIndexedWriteBatch (Private) - -/** - Initializes a new instance of `RocksDBIndexedWriteBatch` with the given options and - rocksdb::ColumnFamilyHandle instance. - - @discussion `RocksDBIndexedWriteBatch` builds a binary searchable index for all - the keys inserted. - - @param columnFamily The rocks::ColumnFamilyHandle instance. - @param options The Encoding options. - @return a newly-initialized instance of `RocksDBWriteBatch`. - - @see RocksDBEncodingOptions - */ -- (instancetype)initWithColumnFamily:(rocksdb::ColumnFamilyHandle *)columnFamily - andEncodingOptions:(RocksDBEncodingOptions *)options; - -@end diff --git a/ObjectiveRocks/RocksDBWriteBatchIterator+Private.h b/ObjectiveRocks/RocksDBWriteBatchIterator+Private.h new file mode 100644 index 0000000..373af80 --- /dev/null +++ b/ObjectiveRocks/RocksDBWriteBatchIterator+Private.h @@ -0,0 +1,34 @@ +// +// RocksDBWriteBatchIterator+Private.h +// ObjectiveRocks +// +// Created by Iska on 21/08/15. +// Copyright (c) 2015 BrainCookie. All rights reserved. +// + +#import "RocksDBWriteBatchIterator.h" + +namespace rocksdb { + class WBWIIterator; +} + +/** + This category is intended to hide all C++ types from the public interface in order to + maintain a pure Objective-C API for Swift compatibility. + */ +@interface RocksDBWriteBatchIterator (Private) + +/** + Initializes a new instance of `RocksDBWriteBatchIterator` with the given options and + rocksdb::WBWIIterator instance. + + @param iterator The rocks::WBWIIterator instance. + @param options The Encoding options. + @return a newly-initialized instance of `RocksDBWriteBatchIterator`. + + @see RocksDBEncodingOptions + */ +- (instancetype)initWithWriteBatchIterator:(rocksdb::WBWIIterator *)iterator + andEncodingOptions:(RocksDBEncodingOptions *)options; + +@end diff --git a/ObjectiveRocks/RocksDBWriteBatchIterator.h b/ObjectiveRocks/RocksDBWriteBatchIterator.h new file mode 100644 index 0000000..b1b3fd3 --- /dev/null +++ b/ObjectiveRocks/RocksDBWriteBatchIterator.h @@ -0,0 +1,96 @@ +// +// RocksDBWriteBatchIterator.h +// ObjectiveRocks +// +// Created by Iska on 20/08/15. +// Copyright (c) 2015 BrainCookie. All rights reserved. +// + +#import "RocksDBIterator.h" + + +typedef NS_ENUM(NSUInteger, RocksDBWriteBatchEntryType) +{ + RocksDBWriteBatchEntryTypePutRecord, + RocksDBWriteBatchEntryTypeMergeRecord, + RocksDBWriteBatchEntryTypeDeleteRecord, + RocksDBWriteBatchEntryTypeLogDataRecord +}; + +@interface RocksDBWriteBatchEntry : NSObject + +@property (nonatomic, readonly) RocksDBWriteBatchEntryType type; +@property (nonatomic, readonly) id key; +@property (nonatomic, readonly) id value; + +@end + +@interface RocksDBWriteBatchIterator : NSObject + +/** @brief Closes this Iterator */ +- (void)close; + +/** + An iterator is either positioned at a key/value pair, or not valid. + + @return `YES` if the iterator is valid, `NO` otherwise. + */ +- (BOOL)isValid; + +/** + Positions the iterator at the first key in the source. + The iterator `isValid` after this call if the source is not empty. + */ +- (void)seekToFirst; + +/** + Positions the iterator at the last key in the source. + The iterator `isValid` after this call if the source is not empty. + */ +- (void)seekToLast; + +/** + Positions the iterator at the first key in the source that at or past the given key. + The iterator `isValid` after this call if the source contains an entry that comes at + or past the given key. + + @param aKey The key to position the tartaritartor at. + */ +- (void)seekToKey:(id)aKey; + +/** + Moves to the next entry in the source. After this call, `isValid` is + true if the iterator was not positioned at the last entry in the source. + */ +- (void)next; + +/** + Moves to the previous entry in the source. After this call, `isValid` is + true iff the iterator was not positioned at the first entry in source. + */ +- (void)previous; + +/** + Returns the `RocksDBWriteBatchEntry` at the current position. + + @return The entry at the current position. + + @see RocksDBWriteBatchEntry` + */ +- (RocksDBWriteBatchEntry *)entry; + +/** + Executes a given block for each entry in the iterator. + + @param block The block to apply to entries. + */ +- (void)enumerateEntriesUsingBlock:(void (^)(RocksDBWriteBatchEntry *entry, BOOL *stop))block; + +/** + Executes a given block for each entry in the iterator in reverse order. + + @param block The block to apply to entries. + */ +- (void)reverseEnumerateEntriesUsingBlock:(void (^)(RocksDBWriteBatchEntry *entry, BOOL *stop))block; + +@end diff --git a/ObjectiveRocks/RocksDBWriteBatchIterator.mm b/ObjectiveRocks/RocksDBWriteBatchIterator.mm new file mode 100644 index 0000000..c0c54d5 --- /dev/null +++ b/ObjectiveRocks/RocksDBWriteBatchIterator.mm @@ -0,0 +1,129 @@ +// +// RocksDBWriteBatchIterator.m +// ObjectiveRocks +// +// Created by Iska on 20/08/15. +// Copyright (c) 2015 BrainCookie. All rights reserved. +// + +#import "RocksDBWriteBatchIterator.h" +#import "RocksDBSlice.h" + +#import + +@interface RocksDBWriteBatchEntry (Private) +@property (nonatomic, assign) RocksDBWriteBatchEntryType type; +@property (nonatomic, strong) id key; +@property (nonatomic, strong) id value; +@end + +@implementation RocksDBWriteBatchEntry +@synthesize type; +@synthesize key; +@synthesize value; +@end + +@interface RocksDBWriteBatchIterator () +{ + rocksdb::WBWIIterator *_iterator; + RocksDBEncodingOptions *_options; +} +@end + +@implementation RocksDBWriteBatchIterator + +#pragma mark - Lifecycle + +- (instancetype)initWithWriteBatchIterator:(rocksdb::WBWIIterator *)iterator + andEncodingOptions:(RocksDBEncodingOptions *)options +{ + self = [super init]; + if (self) { + _iterator = iterator; + _options = options; + } + return self; +} + +- (void)dealloc +{ + [self close]; +} + +- (void)close +{ + @synchronized(self) { + if (_iterator != nullptr) { + delete _iterator; + _iterator = nullptr; + } + } +} + +#pragma mark - Operations + +- (BOOL)isValid +{ + return _iterator->Valid(); +} + +- (void)seekToFirst +{ + _iterator->SeekToFirst(); +} + +- (void)seekToLast +{ + _iterator->SeekToLast(); +} + +- (void)seekToKey:(id)aKey +{ + if (aKey != nil) { + _iterator->Seek(SliceFromKey(aKey, _options, nil)); + } +} + +- (void)next +{ + _iterator->Next(); +} + +- (void)previous +{ + _iterator->Prev(); +} + +- (RocksDBWriteBatchEntry *)entry +{ + rocksdb::WriteEntry nativeEntry = _iterator->Entry(); + RocksDBWriteBatchEntry *writeEntry = [RocksDBWriteBatchEntry new]; + writeEntry.type = (RocksDBWriteBatchEntryType)nativeEntry.type; + writeEntry.key = DecodeKeySlice(nativeEntry.key, _options, nil); + writeEntry.value = DecodeKeySlice(nativeEntry.value, _options, nil); + return writeEntry; +} + +#pragma mark - Enumeration + +- (void)enumerateEntriesUsingBlock:(void (^)(RocksDBWriteBatchEntry *entry, BOOL *stop))block +{ + BOOL stop = NO; + + for (_iterator->SeekToFirst(); _iterator->Valid(); _iterator->Next()) { + if (block) block(self.entry, &stop); + if (stop == YES) break; + } +} + +- (void)reverseEnumerateEntriesUsingBlock:(void (^)(RocksDBWriteBatchEntry *entry, BOOL *stop))block +{ + BOOL stop = NO; + + for (_iterator->SeekToLast(); _iterator->Valid(); _iterator->Prev()) { + if (block) block(self.entry, &stop); + if (stop == YES) break; + } +} + +@end From 25aa007ffaed36d56a89ba3f7b6b701f11dea5e7 Mon Sep 17 00:00:00 2001 From: iska Date: Fri, 21 Aug 2015 16:10:52 +0200 Subject: [PATCH 17/76] Add new private header for RocksDB options-related classes --- ObjectiveRocks.xcodeproj/project.pbxproj | 2 + ObjectiveRocks/RocksDB.mm | 24 +----------- ObjectiveRocks/RocksDBOptions+Private.h | 47 ++++++++++++++++++++++++ 3 files changed, 51 insertions(+), 22 deletions(-) create mode 100644 ObjectiveRocks/RocksDBOptions+Private.h diff --git a/ObjectiveRocks.xcodeproj/project.pbxproj b/ObjectiveRocks.xcodeproj/project.pbxproj index 5818be1..13348f6 100644 --- a/ObjectiveRocks.xcodeproj/project.pbxproj +++ b/ObjectiveRocks.xcodeproj/project.pbxproj @@ -1147,6 +1147,7 @@ 62F8C6051B85632500E2577F /* RocksDBIterator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RocksDBIterator.h; sourceTree = ""; }; 62F8C6061B85632500E2577F /* RocksDBIterator.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RocksDBIterator.mm; sourceTree = ""; }; 62F9D8A11B86A74900C65860 /* RocksDBWriteBatchIterator+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "RocksDBWriteBatchIterator+Private.h"; sourceTree = ""; }; + 62F9D8A51B86AE8900C65860 /* RocksDBOptions+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "RocksDBOptions+Private.h"; sourceTree = ""; }; 62FC8B461A565B19003DF5C6 /* RocksDBBackupTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RocksDBBackupTests.mm; sourceTree = ""; }; /* End PBXFileReference section */ @@ -1256,6 +1257,7 @@ isa = PBXGroup; children = ( 6221B78A1A62970800D28BF5 /* RocksDB+Private.h */, + 62F9D8A51B86AE8900C65860 /* RocksDBOptions+Private.h */, 6221B78E1A62973500D28BF5 /* RocksDBColumnFamily+Private.h */, 6221B7921A62976F00D28BF5 /* RocksDBColumnFamilyMetaData+Private.h */, 6221B7961A6298AD00D28BF5 /* RocksDBIterator+Private.h */, diff --git a/ObjectiveRocks/RocksDB.mm b/ObjectiveRocks/RocksDB.mm index d64798a..4b3d433 100644 --- a/ObjectiveRocks/RocksDB.mm +++ b/ObjectiveRocks/RocksDB.mm @@ -8,6 +8,8 @@ #import "RocksDB.h" +#import "RocksDBOptions+Private.h" + #import "RocksDBColumnFamily.h" #import "RocksDBColumnFamily+Private.h" #import "RocksDBColumnFamilyMetaData+Private.h" @@ -37,28 +39,6 @@ @interface RocksDBColumnFamilyDescriptor (Private) @property (nonatomic, assign) std::vector *columnFamilies; @end -@interface RocksDBOptions (Private) -@property (nonatomic, assign) rocksdb::Options options; -@property (nonatomic, strong) RocksDBDatabaseOptions *databaseOptions; -@property (nonatomic, strong) RocksDBColumnFamilyOptions *columnFamilyOption; -@end - -@interface RocksDBDatabaseOptions (Private) -@property (nonatomic, assign) rocksdb::DBOptions options; -@end - -@interface RocksDBColumnFamilyOptions (Private) -@property (nonatomic, assign) rocksdb::ColumnFamilyOptions options; -@end - -@interface RocksDBReadOptions (Private) -@property (nonatomic, assign) rocksdb::ReadOptions options; -@end - -@interface RocksDBWriteOptions (Private) -@property (nonatomic, assign) rocksdb::WriteOptions options; -@end - @interface RocksDB () { NSString *_path; diff --git a/ObjectiveRocks/RocksDBOptions+Private.h b/ObjectiveRocks/RocksDBOptions+Private.h new file mode 100644 index 0000000..57d0e9d --- /dev/null +++ b/ObjectiveRocks/RocksDBOptions+Private.h @@ -0,0 +1,47 @@ +// +// RocksDBOptions+Private.h +// ObjectiveRocks +// +// Created by Iska on 21/08/15. +// Copyright (c) 2015 BrainCookie. All rights reserved. +// + +#import "RocksDBOptions.h" + +@class RocksDBDatabaseOptions; +@class RocksDBColumnFamilyOptions; + +namespace rocksdb +{ + class Options; + class DBOptions; + class ColumnFamilyOptions; + class ReadOptions; + class WriteOptions; +} + +/** + This category is intended to hide all C++ types from the public interface in order to + maintain a pure Objective-C API for Swift compatibility. + */ +@interface RocksDBOptions (Private) +@property (nonatomic, assign) rocksdb::Options options; +@property (nonatomic, strong) RocksDBDatabaseOptions *databaseOptions; +@property (nonatomic, strong) RocksDBColumnFamilyOptions *columnFamilyOption; +@end + +@interface RocksDBDatabaseOptions (Private) +@property (nonatomic, assign) const rocksdb::DBOptions options; +@end + +@interface RocksDBColumnFamilyOptions (Private) +@property (nonatomic, assign) rocksdb::ColumnFamilyOptions options; +@end + +@interface RocksDBReadOptions (Private) +@property (nonatomic, assign) rocksdb::ReadOptions options; +@end + +@interface RocksDBWriteOptions (Private) +@property (nonatomic, assign) rocksdb::WriteOptions options; +@end From 879b02c7965b0cb401be46ae086419ab175b7d13 Mon Sep 17 00:00:00 2001 From: iska Date: Fri, 21 Aug 2015 16:12:57 +0200 Subject: [PATCH 18/76] Add implementation for the GetFromBatch methods in Write Batch With Index --- ObjectiveRocks/RocksDBIndexedWriteBatch.h | 48 +++++++++++++++++ ObjectiveRocks/RocksDBIndexedWriteBatch.mm | 62 ++++++++++++++++++++++ 2 files changed, 110 insertions(+) diff --git a/ObjectiveRocks/RocksDBIndexedWriteBatch.h b/ObjectiveRocks/RocksDBIndexedWriteBatch.h index bccee43..0d24b28 100644 --- a/ObjectiveRocks/RocksDBIndexedWriteBatch.h +++ b/ObjectiveRocks/RocksDBIndexedWriteBatch.h @@ -9,8 +9,56 @@ #import "RocksDBWriteBatch.h" #import "RocksDBWriteBatchIterator.h" +@class RocksDBColumnFamily; +@class RocksDBReadOptions; + @interface RocksDBIndexedWriteBatch : RocksDBWriteBatch +/** + Returns the value for the given key in this Write Batch. + + @discussion This method will only read the key from this batch. + + @remark If the batch does not have enough data to resolve Merge operations, + MergeInProgress status may be returned. + + @param aKey The key for object. + @param columnFamily The column family from which the data should be read. + @param error If an error occurs, upon return contains an `NSError` object that describes the problem. + @return The object for the given key. + + @see RocksDBColumnFamily + */ +- (id)objectForKey:(id)aKey + inColumnFamily:(RocksDBColumnFamily *)columnFamily + error:(NSError **)error; + +/** + Returns the object for the given key. + + @discussion This function will query both this batch and the DB and then merge + the results using the DB's merge operator (if the batch contains any + merge requests). + + Setting the `RocksDBSnapshot` on the `RocksDBReadOptions` will affect what is read + from the DB but will not change which keys are read from the batch (the keys in + this batch do not yet belong to any snapshot and will be fetched + regardless). + + @param aKey The key for object. + @param columnFamily The column family from which the data should be read. + @param error If an error occurs, upon return contains an `NSError` object that describes the problem. + @param readOptions A block with a `RocksDBReadOptions` instance for configuring this read operation. + @return The object for the given key. + + @see RocksDBColumnFamily + @see RocksDBReadOptions + */ +- (id)objectForKeyIncludingDatabase:(id)aKey + inColumnFamily:(RocksDBColumnFamily *)columnFamily + error:(NSError **)error + readOptions:(void (^)(RocksDBReadOptions *readOptions))readOptions; + /** Creates and returns an iterator over this indexed write batch. diff --git a/ObjectiveRocks/RocksDBIndexedWriteBatch.mm b/ObjectiveRocks/RocksDBIndexedWriteBatch.mm index 812f658..34809fd 100644 --- a/ObjectiveRocks/RocksDBIndexedWriteBatch.mm +++ b/ObjectiveRocks/RocksDBIndexedWriteBatch.mm @@ -7,14 +7,23 @@ // #import "RocksDBIndexedWriteBatch.h" + +#import "RocksDB+Private.h" +#import "RocksDBOptions+Private.h" #import "RocksDBWriteBatch+Private.h" #import "RocksDBWriteBatchIterator+Private.h" +#import "RocksDBColumnFamily+Private.h" + +#import "RocksDBSlice.h" +#import +#import #import @interface RocksDBIndexedWriteBatch () { rocksdb::WriteBatchWithIndex *_writeBatchWithIndex; + RocksDB *database; } @end @@ -34,6 +43,59 @@ - (instancetype)initColumnFamily:(rocksdb::ColumnFamilyHandle *)columnFamily return self; } +#pragma mark - Queries + +- (id)objectForKey:(id)aKey + inColumnFamily:(RocksDBColumnFamily *)columnFamily + error:(NSError * __autoreleasing *)error +{ + rocksdb::ColumnFamilyHandle *columnFamilyHandle = columnFamily != nil ? columnFamily.columnFamily : nullptr; + + std::string value; + rocksdb::Status status = _writeBatchWithIndex->GetFromBatch(columnFamilyHandle, + database.db->GetDBOptions(), + SliceFromKey(aKey, self.encodingOptions, nil), + &value); + if (!status.ok()) { + NSError *temp = [RocksDBError errorWithRocksStatus:status]; + if (error && *error == nil) { + *error = temp; + } + return nil; + } + + return DecodeValueSlice(aKey, rocksdb::Slice(value), self.encodingOptions, error); +} + +- (id)objectForKeyIncludingDatabase:(id)aKey + inColumnFamily:(RocksDBColumnFamily *)columnFamily + error:(NSError * __autoreleasing *)error + readOptions:(void (^)(RocksDBReadOptions *readOptions))readOptionsBlock +{ + RocksDBReadOptions *readOptions = [database.readOptions copy]; + if (readOptionsBlock) { + readOptionsBlock(readOptions); + } + + rocksdb::ColumnFamilyHandle *columnFamilyHandle = columnFamily != nil ? columnFamily.columnFamily : nullptr; + + std::string value; + rocksdb::Status status = _writeBatchWithIndex->GetFromBatchAndDB(database.db, + readOptions.options, + columnFamilyHandle, + SliceFromKey(aKey, self.encodingOptions, nil), + &value); + if (!status.ok()) { + NSError *temp = [RocksDBError errorWithRocksStatus:status]; + if (error && *error == nil) { + *error = temp; + } + return nil; + } + + return DecodeValueSlice(aKey, rocksdb::Slice(value), self.encodingOptions, error); +} + #pragma mark - Iterator - (RocksDBWriteBatchIterator *)iterator From 579f1dfb425c4b5c0e7595d19bb6b74c4e82eb3f Mon Sep 17 00:00:00 2001 From: iska Date: Sat, 22 Aug 2015 00:47:35 +0200 Subject: [PATCH 19/76] Finalize implementation for the indexed write batch - Add RocksDB methods to return and perform an indexed write batch - Add private header with indexed write batch initializers The API is not optimal with the "error" argument being the last and should be optimized, it messes the Swift code a bit. --- ObjectiveRocks/RocksDB.h | 28 ++++++++++----- ObjectiveRocks/RocksDB.mm | 35 ++++++++++++++++--- ObjectiveRocks/RocksDBIndexedWriteBatch.h | 4 +++ ObjectiveRocks/RocksDBIndexedWriteBatch.mm | 19 ++++++---- ObjectiveRocks/RocksDBWriteBatch+Private.h | 28 +++++++++++++-- ObjectiveRocks/RocksDBWriteBatch.mm | 8 ++--- ObjectiveRocksTests/RocksDBWriteBatchTests.mm | 8 ++--- .../RocksDBWriteBatchTests.swift | 16 ++++----- 8 files changed, 108 insertions(+), 38 deletions(-) diff --git a/ObjectiveRocks/RocksDB.h b/ObjectiveRocks/RocksDB.h index fdada43..67e69db 100644 --- a/ObjectiveRocks/RocksDB.h +++ b/ObjectiveRocks/RocksDB.h @@ -13,6 +13,7 @@ #import "RocksDBReadOptions.h" #import "RocksDBWriteOptions.h" #import "RocksDBWriteBatch.h" +#import "RocksDBIndexedWriteBatch.h" #import "RocksDBIterator.h" #ifndef ROCKSDB_LITE @@ -728,32 +729,43 @@ */ - (RocksDBWriteBatch *)writeBatch; +/** + Returns an instance of an indexed write batch, which can be used to perform a set of + updates to the database atomically. + + @discussion The indexed write batch builds a searchable index, that can be read and + iterated before applying it to the database. + + @see RocksDBIndexedWriteBatch + */ +- (RocksDBIndexedWriteBatch *)indexedWriteBatch; + /** Performs a write batch on this DB. - + @discussion All the operations stored to the batch instance are written atomically to DB when the block is executed. - + @param batch A block with `RocksDBWriteBatch` instance and `RocksDBWriteOptions` to configure the batch. + @param error If an error occurs, upon return contains an `NSError` object that describes the problem. @return `YES` if the operation succeeded, `NO` otherwise @see RocksDBWriteBatch */ -- (BOOL)performWriteBatch:(void (^)(RocksDBWriteBatch *batch, RocksDBWriteOptions *options))batch; +- (BOOL)performWriteBatch:(void (^)(RocksDBWriteBatch *batch, RocksDBWriteOptions *options))batch error:(NSError **)error; /** - Performs a write batch on this DB. + Performs an indexed write batch on this DB. @discussion All the operations stored to the batch instance are written atomically to DB when the block is executed. - @param batch A block with `RocksDBWriteBatch` instance and `RocksDBWriteOptions` to configure the batch. - @param error If an error occurs, upon return contains an `NSError` object that describes the problem. + @param batch A block with `RocksDBIndexedWriteBatch` instance and `RocksDBWriteOptions` to configure the batch. @return `YES` if the operation succeeded, `NO` otherwise - @see RocksDBWriteBatch + @see RocksDBIndexedWriteBatch */ -- (BOOL)performWriteBatch:(void (^)(RocksDBWriteBatch *batch, RocksDBWriteOptions *options))batch error:(NSError **)error; +- (BOOL)performIndexedWriteBatch:(void (^)(RocksDBIndexedWriteBatch *batch, RocksDBWriteOptions *options))batch error:(NSError **)error; /** Applies a write batch instance on this DB. diff --git a/ObjectiveRocks/RocksDB.mm b/ObjectiveRocks/RocksDB.mm index 4b3d433..e85cfaa 100644 --- a/ObjectiveRocks/RocksDB.mm +++ b/ObjectiveRocks/RocksDB.mm @@ -687,15 +687,20 @@ - (BOOL)deleteDataForKey:(NSData *)aKey - (RocksDBWriteBatch *)writeBatch { - return [[RocksDBWriteBatch alloc] initWithColumnFamily:_columnFamily andEncodingOptions:(RocksDBEncodingOptions *)_options]; + return [[RocksDBWriteBatch alloc] initWithColumnFamily:_columnFamily + andEncodingOptions:(RocksDBEncodingOptions *)_options]; } -- (BOOL)performWriteBatch:(void (^)(RocksDBWriteBatch *batch, RocksDBWriteOptions *options))batchBlock +- (RocksDBIndexedWriteBatch *)indexedWriteBatch { - return [self performWriteBatch:batchBlock error:nil]; + return [[RocksDBIndexedWriteBatch alloc] initWithDBInstance:_db + columnFamily:_columnFamily + readOptions:_readOptions + andEncodingOptions:(RocksDBEncodingOptions *)_options]; } -- (BOOL)performWriteBatch:(void (^)(RocksDBWriteBatch *batch, RocksDBWriteOptions *options))batchBlock error:(NSError **)error +- (BOOL)performWriteBatch:(void (^)(RocksDBWriteBatch *batch, RocksDBWriteOptions *options))batchBlock + error:(NSError * __autoreleasing *)error { if (batchBlock == nil) return NO; @@ -716,6 +721,28 @@ - (BOOL)performWriteBatch:(void (^)(RocksDBWriteBatch *batch, RocksDBWriteOption return YES; } +- (BOOL)performIndexedWriteBatch:(void (^)(RocksDBIndexedWriteBatch *batch, RocksDBWriteOptions *options))batchBlock + error:(NSError * __autoreleasing *)error +{ + if (batchBlock == nil) return NO; + + RocksDBIndexedWriteBatch *writeBatch = [self indexedWriteBatch]; + RocksDBWriteOptions *writeOptions = [_writeOptions copy]; + + batchBlock(writeBatch, writeOptions); + rocksdb::WriteBatch *batch = writeBatch.writeBatchBase->GetWriteBatch(); + rocksdb::Status status = _db->Write(writeOptions.options, batch); + + if (!status.ok()) { + NSError *temp = [RocksDBError errorWithRocksStatus:status]; + if (error && *error == nil) { + *error = temp; + } + return NO; + } + return YES; +} + - (BOOL)applyWriteBatch:(RocksDBWriteBatch *)writeBatch withWriteOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptionsBlock { return [self applyWriteBatch:writeBatch error:nil writeOptions:writeOptionsBlock]; diff --git a/ObjectiveRocks/RocksDBIndexedWriteBatch.h b/ObjectiveRocks/RocksDBIndexedWriteBatch.h index 0d24b28..e7fdbdc 100644 --- a/ObjectiveRocks/RocksDBIndexedWriteBatch.h +++ b/ObjectiveRocks/RocksDBIndexedWriteBatch.h @@ -12,6 +12,10 @@ @class RocksDBColumnFamily; @class RocksDBReadOptions; +/** + A `RocksDBIndexedWriteBatch` builds a binary searchable index for all the keys + inserted, which can be iterated via the `RocksDBWriteBatchIterator`. + */ @interface RocksDBIndexedWriteBatch : RocksDBWriteBatch /** diff --git a/ObjectiveRocks/RocksDBIndexedWriteBatch.mm b/ObjectiveRocks/RocksDBIndexedWriteBatch.mm index 34809fd..a1bf640 100644 --- a/ObjectiveRocks/RocksDBIndexedWriteBatch.mm +++ b/ObjectiveRocks/RocksDBIndexedWriteBatch.mm @@ -22,8 +22,9 @@ @interface RocksDBIndexedWriteBatch () { + rocksdb::DB *_db; + RocksDBReadOptions *_readOptions; rocksdb::WriteBatchWithIndex *_writeBatchWithIndex; - RocksDB *database; } @end @@ -31,13 +32,17 @@ @implementation RocksDBIndexedWriteBatch #pragma mark - Lifecycle -- (instancetype)initColumnFamily:(rocksdb::ColumnFamilyHandle *)columnFamily - andEncodingOptions:(RocksDBEncodingOptions *)options +- (instancetype)initWithDBInstance:(rocksdb::DB *)db + columnFamily:(rocksdb::ColumnFamilyHandle *)columnFamily + readOptions:(RocksDBReadOptions *)readOptions + andEncodingOptions:(RocksDBEncodingOptions *)encodingOptions { self = [super initWithNativeWriteBatch:new rocksdb::WriteBatchWithIndex() columnFamily:columnFamily - andEncodingOptions:options]; + andEncodingOptions:encodingOptions]; if (self) { + _db = db; + _readOptions = [readOptions copy]; _writeBatchWithIndex = static_cast(self.writeBatchBase); } return self; @@ -53,7 +58,7 @@ - (id)objectForKey:(id)aKey std::string value; rocksdb::Status status = _writeBatchWithIndex->GetFromBatch(columnFamilyHandle, - database.db->GetDBOptions(), + _db->GetDBOptions(), SliceFromKey(aKey, self.encodingOptions, nil), &value); if (!status.ok()) { @@ -72,7 +77,7 @@ - (id)objectForKeyIncludingDatabase:(id)aKey error:(NSError * __autoreleasing *)error readOptions:(void (^)(RocksDBReadOptions *readOptions))readOptionsBlock { - RocksDBReadOptions *readOptions = [database.readOptions copy]; + RocksDBReadOptions *readOptions = [_readOptions copy]; if (readOptionsBlock) { readOptionsBlock(readOptions); } @@ -80,7 +85,7 @@ - (id)objectForKeyIncludingDatabase:(id)aKey rocksdb::ColumnFamilyHandle *columnFamilyHandle = columnFamily != nil ? columnFamily.columnFamily : nullptr; std::string value; - rocksdb::Status status = _writeBatchWithIndex->GetFromBatchAndDB(database.db, + rocksdb::Status status = _writeBatchWithIndex->GetFromBatchAndDB(_db, readOptions.options, columnFamilyHandle, SliceFromKey(aKey, self.encodingOptions, nil), diff --git a/ObjectiveRocks/RocksDBWriteBatch+Private.h b/ObjectiveRocks/RocksDBWriteBatch+Private.h index b20ca5f..e2fb152 100644 --- a/ObjectiveRocks/RocksDBWriteBatch+Private.h +++ b/ObjectiveRocks/RocksDBWriteBatch+Private.h @@ -8,13 +8,15 @@ #import "RocksDBWriteBatch.h" #import "RocksDBIndexedWriteBatch.h" -#import "RocksDBEncodingOptions.h" namespace rocksdb { + class DB; class ColumnFamilyHandle; class WriteBatchBase; } +@class RocksDBEncodingOptions; + /** This category is intended to hide all C++ types from the public interface in order to maintain a pure Objective-C API for Swift compatibility. @@ -45,7 +47,7 @@ namespace rocksdb { */ - (instancetype)initWithNativeWriteBatch:(rocksdb::WriteBatchBase *)writeBatchBase columnFamily:(rocksdb::ColumnFamilyHandle *)columnFamily - andEncodingOptions:(RocksDBEncodingOptions *)options; + andEncodingOptions:(RocksDBEncodingOptions *)encodingOptions; /** Initializes a new instance of a simple `RocksDBWriteBatch` with the given options and @@ -58,6 +60,26 @@ namespace rocksdb { @see RocksDBEncodingOptions */ - (instancetype)initWithColumnFamily:(rocksdb::ColumnFamilyHandle *)columnFamily - andEncodingOptions:(RocksDBEncodingOptions *)options; + andEncodingOptions:(RocksDBEncodingOptions *)encodingOptions; + +@end + +@interface RocksDBIndexedWriteBatch (Private) + +/** + Initializes a new instance of a simple `RocksDBIndexedWriteBatch` with the given DB instance, + rocksdb::ColumnFamilyHandle instance and encoding options. + + @param db The rocksdb::DB instance. + @param columnFamily The rocks::ColumnFamilyHandle instance. + @param options The Encoding options. + @return a newly-initialized instance of `RocksDBIndexedWriteBatch`. + + @see RocksDBEncodingOptions + */ +- (instancetype)initWithDBInstance:(rocksdb::DB *)db + columnFamily:(rocksdb::ColumnFamilyHandle *)columnFamily + readOptions:(RocksDBReadOptions *)readOptions + andEncodingOptions:(RocksDBEncodingOptions *)encodingOptions; @end diff --git a/ObjectiveRocks/RocksDBWriteBatch.mm b/ObjectiveRocks/RocksDBWriteBatch.mm index 0ca414d..ad00c22 100644 --- a/ObjectiveRocks/RocksDBWriteBatch.mm +++ b/ObjectiveRocks/RocksDBWriteBatch.mm @@ -29,22 +29,22 @@ @implementation RocksDBWriteBatch #pragma mark - Lifecycle - (instancetype)initWithColumnFamily:(rocksdb::ColumnFamilyHandle *)columnFamily - andEncodingOptions:(RocksDBEncodingOptions *)options + andEncodingOptions:(RocksDBEncodingOptions *)encodingOptions { return [self initWithNativeWriteBatch:new rocksdb::WriteBatch() columnFamily:columnFamily - andEncodingOptions:options]; + andEncodingOptions:encodingOptions]; } - (instancetype)initWithNativeWriteBatch:(rocksdb::WriteBatchBase *)writeBatchBase columnFamily:(rocksdb::ColumnFamilyHandle *)columnFamily - andEncodingOptions:(RocksDBEncodingOptions *)options + andEncodingOptions:(RocksDBEncodingOptions *)encodingOptions { self = [super init]; if (self) { _writeBatchBase = writeBatchBase; _columnFamily = columnFamily; - _encodingOptions = options; + _encodingOptions = encodingOptions; } return self; } diff --git a/ObjectiveRocksTests/RocksDBWriteBatchTests.mm b/ObjectiveRocksTests/RocksDBWriteBatchTests.mm index 49d632b..e9c9f6b 100644 --- a/ObjectiveRocksTests/RocksDBWriteBatchTests.mm +++ b/ObjectiveRocksTests/RocksDBWriteBatchTests.mm @@ -24,7 +24,7 @@ - (void)testWriteBatch_Perform [batch setData:Data(@"Value 1") forKey:Data(@"Key 1")]; [batch setData:Data(@"Value 2") forKey:Data(@"Key 2")]; [batch setData:Data(@"Value 3") forKey:Data(@"Key 3")]; - }]; + } error:nil]; XCTAssertEqualObjects([_rocks dataForKey:Data(@"Key 1")], Data(@"Value 1")); XCTAssertEqualObjects([_rocks dataForKey:Data(@"Key 2")], Data(@"Value 2")); @@ -44,7 +44,7 @@ - (void)testWriteBatch_Perform_DeleteOps [batch deleteDataForKey:Data(@"Key 1")]; [batch setData:Data(@"Value 2") forKey:Data(@"Key 2")]; [batch setData:Data(@"Value 3") forKey:Data(@"Key 3")]; - }]; + } error:nil]; XCTAssertEqualObjects([_rocks dataForKey:Data(@"Key 1")], nil); XCTAssertEqualObjects([_rocks dataForKey:Data(@"Key 2")], Data(@"Value 2")); @@ -66,7 +66,7 @@ - (void)testWriteBatch_Perform_ClearOps [batch setData:Data(@"Value 3") forKey:Data(@"Key 3")]; [batch clear]; [batch setData:Data(@"Value 4") forKey:Data(@"Key 4")]; - }]; + } error:nil]; XCTAssertEqualObjects([_rocks dataForKey:Data(@"Key 1")], Data(@"Value 1")); XCTAssertEqualObjects([_rocks dataForKey:Data(@"Key 2")], nil); @@ -216,7 +216,7 @@ - (void)testWriteBatch_Encoded [batch setObject:@"Value 2" forKey:@"Key 2"]; [batch setObject:@"Value 3" forKey:@"Key 3"]; [batch deleteObjectForKey:@"Key 1"]; - }]; + } error:nil]; XCTAssertEqualObjects([_rocks objectForKey:@"Key 1"], nil); XCTAssertEqualObjects([_rocks objectForKey:@"Key 2"], @"Value 2"); diff --git a/ObjectiveRocksTests/RocksDBWriteBatchTests.swift b/ObjectiveRocksTests/RocksDBWriteBatchTests.swift index 1e89c5a..05be3cb 100644 --- a/ObjectiveRocksTests/RocksDBWriteBatchTests.swift +++ b/ObjectiveRocksTests/RocksDBWriteBatchTests.swift @@ -15,11 +15,11 @@ class RocksDBWriteBatchTests : RocksDBTests { options.createIfMissing = true }) - rocks.performWriteBatch { (batch, options) -> Void in + rocks.performWriteBatch ({ (batch, options) -> Void in batch.setData(Data("value 1"), forKey: Data("key 1")) batch.setData(Data("value 2"), forKey: Data("key 2")) batch.setData(Data("value 3"), forKey: Data("key 3")) - } + }, error: nil); XCTAssertEqual(rocks.dataForKey(Data("key 1")), Data("value 1")); XCTAssertEqual(rocks.dataForKey(Data("key 2")), Data("value 2")); @@ -34,11 +34,11 @@ class RocksDBWriteBatchTests : RocksDBTests { rocks.setData(Data("value 1"), forKey: Data("key 1")) - rocks.performWriteBatch { (batch, options) -> Void in + rocks.performWriteBatch ({ (batch, options) -> Void in batch.deleteDataForKey(Data("key 1")) batch.setData(Data("value 2"), forKey: Data("key 2")) batch.setData(Data("value 3"), forKey: Data("key 3")) - } + }, error: nil); XCTAssertNil(rocks.dataForKey(Data("Key 1"))) XCTAssertEqual(rocks.dataForKey(Data("key 2")), Data("value 2")); @@ -53,13 +53,13 @@ class RocksDBWriteBatchTests : RocksDBTests { rocks.setData(Data("value 1"), forKey: Data("key 1")) - rocks.performWriteBatch { (batch, options) -> Void in + rocks.performWriteBatch ({ (batch, options) -> Void in batch.deleteDataForKey(Data("key 1")) batch.setData(Data("value 2"), forKey: Data("key 2")) batch.setData(Data("value 3"), forKey: Data("key 3")) batch.clear() batch.setData(Data("value 4"), forKey: Data("key 4")) - } + }, error: nil); XCTAssertEqual(rocks.dataForKey(Data("key 1")), Data("value 1")); XCTAssertNil(rocks.dataForKey(Data("Key 2"))) @@ -199,11 +199,11 @@ class RocksDBWriteBatchTests : RocksDBTests { rocks.setData(Data("value 1"), forKey: Data("key 1")) - rocks.performWriteBatch { (batch, options) -> Void in + rocks.performWriteBatch ({ (batch, options) -> Void in batch.setObject("value 2", forKey: "key 2") batch.setObject("value 3", forKey: "key 3") batch.deleteObjectForKey("value 1") - } + }, error: nil); XCTAssertNil(rocks.objectForKey("Key 1")) XCTAssertEqual(rocks.objectForKey("key 2") as! NSString, "value 2"); From 5397cb9f5ebef188dcfff8c126d73cdb13609293 Mon Sep 17 00:00:00 2001 From: iska Date: Fri, 18 Sep 2015 01:10:51 +0200 Subject: [PATCH 20/76] Add test classes stubs for the Indexed Write Batch --- ObjectiveRocks.xcodeproj/project.pbxproj | 14 +++++++ .../RocksDBIndexedWriteBatch.swift | 9 +++++ .../RocksDBIndexedWriteBatchTests.m | 40 +++++++++++++++++++ 3 files changed, 63 insertions(+) create mode 100644 ObjectiveRocksTests/RocksDBIndexedWriteBatch.swift create mode 100644 ObjectiveRocksTests/RocksDBIndexedWriteBatchTests.m diff --git a/ObjectiveRocks.xcodeproj/project.pbxproj b/ObjectiveRocks.xcodeproj/project.pbxproj index 13348f6..d020570 100644 --- a/ObjectiveRocks.xcodeproj/project.pbxproj +++ b/ObjectiveRocks.xcodeproj/project.pbxproj @@ -151,6 +151,10 @@ 625F8F851A5A229C007796BA /* RocksDBMemTableRepFactory.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 625F8F271A59D7B1007796BA /* RocksDBMemTableRepFactory.h */; }; 625F8F861A5A229C007796BA /* RocksDBSnapshot.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 620494851A3284A800A0E950 /* RocksDBSnapshot.h */; }; 625F8F871A5A229C007796BA /* RocksDBMergeOperator.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 62EEC4B51A34FEE100624DA2 /* RocksDBMergeOperator.h */; }; + 62662E931B8FCA8C008B4EF5 /* RocksDBIndexedWriteBatchTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 62662E921B8FCA8C008B4EF5 /* RocksDBIndexedWriteBatchTests.m */; }; + 62662E941B8FCA8C008B4EF5 /* RocksDBIndexedWriteBatchTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 62662E921B8FCA8C008B4EF5 /* RocksDBIndexedWriteBatchTests.m */; }; + 62662E961B8FCBA0008B4EF5 /* RocksDBIndexedWriteBatch.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62662E951B8FCBA0008B4EF5 /* RocksDBIndexedWriteBatch.swift */; }; + 62662E971B8FCBA0008B4EF5 /* RocksDBIndexedWriteBatch.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62662E951B8FCBA0008B4EF5 /* RocksDBIndexedWriteBatch.swift */; }; 62685CB91A2E600A009401B1 /* RocksDBWriteBatchTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62685CB81A2E600A009401B1 /* RocksDBWriteBatchTests.mm */; }; 628B0CEA1A1C104D0099C39B /* RocksDBError.mm in Sources */ = {isa = PBXBuildFile; fileRef = 628B0CE91A1C104D0099C39B /* RocksDBError.mm */; }; 629416631A69DFB000AA0498 /* RocksDBPrefixExtractorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 629416621A69DFB000AA0498 /* RocksDBPrefixExtractorTests.swift */; }; @@ -705,6 +709,8 @@ 625F8F301A59E22E007796BA /* RocksDBPlainTableOptions.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RocksDBPlainTableOptions.mm; sourceTree = ""; }; 625F8F331A59E648007796BA /* RocksDBCuckooTableOptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RocksDBCuckooTableOptions.h; sourceTree = ""; }; 625F8F341A59E648007796BA /* RocksDBCuckooTableOptions.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RocksDBCuckooTableOptions.mm; sourceTree = ""; }; + 62662E921B8FCA8C008B4EF5 /* RocksDBIndexedWriteBatchTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RocksDBIndexedWriteBatchTests.m; sourceTree = ""; }; + 62662E951B8FCBA0008B4EF5 /* RocksDBIndexedWriteBatch.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RocksDBIndexedWriteBatch.swift; sourceTree = ""; }; 62685CB81A2E600A009401B1 /* RocksDBWriteBatchTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RocksDBWriteBatchTests.mm; sourceTree = ""; }; 626A7D4C1A27EC570098A979 /* .gitignore */ = {isa = PBXFileReference; lastKnownFileType = text; path = .gitignore; sourceTree = ""; }; 626A7D4D1A27EC570098A979 /* API.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = API.md; sourceTree = ""; }; @@ -1227,6 +1233,7 @@ 6216360C1A62C9FB00B132CE /* RocksDBBasicTests.swift */, 6251A3741B783DBC009BABD5 /* RocksDBReadOnlyTests.swift */, 6216360F1A62D1BE00B132CE /* RocksDBWriteBatchTests.swift */, + 62662E951B8FCBA0008B4EF5 /* RocksDBIndexedWriteBatch.swift */, 62A37D131A632316003F6095 /* RocksDBIteratorTests.swift */, 62102D411A643A13007E63F0 /* RocksDBComparatorTests.swift */, 621636141A62E47A00B132CE /* RocksDBSnapshotTests.swift */, @@ -1504,6 +1511,7 @@ 6299F8551A17B7AD00123F56 /* RocksDBBasicTests.mm */, 6251A3721B783DA7009BABD5 /* RocksDBReadOnlyTests.m */, 62685CB81A2E600A009401B1 /* RocksDBWriteBatchTests.mm */, + 62662E921B8FCA8C008B4EF5 /* RocksDBIndexedWriteBatchTests.m */, 62385EB31A2FCFB100493F18 /* RocksDBIteratorTests.mm */, 62385EB51A2FD05500493F18 /* RocksDBComparatorTests.mm */, 623DC2551A335BAF00B61B18 /* RocksDBSnapshotTests.mm */, @@ -2287,6 +2295,8 @@ 6299F8011A17B28200123F56 /* Project object */ = { isa = PBXProject; attributes = { + LastSwiftMigration = 0700; + LastSwiftUpdateCheck = 0700; LastUpgradeCheck = 0630; ORGANIZATIONNAME = BrainCookie; TargetAttributes = { @@ -2560,10 +2570,12 @@ 6251A3751B783DBC009BABD5 /* RocksDBReadOnlyTests.swift in Sources */, 6221B7A71A629E1B00D28BF5 /* RockDBTests.swift in Sources */, 621636181A631CE100B132CE /* RocksDBCheckpointTests.swift in Sources */, + 62662E961B8FCBA0008B4EF5 /* RocksDBIndexedWriteBatch.swift in Sources */, 625F8F251A59D11D007796BA /* RocksDBCheckpointTests.mm in Sources */, 6249A3CC1A4A43CA00949B07 /* RocksDBTests.mm in Sources */, 62A8B06B1A5900540069B4C8 /* RocksDBStatisticsTests.mm in Sources */, 624566C81A51DA79009AC3FB /* RocksDBColumnFamilyTests.mm in Sources */, + 62662E931B8FCA8C008B4EF5 /* RocksDBIndexedWriteBatchTests.m in Sources */, 62385EB41A2FCFB100493F18 /* RocksDBIteratorTests.mm in Sources */, 621636151A62E47A00B132CE /* RocksDBSnapshotTests.swift in Sources */, 62385EB61A2FD05500493F18 /* RocksDBComparatorTests.mm in Sources */, @@ -2767,9 +2779,11 @@ 62F4AA7F1A6AAFD700489D6C /* RocksDBColumnFamilyTests.swift in Sources */, 6221B7A81A629E2700D28BF5 /* RockDBTests.swift in Sources */, 62456CBC1A66FE0500329F11 /* RocksDBMergeOperatorTests.swift in Sources */, + 62662E971B8FCBA0008B4EF5 /* RocksDBIndexedWriteBatch.swift in Sources */, 62A8B0481A58C40A0069B4C8 /* RocksDBBasicTests.mm in Sources */, 62A8B0491A58C40A0069B4C8 /* RocksDBTests.mm in Sources */, 62102D431A643A13007E63F0 /* RocksDBComparatorTests.swift in Sources */, + 62662E941B8FCA8C008B4EF5 /* RocksDBIndexedWriteBatchTests.m in Sources */, 621636161A62E47A00B132CE /* RocksDBSnapshotTests.swift in Sources */, 629416641A69DFB000AA0498 /* RocksDBPrefixExtractorTests.swift in Sources */, 621636111A62D1BE00B132CE /* RocksDBWriteBatchTests.swift in Sources */, diff --git a/ObjectiveRocksTests/RocksDBIndexedWriteBatch.swift b/ObjectiveRocksTests/RocksDBIndexedWriteBatch.swift new file mode 100644 index 0000000..bcff3d4 --- /dev/null +++ b/ObjectiveRocksTests/RocksDBIndexedWriteBatch.swift @@ -0,0 +1,9 @@ +// +// RocksDBIndexedWriteBatch.swift +// ObjectiveRocks +// +// Created by Iska on 28/08/15. +// Copyright (c) 2015 BrainCookie. All rights reserved. +// + +import Foundation diff --git a/ObjectiveRocksTests/RocksDBIndexedWriteBatchTests.m b/ObjectiveRocksTests/RocksDBIndexedWriteBatchTests.m new file mode 100644 index 0000000..4af4a88 --- /dev/null +++ b/ObjectiveRocksTests/RocksDBIndexedWriteBatchTests.m @@ -0,0 +1,40 @@ +// +// RocksDBIndexedWriteBatchTests.m +// ObjectiveRocks +// +// Created by Iska on 28/08/15. +// Copyright (c) 2015 BrainCookie. All rights reserved. +// + +#import +#import + +@interface RocksDBIndexedWriteBatchTests : RocksDBTests + +@end + +@implementation RocksDBIndexedWriteBatchTests + +- (void)setUp { + [super setUp]; + // Put setup code here. This method is called before the invocation of each test method in the class. +} + +- (void)tearDown { + // Put teardown code here. This method is called after the invocation of each test method in the class. + [super tearDown]; +} + +- (void)testExample { + // This is an example of a functional test case. + XCTAssert(YES, @"Pass"); +} + +- (void)testPerformanceExample { + // This is an example of a performance test case. + [self measureBlock:^{ + // Put the code you want to measure the time of here. + }]; +} + +@end From 1db930c5f22fca9a68c6a6b0bec778ba0495c58d Mon Sep 17 00:00:00 2001 From: iska Date: Fri, 18 Sep 2015 01:11:20 +0200 Subject: [PATCH 21/76] Update gitignore file --- .gitignore | 31 +++++++++++++++++++++++++------ 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index bd9f093..05096f6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1,12 @@ -# OS X -.DS_Store - # Xcode +# +# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore + +## Build generated build/ +DerivedData + +## Various settings *.pbxuser !default.pbxuser *.mode1v3 @@ -12,13 +16,28 @@ build/ *.perspectivev3 !default.perspectivev3 xcuserdata + +## Other *.xccheckout -profile *.moved-aside -DerivedData +*.xcuserstate +*.xcscmblueprint + +## Obj-C/Swift specific *.hmap *.ipa # CocoaPods -Pods +# +# We recommend against adding the Pods directory to your .gitignore. However +# you should judge for yourself, the pros and cons are mentioned at: +# http://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control +# +#Pods/ + +# Carthage +# +# Add this line if you want to avoid checking in source code from Carthage dependencies. +# Carthage/Checkouts +Carthage/Build From cbfe1e327c6799db7c6694a0e3d0c6f5e79d40c7 Mon Sep 17 00:00:00 2001 From: iska Date: Thu, 5 Nov 2015 21:56:53 +0100 Subject: [PATCH 22/76] Remove RocksDB method without error parameter Makes the API more type-safe and Swift-friendly --- ObjectiveRocks/RocksDB.h | 96 ------------------- ObjectiveRocksTests/RocksDBBackupTests.mm | 66 ++++++------- ObjectiveRocksTests/RocksDBBasicTests.mm | 32 +++---- ObjectiveRocksTests/RocksDBCheckpointTests.mm | 12 +-- .../RocksDBColumnFamilyMetadataTests.mm | 8 +- .../RocksDBColumnFamilyTests.mm | 66 ++++++------- ObjectiveRocksTests/RocksDBComparatorTests.mm | 24 ++--- .../RocksDBIndexedWriteBatchTests.m | 23 +---- ObjectiveRocksTests/RocksDBIteratorTests.mm | 94 +++++++++--------- .../RocksDBMergeOperatorTests.mm | 38 ++++---- .../RocksDBPrefixExtractorTests.mm | 24 ++--- ObjectiveRocksTests/RocksDBPropertiesTests.mm | 14 +-- ObjectiveRocksTests/RocksDBReadOnlyTests.m | 2 +- ObjectiveRocksTests/RocksDBSnapshotTests.mm | 38 ++++---- ObjectiveRocksTests/RocksDBStatisticsTests.mm | 10 +- ObjectiveRocksTests/RocksDBWriteBatchTests.mm | 70 +++++++------- 16 files changed, 250 insertions(+), 367 deletions(-) diff --git a/ObjectiveRocks/RocksDB.h b/ObjectiveRocks/RocksDB.h index 67e69db..9c96e09 100644 --- a/ObjectiveRocks/RocksDB.h +++ b/ObjectiveRocks/RocksDB.h @@ -244,15 +244,6 @@ /// @name Write operations ///-------------------------------- -/** - Stores the given key-object pair into the DB. - - @param anObject The object for key. - @param aKey The key for object. - @return `YES` if the operation succeeded, `NO` otherwise - */ -- (BOOL)setObject:(id)anObject forKey:(id)aKey; - /** Stores the given key-object pair into the DB. @@ -292,20 +283,6 @@ */ - (BOOL)setObject:(id)anObject forKey:(id)aKey error:(NSError **)error writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions; -/** - Stores the given data object under the given data key in the DB. - - @param data The data for key. - @param aKey The key for object. - @return `YES` if the write succeeded, `NO` otherwise - - @see RocksDB setObject:forKey: - @see RocksDB setObject:forKey:error: - @see RocksDB setObject:forKey:writeOptions: - @see RocksDB setObject:forKey:error:writeOptions: - */ -- (BOOL)setData:(NSData *)data forKey:(NSData *)aKey; - /** Stores the given data object under the given data key in the DB. @@ -365,25 +342,10 @@ ///-------------------------------- -- (BOOL)mergeOperation:(NSString *)aMerge forKey:(id)aKey; - (BOOL)mergeOperation:(NSString *)aMerge forKey:(id)aKey error:(NSError **)error; - (BOOL)mergeOperation:(NSString *)aMerge forKey:(id)aKey writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions; - (BOOL)mergeOperation:(NSString *)aMerge forKey:(id)aKey error:(NSError **)error writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions; -/** - Merges the given object with the existing data for the given key. - - @discussion A merge is an atomic read-modify-write operation, whose semantics are defined - by the user-provided merge operator. - - @param anObject The object being merged. - @param aKey The key for the object. - @return `YES` if the operation succeeded, `NO` otherwise - - @see RocksDBMergeOperator - */ -- (BOOL)mergeObject:(id)anObject forKey:(id)aKey; - /** Merges the given object with the existing data for the given key. @@ -432,23 +394,6 @@ */ - (BOOL)mergeObject:(id)anObject forKey:(id)aKey error:(NSError **)error writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions; -/** - Merges the given data object with the existing data for the given key. - - @discussion A merge is an atomic read-modify-write operation, whose semantics are defined - by the user-provided merge operator. - - @param data The data being merged. - @param aKey The key for the data. - @return `YES` if the operation succeeded, `NO` otherwise - - @see RocksDBMergeOperator - @see RocksDB mergeObject:forKey: - @see RocksDB mergeObject:forKey:error: - @see RocksDB mergeObject:forKey:writeOptions: - @see RocksDB mergeObject:forKey:error:writeOptions: - */ -- (BOOL)mergeData:(NSData *)data forKey:(NSData *)aKey; /** Merges the given data object with the existing data for the given key. @@ -508,14 +453,6 @@ /// @name Read operations ///-------------------------------- -/** - Returns the object for the given key. - - @peram aKey The key for object. - @return The object for the given key. -*/ -- (id)objectForKey:(id)aKey; - /** Returns the object for the given key. @@ -548,19 +485,6 @@ */ - (id)objectForKey:(id)aKey error:(NSError **)error readOptions:(void (^)(RocksDBReadOptions *readOptions))readOptions; -/** - Returns the data for the given key. - - @peram aKey The key for data. - @return The data object for the given key. - - @see RocksDB objectForKey: - @see RocksDB objectForKey:error: - @see RocksDB objectForKey:readOptions: - @see RocksDB objectForKey:error:readOptions: - */ -- (NSData *)dataForKey:(NSData *)aKey; - /** Returns the data for the given key. @@ -614,13 +538,6 @@ /// @name Delete operations ///-------------------------------- -/** - Deletes the object for the given key. - - @peram aKey The key to delete. - @return `YES` if the operation succeeded, `NO` otherwise -*/ -- (BOOL)deleteObjectForKey:(id)aKey; /** Deletes the object for the given key. @@ -653,19 +570,6 @@ */ - (BOOL)deleteObjectForKey:(id)aKey error:(NSError **)error writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions; -/** - Deletes the data for the given key. - - @peram aKey The key to delete. - @return `YES` if the operation succeeded, `NO` otherwise - - @see RocksDB deleteObjectForKey: - @see RocksDB deleteObjectForKey:error: - @see RocksDB deleteObjectForKey:readOptions: - @see RocksDB deleteObjectForKey:error:readOptions: - */ -- (BOOL)deleteDataForKey:(NSData *)aKey; - /** Deletes the data for the given key. diff --git a/ObjectiveRocksTests/RocksDBBackupTests.mm b/ObjectiveRocksTests/RocksDBBackupTests.mm index 7c638fa..a1b39a9 100644 --- a/ObjectiveRocksTests/RocksDBBackupTests.mm +++ b/ObjectiveRocksTests/RocksDBBackupTests.mm @@ -20,9 +20,9 @@ - (void)testBackup_Create options.createIfMissing = YES; }]; - [_rocks setData:Data(@"value 1") forKey:Data(@"key 1")]; - [_rocks setData:Data(@"value 2") forKey:Data(@"key 2")]; - [_rocks setData:Data(@"value 3") forKey:Data(@"key 3")]; + [_rocks setData:Data(@"value 1") forKey:Data(@"key 1") error:nil]; + [_rocks setData:Data(@"value 2") forKey:Data(@"key 2") error:nil]; + [_rocks setData:Data(@"value 3") forKey:Data(@"key 3") error:nil]; RocksDBBackupEngine *backupEngine = [[RocksDBBackupEngine alloc] initWithPath:_backupPath]; @@ -41,9 +41,9 @@ - (void)testBackup_BackupInfo options.createIfMissing = YES; }]; - [_rocks setData:Data(@"value 1") forKey:Data(@"key 1")]; - [_rocks setData:Data(@"value 2") forKey:Data(@"key 2")]; - [_rocks setData:Data(@"value 3") forKey:Data(@"key 3")]; + [_rocks setData:Data(@"value 1") forKey:Data(@"key 1") error:nil]; + [_rocks setData:Data(@"value 2") forKey:Data(@"key 2") error:nil]; + [_rocks setData:Data(@"value 3") forKey:Data(@"key 3") error:nil]; RocksDBBackupEngine *backupEngine = [[RocksDBBackupEngine alloc] initWithPath:_backupPath]; @@ -69,13 +69,13 @@ - (void)testBackup_BackupInfo_Multiple RocksDBBackupEngine *backupEngine = [[RocksDBBackupEngine alloc] initWithPath:_backupPath]; - [_rocks setData:Data(@"value 1") forKey:Data(@"key 1")]; + [_rocks setData:Data(@"value 1") forKey:Data(@"key 1") error:nil]; [backupEngine createBackupForDatabase:_rocks error:nil]; - [_rocks setData:Data(@"value 2") forKey:Data(@"key 2")]; + [_rocks setData:Data(@"value 2") forKey:Data(@"key 2") error:nil]; [backupEngine createBackupForDatabase:_rocks error:nil]; - [_rocks setData:Data(@"value 3") forKey:Data(@"key 3")]; + [_rocks setData:Data(@"value 3") forKey:Data(@"key 3") error:nil]; [backupEngine createBackupForDatabase:_rocks error:nil]; [_rocks close]; @@ -98,13 +98,13 @@ - (void)testBackup_PurgeBackups RocksDBBackupEngine *backupEngine = [[RocksDBBackupEngine alloc] initWithPath:_backupPath]; - [_rocks setData:Data(@"value 1") forKey:Data(@"key 1")]; + [_rocks setData:Data(@"value 1") forKey:Data(@"key 1") error:nil]; [backupEngine createBackupForDatabase:_rocks error:nil]; - [_rocks setData:Data(@"value 2") forKey:Data(@"key 2")]; + [_rocks setData:Data(@"value 2") forKey:Data(@"key 2") error:nil]; [backupEngine createBackupForDatabase:_rocks error:nil]; - [_rocks setData:Data(@"value 3") forKey:Data(@"key 3")]; + [_rocks setData:Data(@"value 3") forKey:Data(@"key 3") error:nil]; [backupEngine createBackupForDatabase:_rocks error:nil]; [_rocks close]; @@ -128,13 +128,13 @@ - (void)testBackup_DeleteBackup RocksDBBackupEngine *backupEngine = [[RocksDBBackupEngine alloc] initWithPath:_backupPath]; - [_rocks setData:Data(@"value 1") forKey:Data(@"key 1")]; + [_rocks setData:Data(@"value 1") forKey:Data(@"key 1") error:nil]; [backupEngine createBackupForDatabase:_rocks error:nil]; - [_rocks setData:Data(@"value 2") forKey:Data(@"key 2")]; + [_rocks setData:Data(@"value 2") forKey:Data(@"key 2") error:nil]; [backupEngine createBackupForDatabase:_rocks error:nil]; - [_rocks setData:Data(@"value 3") forKey:Data(@"key 3")]; + [_rocks setData:Data(@"value 3") forKey:Data(@"key 3") error:nil]; [backupEngine createBackupForDatabase:_rocks error:nil]; [_rocks close]; @@ -156,17 +156,17 @@ - (void)testBackup_Restore options.createIfMissing = YES; }]; - [_rocks setData:Data(@"value 1") forKey:Data(@"key 1")]; - [_rocks setData:Data(@"value 2") forKey:Data(@"key 2")]; - [_rocks setData:Data(@"value 3") forKey:Data(@"key 3")]; + [_rocks setData:Data(@"value 1") forKey:Data(@"key 1") error:nil]; + [_rocks setData:Data(@"value 2") forKey:Data(@"key 2") error:nil]; + [_rocks setData:Data(@"value 3") forKey:Data(@"key 3") error:nil]; RocksDBBackupEngine *backupEngine = [[RocksDBBackupEngine alloc] initWithPath:_backupPath]; [backupEngine createBackupForDatabase:_rocks error:nil]; - [_rocks setData:Data(@"value 10") forKey:Data(@"key 1")]; - [_rocks setData:Data(@"value 20") forKey:Data(@"key 2")]; - [_rocks setData:Data(@"value 30") forKey:Data(@"key 3")]; + [_rocks setData:Data(@"value 10") forKey:Data(@"key 1") error:nil]; + [_rocks setData:Data(@"value 20") forKey:Data(@"key 2") error:nil]; + [_rocks setData:Data(@"value 30") forKey:Data(@"key 3") error:nil]; [_rocks close]; @@ -174,9 +174,9 @@ - (void)testBackup_Restore RocksDB *backupRocks = [RocksDB databaseAtPath:_restorePath andDBOptions:nil]; - XCTAssertEqualObjects([backupRocks dataForKey:Data(@"key 1")], Data(@"value 1")); - XCTAssertEqualObjects([backupRocks dataForKey:Data(@"key 2")], Data(@"value 2")); - XCTAssertEqualObjects([backupRocks dataForKey:Data(@"key 3")], Data(@"value 3")); + XCTAssertEqualObjects([backupRocks dataForKey:Data(@"key 1") error:nil], Data(@"value 1")); + XCTAssertEqualObjects([backupRocks dataForKey:Data(@"key 2") error:nil], Data(@"value 2")); + XCTAssertEqualObjects([backupRocks dataForKey:Data(@"key 3") error:nil], Data(@"value 3")); [backupRocks close]; } @@ -189,13 +189,13 @@ - (void)testBackup_Restore_Specific RocksDBBackupEngine *backupEngine = [[RocksDBBackupEngine alloc] initWithPath:_backupPath]; - [_rocks setData:Data(@"value 1") forKey:Data(@"key 1")]; + [_rocks setData:Data(@"value 1") forKey:Data(@"key 1") error:nil]; [backupEngine createBackupForDatabase:_rocks error:nil]; - [_rocks setData:Data(@"value 2") forKey:Data(@"key 2")]; + [_rocks setData:Data(@"value 2") forKey:Data(@"key 2") error:nil]; [backupEngine createBackupForDatabase:_rocks error:nil]; - [_rocks setData:Data(@"value 3") forKey:Data(@"key 3")]; + [_rocks setData:Data(@"value 3") forKey:Data(@"key 3") error:nil]; [backupEngine createBackupForDatabase:_rocks error:nil]; [_rocks close]; @@ -204,9 +204,9 @@ - (void)testBackup_Restore_Specific RocksDB *backupRocks = [RocksDB databaseAtPath:_restorePath andDBOptions:nil]; - XCTAssertEqualObjects([backupRocks dataForKey:Data(@"key 1")], Data(@"value 1")); - XCTAssertEqualObjects([backupRocks dataForKey:Data(@"key 2")], nil); - XCTAssertEqualObjects([backupRocks dataForKey:Data(@"key 3")], nil); + XCTAssertEqualObjects([backupRocks dataForKey:Data(@"key 1") error:nil], Data(@"value 1")); + XCTAssertEqualObjects([backupRocks dataForKey:Data(@"key 2") error:nil], nil); + XCTAssertEqualObjects([backupRocks dataForKey:Data(@"key 3") error:nil], nil); [backupRocks close]; @@ -214,9 +214,9 @@ - (void)testBackup_Restore_Specific backupRocks = [RocksDB databaseAtPath:_restorePath andDBOptions:nil]; - XCTAssertEqualObjects([backupRocks dataForKey:Data(@"key 1")], Data(@"value 1")); - XCTAssertEqualObjects([backupRocks dataForKey:Data(@"key 2")], Data(@"value 2")); - XCTAssertEqualObjects([backupRocks dataForKey:Data(@"key 3")], nil); + XCTAssertEqualObjects([backupRocks dataForKey:Data(@"key 1") error:nil], Data(@"value 1")); + XCTAssertEqualObjects([backupRocks dataForKey:Data(@"key 2") error:nil], Data(@"value 2")); + XCTAssertEqualObjects([backupRocks dataForKey:Data(@"key 3") error:nil], nil); [backupRocks close]; } diff --git a/ObjectiveRocksTests/RocksDBBasicTests.mm b/ObjectiveRocksTests/RocksDBBasicTests.mm index d46e29a..265130f 100644 --- a/ObjectiveRocksTests/RocksDBBasicTests.mm +++ b/ObjectiveRocksTests/RocksDBBasicTests.mm @@ -41,16 +41,16 @@ - (void)testDB_CRUD }]; - [_rocks setData:Data(@"value 1") forKey:Data(@"key 1")]; - [_rocks setData:Data(@"value 2") forKey:Data(@"key 2")]; - [_rocks setData:Data(@"value 3") forKey:Data(@"key 3")]; + [_rocks setData:Data(@"value 1") forKey:Data(@"key 1") error:nil]; + [_rocks setData:Data(@"value 2") forKey:Data(@"key 2") error:nil]; + [_rocks setData:Data(@"value 3") forKey:Data(@"key 3") error:nil]; - XCTAssertEqualObjects([_rocks dataForKey:Data(@"key 1")], Data(@"value 1")); - XCTAssertEqualObjects([_rocks dataForKey:Data(@"key 2")], Data(@"value 2")); - XCTAssertEqualObjects([_rocks dataForKey:Data(@"key 3")], Data(@"value 3")); + XCTAssertEqualObjects([_rocks dataForKey:Data(@"key 1") error:nil], Data(@"value 1")); + XCTAssertEqualObjects([_rocks dataForKey:Data(@"key 2") error:nil], Data(@"value 2")); + XCTAssertEqualObjects([_rocks dataForKey:Data(@"key 3") error:nil], Data(@"value 3")); - [_rocks deleteDataForKey:Data(@"key 2")]; - XCTAssertNil([_rocks dataForKey:Data(@"key 2")]); + [_rocks deleteDataForKey:Data(@"key 2") error:nil]; + XCTAssertNil([_rocks dataForKey:Data(@"key 2") error:nil]); NSError *error = nil; BOOL ok = [_rocks deleteDataForKey:Data(@"key 2") error:&error]; @@ -73,16 +73,16 @@ - (void)testDB_CRUD_Encoded }]; - [_rocks setObject:@"value 1" forKey:@"key 1"]; - [_rocks setObject:@"value 2" forKey:@"key 2"]; - [_rocks setObject:@"value 3" forKey:@"key 3"]; + [_rocks setObject:@"value 1" forKey:@"key 1" error:nil]; + [_rocks setObject:@"value 2" forKey:@"key 2" error:nil]; + [_rocks setObject:@"value 3" forKey:@"key 3" error:nil]; - XCTAssertEqualObjects([_rocks objectForKey:@"key 1"], @"value 1"); - XCTAssertEqualObjects([_rocks objectForKey:@"key 2"], @"value 2"); - XCTAssertEqualObjects([_rocks objectForKey:@"key 3"], @"value 3"); + XCTAssertEqualObjects([_rocks objectForKey:@"key 1" error:nil], @"value 1"); + XCTAssertEqualObjects([_rocks objectForKey:@"key 2" error:nil], @"value 2"); + XCTAssertEqualObjects([_rocks objectForKey:@"key 3" error:nil], @"value 3"); - [_rocks deleteObjectForKey:@"key 2"]; - XCTAssertNil([_rocks objectForKey:@"key 2"]); + [_rocks deleteObjectForKey:@"key 2" error:nil]; + XCTAssertNil([_rocks objectForKey:@"key 2" error:nil]); NSError *error = nil; BOOL ok = [_rocks deleteObjectForKey:@"key 2" error:&error]; diff --git a/ObjectiveRocksTests/RocksDBCheckpointTests.mm b/ObjectiveRocksTests/RocksDBCheckpointTests.mm index 891bb2e..f7917eb 100644 --- a/ObjectiveRocksTests/RocksDBCheckpointTests.mm +++ b/ObjectiveRocksTests/RocksDBCheckpointTests.mm @@ -20,13 +20,13 @@ - (void)testCheckpoint options.createIfMissing = YES; }]; - [_rocks setData:Data(@"value 1") forKey:Data(@"key 1")]; + [_rocks setData:Data(@"value 1") forKey:Data(@"key 1") error:nil]; RocksDBCheckpoint *checkpoint = [[RocksDBCheckpoint alloc] initWithDatabase:_rocks]; [checkpoint createCheckpointAtPath:_chekpointPath_1 error:nil]; - [_rocks setData:Data(@"value 2") forKey:Data(@"key 2")]; + [_rocks setData:Data(@"value 2") forKey:Data(@"key 2") error:nil]; [checkpoint createCheckpointAtPath:_chekpointPath_2 error:nil]; @@ -36,8 +36,8 @@ - (void)testCheckpoint options.createIfMissing = YES; }]; - XCTAssertEqualObjects([_rocks dataForKey:Data(@"key 1")], Data(@"value 1")); - XCTAssertNil([_rocks dataForKey:Data(@"key 2")]); + XCTAssertEqualObjects([_rocks dataForKey:Data(@"key 1") error:nil], Data(@"value 1")); + XCTAssertNil([_rocks dataForKey:Data(@"key 2") error:nil]); [_rocks close]; @@ -45,8 +45,8 @@ - (void)testCheckpoint options.createIfMissing = YES; }]; - XCTAssertEqualObjects([_rocks dataForKey:Data(@"key 1")], Data(@"value 1")); - XCTAssertEqualObjects([_rocks dataForKey:Data(@"key 2")], Data(@"value 2")); + XCTAssertEqualObjects([_rocks dataForKey:Data(@"key 1") error:nil], Data(@"value 1")); + XCTAssertEqualObjects([_rocks dataForKey:Data(@"key 2") error:nil], Data(@"value 2")); } @end diff --git a/ObjectiveRocksTests/RocksDBColumnFamilyMetadataTests.mm b/ObjectiveRocksTests/RocksDBColumnFamilyMetadataTests.mm index 9c7fbf5..edc16cf 100644 --- a/ObjectiveRocksTests/RocksDBColumnFamilyMetadataTests.mm +++ b/ObjectiveRocksTests/RocksDBColumnFamilyMetadataTests.mm @@ -28,11 +28,11 @@ - (void)testColumnFamilies_Metadata RocksDBColumnFamily *defaultColumnFamily = _rocks.columnFamilies[0]; RocksDBColumnFamily *newColumnFamily = _rocks.columnFamilies[1]; - [defaultColumnFamily setData:Data(@"df_value1") forKey:Data(@"df_key1")]; - [defaultColumnFamily setData:Data(@"df_value2") forKey:Data(@"df_key2")]; + [defaultColumnFamily setData:Data(@"df_value1") forKey:Data(@"df_key1") error:nil]; + [defaultColumnFamily setData:Data(@"df_value2") forKey:Data(@"df_key2") error:nil]; - [newColumnFamily setData:Data(@"cf_value1") forKey:Data(@"cf_key1")]; - [newColumnFamily setData:Data(@"cf_value2") forKey:Data(@"cf_key2")]; + [newColumnFamily setData:Data(@"cf_value1") forKey:Data(@"cf_key1") error:nil]; + [newColumnFamily setData:Data(@"cf_value2") forKey:Data(@"cf_key2") error:nil]; RocksDBColumnFamilyMetaData *defaultMetadata = defaultColumnFamily.columnFamilyMetaData; XCTAssertNotNil(defaultMetadata); diff --git a/ObjectiveRocksTests/RocksDBColumnFamilyTests.mm b/ObjectiveRocksTests/RocksDBColumnFamilyTests.mm index 7365da7..a54e952 100644 --- a/ObjectiveRocksTests/RocksDBColumnFamilyTests.mm +++ b/ObjectiveRocksTests/RocksDBColumnFamilyTests.mm @@ -150,13 +150,13 @@ - (void)testColumnFamilies_CRUD options.createIfMissing = YES; }]; - [_rocks setData:Data(@"df_value") forKey:Data(@"df_key1")]; - [_rocks setData:Data(@"df_value") forKey:Data(@"df_key2")]; + [_rocks setData:Data(@"df_value") forKey:Data(@"df_key1") error:nil]; + [_rocks setData:Data(@"df_value") forKey:Data(@"df_key2") error:nil]; RocksDBColumnFamily *columnFamily = [_rocks createColumnFamilyWithName:@"new_cf" andOptions:nil]; - [columnFamily setData:Data(@"cf_value") forKey:Data(@"cf_key1")]; - [columnFamily setData:Data(@"cf_value") forKey:Data(@"cf_key2")]; + [columnFamily setData:Data(@"cf_value") forKey:Data(@"cf_key1") error:nil]; + [columnFamily setData:Data(@"cf_value") forKey:Data(@"cf_key2") error:nil]; [columnFamily close]; [_rocks close]; @@ -172,28 +172,28 @@ - (void)testColumnFamilies_CRUD RocksDBColumnFamily *defaultColumnFamily = _rocks.columnFamilies[0]; RocksDBColumnFamily *newColumnFamily = _rocks.columnFamilies[1]; - XCTAssertEqualObjects([_rocks dataForKey:Data(@"df_key1")], Data(@"df_value")); - XCTAssertEqualObjects([_rocks dataForKey:Data(@"df_key2")], Data(@"df_value")); - XCTAssertNil([_rocks dataForKey:Data(@"cf_key1")]); - XCTAssertNil([_rocks dataForKey:Data(@"cf_key2")]); + XCTAssertEqualObjects([_rocks dataForKey:Data(@"df_key1") error:nil], Data(@"df_value")); + XCTAssertEqualObjects([_rocks dataForKey:Data(@"df_key2") error:nil], Data(@"df_value")); + XCTAssertNil([_rocks dataForKey:Data(@"cf_key1") error:nil]); + XCTAssertNil([_rocks dataForKey:Data(@"cf_key2") error:nil]); - XCTAssertEqualObjects([defaultColumnFamily dataForKey:Data(@"df_key1")], Data(@"df_value")); - XCTAssertEqualObjects([defaultColumnFamily dataForKey:Data(@"df_key2")], Data(@"df_value")); + XCTAssertEqualObjects([defaultColumnFamily dataForKey:Data(@"df_key1") error:nil], Data(@"df_value")); + XCTAssertEqualObjects([defaultColumnFamily dataForKey:Data(@"df_key2") error:nil], Data(@"df_value")); - XCTAssertNil([defaultColumnFamily dataForKey:Data(@"cf_key1")]); - XCTAssertNil([defaultColumnFamily dataForKey:Data(@"cf_key2")]); + XCTAssertNil([defaultColumnFamily dataForKey:Data(@"cf_key1") error:nil]); + XCTAssertNil([defaultColumnFamily dataForKey:Data(@"cf_key2") error:nil]); - XCTAssertEqualObjects([newColumnFamily dataForKey:Data(@"cf_key1")], Data(@"cf_value")); - XCTAssertEqualObjects([newColumnFamily dataForKey:Data(@"cf_key2")], Data(@"cf_value")); + XCTAssertEqualObjects([newColumnFamily dataForKey:Data(@"cf_key1") error:nil], Data(@"cf_value")); + XCTAssertEqualObjects([newColumnFamily dataForKey:Data(@"cf_key2") error:nil], Data(@"cf_value")); - XCTAssertNil([newColumnFamily dataForKey:Data(@"df_key1")]); - XCTAssertNil([newColumnFamily dataForKey:Data(@"df_key2")]); + XCTAssertNil([newColumnFamily dataForKey:Data(@"df_key1") error:nil]); + XCTAssertNil([newColumnFamily dataForKey:Data(@"df_key2") error:nil]); - [newColumnFamily deleteDataForKey:Data(@"cf_key1")]; - XCTAssertNil([newColumnFamily dataForKey:Data(@"cf_key1")]); + [newColumnFamily deleteDataForKey:Data(@"cf_key1") error:nil]; + XCTAssertNil([newColumnFamily dataForKey:Data(@"cf_key1") error:nil]); - [newColumnFamily deleteDataForKey:Data(@"cf_key1")]; - XCTAssertNil([newColumnFamily dataForKey:Data(@"cf_key1")]); + [newColumnFamily deleteDataForKey:Data(@"cf_key1") error:nil]; + XCTAssertNil([newColumnFamily dataForKey:Data(@"cf_key1") error:nil]); [defaultColumnFamily close]; [newColumnFamily close]; @@ -213,7 +213,7 @@ - (void)testColumnFamilies_WriteBatch RocksDBColumnFamily *defaultColumnFamily = _rocks.columnFamilies[0]; RocksDBColumnFamily *newColumnFamily = _rocks.columnFamilies[1]; - [newColumnFamily setData:Data(@"xyz_value") forKey:Data(@"xyz")]; + [newColumnFamily setData:Data(@"xyz_value") forKey:Data(@"xyz") error:nil]; RocksDBWriteBatch *batch = [newColumnFamily writeBatch]; @@ -225,16 +225,16 @@ - (void)testColumnFamilies_WriteBatch [_rocks applyWriteBatch:batch withWriteOptions:nil]; - XCTAssertEqualObjects([defaultColumnFamily dataForKey:Data(@"df_key")], Data(@"df_value")); - XCTAssertNil([defaultColumnFamily dataForKey:Data(@"df_key1")]); - XCTAssertNil([defaultColumnFamily dataForKey:Data(@"df_key2")]); + XCTAssertEqualObjects([defaultColumnFamily dataForKey:Data(@"df_key") error:nil], Data(@"df_value")); + XCTAssertNil([defaultColumnFamily dataForKey:Data(@"df_key1") error:nil]); + XCTAssertNil([defaultColumnFamily dataForKey:Data(@"df_key2") error:nil]); - XCTAssertEqualObjects([newColumnFamily dataForKey:Data(@"cf_key1")], Data(@"cf_value1")); - XCTAssertEqualObjects([newColumnFamily dataForKey:Data(@"cf_key2")], Data(@"cf_value2")); - XCTAssertNil([newColumnFamily dataForKey:Data(@"df_key")]); + XCTAssertEqualObjects([newColumnFamily dataForKey:Data(@"cf_key1") error:nil], Data(@"cf_value1")); + XCTAssertEqualObjects([newColumnFamily dataForKey:Data(@"cf_key2") error:nil], Data(@"cf_value2")); + XCTAssertNil([newColumnFamily dataForKey:Data(@"df_key") error:nil]); - XCTAssertNil([defaultColumnFamily dataForKey:Data(@"xyz")]); - XCTAssertNil([newColumnFamily dataForKey:Data(@"xyz")]); + XCTAssertNil([defaultColumnFamily dataForKey:Data(@"xyz") error:nil]); + XCTAssertNil([newColumnFamily dataForKey:Data(@"xyz") error:nil]); [defaultColumnFamily close]; [newColumnFamily close]; @@ -254,11 +254,11 @@ - (void)testColumnFamilies_Iterator RocksDBColumnFamily *defaultColumnFamily = _rocks.columnFamilies[0]; RocksDBColumnFamily *newColumnFamily = _rocks.columnFamilies[1]; - [defaultColumnFamily setData:Data(@"df_value1") forKey:Data(@"df_key1")]; - [defaultColumnFamily setData:Data(@"df_value2") forKey:Data(@"df_key2")]; + [defaultColumnFamily setData:Data(@"df_value1") forKey:Data(@"df_key1") error:nil]; + [defaultColumnFamily setData:Data(@"df_value2") forKey:Data(@"df_key2") error:nil]; - [newColumnFamily setData:Data(@"cf_value1") forKey:Data(@"cf_key1")]; - [newColumnFamily setData:Data(@"cf_value2") forKey:Data(@"cf_key2")]; + [newColumnFamily setData:Data(@"cf_value1") forKey:Data(@"cf_key1") error:nil]; + [newColumnFamily setData:Data(@"cf_value2") forKey:Data(@"cf_key2") error:nil]; RocksDBIterator *dfIterator = [defaultColumnFamily iterator]; diff --git a/ObjectiveRocksTests/RocksDBComparatorTests.mm b/ObjectiveRocksTests/RocksDBComparatorTests.mm index 35715db..31efe21 100644 --- a/ObjectiveRocksTests/RocksDBComparatorTests.mm +++ b/ObjectiveRocksTests/RocksDBComparatorTests.mm @@ -21,9 +21,9 @@ - (void)testComparator_Native_Bytewise_Ascending options.comparator = [RocksDBComparator comaparatorWithType:RocksDBComparatorBytewiseAscending]; }]; - [_rocks setData:Data(@"abc1") forKey:Data(@"abc1")]; - [_rocks setData:Data(@"abc2") forKey:Data(@"abc2")]; - [_rocks setData:Data(@"abc3") forKey:Data(@"abc3")]; + [_rocks setData:Data(@"abc1") forKey:Data(@"abc1") error:nil]; + [_rocks setData:Data(@"abc2") forKey:Data(@"abc2") error:nil]; + [_rocks setData:Data(@"abc3") forKey:Data(@"abc3") error:nil]; RocksDBIterator *iterator = [_rocks iterator]; @@ -71,9 +71,9 @@ - (void)testComparator_Native_Bytewise_Descending options.comparator = [RocksDBComparator comaparatorWithType:RocksDBComparatorBytewiseDescending]; }]; - [_rocks setData:Data(@"abc1") forKey:Data(@"abc1")]; - [_rocks setData:Data(@"abc2") forKey:Data(@"abc2")]; - [_rocks setData:Data(@"abc3") forKey:Data(@"abc3")]; + [_rocks setData:Data(@"abc1") forKey:Data(@"abc1") error:nil]; + [_rocks setData:Data(@"abc2") forKey:Data(@"abc2") error:nil]; + [_rocks setData:Data(@"abc3") forKey:Data(@"abc3") error:nil]; RocksDBIterator *iterator = [_rocks iterator]; @@ -131,7 +131,7 @@ - (void)testComparator_StringCompare_Ascending for (int i = 0; i < 10000; i++) { NSString *str = [NSString stringWithFormat:@"A%d", i]; [expected addObject:str]; - [_rocks setData:Data(str) forKey:Data(str)]; + [_rocks setData:Data(str) forKey:Data(str) error:nil]; } /* Expected Array: [A0, A1, A10, A100, A1000, A1001, A1019, A102, A1020, ...] */ @@ -158,7 +158,7 @@ - (void)testComparator_StringCompare_Descending for (int i = 0; i < 10000; i++) { NSString *str = [NSString stringWithFormat:@"A%d", i]; [expected addObject:str]; - [_rocks setData:Data(str) forKey:Data(str)]; + [_rocks setData:Data(str) forKey:Data(str) error:nil]; } /* Expected Array: [A9999, A9998 .. A9990, A999, A9989, ...] */ @@ -192,10 +192,10 @@ - (void)testComparator_Number_Ascending for (int i = 0; i < 10000; i++) { u_int32_t r = arc4random_uniform(UINT32_MAX); - if ([_rocks objectForKey:@(r)] != nil) { + if ([_rocks objectForKey:@(r) error:nil] != nil) { i--; } else { - [_rocks setObject:Data(@"value") forKey:@(r)]; + [_rocks setObject:Data(@"value") forKey:@(r) error:nil]; } } @@ -232,10 +232,10 @@ - (void)testComparator_Number_Descending for (int i = 0; i < 10000; i++) { u_int32_t r = arc4random_uniform(UINT32_MAX); - if ([_rocks objectForKey:@(r)] != nil) { + if ([_rocks objectForKey:@(r) error:nil] != nil) { i--; } else { - [_rocks setObject:Data(@"value") forKey:@(r)]; + [_rocks setObject:Data(@"value") forKey:@(r) error:nil]; } } diff --git a/ObjectiveRocksTests/RocksDBIndexedWriteBatchTests.m b/ObjectiveRocksTests/RocksDBIndexedWriteBatchTests.m index 4af4a88..56714cb 100644 --- a/ObjectiveRocksTests/RocksDBIndexedWriteBatchTests.m +++ b/ObjectiveRocksTests/RocksDBIndexedWriteBatchTests.m @@ -6,8 +6,7 @@ // Copyright (c) 2015 BrainCookie. All rights reserved. // -#import -#import +#import "RocksDBTests.h" @interface RocksDBIndexedWriteBatchTests : RocksDBTests @@ -15,26 +14,6 @@ @interface RocksDBIndexedWriteBatchTests : RocksDBTests @implementation RocksDBIndexedWriteBatchTests -- (void)setUp { - [super setUp]; - // Put setup code here. This method is called before the invocation of each test method in the class. -} -- (void)tearDown { - // Put teardown code here. This method is called after the invocation of each test method in the class. - [super tearDown]; -} - -- (void)testExample { - // This is an example of a functional test case. - XCTAssert(YES, @"Pass"); -} - -- (void)testPerformanceExample { - // This is an example of a performance test case. - [self measureBlock:^{ - // Put the code you want to measure the time of here. - }]; -} @end diff --git a/ObjectiveRocksTests/RocksDBIteratorTests.mm b/ObjectiveRocksTests/RocksDBIteratorTests.mm index 57fadf3..2b5dc56 100644 --- a/ObjectiveRocksTests/RocksDBIteratorTests.mm +++ b/ObjectiveRocksTests/RocksDBIteratorTests.mm @@ -20,9 +20,9 @@ - (void)testDB_Iterator options.createIfMissing = YES; }]; - [_rocks setData:Data(@"value 1") forKey:Data(@"key 1")]; - [_rocks setData:Data(@"value 2") forKey:Data(@"key 2")]; - [_rocks setData:Data(@"value 3") forKey:Data(@"key 3")]; + [_rocks setData:Data(@"value 1") forKey:Data(@"key 1") error:nil]; + [_rocks setData:Data(@"value 2") forKey:Data(@"key 2") error:nil]; + [_rocks setData:Data(@"value 3") forKey:Data(@"key 3") error:nil]; NSMutableArray *actual = [NSMutableArray array]; RocksDBIterator *iterator = [_rocks iterator]; @@ -42,8 +42,8 @@ - (void)testDB_Iterator_Seek options.createIfMissing = YES; }]; - [_rocks setData:Data(@"value 1") forKey:Data(@"key 1")]; - [_rocks setData:Data(@"value 2") forKey:Data(@"key 2")]; + [_rocks setData:Data(@"value 1") forKey:Data(@"key 1") error:nil]; + [_rocks setData:Data(@"value 2") forKey:Data(@"key 2") error:nil]; RocksDBIterator *iterator = [_rocks iterator]; @@ -86,9 +86,9 @@ - (void)testDB_Iterator_EnumerateKeys options.createIfMissing = YES; }]; - [_rocks setData:Data(@"value 1") forKey:Data(@"key 1")]; - [_rocks setData:Data(@"value 2") forKey:Data(@"key 2")]; - [_rocks setData:Data(@"value 3") forKey:Data(@"key 3")]; + [_rocks setData:Data(@"value 1") forKey:Data(@"key 1") error:nil]; + [_rocks setData:Data(@"value 2") forKey:Data(@"key 2") error:nil]; + [_rocks setData:Data(@"value 3") forKey:Data(@"key 3") error:nil]; NSMutableArray *actual = [NSMutableArray array]; RocksDBIterator *iterator = [_rocks iterator]; @@ -108,9 +108,9 @@ - (void)testDB_Iterator_EnumerateKeys_Reverse options.createIfMissing = YES; }]; - [_rocks setData:Data(@"value 1") forKey:Data(@"key 1")]; - [_rocks setData:Data(@"value 2") forKey:Data(@"key 2")]; - [_rocks setData:Data(@"value 3") forKey:Data(@"key 3")]; + [_rocks setData:Data(@"value 1") forKey:Data(@"key 1") error:nil]; + [_rocks setData:Data(@"value 2") forKey:Data(@"key 2") error:nil]; + [_rocks setData:Data(@"value 3") forKey:Data(@"key 3") error:nil]; NSMutableArray *actual = [NSMutableArray array]; RocksDBIterator *iterator = [_rocks iterator]; @@ -130,10 +130,10 @@ - (void)testDB_Iterator_EnumerateKeys_RangeStart options.createIfMissing = YES; }]; - [_rocks setData:Data(@"value 1") forKey:Data(@"key 1")]; - [_rocks setData:Data(@"value 2") forKey:Data(@"key 2")]; - [_rocks setData:Data(@"value 3") forKey:Data(@"key 3")]; - [_rocks setData:Data(@"value 4") forKey:Data(@"key 4")]; + [_rocks setData:Data(@"value 1") forKey:Data(@"key 1") error:nil]; + [_rocks setData:Data(@"value 2") forKey:Data(@"key 2") error:nil]; + [_rocks setData:Data(@"value 3") forKey:Data(@"key 3") error:nil]; + [_rocks setData:Data(@"value 4") forKey:Data(@"key 4") error:nil]; NSMutableArray *actual = [NSMutableArray array]; RocksDBIterator *iterator = [_rocks iterator]; @@ -153,10 +153,10 @@ - (void)testDB_Iterator_EnumerateKeys_RangeEnd options.createIfMissing = YES; }]; - [_rocks setData:Data(@"value 1") forKey:Data(@"key 1")]; - [_rocks setData:Data(@"value 2") forKey:Data(@"key 2")]; - [_rocks setData:Data(@"value 3") forKey:Data(@"key 3")]; - [_rocks setData:Data(@"value 4") forKey:Data(@"key 4")]; + [_rocks setData:Data(@"value 1") forKey:Data(@"key 1") error:nil]; + [_rocks setData:Data(@"value 2") forKey:Data(@"key 2") error:nil]; + [_rocks setData:Data(@"value 3") forKey:Data(@"key 3") error:nil]; + [_rocks setData:Data(@"value 4") forKey:Data(@"key 4") error:nil]; NSMutableArray *actual = [NSMutableArray array]; RocksDBIterator *iterator = [_rocks iterator]; @@ -176,10 +176,10 @@ - (void)testDB_Iterator_EnumerateKeys_RangeStartEnd options.createIfMissing = YES; }]; - [_rocks setData:Data(@"value 1") forKey:Data(@"key 1")]; - [_rocks setData:Data(@"value 2") forKey:Data(@"key 2")]; - [_rocks setData:Data(@"value 3") forKey:Data(@"key 3")]; - [_rocks setData:Data(@"value 4") forKey:Data(@"key 4")]; + [_rocks setData:Data(@"value 1") forKey:Data(@"key 1") error:nil]; + [_rocks setData:Data(@"value 2") forKey:Data(@"key 2") error:nil]; + [_rocks setData:Data(@"value 3") forKey:Data(@"key 3") error:nil]; + [_rocks setData:Data(@"value 4") forKey:Data(@"key 4") error:nil]; NSMutableArray *actual = [NSMutableArray array]; RocksDBIterator *iterator = [_rocks iterator]; @@ -201,9 +201,9 @@ - (void)testDB_Iterator_EnumerateKeys_Encoded options.valueType = RocksDBTypeNSString; }]; - [_rocks setObject:@"value 1" forKey:@"Key 1"]; - [_rocks setObject:@"value 2" forKey:@"Key 2"]; - [_rocks setObject:@"value 3" forKey:@"Key 3"]; + [_rocks setObject:@"value 1" forKey:@"Key 1" error:nil]; + [_rocks setObject:@"value 2" forKey:@"Key 2" error:nil]; + [_rocks setObject:@"value 3" forKey:@"Key 3" error:nil]; NSMutableArray *actual = [NSMutableArray array]; RocksDBIterator *iterator = [_rocks iterator]; @@ -223,9 +223,9 @@ - (void)testDB_Iterator_EnumerateKeysAndValues options.createIfMissing = YES; }]; - [_rocks setData:Data(@"value 1") forKey:Data(@"key 1")]; - [_rocks setData:Data(@"value 2") forKey:Data(@"key 2")]; - [_rocks setData:Data(@"value 3") forKey:Data(@"key 3")]; + [_rocks setData:Data(@"value 1") forKey:Data(@"key 1") error:nil]; + [_rocks setData:Data(@"value 2") forKey:Data(@"key 2") error:nil]; + [_rocks setData:Data(@"value 3") forKey:Data(@"key 3") error:nil]; NSMutableArray *actual = [NSMutableArray array]; RocksDBIterator *iterator = [_rocks iterator]; @@ -246,9 +246,9 @@ - (void)testDB_Iterator_EnumerateKeysAndValues_Reverse options.createIfMissing = YES; }]; - [_rocks setData:Data(@"value 1") forKey:Data(@"key 1")]; - [_rocks setData:Data(@"value 2") forKey:Data(@"key 2")]; - [_rocks setData:Data(@"value 3") forKey:Data(@"key 3")]; + [_rocks setData:Data(@"value 1") forKey:Data(@"key 1") error:nil]; + [_rocks setData:Data(@"value 2") forKey:Data(@"key 2") error:nil]; + [_rocks setData:Data(@"value 3") forKey:Data(@"key 3") error:nil]; NSMutableArray *actual = [NSMutableArray array]; RocksDBIterator *iterator = [_rocks iterator]; @@ -269,10 +269,10 @@ - (void)testDB_Iterator_EnumerateKeysAndValues_RangeStart options.createIfMissing = YES; }]; - [_rocks setData:Data(@"value 1") forKey:Data(@"key 1")]; - [_rocks setData:Data(@"value 2") forKey:Data(@"key 2")]; - [_rocks setData:Data(@"value 3") forKey:Data(@"key 3")]; - [_rocks setData:Data(@"value 4") forKey:Data(@"key 4")]; + [_rocks setData:Data(@"value 1") forKey:Data(@"key 1") error:nil]; + [_rocks setData:Data(@"value 2") forKey:Data(@"key 2") error:nil]; + [_rocks setData:Data(@"value 3") forKey:Data(@"key 3") error:nil]; + [_rocks setData:Data(@"value 4") forKey:Data(@"key 4") error:nil]; NSMutableArray *actual = [NSMutableArray array]; RocksDBIterator *iterator = [_rocks iterator]; @@ -295,10 +295,10 @@ - (void)testDB_Iterator_EnumerateKeysAndValues_RangeEnd options.createIfMissing = YES; }]; - [_rocks setData:Data(@"value 1") forKey:Data(@"key 1")]; - [_rocks setData:Data(@"value 2") forKey:Data(@"key 2")]; - [_rocks setData:Data(@"value 3") forKey:Data(@"key 3")]; - [_rocks setData:Data(@"value 4") forKey:Data(@"key 4")]; + [_rocks setData:Data(@"value 1") forKey:Data(@"key 1") error:nil]; + [_rocks setData:Data(@"value 2") forKey:Data(@"key 2") error:nil]; + [_rocks setData:Data(@"value 3") forKey:Data(@"key 3") error:nil]; + [_rocks setData:Data(@"value 4") forKey:Data(@"key 4") error:nil]; NSMutableArray *actual = [NSMutableArray array]; RocksDBIterator *iterator = [_rocks iterator]; @@ -321,10 +321,10 @@ - (void)testDB_Iterator_EnumerateKeysAndValues_RangeStartEnd options.createIfMissing = YES; }]; - [_rocks setData:Data(@"value 1") forKey:Data(@"key 1")]; - [_rocks setData:Data(@"value 2") forKey:Data(@"key 2")]; - [_rocks setData:Data(@"value 3") forKey:Data(@"key 3")]; - [_rocks setData:Data(@"value 4") forKey:Data(@"key 4")]; + [_rocks setData:Data(@"value 1") forKey:Data(@"key 1") error:nil]; + [_rocks setData:Data(@"value 2") forKey:Data(@"key 2") error:nil]; + [_rocks setData:Data(@"value 3") forKey:Data(@"key 3") error:nil]; + [_rocks setData:Data(@"value 4") forKey:Data(@"key 4") error:nil]; NSMutableArray *actual = [NSMutableArray array]; RocksDBIterator *iterator = [_rocks iterator]; @@ -350,9 +350,9 @@ - (void)testDB_Iterator_EnumerateKeysAndValues_Encoded options.valueType = RocksDBTypeNSString; }]; - [_rocks setObject:@"value 1" forKey:@"Key 1"]; - [_rocks setObject:@"value 2" forKey:@"Key 2"]; - [_rocks setObject:@"value 3" forKey:@"Key 3"]; + [_rocks setObject:@"value 1" forKey:@"Key 1" error:nil]; + [_rocks setObject:@"value 2" forKey:@"Key 2" error:nil]; + [_rocks setObject:@"value 3" forKey:@"Key 3" error:nil]; NSMutableArray *actual = [NSMutableArray array]; RocksDBIterator *iterator = [_rocks iterator]; diff --git a/ObjectiveRocksTests/RocksDBMergeOperatorTests.mm b/ObjectiveRocksTests/RocksDBMergeOperatorTests.mm index f91da62..7a3b9e6 100644 --- a/ObjectiveRocksTests/RocksDBMergeOperatorTests.mm +++ b/ObjectiveRocksTests/RocksDBMergeOperatorTests.mm @@ -36,13 +36,13 @@ - (void)testAssociativeMergeOperator }]; uint64_t value = 1; - [_rocks mergeData:NumData(value) forKey:Data(@"Key 1")]; + [_rocks mergeData:NumData(value) forKey:Data(@"Key 1") error:nil]; value = 5; - [_rocks mergeData:NumData(value) forKey:Data(@"Key 1")]; + [_rocks mergeData:NumData(value) forKey:Data(@"Key 1") error:nil]; uint64_t res; - Val([_rocks dataForKey:Data(@"Key 1")], res); + Val([_rocks dataForKey:Data(@"Key 1") error:nil], res); XCTAssertTrue(res == 6); } @@ -75,12 +75,12 @@ - (void)testAssociativeMergeOperator_NumberAdd_Encoded }; }]; - [_rocks mergeObject:@(100.541) forKey:@"Key 1"]; + [_rocks mergeObject:@(100.541) forKey:@"Key 1" error:nil]; - [_rocks mergeObject:@(200.125) forKey:@"Key 1"]; + [_rocks mergeObject:@(200.125) forKey:@"Key 1" error:nil]; - XCTAssertEqualWithAccuracy([[_rocks objectForKey:@"Key 1"] floatValue], 300.666, 0.0001); + XCTAssertEqualWithAccuracy([[_rocks objectForKey:@"Key 1" error:nil] floatValue], 300.666, 0.0001); } - (void)testAssociativeMergeOperator_DictionaryPut_Encoded @@ -103,17 +103,17 @@ - (void)testAssociativeMergeOperator_DictionaryPut_Encoded options.valueType = RocksDBTypeNSJSONSerializable; }]; - [_rocks setObject:@{@"Key 1": @"Value 1"} forKey:@"Dict Key"]; + [_rocks setObject:@{@"Key 1": @"Value 1"} forKey:@"Dict Key" error:nil]; - [_rocks mergeObject:@{@"Key 1": @"Value 1 New"} forKey:@"Dict Key"]; + [_rocks mergeObject:@{@"Key 1": @"Value 1 New"} forKey:@"Dict Key" error:nil]; - [_rocks mergeObject:@{@"Key 2": @"Value 2"} forKey:@"Dict Key"]; + [_rocks mergeObject:@{@"Key 2": @"Value 2"} forKey:@"Dict Key" error:nil]; - [_rocks mergeObject:@{@"Key 3": @"Value 3"} forKey:@"Dict Key"]; + [_rocks mergeObject:@{@"Key 3": @"Value 3"} forKey:@"Dict Key" error:nil]; - [_rocks mergeObject:@{@"Key 4": @"Value 4"} forKey:@"Dict Key"]; + [_rocks mergeObject:@{@"Key 4": @"Value 4"} forKey:@"Dict Key" error:nil]; - [_rocks mergeObject:@{@"Key 5": @"Value 5"} forKey:@"Dict Key"]; + [_rocks mergeObject:@{@"Key 5": @"Value 5"} forKey:@"Dict Key" error:nil]; NSDictionary *expected = @{@"Key 1" : @"Value 1 New", @"Key 2" : @"Value 2", @@ -121,7 +121,7 @@ - (void)testAssociativeMergeOperator_DictionaryPut_Encoded @"Key 4" : @"Value 4", @"Key 5" : @"Value 5"}; - XCTAssertEqualObjects([_rocks objectForKey:@"Dict Key"], expected); + XCTAssertEqualObjects([_rocks objectForKey:@"Dict Key" error:nil], expected); } - (void)testMergeOperator_DictionaryUpdate_Encoded @@ -159,18 +159,18 @@ - (void)testMergeOperator_DictionaryUpdate_Encoded @"Key 2" : @"Value 2", @"Key 3" : @"Value 3"}; - [_rocks setObject:object forKey:@"Dict Key"]; + [_rocks setObject:object forKey:@"Dict Key" error:nil]; - [_rocks mergeOperation:@"Key 1:UPDATE:Value X" forKey:@"Dict Key"]; - [_rocks mergeOperation:@"Key 4:INSERT:Value 4" forKey:@"Dict Key"]; - [_rocks mergeOperation:@"Key 2:DELETE" forKey:@"Dict Key"]; - [_rocks mergeOperation:@"Key 1:UPDATE:Value 1 New" forKey:@"Dict Key"]; + [_rocks mergeOperation:@"Key 1:UPDATE:Value X" forKey:@"Dict Key" error:nil]; + [_rocks mergeOperation:@"Key 4:INSERT:Value 4" forKey:@"Dict Key" error:nil]; + [_rocks mergeOperation:@"Key 2:DELETE" forKey:@"Dict Key" error:nil]; + [_rocks mergeOperation:@"Key 1:UPDATE:Value 1 New" forKey:@"Dict Key" error:nil]; NSDictionary *expected = @{@"Key 1" : @"Value 1 New", @"Key 3" : @"Value 3", @"Key 4" : @"Value 4"}; - XCTAssertEqualObjects([_rocks objectForKey:@"Dict Key"], expected); + XCTAssertEqualObjects([_rocks objectForKey:@"Dict Key" error:nil], expected); } @end diff --git a/ObjectiveRocksTests/RocksDBPrefixExtractorTests.mm b/ObjectiveRocksTests/RocksDBPrefixExtractorTests.mm index 5eb0bd7..0a29051 100644 --- a/ObjectiveRocksTests/RocksDBPrefixExtractorTests.mm +++ b/ObjectiveRocksTests/RocksDBPrefixExtractorTests.mm @@ -26,11 +26,11 @@ - (void)testPrefixExtractor_FixedLength options.valueType = RocksDBTypeNSString; }]; - [_rocks setObject:@"x" forKey:@"100A"]; - [_rocks setObject:@"x" forKey:@"100B"]; + [_rocks setObject:@"x" forKey:@"100A" error:nil]; + [_rocks setObject:@"x" forKey:@"100B" error:nil]; - [_rocks setObject:@"x" forKey:@"101A"]; - [_rocks setObject:@"x" forKey:@"101B"]; + [_rocks setObject:@"x" forKey:@"101A" error:nil]; + [_rocks setObject:@"x" forKey:@"101B" error:nil]; RocksDBIterator *iterator = [_rocks iterator]; @@ -89,14 +89,14 @@ - (void)testPrefixExtractor_FixedLength_CustomComparator options.valueType = RocksDBTypeNSString; }]; - [_rocks setObject:@"x" forKey:@"1010"]; - [_rocks setObject:@"x" forKey:@"4211"]; - [_rocks setObject:@"x" forKey:@"1012"]; - [_rocks setObject:@"x" forKey:@"5313"]; - [_rocks setObject:@"x" forKey:@"1020"]; - [_rocks setObject:@"x" forKey:@"4221"]; - [_rocks setObject:@"x" forKey:@"1022"]; - [_rocks setObject:@"x" forKey:@"5323"]; + [_rocks setObject:@"x" forKey:@"1010" error:nil]; + [_rocks setObject:@"x" forKey:@"4211" error:nil]; + [_rocks setObject:@"x" forKey:@"1012" error:nil]; + [_rocks setObject:@"x" forKey:@"5313" error:nil]; + [_rocks setObject:@"x" forKey:@"1020" error:nil]; + [_rocks setObject:@"x" forKey:@"4221" error:nil]; + [_rocks setObject:@"x" forKey:@"1022" error:nil]; + [_rocks setObject:@"x" forKey:@"5323" error:nil]; RocksDBIterator *iterator = [_rocks iterator]; diff --git a/ObjectiveRocksTests/RocksDBPropertiesTests.mm b/ObjectiveRocksTests/RocksDBPropertiesTests.mm index 3abc41d..fd273e4 100644 --- a/ObjectiveRocksTests/RocksDBPropertiesTests.mm +++ b/ObjectiveRocksTests/RocksDBPropertiesTests.mm @@ -22,9 +22,9 @@ - (void)testProperties options.minWriteBufferNumberToMerge = 10; }]; - [_rocks setData:Data(@"value 1") forKey:Data(@"key 1")]; - [_rocks setData:Data(@"value 2") forKey:Data(@"key 2")]; - [_rocks setData:Data(@"value 3") forKey:Data(@"key 3")]; + [_rocks setData:Data(@"value 1") forKey:Data(@"key 1") error:nil]; + [_rocks setData:Data(@"value 2") forKey:Data(@"key 2") error:nil]; + [_rocks setData:Data(@"value 3") forKey:Data(@"key 3") error:nil]; XCTAssertGreaterThan([_rocks valueForIntProperty:RocksDBIntPropertyNumEntriesActiveMemtable], 0); XCTAssertGreaterThan([_rocks valueForIntProperty:RocksDBIntPropertyCurSizeActiveMemTable], 0); @@ -42,12 +42,12 @@ - (void)testProperties_ColumnFamily }]; XCTAssertGreaterThanOrEqual([_rocks.columnFamilies[0] valueForIntProperty:RocksDBIntPropertyEstimatedNumKeys], 0); - XCTAssertNotNil([_rocks.columnFamilies[0] valueForProperty:RocksDBPropertyStats]); - XCTAssertNotNil([_rocks.columnFamilies[0] valueForProperty:RocksDBPropertySsTables]); + XCTAssertNotNil([(RocksDB *)_rocks.columnFamilies[0] valueForProperty:RocksDBPropertyStats]); + XCTAssertNotNil([(RocksDB *)_rocks.columnFamilies[0] valueForProperty:RocksDBPropertySsTables]); XCTAssertGreaterThanOrEqual([_rocks.columnFamilies[1] valueForIntProperty:RocksDBIntPropertyEstimatedNumKeys], 0); - XCTAssertNotNil([_rocks.columnFamilies[1] valueForProperty:RocksDBPropertyStats]); - XCTAssertNotNil([_rocks.columnFamilies[1] valueForProperty:RocksDBPropertySsTables]); + XCTAssertNotNil([(RocksDB *)_rocks.columnFamilies[1] valueForProperty:RocksDBPropertyStats]); + XCTAssertNotNil([(RocksDB *)_rocks.columnFamilies[1] valueForProperty:RocksDBPropertySsTables]); } @end diff --git a/ObjectiveRocksTests/RocksDBReadOnlyTests.m b/ObjectiveRocksTests/RocksDBReadOnlyTests.m index 2827432..77d75f3 100644 --- a/ObjectiveRocksTests/RocksDBReadOnlyTests.m +++ b/ObjectiveRocksTests/RocksDBReadOnlyTests.m @@ -38,7 +38,7 @@ - (void)testDB_ReadOnly_NotWritable options.createIfMissing = YES; }]; XCTAssertNotNil(_rocks); - [_rocks setData:Data(@"data") forKey:Data(@"key")]; + [_rocks setData:Data(@"data") forKey:Data(@"key") error:nil]; [_rocks close]; _rocks = [RocksDB databaseForReadOnlyAtPath:_path andDBOptions:nil]; diff --git a/ObjectiveRocksTests/RocksDBSnapshotTests.mm b/ObjectiveRocksTests/RocksDBSnapshotTests.mm index 1ddb633..932160e 100644 --- a/ObjectiveRocksTests/RocksDBSnapshotTests.mm +++ b/ObjectiveRocksTests/RocksDBSnapshotTests.mm @@ -20,24 +20,24 @@ - (void)testSnapshot options.createIfMissing = YES; }]; - [_rocks setData:Data(@"Value 1") forKey:Data(@"Key 1")]; - [_rocks setData:Data(@"Value 2") forKey:Data(@"Key 2")]; - [_rocks setData:Data(@"Value 3") forKey:Data(@"Key 3")]; + [_rocks setData:Data(@"Value 1") forKey:Data(@"Key 1") error:nil]; + [_rocks setData:Data(@"Value 2") forKey:Data(@"Key 2") error:nil]; + [_rocks setData:Data(@"Value 3") forKey:Data(@"Key 3") error:nil]; RocksDBSnapshot *snapshot = [_rocks snapshot]; - [_rocks deleteDataForKey:Data(@"Key 1")]; - [_rocks setData:Data(@"Value 4") forKey:Data(@"Key 4")]; + [_rocks deleteDataForKey:Data(@"Key 1") error:nil]; + [_rocks setData:Data(@"Value 4") forKey:Data(@"Key 4") error:nil]; - XCTAssertEqualObjects([snapshot dataForKey:Data(@"Key 1")], Data(@"Value 1")); - XCTAssertEqualObjects([snapshot dataForKey:Data(@"Key 2")], Data(@"Value 2")); - XCTAssertEqualObjects([snapshot dataForKey:Data(@"Key 3")], Data(@"Value 3")); - XCTAssertEqualObjects([snapshot dataForKey:Data(@"Key 4")], nil); + XCTAssertEqualObjects([snapshot dataForKey:Data(@"Key 1") error:nil], Data(@"Value 1")); + XCTAssertEqualObjects([snapshot dataForKey:Data(@"Key 2") error:nil], Data(@"Value 2")); + XCTAssertEqualObjects([snapshot dataForKey:Data(@"Key 3") error:nil], Data(@"Value 3")); + XCTAssertEqualObjects([snapshot dataForKey:Data(@"Key 4") error:nil], nil); [snapshot close]; - XCTAssertEqualObjects([snapshot dataForKey:Data(@"Key 1")], nil); - XCTAssertEqualObjects([snapshot dataForKey:Data(@"Key 4")], Data(@"Value 4")); + XCTAssertEqualObjects([snapshot dataForKey:Data(@"Key 1") error:nil], nil); + XCTAssertEqualObjects([snapshot dataForKey:Data(@"Key 4") error:nil], Data(@"Value 4")); } - (void)testSnapshot_Iterator @@ -46,14 +46,14 @@ - (void)testSnapshot_Iterator options.createIfMissing = YES; }]; - [_rocks setData:Data(@"Value 1") forKey:Data(@"Key 1")]; - [_rocks setData:Data(@"Value 2") forKey:Data(@"Key 2")]; - [_rocks setData:Data(@"Value 3") forKey:Data(@"Key 3")]; + [_rocks setData:Data(@"Value 1") forKey:Data(@"Key 1") error:nil]; + [_rocks setData:Data(@"Value 2") forKey:Data(@"Key 2") error:nil]; + [_rocks setData:Data(@"Value 3") forKey:Data(@"Key 3") error:nil]; RocksDBSnapshot *snapshot = [_rocks snapshot]; - [_rocks deleteDataForKey:Data(@"Key 1")]; - [_rocks setData:Data(@"Value 4") forKey:Data(@"Key 4")]; + [_rocks deleteDataForKey:Data(@"Key 1") error:nil]; + [_rocks setData:Data(@"Value 4") forKey:Data(@"Key 4") error:nil]; NSMutableArray *actual = [NSMutableArray array]; @@ -83,13 +83,13 @@ - (void)testSnapshot_SequenceNumber options.createIfMissing = YES; }]; - [_rocks setData:Data(@"Value 1") forKey:Data(@"Key 1")]; + [_rocks setData:Data(@"Value 1") forKey:Data(@"Key 1") error:nil]; RocksDBSnapshot *snapshot1 = [_rocks snapshot]; - [_rocks setData:Data(@"Value 2") forKey:Data(@"Key 2")]; + [_rocks setData:Data(@"Value 2") forKey:Data(@"Key 2") error:nil]; RocksDBSnapshot *snapshot2 = [_rocks snapshot]; - [_rocks setData:Data(@"Value 3") forKey:Data(@"Key 3")]; + [_rocks setData:Data(@"Value 3") forKey:Data(@"Key 3") error:nil]; RocksDBSnapshot *snapshot3 = [_rocks snapshot]; XCTAssertEqual(snapshot1.sequenceNumber, 1); diff --git a/ObjectiveRocksTests/RocksDBStatisticsTests.mm b/ObjectiveRocksTests/RocksDBStatisticsTests.mm index 6fd1b66..143f7d9 100644 --- a/ObjectiveRocksTests/RocksDBStatisticsTests.mm +++ b/ObjectiveRocksTests/RocksDBStatisticsTests.mm @@ -23,7 +23,7 @@ - (void)testStatistics options.statistics = statistics; }]; - [_rocks setData:Data(@"abcd") forKey:Data(@"abcd")]; + [_rocks setData:Data(@"abcd") forKey:Data(@"abcd") error:nil]; XCTAssertNotNil(statistics.description); } @@ -37,12 +37,12 @@ - (void)testStatistics_Ticker options.statistics = statistics; }]; - [_rocks setData:Data(@"abcd") forKey:Data(@"abcd")]; + [_rocks setData:Data(@"abcd") forKey:Data(@"abcd") error:nil]; XCTAssertEqual([statistics countForTicker:RocksDBTickerBytesRead], 0); XCTAssertGreaterThan([statistics countForTicker:RocksDBTickerBytesWritten], 0); - [_rocks dataForKey:Data(@"abcd")]; + [_rocks dataForKey:Data(@"abcd") error:nil]; XCTAssertGreaterThan([statistics countForTicker:RocksDBTickerBytesRead], 0); } @@ -58,10 +58,10 @@ - (void)testStatistics_Histogram for (int i = 0; i < 10000; i++) { NSString *str = [NSString stringWithFormat:@"a%d", i]; - [_rocks setData:Data(str) forKey:Data(str)]; + [_rocks setData:Data(str) forKey:Data(str) error:nil]; } - [_rocks dataForKey:Data(@"a42")]; + [_rocks dataForKey:Data(@"a42") error:nil]; RocksDBStatisticsHistogram *dbGetHistogram = [statistics histogramDataForType:RocksDBHistogramDBGet]; XCTAssertNotNil(dbGetHistogram); diff --git a/ObjectiveRocksTests/RocksDBWriteBatchTests.mm b/ObjectiveRocksTests/RocksDBWriteBatchTests.mm index e9c9f6b..e38ccc0 100644 --- a/ObjectiveRocksTests/RocksDBWriteBatchTests.mm +++ b/ObjectiveRocksTests/RocksDBWriteBatchTests.mm @@ -26,10 +26,10 @@ - (void)testWriteBatch_Perform [batch setData:Data(@"Value 3") forKey:Data(@"Key 3")]; } error:nil]; - XCTAssertEqualObjects([_rocks dataForKey:Data(@"Key 1")], Data(@"Value 1")); - XCTAssertEqualObjects([_rocks dataForKey:Data(@"Key 2")], Data(@"Value 2")); - XCTAssertEqualObjects([_rocks dataForKey:Data(@"Key 3")], Data(@"Value 3")); - XCTAssertEqualObjects([_rocks dataForKey:Data(@"Key 4")], nil); + XCTAssertEqualObjects([_rocks dataForKey:Data(@"Key 1") error:nil], Data(@"Value 1")); + XCTAssertEqualObjects([_rocks dataForKey:Data(@"Key 2") error:nil], Data(@"Value 2")); + XCTAssertEqualObjects([_rocks dataForKey:Data(@"Key 3") error:nil], Data(@"Value 3")); + XCTAssertEqualObjects([_rocks dataForKey:Data(@"Key 4") error:nil], nil); } - (void)testWriteBatch_Perform_DeleteOps @@ -38,7 +38,7 @@ - (void)testWriteBatch_Perform_DeleteOps options.createIfMissing = YES; }]; - [_rocks setData:Data(@"Value 1") forKey:Data(@"Key 1")]; + [_rocks setData:Data(@"Value 1") forKey:Data(@"Key 1") error:nil]; [_rocks performWriteBatch:^(RocksDBWriteBatch *batch, RocksDBWriteOptions *options) { [batch deleteDataForKey:Data(@"Key 1")]; @@ -46,10 +46,10 @@ - (void)testWriteBatch_Perform_DeleteOps [batch setData:Data(@"Value 3") forKey:Data(@"Key 3")]; } error:nil]; - XCTAssertEqualObjects([_rocks dataForKey:Data(@"Key 1")], nil); - XCTAssertEqualObjects([_rocks dataForKey:Data(@"Key 2")], Data(@"Value 2")); - XCTAssertEqualObjects([_rocks dataForKey:Data(@"Key 3")], Data(@"Value 3")); - XCTAssertEqualObjects([_rocks dataForKey:Data(@"Key 4")], nil); + XCTAssertEqualObjects([_rocks dataForKey:Data(@"Key 1") error:nil], nil); + XCTAssertEqualObjects([_rocks dataForKey:Data(@"Key 2") error:nil], Data(@"Value 2")); + XCTAssertEqualObjects([_rocks dataForKey:Data(@"Key 3") error:nil], Data(@"Value 3")); + XCTAssertEqualObjects([_rocks dataForKey:Data(@"Key 4") error:nil], nil); } - (void)testWriteBatch_Perform_ClearOps @@ -58,7 +58,7 @@ - (void)testWriteBatch_Perform_ClearOps options.createIfMissing = YES; }]; - [_rocks setData:Data(@"Value 1") forKey:Data(@"Key 1")]; + [_rocks setData:Data(@"Value 1") forKey:Data(@"Key 1") error:nil]; [_rocks performWriteBatch:^(RocksDBWriteBatch *batch, RocksDBWriteOptions *options) { [batch deleteDataForKey:Data(@"Key 1")]; @@ -68,10 +68,10 @@ - (void)testWriteBatch_Perform_ClearOps [batch setData:Data(@"Value 4") forKey:Data(@"Key 4")]; } error:nil]; - XCTAssertEqualObjects([_rocks dataForKey:Data(@"Key 1")], Data(@"Value 1")); - XCTAssertEqualObjects([_rocks dataForKey:Data(@"Key 2")], nil); - XCTAssertEqualObjects([_rocks dataForKey:Data(@"Key 3")], nil); - XCTAssertEqualObjects([_rocks dataForKey:Data(@"Key 4")], Data(@"Value 4")); + XCTAssertEqualObjects([_rocks dataForKey:Data(@"Key 1") error:nil], Data(@"Value 1")); + XCTAssertEqualObjects([_rocks dataForKey:Data(@"Key 2") error:nil], nil); + XCTAssertEqualObjects([_rocks dataForKey:Data(@"Key 3") error:nil], nil); + XCTAssertEqualObjects([_rocks dataForKey:Data(@"Key 4") error:nil], Data(@"Value 4")); } - (void)testWriteBatch_Apply @@ -88,10 +88,10 @@ - (void)testWriteBatch_Apply [_rocks applyWriteBatch:batch withWriteOptions:nil]; - XCTAssertEqualObjects([_rocks dataForKey:Data(@"Key 1")], Data(@"Value 1")); - XCTAssertEqualObjects([_rocks dataForKey:Data(@"Key 2")], Data(@"Value 2")); - XCTAssertEqualObjects([_rocks dataForKey:Data(@"Key 3")], Data(@"Value 3")); - XCTAssertEqualObjects([_rocks dataForKey:Data(@"Key 4")], nil); + XCTAssertEqualObjects([_rocks dataForKey:Data(@"Key 1") error:nil], Data(@"Value 1")); + XCTAssertEqualObjects([_rocks dataForKey:Data(@"Key 2") error:nil], Data(@"Value 2")); + XCTAssertEqualObjects([_rocks dataForKey:Data(@"Key 3") error:nil], Data(@"Value 3")); + XCTAssertEqualObjects([_rocks dataForKey:Data(@"Key 4") error:nil], nil); } - (void)testWriteBatch_Apply_DeleteOps @@ -100,7 +100,7 @@ - (void)testWriteBatch_Apply_DeleteOps options.createIfMissing = YES; }]; - [_rocks setData:Data(@"Value 1") forKey:Data(@"Key 1")]; + [_rocks setData:Data(@"Value 1") forKey:Data(@"Key 1") error:nil]; RocksDBWriteBatch *batch = [_rocks writeBatch]; @@ -110,10 +110,10 @@ - (void)testWriteBatch_Apply_DeleteOps [_rocks applyWriteBatch:batch withWriteOptions:nil]; - XCTAssertEqualObjects([_rocks dataForKey:Data(@"Key 1")], nil); - XCTAssertEqualObjects([_rocks dataForKey:Data(@"Key 2")], Data(@"Value 2")); - XCTAssertEqualObjects([_rocks dataForKey:Data(@"Key 3")], Data(@"Value 3")); - XCTAssertEqualObjects([_rocks dataForKey:Data(@"Key 4")], nil); + XCTAssertEqualObjects([_rocks dataForKey:Data(@"Key 1") error:nil], nil); + XCTAssertEqualObjects([_rocks dataForKey:Data(@"Key 2") error:nil], Data(@"Value 2")); + XCTAssertEqualObjects([_rocks dataForKey:Data(@"Key 3") error:nil], Data(@"Value 3")); + XCTAssertEqualObjects([_rocks dataForKey:Data(@"Key 4") error:nil], nil); } - (void)testWriteBatch_Apply_MergeOps @@ -131,7 +131,7 @@ - (void)testWriteBatch_Apply_MergeOps }]; }]; - [_rocks setData:Data(@"Value 1") forKey:Data(@"Key 1")]; + [_rocks setData:Data(@"Value 1") forKey:Data(@"Key 1") error:nil]; RocksDBWriteBatch *batch = [_rocks writeBatch]; @@ -142,7 +142,7 @@ - (void)testWriteBatch_Apply_MergeOps [_rocks applyWriteBatch:batch withWriteOptions:nil]; - XCTAssertEqualObjects([_rocks dataForKey:Data(@"Key 2")], Data(@"Value 2,Value 2 New")); + XCTAssertEqualObjects([_rocks dataForKey:Data(@"Key 2") error:nil], Data(@"Value 2,Value 2 New")); } - (void)testWriteBatch_Apply_ClearOps @@ -151,7 +151,7 @@ - (void)testWriteBatch_Apply_ClearOps options.createIfMissing = YES; }]; - [_rocks setData:Data(@"Value 1") forKey:Data(@"Key 1")]; + [_rocks setData:Data(@"Value 1") forKey:Data(@"Key 1") error:nil]; RocksDBWriteBatch *batch = [_rocks writeBatch]; @@ -163,10 +163,10 @@ - (void)testWriteBatch_Apply_ClearOps [_rocks applyWriteBatch:batch withWriteOptions:nil]; - XCTAssertEqualObjects([_rocks dataForKey:Data(@"Key 1")], Data(@"Value 1")); - XCTAssertEqualObjects([_rocks dataForKey:Data(@"Key 2")], nil); - XCTAssertEqualObjects([_rocks dataForKey:Data(@"Key 3")], nil); - XCTAssertEqualObjects([_rocks dataForKey:Data(@"Key 4")], Data(@"Value 4")); + XCTAssertEqualObjects([_rocks dataForKey:Data(@"Key 1") error:nil], Data(@"Value 1")); + XCTAssertEqualObjects([_rocks dataForKey:Data(@"Key 2") error:nil], nil); + XCTAssertEqualObjects([_rocks dataForKey:Data(@"Key 3") error:nil], nil); + XCTAssertEqualObjects([_rocks dataForKey:Data(@"Key 4") error:nil], Data(@"Value 4")); } - (void)testWriteBatch_Count @@ -175,7 +175,7 @@ - (void)testWriteBatch_Count options.createIfMissing = YES; }]; - [_rocks setData:Data(@"Value 1") forKey:Data(@"Key 1")]; + [_rocks setData:Data(@"Value 1") forKey:Data(@"Key 1") error:nil]; RocksDBWriteBatch *batch = [_rocks writeBatch]; @@ -210,7 +210,7 @@ - (void)testWriteBatch_Encoded options.valueType = RocksDBTypeNSString; }]; - [_rocks setObject:@"Value 1" forKey:@"Key 1"]; + [_rocks setObject:@"Value 1" forKey:@"Key 1" error:nil]; [_rocks performWriteBatch:^(RocksDBWriteBatch *batch, RocksDBWriteOptions *options) { [batch setObject:@"Value 2" forKey:@"Key 2"]; @@ -218,9 +218,9 @@ - (void)testWriteBatch_Encoded [batch deleteObjectForKey:@"Key 1"]; } error:nil]; - XCTAssertEqualObjects([_rocks objectForKey:@"Key 1"], nil); - XCTAssertEqualObjects([_rocks objectForKey:@"Key 2"], @"Value 2"); - XCTAssertEqualObjects([_rocks objectForKey:@"Key 3"], @"Value 3"); + XCTAssertEqualObjects([_rocks objectForKey:@"Key 1" error:nil], nil); + XCTAssertEqualObjects([_rocks objectForKey:@"Key 2" error:nil], @"Value 2"); + XCTAssertEqualObjects([_rocks objectForKey:@"Key 3" error:nil], @"Value 3"); } @end From f636de7f7ec4044bc614305a956f396caa051aa7 Mon Sep 17 00:00:00 2001 From: iska Date: Fri, 6 Nov 2015 00:01:19 +0100 Subject: [PATCH 23/76] Update project settings for Xcode 7.1 --- ObjectiveRocks.xcodeproj/project.pbxproj | 7 ++++++- .../xcschemes/ObjectiveRocks-iOS.xcscheme | 13 ++++++++----- .../xcshareddata/xcschemes/ObjectiveRocks.xcscheme | 13 ++++++++----- .../xcschemes/ObjectiveRocksTests-iOS.xcscheme | 13 ++++++++----- .../xcschemes/ObjectiveRocksTests.xcscheme | 13 ++++++++----- ObjectiveRocksTests/Info.plist | 2 +- 6 files changed, 39 insertions(+), 22 deletions(-) diff --git a/ObjectiveRocks.xcodeproj/project.pbxproj b/ObjectiveRocks.xcodeproj/project.pbxproj index d020570..728ca28 100644 --- a/ObjectiveRocks.xcodeproj/project.pbxproj +++ b/ObjectiveRocks.xcodeproj/project.pbxproj @@ -2297,7 +2297,7 @@ attributes = { LastSwiftMigration = 0700; LastSwiftUpdateCheck = 0700; - LastUpgradeCheck = 0630; + LastUpgradeCheck = 0710; ORGANIZATIONNAME = BrainCookie; TargetAttributes = { 6299F8081A17B28200123F56 = { @@ -2834,6 +2834,7 @@ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; GCC_OPTIMIZATION_LEVEL = 0; @@ -2965,6 +2966,7 @@ ); INFOPLIST_FILE = ObjectiveRocksTests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "co.braincookie.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = ObjectiveRocksTests; SDKROOT = macosx; SWIFT_OBJC_BRIDGING_HEADER = "ObjectiveRocksTests/ObjectiveRocksTests-Bridging-Header.h"; @@ -2982,6 +2984,7 @@ FRAMEWORK_SEARCH_PATHS = "$(inherited)"; INFOPLIST_FILE = ObjectiveRocksTests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "co.braincookie.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = ObjectiveRocksTests; SDKROOT = macosx; SWIFT_OBJC_BRIDGING_HEADER = "ObjectiveRocksTests/ObjectiveRocksTests-Bridging-Header.h"; @@ -3058,6 +3061,7 @@ ); INFOPLIST_FILE = ObjectiveRocksTests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "co.braincookie.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "ObjectiveRocksTests-iOS"; SWIFT_OBJC_BRIDGING_HEADER = "ObjectiveRocksTests/ObjectiveRocksTests-iOS-Bridging-Header.h"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; @@ -3072,6 +3076,7 @@ FRAMEWORK_SEARCH_PATHS = "$(inherited)"; INFOPLIST_FILE = ObjectiveRocksTests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "co.braincookie.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "ObjectiveRocksTests-iOS"; SWIFT_OBJC_BRIDGING_HEADER = "ObjectiveRocksTests/ObjectiveRocksTests-iOS-Bridging-Header.h"; }; diff --git a/ObjectiveRocks.xcodeproj/xcshareddata/xcschemes/ObjectiveRocks-iOS.xcscheme b/ObjectiveRocks.xcodeproj/xcshareddata/xcschemes/ObjectiveRocks-iOS.xcscheme index d9e737f..90fa31b 100644 --- a/ObjectiveRocks.xcodeproj/xcshareddata/xcschemes/ObjectiveRocks-iOS.xcscheme +++ b/ObjectiveRocks.xcodeproj/xcshareddata/xcschemes/ObjectiveRocks-iOS.xcscheme @@ -1,6 +1,6 @@ + shouldUseLaunchSchemeArgsEnv = "YES"> @@ -48,15 +48,18 @@ ReferencedContainer = "container:ObjectiveRocks.xcodeproj"> + + + shouldUseLaunchSchemeArgsEnv = "YES"> @@ -48,15 +48,18 @@ ReferencedContainer = "container:ObjectiveRocks.xcodeproj"> + + + shouldUseLaunchSchemeArgsEnv = "YES"> @@ -48,15 +48,18 @@ ReferencedContainer = "container:ObjectiveRocks.xcodeproj"> + + + shouldUseLaunchSchemeArgsEnv = "YES"> @@ -48,15 +48,18 @@ ReferencedContainer = "container:ObjectiveRocks.xcodeproj"> + + CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier - co.braincookie.$(PRODUCT_NAME:rfc1034identifier) + $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion 6.0 CFBundleName From 18aab545096e0043f6b05fe7a09c7fce42f33230 Mon Sep 17 00:00:00 2001 From: iska Date: Fri, 6 Nov 2015 22:22:43 +0100 Subject: [PATCH 24/76] Update Swift tests for latest swift syntax and error handling model --- ObjectiveRocksTests/RockDBTests.swift | 33 ++++-- ObjectiveRocksTests/RocksDBBackupTests.swift | 112 +++++++++--------- ObjectiveRocksTests/RocksDBBasicTests.swift | 45 +++---- .../RocksDBCheckpointTests.swift | 16 +-- .../RocksDBColumnFamilyMetadataTests.swift | 8 +- .../RocksDBColumnFamilyTests.swift | 82 ++++++------- .../RocksDBComparatorTests.swift | 88 +++++++------- .../RocksDBIndexedWriteBatch.swift | 6 +- .../RocksDBIteratorTests.swift | 110 ++++++++--------- .../RocksDBMergeOperatorTests.swift | 44 +++---- .../RocksDBPrefixExtractorTests.swift | 32 ++--- .../RocksDBPropertiesTests.swift | 6 +- .../RocksDBReadOnlyTests.swift | 24 ++-- .../RocksDBSnapshotTests.swift | 40 +++---- .../RocksDBStatisticsTests.swift | 10 +- .../RocksDBWriteBatchTests.swift | 99 ++++++++-------- 16 files changed, 390 insertions(+), 365 deletions(-) diff --git a/ObjectiveRocksTests/RockDBTests.swift b/ObjectiveRocksTests/RockDBTests.swift index 4b6fed1..a247a4a 100644 --- a/ObjectiveRocksTests/RockDBTests.swift +++ b/ObjectiveRocksTests/RockDBTests.swift @@ -9,6 +9,23 @@ import Foundation import XCTest +public func AssertThrows(message: String = "Expression did not throw", + _ function: String = __FUNCTION__, + _ file: String = __FILE__, + _ line: UInt = __LINE__, + expression: () throws -> Void) +{ + var thrown: NSError? = nil + do { + try expression() + } catch { + thrown = error as NSError + } + + let completeMessage = "\(message) in function: \(function)" + XCTAssertNotNil(thrown, completeMessage, file: file, line: line) +} + public func Data(x: String) -> NSData { return x.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)! } @@ -52,7 +69,7 @@ class RocksDBTests : XCTestCase { override func setUp() { super.setUp() let bundle = NSBundle(forClass: self.dynamicType) - path = bundle.bundlePath.stringByAppendingPathComponent("ObjectiveRocks") + path = (bundle.bundlePath as NSString).stringByAppendingPathComponent("ObjectiveRocks") backupPath = path.stringByAppendingString("Backup") restorePath = path.stringByAppendingString("Restore") checkpointPath1 = path.stringByAppendingString("Snapshot1") @@ -70,10 +87,12 @@ class RocksDBTests : XCTestCase { } func cleanupDatabase() { - NSFileManager.defaultManager().removeItemAtPath(path, error: nil) - NSFileManager.defaultManager().removeItemAtPath(backupPath, error: nil) - NSFileManager.defaultManager().removeItemAtPath(restorePath, error: nil) - NSFileManager.defaultManager().removeItemAtPath(checkpointPath1, error: nil) - NSFileManager.defaultManager().removeItemAtPath(checkpointPath2, error: nil) + do { + try NSFileManager.defaultManager().removeItemAtPath(path) + try NSFileManager.defaultManager().removeItemAtPath(backupPath) + try NSFileManager.defaultManager().removeItemAtPath(restorePath) + try NSFileManager.defaultManager().removeItemAtPath(checkpointPath1) + try NSFileManager.defaultManager().removeItemAtPath(checkpointPath2) + } catch {} } -} \ No newline at end of file +} diff --git a/ObjectiveRocksTests/RocksDBBackupTests.swift b/ObjectiveRocksTests/RocksDBBackupTests.swift index 962f552..c6cd26c 100644 --- a/ObjectiveRocksTests/RocksDBBackupTests.swift +++ b/ObjectiveRocksTests/RocksDBBackupTests.swift @@ -15,13 +15,13 @@ class RocksDBBackupTests : RocksDBTests { options.createIfMissing = true }) - rocks.setData(Data("value 1"), forKey: Data("key 1")) - rocks.setData(Data("value 2"), forKey: Data("key 2")) - rocks.setData(Data("value 3"), forKey: Data("key 3")) + try! rocks.setData(Data("value 1"), forKey: Data("key 1")) + try! rocks.setData(Data("value 2"), forKey: Data("key 2")) + try! rocks.setData(Data("value 3"), forKey: Data("key 3")) let backupEngine = RocksDBBackupEngine(path: self.backupPath) - backupEngine.createBackupForDatabase(rocks, error: nil) + try! backupEngine.createBackupForDatabase(rocks) rocks.close() @@ -34,13 +34,13 @@ class RocksDBBackupTests : RocksDBTests { options.createIfMissing = true }) - rocks.setData(Data("value 1"), forKey: Data("key 1")) - rocks.setData(Data("value 2"), forKey: Data("key 2")) - rocks.setData(Data("value 3"), forKey: Data("key 3")) + try! rocks.setData(Data("value 1"), forKey: Data("key 1")) + try! rocks.setData(Data("value 2"), forKey: Data("key 2")) + try! rocks.setData(Data("value 3"), forKey: Data("key 3")) let backupEngine = RocksDBBackupEngine(path: self.backupPath) - backupEngine.createBackupForDatabase(rocks, error: nil) + try! backupEngine.createBackupForDatabase(rocks) rocks.close() @@ -61,14 +61,16 @@ class RocksDBBackupTests : RocksDBTests { let backupEngine = RocksDBBackupEngine(path: self.backupPath) - rocks.setData(Data("value 1"), forKey: Data("key 1")) - backupEngine.createBackupForDatabase(rocks, error: nil) + try! rocks.setData(Data("value 1"), forKey: Data("key 1")) - rocks.setData(Data("value 2"), forKey: Data("key 2")) - backupEngine.createBackupForDatabase(rocks, error: nil) + try! backupEngine.createBackupForDatabase(rocks) - rocks.setData(Data("value 3"), forKey: Data("key 3")) - backupEngine.createBackupForDatabase(rocks, error: nil) + try! rocks.setData(Data("value 2"), forKey: Data("key 2")) + try! backupEngine.createBackupForDatabase(rocks) + + try! rocks.setData(Data("value 3"), forKey: Data("key 3")) + + try! backupEngine.createBackupForDatabase(rocks) rocks.close() @@ -89,18 +91,21 @@ class RocksDBBackupTests : RocksDBTests { let backupEngine = RocksDBBackupEngine(path: self.backupPath) - rocks.setData(Data("value 1"), forKey: Data("key 1")) - backupEngine.createBackupForDatabase(rocks, error: nil) + try! rocks.setData(Data("value 1"), forKey: Data("key 1")) + do { + try backupEngine.createBackupForDatabase(rocks) + } catch _ { + } - rocks.setData(Data("value 2"), forKey: Data("key 2")) - backupEngine.createBackupForDatabase(rocks, error: nil) + try! rocks.setData(Data("value 2"), forKey: Data("key 2")) + try! backupEngine.createBackupForDatabase(rocks) - rocks.setData(Data("value 3"), forKey: Data("key 3")) - backupEngine.createBackupForDatabase(rocks, error: nil) + try! rocks.setData(Data("value 3"), forKey: Data("key 3")) + try! backupEngine.createBackupForDatabase(rocks) rocks.close() - backupEngine.purgeOldBackupsKeepingLast(2, error: nil) + try! backupEngine.purgeOldBackupsKeepingLast(2) let backupInfo = backupEngine.backupInfo() @@ -118,18 +123,18 @@ class RocksDBBackupTests : RocksDBTests { let backupEngine = RocksDBBackupEngine(path: self.backupPath) - rocks.setData(Data("value 1"), forKey: Data("key 1")) - backupEngine.createBackupForDatabase(rocks, error: nil) + try! rocks.setData(Data("value 1"), forKey: Data("key 1")) + try! backupEngine.createBackupForDatabase(rocks) - rocks.setData(Data("value 2"), forKey: Data("key 2")) - backupEngine.createBackupForDatabase(rocks, error: nil) + try! rocks.setData(Data("value 2"), forKey: Data("key 2")) + try! backupEngine.createBackupForDatabase(rocks) - rocks.setData(Data("value 3"), forKey: Data("key 3")) - backupEngine.createBackupForDatabase(rocks, error: nil) + try! rocks.setData(Data("value 3"), forKey: Data("key 3")) + try! backupEngine.createBackupForDatabase(rocks) rocks.close() - backupEngine.deleteBackupWithId(2, error: nil) + try! backupEngine.deleteBackupWithId(2) let backupInfo = backupEngine.backupInfo() @@ -145,27 +150,27 @@ class RocksDBBackupTests : RocksDBTests { options.createIfMissing = true }) - rocks.setData(Data("value 1"), forKey: Data("key 1")) - rocks.setData(Data("value 2"), forKey: Data("key 2")) - rocks.setData(Data("value 3"), forKey: Data("key 3")) + try! rocks.setData(Data("value 1"), forKey: Data("key 1")) + try! rocks.setData(Data("value 2"), forKey: Data("key 2")) + try! rocks.setData(Data("value 3"), forKey: Data("key 3")) let backupEngine = RocksDBBackupEngine(path: self.backupPath) - backupEngine.createBackupForDatabase(rocks, error: nil) + try! backupEngine.createBackupForDatabase(rocks) - rocks.setData(Data("value 10"), forKey: Data("key 1")) - rocks.setData(Data("value 20"), forKey: Data("key 2")) - rocks.setData(Data("value 30"), forKey: Data("key 3")) + try! rocks.setData(Data("value 10"), forKey: Data("key 1")) + try! rocks.setData(Data("value 20"), forKey: Data("key 2")) + try! rocks.setData(Data("value 30"), forKey: Data("key 3")) rocks.close() - backupEngine.restoreBackupToDestinationPath(self.restorePath, error: nil) + try! backupEngine.restoreBackupToDestinationPath(self.restorePath) let backupRocks = RocksDB.databaseAtPath(restorePath, andDBOptions: nil) - XCTAssertEqual(backupRocks.dataForKey(Data("key 1")), Data("value 1")) - XCTAssertEqual(backupRocks.dataForKey(Data("key 2")), Data("value 2")) - XCTAssertEqual(backupRocks.dataForKey(Data("key 3")), Data("value 3")) + XCTAssertEqual(try! backupRocks.dataForKey(Data("key 1")), Data("value 1")) + XCTAssertEqual(try! backupRocks.dataForKey(Data("key 2")), Data("value 2")) + XCTAssertEqual(try! backupRocks.dataForKey(Data("key 3")), Data("value 3")) backupRocks.close() } @@ -177,34 +182,35 @@ class RocksDBBackupTests : RocksDBTests { let backupEngine = RocksDBBackupEngine(path: self.backupPath) - rocks.setData(Data("value 1"), forKey: Data("key 1")) - backupEngine.createBackupForDatabase(rocks, error: nil) + try! rocks.setData(Data("value 1"), forKey: Data("key 1")) + try! backupEngine.createBackupForDatabase(rocks) - rocks.setData(Data("value 2"), forKey: Data("key 2")) - backupEngine.createBackupForDatabase(rocks, error: nil) + try! rocks.setData(Data("value 2"), forKey: Data("key 2")) + try! backupEngine.createBackupForDatabase(rocks) - rocks.setData(Data("value 3"), forKey: Data("key 3")) - backupEngine.createBackupForDatabase(rocks, error: nil) + try! rocks.setData(Data("value 3"), forKey: Data("key 3")) + try! backupEngine.createBackupForDatabase(rocks) rocks.close() - backupEngine.restoreBackupWithId(1, toDestinationPath: self.restorePath, error: nil) + try! backupEngine.restoreBackupWithId(1, toDestinationPath: self.restorePath) var backupRocks = RocksDB.databaseAtPath(restorePath, andDBOptions: nil) - XCTAssertEqual(backupRocks.dataForKey(Data("key 1")), Data("value 1")) - XCTAssertNil(backupRocks.dataForKey(Data("key 2"))) - XCTAssertNil(backupRocks.dataForKey(Data("key 3"))) + XCTAssertEqual(try! backupRocks.dataForKey(Data("key 1")), Data("value 1")) + + XCTAssertNil(try? backupRocks.dataForKey(Data("key 2"))) + XCTAssertNil(try? backupRocks.dataForKey(Data("key 3"))) backupRocks.close() - backupEngine.restoreBackupWithId(2, toDestinationPath: self.restorePath, error: nil) + try! backupEngine.restoreBackupWithId(2, toDestinationPath: self.restorePath) backupRocks = RocksDB.databaseAtPath(restorePath, andDBOptions: nil) - XCTAssertEqual(backupRocks.dataForKey(Data("key 1")), Data("value 1")) - XCTAssertEqual(backupRocks.dataForKey(Data("key 2")), Data("value 2")) - XCTAssertNil(backupRocks.dataForKey(Data("key 3"))) + XCTAssertEqual(try! backupRocks.dataForKey(Data("key 1")), Data("value 1")) + XCTAssertEqual(try! backupRocks.dataForKey(Data("key 2")), Data("value 2")) + XCTAssertNil(try? backupRocks.dataForKey(Data("key 3"))) backupRocks.close() } diff --git a/ObjectiveRocksTests/RocksDBBasicTests.swift b/ObjectiveRocksTests/RocksDBBasicTests.swift index 664ae99..97cbaa8 100644 --- a/ObjectiveRocksTests/RocksDBBasicTests.swift +++ b/ObjectiveRocksTests/RocksDBBasicTests.swift @@ -34,21 +34,18 @@ class RocksDBBasicTests : RocksDBTests { writeOptions.syncWrites = true }) - rocks.setData(Data("value 1"), forKey: Data("key 1")) - rocks.setData(Data("value 2"), forKey: Data("key 2")) - rocks.setData(Data("value 3"), forKey: Data("key 3")) + try! rocks.setData(Data("value 1"), forKey: Data("key 1")) + try! rocks.setData(Data("value 2"), forKey: Data("key 2")) + try! rocks.setData(Data("value 3"), forKey: Data("key 3")) - XCTAssertEqual(rocks.dataForKey(Data("key 1")), Data("value 1")); - XCTAssertEqual(rocks.dataForKey(Data("key 2")), Data("value 2")); - XCTAssertEqual(rocks.dataForKey(Data("key 3")), Data("value 3")); + XCTAssertEqual(try! rocks.dataForKey(Data("key 1")), Data("value 1")); + XCTAssertEqual(try! rocks.dataForKey(Data("key 2")), Data("value 2")); + XCTAssertEqual(try! rocks.dataForKey(Data("key 3")), Data("value 3")); - rocks.deleteDataForKey(Data("key 2")) - XCTAssertNil(rocks.dataForKey(Data("key 2"))); + try! rocks.deleteDataForKey(Data("key 2")) + XCTAssertNil(try? rocks.dataForKey(Data("key 2"))); - var error: NSError? = nil - var ok = rocks.deleteDataForKey(Data("key 2"), error:&error); - XCTAssertTrue(ok); - XCTAssertNil(error); + try! self.rocks.deleteDataForKey(Data("key 2")) } func testSwift_DB_CRUD_Encoded() { @@ -64,21 +61,17 @@ class RocksDBBasicTests : RocksDBTests { writeOptions.syncWrites = true }) - rocks.setObject("value 1", forKey: "key 1") - rocks.setObject("value 2", forKey: "key 2") - rocks.setObject("value 3", forKey: "key 3") + try! rocks.setObject("value 1", forKey: "key 1") + try! rocks.setObject("value 2", forKey: "key 2") + try! rocks.setObject("value 3", forKey: "key 3") + XCTAssertEqual(try! rocks.objectForKey("key 1") as? String, "value 1"); + XCTAssertEqual(try! rocks.objectForKey("key 2") as? String, "value 2"); + XCTAssertEqual(try! rocks.objectForKey("key 3") as? String, "value 3"); + try! rocks.deleteObjectForKey("key 2") + let value = try? rocks.objectForKey("key 2") + XCTAssertNil(value); - XCTAssertEqual(rocks.objectForKey("key 1") as! NSString, "value 1"); - XCTAssertEqual(rocks.objectForKey("key 2") as! NSString, "value 2"); - XCTAssertEqual(rocks.objectForKey("key 3") as! NSString, "value 3"); - - rocks.deleteObjectForKey("key 2") - XCTAssertNil(rocks.objectForKey("key 2")); - - var error: NSError? = nil - var ok = rocks.deleteObjectForKey("key 2", error:&error); - XCTAssertTrue(ok); - XCTAssertNil(error); + try! self.rocks.deleteObjectForKey("key 2") } } diff --git a/ObjectiveRocksTests/RocksDBCheckpointTests.swift b/ObjectiveRocksTests/RocksDBCheckpointTests.swift index 74bba27..32328f7 100644 --- a/ObjectiveRocksTests/RocksDBCheckpointTests.swift +++ b/ObjectiveRocksTests/RocksDBCheckpointTests.swift @@ -15,15 +15,15 @@ class RocksDBCheckpointTests : RocksDBTests { options.createIfMissing = true }) - rocks.setData(Data("value 1"), forKey: Data("key 1")) + try! rocks.setData(Data("value 1"), forKey: Data("key 1")) let checkpoint = RocksDBCheckpoint(database: rocks) - checkpoint.createCheckpointAtPath(checkpointPath1, error: nil) + try! checkpoint.createCheckpointAtPath(checkpointPath1) - rocks.setData(Data("value 2"), forKey: Data("key 2")) + try! rocks.setData(Data("value 2"), forKey: Data("key 2")) - checkpoint.createCheckpointAtPath(checkpointPath2, error: nil) + try! checkpoint.createCheckpointAtPath(checkpointPath2) rocks.close() @@ -31,8 +31,8 @@ class RocksDBCheckpointTests : RocksDBTests { options.createIfMissing = true }) - XCTAssertEqual(rocks.dataForKey(Data("key 1")), Data("value 1")) - XCTAssertNil(rocks.dataForKey(Data("key 2"))) + XCTAssertEqual(try! rocks.dataForKey(Data("key 1")), Data("value 1")) + XCTAssertNil(try? rocks.dataForKey(Data("key 2"))) rocks.close() @@ -40,7 +40,7 @@ class RocksDBCheckpointTests : RocksDBTests { options.createIfMissing = true }) - XCTAssertEqual(rocks.dataForKey(Data("key 1")), Data("value 1")) - XCTAssertEqual(rocks.dataForKey(Data("key 2")), Data("value 2")) + XCTAssertEqual(try! rocks.dataForKey(Data("key 1")), Data("value 1")) + XCTAssertEqual(try! rocks.dataForKey(Data("key 2")), Data("value 2")) } } diff --git a/ObjectiveRocksTests/RocksDBColumnFamilyMetadataTests.swift b/ObjectiveRocksTests/RocksDBColumnFamilyMetadataTests.swift index 69e660c..f338133 100644 --- a/ObjectiveRocksTests/RocksDBColumnFamilyMetadataTests.swift +++ b/ObjectiveRocksTests/RocksDBColumnFamilyMetadataTests.swift @@ -23,11 +23,11 @@ class RocksDBColumnFamilyMetadataTests : RocksDBTests { let defaultColumnFamily = rocks.columnFamilies()[0] as! RocksDBColumnFamily let newColumnFamily = rocks.columnFamilies()[1] as! RocksDBColumnFamily - defaultColumnFamily.setData(Data("df_value1"), forKey: Data("df_key1")) - defaultColumnFamily.setData(Data("df_value2"), forKey: Data("df_key2")) + try! defaultColumnFamily.setData(Data("df_value1"), forKey: Data("df_key1")) + try! defaultColumnFamily.setData(Data("df_value2"), forKey: Data("df_key2")) - newColumnFamily.setData(Data("cf_value1"), forKey: Data("cf_key1")) - newColumnFamily.setData(Data("cf_value2"), forKey: Data("cf_key2")) + try! newColumnFamily.setData(Data("cf_value1"), forKey: Data("cf_key1")) + try! newColumnFamily.setData(Data("cf_value2"), forKey: Data("cf_key2")) let defaultMetadata = defaultColumnFamily.columnFamilyMetaData() XCTAssertNotNil(defaultMetadata); diff --git a/ObjectiveRocksTests/RocksDBColumnFamilyTests.swift b/ObjectiveRocksTests/RocksDBColumnFamilyTests.swift index cce5771..da1c382 100644 --- a/ObjectiveRocksTests/RocksDBColumnFamilyTests.swift +++ b/ObjectiveRocksTests/RocksDBColumnFamilyTests.swift @@ -20,7 +20,7 @@ class RocksDBColumnFamilyTests : RocksDBTests { let names = RocksDB.listColumnFamiliesInDatabaseAtPath(self.path) XCTAssertTrue(names.count == 1); - XCTAssertEqual(names[0] as! NSString, "default") + XCTAssertEqual(names[0] as? NSString, "default") } func testSwift_ColumnFamilies_Create() { @@ -35,8 +35,8 @@ class RocksDBColumnFamilyTests : RocksDBTests { let names = RocksDB.listColumnFamiliesInDatabaseAtPath(self.path) XCTAssertTrue(names.count == 2); - XCTAssertEqual(names[0] as! NSString, "default") - XCTAssertEqual(names[1] as! NSString, "new_cf") + XCTAssertEqual(names[0] as? NSString, "default") + XCTAssertEqual(names[1] as? NSString, "new_cf") } func testSwift_ColumnFamilies_Drop() { @@ -52,7 +52,7 @@ class RocksDBColumnFamilyTests : RocksDBTests { let names = RocksDB.listColumnFamiliesInDatabaseAtPath(self.path) XCTAssertTrue(names.count == 1); - XCTAssertEqual(names[0] as! NSString, "default") + XCTAssertEqual(names[0] as? NSString, "default") } func testSwift_ColumnFamilies_Open() { @@ -72,8 +72,8 @@ class RocksDBColumnFamilyTests : RocksDBTests { let names = RocksDB.listColumnFamiliesInDatabaseAtPath(self.path) XCTAssertTrue(names.count == 2) - XCTAssertEqual(names[0] as! NSString, "default") - XCTAssertEqual(names[1] as! NSString, "new_cf") + XCTAssertEqual(names[0] as? NSString, "default") + XCTAssertEqual(names[1] as? NSString, "new_cf") let descriptor = RocksDBColumnFamilyDescriptor() @@ -119,8 +119,8 @@ class RocksDBColumnFamilyTests : RocksDBTests { let names = RocksDB.listColumnFamiliesInDatabaseAtPath(self.path) XCTAssertTrue(names.count == 2) - XCTAssertEqual(names[0] as! NSString, "default") - XCTAssertEqual(names[1] as! NSString, "new_cf") + XCTAssertEqual(names[0] as? NSString, "default") + XCTAssertEqual(names[1] as? NSString, "new_cf") let descriptor = RocksDBColumnFamilyDescriptor() @@ -143,13 +143,13 @@ class RocksDBColumnFamilyTests : RocksDBTests { options.createIfMissing = true }) - rocks.setData(Data("df_value"), forKey: Data("df_key1")) - rocks.setData(Data("df_value"), forKey: Data("df_key2")) + try! rocks.setData(Data("df_value"), forKey: Data("df_key1")) + try! rocks.setData(Data("df_value"), forKey: Data("df_key2")) let columnFamily = rocks.createColumnFamilyWithName("new_cf", andOptions:nil) - columnFamily.setData(Data("cf_value"), forKey: Data("cf_key1")) - columnFamily.setData(Data("cf_value"), forKey: Data("cf_key2")) + try! columnFamily.setData(Data("cf_value"), forKey: Data("cf_key1")) + try! columnFamily.setData(Data("cf_value"), forKey: Data("cf_key2")) columnFamily.close() @@ -168,28 +168,28 @@ class RocksDBColumnFamilyTests : RocksDBTests { let defaultColumnFamily = rocks.columnFamilies()[0] as! RocksDBColumnFamily let newColumnFamily = rocks.columnFamilies()[1] as! RocksDBColumnFamily - XCTAssertEqual(rocks.dataForKey(Data("df_key1")), Data("df_value")) - XCTAssertEqual(rocks.dataForKey(Data("df_key2")), Data("df_value")) - XCTAssertNil(rocks.dataForKey(Data("cf_key1"))) - XCTAssertNil(rocks.dataForKey(Data("cf_key2"))) + XCTAssertEqual(try! rocks.dataForKey(Data("df_key1")), Data("df_value")) + XCTAssertEqual(try! rocks.dataForKey(Data("df_key2")), Data("df_value")) + XCTAssertNil(try? rocks.dataForKey(Data("cf_key1"))) + XCTAssertNil(try? rocks.dataForKey(Data("cf_key2"))) - XCTAssertEqual(defaultColumnFamily.dataForKey(Data("df_key1")), Data("df_value")) - XCTAssertEqual(defaultColumnFamily.dataForKey(Data("df_key2")), Data("df_value")) + XCTAssertEqual(try! defaultColumnFamily.dataForKey(Data("df_key1")), Data("df_value")) + XCTAssertEqual(try! defaultColumnFamily.dataForKey(Data("df_key2")), Data("df_value")) - XCTAssertNil(defaultColumnFamily.dataForKey(Data("cf_key1"))) - XCTAssertNil(defaultColumnFamily.dataForKey(Data("cf_key2"))) + XCTAssertNil(try? defaultColumnFamily.dataForKey(Data("cf_key1"))) + XCTAssertNil(try? defaultColumnFamily.dataForKey(Data("cf_key2"))) - XCTAssertEqual(newColumnFamily.dataForKey(Data("cf_key1")), Data("cf_value")) - XCTAssertEqual(newColumnFamily.dataForKey(Data("cf_key2")), Data("cf_value")) + XCTAssertEqual(try! newColumnFamily.dataForKey(Data("cf_key1")), Data("cf_value")) + XCTAssertEqual(try! newColumnFamily.dataForKey(Data("cf_key2")), Data("cf_value")) - XCTAssertNil(newColumnFamily.dataForKey(Data("df_key1"))) - XCTAssertNil(newColumnFamily.dataForKey(Data("df_key2"))) + XCTAssertNil(try? newColumnFamily.dataForKey(Data("df_key1"))) + XCTAssertNil(try? newColumnFamily.dataForKey(Data("df_key2"))) - newColumnFamily.deleteDataForKey(Data("cf_key1")) - XCTAssertNil(newColumnFamily.dataForKey(Data("cf_key1"))) + try! newColumnFamily.deleteDataForKey(Data("cf_key1")) + XCTAssertNil(try? newColumnFamily.dataForKey(Data("cf_key1"))) - newColumnFamily.deleteDataForKey(Data("cf_key1")) - XCTAssertNil(newColumnFamily.dataForKey(Data("cf_key1"))) + try! newColumnFamily.deleteDataForKey(Data("cf_key1")) + XCTAssertNil(try? newColumnFamily.dataForKey(Data("cf_key1"))) defaultColumnFamily.close() newColumnFamily.close() @@ -209,7 +209,7 @@ class RocksDBColumnFamilyTests : RocksDBTests { let defaultColumnFamily = rocks.columnFamilies()[0] as! RocksDBColumnFamily let newColumnFamily = rocks.columnFamilies()[1] as! RocksDBColumnFamily - newColumnFamily.setData(Data("xyz_value"), forKey: Data("xyz")) + try! newColumnFamily.setData(Data("xyz_value"), forKey: Data("xyz")) let batch = newColumnFamily.writeBatch() @@ -221,16 +221,16 @@ class RocksDBColumnFamilyTests : RocksDBTests { rocks.applyWriteBatch(batch, withWriteOptions:nil) - XCTAssertEqual(defaultColumnFamily.dataForKey(Data("df_key")), Data("df_value")) - XCTAssertNil(defaultColumnFamily.dataForKey(Data("df_key1"))) - XCTAssertNil(defaultColumnFamily.dataForKey(Data("df_key2"))) + XCTAssertEqual(try! defaultColumnFamily.dataForKey(Data("df_key")), Data("df_value")) + XCTAssertNil(try? defaultColumnFamily.dataForKey(Data("df_key1"))) + XCTAssertNil(try? defaultColumnFamily.dataForKey(Data("df_key2"))) - XCTAssertEqual(newColumnFamily.dataForKey(Data("cf_key1")), Data("cf_value1")) - XCTAssertEqual(newColumnFamily.dataForKey(Data("cf_key2")), Data("cf_value2")) - XCTAssertNil(newColumnFamily.dataForKey(Data("df_key"))) + XCTAssertEqual(try! newColumnFamily.dataForKey(Data("cf_key1")), Data("cf_value1")) + XCTAssertEqual(try! newColumnFamily.dataForKey(Data("cf_key2")), Data("cf_value2")) + XCTAssertNil(try? newColumnFamily.dataForKey(Data("df_key"))) - XCTAssertNil(defaultColumnFamily.dataForKey(Data("xyz"))) - XCTAssertNil(newColumnFamily.dataForKey(Data("xyz"))) + XCTAssertNil(try? defaultColumnFamily.dataForKey(Data("xyz"))) + XCTAssertNil(try? newColumnFamily.dataForKey(Data("xyz"))) defaultColumnFamily.close() newColumnFamily.close() @@ -250,11 +250,11 @@ class RocksDBColumnFamilyTests : RocksDBTests { let defaultColumnFamily = rocks.columnFamilies()[0] as! RocksDBColumnFamily let newColumnFamily = rocks.columnFamilies()[1] as! RocksDBColumnFamily - defaultColumnFamily.setData(Data("df_value1"), forKey: Data("df_key1")) - defaultColumnFamily.setData(Data("df_value2"), forKey: Data("df_key2")) + try! defaultColumnFamily.setData(Data("df_value1"), forKey: Data("df_key1")) + try! defaultColumnFamily.setData(Data("df_value2"), forKey: Data("df_key2")) - newColumnFamily.setData(Data("cf_value1"), forKey: Data("cf_key1")) - newColumnFamily.setData(Data("cf_value2"), forKey: Data("cf_key2")) + try! newColumnFamily.setData(Data("cf_value1"), forKey: Data("cf_key1")) + try! newColumnFamily.setData(Data("cf_value2"), forKey: Data("cf_key2")) let dfIterator = defaultColumnFamily.iterator() diff --git a/ObjectiveRocksTests/RocksDBComparatorTests.swift b/ObjectiveRocksTests/RocksDBComparatorTests.swift index a276cab..2a8a8ff 100644 --- a/ObjectiveRocksTests/RocksDBComparatorTests.swift +++ b/ObjectiveRocksTests/RocksDBComparatorTests.swift @@ -16,29 +16,29 @@ class RocksDBComparatorTests : RocksDBTests { options.comparator = RocksDBComparator.comaparatorWithType(.BytewiseAscending) }) - rocks.setData(Data("abc1"), forKey: Data("abc1")) - rocks.setData(Data("abc2"), forKey: Data("abc2")) - rocks.setData(Data("abc3"), forKey: Data("abc3")) + try! rocks.setData(Data("abc1"), forKey: Data("abc1")) + try! rocks.setData(Data("abc2"), forKey: Data("abc2")) + try! rocks.setData(Data("abc3"), forKey: Data("abc3")) let iterator = rocks.iterator() iterator.seekToFirst() XCTAssertTrue(iterator.isValid()) - XCTAssertEqual(iterator.key() as! NSData, Data("abc1")) - XCTAssertEqual(iterator.value() as! NSData, Data("abc1")) + XCTAssertEqual(iterator.key() as? NSData, Data("abc1")) + XCTAssertEqual(iterator.value() as? NSData, Data("abc1")) iterator.next() XCTAssertTrue(iterator.isValid()) - XCTAssertEqual(iterator.key() as! NSData, Data("abc2")) - XCTAssertEqual(iterator.value() as! NSData, Data("abc2")) + XCTAssertEqual(iterator.key() as? NSData, Data("abc2")) + XCTAssertEqual(iterator.value() as? NSData, Data("abc2")) iterator.next() XCTAssertTrue(iterator.isValid()) - XCTAssertEqual(iterator.key() as! NSData, Data("abc3")) - XCTAssertEqual(iterator.value() as! NSData, Data("abc3")) + XCTAssertEqual(iterator.key() as? NSData, Data("abc3")) + XCTAssertEqual(iterator.value() as? NSData, Data("abc3")) iterator.next() @@ -47,14 +47,14 @@ class RocksDBComparatorTests : RocksDBTests { iterator.seekToLast() XCTAssertTrue(iterator.isValid()) - XCTAssertEqual(iterator.key() as! NSData, Data("abc3")) - XCTAssertEqual(iterator.value() as! NSData, Data("abc3")) + XCTAssertEqual(iterator.key() as? NSData, Data("abc3")) + XCTAssertEqual(iterator.value() as? NSData, Data("abc3")) iterator.seekToKey(Data("abc")) XCTAssertTrue(iterator.isValid()) - XCTAssertEqual(iterator.key() as! NSData, Data("abc1")) - XCTAssertEqual(iterator.value() as! NSData, Data("abc1")) + XCTAssertEqual(iterator.key() as? NSData, Data("abc1")) + XCTAssertEqual(iterator.value() as? NSData, Data("abc1")) iterator.close() } @@ -65,29 +65,29 @@ class RocksDBComparatorTests : RocksDBTests { options.comparator = RocksDBComparator.comaparatorWithType(.BytewiseDescending) }) - rocks.setData(Data("abc1"), forKey: Data("abc1")) - rocks.setData(Data("abc2"), forKey: Data("abc2")) - rocks.setData(Data("abc3"), forKey: Data("abc3")) + try! rocks.setData(Data("abc1"), forKey: Data("abc1")) + try! rocks.setData(Data("abc2"), forKey: Data("abc2")) + try! rocks.setData(Data("abc3"), forKey: Data("abc3")) let iterator = rocks.iterator() iterator.seekToFirst() XCTAssertTrue(iterator.isValid()) - XCTAssertEqual(iterator.key() as! NSData, Data("abc3")) - XCTAssertEqual(iterator.value() as! NSData, Data("abc3")) + XCTAssertEqual(iterator.key() as? NSData, Data("abc3")) + XCTAssertEqual(iterator.value() as? NSData, Data("abc3")) iterator.next() XCTAssertTrue(iterator.isValid()) - XCTAssertEqual(iterator.key() as! NSData, Data("abc2")) - XCTAssertEqual(iterator.value() as! NSData, Data("abc2")) + XCTAssertEqual(iterator.key() as? NSData, Data("abc2")) + XCTAssertEqual(iterator.value() as? NSData, Data("abc2")) iterator.next() XCTAssertTrue(iterator.isValid()) - XCTAssertEqual(iterator.key() as! NSData, Data("abc1")) - XCTAssertEqual(iterator.value() as! NSData, Data("abc1")) + XCTAssertEqual(iterator.key() as? NSData, Data("abc1")) + XCTAssertEqual(iterator.value() as? NSData, Data("abc1")) iterator.next() @@ -96,8 +96,8 @@ class RocksDBComparatorTests : RocksDBTests { iterator.seekToLast() XCTAssertTrue(iterator.isValid()) - XCTAssertEqual(iterator.key() as! NSData, Data("abc1")) - XCTAssertEqual(iterator.value() as! NSData, Data("abc1")) + XCTAssertEqual(iterator.key() as? NSData, Data("abc1")) + XCTAssertEqual(iterator.value() as? NSData, Data("abc1")) iterator.seekToKey(Data("abc")) @@ -106,8 +106,8 @@ class RocksDBComparatorTests : RocksDBTests { iterator.seekToKey(Data("abc999")) XCTAssertTrue(iterator.isValid()) - XCTAssertEqual(iterator.key() as! NSData, Data("abc3")) - XCTAssertEqual(iterator.value() as! NSData, Data("abc3")) + XCTAssertEqual(iterator.key() as? NSData, Data("abc3")) + XCTAssertEqual(iterator.value() as? NSData, Data("abc3")) iterator.close() } @@ -117,14 +117,15 @@ class RocksDBComparatorTests : RocksDBTests { options.createIfMissing = true options.comparator = RocksDBComparator.comaparatorWithType(.StringCompareAscending) options.keyType = .NSString + options.valueType = .NSString }) let expected = NSMutableArray() - for i in 0...10000 { + for i in 0..<10000 { let str = NSString(format: "a%d", i) expected.addObject(str) - rocks.setObject(str, forKey: str) + try! rocks.setObject(str, forKey: str) } /* Expected Array: [A0, A1, A10, A100, A1000, A1001, A1019, A102, A1020, ...] */ @@ -134,7 +135,7 @@ class RocksDBComparatorTests : RocksDBTests { var idx = 0 iterator.enumerateKeysUsingBlock { (key, stop) -> Void in - XCTAssertEqual(key as! NSString, expected[idx] as! NSString) + XCTAssertEqual(key as? NSString, expected[idx] as? NSString) idx++ } } @@ -144,14 +145,15 @@ class RocksDBComparatorTests : RocksDBTests { options.createIfMissing = true options.comparator = RocksDBComparator.comaparatorWithType(.StringCompareDescending) options.keyType = .NSString + options.valueType = .NSString }) let expected = NSMutableArray() - for i in 0...10000 { + for i in 0..<10000 { let str = NSString(format: "a%d", i) expected.addObject(str) - rocks.setObject(str, forKey: str) + try! rocks.setObject(str, forKey: str) } /* Expected Array: [A9999, A9998 .. A9990, A999, A9989, ...] */ @@ -161,7 +163,7 @@ class RocksDBComparatorTests : RocksDBTests { var idx = 9999 iterator.enumerateKeysUsingBlock { (key, stop) -> Void in - XCTAssertEqual(key as! NSString, expected[idx] as! NSString) + XCTAssertEqual(key as? NSString, expected[idx] as? NSString) idx-- } } @@ -172,15 +174,15 @@ class RocksDBComparatorTests : RocksDBTests { options.comparator = RocksDBComparator.comaparatorWithType(.NumberAscending) options.keyEncoder = { (number) -> NSData in - var r: NSInteger = number.unsignedIntegerValue - return NSData(bytes: &r, length: sizeof(NSInteger)) + var r: UInt = number.unsignedIntegerValue + return NSData(bytes: &r, length: sizeof(UInt)) } options.keyDecoder = { (data) -> AnyObject in if (data == nil) { return Optional.None! } - var r: NSInteger = 0 + var r: UInt = 0 data.getBytes(&r, length: sizeof(NSInteger)) return NSNumber(unsignedInteger: r) } @@ -189,8 +191,9 @@ class RocksDBComparatorTests : RocksDBTests { var i = 0 while i < 10000 { let r = arc4random_uniform(UINT32_MAX); - if (rocks.objectForKey(NSNumber(unsignedInt: r)) == nil) { - rocks.setObject(Data("value"), forKey: NSNumber(unsignedInt: r)) + let value = try? rocks.objectForKey(NSNumber(unsignedInt: r)) + if value as? NSData == nil { + try! rocks.setObject(Data("value"), forKey: NSNumber(unsignedInt: r)) i++ } } @@ -215,15 +218,15 @@ class RocksDBComparatorTests : RocksDBTests { options.comparator = RocksDBComparator.comaparatorWithType(.NumberDescending) options.keyEncoder = { (number) -> NSData in - var r: NSInteger = number.unsignedIntegerValue - return NSData(bytes: &r, length: sizeof(NSInteger)) + var r: UInt = number.unsignedIntegerValue + return NSData(bytes: &r, length: sizeof(UInt)) } options.keyDecoder = { (data) -> AnyObject in if (data == nil) { return Optional.None! } - var r: NSInteger = 0 + var r: UInt = 0 data.getBytes(&r, length: sizeof(NSInteger)) return NSNumber(unsignedInteger: r) } @@ -232,8 +235,9 @@ class RocksDBComparatorTests : RocksDBTests { var i = 0 while i < 10000 { let r = arc4random_uniform(UINT32_MAX); - if (rocks.objectForKey(NSNumber(unsignedInt: r)) == nil) { - rocks.setObject(Data("value"), forKey: NSNumber(unsignedInt: r)) + let value = try? rocks.objectForKey(NSNumber(unsignedInt: r)) + if value as? NSData == nil { + try! rocks.setObject(Data("value"), forKey: NSNumber(unsignedInt: r)) i++ } } diff --git a/ObjectiveRocksTests/RocksDBIndexedWriteBatch.swift b/ObjectiveRocksTests/RocksDBIndexedWriteBatch.swift index bcff3d4..38c9746 100644 --- a/ObjectiveRocksTests/RocksDBIndexedWriteBatch.swift +++ b/ObjectiveRocksTests/RocksDBIndexedWriteBatch.swift @@ -6,4 +6,8 @@ // Copyright (c) 2015 BrainCookie. All rights reserved. // -import Foundation +import XCTest + +class RocksDBIndexedWriteBatchTests : RocksDBTests { + +} diff --git a/ObjectiveRocksTests/RocksDBIteratorTests.swift b/ObjectiveRocksTests/RocksDBIteratorTests.swift index 705b9fa..afd0550 100644 --- a/ObjectiveRocksTests/RocksDBIteratorTests.swift +++ b/ObjectiveRocksTests/RocksDBIteratorTests.swift @@ -15,9 +15,9 @@ class RocksDBIteratorTests : RocksDBTests { options.createIfMissing = true }) - rocks.setData(Data("value 1"), forKey: Data("key 1")) - rocks.setData(Data("value 2"), forKey: Data("key 2")) - rocks.setData(Data("value 3"), forKey: Data("key 3")) + try! rocks.setData(Data("value 1"), forKey: Data("key 1")) + try! rocks.setData(Data("value 2"), forKey: Data("key 2")) + try! rocks.setData(Data("value 3"), forKey: Data("key 3")) let actual = NSMutableArray() let iterator = rocks.iterator() @@ -37,22 +37,22 @@ class RocksDBIteratorTests : RocksDBTests { options.createIfMissing = true }) - rocks.setData(Data("value 1"), forKey: Data("key 1")) - rocks.setData(Data("value 2"), forKey: Data("key 2")) + try! rocks.setData(Data("value 1"), forKey: Data("key 1")) + try! rocks.setData(Data("value 2"), forKey: Data("key 2")) let iterator = rocks.iterator() iterator.seekToFirst() XCTAssertTrue(iterator.isValid()) - XCTAssertEqual(iterator.key() as! NSData, Data("key 1")) - XCTAssertEqual(iterator.value() as! NSData, Data("value 1")) + XCTAssertEqual(iterator.key() as? NSData, Data("key 1")) + XCTAssertEqual(iterator.value() as? NSData, Data("value 1")) iterator.next() XCTAssertTrue(iterator.isValid()) - XCTAssertEqual(iterator.key() as! NSData, Data("key 2")) - XCTAssertEqual(iterator.value() as! NSData, Data("value 2")) + XCTAssertEqual(iterator.key() as? NSData, Data("key 2")) + XCTAssertEqual(iterator.value() as? NSData, Data("value 2")) iterator.next() @@ -62,15 +62,15 @@ class RocksDBIteratorTests : RocksDBTests { iterator.previous() XCTAssertTrue(iterator.isValid()) - XCTAssertEqual(iterator.key() as! NSData, Data("key 1")) - XCTAssertEqual(iterator.value() as! NSData, Data("value 1")) + XCTAssertEqual(iterator.key() as? NSData, Data("key 1")) + XCTAssertEqual(iterator.value() as? NSData, Data("value 1")) iterator.seekToFirst() iterator.seekToLast() XCTAssertTrue(iterator.isValid()) - XCTAssertEqual(iterator.key() as! NSData, Data("key 2")) - XCTAssertEqual(iterator.value() as! NSData, Data("value 2")) + XCTAssertEqual(iterator.key() as? NSData, Data("key 2")) + XCTAssertEqual(iterator.value() as? NSData, Data("value 2")) iterator.close() } @@ -80,9 +80,9 @@ class RocksDBIteratorTests : RocksDBTests { options.createIfMissing = true }) - rocks.setData(Data("value 1"), forKey: Data("key 1")) - rocks.setData(Data("value 2"), forKey: Data("key 2")) - rocks.setData(Data("value 3"), forKey: Data("key 3")) + try! rocks.setData(Data("value 1"), forKey: Data("key 1")) + try! rocks.setData(Data("value 2"), forKey: Data("key 2")) + try! rocks.setData(Data("value 3"), forKey: Data("key 3")) let actual = NSMutableArray() let iterator = rocks.iterator() @@ -103,9 +103,9 @@ class RocksDBIteratorTests : RocksDBTests { options.createIfMissing = true }) - rocks.setData(Data("value 1"), forKey: Data("key 1")) - rocks.setData(Data("value 2"), forKey: Data("key 2")) - rocks.setData(Data("value 3"), forKey: Data("key 3")) + try! rocks.setData(Data("value 1"), forKey: Data("key 1")) + try! rocks.setData(Data("value 2"), forKey: Data("key 2")) + try! rocks.setData(Data("value 3"), forKey: Data("key 3")) let actual = NSMutableArray() let iterator = rocks.iterator() @@ -125,10 +125,10 @@ class RocksDBIteratorTests : RocksDBTests { options.createIfMissing = true }) - rocks.setData(Data("value 1"), forKey: Data("key 1")) - rocks.setData(Data("value 2"), forKey: Data("key 2")) - rocks.setData(Data("value 3"), forKey: Data("key 3")) - rocks.setData(Data("value 4"), forKey: Data("key 4")) + try! rocks.setData(Data("value 1"), forKey: Data("key 1")) + try! rocks.setData(Data("value 2"), forKey: Data("key 2")) + try! rocks.setData(Data("value 3"), forKey: Data("key 3")) + try! rocks.setData(Data("value 4"), forKey: Data("key 4")) let actual = NSMutableArray() let iterator = rocks.iterator() @@ -150,10 +150,10 @@ class RocksDBIteratorTests : RocksDBTests { options.createIfMissing = true }) - rocks.setData(Data("value 1"), forKey: Data("key 1")) - rocks.setData(Data("value 2"), forKey: Data("key 2")) - rocks.setData(Data("value 3"), forKey: Data("key 3")) - rocks.setData(Data("value 4"), forKey: Data("key 4")) + try! rocks.setData(Data("value 1"), forKey: Data("key 1")) + try! rocks.setData(Data("value 2"), forKey: Data("key 2")) + try! rocks.setData(Data("value 3"), forKey: Data("key 3")) + try! rocks.setData(Data("value 4"), forKey: Data("key 4")) let actual = NSMutableArray() let iterator = rocks.iterator() @@ -175,10 +175,10 @@ class RocksDBIteratorTests : RocksDBTests { options.createIfMissing = true }) - rocks.setData(Data("value 1"), forKey: Data("key 1")) - rocks.setData(Data("value 2"), forKey: Data("key 2")) - rocks.setData(Data("value 3"), forKey: Data("key 3")) - rocks.setData(Data("value 4"), forKey: Data("key 4")) + try! rocks.setData(Data("value 1"), forKey: Data("key 1")) + try! rocks.setData(Data("value 2"), forKey: Data("key 2")) + try! rocks.setData(Data("value 3"), forKey: Data("key 3")) + try! rocks.setData(Data("value 4"), forKey: Data("key 4")) let actual = NSMutableArray() let iterator = rocks.iterator() @@ -202,9 +202,9 @@ class RocksDBIteratorTests : RocksDBTests { options.valueType = .NSString }) - rocks.setObject("value 1", forKey: "key 1") - rocks.setObject("value 2", forKey: "key 2") - rocks.setObject("value 3", forKey: "key 3") + try! rocks.setObject("value 1", forKey: "key 1") + try! rocks.setObject("value 2", forKey: "key 2") + try! rocks.setObject("value 3", forKey: "key 3") let actual = NSMutableArray() let iterator = rocks.iterator() @@ -224,9 +224,9 @@ class RocksDBIteratorTests : RocksDBTests { options.createIfMissing = true }) - rocks.setData(Data("value 1"), forKey: Data("key 1")) - rocks.setData(Data("value 2"), forKey: Data("key 2")) - rocks.setData(Data("value 3"), forKey: Data("key 3")) + try! rocks.setData(Data("value 1"), forKey: Data("key 1")) + try! rocks.setData(Data("value 2"), forKey: Data("key 2")) + try! rocks.setData(Data("value 3"), forKey: Data("key 3")) let actual = NSMutableArray() let iterator = rocks.iterator() @@ -247,9 +247,9 @@ class RocksDBIteratorTests : RocksDBTests { options.createIfMissing = true }) - rocks.setData(Data("value 1"), forKey: Data("key 1")) - rocks.setData(Data("value 2"), forKey: Data("key 2")) - rocks.setData(Data("value 3"), forKey: Data("key 3")) + try! rocks.setData(Data("value 1"), forKey: Data("key 1")) + try! rocks.setData(Data("value 2"), forKey: Data("key 2")) + try! rocks.setData(Data("value 3"), forKey: Data("key 3")) let actual = NSMutableArray() let iterator = rocks.iterator() @@ -270,10 +270,10 @@ class RocksDBIteratorTests : RocksDBTests { options.createIfMissing = true }) - rocks.setData(Data("value 1"), forKey: Data("key 1")) - rocks.setData(Data("value 2"), forKey: Data("key 2")) - rocks.setData(Data("value 3"), forKey: Data("key 3")) - rocks.setData(Data("value 4"), forKey: Data("key 4")) + try! rocks.setData(Data("value 1"), forKey: Data("key 1")) + try! rocks.setData(Data("value 2"), forKey: Data("key 2")) + try! rocks.setData(Data("value 3"), forKey: Data("key 3")) + try! rocks.setData(Data("value 4"), forKey: Data("key 4")) let actual = NSMutableArray() let iterator = rocks.iterator() @@ -296,10 +296,10 @@ class RocksDBIteratorTests : RocksDBTests { options.createIfMissing = true }) - rocks.setData(Data("value 1"), forKey: Data("key 1")) - rocks.setData(Data("value 2"), forKey: Data("key 2")) - rocks.setData(Data("value 3"), forKey: Data("key 3")) - rocks.setData(Data("value 4"), forKey: Data("key 4")) + try! rocks.setData(Data("value 1"), forKey: Data("key 1")) + try! rocks.setData(Data("value 2"), forKey: Data("key 2")) + try! rocks.setData(Data("value 3"), forKey: Data("key 3")) + try! rocks.setData(Data("value 4"), forKey: Data("key 4")) let actual = NSMutableArray() let iterator = rocks.iterator() @@ -322,10 +322,10 @@ class RocksDBIteratorTests : RocksDBTests { options.createIfMissing = true }) - rocks.setData(Data("value 1"), forKey: Data("key 1")) - rocks.setData(Data("value 2"), forKey: Data("key 2")) - rocks.setData(Data("value 3"), forKey: Data("key 3")) - rocks.setData(Data("value 4"), forKey: Data("key 4")) + try! rocks.setData(Data("value 1"), forKey: Data("key 1")) + try! rocks.setData(Data("value 2"), forKey: Data("key 2")) + try! rocks.setData(Data("value 3"), forKey: Data("key 3")) + try! rocks.setData(Data("value 4"), forKey: Data("key 4")) let actual = NSMutableArray() let iterator = rocks.iterator() @@ -350,9 +350,9 @@ class RocksDBIteratorTests : RocksDBTests { options.valueType = .NSString }) - rocks.setObject("value 1", forKey: "key 1") - rocks.setObject("value 2", forKey: "key 2") - rocks.setObject("value 3", forKey: "key 3") + try! rocks.setObject("value 1", forKey: "key 1") + try! rocks.setObject("value 2", forKey: "key 2") + try! rocks.setObject("value 3", forKey: "key 3") let actual = NSMutableArray() let iterator = rocks.iterator() diff --git a/ObjectiveRocksTests/RocksDBMergeOperatorTests.swift b/ObjectiveRocksTests/RocksDBMergeOperatorTests.swift index 1a878ae..d661c36 100644 --- a/ObjectiveRocksTests/RocksDBMergeOperatorTests.swift +++ b/ObjectiveRocksTests/RocksDBMergeOperatorTests.swift @@ -29,12 +29,12 @@ class RocksDBMergeOperatorTests : RocksDBTests { }) var value: UInt64 = 1 - rocks.mergeData(NumData(value), forKey: Data("key 1")) + try! rocks.mergeData(NumData(value), forKey: Data("key 1")) value = 5 - rocks.mergeData(NumData(value), forKey: Data("key 1")) + try! rocks.mergeData(NumData(value), forKey: Data("key 1")) - var res: UInt64 = Val(rocks.dataForKey(Data("key 1"))) + let res: UInt64 = Val(try! rocks.dataForKey(Data("key 1"))) XCTAssertTrue(res == 6); } @@ -67,16 +67,16 @@ class RocksDBMergeOperatorTests : RocksDBTests { return Optional.None! } - var value: Float = Val(data) + let value: Float = Val(data) return NSNumber(float: value) } }) - rocks.mergeObject(NSNumber(float: 100.541), forKey: "key 1") - rocks.mergeObject(NSNumber(float: 200.125), forKey: "key 1") + try! rocks.mergeObject(NSNumber(float: 100.541), forKey: "key 1") + try! rocks.mergeObject(NSNumber(float: 200.125), forKey: "key 1") - let result: Float = rocks.objectForKey("key 1").floatValue - XCTAssertEqualWithAccuracy(result, Float(300.666), Float(0.0001)) + let result: Float = try! rocks.objectForKey("key 1").floatValue + XCTAssertEqualWithAccuracy(result, Float(300.666), accuracy: Float(0.0001)) } func testSwift_AssociativeMergeOperator_DictionaryPut_Encoded() { @@ -96,12 +96,12 @@ class RocksDBMergeOperatorTests : RocksDBTests { options.valueType = .NSJSONSerializable }) - rocks.setObject(["key 1": "value 1"], forKey: "dict key") - rocks.mergeObject(["key 1": "value 1 new"], forKey: "dict key") - rocks.mergeObject(["key 2": "value 2"], forKey: "dict key") - rocks.mergeObject(["key 3": "value 3"], forKey: "dict key") - rocks.mergeObject(["key 4": "value 4"], forKey: "dict key") - rocks.mergeObject(["key 5": "value 5"], forKey: "dict key") + try! rocks.setObject(["key 1": "value 1"], forKey: "dict key") + try! rocks.mergeObject(["key 1": "value 1 new"], forKey: "dict key") + try! rocks.mergeObject(["key 2": "value 2"], forKey: "dict key") + try! rocks.mergeObject(["key 3": "value 3"], forKey: "dict key") + try! rocks.mergeObject(["key 4": "value 4"], forKey: "dict key") + try! rocks.mergeObject(["key 5": "value 5"], forKey: "dict key") let expected: NSDictionary = ["key 1" : "value 1 new", "key 2" : "value 2", @@ -109,7 +109,7 @@ class RocksDBMergeOperatorTests : RocksDBTests { "key 4" : "value 4", "key 5" : "value 5"] - XCTAssertEqual(rocks.objectForKey("dict key") as! NSDictionary, expected) + XCTAssertEqual(try! rocks.objectForKey("dict key") as! NSDictionary, expected) } func testSwift_MergeOperator_DictionaryUpdate_Encoded() { @@ -127,7 +127,7 @@ class RocksDBMergeOperatorTests : RocksDBTests { fullMergeBlock: { (key, existing, operands) -> NSMutableDictionary! in - var dict: NSMutableDictionary = existing as! NSMutableDictionary + let dict: NSMutableDictionary = existing as! NSMutableDictionary for op in operands as NSArray { let comp: NSArray = op.componentsSeparatedByString(":") let action: NSString = comp[1] as! NSString @@ -151,17 +151,17 @@ class RocksDBMergeOperatorTests : RocksDBTests { "key 2" : "value 2", "key 3" : "value 3"] - rocks.setObject(object, forKey: "dict key") + try! rocks.setObject(object, forKey: "dict key") - rocks.mergeOperation("key 1:UPDATE:value X", forKey: "dict key") - rocks.mergeOperation("key 4:INSERT:value 4", forKey: "dict key") - rocks.mergeOperation("key 2:DELETE", forKey: "dict key") - rocks.mergeOperation("key 1:UPDATE:value 1 new", forKey: "dict key") + try! rocks.mergeOperation("key 1:UPDATE:value X", forKey: "dict key") + try! rocks.mergeOperation("key 4:INSERT:value 4", forKey: "dict key") + try! rocks.mergeOperation("key 2:DELETE", forKey: "dict key") + try! rocks.mergeOperation("key 1:UPDATE:value 1 new", forKey: "dict key") let expected = ["key 1" : "value 1 new", "key 3" : "value 3", "key 4" : "value 4"]; - XCTAssertEqual(rocks.objectForKey("dict key") as! NSDictionary, expected) + XCTAssertEqual(try! rocks.objectForKey("dict key") as! NSDictionary, expected) } } diff --git a/ObjectiveRocksTests/RocksDBPrefixExtractorTests.swift b/ObjectiveRocksTests/RocksDBPrefixExtractorTests.swift index 521f6d6..56af906 100644 --- a/ObjectiveRocksTests/RocksDBPrefixExtractorTests.swift +++ b/ObjectiveRocksTests/RocksDBPrefixExtractorTests.swift @@ -18,11 +18,11 @@ class RocksDBPrefixExtractorTests : RocksDBTests { options.valueType = .NSString; }) - rocks.setObject("x", forKey: "100A") - rocks.setObject("x", forKey: "100B") + try! rocks.setObject("x", forKey: "100A") + try! rocks.setObject("x", forKey: "100B") - rocks.setObject("x", forKey: "101A") - rocks.setObject("x", forKey: "101B") + try! rocks.setObject("x", forKey: "101A") + try! rocks.setObject("x", forKey: "101B") let iterator = rocks.iterator() let keys = NSMutableArray() @@ -51,19 +51,19 @@ class RocksDBPrefixExtractorTests : RocksDBTests { iterator.seekToKey("1000") XCTAssertTrue(iterator.isValid()) - XCTAssertEqual(iterator.key() as! NSString, "100A") + XCTAssertEqual(iterator.key() as? NSString, "100A") iterator.next() XCTAssertTrue(iterator.isValid()) - XCTAssertEqual(iterator.key() as! NSString, "100B") + XCTAssertEqual(iterator.key() as? NSString, "100B") } func testSwift_PrefixExtractor_FixedLength_CustomComparator() { // 1001 < 9910 < 2011 < 3412 ... let cmp = RocksDBComparator(name: "cmp") { (key1, key2) -> Int32 in - var sub1: NSString = key1.substringFromIndex(2) as NSString - var sub2: NSString = key2.substringFromIndex(2) as NSString + let sub1: NSString = key1.substringFromIndex(2) as NSString + let sub2: NSString = key2.substringFromIndex(2) as NSString let res = sub1.compare(sub2 as String) switch res { @@ -92,14 +92,14 @@ class RocksDBPrefixExtractorTests : RocksDBTests { }) }) - rocks.setObject("x", forKey: "1010") - rocks.setObject("x", forKey: "4211") - rocks.setObject("x", forKey: "1012") - rocks.setObject("x", forKey: "5313") - rocks.setObject("x", forKey: "1020") - rocks.setObject("x", forKey: "4221") - rocks.setObject("x", forKey: "1022") - rocks.setObject("x", forKey: "5323") + try! rocks.setObject("x", forKey: "1010") + try! rocks.setObject("x", forKey: "4211") + try! rocks.setObject("x", forKey: "1012") + try! rocks.setObject("x", forKey: "5313") + try! rocks.setObject("x", forKey: "1020") + try! rocks.setObject("x", forKey: "4221") + try! rocks.setObject("x", forKey: "1022") + try! rocks.setObject("x", forKey: "5323") let iterator = rocks.iterator() let keys = NSMutableArray() diff --git a/ObjectiveRocksTests/RocksDBPropertiesTests.swift b/ObjectiveRocksTests/RocksDBPropertiesTests.swift index 61bf2dd..0def1ef 100644 --- a/ObjectiveRocksTests/RocksDBPropertiesTests.swift +++ b/ObjectiveRocksTests/RocksDBPropertiesTests.swift @@ -18,9 +18,9 @@ class RocksDBPropertiesTests : RocksDBTests { options.minWriteBufferNumberToMerge = 10; }) - rocks.setData(Data("value 1"), forKey: Data("key 1")) - rocks.setData(Data("value 2"), forKey: Data("key 2")) - rocks.setData(Data("value 3"), forKey: Data("key 3")) + try! rocks.setData(Data("value 1"), forKey: Data("key 1")) + try! rocks.setData(Data("value 2"), forKey: Data("key 2")) + try! rocks.setData(Data("value 3"), forKey: Data("key 3")) XCTAssertGreaterThan(rocks.valueForIntProperty(.NumEntriesActiveMemtable), 0 as UInt64); XCTAssertGreaterThan(rocks.valueForIntProperty(.CurSizeActiveMemTable), 0 as UInt64); diff --git a/ObjectiveRocksTests/RocksDBReadOnlyTests.swift b/ObjectiveRocksTests/RocksDBReadOnlyTests.swift index 6554ea0..c424cee 100644 --- a/ObjectiveRocksTests/RocksDBReadOnlyTests.swift +++ b/ObjectiveRocksTests/RocksDBReadOnlyTests.swift @@ -31,26 +31,24 @@ class RocksDBReadOnlyTests : RocksDBTests { options.createIfMissing = true; }); XCTAssertNotNil(rocks); - rocks.setData(Data("data"), forKey: Data("key")) + try! rocks.setData(Data("data"), forKey: Data("key")) rocks.close() rocks = RocksDB.databaseForReadOnlyAtPath(path, andDBOptions:nil) - var error: NSError? = nil; - rocks.dataForKey(Data("key"), error: &error) - XCTAssertNil(error); + try! rocks.dataForKey(Data("key")) - error = nil; - rocks.setData(Data("data"), forKey:Data("key"), error:&error); - XCTAssertNotNil(error); + AssertThrows { + try self.rocks.setData(Data("data"), forKey:Data("key")) + } - error = nil; - rocks.deleteDataForKey(Data("key"), error:&error); - XCTAssertNotNil(error); + AssertThrows { + try self.rocks.deleteDataForKey(Data("key")) + } - error = nil; - rocks.mergeData(Data("data"), forKey:Data("key"), error:&error); - XCTAssertNotNil(error); + AssertThrows { + try self.rocks.mergeData(Data("data"), forKey:Data("key")) + } } } diff --git a/ObjectiveRocksTests/RocksDBSnapshotTests.swift b/ObjectiveRocksTests/RocksDBSnapshotTests.swift index 6d559d6..194e9c3 100644 --- a/ObjectiveRocksTests/RocksDBSnapshotTests.swift +++ b/ObjectiveRocksTests/RocksDBSnapshotTests.swift @@ -15,24 +15,24 @@ class RocksDBSnapshotTests : RocksDBTests { options.createIfMissing = true }); - rocks.setData(Data("value 1"), forKey: Data("key 1")) - rocks.setData(Data("value 2"), forKey: Data("key 2")) - rocks.setData(Data("value 3"), forKey: Data("key 3")) + try! rocks.setData(Data("value 1"), forKey: Data("key 1")) + try! rocks.setData(Data("value 2"), forKey: Data("key 2")) + try! rocks.setData(Data("value 3"), forKey: Data("key 3")) let snapshot = rocks.snapshot() - rocks.deleteDataForKey(Data("key 1")) - rocks.setData(Data("value 4"), forKey: Data("key 4")) + try! rocks.deleteDataForKey(Data("key 1")) + try! rocks.setData(Data("value 4"), forKey: Data("key 4")) - XCTAssertEqual(snapshot.dataForKey(Data("key 1")), Data("value 1")); - XCTAssertEqual(snapshot.dataForKey(Data("key 2")), Data("value 2")); - XCTAssertEqual(snapshot.dataForKey(Data("key 3")), Data("value 3")); - XCTAssertNil(snapshot.dataForKey(Data("Key 4"))) + XCTAssertEqual(try! snapshot.dataForKey(Data("key 1")), Data("value 1")); + XCTAssertEqual(try! snapshot.dataForKey(Data("key 2")), Data("value 2")); + XCTAssertEqual(try! snapshot.dataForKey(Data("key 3")), Data("value 3")); + XCTAssertNil(try? snapshot.dataForKey(Data("Key 4"))) snapshot.close() - XCTAssertNil(snapshot.dataForKey(Data("Key 1"))) - XCTAssertEqual(snapshot.dataForKey(Data("key 4")), Data("value 4")); + XCTAssertNil(try? snapshot.dataForKey(Data("Key 1"))) + XCTAssertEqual(try! snapshot.dataForKey(Data("key 4")), Data("value 4")); } func testSwift_Snapshot_Iterator() { @@ -40,16 +40,16 @@ class RocksDBSnapshotTests : RocksDBTests { options.createIfMissing = true }) - rocks.setData(Data("value 1"), forKey: Data("key 1")) - rocks.setData(Data("value 2"), forKey: Data("key 2")) - rocks.setData(Data("value 3"), forKey: Data("key 3")) + try! rocks.setData(Data("value 1"), forKey: Data("key 1")) + try! rocks.setData(Data("value 2"), forKey: Data("key 2")) + try! rocks.setData(Data("value 3"), forKey: Data("key 3")) let snapshot = rocks.snapshot() - rocks.deleteDataForKey(Data("key 1")) - rocks.setData(Data("value 4"), forKey: Data("key 4")) + try! rocks.deleteDataForKey(Data("key 1")) + try! rocks.setData(Data("value 4"), forKey: Data("key 4")) - var actual: NSMutableArray = [] + let actual: NSMutableArray = [] var iterator = snapshot.iterator() iterator.enumerateKeysUsingBlock { (key, stop) -> Void in actual.addObject(Str(key as! NSData)) @@ -76,13 +76,13 @@ class RocksDBSnapshotTests : RocksDBTests { options.createIfMissing = true }) - rocks.setData(Data("value 1"), forKey: Data("key 1")) + try! rocks.setData(Data("value 1"), forKey: Data("key 1")) let snapshot1 = rocks.snapshot() - rocks.setData(Data("value 2"), forKey: Data("key 2")) + try! rocks.setData(Data("value 2"), forKey: Data("key 2")) let snapshot2 = rocks.snapshot() - rocks.setData(Data("value 3"), forKey: Data("key 3")) + try! rocks.setData(Data("value 3"), forKey: Data("key 3")) let snapshot3 = rocks.snapshot() XCTAssertEqual(snapshot1.sequenceNumber(), 1 as UInt64) diff --git a/ObjectiveRocksTests/RocksDBStatisticsTests.swift b/ObjectiveRocksTests/RocksDBStatisticsTests.swift index b88a98c..c53de8f 100644 --- a/ObjectiveRocksTests/RocksDBStatisticsTests.swift +++ b/ObjectiveRocksTests/RocksDBStatisticsTests.swift @@ -18,7 +18,7 @@ class RocksDBStatisticsTests : RocksDBTests { options.statistics = statistics; }) - rocks.setData(Data("value 1"), forKey: Data("key 1")) + try! rocks.setData(Data("value 1"), forKey: Data("key 1")) XCTAssertNotNil(statistics.description); } @@ -31,12 +31,12 @@ class RocksDBStatisticsTests : RocksDBTests { options.statistics = statistics; }) - rocks.setData(Data("abcd"), forKey: Data("abcd")) + try! rocks.setData(Data("abcd"), forKey: Data("abcd")) XCTAssertEqual(statistics.countForTicker(RocksDBTickerType.BytesRead), 0 as UInt64); XCTAssertGreaterThan(statistics.countForTicker(RocksDBTickerType.BytesWritten), 0 as UInt64); - rocks.dataForKey(Data("abcd")) + try! rocks.dataForKey(Data("abcd")) XCTAssertGreaterThan(statistics.countForTicker(RocksDBTickerType.BytesRead), 0 as UInt64); } @@ -51,10 +51,10 @@ class RocksDBStatisticsTests : RocksDBTests { for i in 0...10000 { let str = NSString(format: "a%d", i) - rocks.setData(Data(str as String), forKey: Data(str as String)) + try! rocks.setData(Data(str as String), forKey: Data(str as String)) } - rocks.dataForKey(Data("a42")) + try! rocks.dataForKey(Data("a42")) let dbGetHistogram = statistics.histogramDataForType(RocksDBHistogramType.DBGet) diff --git a/ObjectiveRocksTests/RocksDBWriteBatchTests.swift b/ObjectiveRocksTests/RocksDBWriteBatchTests.swift index 05be3cb..e00a164 100644 --- a/ObjectiveRocksTests/RocksDBWriteBatchTests.swift +++ b/ObjectiveRocksTests/RocksDBWriteBatchTests.swift @@ -15,16 +15,16 @@ class RocksDBWriteBatchTests : RocksDBTests { options.createIfMissing = true }) - rocks.performWriteBatch ({ (batch, options) -> Void in + try! rocks.performWriteBatch { (batch, options) -> Void in batch.setData(Data("value 1"), forKey: Data("key 1")) batch.setData(Data("value 2"), forKey: Data("key 2")) batch.setData(Data("value 3"), forKey: Data("key 3")) - }, error: nil); + } - XCTAssertEqual(rocks.dataForKey(Data("key 1")), Data("value 1")); - XCTAssertEqual(rocks.dataForKey(Data("key 2")), Data("value 2")); - XCTAssertEqual(rocks.dataForKey(Data("key 3")), Data("value 3")); - XCTAssertNil(rocks.dataForKey(Data("Key 4"))) + XCTAssertEqual(try! rocks.dataForKey(Data("key 1")), Data("value 1")); + XCTAssertEqual(try! rocks.dataForKey(Data("key 2")), Data("value 2")); + XCTAssertEqual(try! rocks.dataForKey(Data("key 3")), Data("value 3")); + XCTAssertNil(try? rocks.dataForKey(Data("Key 4"))) } func testSwift_WriteBatch_Perform_DeleteOps() { @@ -32,18 +32,18 @@ class RocksDBWriteBatchTests : RocksDBTests { options.createIfMissing = true }) - rocks.setData(Data("value 1"), forKey: Data("key 1")) + try! rocks.setData(Data("value 1"), forKey: Data("key 1")) - rocks.performWriteBatch ({ (batch, options) -> Void in + try! rocks.performWriteBatch ({ (batch, options) -> Void in batch.deleteDataForKey(Data("key 1")) batch.setData(Data("value 2"), forKey: Data("key 2")) batch.setData(Data("value 3"), forKey: Data("key 3")) - }, error: nil); + }) - XCTAssertNil(rocks.dataForKey(Data("Key 1"))) - XCTAssertEqual(rocks.dataForKey(Data("key 2")), Data("value 2")); - XCTAssertEqual(rocks.dataForKey(Data("key 3")), Data("value 3")); - XCTAssertNil(rocks.dataForKey(Data("Key 4"))) + XCTAssertNil(try? rocks.dataForKey(Data("Key 1"))) + XCTAssertEqual(try! rocks.dataForKey(Data("key 2")), Data("value 2")); + XCTAssertEqual(try! rocks.dataForKey(Data("key 3")), Data("value 3")); + XCTAssertNil(try? rocks.dataForKey(Data("Key 4"))) } func testSwift_WriteBatch_Perform_ClearOps() { @@ -51,20 +51,20 @@ class RocksDBWriteBatchTests : RocksDBTests { options.createIfMissing = true }) - rocks.setData(Data("value 1"), forKey: Data("key 1")) + try! rocks.setData(Data("value 1"), forKey: Data("key 1")) - rocks.performWriteBatch ({ (batch, options) -> Void in + try! rocks.performWriteBatch ({ (batch, options) -> Void in batch.deleteDataForKey(Data("key 1")) batch.setData(Data("value 2"), forKey: Data("key 2")) batch.setData(Data("value 3"), forKey: Data("key 3")) batch.clear() batch.setData(Data("value 4"), forKey: Data("key 4")) - }, error: nil); + }) - XCTAssertEqual(rocks.dataForKey(Data("key 1")), Data("value 1")); - XCTAssertNil(rocks.dataForKey(Data("Key 2"))) - XCTAssertNil(rocks.dataForKey(Data("Key 3"))) - XCTAssertEqual(rocks.dataForKey(Data("key 4")), Data("value 4")); + XCTAssertEqual(try! rocks.dataForKey(Data("key 1")), Data("value 1")); + XCTAssertNil(try? rocks.dataForKey(Data("Key 2"))) + XCTAssertNil(try? rocks.dataForKey(Data("Key 3"))) + XCTAssertEqual(try! rocks.dataForKey(Data("key 4")), Data("value 4")); } func testSwift_WriteBatch_Apply() { @@ -78,12 +78,12 @@ class RocksDBWriteBatchTests : RocksDBTests { batch.setData(Data("value 2"), forKey: Data("key 2")) batch.setData(Data("value 3"), forKey: Data("key 3")) - rocks.applyWriteBatch(batch, error: nil, writeOptions: nil) + try! rocks.applyWriteBatch(batch, writeOptions: nil) - XCTAssertEqual(rocks.dataForKey(Data("key 1")), Data("value 1")); - XCTAssertEqual(rocks.dataForKey(Data("key 2")), Data("value 2")); - XCTAssertEqual(rocks.dataForKey(Data("key 3")), Data("value 3")); - XCTAssertNil(rocks.dataForKey(Data("Key 4"))) + XCTAssertEqual(try! rocks.dataForKey(Data("key 1")), Data("value 1")); + XCTAssertEqual(try! rocks.dataForKey(Data("key 2")), Data("value 2")); + XCTAssertEqual(try! rocks.dataForKey(Data("key 3")), Data("value 3")); + XCTAssertNil(try? rocks.dataForKey(Data("Key 4"))) } func testSwift_WriteBatch_Apply_DeleteOps() { @@ -91,7 +91,7 @@ class RocksDBWriteBatchTests : RocksDBTests { options.createIfMissing = true }) - rocks.setData(Data("value 1"), forKey: Data("key 1")) + try! rocks.setData(Data("value 1"), forKey: Data("key 1")) let batch = rocks.writeBatch() @@ -99,19 +99,19 @@ class RocksDBWriteBatchTests : RocksDBTests { batch.setData(Data("value 2"), forKey: Data("key 2")) batch.setData(Data("value 3"), forKey: Data("key 3")) - rocks.applyWriteBatch(batch, error: nil, writeOptions: nil) + try! rocks.applyWriteBatch(batch, writeOptions: nil) - XCTAssertNil(rocks.dataForKey(Data("Key 1"))) - XCTAssertEqual(rocks.dataForKey(Data("key 2")), Data("value 2")); - XCTAssertEqual(rocks.dataForKey(Data("key 3")), Data("value 3")); - XCTAssertNil(rocks.dataForKey(Data("Key 4"))) + XCTAssertNil(try? rocks.dataForKey(Data("Key 1"))) + XCTAssertEqual(try! rocks.dataForKey(Data("key 2")), Data("value 2")); + XCTAssertEqual(try! rocks.dataForKey(Data("key 3")), Data("value 3")); + XCTAssertNil(try? rocks.dataForKey(Data("Key 4"))) } func testSwift_WriteBatch_Apply_MergeOps() { rocks = RocksDB.databaseAtPath(self.path, andDBOptions: { (options) -> Void in options.createIfMissing = true options.mergeOperator = RocksDBMergeOperator(name: "merge", andBlock: { (key, existing, value) -> AnyObject! in - var result: NSMutableString = "" + let result: NSMutableString = "" if let existingValue = existing as? NSData { result.setString(Str(existingValue) as String) } @@ -121,7 +121,7 @@ class RocksDBWriteBatchTests : RocksDBTests { }) }) - rocks.setData(Data("value 1"), forKey: Data("key 1")) + try! rocks.setData(Data("value 1"), forKey: Data("key 1")) let batch = rocks.writeBatch() @@ -130,9 +130,9 @@ class RocksDBWriteBatchTests : RocksDBTests { batch.setData(Data("value 3"), forKey: Data("key 3")) batch.mergeData(Data("value 2 new"), forKey: Data("key 2")) - rocks.applyWriteBatch(batch, error: nil, writeOptions: nil) + try! rocks.applyWriteBatch(batch, writeOptions: nil) - XCTAssertEqual(rocks.dataForKey(Data("key 2")), Data("value 2,value 2 new")); + XCTAssertEqual(try! rocks.dataForKey(Data("key 2")), Data("value 2,value 2 new")); } func testSwift_WriteBatch_Apply_ClearOps() { @@ -140,7 +140,7 @@ class RocksDBWriteBatchTests : RocksDBTests { options.createIfMissing = true }) - rocks.setData(Data("value 1"), forKey: Data("key 1")) + try! rocks.setData(Data("value 1"), forKey: Data("key 1")) let batch = rocks.writeBatch() @@ -150,12 +150,12 @@ class RocksDBWriteBatchTests : RocksDBTests { batch.clear() batch.setData(Data("value 4"), forKey: Data("key 4")) - rocks.applyWriteBatch(batch, error: nil, writeOptions: nil) + try! rocks.applyWriteBatch(batch, writeOptions: nil) - XCTAssertEqual(rocks.dataForKey(Data("key 1")), Data("value 1")); - XCTAssertNil(rocks.dataForKey(Data("Key 2"))) - XCTAssertNil(rocks.dataForKey(Data("Key 3"))) - XCTAssertEqual(rocks.dataForKey(Data("key 4")), Data("value 4")); + XCTAssertEqual(try! rocks.dataForKey(Data("key 1")), Data("value 1")); + XCTAssertNil(try? rocks.dataForKey(Data("Key 2"))) + XCTAssertNil(try? rocks.dataForKey(Data("Key 3"))) + XCTAssertEqual(try! rocks.dataForKey(Data("key 4")), Data("value 4")); } func testSwift_WriteBatch_Count() { @@ -163,7 +163,7 @@ class RocksDBWriteBatchTests : RocksDBTests { options.createIfMissing = true }) - rocks.setData(Data("value 1"), forKey: Data("key 1")) + try! rocks.setData(Data("value 1"), forKey: Data("key 1")) let batch = rocks.writeBatch() @@ -197,16 +197,17 @@ class RocksDBWriteBatchTests : RocksDBTests { options.valueType = .NSString }) - rocks.setData(Data("value 1"), forKey: Data("key 1")) + try! rocks.setData(Data("value 1"), forKey: Data("key 1")) - rocks.performWriteBatch ({ (batch, options) -> Void in + try! rocks.performWriteBatch ({ (batch, options) -> Void in batch.setObject("value 2", forKey: "key 2") batch.setObject("value 3", forKey: "key 3") - batch.deleteObjectForKey("value 1") - }, error: nil); + batch.deleteObjectForKey("key 1") + }) - XCTAssertNil(rocks.objectForKey("Key 1")) - XCTAssertEqual(rocks.objectForKey("key 2") as! NSString, "value 2"); - XCTAssertEqual(rocks.objectForKey("key 3") as! NSString, "value 3"); + let value = try? rocks.objectForKey("key 1") + XCTAssertNil(value) + XCTAssertEqual(try! rocks.objectForKey("key 2") as! NSString, "value 2"); + XCTAssertEqual(try! rocks.objectForKey("key 3") as! NSString, "value 3"); } } From c560c9bb5d088832f5fa0443e970c8ec65732b5d Mon Sep 17 00:00:00 2001 From: iska Date: Fri, 6 Nov 2015 22:23:18 +0100 Subject: [PATCH 25/76] Update Xcode image for TravisCI --- .travis.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index f312ecc..091cf37 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,8 @@ language: objective-c -osx_image: xcode6.4 +osx_image: xcode7.1 script: - xctool -project ObjectiveRocks.xcodeproj -scheme ObjectiveRocks -sdk macosx -configuration Release ONLY_ACTIVE_ARCH=NO - xctool test -project ObjectiveRocks.xcodeproj -scheme ObjectiveRocksTests -sdk macosx ONLY_ACTIVE_ARCH=NO - xctool -project ObjectiveRocks.xcodeproj -scheme ObjectiveRocks-iOS -sdk iphoneos -configuration Release ONLY_ACTIVE_ARCH=NO - xctool test -project ObjectiveRocks.xcodeproj -scheme ObjectiveRocksTests-iOS -sdk iphonesimulator ONLY_ACTIVE_ARCH=NO + From 92384ce7ea83e44979c8d82ae16c886c8f74f26a Mon Sep 17 00:00:00 2001 From: iska Date: Fri, 6 Nov 2015 23:04:49 +0100 Subject: [PATCH 26/76] User xcodebuild instead of xctool in travis.yml At least till this issue is fixed: https://github.com/facebook/xctool/issues/616 --- .travis.yml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index 091cf37..e69fe12 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,8 +1,7 @@ language: objective-c osx_image: xcode7.1 script: -- xctool -project ObjectiveRocks.xcodeproj -scheme ObjectiveRocks -sdk macosx -configuration Release ONLY_ACTIVE_ARCH=NO -- xctool test -project ObjectiveRocks.xcodeproj -scheme ObjectiveRocksTests -sdk macosx ONLY_ACTIVE_ARCH=NO -- xctool -project ObjectiveRocks.xcodeproj -scheme ObjectiveRocks-iOS -sdk iphoneos -configuration Release ONLY_ACTIVE_ARCH=NO -- xctool test -project ObjectiveRocks.xcodeproj -scheme ObjectiveRocksTests-iOS -sdk iphonesimulator ONLY_ACTIVE_ARCH=NO - +- xcodebuild -project ObjectiveRocks.xcodeproj -scheme ObjectiveRocks -sdk macosx -configuration Release ONLY_ACTIVE_ARCH=NO +- xcodebuild test -project ObjectiveRocks.xcodeproj -scheme ObjectiveRocksTests -sdk macosx ONLY_ACTIVE_ARCH=NO +- xcodebuild -project ObjectiveRocks.xcodeproj -scheme ObjectiveRocks-iOS -sdk iphoneos -configuration Release ONLY_ACTIVE_ARCH=NO +- xcodebuild test -project ObjectiveRocks.xcodeproj -scheme ObjectiveRocksTests-iOS -sdk iphonesimulator ONLY_ACTIVE_ARCH=NO From 2c4f8eea40956df39633eaacc6af93a5b25664bf Mon Sep 17 00:00:00 2001 From: iska Date: Fri, 6 Nov 2015 23:08:45 +0100 Subject: [PATCH 27/76] Add workspace with playground --- ObjectiveRocks.playground/Contents.swift | 5 +++++ ObjectiveRocks.playground/contents.xcplayground | 4 ++++ .../playground.xcworkspace/contents.xcworkspacedata | 7 +++++++ ObjectiveRocks.xcworkspace/contents.xcworkspacedata | 10 ++++++++++ 4 files changed, 26 insertions(+) create mode 100644 ObjectiveRocks.playground/Contents.swift create mode 100644 ObjectiveRocks.playground/contents.xcplayground create mode 100644 ObjectiveRocks.playground/playground.xcworkspace/contents.xcworkspacedata create mode 100644 ObjectiveRocks.xcworkspace/contents.xcworkspacedata diff --git a/ObjectiveRocks.playground/Contents.swift b/ObjectiveRocks.playground/Contents.swift new file mode 100644 index 0000000..07ee6d2 --- /dev/null +++ b/ObjectiveRocks.playground/Contents.swift @@ -0,0 +1,5 @@ +//: Playground - noun: a place where people can play + +import Cocoa + +var str = "Hello, playground" diff --git a/ObjectiveRocks.playground/contents.xcplayground b/ObjectiveRocks.playground/contents.xcplayground new file mode 100644 index 0000000..06828af --- /dev/null +++ b/ObjectiveRocks.playground/contents.xcplayground @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/ObjectiveRocks.playground/playground.xcworkspace/contents.xcworkspacedata b/ObjectiveRocks.playground/playground.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/ObjectiveRocks.playground/playground.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/ObjectiveRocks.xcworkspace/contents.xcworkspacedata b/ObjectiveRocks.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..4d8b70a --- /dev/null +++ b/ObjectiveRocks.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + From 375c73e1047c6c5b1933e9a66d5a53826d1d2da8 Mon Sep 17 00:00:00 2001 From: iska Date: Fri, 6 Nov 2015 23:40:21 +0100 Subject: [PATCH 28/76] Refactor directory structure - Source code into the "Code" directory - Tests into the "Tests" directory --- {ObjectiveRocks => Code}/ObjectiveRocks.h | 0 {ObjectiveRocks => Code}/RocksDB+Private.h | 0 {ObjectiveRocks => Code}/RocksDB.h | 0 {ObjectiveRocks => Code}/RocksDB.mm | 0 .../RocksDBBackupEngine.h | 0 .../RocksDBBackupEngine.mm | 0 {ObjectiveRocks => Code}/RocksDBBackupInfo.h | 0 {ObjectiveRocks => Code}/RocksDBBackupInfo.mm | 0 .../RocksDBBlockBasedTableOptions.h | 0 .../RocksDBBlockBasedTableOptions.mm | 0 {ObjectiveRocks => Code}/RocksDBCache.h | 0 {ObjectiveRocks => Code}/RocksDBCache.mm | 0 ...ocksDBCallbackAssociativeMergeOperator.cpp | 0 .../RocksDBCallbackAssociativeMergeOperator.h | 0 .../RocksDBCallbackComparator.cpp | 0 .../RocksDBCallbackComparator.h | 0 .../RocksDBCallbackMergeOperator.cpp | 0 .../RocksDBCallbackMergeOperator.h | 0 .../RocksDBCallbackSliceTransform.cpp | 0 .../RocksDBCallbackSliceTransform.h | 0 {ObjectiveRocks => Code}/RocksDBCheckpoint.h | 0 {ObjectiveRocks => Code}/RocksDBCheckpoint.mm | 0 .../RocksDBColumnFamily+Private.h | 0 .../RocksDBColumnFamily.h | 0 .../RocksDBColumnFamily.mm | 0 .../RocksDBColumnFamilyDescriptor.h | 0 .../RocksDBColumnFamilyDescriptor.mm | 0 .../RocksDBColumnFamilyMetaData+Private.h | 0 .../RocksDBColumnFamilyMetadata.h | 0 .../RocksDBColumnFamilyMetadata.mm | 0 .../RocksDBColumnFamilyOptions.h | 0 .../RocksDBColumnFamilyOptions.mm | 0 {ObjectiveRocks => Code}/RocksDBComparator.h | 0 {ObjectiveRocks => Code}/RocksDBComparator.mm | 0 .../RocksDBCuckooTableOptions.h | 0 .../RocksDBCuckooTableOptions.mm | 0 .../RocksDBDatabaseOptions.h | 0 .../RocksDBDatabaseOptions.mm | 0 .../RocksDBEncodingOptions.h | 0 .../RocksDBEncodingOptions.mm | 0 {ObjectiveRocks => Code}/RocksDBEnv.h | 0 {ObjectiveRocks => Code}/RocksDBEnv.mm | 0 {ObjectiveRocks => Code}/RocksDBError.h | 0 {ObjectiveRocks => Code}/RocksDBError.mm | 0 .../RocksDBFilterPolicy.h | 0 .../RocksDBFilterPolicy.mm | 0 .../RocksDBIndexedWriteBatch.h | 0 .../RocksDBIndexedWriteBatch.mm | 0 .../RocksDBIterator+Private.h | 0 {ObjectiveRocks => Code}/RocksDBIterator.h | 0 {ObjectiveRocks => Code}/RocksDBIterator.mm | 0 .../RocksDBMemTableRepFactory.h | 0 .../RocksDBMemTableRepFactory.mm | 0 .../RocksDBMergeOperator.h | 0 .../RocksDBMergeOperator.mm | 0 .../RocksDBOptions+Private.h | 0 {ObjectiveRocks => Code}/RocksDBOptions.h | 0 {ObjectiveRocks => Code}/RocksDBOptions.mm | 0 .../RocksDBPlainTableOptions.h | 0 .../RocksDBPlainTableOptions.mm | 0 .../RocksDBPrefixExtractor.h | 0 .../RocksDBPrefixExtractor.mm | 0 {ObjectiveRocks => Code}/RocksDBProperties.h | 0 {ObjectiveRocks => Code}/RocksDBProperties.mm | 0 {ObjectiveRocks => Code}/RocksDBReadOptions.h | 0 .../RocksDBReadOptions.mm | 0 {ObjectiveRocks => Code}/RocksDBSlice.h | 0 .../RocksDBSnapshot+Private.h | 0 {ObjectiveRocks => Code}/RocksDBSnapshot.h | 0 {ObjectiveRocks => Code}/RocksDBSnapshot.mm | 0 .../RocksDBSnapshotUnavailable.h | 0 {ObjectiveRocks => Code}/RocksDBStatistics.h | 0 {ObjectiveRocks => Code}/RocksDBStatistics.mm | 0 .../RocksDBStatisticsHistogram.h | 0 .../RocksDBStatisticsHistogram.mm | 0 .../RocksDBTableFactory.h | 0 .../RocksDBTableFactory.mm | 0 .../RocksDBThreadStatus.h | 0 .../RocksDBThreadStatus.mm | 0 {ObjectiveRocks => Code}/RocksDBTypes.h | 0 {ObjectiveRocks => Code}/RocksDBTypes.m | 0 .../RocksDBWriteBatch+Private.h | 0 {ObjectiveRocks => Code}/RocksDBWriteBatch.h | 0 {ObjectiveRocks => Code}/RocksDBWriteBatch.mm | 0 .../RocksDBWriteBatchIterator+Private.h | 0 .../RocksDBWriteBatchIterator.h | 0 .../RocksDBWriteBatchIterator.mm | 0 .../RocksDBWriteOptions.h | 0 .../RocksDBWriteOptions.mm | 0 ObjectiveRocks.xcodeproj/project.pbxproj | 29 ++++++++++--------- {ObjectiveRocksTests => Tests}/Info.plist | 0 .../ObjectiveRocksTests-Bridging-Header.h | 0 .../ObjectiveRocksTests-iOS-Bridging-Header.h | 0 .../RockDBTests.swift | 0 .../RocksDBBackupTests.mm | 0 .../RocksDBBackupTests.swift | 0 .../RocksDBBasicTests.mm | 0 .../RocksDBBasicTests.swift | 0 .../RocksDBCheckpointTests.mm | 0 .../RocksDBCheckpointTests.swift | 0 .../RocksDBColumnFamilyMetadataTests.mm | 0 .../RocksDBColumnFamilyMetadataTests.swift | 0 .../RocksDBColumnFamilyTests.mm | 0 .../RocksDBColumnFamilyTests.swift | 0 .../RocksDBComparatorTests.mm | 0 .../RocksDBComparatorTests.swift | 0 .../RocksDBIndexedWriteBatch.swift | 0 .../RocksDBIndexedWriteBatchTests.m | 0 .../RocksDBIteratorTests.mm | 0 .../RocksDBIteratorTests.swift | 0 .../RocksDBMergeOperatorTests.mm | 0 .../RocksDBMergeOperatorTests.swift | 0 .../RocksDBPrefixExtractorTests.mm | 0 .../RocksDBPrefixExtractorTests.swift | 0 .../RocksDBPropertiesTests.mm | 0 .../RocksDBPropertiesTests.swift | 0 .../RocksDBReadOnlyTests.m | 0 .../RocksDBReadOnlyTests.swift | 0 .../RocksDBSnapshotTests.mm | 0 .../RocksDBSnapshotTests.swift | 0 .../RocksDBStatisticsTests.mm | 0 .../RocksDBStatisticsTests.swift | 0 {ObjectiveRocksTests => Tests}/RocksDBTests.h | 0 .../RocksDBTests.mm | 0 .../RocksDBWriteBatchTests.mm | 0 .../RocksDBWriteBatchTests.swift | 0 126 files changed, 15 insertions(+), 14 deletions(-) rename {ObjectiveRocks => Code}/ObjectiveRocks.h (100%) rename {ObjectiveRocks => Code}/RocksDB+Private.h (100%) rename {ObjectiveRocks => Code}/RocksDB.h (100%) rename {ObjectiveRocks => Code}/RocksDB.mm (100%) rename {ObjectiveRocks => Code}/RocksDBBackupEngine.h (100%) rename {ObjectiveRocks => Code}/RocksDBBackupEngine.mm (100%) rename {ObjectiveRocks => Code}/RocksDBBackupInfo.h (100%) rename {ObjectiveRocks => Code}/RocksDBBackupInfo.mm (100%) rename {ObjectiveRocks => Code}/RocksDBBlockBasedTableOptions.h (100%) rename {ObjectiveRocks => Code}/RocksDBBlockBasedTableOptions.mm (100%) rename {ObjectiveRocks => Code}/RocksDBCache.h (100%) rename {ObjectiveRocks => Code}/RocksDBCache.mm (100%) rename {ObjectiveRocks => Code}/RocksDBCallbackAssociativeMergeOperator.cpp (100%) rename {ObjectiveRocks => Code}/RocksDBCallbackAssociativeMergeOperator.h (100%) rename {ObjectiveRocks => Code}/RocksDBCallbackComparator.cpp (100%) rename {ObjectiveRocks => Code}/RocksDBCallbackComparator.h (100%) rename {ObjectiveRocks => Code}/RocksDBCallbackMergeOperator.cpp (100%) rename {ObjectiveRocks => Code}/RocksDBCallbackMergeOperator.h (100%) rename {ObjectiveRocks => Code}/RocksDBCallbackSliceTransform.cpp (100%) rename {ObjectiveRocks => Code}/RocksDBCallbackSliceTransform.h (100%) rename {ObjectiveRocks => Code}/RocksDBCheckpoint.h (100%) rename {ObjectiveRocks => Code}/RocksDBCheckpoint.mm (100%) rename {ObjectiveRocks => Code}/RocksDBColumnFamily+Private.h (100%) rename {ObjectiveRocks => Code}/RocksDBColumnFamily.h (100%) rename {ObjectiveRocks => Code}/RocksDBColumnFamily.mm (100%) rename {ObjectiveRocks => Code}/RocksDBColumnFamilyDescriptor.h (100%) rename {ObjectiveRocks => Code}/RocksDBColumnFamilyDescriptor.mm (100%) rename {ObjectiveRocks => Code}/RocksDBColumnFamilyMetaData+Private.h (100%) rename {ObjectiveRocks => Code}/RocksDBColumnFamilyMetadata.h (100%) rename {ObjectiveRocks => Code}/RocksDBColumnFamilyMetadata.mm (100%) rename {ObjectiveRocks => Code}/RocksDBColumnFamilyOptions.h (100%) rename {ObjectiveRocks => Code}/RocksDBColumnFamilyOptions.mm (100%) rename {ObjectiveRocks => Code}/RocksDBComparator.h (100%) rename {ObjectiveRocks => Code}/RocksDBComparator.mm (100%) rename {ObjectiveRocks => Code}/RocksDBCuckooTableOptions.h (100%) rename {ObjectiveRocks => Code}/RocksDBCuckooTableOptions.mm (100%) rename {ObjectiveRocks => Code}/RocksDBDatabaseOptions.h (100%) rename {ObjectiveRocks => Code}/RocksDBDatabaseOptions.mm (100%) rename {ObjectiveRocks => Code}/RocksDBEncodingOptions.h (100%) rename {ObjectiveRocks => Code}/RocksDBEncodingOptions.mm (100%) rename {ObjectiveRocks => Code}/RocksDBEnv.h (100%) rename {ObjectiveRocks => Code}/RocksDBEnv.mm (100%) rename {ObjectiveRocks => Code}/RocksDBError.h (100%) rename {ObjectiveRocks => Code}/RocksDBError.mm (100%) rename {ObjectiveRocks => Code}/RocksDBFilterPolicy.h (100%) rename {ObjectiveRocks => Code}/RocksDBFilterPolicy.mm (100%) rename {ObjectiveRocks => Code}/RocksDBIndexedWriteBatch.h (100%) rename {ObjectiveRocks => Code}/RocksDBIndexedWriteBatch.mm (100%) rename {ObjectiveRocks => Code}/RocksDBIterator+Private.h (100%) rename {ObjectiveRocks => Code}/RocksDBIterator.h (100%) rename {ObjectiveRocks => Code}/RocksDBIterator.mm (100%) rename {ObjectiveRocks => Code}/RocksDBMemTableRepFactory.h (100%) rename {ObjectiveRocks => Code}/RocksDBMemTableRepFactory.mm (100%) rename {ObjectiveRocks => Code}/RocksDBMergeOperator.h (100%) rename {ObjectiveRocks => Code}/RocksDBMergeOperator.mm (100%) rename {ObjectiveRocks => Code}/RocksDBOptions+Private.h (100%) rename {ObjectiveRocks => Code}/RocksDBOptions.h (100%) rename {ObjectiveRocks => Code}/RocksDBOptions.mm (100%) rename {ObjectiveRocks => Code}/RocksDBPlainTableOptions.h (100%) rename {ObjectiveRocks => Code}/RocksDBPlainTableOptions.mm (100%) rename {ObjectiveRocks => Code}/RocksDBPrefixExtractor.h (100%) rename {ObjectiveRocks => Code}/RocksDBPrefixExtractor.mm (100%) rename {ObjectiveRocks => Code}/RocksDBProperties.h (100%) rename {ObjectiveRocks => Code}/RocksDBProperties.mm (100%) rename {ObjectiveRocks => Code}/RocksDBReadOptions.h (100%) rename {ObjectiveRocks => Code}/RocksDBReadOptions.mm (100%) rename {ObjectiveRocks => Code}/RocksDBSlice.h (100%) rename {ObjectiveRocks => Code}/RocksDBSnapshot+Private.h (100%) rename {ObjectiveRocks => Code}/RocksDBSnapshot.h (100%) rename {ObjectiveRocks => Code}/RocksDBSnapshot.mm (100%) rename {ObjectiveRocks => Code}/RocksDBSnapshotUnavailable.h (100%) rename {ObjectiveRocks => Code}/RocksDBStatistics.h (100%) rename {ObjectiveRocks => Code}/RocksDBStatistics.mm (100%) rename {ObjectiveRocks => Code}/RocksDBStatisticsHistogram.h (100%) rename {ObjectiveRocks => Code}/RocksDBStatisticsHistogram.mm (100%) rename {ObjectiveRocks => Code}/RocksDBTableFactory.h (100%) rename {ObjectiveRocks => Code}/RocksDBTableFactory.mm (100%) rename {ObjectiveRocks => Code}/RocksDBThreadStatus.h (100%) rename {ObjectiveRocks => Code}/RocksDBThreadStatus.mm (100%) rename {ObjectiveRocks => Code}/RocksDBTypes.h (100%) rename {ObjectiveRocks => Code}/RocksDBTypes.m (100%) rename {ObjectiveRocks => Code}/RocksDBWriteBatch+Private.h (100%) rename {ObjectiveRocks => Code}/RocksDBWriteBatch.h (100%) rename {ObjectiveRocks => Code}/RocksDBWriteBatch.mm (100%) rename {ObjectiveRocks => Code}/RocksDBWriteBatchIterator+Private.h (100%) rename {ObjectiveRocks => Code}/RocksDBWriteBatchIterator.h (100%) rename {ObjectiveRocks => Code}/RocksDBWriteBatchIterator.mm (100%) rename {ObjectiveRocks => Code}/RocksDBWriteOptions.h (100%) rename {ObjectiveRocks => Code}/RocksDBWriteOptions.mm (100%) rename {ObjectiveRocksTests => Tests}/Info.plist (100%) rename {ObjectiveRocksTests => Tests}/ObjectiveRocksTests-Bridging-Header.h (100%) rename {ObjectiveRocksTests => Tests}/ObjectiveRocksTests-iOS-Bridging-Header.h (100%) rename {ObjectiveRocksTests => Tests}/RockDBTests.swift (100%) rename {ObjectiveRocksTests => Tests}/RocksDBBackupTests.mm (100%) rename {ObjectiveRocksTests => Tests}/RocksDBBackupTests.swift (100%) rename {ObjectiveRocksTests => Tests}/RocksDBBasicTests.mm (100%) rename {ObjectiveRocksTests => Tests}/RocksDBBasicTests.swift (100%) rename {ObjectiveRocksTests => Tests}/RocksDBCheckpointTests.mm (100%) rename {ObjectiveRocksTests => Tests}/RocksDBCheckpointTests.swift (100%) rename {ObjectiveRocksTests => Tests}/RocksDBColumnFamilyMetadataTests.mm (100%) rename {ObjectiveRocksTests => Tests}/RocksDBColumnFamilyMetadataTests.swift (100%) rename {ObjectiveRocksTests => Tests}/RocksDBColumnFamilyTests.mm (100%) rename {ObjectiveRocksTests => Tests}/RocksDBColumnFamilyTests.swift (100%) rename {ObjectiveRocksTests => Tests}/RocksDBComparatorTests.mm (100%) rename {ObjectiveRocksTests => Tests}/RocksDBComparatorTests.swift (100%) rename {ObjectiveRocksTests => Tests}/RocksDBIndexedWriteBatch.swift (100%) rename {ObjectiveRocksTests => Tests}/RocksDBIndexedWriteBatchTests.m (100%) rename {ObjectiveRocksTests => Tests}/RocksDBIteratorTests.mm (100%) rename {ObjectiveRocksTests => Tests}/RocksDBIteratorTests.swift (100%) rename {ObjectiveRocksTests => Tests}/RocksDBMergeOperatorTests.mm (100%) rename {ObjectiveRocksTests => Tests}/RocksDBMergeOperatorTests.swift (100%) rename {ObjectiveRocksTests => Tests}/RocksDBPrefixExtractorTests.mm (100%) rename {ObjectiveRocksTests => Tests}/RocksDBPrefixExtractorTests.swift (100%) rename {ObjectiveRocksTests => Tests}/RocksDBPropertiesTests.mm (100%) rename {ObjectiveRocksTests => Tests}/RocksDBPropertiesTests.swift (100%) rename {ObjectiveRocksTests => Tests}/RocksDBReadOnlyTests.m (100%) rename {ObjectiveRocksTests => Tests}/RocksDBReadOnlyTests.swift (100%) rename {ObjectiveRocksTests => Tests}/RocksDBSnapshotTests.mm (100%) rename {ObjectiveRocksTests => Tests}/RocksDBSnapshotTests.swift (100%) rename {ObjectiveRocksTests => Tests}/RocksDBStatisticsTests.mm (100%) rename {ObjectiveRocksTests => Tests}/RocksDBStatisticsTests.swift (100%) rename {ObjectiveRocksTests => Tests}/RocksDBTests.h (100%) rename {ObjectiveRocksTests => Tests}/RocksDBTests.mm (100%) rename {ObjectiveRocksTests => Tests}/RocksDBWriteBatchTests.mm (100%) rename {ObjectiveRocksTests => Tests}/RocksDBWriteBatchTests.swift (100%) diff --git a/ObjectiveRocks/ObjectiveRocks.h b/Code/ObjectiveRocks.h similarity index 100% rename from ObjectiveRocks/ObjectiveRocks.h rename to Code/ObjectiveRocks.h diff --git a/ObjectiveRocks/RocksDB+Private.h b/Code/RocksDB+Private.h similarity index 100% rename from ObjectiveRocks/RocksDB+Private.h rename to Code/RocksDB+Private.h diff --git a/ObjectiveRocks/RocksDB.h b/Code/RocksDB.h similarity index 100% rename from ObjectiveRocks/RocksDB.h rename to Code/RocksDB.h diff --git a/ObjectiveRocks/RocksDB.mm b/Code/RocksDB.mm similarity index 100% rename from ObjectiveRocks/RocksDB.mm rename to Code/RocksDB.mm diff --git a/ObjectiveRocks/RocksDBBackupEngine.h b/Code/RocksDBBackupEngine.h similarity index 100% rename from ObjectiveRocks/RocksDBBackupEngine.h rename to Code/RocksDBBackupEngine.h diff --git a/ObjectiveRocks/RocksDBBackupEngine.mm b/Code/RocksDBBackupEngine.mm similarity index 100% rename from ObjectiveRocks/RocksDBBackupEngine.mm rename to Code/RocksDBBackupEngine.mm diff --git a/ObjectiveRocks/RocksDBBackupInfo.h b/Code/RocksDBBackupInfo.h similarity index 100% rename from ObjectiveRocks/RocksDBBackupInfo.h rename to Code/RocksDBBackupInfo.h diff --git a/ObjectiveRocks/RocksDBBackupInfo.mm b/Code/RocksDBBackupInfo.mm similarity index 100% rename from ObjectiveRocks/RocksDBBackupInfo.mm rename to Code/RocksDBBackupInfo.mm diff --git a/ObjectiveRocks/RocksDBBlockBasedTableOptions.h b/Code/RocksDBBlockBasedTableOptions.h similarity index 100% rename from ObjectiveRocks/RocksDBBlockBasedTableOptions.h rename to Code/RocksDBBlockBasedTableOptions.h diff --git a/ObjectiveRocks/RocksDBBlockBasedTableOptions.mm b/Code/RocksDBBlockBasedTableOptions.mm similarity index 100% rename from ObjectiveRocks/RocksDBBlockBasedTableOptions.mm rename to Code/RocksDBBlockBasedTableOptions.mm diff --git a/ObjectiveRocks/RocksDBCache.h b/Code/RocksDBCache.h similarity index 100% rename from ObjectiveRocks/RocksDBCache.h rename to Code/RocksDBCache.h diff --git a/ObjectiveRocks/RocksDBCache.mm b/Code/RocksDBCache.mm similarity index 100% rename from ObjectiveRocks/RocksDBCache.mm rename to Code/RocksDBCache.mm diff --git a/ObjectiveRocks/RocksDBCallbackAssociativeMergeOperator.cpp b/Code/RocksDBCallbackAssociativeMergeOperator.cpp similarity index 100% rename from ObjectiveRocks/RocksDBCallbackAssociativeMergeOperator.cpp rename to Code/RocksDBCallbackAssociativeMergeOperator.cpp diff --git a/ObjectiveRocks/RocksDBCallbackAssociativeMergeOperator.h b/Code/RocksDBCallbackAssociativeMergeOperator.h similarity index 100% rename from ObjectiveRocks/RocksDBCallbackAssociativeMergeOperator.h rename to Code/RocksDBCallbackAssociativeMergeOperator.h diff --git a/ObjectiveRocks/RocksDBCallbackComparator.cpp b/Code/RocksDBCallbackComparator.cpp similarity index 100% rename from ObjectiveRocks/RocksDBCallbackComparator.cpp rename to Code/RocksDBCallbackComparator.cpp diff --git a/ObjectiveRocks/RocksDBCallbackComparator.h b/Code/RocksDBCallbackComparator.h similarity index 100% rename from ObjectiveRocks/RocksDBCallbackComparator.h rename to Code/RocksDBCallbackComparator.h diff --git a/ObjectiveRocks/RocksDBCallbackMergeOperator.cpp b/Code/RocksDBCallbackMergeOperator.cpp similarity index 100% rename from ObjectiveRocks/RocksDBCallbackMergeOperator.cpp rename to Code/RocksDBCallbackMergeOperator.cpp diff --git a/ObjectiveRocks/RocksDBCallbackMergeOperator.h b/Code/RocksDBCallbackMergeOperator.h similarity index 100% rename from ObjectiveRocks/RocksDBCallbackMergeOperator.h rename to Code/RocksDBCallbackMergeOperator.h diff --git a/ObjectiveRocks/RocksDBCallbackSliceTransform.cpp b/Code/RocksDBCallbackSliceTransform.cpp similarity index 100% rename from ObjectiveRocks/RocksDBCallbackSliceTransform.cpp rename to Code/RocksDBCallbackSliceTransform.cpp diff --git a/ObjectiveRocks/RocksDBCallbackSliceTransform.h b/Code/RocksDBCallbackSliceTransform.h similarity index 100% rename from ObjectiveRocks/RocksDBCallbackSliceTransform.h rename to Code/RocksDBCallbackSliceTransform.h diff --git a/ObjectiveRocks/RocksDBCheckpoint.h b/Code/RocksDBCheckpoint.h similarity index 100% rename from ObjectiveRocks/RocksDBCheckpoint.h rename to Code/RocksDBCheckpoint.h diff --git a/ObjectiveRocks/RocksDBCheckpoint.mm b/Code/RocksDBCheckpoint.mm similarity index 100% rename from ObjectiveRocks/RocksDBCheckpoint.mm rename to Code/RocksDBCheckpoint.mm diff --git a/ObjectiveRocks/RocksDBColumnFamily+Private.h b/Code/RocksDBColumnFamily+Private.h similarity index 100% rename from ObjectiveRocks/RocksDBColumnFamily+Private.h rename to Code/RocksDBColumnFamily+Private.h diff --git a/ObjectiveRocks/RocksDBColumnFamily.h b/Code/RocksDBColumnFamily.h similarity index 100% rename from ObjectiveRocks/RocksDBColumnFamily.h rename to Code/RocksDBColumnFamily.h diff --git a/ObjectiveRocks/RocksDBColumnFamily.mm b/Code/RocksDBColumnFamily.mm similarity index 100% rename from ObjectiveRocks/RocksDBColumnFamily.mm rename to Code/RocksDBColumnFamily.mm diff --git a/ObjectiveRocks/RocksDBColumnFamilyDescriptor.h b/Code/RocksDBColumnFamilyDescriptor.h similarity index 100% rename from ObjectiveRocks/RocksDBColumnFamilyDescriptor.h rename to Code/RocksDBColumnFamilyDescriptor.h diff --git a/ObjectiveRocks/RocksDBColumnFamilyDescriptor.mm b/Code/RocksDBColumnFamilyDescriptor.mm similarity index 100% rename from ObjectiveRocks/RocksDBColumnFamilyDescriptor.mm rename to Code/RocksDBColumnFamilyDescriptor.mm diff --git a/ObjectiveRocks/RocksDBColumnFamilyMetaData+Private.h b/Code/RocksDBColumnFamilyMetaData+Private.h similarity index 100% rename from ObjectiveRocks/RocksDBColumnFamilyMetaData+Private.h rename to Code/RocksDBColumnFamilyMetaData+Private.h diff --git a/ObjectiveRocks/RocksDBColumnFamilyMetadata.h b/Code/RocksDBColumnFamilyMetadata.h similarity index 100% rename from ObjectiveRocks/RocksDBColumnFamilyMetadata.h rename to Code/RocksDBColumnFamilyMetadata.h diff --git a/ObjectiveRocks/RocksDBColumnFamilyMetadata.mm b/Code/RocksDBColumnFamilyMetadata.mm similarity index 100% rename from ObjectiveRocks/RocksDBColumnFamilyMetadata.mm rename to Code/RocksDBColumnFamilyMetadata.mm diff --git a/ObjectiveRocks/RocksDBColumnFamilyOptions.h b/Code/RocksDBColumnFamilyOptions.h similarity index 100% rename from ObjectiveRocks/RocksDBColumnFamilyOptions.h rename to Code/RocksDBColumnFamilyOptions.h diff --git a/ObjectiveRocks/RocksDBColumnFamilyOptions.mm b/Code/RocksDBColumnFamilyOptions.mm similarity index 100% rename from ObjectiveRocks/RocksDBColumnFamilyOptions.mm rename to Code/RocksDBColumnFamilyOptions.mm diff --git a/ObjectiveRocks/RocksDBComparator.h b/Code/RocksDBComparator.h similarity index 100% rename from ObjectiveRocks/RocksDBComparator.h rename to Code/RocksDBComparator.h diff --git a/ObjectiveRocks/RocksDBComparator.mm b/Code/RocksDBComparator.mm similarity index 100% rename from ObjectiveRocks/RocksDBComparator.mm rename to Code/RocksDBComparator.mm diff --git a/ObjectiveRocks/RocksDBCuckooTableOptions.h b/Code/RocksDBCuckooTableOptions.h similarity index 100% rename from ObjectiveRocks/RocksDBCuckooTableOptions.h rename to Code/RocksDBCuckooTableOptions.h diff --git a/ObjectiveRocks/RocksDBCuckooTableOptions.mm b/Code/RocksDBCuckooTableOptions.mm similarity index 100% rename from ObjectiveRocks/RocksDBCuckooTableOptions.mm rename to Code/RocksDBCuckooTableOptions.mm diff --git a/ObjectiveRocks/RocksDBDatabaseOptions.h b/Code/RocksDBDatabaseOptions.h similarity index 100% rename from ObjectiveRocks/RocksDBDatabaseOptions.h rename to Code/RocksDBDatabaseOptions.h diff --git a/ObjectiveRocks/RocksDBDatabaseOptions.mm b/Code/RocksDBDatabaseOptions.mm similarity index 100% rename from ObjectiveRocks/RocksDBDatabaseOptions.mm rename to Code/RocksDBDatabaseOptions.mm diff --git a/ObjectiveRocks/RocksDBEncodingOptions.h b/Code/RocksDBEncodingOptions.h similarity index 100% rename from ObjectiveRocks/RocksDBEncodingOptions.h rename to Code/RocksDBEncodingOptions.h diff --git a/ObjectiveRocks/RocksDBEncodingOptions.mm b/Code/RocksDBEncodingOptions.mm similarity index 100% rename from ObjectiveRocks/RocksDBEncodingOptions.mm rename to Code/RocksDBEncodingOptions.mm diff --git a/ObjectiveRocks/RocksDBEnv.h b/Code/RocksDBEnv.h similarity index 100% rename from ObjectiveRocks/RocksDBEnv.h rename to Code/RocksDBEnv.h diff --git a/ObjectiveRocks/RocksDBEnv.mm b/Code/RocksDBEnv.mm similarity index 100% rename from ObjectiveRocks/RocksDBEnv.mm rename to Code/RocksDBEnv.mm diff --git a/ObjectiveRocks/RocksDBError.h b/Code/RocksDBError.h similarity index 100% rename from ObjectiveRocks/RocksDBError.h rename to Code/RocksDBError.h diff --git a/ObjectiveRocks/RocksDBError.mm b/Code/RocksDBError.mm similarity index 100% rename from ObjectiveRocks/RocksDBError.mm rename to Code/RocksDBError.mm diff --git a/ObjectiveRocks/RocksDBFilterPolicy.h b/Code/RocksDBFilterPolicy.h similarity index 100% rename from ObjectiveRocks/RocksDBFilterPolicy.h rename to Code/RocksDBFilterPolicy.h diff --git a/ObjectiveRocks/RocksDBFilterPolicy.mm b/Code/RocksDBFilterPolicy.mm similarity index 100% rename from ObjectiveRocks/RocksDBFilterPolicy.mm rename to Code/RocksDBFilterPolicy.mm diff --git a/ObjectiveRocks/RocksDBIndexedWriteBatch.h b/Code/RocksDBIndexedWriteBatch.h similarity index 100% rename from ObjectiveRocks/RocksDBIndexedWriteBatch.h rename to Code/RocksDBIndexedWriteBatch.h diff --git a/ObjectiveRocks/RocksDBIndexedWriteBatch.mm b/Code/RocksDBIndexedWriteBatch.mm similarity index 100% rename from ObjectiveRocks/RocksDBIndexedWriteBatch.mm rename to Code/RocksDBIndexedWriteBatch.mm diff --git a/ObjectiveRocks/RocksDBIterator+Private.h b/Code/RocksDBIterator+Private.h similarity index 100% rename from ObjectiveRocks/RocksDBIterator+Private.h rename to Code/RocksDBIterator+Private.h diff --git a/ObjectiveRocks/RocksDBIterator.h b/Code/RocksDBIterator.h similarity index 100% rename from ObjectiveRocks/RocksDBIterator.h rename to Code/RocksDBIterator.h diff --git a/ObjectiveRocks/RocksDBIterator.mm b/Code/RocksDBIterator.mm similarity index 100% rename from ObjectiveRocks/RocksDBIterator.mm rename to Code/RocksDBIterator.mm diff --git a/ObjectiveRocks/RocksDBMemTableRepFactory.h b/Code/RocksDBMemTableRepFactory.h similarity index 100% rename from ObjectiveRocks/RocksDBMemTableRepFactory.h rename to Code/RocksDBMemTableRepFactory.h diff --git a/ObjectiveRocks/RocksDBMemTableRepFactory.mm b/Code/RocksDBMemTableRepFactory.mm similarity index 100% rename from ObjectiveRocks/RocksDBMemTableRepFactory.mm rename to Code/RocksDBMemTableRepFactory.mm diff --git a/ObjectiveRocks/RocksDBMergeOperator.h b/Code/RocksDBMergeOperator.h similarity index 100% rename from ObjectiveRocks/RocksDBMergeOperator.h rename to Code/RocksDBMergeOperator.h diff --git a/ObjectiveRocks/RocksDBMergeOperator.mm b/Code/RocksDBMergeOperator.mm similarity index 100% rename from ObjectiveRocks/RocksDBMergeOperator.mm rename to Code/RocksDBMergeOperator.mm diff --git a/ObjectiveRocks/RocksDBOptions+Private.h b/Code/RocksDBOptions+Private.h similarity index 100% rename from ObjectiveRocks/RocksDBOptions+Private.h rename to Code/RocksDBOptions+Private.h diff --git a/ObjectiveRocks/RocksDBOptions.h b/Code/RocksDBOptions.h similarity index 100% rename from ObjectiveRocks/RocksDBOptions.h rename to Code/RocksDBOptions.h diff --git a/ObjectiveRocks/RocksDBOptions.mm b/Code/RocksDBOptions.mm similarity index 100% rename from ObjectiveRocks/RocksDBOptions.mm rename to Code/RocksDBOptions.mm diff --git a/ObjectiveRocks/RocksDBPlainTableOptions.h b/Code/RocksDBPlainTableOptions.h similarity index 100% rename from ObjectiveRocks/RocksDBPlainTableOptions.h rename to Code/RocksDBPlainTableOptions.h diff --git a/ObjectiveRocks/RocksDBPlainTableOptions.mm b/Code/RocksDBPlainTableOptions.mm similarity index 100% rename from ObjectiveRocks/RocksDBPlainTableOptions.mm rename to Code/RocksDBPlainTableOptions.mm diff --git a/ObjectiveRocks/RocksDBPrefixExtractor.h b/Code/RocksDBPrefixExtractor.h similarity index 100% rename from ObjectiveRocks/RocksDBPrefixExtractor.h rename to Code/RocksDBPrefixExtractor.h diff --git a/ObjectiveRocks/RocksDBPrefixExtractor.mm b/Code/RocksDBPrefixExtractor.mm similarity index 100% rename from ObjectiveRocks/RocksDBPrefixExtractor.mm rename to Code/RocksDBPrefixExtractor.mm diff --git a/ObjectiveRocks/RocksDBProperties.h b/Code/RocksDBProperties.h similarity index 100% rename from ObjectiveRocks/RocksDBProperties.h rename to Code/RocksDBProperties.h diff --git a/ObjectiveRocks/RocksDBProperties.mm b/Code/RocksDBProperties.mm similarity index 100% rename from ObjectiveRocks/RocksDBProperties.mm rename to Code/RocksDBProperties.mm diff --git a/ObjectiveRocks/RocksDBReadOptions.h b/Code/RocksDBReadOptions.h similarity index 100% rename from ObjectiveRocks/RocksDBReadOptions.h rename to Code/RocksDBReadOptions.h diff --git a/ObjectiveRocks/RocksDBReadOptions.mm b/Code/RocksDBReadOptions.mm similarity index 100% rename from ObjectiveRocks/RocksDBReadOptions.mm rename to Code/RocksDBReadOptions.mm diff --git a/ObjectiveRocks/RocksDBSlice.h b/Code/RocksDBSlice.h similarity index 100% rename from ObjectiveRocks/RocksDBSlice.h rename to Code/RocksDBSlice.h diff --git a/ObjectiveRocks/RocksDBSnapshot+Private.h b/Code/RocksDBSnapshot+Private.h similarity index 100% rename from ObjectiveRocks/RocksDBSnapshot+Private.h rename to Code/RocksDBSnapshot+Private.h diff --git a/ObjectiveRocks/RocksDBSnapshot.h b/Code/RocksDBSnapshot.h similarity index 100% rename from ObjectiveRocks/RocksDBSnapshot.h rename to Code/RocksDBSnapshot.h diff --git a/ObjectiveRocks/RocksDBSnapshot.mm b/Code/RocksDBSnapshot.mm similarity index 100% rename from ObjectiveRocks/RocksDBSnapshot.mm rename to Code/RocksDBSnapshot.mm diff --git a/ObjectiveRocks/RocksDBSnapshotUnavailable.h b/Code/RocksDBSnapshotUnavailable.h similarity index 100% rename from ObjectiveRocks/RocksDBSnapshotUnavailable.h rename to Code/RocksDBSnapshotUnavailable.h diff --git a/ObjectiveRocks/RocksDBStatistics.h b/Code/RocksDBStatistics.h similarity index 100% rename from ObjectiveRocks/RocksDBStatistics.h rename to Code/RocksDBStatistics.h diff --git a/ObjectiveRocks/RocksDBStatistics.mm b/Code/RocksDBStatistics.mm similarity index 100% rename from ObjectiveRocks/RocksDBStatistics.mm rename to Code/RocksDBStatistics.mm diff --git a/ObjectiveRocks/RocksDBStatisticsHistogram.h b/Code/RocksDBStatisticsHistogram.h similarity index 100% rename from ObjectiveRocks/RocksDBStatisticsHistogram.h rename to Code/RocksDBStatisticsHistogram.h diff --git a/ObjectiveRocks/RocksDBStatisticsHistogram.mm b/Code/RocksDBStatisticsHistogram.mm similarity index 100% rename from ObjectiveRocks/RocksDBStatisticsHistogram.mm rename to Code/RocksDBStatisticsHistogram.mm diff --git a/ObjectiveRocks/RocksDBTableFactory.h b/Code/RocksDBTableFactory.h similarity index 100% rename from ObjectiveRocks/RocksDBTableFactory.h rename to Code/RocksDBTableFactory.h diff --git a/ObjectiveRocks/RocksDBTableFactory.mm b/Code/RocksDBTableFactory.mm similarity index 100% rename from ObjectiveRocks/RocksDBTableFactory.mm rename to Code/RocksDBTableFactory.mm diff --git a/ObjectiveRocks/RocksDBThreadStatus.h b/Code/RocksDBThreadStatus.h similarity index 100% rename from ObjectiveRocks/RocksDBThreadStatus.h rename to Code/RocksDBThreadStatus.h diff --git a/ObjectiveRocks/RocksDBThreadStatus.mm b/Code/RocksDBThreadStatus.mm similarity index 100% rename from ObjectiveRocks/RocksDBThreadStatus.mm rename to Code/RocksDBThreadStatus.mm diff --git a/ObjectiveRocks/RocksDBTypes.h b/Code/RocksDBTypes.h similarity index 100% rename from ObjectiveRocks/RocksDBTypes.h rename to Code/RocksDBTypes.h diff --git a/ObjectiveRocks/RocksDBTypes.m b/Code/RocksDBTypes.m similarity index 100% rename from ObjectiveRocks/RocksDBTypes.m rename to Code/RocksDBTypes.m diff --git a/ObjectiveRocks/RocksDBWriteBatch+Private.h b/Code/RocksDBWriteBatch+Private.h similarity index 100% rename from ObjectiveRocks/RocksDBWriteBatch+Private.h rename to Code/RocksDBWriteBatch+Private.h diff --git a/ObjectiveRocks/RocksDBWriteBatch.h b/Code/RocksDBWriteBatch.h similarity index 100% rename from ObjectiveRocks/RocksDBWriteBatch.h rename to Code/RocksDBWriteBatch.h diff --git a/ObjectiveRocks/RocksDBWriteBatch.mm b/Code/RocksDBWriteBatch.mm similarity index 100% rename from ObjectiveRocks/RocksDBWriteBatch.mm rename to Code/RocksDBWriteBatch.mm diff --git a/ObjectiveRocks/RocksDBWriteBatchIterator+Private.h b/Code/RocksDBWriteBatchIterator+Private.h similarity index 100% rename from ObjectiveRocks/RocksDBWriteBatchIterator+Private.h rename to Code/RocksDBWriteBatchIterator+Private.h diff --git a/ObjectiveRocks/RocksDBWriteBatchIterator.h b/Code/RocksDBWriteBatchIterator.h similarity index 100% rename from ObjectiveRocks/RocksDBWriteBatchIterator.h rename to Code/RocksDBWriteBatchIterator.h diff --git a/ObjectiveRocks/RocksDBWriteBatchIterator.mm b/Code/RocksDBWriteBatchIterator.mm similarity index 100% rename from ObjectiveRocks/RocksDBWriteBatchIterator.mm rename to Code/RocksDBWriteBatchIterator.mm diff --git a/ObjectiveRocks/RocksDBWriteOptions.h b/Code/RocksDBWriteOptions.h similarity index 100% rename from ObjectiveRocks/RocksDBWriteOptions.h rename to Code/RocksDBWriteOptions.h diff --git a/ObjectiveRocks/RocksDBWriteOptions.mm b/Code/RocksDBWriteOptions.mm similarity index 100% rename from ObjectiveRocks/RocksDBWriteOptions.mm rename to Code/RocksDBWriteOptions.mm diff --git a/ObjectiveRocks.xcodeproj/project.pbxproj b/ObjectiveRocks.xcodeproj/project.pbxproj index 728ca28..1ef1684 100644 --- a/ObjectiveRocks.xcodeproj/project.pbxproj +++ b/ObjectiveRocks.xcodeproj/project.pbxproj @@ -1457,8 +1457,8 @@ 6299F8001A17B28200123F56 = { isa = PBXGroup; children = ( - 6299F80B1A17B28200123F56 /* ObjectiveRocks */, - 6299F8181A17B28200123F56 /* ObjectiveRocksTests */, + 6299F80B1A17B28200123F56 /* Source */, + 6299F8181A17B28200123F56 /* Tests */, 6299F80A1A17B28200123F56 /* Products */, ); sourceTree = ""; @@ -1474,7 +1474,7 @@ name = Products; sourceTree = ""; }; - 6299F80B1A17B28200123F56 /* ObjectiveRocks */ = { + 6299F80B1A17B28200123F56 /* Source */ = { isa = PBXGroup; children = ( 62AEF9B81A1D5CF000E63E89 /* ObjectiveRocks.h */, @@ -1499,10 +1499,11 @@ 62376BBC1A20EA4B00C85DFB /* Internal */, 62EE28FD1A1ABA1F00486C31 /* rocksdb */, ); - path = ObjectiveRocks; + name = Source; + path = Code; sourceTree = ""; }; - 6299F8181A17B28200123F56 /* ObjectiveRocksTests */ = { + 6299F8181A17B28200123F56 /* Tests */ = { isa = PBXGroup; children = ( 621636191A631E4F00B132CE /* Swift */, @@ -1525,7 +1526,7 @@ 625F8F1E1A59C9B3007796BA /* RocksDBPropertiesTests.mm */, 6299F8191A17B28200123F56 /* Supporting Files */, ); - path = ObjectiveRocksTests; + path = Tests; sourceTree = ""; }; 6299F8191A17B28200123F56 /* Supporting Files */ = { @@ -2964,12 +2965,12 @@ "DEBUG=1", "$(inherited)", ); - INFOPLIST_FILE = ObjectiveRocksTests/Info.plist; + INFOPLIST_FILE = Tests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "co.braincookie.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = ObjectiveRocksTests; SDKROOT = macosx; - SWIFT_OBJC_BRIDGING_HEADER = "ObjectiveRocksTests/ObjectiveRocksTests-Bridging-Header.h"; + SWIFT_OBJC_BRIDGING_HEADER = "Tests/ObjectiveRocksTests-Bridging-Header.h"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; }; name = Debug; @@ -2982,12 +2983,12 @@ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; EMBEDDED_CONTENT_CONTAINS_SWIFT = YES; FRAMEWORK_SEARCH_PATHS = "$(inherited)"; - INFOPLIST_FILE = ObjectiveRocksTests/Info.plist; + INFOPLIST_FILE = Tests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "co.braincookie.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = ObjectiveRocksTests; SDKROOT = macosx; - SWIFT_OBJC_BRIDGING_HEADER = "ObjectiveRocksTests/ObjectiveRocksTests-Bridging-Header.h"; + SWIFT_OBJC_BRIDGING_HEADER = "Tests/ObjectiveRocksTests-Bridging-Header.h"; }; name = Release; }; @@ -3059,11 +3060,11 @@ "DEBUG=1", "$(inherited)", ); - INFOPLIST_FILE = ObjectiveRocksTests/Info.plist; + INFOPLIST_FILE = Tests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "co.braincookie.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "ObjectiveRocksTests-iOS"; - SWIFT_OBJC_BRIDGING_HEADER = "ObjectiveRocksTests/ObjectiveRocksTests-iOS-Bridging-Header.h"; + SWIFT_OBJC_BRIDGING_HEADER = "Tests/ObjectiveRocksTests-iOS-Bridging-Header.h"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; }; name = Debug; @@ -3074,11 +3075,11 @@ CLANG_ENABLE_MODULES = YES; EMBEDDED_CONTENT_CONTAINS_SWIFT = YES; FRAMEWORK_SEARCH_PATHS = "$(inherited)"; - INFOPLIST_FILE = ObjectiveRocksTests/Info.plist; + INFOPLIST_FILE = Tests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "co.braincookie.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "ObjectiveRocksTests-iOS"; - SWIFT_OBJC_BRIDGING_HEADER = "ObjectiveRocksTests/ObjectiveRocksTests-iOS-Bridging-Header.h"; + SWIFT_OBJC_BRIDGING_HEADER = "Tests/ObjectiveRocksTests-iOS-Bridging-Header.h"; }; name = Release; }; diff --git a/ObjectiveRocksTests/Info.plist b/Tests/Info.plist similarity index 100% rename from ObjectiveRocksTests/Info.plist rename to Tests/Info.plist diff --git a/ObjectiveRocksTests/ObjectiveRocksTests-Bridging-Header.h b/Tests/ObjectiveRocksTests-Bridging-Header.h similarity index 100% rename from ObjectiveRocksTests/ObjectiveRocksTests-Bridging-Header.h rename to Tests/ObjectiveRocksTests-Bridging-Header.h diff --git a/ObjectiveRocksTests/ObjectiveRocksTests-iOS-Bridging-Header.h b/Tests/ObjectiveRocksTests-iOS-Bridging-Header.h similarity index 100% rename from ObjectiveRocksTests/ObjectiveRocksTests-iOS-Bridging-Header.h rename to Tests/ObjectiveRocksTests-iOS-Bridging-Header.h diff --git a/ObjectiveRocksTests/RockDBTests.swift b/Tests/RockDBTests.swift similarity index 100% rename from ObjectiveRocksTests/RockDBTests.swift rename to Tests/RockDBTests.swift diff --git a/ObjectiveRocksTests/RocksDBBackupTests.mm b/Tests/RocksDBBackupTests.mm similarity index 100% rename from ObjectiveRocksTests/RocksDBBackupTests.mm rename to Tests/RocksDBBackupTests.mm diff --git a/ObjectiveRocksTests/RocksDBBackupTests.swift b/Tests/RocksDBBackupTests.swift similarity index 100% rename from ObjectiveRocksTests/RocksDBBackupTests.swift rename to Tests/RocksDBBackupTests.swift diff --git a/ObjectiveRocksTests/RocksDBBasicTests.mm b/Tests/RocksDBBasicTests.mm similarity index 100% rename from ObjectiveRocksTests/RocksDBBasicTests.mm rename to Tests/RocksDBBasicTests.mm diff --git a/ObjectiveRocksTests/RocksDBBasicTests.swift b/Tests/RocksDBBasicTests.swift similarity index 100% rename from ObjectiveRocksTests/RocksDBBasicTests.swift rename to Tests/RocksDBBasicTests.swift diff --git a/ObjectiveRocksTests/RocksDBCheckpointTests.mm b/Tests/RocksDBCheckpointTests.mm similarity index 100% rename from ObjectiveRocksTests/RocksDBCheckpointTests.mm rename to Tests/RocksDBCheckpointTests.mm diff --git a/ObjectiveRocksTests/RocksDBCheckpointTests.swift b/Tests/RocksDBCheckpointTests.swift similarity index 100% rename from ObjectiveRocksTests/RocksDBCheckpointTests.swift rename to Tests/RocksDBCheckpointTests.swift diff --git a/ObjectiveRocksTests/RocksDBColumnFamilyMetadataTests.mm b/Tests/RocksDBColumnFamilyMetadataTests.mm similarity index 100% rename from ObjectiveRocksTests/RocksDBColumnFamilyMetadataTests.mm rename to Tests/RocksDBColumnFamilyMetadataTests.mm diff --git a/ObjectiveRocksTests/RocksDBColumnFamilyMetadataTests.swift b/Tests/RocksDBColumnFamilyMetadataTests.swift similarity index 100% rename from ObjectiveRocksTests/RocksDBColumnFamilyMetadataTests.swift rename to Tests/RocksDBColumnFamilyMetadataTests.swift diff --git a/ObjectiveRocksTests/RocksDBColumnFamilyTests.mm b/Tests/RocksDBColumnFamilyTests.mm similarity index 100% rename from ObjectiveRocksTests/RocksDBColumnFamilyTests.mm rename to Tests/RocksDBColumnFamilyTests.mm diff --git a/ObjectiveRocksTests/RocksDBColumnFamilyTests.swift b/Tests/RocksDBColumnFamilyTests.swift similarity index 100% rename from ObjectiveRocksTests/RocksDBColumnFamilyTests.swift rename to Tests/RocksDBColumnFamilyTests.swift diff --git a/ObjectiveRocksTests/RocksDBComparatorTests.mm b/Tests/RocksDBComparatorTests.mm similarity index 100% rename from ObjectiveRocksTests/RocksDBComparatorTests.mm rename to Tests/RocksDBComparatorTests.mm diff --git a/ObjectiveRocksTests/RocksDBComparatorTests.swift b/Tests/RocksDBComparatorTests.swift similarity index 100% rename from ObjectiveRocksTests/RocksDBComparatorTests.swift rename to Tests/RocksDBComparatorTests.swift diff --git a/ObjectiveRocksTests/RocksDBIndexedWriteBatch.swift b/Tests/RocksDBIndexedWriteBatch.swift similarity index 100% rename from ObjectiveRocksTests/RocksDBIndexedWriteBatch.swift rename to Tests/RocksDBIndexedWriteBatch.swift diff --git a/ObjectiveRocksTests/RocksDBIndexedWriteBatchTests.m b/Tests/RocksDBIndexedWriteBatchTests.m similarity index 100% rename from ObjectiveRocksTests/RocksDBIndexedWriteBatchTests.m rename to Tests/RocksDBIndexedWriteBatchTests.m diff --git a/ObjectiveRocksTests/RocksDBIteratorTests.mm b/Tests/RocksDBIteratorTests.mm similarity index 100% rename from ObjectiveRocksTests/RocksDBIteratorTests.mm rename to Tests/RocksDBIteratorTests.mm diff --git a/ObjectiveRocksTests/RocksDBIteratorTests.swift b/Tests/RocksDBIteratorTests.swift similarity index 100% rename from ObjectiveRocksTests/RocksDBIteratorTests.swift rename to Tests/RocksDBIteratorTests.swift diff --git a/ObjectiveRocksTests/RocksDBMergeOperatorTests.mm b/Tests/RocksDBMergeOperatorTests.mm similarity index 100% rename from ObjectiveRocksTests/RocksDBMergeOperatorTests.mm rename to Tests/RocksDBMergeOperatorTests.mm diff --git a/ObjectiveRocksTests/RocksDBMergeOperatorTests.swift b/Tests/RocksDBMergeOperatorTests.swift similarity index 100% rename from ObjectiveRocksTests/RocksDBMergeOperatorTests.swift rename to Tests/RocksDBMergeOperatorTests.swift diff --git a/ObjectiveRocksTests/RocksDBPrefixExtractorTests.mm b/Tests/RocksDBPrefixExtractorTests.mm similarity index 100% rename from ObjectiveRocksTests/RocksDBPrefixExtractorTests.mm rename to Tests/RocksDBPrefixExtractorTests.mm diff --git a/ObjectiveRocksTests/RocksDBPrefixExtractorTests.swift b/Tests/RocksDBPrefixExtractorTests.swift similarity index 100% rename from ObjectiveRocksTests/RocksDBPrefixExtractorTests.swift rename to Tests/RocksDBPrefixExtractorTests.swift diff --git a/ObjectiveRocksTests/RocksDBPropertiesTests.mm b/Tests/RocksDBPropertiesTests.mm similarity index 100% rename from ObjectiveRocksTests/RocksDBPropertiesTests.mm rename to Tests/RocksDBPropertiesTests.mm diff --git a/ObjectiveRocksTests/RocksDBPropertiesTests.swift b/Tests/RocksDBPropertiesTests.swift similarity index 100% rename from ObjectiveRocksTests/RocksDBPropertiesTests.swift rename to Tests/RocksDBPropertiesTests.swift diff --git a/ObjectiveRocksTests/RocksDBReadOnlyTests.m b/Tests/RocksDBReadOnlyTests.m similarity index 100% rename from ObjectiveRocksTests/RocksDBReadOnlyTests.m rename to Tests/RocksDBReadOnlyTests.m diff --git a/ObjectiveRocksTests/RocksDBReadOnlyTests.swift b/Tests/RocksDBReadOnlyTests.swift similarity index 100% rename from ObjectiveRocksTests/RocksDBReadOnlyTests.swift rename to Tests/RocksDBReadOnlyTests.swift diff --git a/ObjectiveRocksTests/RocksDBSnapshotTests.mm b/Tests/RocksDBSnapshotTests.mm similarity index 100% rename from ObjectiveRocksTests/RocksDBSnapshotTests.mm rename to Tests/RocksDBSnapshotTests.mm diff --git a/ObjectiveRocksTests/RocksDBSnapshotTests.swift b/Tests/RocksDBSnapshotTests.swift similarity index 100% rename from ObjectiveRocksTests/RocksDBSnapshotTests.swift rename to Tests/RocksDBSnapshotTests.swift diff --git a/ObjectiveRocksTests/RocksDBStatisticsTests.mm b/Tests/RocksDBStatisticsTests.mm similarity index 100% rename from ObjectiveRocksTests/RocksDBStatisticsTests.mm rename to Tests/RocksDBStatisticsTests.mm diff --git a/ObjectiveRocksTests/RocksDBStatisticsTests.swift b/Tests/RocksDBStatisticsTests.swift similarity index 100% rename from ObjectiveRocksTests/RocksDBStatisticsTests.swift rename to Tests/RocksDBStatisticsTests.swift diff --git a/ObjectiveRocksTests/RocksDBTests.h b/Tests/RocksDBTests.h similarity index 100% rename from ObjectiveRocksTests/RocksDBTests.h rename to Tests/RocksDBTests.h diff --git a/ObjectiveRocksTests/RocksDBTests.mm b/Tests/RocksDBTests.mm similarity index 100% rename from ObjectiveRocksTests/RocksDBTests.mm rename to Tests/RocksDBTests.mm diff --git a/ObjectiveRocksTests/RocksDBWriteBatchTests.mm b/Tests/RocksDBWriteBatchTests.mm similarity index 100% rename from ObjectiveRocksTests/RocksDBWriteBatchTests.mm rename to Tests/RocksDBWriteBatchTests.mm diff --git a/ObjectiveRocksTests/RocksDBWriteBatchTests.swift b/Tests/RocksDBWriteBatchTests.swift similarity index 100% rename from ObjectiveRocksTests/RocksDBWriteBatchTests.swift rename to Tests/RocksDBWriteBatchTests.swift From 9e6d71f2c65025b595891f558156ea6cc94fa265 Mon Sep 17 00:00:00 2001 From: iska Date: Sat, 7 Nov 2015 01:08:03 +0100 Subject: [PATCH 29/76] Replace static library target with framework for OSX --- Code/ObjectiveRocks.h | 11 +- Framework/Info.plist | 28 + ObjectiveRocks.xcodeproj/project.pbxproj | 1128 +++++++++-------- .../xcschemes/ObjectiveRocks.xcscheme | 16 +- Tests/ObjectiveRocksTests-Bridging-Header.h | 67 +- .../ObjectiveRocksTests-iOS-Bridging-Header.h | 1 + Tests/RockDBTests.swift | 1 + Tests/RocksDBBackupTests.swift | 1 + Tests/RocksDBBasicTests.swift | 1 + Tests/RocksDBCheckpointTests.swift | 1 + Tests/RocksDBColumnFamilyMetadataTests.swift | 1 + Tests/RocksDBColumnFamilyTests.swift | 1 + Tests/RocksDBComparatorTests.swift | 1 + Tests/RocksDBIndexedWriteBatch.swift | 1 + Tests/RocksDBIteratorTests.swift | 1 + Tests/RocksDBMergeOperatorTests.swift | 1 + Tests/RocksDBPrefixExtractorTests.swift | 1 + Tests/RocksDBPropertiesTests.swift | 2 +- Tests/RocksDBReadOnlyTests.swift | 1 + Tests/RocksDBSnapshotTests.swift | 1 + Tests/RocksDBStatisticsTests.swift | 1 + Tests/RocksDBWriteBatchTests.swift | 1 + 22 files changed, 692 insertions(+), 576 deletions(-) create mode 100644 Framework/Info.plist diff --git a/Code/ObjectiveRocks.h b/Code/ObjectiveRocks.h index 04a74fd..6900291 100644 --- a/Code/ObjectiveRocks.h +++ b/Code/ObjectiveRocks.h @@ -2,14 +2,21 @@ // ObjectiveRocks.h // ObjectiveRocks // -// Created by Iska on 20/11/14. -// Copyright (c) 2014 BrainCookie. All rights reserved. +// Created by Iska on 06/11/15. +// Copyright © 2015 BrainCookie. All rights reserved. // +//! Project version number for ObjectiveRocks. +extern double ObjectiveRocksVersionNumber; + +//! Project version string for ObjectiveRocks. +extern const unsigned char ObjectiveRocksVersionString[]; + #import "RocksDB.h" #import "RocksDBColumnFamily.h" #import "RocksDBColumnFamilyDescriptor.h" +#import "RocksDBColumnFamilyMetaData.h" #import "RocksDBIterator.h" #import "RocksDBPrefixExtractor.h" diff --git a/Framework/Info.plist b/Framework/Info.plist new file mode 100644 index 0000000..c8fa028 --- /dev/null +++ b/Framework/Info.plist @@ -0,0 +1,28 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + NSHumanReadableCopyright + Copyright © 2015 BrainCookie. All rights reserved. + NSPrincipalClass + + + diff --git a/ObjectiveRocks.xcodeproj/project.pbxproj b/ObjectiveRocks.xcodeproj/project.pbxproj index 1ef1684..9bda5d5 100644 --- a/ObjectiveRocks.xcodeproj/project.pbxproj +++ b/ObjectiveRocks.xcodeproj/project.pbxproj @@ -7,16 +7,9 @@ objects = { /* Begin PBXBuildFile section */ - 620494871A3284A800A0E950 /* RocksDBSnapshot.mm in Sources */ = {isa = PBXBuildFile; fileRef = 620494861A3284A800A0E950 /* RocksDBSnapshot.mm */; }; - 620629601A509DF1001DEDC4 /* RocksDBColumnFamilyOptions.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6206295F1A509DF1001DEDC4 /* RocksDBColumnFamilyOptions.mm */; }; - 620629631A50ECCA001DEDC4 /* RocksDBEncodingOptions.mm in Sources */ = {isa = PBXBuildFile; fileRef = 620629621A50ECCA001DEDC4 /* RocksDBEncodingOptions.mm */; }; - 620629661A510056001DEDC4 /* RocksDBDatabaseOptions.mm in Sources */ = {isa = PBXBuildFile; fileRef = 620629651A510056001DEDC4 /* RocksDBDatabaseOptions.mm */; }; - 6206296A1A510D36001DEDC4 /* RocksDBColumnFamily.mm in Sources */ = {isa = PBXBuildFile; fileRef = 620629691A510D36001DEDC4 /* RocksDBColumnFamily.mm */; }; - 62074F2D1A520EC2002B1885 /* RocksDBColumnFamilyDescriptor.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62074F2C1A520EC2002B1885 /* RocksDBColumnFamilyDescriptor.mm */; }; 620A2CAE1A3654D5007224A4 /* RocksDBMergeOperatorTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 620A2CAD1A3654D5007224A4 /* RocksDBMergeOperatorTests.mm */; }; 62102D421A643A13007E63F0 /* RocksDBComparatorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62102D411A643A13007E63F0 /* RocksDBComparatorTests.swift */; }; 62102D431A643A13007E63F0 /* RocksDBComparatorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62102D411A643A13007E63F0 /* RocksDBComparatorTests.swift */; }; - 6214FD091A3F698300B92E5C /* RocksDBCallbackMergeOperator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6214FD071A3F698300B92E5C /* RocksDBCallbackMergeOperator.cpp */; }; 6216360D1A62C9FB00B132CE /* RocksDBBasicTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6216360C1A62C9FB00B132CE /* RocksDBBasicTests.swift */; }; 6216360E1A62C9FB00B132CE /* RocksDBBasicTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6216360C1A62C9FB00B132CE /* RocksDBBasicTests.swift */; }; 621636101A62D1BE00B132CE /* RocksDBWriteBatchTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6216360F1A62D1BE00B132CE /* RocksDBWriteBatchTests.swift */; }; @@ -26,110 +19,271 @@ 621636161A62E47A00B132CE /* RocksDBSnapshotTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 621636141A62E47A00B132CE /* RocksDBSnapshotTests.swift */; }; 621636181A631CE100B132CE /* RocksDBCheckpointTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 621636171A631CE100B132CE /* RocksDBCheckpointTests.swift */; }; 6216361B1A631F2900B132CE /* RocksDBStatisticsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6216361A1A631F2900B132CE /* RocksDBStatisticsTests.swift */; }; - 621CD71C1A4FB24700853E16 /* RocksDBBackupEngine.mm in Sources */ = {isa = PBXBuildFile; fileRef = 621CD71B1A4FB24700853E16 /* RocksDBBackupEngine.mm */; }; 6221B7A71A629E1B00D28BF5 /* RockDBTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6221B7A41A629B3600D28BF5 /* RockDBTests.swift */; }; 6221B7A81A629E2700D28BF5 /* RockDBTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6221B7A41A629B3600D28BF5 /* RockDBTests.swift */; }; - 62269EDC1A1FF27A005A58D3 /* checkpoint.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62269EDB1A1FF27A005A58D3 /* checkpoint.cc */; }; - 62269EE01A1FF2DC005A58D3 /* leveldb_options.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62269EDF1A1FF2DC005A58D3 /* leveldb_options.cc */; }; - 62297D521B6AC05000F72BF2 /* write_batch_with_index_internal.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62297D501B6AC05000F72BF2 /* write_batch_with_index_internal.cc */; }; 62297D531B6AC05000F72BF2 /* write_batch_with_index_internal.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62297D501B6AC05000F72BF2 /* write_batch_with_index_internal.cc */; }; - 62297D561B6AC08B00F72BF2 /* event_logger_helpers.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62297D541B6AC08B00F72BF2 /* event_logger_helpers.cc */; }; 62297D571B6AC08B00F72BF2 /* event_logger_helpers.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62297D541B6AC08B00F72BF2 /* event_logger_helpers.cc */; }; - 62297D5A1B6AC8CE00F72BF2 /* build_version.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62297D591B6AC8CE00F72BF2 /* build_version.cc */; }; 62297D5B1B6AC8CE00F72BF2 /* build_version.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62297D591B6AC8CE00F72BF2 /* build_version.cc */; }; - 622A9B5B1B7981B60012A976 /* RocksDBProperties.mm in Sources */ = {isa = PBXBuildFile; fileRef = 625F8F1B1A59C3EB007796BA /* RocksDBProperties.mm */; }; - 622DB8661A7EA1D40026C73F /* memenv.cc in Sources */ = {isa = PBXBuildFile; fileRef = 622DB8651A7EA1CB0026C73F /* memenv.cc */; }; 622DB8671A7EA1D50026C73F /* memenv.cc in Sources */ = {isa = PBXBuildFile; fileRef = 622DB8651A7EA1CB0026C73F /* memenv.cc */; }; - 622DB8691A7EA2300026C73F /* thread_status_updater_debug.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62451ACC1A4BC85400AF11C8 /* thread_status_updater_debug.cc */; }; 622DB86A1A7EA2310026C73F /* thread_status_updater_debug.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62451ACC1A4BC85400AF11C8 /* thread_status_updater_debug.cc */; }; - 6231475B1A5AE18A0019D14A /* RocksDBEnv.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6231475A1A5AE18A0019D14A /* RocksDBEnv.mm */; }; 6231475C1A5AE18A0019D14A /* RocksDBEnv.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6231475A1A5AE18A0019D14A /* RocksDBEnv.mm */; }; - 6231475F1A5AE3E30019D14A /* RocksDBThreadStatus.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6231475E1A5AE3E30019D14A /* RocksDBThreadStatus.mm */; }; - 623224AC1A2116A400FB6625 /* RocksDBComparator.mm in Sources */ = {isa = PBXBuildFile; fileRef = 623224AB1A2116A400FB6625 /* RocksDBComparator.mm */; }; - 6232B7351A1E80F900B14535 /* RocksDBWriteOptions.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6232B7341A1E80F900B14535 /* RocksDBWriteOptions.mm */; }; - 6232B7381A1E860700B14535 /* RocksDBReadOptions.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6232B7371A1E860700B14535 /* RocksDBReadOptions.mm */; }; - 623533A01A47722900D5CD14 /* memtable_allocator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 6235339E1A47722900D5CD14 /* memtable_allocator.cc */; }; - 6236E2571A4DD25000A81ED6 /* RocksDBPrefixExtractor.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6236E2561A4DD25000A81ED6 /* RocksDBPrefixExtractor.mm */; }; - 6236E25A1A4DD71600A81ED6 /* RocksDBCallbackSliceTransform.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6236E2581A4DD71600A81ED6 /* RocksDBCallbackSliceTransform.cpp */; }; 6236E25C1A4E19A300A81ED6 /* RocksDBPrefixExtractorTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6236E25B1A4E19A300A81ED6 /* RocksDBPrefixExtractorTests.mm */; }; - 62376BBF1A20EDF000C85DFB /* RocksDBCallbackComparator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 62376BBD1A20EDF000C85DFB /* RocksDBCallbackComparator.cpp */; }; 62385EB41A2FCFB100493F18 /* RocksDBIteratorTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62385EB31A2FCFB100493F18 /* RocksDBIteratorTests.mm */; }; 62385EB61A2FD05500493F18 /* RocksDBComparatorTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62385EB51A2FD05500493F18 /* RocksDBComparatorTests.mm */; }; 623DC2561A335BAF00B61B18 /* RocksDBSnapshotTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 623DC2551A335BAF00B61B18 /* RocksDBSnapshotTests.mm */; }; - 623FE7501A2D2ED500E68421 /* RocksDBWriteBatch.mm in Sources */ = {isa = PBXBuildFile; fileRef = 623FE74F1A2D2ED500E68421 /* RocksDBWriteBatch.mm */; }; - 62451ACA1A4BAEC000AF11C8 /* RocksDBTypes.m in Sources */ = {isa = PBXBuildFile; fileRef = 62451AC91A4BAEC000AF11C8 /* RocksDBTypes.m */; }; - 62451AD21A4BC85400AF11C8 /* thread_status_updater.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62451ACD1A4BC85400AF11C8 /* thread_status_updater.cc */; }; - 62451AD31A4BC85400AF11C8 /* thread_status_util.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62451ACF1A4BC85400AF11C8 /* thread_status_util.cc */; }; + 624203CA1BED64F70043DD6F /* ObjectiveRocks.h in Headers */ = {isa = PBXBuildFile; fileRef = 62AEF9B81A1D5CF000E63E89 /* ObjectiveRocks.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 624203CB1BED64F70043DD6F /* RocksDB.h in Headers */ = {isa = PBXBuildFile; fileRef = 6299F80C1A17B28200123F56 /* RocksDB.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 624203CC1BED64F70043DD6F /* RocksDBProperties.h in Headers */ = {isa = PBXBuildFile; fileRef = 625F8F1A1A59C3EB007796BA /* RocksDBProperties.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 624203CD1BED64F70043DD6F /* RocksDBTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 62451AC81A4BAEC000AF11C8 /* RocksDBTypes.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 624203CE1BED64F70043DD6F /* RocksDBError.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B0CE81A1C104D0099C39B /* RocksDBError.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 624203CF1BED64F70043DD6F /* RocksDBColumnFamily.h in Headers */ = {isa = PBXBuildFile; fileRef = 620629681A510D36001DEDC4 /* RocksDBColumnFamily.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 624203D01BED64F70043DD6F /* RocksDBColumnFamilyDescriptor.h in Headers */ = {isa = PBXBuildFile; fileRef = 62074F2B1A520EC2002B1885 /* RocksDBColumnFamilyDescriptor.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 624203D11BED64F80043DD6F /* RocksDBColumnFamilyMetadata.h in Headers */ = {isa = PBXBuildFile; fileRef = 62A74F841A603DDB00BAD95B /* RocksDBColumnFamilyMetadata.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 624203D21BED64F80043DD6F /* RocksDBIterator.h in Headers */ = {isa = PBXBuildFile; fileRef = 62F8C6051B85632500E2577F /* RocksDBIterator.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 624203D31BED64F80043DD6F /* RocksDBPrefixExtractor.h in Headers */ = {isa = PBXBuildFile; fileRef = 6236E2551A4DD25000A81ED6 /* RocksDBPrefixExtractor.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 624203D41BED64F80043DD6F /* RocksDBWriteBatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 623FE74E1A2D2ED500E68421 /* RocksDBWriteBatch.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 624203D51BED64F80043DD6F /* RocksDBIndexedWriteBatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 62F8C5FD1B85386A00E2577F /* RocksDBIndexedWriteBatch.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 624203D61BED64F80043DD6F /* RocksDBWriteBatchIterator.h in Headers */ = {isa = PBXBuildFile; fileRef = 62F8C6011B853ABA00E2577F /* RocksDBWriteBatchIterator.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 624203D71BED64F80043DD6F /* RocksDBComparator.h in Headers */ = {isa = PBXBuildFile; fileRef = 623224AA1A2116A400FB6625 /* RocksDBComparator.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 624203D81BED64F80043DD6F /* RocksDBOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 62AEF9B91A1D5DA900E63E89 /* RocksDBOptions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 624203D91BED64F80043DD6F /* RocksDBEncodingOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 620629611A50ECCA001DEDC4 /* RocksDBEncodingOptions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 624203DA1BED64F80043DD6F /* RocksDBDatabaseOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 620629641A510056001DEDC4 /* RocksDBDatabaseOptions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 624203DB1BED64F80043DD6F /* RocksDBColumnFamilyOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 6206295E1A509DF1001DEDC4 /* RocksDBColumnFamilyOptions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 624203DC1BED64F80043DD6F /* RocksDBWriteOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 6232B7331A1E80F900B14535 /* RocksDBWriteOptions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 624203DD1BED64F80043DD6F /* RocksDBReadOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 6232B7361A1E860700B14535 /* RocksDBReadOptions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 624203DE1BED64F80043DD6F /* RocksDBEnv.h in Headers */ = {isa = PBXBuildFile; fileRef = 623147591A5AE18A0019D14A /* RocksDBEnv.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 624203DF1BED64F80043DD6F /* RocksDBThreadStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 6231475D1A5AE3E30019D14A /* RocksDBThreadStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 624203E01BED64F80043DD6F /* RocksDBTableFactory.h in Headers */ = {isa = PBXBuildFile; fileRef = 62F3ED591A574F7500EBFEBF /* RocksDBTableFactory.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 624203E11BED64F80043DD6F /* RocksDBBlockBasedTableOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 62F3ED4F1A57175F00EBFEBF /* RocksDBBlockBasedTableOptions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 624203E21BED64F90043DD6F /* RocksDBPlainTableOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 625F8F2F1A59E22E007796BA /* RocksDBPlainTableOptions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 624203E31BED64F90043DD6F /* RocksDBCuckooTableOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 625F8F331A59E648007796BA /* RocksDBCuckooTableOptions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 624203E41BED64F90043DD6F /* RocksDBCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 62F3ED531A57212800EBFEBF /* RocksDBCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 624203E51BED64F90043DD6F /* RocksDBFilterPolicy.h in Headers */ = {isa = PBXBuildFile; fileRef = 62F3ED561A5727A300EBFEBF /* RocksDBFilterPolicy.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 624203E61BED64F90043DD6F /* RocksDBMemTableRepFactory.h in Headers */ = {isa = PBXBuildFile; fileRef = 625F8F271A59D7B1007796BA /* RocksDBMemTableRepFactory.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 624203E71BED64F90043DD6F /* RocksDBSnapshot.h in Headers */ = {isa = PBXBuildFile; fileRef = 620494851A3284A800A0E950 /* RocksDBSnapshot.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 624203E81BED64F90043DD6F /* RocksDBSnapshotUnavailable.h in Headers */ = {isa = PBXBuildFile; fileRef = 628C51C71A3BD08500B96F8F /* RocksDBSnapshotUnavailable.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 624203E91BED64F90043DD6F /* RocksDBCheckpoint.h in Headers */ = {isa = PBXBuildFile; fileRef = 625F8F211A59CF82007796BA /* RocksDBCheckpoint.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 624203EA1BED64F90043DD6F /* RocksDBMergeOperator.h in Headers */ = {isa = PBXBuildFile; fileRef = 62EEC4B51A34FEE100624DA2 /* RocksDBMergeOperator.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 624203EB1BED64F90043DD6F /* RocksDBStatistics.h in Headers */ = {isa = PBXBuildFile; fileRef = 62A8B0631A58DD7D0069B4C8 /* RocksDBStatistics.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 624203EC1BED64FA0043DD6F /* RocksDBStatisticsHistogram.h in Headers */ = {isa = PBXBuildFile; fileRef = 62A8B0671A58E4B60069B4C8 /* RocksDBStatisticsHistogram.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 624203ED1BED64FA0043DD6F /* RocksDBBackupEngine.h in Headers */ = {isa = PBXBuildFile; fileRef = 621CD71A1A4FB24700853E16 /* RocksDBBackupEngine.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 624203EE1BED64FA0043DD6F /* RocksDBBackupInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 62A8B05F1A58CC400069B4C8 /* RocksDBBackupInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 624203EF1BED650D0043DD6F /* RocksDB+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 6221B78A1A62970800D28BF5 /* RocksDB+Private.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 624203F01BED650D0043DD6F /* RocksDBOptions+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 62F9D8A51B86AE8900C65860 /* RocksDBOptions+Private.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 624203F11BED650D0043DD6F /* RocksDBColumnFamily+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 6221B78E1A62973500D28BF5 /* RocksDBColumnFamily+Private.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 624203F21BED650E0043DD6F /* RocksDBColumnFamilyMetaData+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 6221B7921A62976F00D28BF5 /* RocksDBColumnFamilyMetaData+Private.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 624203F31BED650E0043DD6F /* RocksDBIterator+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 6221B7961A6298AD00D28BF5 /* RocksDBIterator+Private.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 624203F41BED650E0043DD6F /* RocksDBWriteBatch+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 6221B79A1A6298F800D28BF5 /* RocksDBWriteBatch+Private.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 624203F51BED650E0043DD6F /* RocksDBWriteBatchIterator+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 62F9D8A11B86A74900C65860 /* RocksDBWriteBatchIterator+Private.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 624203F61BED650E0043DD6F /* RocksDBSnapshot+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 6221B79E1A629A4F00D28BF5 /* RocksDBSnapshot+Private.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 624203F71BED650E0043DD6F /* RocksDBCallbackComparator.h in Headers */ = {isa = PBXBuildFile; fileRef = 62376BBE1A20EDF000C85DFB /* RocksDBCallbackComparator.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 624203F81BED650E0043DD6F /* RocksDBCallbackAssociativeMergeOperator.h in Headers */ = {isa = PBXBuildFile; fileRef = 62EEC4B91A34FF0600624DA2 /* RocksDBCallbackAssociativeMergeOperator.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 624203F91BED650F0043DD6F /* RocksDBCallbackMergeOperator.h in Headers */ = {isa = PBXBuildFile; fileRef = 6214FD081A3F698300B92E5C /* RocksDBCallbackMergeOperator.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 624203FA1BED650F0043DD6F /* RocksDBCallbackSliceTransform.h in Headers */ = {isa = PBXBuildFile; fileRef = 6236E2591A4DD71600A81ED6 /* RocksDBCallbackSliceTransform.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 624203FB1BED650F0043DD6F /* RocksDBSlice.h in Headers */ = {isa = PBXBuildFile; fileRef = 623D3C201A37C4FF00389207 /* RocksDBSlice.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 624203FC1BED65250043DD6F /* RocksDB.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6299F80E1A17B28200123F56 /* RocksDB.mm */; }; + 624203FD1BED65250043DD6F /* RocksDBProperties.mm in Sources */ = {isa = PBXBuildFile; fileRef = 625F8F1B1A59C3EB007796BA /* RocksDBProperties.mm */; }; + 624203FE1BED65250043DD6F /* RocksDBError.mm in Sources */ = {isa = PBXBuildFile; fileRef = 628B0CE91A1C104D0099C39B /* RocksDBError.mm */; }; + 624203FF1BED65250043DD6F /* RocksDBColumnFamily.mm in Sources */ = {isa = PBXBuildFile; fileRef = 620629691A510D36001DEDC4 /* RocksDBColumnFamily.mm */; }; + 624204001BED65250043DD6F /* RocksDBColumnFamilyDescriptor.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62074F2C1A520EC2002B1885 /* RocksDBColumnFamilyDescriptor.mm */; }; + 624204011BED65250043DD6F /* RocksDBColumnFamilyMetadata.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62A74F851A603DDB00BAD95B /* RocksDBColumnFamilyMetadata.mm */; }; + 624204021BED65250043DD6F /* RocksDBIterator.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62F8C6061B85632500E2577F /* RocksDBIterator.mm */; }; + 624204031BED65250043DD6F /* RocksDBPrefixExtractor.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6236E2561A4DD25000A81ED6 /* RocksDBPrefixExtractor.mm */; }; + 624204041BED65250043DD6F /* RocksDBWriteBatch.mm in Sources */ = {isa = PBXBuildFile; fileRef = 623FE74F1A2D2ED500E68421 /* RocksDBWriteBatch.mm */; }; + 624204051BED65250043DD6F /* RocksDBIndexedWriteBatch.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62F8C5FE1B85386A00E2577F /* RocksDBIndexedWriteBatch.mm */; }; + 624204061BED65250043DD6F /* RocksDBWriteBatchIterator.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62F8C6021B853ABA00E2577F /* RocksDBWriteBatchIterator.mm */; }; + 624204071BED65250043DD6F /* RocksDBComparator.mm in Sources */ = {isa = PBXBuildFile; fileRef = 623224AB1A2116A400FB6625 /* RocksDBComparator.mm */; }; + 624204081BED65250043DD6F /* RocksDBOptions.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62AEF9BA1A1D5DA900E63E89 /* RocksDBOptions.mm */; }; + 624204091BED65250043DD6F /* RocksDBEncodingOptions.mm in Sources */ = {isa = PBXBuildFile; fileRef = 620629621A50ECCA001DEDC4 /* RocksDBEncodingOptions.mm */; }; + 6242040A1BED65250043DD6F /* RocksDBDatabaseOptions.mm in Sources */ = {isa = PBXBuildFile; fileRef = 620629651A510056001DEDC4 /* RocksDBDatabaseOptions.mm */; }; + 6242040B1BED65250043DD6F /* RocksDBColumnFamilyOptions.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6206295F1A509DF1001DEDC4 /* RocksDBColumnFamilyOptions.mm */; }; + 6242040C1BED65250043DD6F /* RocksDBWriteOptions.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6232B7341A1E80F900B14535 /* RocksDBWriteOptions.mm */; }; + 6242040D1BED65250043DD6F /* RocksDBReadOptions.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6232B7371A1E860700B14535 /* RocksDBReadOptions.mm */; }; + 6242040E1BED65250043DD6F /* RocksDBEnv.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6231475A1A5AE18A0019D14A /* RocksDBEnv.mm */; }; + 6242040F1BED65250043DD6F /* RocksDBThreadStatus.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6231475E1A5AE3E30019D14A /* RocksDBThreadStatus.mm */; }; + 624204101BED65250043DD6F /* RocksDBTableFactory.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62F3ED5A1A574F7500EBFEBF /* RocksDBTableFactory.mm */; }; + 624204111BED65250043DD6F /* RocksDBBlockBasedTableOptions.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62F3ED501A57175F00EBFEBF /* RocksDBBlockBasedTableOptions.mm */; }; + 624204121BED65250043DD6F /* RocksDBPlainTableOptions.mm in Sources */ = {isa = PBXBuildFile; fileRef = 625F8F301A59E22E007796BA /* RocksDBPlainTableOptions.mm */; }; + 624204131BED65250043DD6F /* RocksDBCuckooTableOptions.mm in Sources */ = {isa = PBXBuildFile; fileRef = 625F8F341A59E648007796BA /* RocksDBCuckooTableOptions.mm */; }; + 624204141BED65250043DD6F /* RocksDBCache.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62F3ED541A57212800EBFEBF /* RocksDBCache.mm */; }; + 624204151BED65250043DD6F /* RocksDBFilterPolicy.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62F3ED571A5727A300EBFEBF /* RocksDBFilterPolicy.mm */; }; + 624204161BED65250043DD6F /* RocksDBMemTableRepFactory.mm in Sources */ = {isa = PBXBuildFile; fileRef = 625F8F281A59D7B1007796BA /* RocksDBMemTableRepFactory.mm */; }; + 624204171BED65250043DD6F /* RocksDBSnapshot.mm in Sources */ = {isa = PBXBuildFile; fileRef = 620494861A3284A800A0E950 /* RocksDBSnapshot.mm */; }; + 624204181BED65250043DD6F /* RocksDBCheckpoint.mm in Sources */ = {isa = PBXBuildFile; fileRef = 625F8F221A59CF82007796BA /* RocksDBCheckpoint.mm */; }; + 624204191BED65250043DD6F /* RocksDBMergeOperator.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62EEC4B61A34FEE100624DA2 /* RocksDBMergeOperator.mm */; }; + 6242041A1BED65250043DD6F /* RocksDBStatistics.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62A8B0641A58DD7D0069B4C8 /* RocksDBStatistics.mm */; }; + 6242041B1BED65250043DD6F /* RocksDBStatisticsHistogram.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62A8B0681A58E4B60069B4C8 /* RocksDBStatisticsHistogram.mm */; }; + 6242041C1BED65250043DD6F /* RocksDBBackupEngine.mm in Sources */ = {isa = PBXBuildFile; fileRef = 621CD71B1A4FB24700853E16 /* RocksDBBackupEngine.mm */; }; + 6242041D1BED65250043DD6F /* RocksDBBackupInfo.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62A8B0601A58CC400069B4C8 /* RocksDBBackupInfo.mm */; }; + 6242042C1BED652D0043DD6F /* RocksDBTypes.m in Sources */ = {isa = PBXBuildFile; fileRef = 62451AC91A4BAEC000AF11C8 /* RocksDBTypes.m */; }; + 6242042D1BED65540043DD6F /* RocksDBCallbackComparator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 62376BBD1A20EDF000C85DFB /* RocksDBCallbackComparator.cpp */; }; + 6242042E1BED65540043DD6F /* RocksDBCallbackAssociativeMergeOperator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 62EEC4B81A34FF0600624DA2 /* RocksDBCallbackAssociativeMergeOperator.cpp */; }; + 6242042F1BED65540043DD6F /* RocksDBCallbackMergeOperator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6214FD071A3F698300B92E5C /* RocksDBCallbackMergeOperator.cpp */; }; + 624204301BED65540043DD6F /* RocksDBCallbackSliceTransform.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6236E2581A4DD71600A81ED6 /* RocksDBCallbackSliceTransform.cpp */; }; + 624204311BED66850043DD6F /* builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29141A1ABA1F00486C31 /* builder.cc */; }; + 624204321BED66850043DD6F /* c.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29171A1ABA1F00486C31 /* c.cc */; }; + 624204331BED66850043DD6F /* column_family.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE291A1A1ABA1F00486C31 /* column_family.cc */; }; + 624204341BED66850043DD6F /* compaction.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE291E1A1ABA1F00486C31 /* compaction.cc */; }; + 624204351BED66850043DD6F /* compaction_job.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29211A1ABA1F00486C31 /* compaction_job.cc */; }; + 624204371BED66850043DD6F /* compaction_picker.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29251A1ABA1F00486C31 /* compaction_picker.cc */; }; + 6242043A1BED66850043DD6F /* db_filesnapshot.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE292D1A1ABA1F00486C31 /* db_filesnapshot.cc */; }; + 6242043B1BED66850043DD6F /* db_impl_experimental.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C225F1AF01C8E006DC8FA /* db_impl_experimental.cc */; }; + 6242043C1BED66850043DD6F /* db_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE292F1A1ABA1F00486C31 /* db_impl.cc */; }; + 6242043D1BED66850043DD6F /* db_impl_debug.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29321A1ABA1F00486C31 /* db_impl_debug.cc */; }; + 6242043E1BED66850043DD6F /* db_impl_readonly.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29341A1ABA1F00486C31 /* db_impl_readonly.cc */; }; + 6242043F1BED66850043DD6F /* db_iter.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29371A1ABA1F00486C31 /* db_iter.cc */; }; + 624204401BED66850043DD6F /* dbformat.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE293C1A1ABA1F00486C31 /* dbformat.cc */; }; + 624204411BED66850043DD6F /* event_logger_helpers.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62297D541B6AC08B00F72BF2 /* event_logger_helpers.cc */; }; + 624204421BED66850043DD6F /* experimental.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C22621AF01CA7006DC8FA /* experimental.cc */; }; + 624204431BED66850043DD6F /* file_indexer.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29411A1ABA1F00486C31 /* file_indexer.cc */; }; + 624204441BED66850043DD6F /* filename.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29451A1ABA1F00486C31 /* filename.cc */; }; + 624204451BED66850043DD6F /* flush_job.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29491A1ABA1F00486C31 /* flush_job.cc */; }; + 624204461BED66850043DD6F /* flush_scheduler.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE294D1A1ABA1F00486C31 /* flush_scheduler.cc */; }; + 624204471BED66850043DD6F /* forward_iterator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29501A1ABA1F00486C31 /* forward_iterator.cc */; }; + 624204481BED66850043DD6F /* internal_stats.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29531A1ABA1F00486C31 /* internal_stats.cc */; }; + 624204491BED66850043DD6F /* log_reader.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE295A1A1ABA1F00486C31 /* log_reader.cc */; }; + 6242044A1BED66850043DD6F /* log_writer.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE295E1A1ABA1F00486C31 /* log_writer.cc */; }; + 6242044B1BED66850043DD6F /* managed_iterator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C22261AF0161E006DC8FA /* managed_iterator.cc */; }; + 6242044C1BED66850043DD6F /* memtable.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29611A1ABA1F00486C31 /* memtable.cc */; }; + 6242044D1BED66850043DD6F /* memtable_allocator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 6235339E1A47722900D5CD14 /* memtable_allocator.cc */; }; + 6242044E1BED66850043DD6F /* memtable_list.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29641A1ABA1F00486C31 /* memtable_list.cc */; }; + 624204501BED66850043DD6F /* merge_helper.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29681A1ABA1F00486C31 /* merge_helper.cc */; }; + 624204511BED66850043DD6F /* merge_operator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE296B1A1ABA1F00486C31 /* merge_operator.cc */; }; + 624204521BED66850043DD6F /* repair.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29711A1ABA1F00486C31 /* repair.cc */; }; + 624204531BED66850043DD6F /* slice.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C224A1AF01880006DC8FA /* slice.cc */; }; + 624204541BED66850043DD6F /* table_cache.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29761A1ABA1F00486C31 /* table_cache.cc */; }; + 624204551BED66850043DD6F /* table_properties_collector.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29791A1ABA1F00486C31 /* table_properties_collector.cc */; }; + 624204571BED66850043DD6F /* transaction_log_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE297D1A1ABA1F00486C31 /* transaction_log_impl.cc */; }; + 624204581BED66850043DD6F /* version_builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29801A1ABA1F00486C31 /* version_builder.cc */; }; + 624204591BED66850043DD6F /* version_edit.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29841A1ABA1F00486C31 /* version_edit.cc */; }; + 6242045A1BED66850043DD6F /* version_set.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29881A1ABA1F00486C31 /* version_set.cc */; }; + 6242045B1BED66850043DD6F /* wal_manager.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE298C1A1ABA1F00486C31 /* wal_manager.cc */; }; + 6242045C1BED66850043DD6F /* write_batch_base.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C224D1AF0188B006DC8FA /* write_batch_base.cc */; }; + 6242045D1BED66850043DD6F /* write_batch.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29901A1ABA1F00486C31 /* write_batch.cc */; }; + 6242045E1BED66850043DD6F /* write_controller.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29941A1ABA1F00486C31 /* write_controller.cc */; }; + 6242045F1BED66850043DD6F /* write_thread.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29981A1ABA1F00486C31 /* write_thread.cc */; }; + 624204601BED66850043DD6F /* port_posix.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2A7E1A1ABA1F00486C31 /* port_posix.cc */; }; + 624204611BED66850043DD6F /* stack_trace.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2A821A1ABA1F00486C31 /* stack_trace.cc */; }; + 624204621BED66850043DD6F /* adaptive_table_factory.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2A8A1A1ABA1F00486C31 /* adaptive_table_factory.cc */; }; + 624204631BED66850043DD6F /* block.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2A8D1A1ABA1F00486C31 /* block.cc */; }; + 624204641BED66850043DD6F /* block_based_filter_block.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2A901A1ABA1F00486C31 /* block_based_filter_block.cc */; }; + 624204651BED66850043DD6F /* block_based_table_builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2A941A1ABA1F00486C31 /* block_based_table_builder.cc */; }; + 624204661BED66850043DD6F /* block_based_table_factory.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2A971A1ABA1F00486C31 /* block_based_table_factory.cc */; }; + 624204671BED66850043DD6F /* block_based_table_reader.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2A9A1A1ABA1F00486C31 /* block_based_table_reader.cc */; }; + 624204681BED66850043DD6F /* block_builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2A9D1A1ABA1F00486C31 /* block_builder.cc */; }; + 624204691BED66850043DD6F /* block_hash_index.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AA01A1ABA1F00486C31 /* block_hash_index.cc */; }; + 6242046A1BED66850043DD6F /* block_prefix_index.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AA41A1ABA1F00486C31 /* block_prefix_index.cc */; }; + 6242046B1BED66860043DD6F /* bloom_block.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AA81A1ABA1F00486C31 /* bloom_block.cc */; }; + 6242046C1BED66860043DD6F /* cuckoo_table_builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AAB1A1ABA1F00486C31 /* cuckoo_table_builder.cc */; }; + 6242046D1BED66860043DD6F /* cuckoo_table_factory.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AAF1A1ABA1F00486C31 /* cuckoo_table_factory.cc */; }; + 6242046E1BED66860043DD6F /* cuckoo_table_reader.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AB21A1ABA1F00486C31 /* cuckoo_table_reader.cc */; }; + 6242046F1BED66860043DD6F /* flush_block_policy.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AB71A1ABA1F00486C31 /* flush_block_policy.cc */; }; + 624204701BED66860043DD6F /* format.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AB91A1ABA1F00486C31 /* format.cc */; }; + 624204711BED66860043DD6F /* full_filter_block.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2ABC1A1ABA1F00486C31 /* full_filter_block.cc */; }; + 624204721BED66860043DD6F /* get_context.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AC01A1ABA1F00486C31 /* get_context.cc */; }; + 624204731BED66860043DD6F /* iterator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AC41A1ABA1F00486C31 /* iterator.cc */; }; + 624204741BED66860043DD6F /* merger.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AC71A1ABA1F00486C31 /* merger.cc */; }; + 624204751BED66860043DD6F /* meta_blocks.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2ACB1A1ABA1F00486C31 /* meta_blocks.cc */; }; + 624204771BED66860043DD6F /* plain_table_builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AD01A1ABA1F00486C31 /* plain_table_builder.cc */; }; + 624204781BED66860043DD6F /* plain_table_factory.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AD31A1ABA1F00486C31 /* plain_table_factory.cc */; }; + 624204791BED66860043DD6F /* plain_table_index.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AD61A1ABA1F00486C31 /* plain_table_index.cc */; }; + 6242047A1BED66860043DD6F /* plain_table_key_coding.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AD91A1ABA1F00486C31 /* plain_table_key_coding.cc */; }; + 6242047B1BED66860043DD6F /* plain_table_reader.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2ADC1A1ABA1F00486C31 /* plain_table_reader.cc */; }; + 6242047C1BED66860043DD6F /* table_properties.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AE01A1ABA1F00486C31 /* table_properties.cc */; }; + 6242047E1BED66860043DD6F /* two_level_iterator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AE61A1ABA1F00486C31 /* two_level_iterator.cc */; }; + 6242047F1BED66860043DD6F /* arena.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B061A1ABA2000486C31 /* arena.cc */; }; + 624204801BED66860043DD6F /* auto_roll_logger.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B0A1A1ABA2000486C31 /* auto_roll_logger.cc */; }; + 624204811BED66860043DD6F /* bloom.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B171A1ABA2000486C31 /* bloom.cc */; }; + 624204821BED66860043DD6F /* build_version.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62297D591B6AC8CE00F72BF2 /* build_version.cc */; }; + 624204831BED66860043DD6F /* cache.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B1D1A1ABA2000486C31 /* cache.cc */; }; + 624204851BED66860043DD6F /* coding.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B211A1ABA2000486C31 /* coding.cc */; }; + 624204861BED66860043DD6F /* comparator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B251A1ABA2000486C31 /* comparator.cc */; }; + 624204871BED66860043DD6F /* crc32c.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B271A1ABA2000486C31 /* crc32c.cc */; }; + 624204881BED66860043DD6F /* db_info_dumper.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B2B1A1ABA2000486C31 /* db_info_dumper.cc */; }; + 624204891BED66860043DD6F /* dynamic_bloom.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B2E1A1ABA2000486C31 /* dynamic_bloom.cc */; }; + 6242048A1BED66860043DD6F /* env.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B321A1ABA2000486C31 /* env.cc */; }; + 6242048B1BED66860043DD6F /* env_hdfs.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B341A1ABA2000486C31 /* env_hdfs.cc */; }; + 6242048C1BED66860043DD6F /* env_posix.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B361A1ABA2000486C31 /* env_posix.cc */; }; + 6242048D1BED66860043DD6F /* event_logger.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C223D1AF017B6006DC8FA /* event_logger.cc */; }; + 6242048E1BED66860043DD6F /* file_util.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B391A1ABA2000486C31 /* file_util.cc */; }; + 6242048F1BED66860043DD6F /* filter_policy.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B3D1A1ABA2000486C31 /* filter_policy.cc */; }; + 624204901BED66860043DD6F /* hash.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B3F1A1ABA2000486C31 /* hash.cc */; }; + 624204911BED66860043DD6F /* hash_cuckoo_rep.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B421A1ABA2000486C31 /* hash_cuckoo_rep.cc */; }; + 624204921BED66860043DD6F /* hash_linklist_rep.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B451A1ABA2000486C31 /* hash_linklist_rep.cc */; }; + 624204931BED66860043DD6F /* hash_skiplist_rep.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B481A1ABA2000486C31 /* hash_skiplist_rep.cc */; }; + 624204941BED66860043DD6F /* histogram.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B4B1A1ABA2000486C31 /* histogram.cc */; }; + 624204951BED66860043DD6F /* instrumented_mutex.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C22691AF02B1B006DC8FA /* instrumented_mutex.cc */; }; + 624204961BED66860043DD6F /* iostats_context.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B4F1A1ABA2000486C31 /* iostats_context.cc */; }; + 624204991BED66860043DD6F /* log_buffer.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B581A1ABA2000486C31 /* log_buffer.cc */; }; + 6242049B1BED66860043DD6F /* logging.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B5C1A1ABA2000486C31 /* logging.cc */; }; + 6242049D1BED66860043DD6F /* memenv.cc in Sources */ = {isa = PBXBuildFile; fileRef = 622DB8651A7EA1CB0026C73F /* memenv.cc */; }; + 6242049F1BED66860043DD6F /* murmurhash.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B631A1ABA2000486C31 /* murmurhash.cc */; }; + 624204A01BED66860043DD6F /* mutable_cf_options.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B661A1ABA2000486C31 /* mutable_cf_options.cc */; }; + 624204A11BED66860043DD6F /* options.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B6A1A1ABA2000486C31 /* options.cc */; }; + 624204A21BED66860043DD6F /* options_builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B6C1A1ABA2000486C31 /* options_builder.cc */; }; + 624204A31BED66860043DD6F /* options_helper.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B6E1A1ABA2000486C31 /* options_helper.cc */; }; + 624204A41BED66860043DD6F /* perf_context.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B721A1ABA2000486C31 /* perf_context.cc */; }; + 624204A51BED66860043DD6F /* rate_limiter.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B771A1ABA2000486C31 /* rate_limiter.cc */; }; + 624204A61BED66860043DD6F /* skiplistrep.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B7D1A1ABA2000486C31 /* skiplistrep.cc */; }; + 624204A71BED66860043DD6F /* slice.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B7F1A1ABA2000486C31 /* slice.cc */; }; + 624204A91BED66860043DD6F /* statistics.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B831A1ABA2000486C31 /* statistics.cc */; }; + 624204AA1BED66860043DD6F /* status.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B861A1ABA2000486C31 /* status.cc */; }; + 624204AB1BED66860043DD6F /* string_util.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B8A1A1ABA2000486C31 /* string_util.cc */; }; + 624204AD1BED66860043DD6F /* sync_point.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B8D1A1ABA2000486C31 /* sync_point.cc */; }; + 624204AF1BED66860043DD6F /* testutil.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B921A1ABA2000486C31 /* testutil.cc */; }; + 624204B01BED66860043DD6F /* thread_local.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B941A1ABA2000486C31 /* thread_local.cc */; }; + 624204B11BED66870043DD6F /* thread_status_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C221B1AF014E0006DC8FA /* thread_status_impl.cc */; }; + 624204B21BED66870043DD6F /* thread_status_updater_debug.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62451ACC1A4BC85400AF11C8 /* thread_status_updater_debug.cc */; }; + 624204B31BED66870043DD6F /* thread_status_updater.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62451ACD1A4BC85400AF11C8 /* thread_status_updater.cc */; }; + 624204B41BED66870043DD6F /* thread_status_util_debug.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C22231AF015E4006DC8FA /* thread_status_util_debug.cc */; }; + 624204B51BED66870043DD6F /* thread_status_util.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62451ACF1A4BC85400AF11C8 /* thread_status_util.cc */; }; + 624204B61BED66870043DD6F /* vectorrep.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B981A1ABA2000486C31 /* vectorrep.cc */; }; + 624204B71BED66870043DD6F /* xfunc.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C22171AF01485006DC8FA /* xfunc.cc */; }; + 624204B81BED66870043DD6F /* xxhash.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B9A1A1ABA2000486C31 /* xxhash.cc */; }; + 624204B91BED66870043DD6F /* backupable_db.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B9F1A1ABA2000486C31 /* backupable_db.cc */; }; + 624204BA1BED66870043DD6F /* checkpoint.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62269EDB1A1FF27A005A58D3 /* checkpoint.cc */; }; + 624204BB1BED66870043DD6F /* compacted_db_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BA31A1ABA2000486C31 /* compacted_db_impl.cc */; }; + 624204BC1BED66870043DD6F /* convenience.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C22381AF0174B006DC8FA /* convenience.cc */; }; + 624204BD1BED66870043DD6F /* document_db.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BA71A1ABA2000486C31 /* document_db.cc */; }; + 624204BE1BED66870043DD6F /* json_document_builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C22331AF016EE006DC8FA /* json_document_builder.cc */; }; + 624204BF1BED66870043DD6F /* json_document.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BAA1A1ABA2000486C31 /* json_document.cc */; }; + 624204C01BED66870043DD6F /* flashcache.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C22551AF0195F006DC8FA /* flashcache.cc */; }; + 624204C11BED66870043DD6F /* geodb_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BAE1A1ABA2000486C31 /* geodb_impl.cc */; }; + 624204C21BED66870043DD6F /* leveldb_options.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62269EDF1A1FF2DC005A58D3 /* leveldb_options.cc */; }; + 624204C31BED66870043DD6F /* put.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BB31A1ABA2000486C31 /* put.cc */; }; + 624204C41BED66870043DD6F /* stringappend.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BB61A1ABA2000486C31 /* stringappend.cc */; }; + 624204C51BED66870043DD6F /* stringappend2.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BB91A1ABA2000486C31 /* stringappend2.cc */; }; + 624204C61BED66870043DD6F /* uint64add.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BBD1A1ABA2000486C31 /* uint64add.cc */; }; + 624204C71BED66870043DD6F /* redis_lists.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BC41A1ABA2000486C31 /* redis_lists.cc */; }; + 624204C81BED66870043DD6F /* spatial_db.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BC91A1ABA2000486C31 /* spatial_db.cc */; }; + 624204C91BED66870043DD6F /* db_ttl_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BCE1A1ABA2000486C31 /* db_ttl_impl.cc */; }; + 624204CA1BED66870043DD6F /* write_batch_with_index_internal.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62297D501B6AC05000F72BF2 /* write_batch_with_index_internal.cc */; }; + 624204CB1BED66870043DD6F /* write_batch_with_index.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BD31A1ABA2000486C31 /* write_batch_with_index.cc */; }; + 624204CF1BED6B750043DD6F /* ObjectiveRocks.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 624203C01BED64410043DD6F /* ObjectiveRocks.framework */; }; 624566C81A51DA79009AC3FB /* RocksDBColumnFamilyTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 624566C71A51DA79009AC3FB /* RocksDBColumnFamilyTests.mm */; }; 62456CBB1A66FE0500329F11 /* RocksDBMergeOperatorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62456CBA1A66FE0500329F11 /* RocksDBMergeOperatorTests.swift */; }; 62456CBC1A66FE0500329F11 /* RocksDBMergeOperatorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62456CBA1A66FE0500329F11 /* RocksDBMergeOperatorTests.swift */; }; 6249A3CC1A4A43CA00949B07 /* RocksDBTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6249A3CB1A4A43CA00949B07 /* RocksDBTests.mm */; }; - 624C22181AF01485006DC8FA /* xfunc.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C22171AF01485006DC8FA /* xfunc.cc */; }; 624C22191AF01485006DC8FA /* xfunc.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C22171AF01485006DC8FA /* xfunc.cc */; }; - 624C221C1AF014E0006DC8FA /* thread_status_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C221B1AF014E0006DC8FA /* thread_status_impl.cc */; }; 624C221D1AF014E0006DC8FA /* thread_status_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C221B1AF014E0006DC8FA /* thread_status_impl.cc */; }; - 624C22241AF015E4006DC8FA /* thread_status_util_debug.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C22231AF015E4006DC8FA /* thread_status_util_debug.cc */; }; 624C22251AF015E4006DC8FA /* thread_status_util_debug.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C22231AF015E4006DC8FA /* thread_status_util_debug.cc */; }; - 624C22281AF0161E006DC8FA /* managed_iterator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C22261AF0161E006DC8FA /* managed_iterator.cc */; }; 624C22291AF0161E006DC8FA /* managed_iterator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C22261AF0161E006DC8FA /* managed_iterator.cc */; }; - 624C22341AF016EE006DC8FA /* json_document_builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C22331AF016EE006DC8FA /* json_document_builder.cc */; }; 624C22351AF016EE006DC8FA /* json_document_builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C22331AF016EE006DC8FA /* json_document_builder.cc */; }; - 624C22391AF0174B006DC8FA /* convenience.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C22381AF0174B006DC8FA /* convenience.cc */; }; 624C223A1AF0174B006DC8FA /* convenience.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C22381AF0174B006DC8FA /* convenience.cc */; }; - 624C22411AF017B6006DC8FA /* event_logger.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C223D1AF017B6006DC8FA /* event_logger.cc */; }; 624C22421AF017B6006DC8FA /* event_logger.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C223D1AF017B6006DC8FA /* event_logger.cc */; }; - 624C224B1AF01880006DC8FA /* slice.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C224A1AF01880006DC8FA /* slice.cc */; }; 624C224C1AF01880006DC8FA /* slice.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C224A1AF01880006DC8FA /* slice.cc */; }; - 624C224E1AF0188C006DC8FA /* write_batch_base.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C224D1AF0188B006DC8FA /* write_batch_base.cc */; }; 624C224F1AF0188C006DC8FA /* write_batch_base.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C224D1AF0188B006DC8FA /* write_batch_base.cc */; }; - 624C22571AF0195F006DC8FA /* flashcache.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C22551AF0195F006DC8FA /* flashcache.cc */; }; 624C22581AF0195F006DC8FA /* flashcache.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C22551AF0195F006DC8FA /* flashcache.cc */; }; - 624C22601AF01C8E006DC8FA /* db_impl_experimental.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C225F1AF01C8E006DC8FA /* db_impl_experimental.cc */; }; 624C22611AF01C8E006DC8FA /* db_impl_experimental.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C225F1AF01C8E006DC8FA /* db_impl_experimental.cc */; }; - 624C22631AF01CA7006DC8FA /* experimental.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C22621AF01CA7006DC8FA /* experimental.cc */; }; 624C22641AF01CA7006DC8FA /* experimental.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C22621AF01CA7006DC8FA /* experimental.cc */; }; - 624C226B1AF02B1B006DC8FA /* instrumented_mutex.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C22691AF02B1B006DC8FA /* instrumented_mutex.cc */; }; 624C226C1AF02B1B006DC8FA /* instrumented_mutex.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C22691AF02B1B006DC8FA /* instrumented_mutex.cc */; }; 6251A3731B783DA7009BABD5 /* RocksDBReadOnlyTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 6251A3721B783DA7009BABD5 /* RocksDBReadOnlyTests.m */; }; 6251A3751B783DBC009BABD5 /* RocksDBReadOnlyTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6251A3741B783DBC009BABD5 /* RocksDBReadOnlyTests.swift */; }; 625F8F1F1A59C9B3007796BA /* RocksDBPropertiesTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 625F8F1E1A59C9B3007796BA /* RocksDBPropertiesTests.mm */; }; - 625F8F231A59CF82007796BA /* RocksDBCheckpoint.mm in Sources */ = {isa = PBXBuildFile; fileRef = 625F8F221A59CF82007796BA /* RocksDBCheckpoint.mm */; }; 625F8F251A59D11D007796BA /* RocksDBCheckpointTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 625F8F241A59D11D007796BA /* RocksDBCheckpointTests.mm */; }; - 625F8F291A59D7B1007796BA /* RocksDBMemTableRepFactory.mm in Sources */ = {isa = PBXBuildFile; fileRef = 625F8F281A59D7B1007796BA /* RocksDBMemTableRepFactory.mm */; }; 625F8F2A1A59D7B1007796BA /* RocksDBMemTableRepFactory.mm in Sources */ = {isa = PBXBuildFile; fileRef = 625F8F281A59D7B1007796BA /* RocksDBMemTableRepFactory.mm */; }; 625F8F2B1A59DE25007796BA /* RocksDBStatistics.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62A8B0641A58DD7D0069B4C8 /* RocksDBStatistics.mm */; }; 625F8F2D1A59DEF2007796BA /* RocksDBStatisticsHistogram.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62A8B0681A58E4B60069B4C8 /* RocksDBStatisticsHistogram.mm */; }; - 625F8F311A59E22E007796BA /* RocksDBPlainTableOptions.mm in Sources */ = {isa = PBXBuildFile; fileRef = 625F8F301A59E22E007796BA /* RocksDBPlainTableOptions.mm */; }; - 625F8F351A59E648007796BA /* RocksDBCuckooTableOptions.mm in Sources */ = {isa = PBXBuildFile; fileRef = 625F8F341A59E648007796BA /* RocksDBCuckooTableOptions.mm */; }; - 625F8F531A5A2273007796BA /* RocksDB.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 6299F80C1A17B28200123F56 /* RocksDB.h */; }; - 625F8F541A5A2273007796BA /* RocksDBProperties.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 625F8F1A1A59C3EB007796BA /* RocksDBProperties.h */; }; - 625F8F551A5A2273007796BA /* RocksDBTypes.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 62451AC81A4BAEC000AF11C8 /* RocksDBTypes.h */; }; - 625F8F561A5A2273007796BA /* RocksDBError.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 628B0CE81A1C104D0099C39B /* RocksDBError.h */; }; - 625F8F571A5A2273007796BA /* RocksDBColumnFamily.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 620629681A510D36001DEDC4 /* RocksDBColumnFamily.h */; }; - 625F8F581A5A2273007796BA /* RocksDBColumnFamilyDescriptor.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 62074F2B1A520EC2002B1885 /* RocksDBColumnFamilyDescriptor.h */; }; - 625F8F5A1A5A2273007796BA /* RocksDBPrefixExtractor.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 6236E2551A4DD25000A81ED6 /* RocksDBPrefixExtractor.h */; }; - 625F8F5B1A5A2273007796BA /* RocksDBWriteBatch.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 623FE74E1A2D2ED500E68421 /* RocksDBWriteBatch.h */; }; - 625F8F5C1A5A2273007796BA /* RocksDBComparator.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 623224AA1A2116A400FB6625 /* RocksDBComparator.h */; }; - 625F8F5D1A5A2273007796BA /* RocksDBOptions.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 62AEF9B91A1D5DA900E63E89 /* RocksDBOptions.h */; }; - 625F8F5E1A5A2273007796BA /* RocksDBEncodingOptions.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 620629611A50ECCA001DEDC4 /* RocksDBEncodingOptions.h */; }; - 625F8F5F1A5A2273007796BA /* RocksDBDatabaseOptions.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 620629641A510056001DEDC4 /* RocksDBDatabaseOptions.h */; }; - 625F8F601A5A2273007796BA /* RocksDBColumnFamilyOptions.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 6206295E1A509DF1001DEDC4 /* RocksDBColumnFamilyOptions.h */; }; - 625F8F611A5A2273007796BA /* RocksDBWriteOptions.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 6232B7331A1E80F900B14535 /* RocksDBWriteOptions.h */; }; - 625F8F621A5A2273007796BA /* RocksDBReadOptions.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 6232B7361A1E860700B14535 /* RocksDBReadOptions.h */; }; - 625F8F631A5A2273007796BA /* RocksDBTableFactory.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 62F3ED591A574F7500EBFEBF /* RocksDBTableFactory.h */; }; - 625F8F641A5A2273007796BA /* RocksDBBlockBasedTableOptions.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 62F3ED4F1A57175F00EBFEBF /* RocksDBBlockBasedTableOptions.h */; }; - 625F8F651A5A2273007796BA /* RocksDBPlainTableOptions.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 625F8F2F1A59E22E007796BA /* RocksDBPlainTableOptions.h */; }; - 625F8F661A5A2273007796BA /* RocksDBCuckooTableOptions.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 625F8F331A59E648007796BA /* RocksDBCuckooTableOptions.h */; }; - 625F8F671A5A2273007796BA /* RocksDBCache.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 62F3ED531A57212800EBFEBF /* RocksDBCache.h */; }; - 625F8F681A5A2273007796BA /* RocksDBFilterPolicy.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 62F3ED561A5727A300EBFEBF /* RocksDBFilterPolicy.h */; }; - 625F8F691A5A2273007796BA /* RocksDBMemTableRepFactory.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 625F8F271A59D7B1007796BA /* RocksDBMemTableRepFactory.h */; }; - 625F8F6A1A5A2273007796BA /* RocksDBSnapshot.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 620494851A3284A800A0E950 /* RocksDBSnapshot.h */; }; - 625F8F6C1A5A2273007796BA /* RocksDBCheckpoint.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 625F8F211A59CF82007796BA /* RocksDBCheckpoint.h */; }; - 625F8F6D1A5A2273007796BA /* RocksDBMergeOperator.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 62EEC4B51A34FEE100624DA2 /* RocksDBMergeOperator.h */; }; - 625F8F6E1A5A2273007796BA /* RocksDBStatistics.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 62A8B0631A58DD7D0069B4C8 /* RocksDBStatistics.h */; }; - 625F8F6F1A5A2273007796BA /* RocksDBStatisticsHistogram.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 62A8B0671A58E4B60069B4C8 /* RocksDBStatisticsHistogram.h */; }; - 625F8F701A5A2273007796BA /* RocksDBBackupEngine.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 621CD71A1A4FB24700853E16 /* RocksDBBackupEngine.h */; }; - 625F8F711A5A2273007796BA /* RocksDBBackupInfo.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 62A8B05F1A58CC400069B4C8 /* RocksDBBackupInfo.h */; }; 625F8F721A5A229C007796BA /* RocksDB.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 6299F80C1A17B28200123F56 /* RocksDB.h */; }; 625F8F731A5A229C007796BA /* RocksDBTypes.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 62451AC81A4BAEC000AF11C8 /* RocksDBTypes.h */; }; 625F8F741A5A229C007796BA /* RocksDBError.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 628B0CE81A1C104D0099C39B /* RocksDBError.h */; }; @@ -156,14 +310,11 @@ 62662E961B8FCBA0008B4EF5 /* RocksDBIndexedWriteBatch.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62662E951B8FCBA0008B4EF5 /* RocksDBIndexedWriteBatch.swift */; }; 62662E971B8FCBA0008B4EF5 /* RocksDBIndexedWriteBatch.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62662E951B8FCBA0008B4EF5 /* RocksDBIndexedWriteBatch.swift */; }; 62685CB91A2E600A009401B1 /* RocksDBWriteBatchTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62685CB81A2E600A009401B1 /* RocksDBWriteBatchTests.mm */; }; - 628B0CEA1A1C104D0099C39B /* RocksDBError.mm in Sources */ = {isa = PBXBuildFile; fileRef = 628B0CE91A1C104D0099C39B /* RocksDBError.mm */; }; 629416631A69DFB000AA0498 /* RocksDBPrefixExtractorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 629416621A69DFB000AA0498 /* RocksDBPrefixExtractorTests.swift */; }; 629416641A69DFB000AA0498 /* RocksDBPrefixExtractorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 629416621A69DFB000AA0498 /* RocksDBPrefixExtractorTests.swift */; }; - 6299F80F1A17B28200123F56 /* RocksDB.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6299F80E1A17B28200123F56 /* RocksDB.mm */; }; 6299F8561A17B7AD00123F56 /* RocksDBBasicTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6299F8551A17B7AD00123F56 /* RocksDBBasicTests.mm */; }; 62A37D141A632316003F6095 /* RocksDBIteratorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62A37D131A632316003F6095 /* RocksDBIteratorTests.swift */; }; 62A37D151A632316003F6095 /* RocksDBIteratorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62A37D131A632316003F6095 /* RocksDBIteratorTests.swift */; }; - 62A74F861A603DDB00BAD95B /* RocksDBColumnFamilyMetadata.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62A74F851A603DDB00BAD95B /* RocksDBColumnFamilyMetadata.mm */; }; 62A8AF981A58C30E0069B4C8 /* memtable.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29611A1ABA1F00486C31 /* memtable.cc */; }; 62A8AF991A58C30E0069B4C8 /* hash.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B3F1A1ABA2000486C31 /* hash.cc */; }; 62A8AF9A1A58C30E0069B4C8 /* RocksDBCallbackMergeOperator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6214FD071A3F698300B92E5C /* RocksDBCallbackMergeOperator.cpp */; }; @@ -325,210 +476,36 @@ 62A8B04F1A58C40A0069B4C8 /* RocksDBWriteBatchTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62685CB81A2E600A009401B1 /* RocksDBWriteBatchTests.mm */; }; 62A8B0501A58C40A0069B4C8 /* RocksDBMergeOperatorTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 620A2CAD1A3654D5007224A4 /* RocksDBMergeOperatorTests.mm */; }; 62A8B05B1A58C4940069B4C8 /* libObjectiveRocks.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 62A8B0431A58C30E0069B4C8 /* libObjectiveRocks.a */; }; - 62A8B05E1A58C49F0069B4C8 /* libObjectiveRocks.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6299F8091A17B28200123F56 /* libObjectiveRocks.a */; }; - 62A8B0611A58CC400069B4C8 /* RocksDBBackupInfo.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62A8B0601A58CC400069B4C8 /* RocksDBBackupInfo.mm */; }; - 62A8B0651A58DD7D0069B4C8 /* RocksDBStatistics.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62A8B0641A58DD7D0069B4C8 /* RocksDBStatistics.mm */; }; - 62A8B0691A58E4B60069B4C8 /* RocksDBStatisticsHistogram.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62A8B0681A58E4B60069B4C8 /* RocksDBStatisticsHistogram.mm */; }; 62A8B06B1A5900540069B4C8 /* RocksDBStatisticsTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62A8B06A1A5900540069B4C8 /* RocksDBStatisticsTests.mm */; }; - 62AEF9BB1A1D5DA900E63E89 /* RocksDBOptions.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62AEF9BA1A1D5DA900E63E89 /* RocksDBOptions.mm */; }; 62E173E61A6AD40E00A00DF3 /* RocksDBBackupTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62E173E51A6AD40E00A00DF3 /* RocksDBBackupTests.swift */; }; - 62EE2BD81A1ABA2000486C31 /* builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29141A1ABA1F00486C31 /* builder.cc */; }; - 62EE2BDA1A1ABA2000486C31 /* c.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29171A1ABA1F00486C31 /* c.cc */; }; - 62EE2BDD1A1ABA2000486C31 /* column_family.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE291A1A1ABA1F00486C31 /* column_family.cc */; }; - 62EE2BE01A1ABA2000486C31 /* compaction.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE291E1A1ABA1F00486C31 /* compaction.cc */; }; - 62EE2BE21A1ABA2000486C31 /* compaction_job.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29211A1ABA1F00486C31 /* compaction_job.cc */; }; - 62EE2BE51A1ABA2000486C31 /* compaction_picker.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29251A1ABA1F00486C31 /* compaction_picker.cc */; }; - 62EE2BEC1A1ABA2000486C31 /* db_filesnapshot.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE292D1A1ABA1F00486C31 /* db_filesnapshot.cc */; }; - 62EE2BEE1A1ABA2000486C31 /* db_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE292F1A1ABA1F00486C31 /* db_impl.cc */; }; - 62EE2BF01A1ABA2000486C31 /* db_impl_debug.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29321A1ABA1F00486C31 /* db_impl_debug.cc */; }; - 62EE2BF21A1ABA2000486C31 /* db_impl_readonly.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29341A1ABA1F00486C31 /* db_impl_readonly.cc */; }; - 62EE2BF41A1ABA2000486C31 /* db_iter.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29371A1ABA1F00486C31 /* db_iter.cc */; }; - 62EE2BF81A1ABA2000486C31 /* dbformat.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE293C1A1ABA1F00486C31 /* dbformat.cc */; }; - 62EE2BFC1A1ABA2000486C31 /* file_indexer.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29411A1ABA1F00486C31 /* file_indexer.cc */; }; - 62EE2BFF1A1ABA2000486C31 /* filename.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29451A1ABA1F00486C31 /* filename.cc */; }; - 62EE2C021A1ABA2000486C31 /* flush_job.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29491A1ABA1F00486C31 /* flush_job.cc */; }; - 62EE2C051A1ABA2000486C31 /* flush_scheduler.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE294D1A1ABA1F00486C31 /* flush_scheduler.cc */; }; - 62EE2C071A1ABA2000486C31 /* forward_iterator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29501A1ABA1F00486C31 /* forward_iterator.cc */; }; - 62EE2C091A1ABA2000486C31 /* internal_stats.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29531A1ABA1F00486C31 /* internal_stats.cc */; }; - 62EE2C0D1A1ABA2000486C31 /* log_reader.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE295A1A1ABA1F00486C31 /* log_reader.cc */; }; - 62EE2C101A1ABA2000486C31 /* log_writer.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE295E1A1ABA1F00486C31 /* log_writer.cc */; }; - 62EE2C121A1ABA2000486C31 /* memtable.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29611A1ABA1F00486C31 /* memtable.cc */; }; - 62EE2C141A1ABA2000486C31 /* memtable_list.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29641A1ABA1F00486C31 /* memtable_list.cc */; }; - 62EE2C161A1ABA2000486C31 /* merge_helper.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29681A1ABA1F00486C31 /* merge_helper.cc */; }; - 62EE2C181A1ABA2000486C31 /* merge_operator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE296B1A1ABA1F00486C31 /* merge_operator.cc */; }; - 62EE2C1E1A1ABA2000486C31 /* repair.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29711A1ABA1F00486C31 /* repair.cc */; }; - 62EE2C211A1ABA2000486C31 /* table_cache.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29761A1ABA1F00486C31 /* table_cache.cc */; }; - 62EE2C231A1ABA2000486C31 /* table_properties_collector.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29791A1ABA1F00486C31 /* table_properties_collector.cc */; }; - 62EE2C261A1ABA2000486C31 /* transaction_log_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE297D1A1ABA1F00486C31 /* transaction_log_impl.cc */; }; - 62EE2C281A1ABA2000486C31 /* version_builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29801A1ABA1F00486C31 /* version_builder.cc */; }; - 62EE2C2B1A1ABA2000486C31 /* version_edit.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29841A1ABA1F00486C31 /* version_edit.cc */; }; - 62EE2C2E1A1ABA2000486C31 /* version_set.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29881A1ABA1F00486C31 /* version_set.cc */; }; - 62EE2C311A1ABA2000486C31 /* wal_manager.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE298C1A1ABA1F00486C31 /* wal_manager.cc */; }; - 62EE2C341A1ABA2000486C31 /* write_batch.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29901A1ABA1F00486C31 /* write_batch.cc */; }; - 62EE2C371A1ABA2000486C31 /* write_controller.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29941A1ABA1F00486C31 /* write_controller.cc */; }; - 62EE2C3A1A1ABA2000486C31 /* write_thread.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29981A1ABA1F00486C31 /* write_thread.cc */; }; - 62EE2CBD1A1ABA2000486C31 /* port_posix.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2A7E1A1ABA1F00486C31 /* port_posix.cc */; }; - 62EE2CBF1A1ABA2000486C31 /* stack_trace.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2A821A1ABA1F00486C31 /* stack_trace.cc */; }; - 62EE2CC31A1ABA2000486C31 /* adaptive_table_factory.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2A8A1A1ABA1F00486C31 /* adaptive_table_factory.cc */; }; - 62EE2CC51A1ABA2000486C31 /* block.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2A8D1A1ABA1F00486C31 /* block.cc */; }; - 62EE2CC71A1ABA2000486C31 /* block_based_filter_block.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2A901A1ABA1F00486C31 /* block_based_filter_block.cc */; }; - 62EE2CCA1A1ABA2000486C31 /* block_based_table_builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2A941A1ABA1F00486C31 /* block_based_table_builder.cc */; }; - 62EE2CCC1A1ABA2000486C31 /* block_based_table_factory.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2A971A1ABA1F00486C31 /* block_based_table_factory.cc */; }; - 62EE2CCE1A1ABA2000486C31 /* block_based_table_reader.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2A9A1A1ABA1F00486C31 /* block_based_table_reader.cc */; }; - 62EE2CD01A1ABA2000486C31 /* block_builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2A9D1A1ABA1F00486C31 /* block_builder.cc */; }; - 62EE2CD21A1ABA2000486C31 /* block_hash_index.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AA01A1ABA1F00486C31 /* block_hash_index.cc */; }; - 62EE2CD51A1ABA2000486C31 /* block_prefix_index.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AA41A1ABA1F00486C31 /* block_prefix_index.cc */; }; - 62EE2CD81A1ABA2000486C31 /* bloom_block.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AA81A1ABA1F00486C31 /* bloom_block.cc */; }; - 62EE2CDA1A1ABA2000486C31 /* cuckoo_table_builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AAB1A1ABA1F00486C31 /* cuckoo_table_builder.cc */; }; - 62EE2CDD1A1ABA2000486C31 /* cuckoo_table_factory.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AAF1A1ABA1F00486C31 /* cuckoo_table_factory.cc */; }; - 62EE2CDF1A1ABA2000486C31 /* cuckoo_table_reader.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AB21A1ABA1F00486C31 /* cuckoo_table_reader.cc */; }; - 62EE2CE21A1ABA2000486C31 /* flush_block_policy.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AB71A1ABA1F00486C31 /* flush_block_policy.cc */; }; - 62EE2CE41A1ABA2000486C31 /* format.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AB91A1ABA1F00486C31 /* format.cc */; }; - 62EE2CE61A1ABA2000486C31 /* full_filter_block.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2ABC1A1ABA1F00486C31 /* full_filter_block.cc */; }; - 62EE2CE91A1ABA2000486C31 /* get_context.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AC01A1ABA1F00486C31 /* get_context.cc */; }; - 62EE2CEB1A1ABA2000486C31 /* iterator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AC41A1ABA1F00486C31 /* iterator.cc */; }; - 62EE2CED1A1ABA2000486C31 /* merger.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AC71A1ABA1F00486C31 /* merger.cc */; }; - 62EE2CF01A1ABA2000486C31 /* meta_blocks.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2ACB1A1ABA1F00486C31 /* meta_blocks.cc */; }; - 62EE2CF31A1ABA2000486C31 /* plain_table_builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AD01A1ABA1F00486C31 /* plain_table_builder.cc */; }; - 62EE2CF51A1ABA2000486C31 /* plain_table_factory.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AD31A1ABA1F00486C31 /* plain_table_factory.cc */; }; - 62EE2CF71A1ABA2000486C31 /* plain_table_index.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AD61A1ABA1F00486C31 /* plain_table_index.cc */; }; - 62EE2CF91A1ABA2000486C31 /* plain_table_key_coding.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AD91A1ABA1F00486C31 /* plain_table_key_coding.cc */; }; - 62EE2CFB1A1ABA2000486C31 /* plain_table_reader.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2ADC1A1ABA1F00486C31 /* plain_table_reader.cc */; }; - 62EE2CFD1A1ABA2000486C31 /* table_properties.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AE01A1ABA1F00486C31 /* table_properties.cc */; }; - 62EE2D011A1ABA2000486C31 /* two_level_iterator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AE61A1ABA1F00486C31 /* two_level_iterator.cc */; }; - 62EE2D041A1ABA2000486C31 /* db_repl_stress.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AFD1A1ABA2000486C31 /* db_repl_stress.cc */; }; - 62EE2D061A1ABA2000486C31 /* db_stress.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AFF1A1ABA2000486C31 /* db_stress.cc */; }; - 62EE2D071A1ABA2000486C31 /* ldb.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B001A1ABA2000486C31 /* ldb.cc */; }; - 62EE2D091A1ABA2000486C31 /* sst_dump.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B041A1ABA2000486C31 /* sst_dump.cc */; }; - 62EE2D0A1A1ABA2000486C31 /* arena.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B061A1ABA2000486C31 /* arena.cc */; }; - 62EE2D0D1A1ABA2100486C31 /* auto_roll_logger.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B0A1A1ABA2000486C31 /* auto_roll_logger.cc */; }; - 62EE2D161A1ABA2100486C31 /* bloom.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B171A1ABA2000486C31 /* bloom.cc */; }; - 62EE2D1B1A1ABA2100486C31 /* cache.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B1D1A1ABA2000486C31 /* cache.cc */; }; - 62EE2D1F1A1ABA2100486C31 /* coding.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B211A1ABA2000486C31 /* coding.cc */; }; - 62EE2D221A1ABA2100486C31 /* comparator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B251A1ABA2000486C31 /* comparator.cc */; }; - 62EE2D241A1ABA2100486C31 /* crc32c.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B271A1ABA2000486C31 /* crc32c.cc */; }; - 62EE2D271A1ABA2100486C31 /* db_info_dumper.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B2B1A1ABA2000486C31 /* db_info_dumper.cc */; }; - 62EE2D291A1ABA2100486C31 /* dynamic_bloom.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B2E1A1ABA2000486C31 /* dynamic_bloom.cc */; }; - 62EE2D2C1A1ABA2100486C31 /* env.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B321A1ABA2000486C31 /* env.cc */; }; - 62EE2D2E1A1ABA2100486C31 /* env_hdfs.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B341A1ABA2000486C31 /* env_hdfs.cc */; }; - 62EE2D301A1ABA2100486C31 /* env_posix.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B361A1ABA2000486C31 /* env_posix.cc */; }; - 62EE2D331A1ABA2100486C31 /* file_util.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B391A1ABA2000486C31 /* file_util.cc */; }; - 62EE2D361A1ABA2100486C31 /* filter_policy.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B3D1A1ABA2000486C31 /* filter_policy.cc */; }; - 62EE2D381A1ABA2100486C31 /* hash.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B3F1A1ABA2000486C31 /* hash.cc */; }; - 62EE2D3A1A1ABA2100486C31 /* hash_cuckoo_rep.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B421A1ABA2000486C31 /* hash_cuckoo_rep.cc */; }; - 62EE2D3C1A1ABA2100486C31 /* hash_linklist_rep.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B451A1ABA2000486C31 /* hash_linklist_rep.cc */; }; - 62EE2D3E1A1ABA2100486C31 /* hash_skiplist_rep.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B481A1ABA2000486C31 /* hash_skiplist_rep.cc */; }; - 62EE2D401A1ABA2100486C31 /* histogram.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B4B1A1ABA2000486C31 /* histogram.cc */; }; - 62EE2D431A1ABA2100486C31 /* iostats_context.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B4F1A1ABA2000486C31 /* iostats_context.cc */; }; - 62EE2D471A1ABA2100486C31 /* ldb_tool.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B561A1ABA2000486C31 /* ldb_tool.cc */; }; - 62EE2D491A1ABA2100486C31 /* log_buffer.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B581A1ABA2000486C31 /* log_buffer.cc */; }; - 62EE2D4C1A1ABA2100486C31 /* logging.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B5C1A1ABA2000486C31 /* logging.cc */; }; - 62EE2D511A1ABA2100486C31 /* murmurhash.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B631A1ABA2000486C31 /* murmurhash.cc */; }; - 62EE2D531A1ABA2100486C31 /* mutable_cf_options.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B661A1ABA2000486C31 /* mutable_cf_options.cc */; }; - 62EE2D551A1ABA2100486C31 /* options.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B6A1A1ABA2000486C31 /* options.cc */; }; - 62EE2D571A1ABA2100486C31 /* options_builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B6C1A1ABA2000486C31 /* options_builder.cc */; }; - 62EE2D591A1ABA2100486C31 /* options_helper.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B6E1A1ABA2000486C31 /* options_helper.cc */; }; - 62EE2D5C1A1ABA2100486C31 /* perf_context.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B721A1ABA2000486C31 /* perf_context.cc */; }; - 62EE2D5E1A1ABA2100486C31 /* rate_limiter.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B771A1ABA2000486C31 /* rate_limiter.cc */; }; - 62EE2D621A1ABA2100486C31 /* skiplistrep.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B7D1A1ABA2000486C31 /* skiplistrep.cc */; }; - 62EE2D641A1ABA2100486C31 /* slice.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B7F1A1ABA2000486C31 /* slice.cc */; }; - 62EE2D681A1ABA2100486C31 /* statistics.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B831A1ABA2000486C31 /* statistics.cc */; }; - 62EE2D6A1A1ABA2100486C31 /* status.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B861A1ABA2000486C31 /* status.cc */; }; - 62EE2D6C1A1ABA2100486C31 /* string_util.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B8A1A1ABA2000486C31 /* string_util.cc */; }; - 62EE2D6E1A1ABA2100486C31 /* sync_point.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B8D1A1ABA2000486C31 /* sync_point.cc */; }; - 62EE2D721A1ABA2100486C31 /* thread_local.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B941A1ABA2000486C31 /* thread_local.cc */; }; - 62EE2D751A1ABA2100486C31 /* vectorrep.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B981A1ABA2000486C31 /* vectorrep.cc */; }; - 62EE2D771A1ABA2100486C31 /* xxhash.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B9A1A1ABA2000486C31 /* xxhash.cc */; }; - 62EE2D791A1ABA2100486C31 /* backupable_db.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B9F1A1ABA2000486C31 /* backupable_db.cc */; }; - 62EE2D7C1A1ABA2100486C31 /* compacted_db_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BA31A1ABA2000486C31 /* compacted_db_impl.cc */; }; - 62EE2D7E1A1ABA2100486C31 /* document_db.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BA71A1ABA2000486C31 /* document_db.cc */; }; - 62EE2D811A1ABA2100486C31 /* json_document.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BAA1A1ABA2000486C31 /* json_document.cc */; }; - 62EE2D841A1ABA2100486C31 /* geodb_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BAE1A1ABA2000486C31 /* geodb_impl.cc */; }; - 62EE2D871A1ABA2100486C31 /* put.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BB31A1ABA2000486C31 /* put.cc */; }; - 62EE2D891A1ABA2100486C31 /* stringappend.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BB61A1ABA2000486C31 /* stringappend.cc */; }; - 62EE2D8B1A1ABA2100486C31 /* stringappend2.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BB91A1ABA2000486C31 /* stringappend2.cc */; }; - 62EE2D8E1A1ABA2100486C31 /* uint64add.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BBD1A1ABA2000486C31 /* uint64add.cc */; }; - 62EE2D901A1ABA2100486C31 /* redis_lists.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BC41A1ABA2000486C31 /* redis_lists.cc */; }; - 62EE2D931A1ABA2100486C31 /* spatial_db.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BC91A1ABA2000486C31 /* spatial_db.cc */; }; - 62EE2D961A1ABA2100486C31 /* db_ttl_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BCE1A1ABA2000486C31 /* db_ttl_impl.cc */; }; - 62EE2D991A1ABA2100486C31 /* write_batch_with_index.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BD31A1ABA2000486C31 /* write_batch_with_index.cc */; }; - 62EEC4AB1A34B93B00624DA2 /* ObjectiveRocks.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 62AEF9B81A1D5CF000E63E89 /* ObjectiveRocks.h */; }; - 62EEC4B71A34FEE100624DA2 /* RocksDBMergeOperator.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62EEC4B61A34FEE100624DA2 /* RocksDBMergeOperator.mm */; }; - 62EEC4BA1A34FF0600624DA2 /* RocksDBCallbackAssociativeMergeOperator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 62EEC4B81A34FF0600624DA2 /* RocksDBCallbackAssociativeMergeOperator.cpp */; }; - 62F3ED511A57175F00EBFEBF /* RocksDBBlockBasedTableOptions.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62F3ED501A57175F00EBFEBF /* RocksDBBlockBasedTableOptions.mm */; }; - 62F3ED551A57212800EBFEBF /* RocksDBCache.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62F3ED541A57212800EBFEBF /* RocksDBCache.mm */; }; - 62F3ED581A5727A300EBFEBF /* RocksDBFilterPolicy.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62F3ED571A5727A300EBFEBF /* RocksDBFilterPolicy.mm */; }; - 62F3ED5B1A574F7500EBFEBF /* RocksDBTableFactory.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62F3ED5A1A574F7500EBFEBF /* RocksDBTableFactory.mm */; }; 62F4AA7C1A6AAF9A00489D6C /* RocksDBColumnFamilyMetadataTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62F4AA7B1A6AAF9A00489D6C /* RocksDBColumnFamilyMetadataTests.swift */; }; 62F4AA7E1A6AAFD700489D6C /* RocksDBColumnFamilyTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62F4AA7D1A6AAFD700489D6C /* RocksDBColumnFamilyTests.swift */; }; 62F4AA7F1A6AAFD700489D6C /* RocksDBColumnFamilyTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62F4AA7D1A6AAFD700489D6C /* RocksDBColumnFamilyTests.swift */; }; 62F4AA801A6AAFE500489D6C /* RocksDBColumnFamilyMetadataTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 627FBE761A61E0AA0038696A /* RocksDBColumnFamilyMetadataTests.mm */; }; - 62F8C5FF1B85386A00E2577F /* RocksDBIndexedWriteBatch.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62F8C5FE1B85386A00E2577F /* RocksDBIndexedWriteBatch.mm */; }; 62F8C6001B85386A00E2577F /* RocksDBIndexedWriteBatch.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62F8C5FE1B85386A00E2577F /* RocksDBIndexedWriteBatch.mm */; }; - 62F8C6031B853ABA00E2577F /* RocksDBWriteBatchIterator.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62F8C6021B853ABA00E2577F /* RocksDBWriteBatchIterator.mm */; }; 62F8C6041B853ABA00E2577F /* RocksDBWriteBatchIterator.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62F8C6021B853ABA00E2577F /* RocksDBWriteBatchIterator.mm */; }; - 62F8C6071B85632500E2577F /* RocksDBIterator.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62F8C6061B85632500E2577F /* RocksDBIterator.mm */; }; 62F8C6081B85632500E2577F /* RocksDBIterator.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62F8C6061B85632500E2577F /* RocksDBIterator.mm */; }; 62FC8B471A565B19003DF5C6 /* RocksDBBackupTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62FC8B461A565B19003DF5C6 /* RocksDBBackupTests.mm */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 62A8B0591A58C4860069B4C8 /* PBXContainerItemProxy */ = { + 624204CD1BED6B700043DD6F /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 6299F8011A17B28200123F56 /* Project object */; proxyType = 1; - remoteGlobalIDString = 62A8AF961A58C30E0069B4C8; - remoteInfo = "ObjectiveRocks-iOS"; + remoteGlobalIDString = 624203BF1BED64410043DD6F; + remoteInfo = ObjectiveRocks; }; - 62A8B05C1A58C49A0069B4C8 /* PBXContainerItemProxy */ = { + 62A8B0591A58C4860069B4C8 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 6299F8011A17B28200123F56 /* Project object */; proxyType = 1; - remoteGlobalIDString = 6299F8081A17B28200123F56; - remoteInfo = ObjectiveRocks; + remoteGlobalIDString = 62A8AF961A58C30E0069B4C8; + remoteInfo = "ObjectiveRocks-iOS"; }; /* End PBXContainerItemProxy section */ /* Begin PBXCopyFilesBuildPhase section */ - 6299F8071A17B28200123F56 /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = "include/$(PRODUCT_NAME)"; - dstSubfolderSpec = 16; - files = ( - 625F8F531A5A2273007796BA /* RocksDB.h in CopyFiles */, - 625F8F541A5A2273007796BA /* RocksDBProperties.h in CopyFiles */, - 625F8F551A5A2273007796BA /* RocksDBTypes.h in CopyFiles */, - 625F8F561A5A2273007796BA /* RocksDBError.h in CopyFiles */, - 625F8F571A5A2273007796BA /* RocksDBColumnFamily.h in CopyFiles */, - 625F8F581A5A2273007796BA /* RocksDBColumnFamilyDescriptor.h in CopyFiles */, - 625F8F5A1A5A2273007796BA /* RocksDBPrefixExtractor.h in CopyFiles */, - 625F8F5B1A5A2273007796BA /* RocksDBWriteBatch.h in CopyFiles */, - 625F8F5C1A5A2273007796BA /* RocksDBComparator.h in CopyFiles */, - 625F8F5D1A5A2273007796BA /* RocksDBOptions.h in CopyFiles */, - 625F8F5E1A5A2273007796BA /* RocksDBEncodingOptions.h in CopyFiles */, - 625F8F5F1A5A2273007796BA /* RocksDBDatabaseOptions.h in CopyFiles */, - 625F8F601A5A2273007796BA /* RocksDBColumnFamilyOptions.h in CopyFiles */, - 625F8F611A5A2273007796BA /* RocksDBWriteOptions.h in CopyFiles */, - 625F8F621A5A2273007796BA /* RocksDBReadOptions.h in CopyFiles */, - 625F8F631A5A2273007796BA /* RocksDBTableFactory.h in CopyFiles */, - 625F8F641A5A2273007796BA /* RocksDBBlockBasedTableOptions.h in CopyFiles */, - 625F8F651A5A2273007796BA /* RocksDBPlainTableOptions.h in CopyFiles */, - 625F8F661A5A2273007796BA /* RocksDBCuckooTableOptions.h in CopyFiles */, - 625F8F671A5A2273007796BA /* RocksDBCache.h in CopyFiles */, - 625F8F681A5A2273007796BA /* RocksDBFilterPolicy.h in CopyFiles */, - 625F8F691A5A2273007796BA /* RocksDBMemTableRepFactory.h in CopyFiles */, - 625F8F6A1A5A2273007796BA /* RocksDBSnapshot.h in CopyFiles */, - 625F8F6C1A5A2273007796BA /* RocksDBCheckpoint.h in CopyFiles */, - 625F8F6D1A5A2273007796BA /* RocksDBMergeOperator.h in CopyFiles */, - 625F8F6E1A5A2273007796BA /* RocksDBStatistics.h in CopyFiles */, - 625F8F6F1A5A2273007796BA /* RocksDBStatisticsHistogram.h in CopyFiles */, - 625F8F701A5A2273007796BA /* RocksDBBackupEngine.h in CopyFiles */, - 625F8F711A5A2273007796BA /* RocksDBBackupInfo.h in CopyFiles */, - 62EEC4AB1A34B93B00624DA2 /* ObjectiveRocks.h in CopyFiles */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; 62A8B0351A58C30E0069B4C8 /* CopyFiles */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; @@ -638,6 +615,8 @@ 623DC2551A335BAF00B61B18 /* RocksDBSnapshotTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RocksDBSnapshotTests.mm; sourceTree = ""; }; 623FE74E1A2D2ED500E68421 /* RocksDBWriteBatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RocksDBWriteBatch.h; sourceTree = ""; }; 623FE74F1A2D2ED500E68421 /* RocksDBWriteBatch.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RocksDBWriteBatch.mm; sourceTree = ""; }; + 624203C01BED64410043DD6F /* ObjectiveRocks.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ObjectiveRocks.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 624203C81BED64AE0043DD6F /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = Framework/Info.plist; sourceTree = SOURCE_ROOT; }; 62451AC81A4BAEC000AF11C8 /* RocksDBTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RocksDBTypes.h; sourceTree = ""; }; 62451AC91A4BAEC000AF11C8 /* RocksDBTypes.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RocksDBTypes.m; sourceTree = ""; }; 62451ACB1A4BC7A600AF11C8 /* sst_dump_tool_imp.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = sst_dump_tool_imp.h; sourceTree = ""; }; @@ -726,7 +705,6 @@ 628B0CE91A1C104D0099C39B /* RocksDBError.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RocksDBError.mm; sourceTree = ""; }; 628C51C71A3BD08500B96F8F /* RocksDBSnapshotUnavailable.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RocksDBSnapshotUnavailable.h; sourceTree = ""; }; 629416621A69DFB000AA0498 /* RocksDBPrefixExtractorTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RocksDBPrefixExtractorTests.swift; sourceTree = ""; }; - 6299F8091A17B28200123F56 /* libObjectiveRocks.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libObjectiveRocks.a; sourceTree = BUILT_PRODUCTS_DIR; }; 6299F80C1A17B28200123F56 /* RocksDB.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RocksDB.h; sourceTree = ""; }; 6299F80E1A17B28200123F56 /* RocksDB.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = RocksDB.mm; sourceTree = ""; }; 6299F8141A17B28200123F56 /* ObjectiveRocksTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ObjectiveRocksTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -1158,7 +1136,7 @@ /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 6299F8061A17B28200123F56 /* Frameworks */ = { + 624203BC1BED64410043DD6F /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( @@ -1169,7 +1147,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 62A8B05E1A58C49F0069B4C8 /* libObjectiveRocks.a in Frameworks */, + 624204CF1BED6B750043DD6F /* ObjectiveRocks.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1353,6 +1331,15 @@ name = Snapshot; sourceTree = ""; }; + 624203C11BED64410043DD6F /* Framework */ = { + isa = PBXGroup; + children = ( + 624203C81BED64AE0043DD6F /* Info.plist */, + ); + name = Framework; + path = ObjectiveRocks; + sourceTree = ""; + }; 624C222A1AF016B7006DC8FA /* fbson */ = { isa = PBXGroup; children = ( @@ -1459,6 +1446,7 @@ children = ( 6299F80B1A17B28200123F56 /* Source */, 6299F8181A17B28200123F56 /* Tests */, + 624203C11BED64410043DD6F /* Framework */, 6299F80A1A17B28200123F56 /* Products */, ); sourceTree = ""; @@ -1466,10 +1454,10 @@ 6299F80A1A17B28200123F56 /* Products */ = { isa = PBXGroup; children = ( - 6299F8091A17B28200123F56 /* libObjectiveRocks.a */, 6299F8141A17B28200123F56 /* ObjectiveRocksTests.xctest */, 62A8B0431A58C30E0069B4C8 /* libObjectiveRocks.a */, 62A8B0571A58C40A0069B4C8 /* ObjectiveRocksTests-iOS.xctest */, + 624203C01BED64410043DD6F /* ObjectiveRocks.framework */, ); name = Products; sourceTree = ""; @@ -2218,15 +2206,76 @@ }; /* End PBXGroup section */ +/* Begin PBXHeadersBuildPhase section */ + 624203BD1BED64410043DD6F /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 624203CA1BED64F70043DD6F /* ObjectiveRocks.h in Headers */, + 624203CB1BED64F70043DD6F /* RocksDB.h in Headers */, + 624203CC1BED64F70043DD6F /* RocksDBProperties.h in Headers */, + 624203CD1BED64F70043DD6F /* RocksDBTypes.h in Headers */, + 624203CF1BED64F70043DD6F /* RocksDBColumnFamily.h in Headers */, + 624203D01BED64F70043DD6F /* RocksDBColumnFamilyDescriptor.h in Headers */, + 624203D11BED64F80043DD6F /* RocksDBColumnFamilyMetadata.h in Headers */, + 624203D21BED64F80043DD6F /* RocksDBIterator.h in Headers */, + 624203D31BED64F80043DD6F /* RocksDBPrefixExtractor.h in Headers */, + 624203D41BED64F80043DD6F /* RocksDBWriteBatch.h in Headers */, + 624203D51BED64F80043DD6F /* RocksDBIndexedWriteBatch.h in Headers */, + 624203D61BED64F80043DD6F /* RocksDBWriteBatchIterator.h in Headers */, + 624203D71BED64F80043DD6F /* RocksDBComparator.h in Headers */, + 624203D81BED64F80043DD6F /* RocksDBOptions.h in Headers */, + 624203D91BED64F80043DD6F /* RocksDBEncodingOptions.h in Headers */, + 624203DA1BED64F80043DD6F /* RocksDBDatabaseOptions.h in Headers */, + 624203DB1BED64F80043DD6F /* RocksDBColumnFamilyOptions.h in Headers */, + 624203DC1BED64F80043DD6F /* RocksDBWriteOptions.h in Headers */, + 624203DD1BED64F80043DD6F /* RocksDBReadOptions.h in Headers */, + 624203DE1BED64F80043DD6F /* RocksDBEnv.h in Headers */, + 624203DF1BED64F80043DD6F /* RocksDBThreadStatus.h in Headers */, + 624203E01BED64F80043DD6F /* RocksDBTableFactory.h in Headers */, + 624203E11BED64F80043DD6F /* RocksDBBlockBasedTableOptions.h in Headers */, + 624203E21BED64F90043DD6F /* RocksDBPlainTableOptions.h in Headers */, + 624203E31BED64F90043DD6F /* RocksDBCuckooTableOptions.h in Headers */, + 624203E41BED64F90043DD6F /* RocksDBCache.h in Headers */, + 624203E51BED64F90043DD6F /* RocksDBFilterPolicy.h in Headers */, + 624203E61BED64F90043DD6F /* RocksDBMemTableRepFactory.h in Headers */, + 624203E71BED64F90043DD6F /* RocksDBSnapshot.h in Headers */, + 624203E81BED64F90043DD6F /* RocksDBSnapshotUnavailable.h in Headers */, + 624203E91BED64F90043DD6F /* RocksDBCheckpoint.h in Headers */, + 624203EA1BED64F90043DD6F /* RocksDBMergeOperator.h in Headers */, + 624203EB1BED64F90043DD6F /* RocksDBStatistics.h in Headers */, + 624203EC1BED64FA0043DD6F /* RocksDBStatisticsHistogram.h in Headers */, + 624203ED1BED64FA0043DD6F /* RocksDBBackupEngine.h in Headers */, + 624203EE1BED64FA0043DD6F /* RocksDBBackupInfo.h in Headers */, + 624203CE1BED64F70043DD6F /* RocksDBError.h in Headers */, + 624203EF1BED650D0043DD6F /* RocksDB+Private.h in Headers */, + 624203F01BED650D0043DD6F /* RocksDBOptions+Private.h in Headers */, + 624203F11BED650D0043DD6F /* RocksDBColumnFamily+Private.h in Headers */, + 624203F21BED650E0043DD6F /* RocksDBColumnFamilyMetaData+Private.h in Headers */, + 624203F31BED650E0043DD6F /* RocksDBIterator+Private.h in Headers */, + 624203F41BED650E0043DD6F /* RocksDBWriteBatch+Private.h in Headers */, + 624203F51BED650E0043DD6F /* RocksDBWriteBatchIterator+Private.h in Headers */, + 624203F61BED650E0043DD6F /* RocksDBSnapshot+Private.h in Headers */, + 624203F71BED650E0043DD6F /* RocksDBCallbackComparator.h in Headers */, + 624203F81BED650E0043DD6F /* RocksDBCallbackAssociativeMergeOperator.h in Headers */, + 624203F91BED650F0043DD6F /* RocksDBCallbackMergeOperator.h in Headers */, + 624203FA1BED650F0043DD6F /* RocksDBCallbackSliceTransform.h in Headers */, + 624203FB1BED650F0043DD6F /* RocksDBSlice.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + /* Begin PBXNativeTarget section */ - 6299F8081A17B28200123F56 /* ObjectiveRocks */ = { + 624203BF1BED64410043DD6F /* ObjectiveRocks */ = { isa = PBXNativeTarget; - buildConfigurationList = 6299F81D1A17B28200123F56 /* Build configuration list for PBXNativeTarget "ObjectiveRocks" */; + buildConfigurationList = 624203C51BED64410043DD6F /* Build configuration list for PBXNativeTarget "ObjectiveRocks" */; buildPhases = ( - 62297D581B6AC4E900F72BF2 /* ShellScript */, - 6299F8051A17B28200123F56 /* Sources */, - 6299F8061A17B28200123F56 /* Frameworks */, - 6299F8071A17B28200123F56 /* CopyFiles */, + 624203BB1BED64410043DD6F /* Sources */, + 624203BC1BED64410043DD6F /* Frameworks */, + 624203BE1BED64410043DD6F /* Resources */, + 624203BD1BED64410043DD6F /* Headers */, + 624204CC1BED69600043DD6F /* ShellScript */, ); buildRules = ( ); @@ -2234,8 +2283,8 @@ ); name = ObjectiveRocks; productName = ObjectiveRocks; - productReference = 6299F8091A17B28200123F56 /* libObjectiveRocks.a */; - productType = "com.apple.product-type.library.static"; + productReference = 624203C01BED64410043DD6F /* ObjectiveRocks.framework */; + productType = "com.apple.product-type.framework"; }; 6299F8131A17B28200123F56 /* ObjectiveRocksTests */ = { isa = PBXNativeTarget; @@ -2248,7 +2297,7 @@ buildRules = ( ); dependencies = ( - 62A8B05D1A58C49A0069B4C8 /* PBXTargetDependency */, + 624204CE1BED6B700043DD6F /* PBXTargetDependency */, ); name = ObjectiveRocksTests; productName = ObjectiveRocksTests; @@ -2301,8 +2350,8 @@ LastUpgradeCheck = 0710; ORGANIZATIONNAME = BrainCookie; TargetAttributes = { - 6299F8081A17B28200123F56 = { - CreatedOnToolsVersion = 6.1; + 624203BF1BED64410043DD6F = { + CreatedOnToolsVersion = 7.1; }; 6299F8131A17B28200123F56 = { CreatedOnToolsVersion = 6.1; @@ -2321,7 +2370,7 @@ projectDirPath = ""; projectRoot = ""; targets = ( - 6299F8081A17B28200123F56 /* ObjectiveRocks */, + 624203BF1BED64410043DD6F /* ObjectiveRocks */, 6299F8131A17B28200123F56 /* ObjectiveRocksTests */, 62A8AF961A58C30E0069B4C8 /* ObjectiveRocks-iOS */, 62A8B0441A58C40A0069B4C8 /* ObjectiveRocksTests-iOS */, @@ -2330,6 +2379,13 @@ /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ + 624203BE1BED64410043DD6F /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; 6299F8121A17B28200123F56 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -2347,7 +2403,7 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 62297D581B6AC4E900F72BF2 /* ShellScript */ = { + 624204CC1BED69600043DD6F /* ShellScript */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -2363,192 +2419,188 @@ /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - 6299F8051A17B28200123F56 /* Sources */ = { + 624203BB1BED64410043DD6F /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 62EE2C121A1ABA2000486C31 /* memtable.cc in Sources */, - 62EE2D381A1ABA2100486C31 /* hash.cc in Sources */, - 6214FD091A3F698300B92E5C /* RocksDBCallbackMergeOperator.cpp in Sources */, - 62EE2D3E1A1ABA2100486C31 /* hash_skiplist_rep.cc in Sources */, - 62EE2D4C1A1ABA2100486C31 /* logging.cc in Sources */, - 62EE2D7C1A1ABA2100486C31 /* compacted_db_impl.cc in Sources */, - 62EE2D891A1ABA2100486C31 /* stringappend.cc in Sources */, - 62EE2D841A1ABA2100486C31 /* geodb_impl.cc in Sources */, - 62EE2BFC1A1ABA2000486C31 /* file_indexer.cc in Sources */, - 620494871A3284A800A0E950 /* RocksDBSnapshot.mm in Sources */, - 62EE2C161A1ABA2000486C31 /* merge_helper.cc in Sources */, - 621CD71C1A4FB24700853E16 /* RocksDBBackupEngine.mm in Sources */, - 62EE2D011A1ABA2000486C31 /* two_level_iterator.cc in Sources */, - 62EE2D931A1ABA2100486C31 /* spatial_db.cc in Sources */, - 62EE2CD51A1ABA2000486C31 /* block_prefix_index.cc in Sources */, - 623FE7501A2D2ED500E68421 /* RocksDBWriteBatch.mm in Sources */, - 62EE2CC31A1ABA2000486C31 /* adaptive_table_factory.cc in Sources */, - 62F8C5FF1B85386A00E2577F /* RocksDBIndexedWriteBatch.mm in Sources */, - 624C22571AF0195F006DC8FA /* flashcache.cc in Sources */, - 62EE2CF91A1ABA2000486C31 /* plain_table_key_coding.cc in Sources */, - 62F8C6071B85632500E2577F /* RocksDBIterator.mm in Sources */, - 62AEF9BB1A1D5DA900E63E89 /* RocksDBOptions.mm in Sources */, - 62EE2CBD1A1ABA2000486C31 /* port_posix.cc in Sources */, - 62EE2D221A1ABA2100486C31 /* comparator.cc in Sources */, - 6206296A1A510D36001DEDC4 /* RocksDBColumnFamily.mm in Sources */, - 62EE2D621A1ABA2100486C31 /* skiplistrep.cc in Sources */, - 62EE2D3C1A1ABA2100486C31 /* hash_linklist_rep.cc in Sources */, - 623533A01A47722900D5CD14 /* memtable_allocator.cc in Sources */, - 624C22601AF01C8E006DC8FA /* db_impl_experimental.cc in Sources */, - 62EE2C051A1ABA2000486C31 /* flush_scheduler.cc in Sources */, - 62297D521B6AC05000F72BF2 /* write_batch_with_index_internal.cc in Sources */, - 62297D561B6AC08B00F72BF2 /* event_logger_helpers.cc in Sources */, - 62F3ED581A5727A300EBFEBF /* RocksDBFilterPolicy.mm in Sources */, - 62EE2D751A1ABA2100486C31 /* vectorrep.cc in Sources */, - 62EE2D071A1ABA2000486C31 /* ldb.cc in Sources */, - 624C22341AF016EE006DC8FA /* json_document_builder.cc in Sources */, - 62EE2CBF1A1ABA2000486C31 /* stack_trace.cc in Sources */, - 62EE2BD81A1ABA2000486C31 /* builder.cc in Sources */, - 624C221C1AF014E0006DC8FA /* thread_status_impl.cc in Sources */, - 6299F80F1A17B28200123F56 /* RocksDB.mm in Sources */, - 62EE2BEC1A1ABA2000486C31 /* db_filesnapshot.cc in Sources */, - 62451ACA1A4BAEC000AF11C8 /* RocksDBTypes.m in Sources */, - 62EE2CE21A1ABA2000486C31 /* flush_block_policy.cc in Sources */, - 62EE2CCA1A1ABA2000486C31 /* block_based_table_builder.cc in Sources */, - 625F8F311A59E22E007796BA /* RocksDBPlainTableOptions.mm in Sources */, - 6232B7381A1E860700B14535 /* RocksDBReadOptions.mm in Sources */, - 62EE2BE21A1ABA2000486C31 /* compaction_job.cc in Sources */, - 62EE2C071A1ABA2000486C31 /* forward_iterator.cc in Sources */, - 62EE2C1E1A1ABA2000486C31 /* repair.cc in Sources */, - 62EE2D5C1A1ABA2100486C31 /* perf_context.cc in Sources */, - 624C22181AF01485006DC8FA /* xfunc.cc in Sources */, - 62EE2D2C1A1ABA2100486C31 /* env.cc in Sources */, - 625F8F351A59E648007796BA /* RocksDBCuckooTableOptions.mm in Sources */, - 62EE2C281A1ABA2000486C31 /* version_builder.cc in Sources */, - 62EE2D301A1ABA2100486C31 /* env_posix.cc in Sources */, - 62EE2D8B1A1ABA2100486C31 /* stringappend2.cc in Sources */, - 62A8B0611A58CC400069B4C8 /* RocksDBBackupInfo.mm in Sources */, - 62EE2C231A1ABA2000486C31 /* table_properties_collector.cc in Sources */, - 62EE2D6E1A1ABA2100486C31 /* sync_point.cc in Sources */, - 62EE2CF51A1ABA2000486C31 /* plain_table_factory.cc in Sources */, - 62EE2D721A1ABA2100486C31 /* thread_local.cc in Sources */, - 62EE2CDA1A1ABA2000486C31 /* cuckoo_table_builder.cc in Sources */, - 62EE2C141A1ABA2000486C31 /* memtable_list.cc in Sources */, - 62EE2D361A1ABA2100486C31 /* filter_policy.cc in Sources */, - 62EE2C371A1ABA2000486C31 /* write_controller.cc in Sources */, - 62EE2D491A1ABA2100486C31 /* log_buffer.cc in Sources */, - 62EE2D871A1ABA2100486C31 /* put.cc in Sources */, - 62EE2C311A1ABA2000486C31 /* wal_manager.cc in Sources */, - 62EE2C0D1A1ABA2000486C31 /* log_reader.cc in Sources */, - 62EE2BE51A1ABA2000486C31 /* compaction_picker.cc in Sources */, - 62EE2CDF1A1ABA2000486C31 /* cuckoo_table_reader.cc in Sources */, - 62EE2CFB1A1ABA2000486C31 /* plain_table_reader.cc in Sources */, - 62F3ED5B1A574F7500EBFEBF /* RocksDBTableFactory.mm in Sources */, - 62EE2CEB1A1ABA2000486C31 /* iterator.cc in Sources */, - 62EE2CF01A1ABA2000486C31 /* meta_blocks.cc in Sources */, - 622DB8661A7EA1D40026C73F /* memenv.cc in Sources */, - 62EE2CD01A1ABA2000486C31 /* block_builder.cc in Sources */, - 62EE2D291A1ABA2100486C31 /* dynamic_bloom.cc in Sources */, - 62F3ED511A57175F00EBFEBF /* RocksDBBlockBasedTableOptions.mm in Sources */, - 62EE2D811A1ABA2100486C31 /* json_document.cc in Sources */, - 628B0CEA1A1C104D0099C39B /* RocksDBError.mm in Sources */, - 624C22281AF0161E006DC8FA /* managed_iterator.cc in Sources */, - 625F8F291A59D7B1007796BA /* RocksDBMemTableRepFactory.mm in Sources */, - 624C226B1AF02B1B006DC8FA /* instrumented_mutex.cc in Sources */, - 6236E2571A4DD25000A81ED6 /* RocksDBPrefixExtractor.mm in Sources */, - 62269EE01A1FF2DC005A58D3 /* leveldb_options.cc in Sources */, - 62EE2D8E1A1ABA2100486C31 /* uint64add.cc in Sources */, - 62EE2D771A1ABA2100486C31 /* xxhash.cc in Sources */, - 62A8B0651A58DD7D0069B4C8 /* RocksDBStatistics.mm in Sources */, - 624C22241AF015E4006DC8FA /* thread_status_util_debug.cc in Sources */, - 62EE2CE41A1ABA2000486C31 /* format.cc in Sources */, - 62EE2D7E1A1ABA2100486C31 /* document_db.cc in Sources */, - 62EEC4BA1A34FF0600624DA2 /* RocksDBCallbackAssociativeMergeOperator.cpp in Sources */, - 62EE2C261A1ABA2000486C31 /* transaction_log_impl.cc in Sources */, - 6231475B1A5AE18A0019D14A /* RocksDBEnv.mm in Sources */, - 62EE2D0A1A1ABA2000486C31 /* arena.cc in Sources */, - 620629661A510056001DEDC4 /* RocksDBDatabaseOptions.mm in Sources */, - 62EE2C341A1ABA2000486C31 /* write_batch.cc in Sources */, - 62EE2BF01A1ABA2000486C31 /* db_impl_debug.cc in Sources */, - 62376BBF1A20EDF000C85DFB /* RocksDBCallbackComparator.cpp in Sources */, - 624C22631AF01CA7006DC8FA /* experimental.cc in Sources */, - 62EE2CE61A1ABA2000486C31 /* full_filter_block.cc in Sources */, - 62EE2D6A1A1ABA2100486C31 /* status.cc in Sources */, - 6231475F1A5AE3E30019D14A /* RocksDBThreadStatus.mm in Sources */, - 62EE2BDA1A1ABA2000486C31 /* c.cc in Sources */, - 62EE2D551A1ABA2100486C31 /* options.cc in Sources */, - 62EE2BE01A1ABA2000486C31 /* compaction.cc in Sources */, - 62EE2CDD1A1ABA2000486C31 /* cuckoo_table_factory.cc in Sources */, - 62EE2CC51A1ABA2000486C31 /* block.cc in Sources */, - 62A8B0691A58E4B60069B4C8 /* RocksDBStatisticsHistogram.mm in Sources */, - 62EE2C091A1ABA2000486C31 /* internal_stats.cc in Sources */, - 624C224B1AF01880006DC8FA /* slice.cc in Sources */, - 62EE2D1F1A1ABA2100486C31 /* coding.cc in Sources */, - 62EE2D061A1ABA2000486C31 /* db_stress.cc in Sources */, - 62EE2CFD1A1ABA2000486C31 /* table_properties.cc in Sources */, - 62EE2D401A1ABA2100486C31 /* histogram.cc in Sources */, - 62EE2D791A1ABA2100486C31 /* backupable_db.cc in Sources */, - 620629601A509DF1001DEDC4 /* RocksDBColumnFamilyOptions.mm in Sources */, - 625F8F231A59CF82007796BA /* RocksDBCheckpoint.mm in Sources */, - 62EE2D991A1ABA2100486C31 /* write_batch_with_index.cc in Sources */, - 62074F2D1A520EC2002B1885 /* RocksDBColumnFamilyDescriptor.mm in Sources */, - 62F3ED551A57212800EBFEBF /* RocksDBCache.mm in Sources */, - 62EE2D041A1ABA2000486C31 /* db_repl_stress.cc in Sources */, - 62451AD21A4BC85400AF11C8 /* thread_status_updater.cc in Sources */, - 62EE2BFF1A1ABA2000486C31 /* filename.cc in Sources */, - 62EE2D641A1ABA2100486C31 /* slice.cc in Sources */, - 62EE2D511A1ABA2100486C31 /* murmurhash.cc in Sources */, - 62EE2C3A1A1ABA2000486C31 /* write_thread.cc in Sources */, - 624C224E1AF0188C006DC8FA /* write_batch_base.cc in Sources */, - 62EE2D471A1ABA2100486C31 /* ldb_tool.cc in Sources */, - 62EE2D961A1ABA2100486C31 /* db_ttl_impl.cc in Sources */, - 62EE2D591A1ABA2100486C31 /* options_helper.cc in Sources */, - 62EE2D3A1A1ABA2100486C31 /* hash_cuckoo_rep.cc in Sources */, - 62EE2CD21A1ABA2000486C31 /* block_hash_index.cc in Sources */, - 622A9B5B1B7981B60012A976 /* RocksDBProperties.mm in Sources */, - 62EE2CCC1A1ABA2000486C31 /* block_based_table_factory.cc in Sources */, - 62EE2C101A1ABA2000486C31 /* log_writer.cc in Sources */, - 62EE2D241A1ABA2100486C31 /* crc32c.cc in Sources */, - 62EE2CF71A1ABA2000486C31 /* plain_table_index.cc in Sources */, - 623224AC1A2116A400FB6625 /* RocksDBComparator.mm in Sources */, - 62EE2D6C1A1ABA2100486C31 /* string_util.cc in Sources */, - 62EE2C2E1A1ABA2000486C31 /* version_set.cc in Sources */, - 62EE2BEE1A1ABA2000486C31 /* db_impl.cc in Sources */, - 6232B7351A1E80F900B14535 /* RocksDBWriteOptions.mm in Sources */, - 62EE2CF31A1ABA2000486C31 /* plain_table_builder.cc in Sources */, - 622DB8691A7EA2300026C73F /* thread_status_updater_debug.cc in Sources */, - 62EE2CD81A1ABA2000486C31 /* bloom_block.cc in Sources */, - 62EE2CED1A1ABA2000486C31 /* merger.cc in Sources */, - 62EE2D2E1A1ABA2100486C31 /* env_hdfs.cc in Sources */, - 62EE2BF41A1ABA2000486C31 /* db_iter.cc in Sources */, - 62451AD31A4BC85400AF11C8 /* thread_status_util.cc in Sources */, - 62EE2D531A1ABA2100486C31 /* mutable_cf_options.cc in Sources */, - 62EEC4B71A34FEE100624DA2 /* RocksDBMergeOperator.mm in Sources */, - 62EE2BDD1A1ABA2000486C31 /* column_family.cc in Sources */, - 620629631A50ECCA001DEDC4 /* RocksDBEncodingOptions.mm in Sources */, - 62EE2CC71A1ABA2000486C31 /* block_based_filter_block.cc in Sources */, - 62EE2BF81A1ABA2000486C31 /* dbformat.cc in Sources */, - 62EE2C2B1A1ABA2000486C31 /* version_edit.cc in Sources */, - 62297D5A1B6AC8CE00F72BF2 /* build_version.cc in Sources */, - 62EE2D0D1A1ABA2100486C31 /* auto_roll_logger.cc in Sources */, - 62EE2D091A1ABA2000486C31 /* sst_dump.cc in Sources */, - 62EE2D681A1ABA2100486C31 /* statistics.cc in Sources */, - 62EE2D5E1A1ABA2100486C31 /* rate_limiter.cc in Sources */, - 624C22411AF017B6006DC8FA /* event_logger.cc in Sources */, - 62EE2C181A1ABA2000486C31 /* merge_operator.cc in Sources */, - 62269EDC1A1FF27A005A58D3 /* checkpoint.cc in Sources */, - 62EE2D901A1ABA2100486C31 /* redis_lists.cc in Sources */, - 62F8C6031B853ABA00E2577F /* RocksDBWriteBatchIterator.mm in Sources */, - 624C22391AF0174B006DC8FA /* convenience.cc in Sources */, - 62EE2D271A1ABA2100486C31 /* db_info_dumper.cc in Sources */, - 62EE2D571A1ABA2100486C31 /* options_builder.cc in Sources */, - 62EE2C211A1ABA2000486C31 /* table_cache.cc in Sources */, - 62EE2D431A1ABA2100486C31 /* iostats_context.cc in Sources */, - 6236E25A1A4DD71600A81ED6 /* RocksDBCallbackSliceTransform.cpp in Sources */, - 62EE2C021A1ABA2000486C31 /* flush_job.cc in Sources */, - 62A74F861A603DDB00BAD95B /* RocksDBColumnFamilyMetadata.mm in Sources */, - 62EE2CE91A1ABA2000486C31 /* get_context.cc in Sources */, - 62EE2CCE1A1ABA2000486C31 /* block_based_table_reader.cc in Sources */, - 62EE2D161A1ABA2100486C31 /* bloom.cc in Sources */, - 62EE2D331A1ABA2100486C31 /* file_util.cc in Sources */, - 62EE2D1B1A1ABA2100486C31 /* cache.cc in Sources */, - 62EE2BF21A1ABA2000486C31 /* db_impl_readonly.cc in Sources */, + 624203FC1BED65250043DD6F /* RocksDB.mm in Sources */, + 6242042C1BED652D0043DD6F /* RocksDBTypes.m in Sources */, + 624203FD1BED65250043DD6F /* RocksDBProperties.mm in Sources */, + 624203FE1BED65250043DD6F /* RocksDBError.mm in Sources */, + 624203FF1BED65250043DD6F /* RocksDBColumnFamily.mm in Sources */, + 624204001BED65250043DD6F /* RocksDBColumnFamilyDescriptor.mm in Sources */, + 624204011BED65250043DD6F /* RocksDBColumnFamilyMetadata.mm in Sources */, + 624204021BED65250043DD6F /* RocksDBIterator.mm in Sources */, + 624204031BED65250043DD6F /* RocksDBPrefixExtractor.mm in Sources */, + 624204041BED65250043DD6F /* RocksDBWriteBatch.mm in Sources */, + 624204051BED65250043DD6F /* RocksDBIndexedWriteBatch.mm in Sources */, + 624204061BED65250043DD6F /* RocksDBWriteBatchIterator.mm in Sources */, + 624204071BED65250043DD6F /* RocksDBComparator.mm in Sources */, + 624204081BED65250043DD6F /* RocksDBOptions.mm in Sources */, + 624204091BED65250043DD6F /* RocksDBEncodingOptions.mm in Sources */, + 6242040A1BED65250043DD6F /* RocksDBDatabaseOptions.mm in Sources */, + 6242040B1BED65250043DD6F /* RocksDBColumnFamilyOptions.mm in Sources */, + 6242040C1BED65250043DD6F /* RocksDBWriteOptions.mm in Sources */, + 6242040D1BED65250043DD6F /* RocksDBReadOptions.mm in Sources */, + 6242040E1BED65250043DD6F /* RocksDBEnv.mm in Sources */, + 6242040F1BED65250043DD6F /* RocksDBThreadStatus.mm in Sources */, + 624204101BED65250043DD6F /* RocksDBTableFactory.mm in Sources */, + 624204111BED65250043DD6F /* RocksDBBlockBasedTableOptions.mm in Sources */, + 624204121BED65250043DD6F /* RocksDBPlainTableOptions.mm in Sources */, + 624204131BED65250043DD6F /* RocksDBCuckooTableOptions.mm in Sources */, + 624204141BED65250043DD6F /* RocksDBCache.mm in Sources */, + 624204151BED65250043DD6F /* RocksDBFilterPolicy.mm in Sources */, + 624204161BED65250043DD6F /* RocksDBMemTableRepFactory.mm in Sources */, + 624204171BED65250043DD6F /* RocksDBSnapshot.mm in Sources */, + 624204181BED65250043DD6F /* RocksDBCheckpoint.mm in Sources */, + 624204191BED65250043DD6F /* RocksDBMergeOperator.mm in Sources */, + 6242041A1BED65250043DD6F /* RocksDBStatistics.mm in Sources */, + 6242041B1BED65250043DD6F /* RocksDBStatisticsHistogram.mm in Sources */, + 6242041C1BED65250043DD6F /* RocksDBBackupEngine.mm in Sources */, + 6242041D1BED65250043DD6F /* RocksDBBackupInfo.mm in Sources */, + 6242042D1BED65540043DD6F /* RocksDBCallbackComparator.cpp in Sources */, + 6242042E1BED65540043DD6F /* RocksDBCallbackAssociativeMergeOperator.cpp in Sources */, + 6242042F1BED65540043DD6F /* RocksDBCallbackMergeOperator.cpp in Sources */, + 624204301BED65540043DD6F /* RocksDBCallbackSliceTransform.cpp in Sources */, + 624204311BED66850043DD6F /* builder.cc in Sources */, + 624204321BED66850043DD6F /* c.cc in Sources */, + 624204331BED66850043DD6F /* column_family.cc in Sources */, + 624204341BED66850043DD6F /* compaction.cc in Sources */, + 624204351BED66850043DD6F /* compaction_job.cc in Sources */, + 624204371BED66850043DD6F /* compaction_picker.cc in Sources */, + 6242043A1BED66850043DD6F /* db_filesnapshot.cc in Sources */, + 6242043B1BED66850043DD6F /* db_impl_experimental.cc in Sources */, + 6242043C1BED66850043DD6F /* db_impl.cc in Sources */, + 6242043D1BED66850043DD6F /* db_impl_debug.cc in Sources */, + 6242043E1BED66850043DD6F /* db_impl_readonly.cc in Sources */, + 6242043F1BED66850043DD6F /* db_iter.cc in Sources */, + 624204401BED66850043DD6F /* dbformat.cc in Sources */, + 624204411BED66850043DD6F /* event_logger_helpers.cc in Sources */, + 624204421BED66850043DD6F /* experimental.cc in Sources */, + 624204431BED66850043DD6F /* file_indexer.cc in Sources */, + 624204441BED66850043DD6F /* filename.cc in Sources */, + 624204451BED66850043DD6F /* flush_job.cc in Sources */, + 624204461BED66850043DD6F /* flush_scheduler.cc in Sources */, + 624204471BED66850043DD6F /* forward_iterator.cc in Sources */, + 624204481BED66850043DD6F /* internal_stats.cc in Sources */, + 624204491BED66850043DD6F /* log_reader.cc in Sources */, + 6242044A1BED66850043DD6F /* log_writer.cc in Sources */, + 6242044B1BED66850043DD6F /* managed_iterator.cc in Sources */, + 6242044C1BED66850043DD6F /* memtable.cc in Sources */, + 6242044D1BED66850043DD6F /* memtable_allocator.cc in Sources */, + 6242044E1BED66850043DD6F /* memtable_list.cc in Sources */, + 624204501BED66850043DD6F /* merge_helper.cc in Sources */, + 624204511BED66850043DD6F /* merge_operator.cc in Sources */, + 624204521BED66850043DD6F /* repair.cc in Sources */, + 624204531BED66850043DD6F /* slice.cc in Sources */, + 624204541BED66850043DD6F /* table_cache.cc in Sources */, + 624204551BED66850043DD6F /* table_properties_collector.cc in Sources */, + 624204571BED66850043DD6F /* transaction_log_impl.cc in Sources */, + 624204581BED66850043DD6F /* version_builder.cc in Sources */, + 624204591BED66850043DD6F /* version_edit.cc in Sources */, + 6242045A1BED66850043DD6F /* version_set.cc in Sources */, + 6242045B1BED66850043DD6F /* wal_manager.cc in Sources */, + 6242045C1BED66850043DD6F /* write_batch_base.cc in Sources */, + 6242045D1BED66850043DD6F /* write_batch.cc in Sources */, + 6242045E1BED66850043DD6F /* write_controller.cc in Sources */, + 6242045F1BED66850043DD6F /* write_thread.cc in Sources */, + 624204601BED66850043DD6F /* port_posix.cc in Sources */, + 624204611BED66850043DD6F /* stack_trace.cc in Sources */, + 624204621BED66850043DD6F /* adaptive_table_factory.cc in Sources */, + 624204631BED66850043DD6F /* block.cc in Sources */, + 624204641BED66850043DD6F /* block_based_filter_block.cc in Sources */, + 624204651BED66850043DD6F /* block_based_table_builder.cc in Sources */, + 624204661BED66850043DD6F /* block_based_table_factory.cc in Sources */, + 624204671BED66850043DD6F /* block_based_table_reader.cc in Sources */, + 624204681BED66850043DD6F /* block_builder.cc in Sources */, + 624204691BED66850043DD6F /* block_hash_index.cc in Sources */, + 6242046A1BED66850043DD6F /* block_prefix_index.cc in Sources */, + 6242046B1BED66860043DD6F /* bloom_block.cc in Sources */, + 6242046C1BED66860043DD6F /* cuckoo_table_builder.cc in Sources */, + 6242046D1BED66860043DD6F /* cuckoo_table_factory.cc in Sources */, + 6242046E1BED66860043DD6F /* cuckoo_table_reader.cc in Sources */, + 6242046F1BED66860043DD6F /* flush_block_policy.cc in Sources */, + 624204701BED66860043DD6F /* format.cc in Sources */, + 624204711BED66860043DD6F /* full_filter_block.cc in Sources */, + 624204721BED66860043DD6F /* get_context.cc in Sources */, + 624204731BED66860043DD6F /* iterator.cc in Sources */, + 624204741BED66860043DD6F /* merger.cc in Sources */, + 624204751BED66860043DD6F /* meta_blocks.cc in Sources */, + 624204771BED66860043DD6F /* plain_table_builder.cc in Sources */, + 624204781BED66860043DD6F /* plain_table_factory.cc in Sources */, + 624204791BED66860043DD6F /* plain_table_index.cc in Sources */, + 6242047A1BED66860043DD6F /* plain_table_key_coding.cc in Sources */, + 6242047B1BED66860043DD6F /* plain_table_reader.cc in Sources */, + 6242047C1BED66860043DD6F /* table_properties.cc in Sources */, + 6242047E1BED66860043DD6F /* two_level_iterator.cc in Sources */, + 6242047F1BED66860043DD6F /* arena.cc in Sources */, + 624204801BED66860043DD6F /* auto_roll_logger.cc in Sources */, + 624204811BED66860043DD6F /* bloom.cc in Sources */, + 624204821BED66860043DD6F /* build_version.cc in Sources */, + 624204831BED66860043DD6F /* cache.cc in Sources */, + 624204851BED66860043DD6F /* coding.cc in Sources */, + 624204861BED66860043DD6F /* comparator.cc in Sources */, + 624204871BED66860043DD6F /* crc32c.cc in Sources */, + 624204881BED66860043DD6F /* db_info_dumper.cc in Sources */, + 624204891BED66860043DD6F /* dynamic_bloom.cc in Sources */, + 6242048A1BED66860043DD6F /* env.cc in Sources */, + 6242048B1BED66860043DD6F /* env_hdfs.cc in Sources */, + 6242048C1BED66860043DD6F /* env_posix.cc in Sources */, + 6242048D1BED66860043DD6F /* event_logger.cc in Sources */, + 6242048E1BED66860043DD6F /* file_util.cc in Sources */, + 6242048F1BED66860043DD6F /* filter_policy.cc in Sources */, + 624204901BED66860043DD6F /* hash.cc in Sources */, + 624204911BED66860043DD6F /* hash_cuckoo_rep.cc in Sources */, + 624204921BED66860043DD6F /* hash_linklist_rep.cc in Sources */, + 624204931BED66860043DD6F /* hash_skiplist_rep.cc in Sources */, + 624204941BED66860043DD6F /* histogram.cc in Sources */, + 624204951BED66860043DD6F /* instrumented_mutex.cc in Sources */, + 624204961BED66860043DD6F /* iostats_context.cc in Sources */, + 624204991BED66860043DD6F /* log_buffer.cc in Sources */, + 6242049B1BED66860043DD6F /* logging.cc in Sources */, + 6242049D1BED66860043DD6F /* memenv.cc in Sources */, + 6242049F1BED66860043DD6F /* murmurhash.cc in Sources */, + 624204A01BED66860043DD6F /* mutable_cf_options.cc in Sources */, + 624204A11BED66860043DD6F /* options.cc in Sources */, + 624204A21BED66860043DD6F /* options_builder.cc in Sources */, + 624204A31BED66860043DD6F /* options_helper.cc in Sources */, + 624204A41BED66860043DD6F /* perf_context.cc in Sources */, + 624204A51BED66860043DD6F /* rate_limiter.cc in Sources */, + 624204A61BED66860043DD6F /* skiplistrep.cc in Sources */, + 624204A71BED66860043DD6F /* slice.cc in Sources */, + 624204A91BED66860043DD6F /* statistics.cc in Sources */, + 624204AA1BED66860043DD6F /* status.cc in Sources */, + 624204AB1BED66860043DD6F /* string_util.cc in Sources */, + 624204AD1BED66860043DD6F /* sync_point.cc in Sources */, + 624204AF1BED66860043DD6F /* testutil.cc in Sources */, + 624204B01BED66860043DD6F /* thread_local.cc in Sources */, + 624204B11BED66870043DD6F /* thread_status_impl.cc in Sources */, + 624204B21BED66870043DD6F /* thread_status_updater_debug.cc in Sources */, + 624204B31BED66870043DD6F /* thread_status_updater.cc in Sources */, + 624204B41BED66870043DD6F /* thread_status_util_debug.cc in Sources */, + 624204B51BED66870043DD6F /* thread_status_util.cc in Sources */, + 624204B61BED66870043DD6F /* vectorrep.cc in Sources */, + 624204B71BED66870043DD6F /* xfunc.cc in Sources */, + 624204B81BED66870043DD6F /* xxhash.cc in Sources */, + 624204B91BED66870043DD6F /* backupable_db.cc in Sources */, + 624204BA1BED66870043DD6F /* checkpoint.cc in Sources */, + 624204BB1BED66870043DD6F /* compacted_db_impl.cc in Sources */, + 624204BC1BED66870043DD6F /* convenience.cc in Sources */, + 624204BD1BED66870043DD6F /* document_db.cc in Sources */, + 624204BE1BED66870043DD6F /* json_document_builder.cc in Sources */, + 624204BF1BED66870043DD6F /* json_document.cc in Sources */, + 624204C01BED66870043DD6F /* flashcache.cc in Sources */, + 624204C11BED66870043DD6F /* geodb_impl.cc in Sources */, + 624204C21BED66870043DD6F /* leveldb_options.cc in Sources */, + 624204C31BED66870043DD6F /* put.cc in Sources */, + 624204C41BED66870043DD6F /* stringappend.cc in Sources */, + 624204C51BED66870043DD6F /* stringappend2.cc in Sources */, + 624204C61BED66870043DD6F /* uint64add.cc in Sources */, + 624204C71BED66870043DD6F /* redis_lists.cc in Sources */, + 624204C81BED66870043DD6F /* spatial_db.cc in Sources */, + 624204C91BED66870043DD6F /* db_ttl_impl.cc in Sources */, + 624204CA1BED66870043DD6F /* write_batch_with_index_internal.cc in Sources */, + 624204CB1BED66870043DD6F /* write_batch_with_index.cc in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2803,19 +2855,93 @@ /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ + 624204CE1BED6B700043DD6F /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 624203BF1BED64410043DD6F /* ObjectiveRocks */; + targetProxy = 624204CD1BED6B700043DD6F /* PBXContainerItemProxy */; + }; 62A8B05A1A58C4860069B4C8 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = 62A8AF961A58C30E0069B4C8 /* ObjectiveRocks-iOS */; targetProxy = 62A8B0591A58C4860069B4C8 /* PBXContainerItemProxy */; }; - 62A8B05D1A58C49A0069B4C8 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 6299F8081A17B28200123F56 /* ObjectiveRocks */; - targetProxy = 62A8B05C1A58C49A0069B4C8 /* PBXContainerItemProxy */; - }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ + 624203C61BED64410043DD6F /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "-"; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "OS_MACOSX=1", + "ROCKSDB_PLATFORM_POSIX=1", + "ROCKSDB_USING_THREAD_STATUS=1", + ); + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/rocksdb", + "$(SRCROOT)/rocksdb/include", + ); + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 10.10; + PRODUCT_BUNDLE_IDENTIFIER = de.iabudiab.ObjectiveRocks; + PRODUCT_NAME = ObjectiveRocks; + SDKROOT = macosx; + SKIP_INSTALL = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 624203C71BED64410043DD6F /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "-"; + COMBINE_HIDPI_IMAGES = YES; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + "OS_MACOSX=1", + "ROCKSDB_PLATFORM_POSIX=1", + "ROCKSDB_USING_THREAD_STATUS=1", + ); + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/rocksdb", + "$(SRCROOT)/rocksdb/include", + ); + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 10.10; + PRODUCT_BUNDLE_IDENTIFIER = de.iabudiab.ObjectiveRocks; + PRODUCT_NAME = ObjectiveRocks; + SDKROOT = macosx; + SKIP_INSTALL = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; 6299F81B1A17B28200123F56 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -2891,68 +3017,6 @@ }; name = Release; }; - 6299F81E1A17B28200123F56 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - COMBINE_HIDPI_IMAGES = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "OS_MACOSX=1", - "ROCKSDB_PLATFORM_POSIX=1", - "ROCKSDB_USING_THREAD_STATUS=1", - ); - HEADER_SEARCH_PATHS = ( - "$(inherited)", - "$(SRCROOT)/rocksdb", - "$(SRCROOT)/rocksdb/include", - ); - LD_RUNPATH_SEARCH_PATHS = ""; - LIBRARY_SEARCH_PATHS = ""; - ONLY_ACTIVE_ARCH = YES; - OTHER_CFLAGS = ""; - OTHER_CPLUSPLUSFLAGS = "$(OTHER_CFLAGS)"; - OTHER_LDFLAGS = "-ObjC"; - PRODUCT_NAME = ObjectiveRocks; - SDKROOT = macosx; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 6299F81F1A17B28200123F56 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - COMBINE_HIDPI_IMAGES = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_PREPROCESSOR_DEFINITIONS = ( - "OS_MACOSX=1", - "ROCKSDB_PLATFORM_POSIX=1", - "ROCKSDB_USING_THREAD_STATUS=1", - ); - HEADER_SEARCH_PATHS = ( - "$(inherited)", - "$(SRCROOT)/rocksdb", - "$(SRCROOT)/rocksdb/include", - ); - LD_RUNPATH_SEARCH_PATHS = ""; - LIBRARY_SEARCH_PATHS = ""; - OTHER_CFLAGS = ""; - OTHER_CPLUSPLUSFLAGS = "$(OTHER_CFLAGS)"; - OTHER_LDFLAGS = "-ObjC"; - PRODUCT_NAME = ObjectiveRocks; - SDKROOT = macosx; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; 6299F8211A17B28200123F56 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -2967,6 +3031,7 @@ ); INFOPLIST_FILE = Tests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; + OTHER_LDFLAGS = ""; PRODUCT_BUNDLE_IDENTIFIER = "co.braincookie.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = ObjectiveRocksTests; SDKROOT = macosx; @@ -2985,6 +3050,7 @@ FRAMEWORK_SEARCH_PATHS = "$(inherited)"; INFOPLIST_FILE = Tests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; + OTHER_LDFLAGS = ""; PRODUCT_BUNDLE_IDENTIFIER = "co.braincookie.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = ObjectiveRocksTests; SDKROOT = macosx; @@ -3086,20 +3152,20 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 6299F8041A17B28200123F56 /* Build configuration list for PBXProject "ObjectiveRocks" */ = { + 624203C51BED64410043DD6F /* Build configuration list for PBXNativeTarget "ObjectiveRocks" */ = { isa = XCConfigurationList; buildConfigurations = ( - 6299F81B1A17B28200123F56 /* Debug */, - 6299F81C1A17B28200123F56 /* Release */, + 624203C61BED64410043DD6F /* Debug */, + 624203C71BED64410043DD6F /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 6299F81D1A17B28200123F56 /* Build configuration list for PBXNativeTarget "ObjectiveRocks" */ = { + 6299F8041A17B28200123F56 /* Build configuration list for PBXProject "ObjectiveRocks" */ = { isa = XCConfigurationList; buildConfigurations = ( - 6299F81E1A17B28200123F56 /* Debug */, - 6299F81F1A17B28200123F56 /* Release */, + 6299F81B1A17B28200123F56 /* Debug */, + 6299F81C1A17B28200123F56 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/ObjectiveRocks.xcodeproj/xcshareddata/xcschemes/ObjectiveRocks.xcscheme b/ObjectiveRocks.xcodeproj/xcshareddata/xcschemes/ObjectiveRocks.xcscheme index d68d4ae..6ea5c54 100644 --- a/ObjectiveRocks.xcodeproj/xcshareddata/xcschemes/ObjectiveRocks.xcscheme +++ b/ObjectiveRocks.xcodeproj/xcshareddata/xcschemes/ObjectiveRocks.xcscheme @@ -14,8 +14,8 @@ buildForAnalyzing = "YES"> @@ -42,8 +42,8 @@ @@ -64,8 +64,8 @@ @@ -82,8 +82,8 @@ diff --git a/Tests/ObjectiveRocksTests-Bridging-Header.h b/Tests/ObjectiveRocksTests-Bridging-Header.h index 7fbf23d..cdf0ff9 100644 --- a/Tests/ObjectiveRocksTests-Bridging-Header.h +++ b/Tests/ObjectiveRocksTests-Bridging-Header.h @@ -2,52 +2,51 @@ // Use this file to import your target's public headers that you would like to expose to Swift. // -#import +#import -#import "RocksDB.h" +#import +#import +#import -#import "RocksDBColumnFamily.h" -#import "RocksDBColumnFamilyDescriptor.h" +#import +#import -#import "RocksDBIterator.h" -#import "RocksDBPrefixExtractor.h" +#import -#import "RocksDBWriteBatch.h" +#import -#import "RocksDBComparator.h" +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import -#import "RocksDBOptions.h" -#import "RocksDBEncodingOptions.h" -#import "RocksDBDatabaseOptions.h" -#import "RocksDBColumnFamilyOptions.h" -#import "RocksDBWriteOptions.h" -#import "RocksDBReadOptions.h" -#import "RocksDBTableFactory.h" -#import "RocksDBBlockBasedTableOptions.h" -#import "RocksDBCache.h" -#import "RocksDBFilterPolicy.h" -#import "RocksDBMemTableRepFactory.h" -#import "RocksDBEnv.h" +#import -#import "RocksDBSnapshot.h" +#import -#import "RocksDBMergeOperator.h" +#import -#import "RocksDBTypes.h" +#import -#import "RocksDBColumnFamilyMetadata.h" +#import +#import -#import "RocksDBPlainTableOptions.h" -#import "RocksDBCuckooTableOptions.h" +#import -#import "RocksDBThreadStatus.h" +#import -#import "RocksDBCheckpoint.h" +#import +#import -#import "RocksDBStatistics.h" -#import "RocksDBStatisticsHistogram.h" +#import +#import -#import "RocksDBBackupEngine.h" -#import "RocksDBBackupInfo.h" - -#import "RocksDBProperties.h" +#import diff --git a/Tests/ObjectiveRocksTests-iOS-Bridging-Header.h b/Tests/ObjectiveRocksTests-iOS-Bridging-Header.h index bc29ef2..17cdf99 100644 --- a/Tests/ObjectiveRocksTests-iOS-Bridging-Header.h +++ b/Tests/ObjectiveRocksTests-iOS-Bridging-Header.h @@ -6,6 +6,7 @@ #import "RocksDBColumnFamily.h" #import "RocksDBColumnFamilyDescriptor.h" +#import "RocksDBColumnFamilyMetaData.h" #import "RocksDBIterator.h" #import "RocksDBPrefixExtractor.h" diff --git a/Tests/RockDBTests.swift b/Tests/RockDBTests.swift index a247a4a..e5dcbe7 100644 --- a/Tests/RockDBTests.swift +++ b/Tests/RockDBTests.swift @@ -8,6 +8,7 @@ import Foundation import XCTest +import ObjectiveRocks public func AssertThrows(message: String = "Expression did not throw", _ function: String = __FUNCTION__, diff --git a/Tests/RocksDBBackupTests.swift b/Tests/RocksDBBackupTests.swift index c6cd26c..0f39370 100644 --- a/Tests/RocksDBBackupTests.swift +++ b/Tests/RocksDBBackupTests.swift @@ -7,6 +7,7 @@ // import XCTest +import ObjectiveRocks class RocksDBBackupTests : RocksDBTests { diff --git a/Tests/RocksDBBasicTests.swift b/Tests/RocksDBBasicTests.swift index 97cbaa8..d9b27e5 100644 --- a/Tests/RocksDBBasicTests.swift +++ b/Tests/RocksDBBasicTests.swift @@ -7,6 +7,7 @@ // import XCTest +import ObjectiveRocks class RocksDBBasicTests : RocksDBTests { diff --git a/Tests/RocksDBCheckpointTests.swift b/Tests/RocksDBCheckpointTests.swift index 32328f7..cdfc71c 100644 --- a/Tests/RocksDBCheckpointTests.swift +++ b/Tests/RocksDBCheckpointTests.swift @@ -7,6 +7,7 @@ // import XCTest +import ObjectiveRocks class RocksDBCheckpointTests : RocksDBTests { diff --git a/Tests/RocksDBColumnFamilyMetadataTests.swift b/Tests/RocksDBColumnFamilyMetadataTests.swift index f338133..727de6c 100644 --- a/Tests/RocksDBColumnFamilyMetadataTests.swift +++ b/Tests/RocksDBColumnFamilyMetadataTests.swift @@ -7,6 +7,7 @@ // import XCTest +import ObjectiveRocks class RocksDBColumnFamilyMetadataTests : RocksDBTests { diff --git a/Tests/RocksDBColumnFamilyTests.swift b/Tests/RocksDBColumnFamilyTests.swift index da1c382..6a3b0a2 100644 --- a/Tests/RocksDBColumnFamilyTests.swift +++ b/Tests/RocksDBColumnFamilyTests.swift @@ -7,6 +7,7 @@ // import XCTest +import ObjectiveRocks class RocksDBColumnFamilyTests : RocksDBTests { diff --git a/Tests/RocksDBComparatorTests.swift b/Tests/RocksDBComparatorTests.swift index 2a8a8ff..198eed6 100644 --- a/Tests/RocksDBComparatorTests.swift +++ b/Tests/RocksDBComparatorTests.swift @@ -7,6 +7,7 @@ // import XCTest +import ObjectiveRocks class RocksDBComparatorTests : RocksDBTests { diff --git a/Tests/RocksDBIndexedWriteBatch.swift b/Tests/RocksDBIndexedWriteBatch.swift index 38c9746..e40d448 100644 --- a/Tests/RocksDBIndexedWriteBatch.swift +++ b/Tests/RocksDBIndexedWriteBatch.swift @@ -7,6 +7,7 @@ // import XCTest +import ObjectiveRocks class RocksDBIndexedWriteBatchTests : RocksDBTests { diff --git a/Tests/RocksDBIteratorTests.swift b/Tests/RocksDBIteratorTests.swift index afd0550..b756aa2 100644 --- a/Tests/RocksDBIteratorTests.swift +++ b/Tests/RocksDBIteratorTests.swift @@ -7,6 +7,7 @@ // import XCTest +import ObjectiveRocks class RocksDBIteratorTests : RocksDBTests { diff --git a/Tests/RocksDBMergeOperatorTests.swift b/Tests/RocksDBMergeOperatorTests.swift index d661c36..9dcf6ea 100644 --- a/Tests/RocksDBMergeOperatorTests.swift +++ b/Tests/RocksDBMergeOperatorTests.swift @@ -7,6 +7,7 @@ // import XCTest +import ObjectiveRocks class RocksDBMergeOperatorTests : RocksDBTests { diff --git a/Tests/RocksDBPrefixExtractorTests.swift b/Tests/RocksDBPrefixExtractorTests.swift index 56af906..a1103d9 100644 --- a/Tests/RocksDBPrefixExtractorTests.swift +++ b/Tests/RocksDBPrefixExtractorTests.swift @@ -7,6 +7,7 @@ // import XCTest +import ObjectiveRocks class RocksDBPrefixExtractorTests : RocksDBTests { diff --git a/Tests/RocksDBPropertiesTests.swift b/Tests/RocksDBPropertiesTests.swift index 0def1ef..dd7bace 100644 --- a/Tests/RocksDBPropertiesTests.swift +++ b/Tests/RocksDBPropertiesTests.swift @@ -6,8 +6,8 @@ // Copyright (c) 2015 BrainCookie. All rights reserved. // -import Foundation import XCTest +import ObjectiveRocks class RocksDBPropertiesTests : RocksDBTests { diff --git a/Tests/RocksDBReadOnlyTests.swift b/Tests/RocksDBReadOnlyTests.swift index c424cee..88d8a96 100644 --- a/Tests/RocksDBReadOnlyTests.swift +++ b/Tests/RocksDBReadOnlyTests.swift @@ -7,6 +7,7 @@ // import XCTest +import ObjectiveRocks class RocksDBReadOnlyTests : RocksDBTests { diff --git a/Tests/RocksDBSnapshotTests.swift b/Tests/RocksDBSnapshotTests.swift index 194e9c3..48caab6 100644 --- a/Tests/RocksDBSnapshotTests.swift +++ b/Tests/RocksDBSnapshotTests.swift @@ -7,6 +7,7 @@ // import XCTest +import ObjectiveRocks class RocksDBSnapshotTests : RocksDBTests { diff --git a/Tests/RocksDBStatisticsTests.swift b/Tests/RocksDBStatisticsTests.swift index c53de8f..b96931a 100644 --- a/Tests/RocksDBStatisticsTests.swift +++ b/Tests/RocksDBStatisticsTests.swift @@ -7,6 +7,7 @@ // import XCTest +import ObjectiveRocks class RocksDBStatisticsTests : RocksDBTests { diff --git a/Tests/RocksDBWriteBatchTests.swift b/Tests/RocksDBWriteBatchTests.swift index e00a164..7e8f441 100644 --- a/Tests/RocksDBWriteBatchTests.swift +++ b/Tests/RocksDBWriteBatchTests.swift @@ -7,6 +7,7 @@ // import XCTest +import ObjectiveRocks class RocksDBWriteBatchTests : RocksDBTests { From 8709142cfbdee078cc51fa09e8f658eb890da1b5 Mon Sep 17 00:00:00 2001 From: iska Date: Sat, 7 Nov 2015 15:20:59 +0100 Subject: [PATCH 30/76] Add sample playground experiments --- ObjectiveRocks.playground/Contents.swift | 52 ++++++++++++++++++- ObjectiveRocks.playground/timeline.xctimeline | 11 ++++ 2 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 ObjectiveRocks.playground/timeline.xctimeline diff --git a/ObjectiveRocks.playground/Contents.swift b/ObjectiveRocks.playground/Contents.swift index 07ee6d2..801bdab 100644 --- a/ObjectiveRocks.playground/Contents.swift +++ b/ObjectiveRocks.playground/Contents.swift @@ -1,5 +1,55 @@ //: Playground - noun: a place where people can play import Cocoa +import XCPlayground +import ObjectiveRocks -var str = "Hello, playground" +XCPlaygroundPage.currentPage.needsIndefiniteExecution = true + +let url = XCPlaygroundSharedDataDirectoryURL.URLByAppendingPathComponent("Rocks") +try NSFileManager.defaultManager().removeItemAtPath(url.path!) + +let rocks = RocksDB.databaseAtPath(url.path) { options in + options.createIfMissing = true + options.keyType = .NSString + options.valueEncoder = { key, number in + var value: Int = (number as! NSNumber).integerValue + return NSData(bytes: &value, length: sizeof(Int)) + } + options.valueDecoder = { key, data in + var value: Int = 0 + data.getBytes(&value, length: sizeof(Int)) + return NSNumber(integer: value) + } +} + +guard rocks != nil else { + XCPlaygroundPage.currentPage.finishExecution() +} + +try rocks.performWriteBatch { batch, writeOptions -> Void in + batch.setObject(-10, forKey: "0001") + batch.setObject(9, forKey: "0011") + batch.setObject(-8, forKey: "0002") + batch.setObject(7, forKey: "0003") + batch.setObject(-6, forKey: "0012") + batch.setObject(5, forKey: "0004") + batch.setObject(-4, forKey: "0005") + batch.setObject(3, forKey: "0006") + batch.setObject(-2, forKey: "0007") + batch.setObject(11, forKey: "0008") + batch.setObject(1, forKey: "0009") +} + +rocks.iterator().enumerateKeysWithPrefix("000") { key, stop -> Void in + do { + let value = try rocks.objectForKey(key) + + if value.integerValue > 10 { + var shouldStop: ObjCBool = true + stop.initialize(shouldStop) + } + } catch {} +} + +XCPlaygroundPage.currentPage.finishExecution() diff --git a/ObjectiveRocks.playground/timeline.xctimeline b/ObjectiveRocks.playground/timeline.xctimeline new file mode 100644 index 0000000..7e8c30f --- /dev/null +++ b/ObjectiveRocks.playground/timeline.xctimeline @@ -0,0 +1,11 @@ + + + + + + + From 1dfe3876290108dfc901a6ca61a5c80741bddafc Mon Sep 17 00:00:00 2001 From: iska Date: Sat, 7 Nov 2015 16:10:34 +0100 Subject: [PATCH 31/76] Replace static library target with framework for iOS --- Code/ObjectiveRocks.h | 1 - ObjectiveRocks.xcodeproj/project.pbxproj | 1107 +++++++++-------- .../xcschemes/ObjectiveRocks-iOS.xcscheme | 30 +- .../ObjectiveRocksTests-iOS-Bridging-Header.h | 45 +- 4 files changed, 640 insertions(+), 543 deletions(-) diff --git a/Code/ObjectiveRocks.h b/Code/ObjectiveRocks.h index 6900291..ceb4e90 100644 --- a/Code/ObjectiveRocks.h +++ b/Code/ObjectiveRocks.h @@ -16,7 +16,6 @@ extern const unsigned char ObjectiveRocksVersionString[]; #import "RocksDBColumnFamily.h" #import "RocksDBColumnFamilyDescriptor.h" -#import "RocksDBColumnFamilyMetaData.h" #import "RocksDBIterator.h" #import "RocksDBPrefixExtractor.h" diff --git a/ObjectiveRocks.xcodeproj/project.pbxproj b/ObjectiveRocks.xcodeproj/project.pbxproj index 9bda5d5..f84a2ba 100644 --- a/ObjectiveRocks.xcodeproj/project.pbxproj +++ b/ObjectiveRocks.xcodeproj/project.pbxproj @@ -19,14 +19,11 @@ 621636161A62E47A00B132CE /* RocksDBSnapshotTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 621636141A62E47A00B132CE /* RocksDBSnapshotTests.swift */; }; 621636181A631CE100B132CE /* RocksDBCheckpointTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 621636171A631CE100B132CE /* RocksDBCheckpointTests.swift */; }; 6216361B1A631F2900B132CE /* RocksDBStatisticsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6216361A1A631F2900B132CE /* RocksDBStatisticsTests.swift */; }; + 621C6D971BEE4A4600044CB1 /* RocksDBStatistics.h in Headers */ = {isa = PBXBuildFile; fileRef = 62A8B0631A58DD7D0069B4C8 /* RocksDBStatistics.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 621C6D981BEE4A4600044CB1 /* RocksDBStatisticsHistogram.h in Headers */ = {isa = PBXBuildFile; fileRef = 62A8B0671A58E4B60069B4C8 /* RocksDBStatisticsHistogram.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 621C6D991BEE4BA900044CB1 /* RocksDBColumnFamilyMetadata.h in Headers */ = {isa = PBXBuildFile; fileRef = 62A74F841A603DDB00BAD95B /* RocksDBColumnFamilyMetadata.h */; settings = {ATTRIBUTES = (Public, ); }; }; 6221B7A71A629E1B00D28BF5 /* RockDBTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6221B7A41A629B3600D28BF5 /* RockDBTests.swift */; }; 6221B7A81A629E2700D28BF5 /* RockDBTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6221B7A41A629B3600D28BF5 /* RockDBTests.swift */; }; - 62297D531B6AC05000F72BF2 /* write_batch_with_index_internal.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62297D501B6AC05000F72BF2 /* write_batch_with_index_internal.cc */; }; - 62297D571B6AC08B00F72BF2 /* event_logger_helpers.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62297D541B6AC08B00F72BF2 /* event_logger_helpers.cc */; }; - 62297D5B1B6AC8CE00F72BF2 /* build_version.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62297D591B6AC8CE00F72BF2 /* build_version.cc */; }; - 622DB8671A7EA1D50026C73F /* memenv.cc in Sources */ = {isa = PBXBuildFile; fileRef = 622DB8651A7EA1CB0026C73F /* memenv.cc */; }; - 622DB86A1A7EA2310026C73F /* thread_status_updater_debug.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62451ACC1A4BC85400AF11C8 /* thread_status_updater_debug.cc */; }; - 6231475C1A5AE18A0019D14A /* RocksDBEnv.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6231475A1A5AE18A0019D14A /* RocksDBEnv.mm */; }; 6236E25C1A4E19A300A81ED6 /* RocksDBPrefixExtractorTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6236E25B1A4E19A300A81ED6 /* RocksDBPrefixExtractorTests.mm */; }; 62385EB41A2FCFB100493F18 /* RocksDBIteratorTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62385EB31A2FCFB100493F18 /* RocksDBIteratorTests.mm */; }; 62385EB61A2FD05500493F18 /* RocksDBComparatorTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62385EB51A2FD05500493F18 /* RocksDBComparatorTests.mm */; }; @@ -264,47 +261,223 @@ 62456CBB1A66FE0500329F11 /* RocksDBMergeOperatorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62456CBA1A66FE0500329F11 /* RocksDBMergeOperatorTests.swift */; }; 62456CBC1A66FE0500329F11 /* RocksDBMergeOperatorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62456CBA1A66FE0500329F11 /* RocksDBMergeOperatorTests.swift */; }; 6249A3CC1A4A43CA00949B07 /* RocksDBTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6249A3CB1A4A43CA00949B07 /* RocksDBTests.mm */; }; - 624C22191AF01485006DC8FA /* xfunc.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C22171AF01485006DC8FA /* xfunc.cc */; }; - 624C221D1AF014E0006DC8FA /* thread_status_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C221B1AF014E0006DC8FA /* thread_status_impl.cc */; }; - 624C22251AF015E4006DC8FA /* thread_status_util_debug.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C22231AF015E4006DC8FA /* thread_status_util_debug.cc */; }; - 624C22291AF0161E006DC8FA /* managed_iterator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C22261AF0161E006DC8FA /* managed_iterator.cc */; }; - 624C22351AF016EE006DC8FA /* json_document_builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C22331AF016EE006DC8FA /* json_document_builder.cc */; }; - 624C223A1AF0174B006DC8FA /* convenience.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C22381AF0174B006DC8FA /* convenience.cc */; }; - 624C22421AF017B6006DC8FA /* event_logger.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C223D1AF017B6006DC8FA /* event_logger.cc */; }; - 624C224C1AF01880006DC8FA /* slice.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C224A1AF01880006DC8FA /* slice.cc */; }; - 624C224F1AF0188C006DC8FA /* write_batch_base.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C224D1AF0188B006DC8FA /* write_batch_base.cc */; }; - 624C22581AF0195F006DC8FA /* flashcache.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C22551AF0195F006DC8FA /* flashcache.cc */; }; - 624C22611AF01C8E006DC8FA /* db_impl_experimental.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C225F1AF01C8E006DC8FA /* db_impl_experimental.cc */; }; - 624C22641AF01CA7006DC8FA /* experimental.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C22621AF01CA7006DC8FA /* experimental.cc */; }; - 624C226C1AF02B1B006DC8FA /* instrumented_mutex.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C22691AF02B1B006DC8FA /* instrumented_mutex.cc */; }; + 624F5DA01BEE41F500497FEF /* ObjectiveRocks.h in Headers */ = {isa = PBXBuildFile; fileRef = 62AEF9B81A1D5CF000E63E89 /* ObjectiveRocks.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 624F5DA11BEE41F500497FEF /* RocksDB.h in Headers */ = {isa = PBXBuildFile; fileRef = 6299F80C1A17B28200123F56 /* RocksDB.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 624F5DA31BEE41F500497FEF /* RocksDBTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 62451AC81A4BAEC000AF11C8 /* RocksDBTypes.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 624F5DA51BEE41F500497FEF /* RocksDBColumnFamily.h in Headers */ = {isa = PBXBuildFile; fileRef = 620629681A510D36001DEDC4 /* RocksDBColumnFamily.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 624F5DA61BEE41F500497FEF /* RocksDBColumnFamilyDescriptor.h in Headers */ = {isa = PBXBuildFile; fileRef = 62074F2B1A520EC2002B1885 /* RocksDBColumnFamilyDescriptor.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 624F5DA81BEE41F500497FEF /* RocksDBIterator.h in Headers */ = {isa = PBXBuildFile; fileRef = 62F8C6051B85632500E2577F /* RocksDBIterator.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 624F5DA91BEE41F500497FEF /* RocksDBPrefixExtractor.h in Headers */ = {isa = PBXBuildFile; fileRef = 6236E2551A4DD25000A81ED6 /* RocksDBPrefixExtractor.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 624F5DAA1BEE41F500497FEF /* RocksDBWriteBatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 623FE74E1A2D2ED500E68421 /* RocksDBWriteBatch.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 624F5DAB1BEE41F500497FEF /* RocksDBIndexedWriteBatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 62F8C5FD1B85386A00E2577F /* RocksDBIndexedWriteBatch.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 624F5DAC1BEE41F500497FEF /* RocksDBWriteBatchIterator.h in Headers */ = {isa = PBXBuildFile; fileRef = 62F8C6011B853ABA00E2577F /* RocksDBWriteBatchIterator.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 624F5DAD1BEE41F600497FEF /* RocksDBComparator.h in Headers */ = {isa = PBXBuildFile; fileRef = 623224AA1A2116A400FB6625 /* RocksDBComparator.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 624F5DAE1BEE41F600497FEF /* RocksDBOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 62AEF9B91A1D5DA900E63E89 /* RocksDBOptions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 624F5DAF1BEE41F600497FEF /* RocksDBEncodingOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 620629611A50ECCA001DEDC4 /* RocksDBEncodingOptions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 624F5DB01BEE41F600497FEF /* RocksDBDatabaseOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 620629641A510056001DEDC4 /* RocksDBDatabaseOptions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 624F5DB11BEE41F600497FEF /* RocksDBColumnFamilyOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 6206295E1A509DF1001DEDC4 /* RocksDBColumnFamilyOptions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 624F5DB21BEE41F600497FEF /* RocksDBWriteOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 6232B7331A1E80F900B14535 /* RocksDBWriteOptions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 624F5DB31BEE41F600497FEF /* RocksDBReadOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 6232B7361A1E860700B14535 /* RocksDBReadOptions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 624F5DB41BEE41F600497FEF /* RocksDBEnv.h in Headers */ = {isa = PBXBuildFile; fileRef = 623147591A5AE18A0019D14A /* RocksDBEnv.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 624F5DB61BEE41F600497FEF /* RocksDBTableFactory.h in Headers */ = {isa = PBXBuildFile; fileRef = 62F3ED591A574F7500EBFEBF /* RocksDBTableFactory.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 624F5DB71BEE41F600497FEF /* RocksDBBlockBasedTableOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 62F3ED4F1A57175F00EBFEBF /* RocksDBBlockBasedTableOptions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 624F5DBA1BEE41F600497FEF /* RocksDBCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 62F3ED531A57212800EBFEBF /* RocksDBCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 624F5DBB1BEE41F700497FEF /* RocksDBFilterPolicy.h in Headers */ = {isa = PBXBuildFile; fileRef = 62F3ED561A5727A300EBFEBF /* RocksDBFilterPolicy.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 624F5DBC1BEE41F700497FEF /* RocksDBMemTableRepFactory.h in Headers */ = {isa = PBXBuildFile; fileRef = 625F8F271A59D7B1007796BA /* RocksDBMemTableRepFactory.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 624F5DBD1BEE41F700497FEF /* RocksDBSnapshot.h in Headers */ = {isa = PBXBuildFile; fileRef = 620494851A3284A800A0E950 /* RocksDBSnapshot.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 624F5DBE1BEE41F700497FEF /* RocksDBSnapshotUnavailable.h in Headers */ = {isa = PBXBuildFile; fileRef = 628C51C71A3BD08500B96F8F /* RocksDBSnapshotUnavailable.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 624F5DBF1BEE41F700497FEF /* RocksDBCheckpoint.h in Headers */ = {isa = PBXBuildFile; fileRef = 625F8F211A59CF82007796BA /* RocksDBCheckpoint.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 624F5DC01BEE41F700497FEF /* RocksDBMergeOperator.h in Headers */ = {isa = PBXBuildFile; fileRef = 62EEC4B51A34FEE100624DA2 /* RocksDBMergeOperator.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 624F5DC61BEE437C00497FEF /* RocksDB.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6299F80E1A17B28200123F56 /* RocksDB.mm */; }; + 624F5DC81BEE437C00497FEF /* RocksDBTypes.m in Sources */ = {isa = PBXBuildFile; fileRef = 62451AC91A4BAEC000AF11C8 /* RocksDBTypes.m */; }; + 624F5DC91BEE437C00497FEF /* RocksDBError.mm in Sources */ = {isa = PBXBuildFile; fileRef = 628B0CE91A1C104D0099C39B /* RocksDBError.mm */; }; + 624F5DCA1BEE437C00497FEF /* RocksDBColumnFamily.mm in Sources */ = {isa = PBXBuildFile; fileRef = 620629691A510D36001DEDC4 /* RocksDBColumnFamily.mm */; }; + 624F5DCB1BEE437C00497FEF /* RocksDBColumnFamilyDescriptor.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62074F2C1A520EC2002B1885 /* RocksDBColumnFamilyDescriptor.mm */; }; + 624F5DCD1BEE437C00497FEF /* RocksDBIterator.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62F8C6061B85632500E2577F /* RocksDBIterator.mm */; }; + 624F5DCE1BEE437C00497FEF /* RocksDBPrefixExtractor.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6236E2561A4DD25000A81ED6 /* RocksDBPrefixExtractor.mm */; }; + 624F5DCF1BEE437C00497FEF /* RocksDBWriteBatch.mm in Sources */ = {isa = PBXBuildFile; fileRef = 623FE74F1A2D2ED500E68421 /* RocksDBWriteBatch.mm */; }; + 624F5DD01BEE437C00497FEF /* RocksDBIndexedWriteBatch.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62F8C5FE1B85386A00E2577F /* RocksDBIndexedWriteBatch.mm */; }; + 624F5DD11BEE437C00497FEF /* RocksDBWriteBatchIterator.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62F8C6021B853ABA00E2577F /* RocksDBWriteBatchIterator.mm */; }; + 624F5DD21BEE437C00497FEF /* RocksDBComparator.mm in Sources */ = {isa = PBXBuildFile; fileRef = 623224AB1A2116A400FB6625 /* RocksDBComparator.mm */; }; + 624F5DD31BEE437C00497FEF /* RocksDBOptions.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62AEF9BA1A1D5DA900E63E89 /* RocksDBOptions.mm */; }; + 624F5DD41BEE437C00497FEF /* RocksDBEncodingOptions.mm in Sources */ = {isa = PBXBuildFile; fileRef = 620629621A50ECCA001DEDC4 /* RocksDBEncodingOptions.mm */; }; + 624F5DD51BEE437C00497FEF /* RocksDBDatabaseOptions.mm in Sources */ = {isa = PBXBuildFile; fileRef = 620629651A510056001DEDC4 /* RocksDBDatabaseOptions.mm */; }; + 624F5DD61BEE437C00497FEF /* RocksDBColumnFamilyOptions.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6206295F1A509DF1001DEDC4 /* RocksDBColumnFamilyOptions.mm */; }; + 624F5DD71BEE437C00497FEF /* RocksDBWriteOptions.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6232B7341A1E80F900B14535 /* RocksDBWriteOptions.mm */; }; + 624F5DD81BEE437C00497FEF /* RocksDBReadOptions.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6232B7371A1E860700B14535 /* RocksDBReadOptions.mm */; }; + 624F5DD91BEE437C00497FEF /* RocksDBEnv.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6231475A1A5AE18A0019D14A /* RocksDBEnv.mm */; }; + 624F5DDB1BEE437C00497FEF /* RocksDBTableFactory.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62F3ED5A1A574F7500EBFEBF /* RocksDBTableFactory.mm */; }; + 624F5DDC1BEE437C00497FEF /* RocksDBBlockBasedTableOptions.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62F3ED501A57175F00EBFEBF /* RocksDBBlockBasedTableOptions.mm */; }; + 624F5DDF1BEE437C00497FEF /* RocksDBCache.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62F3ED541A57212800EBFEBF /* RocksDBCache.mm */; }; + 624F5DE01BEE437C00497FEF /* RocksDBFilterPolicy.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62F3ED571A5727A300EBFEBF /* RocksDBFilterPolicy.mm */; }; + 624F5DE11BEE437C00497FEF /* RocksDBMemTableRepFactory.mm in Sources */ = {isa = PBXBuildFile; fileRef = 625F8F281A59D7B1007796BA /* RocksDBMemTableRepFactory.mm */; }; + 624F5DE21BEE437C00497FEF /* RocksDBSnapshot.mm in Sources */ = {isa = PBXBuildFile; fileRef = 620494861A3284A800A0E950 /* RocksDBSnapshot.mm */; }; + 624F5DE51BEE437C00497FEF /* RocksDBStatistics.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62A8B0641A58DD7D0069B4C8 /* RocksDBStatistics.mm */; }; + 624F5DE61BEE437C00497FEF /* RocksDBStatisticsHistogram.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62A8B0681A58E4B60069B4C8 /* RocksDBStatisticsHistogram.mm */; }; + 624F5DE91BEE438400497FEF /* RocksDBCallbackComparator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 62376BBD1A20EDF000C85DFB /* RocksDBCallbackComparator.cpp */; }; + 624F5DEA1BEE438400497FEF /* RocksDBCallbackAssociativeMergeOperator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 62EEC4B81A34FF0600624DA2 /* RocksDBCallbackAssociativeMergeOperator.cpp */; }; + 624F5DEB1BEE438400497FEF /* RocksDBCallbackMergeOperator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6214FD071A3F698300B92E5C /* RocksDBCallbackMergeOperator.cpp */; }; + 624F5DEC1BEE438400497FEF /* RocksDBCallbackSliceTransform.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6236E2581A4DD71600A81ED6 /* RocksDBCallbackSliceTransform.cpp */; }; + 624F5DED1BEE441900497FEF /* RocksDBMergeOperator.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62EEC4B61A34FEE100624DA2 /* RocksDBMergeOperator.mm */; }; + 624F5E3E1BEE44E700497FEF /* builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29141A1ABA1F00486C31 /* builder.cc */; }; + 624F5E3F1BEE44E700497FEF /* c.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29171A1ABA1F00486C31 /* c.cc */; }; + 624F5E401BEE44E700497FEF /* column_family.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE291A1A1ABA1F00486C31 /* column_family.cc */; }; + 624F5E411BEE44E700497FEF /* compaction.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE291E1A1ABA1F00486C31 /* compaction.cc */; }; + 624F5E421BEE44E700497FEF /* compaction_job.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29211A1ABA1F00486C31 /* compaction_job.cc */; }; + 624F5E431BEE44E700497FEF /* compaction_picker.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29251A1ABA1F00486C31 /* compaction_picker.cc */; }; + 624F5E441BEE44E700497FEF /* db_filesnapshot.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE292D1A1ABA1F00486C31 /* db_filesnapshot.cc */; }; + 624F5E451BEE44E700497FEF /* db_impl_experimental.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C225F1AF01C8E006DC8FA /* db_impl_experimental.cc */; }; + 624F5E461BEE44E700497FEF /* db_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE292F1A1ABA1F00486C31 /* db_impl.cc */; }; + 624F5E471BEE44E700497FEF /* db_impl_debug.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29321A1ABA1F00486C31 /* db_impl_debug.cc */; }; + 624F5E481BEE44E700497FEF /* db_impl_readonly.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29341A1ABA1F00486C31 /* db_impl_readonly.cc */; }; + 624F5E491BEE44E700497FEF /* db_iter.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29371A1ABA1F00486C31 /* db_iter.cc */; }; + 624F5E4A1BEE44E700497FEF /* dbformat.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE293C1A1ABA1F00486C31 /* dbformat.cc */; }; + 624F5E4B1BEE44E700497FEF /* event_logger_helpers.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62297D541B6AC08B00F72BF2 /* event_logger_helpers.cc */; }; + 624F5E4C1BEE44E700497FEF /* experimental.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C22621AF01CA7006DC8FA /* experimental.cc */; }; + 624F5E4D1BEE44E700497FEF /* file_indexer.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29411A1ABA1F00486C31 /* file_indexer.cc */; }; + 624F5E4E1BEE44E700497FEF /* filename.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29451A1ABA1F00486C31 /* filename.cc */; }; + 624F5E4F1BEE44E700497FEF /* flush_job.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29491A1ABA1F00486C31 /* flush_job.cc */; }; + 624F5E501BEE44E700497FEF /* flush_scheduler.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE294D1A1ABA1F00486C31 /* flush_scheduler.cc */; }; + 624F5E511BEE44E700497FEF /* forward_iterator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29501A1ABA1F00486C31 /* forward_iterator.cc */; }; + 624F5E521BEE44E700497FEF /* internal_stats.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29531A1ABA1F00486C31 /* internal_stats.cc */; }; + 624F5E531BEE44E700497FEF /* log_reader.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE295A1A1ABA1F00486C31 /* log_reader.cc */; }; + 624F5E541BEE44E700497FEF /* log_writer.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE295E1A1ABA1F00486C31 /* log_writer.cc */; }; + 624F5E551BEE44E700497FEF /* managed_iterator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C22261AF0161E006DC8FA /* managed_iterator.cc */; }; + 624F5E561BEE44E700497FEF /* memtable.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29611A1ABA1F00486C31 /* memtable.cc */; }; + 624F5E571BEE44E700497FEF /* memtable_allocator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 6235339E1A47722900D5CD14 /* memtable_allocator.cc */; }; + 624F5E581BEE44E700497FEF /* memtable_list.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29641A1ABA1F00486C31 /* memtable_list.cc */; }; + 624F5E591BEE44E700497FEF /* merge_helper.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29681A1ABA1F00486C31 /* merge_helper.cc */; }; + 624F5E5A1BEE44E700497FEF /* merge_operator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE296B1A1ABA1F00486C31 /* merge_operator.cc */; }; + 624F5E5B1BEE44E700497FEF /* repair.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29711A1ABA1F00486C31 /* repair.cc */; }; + 624F5E5C1BEE44E700497FEF /* slice.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C224A1AF01880006DC8FA /* slice.cc */; }; + 624F5E5D1BEE44E700497FEF /* table_cache.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29761A1ABA1F00486C31 /* table_cache.cc */; }; + 624F5E5E1BEE44E700497FEF /* table_properties_collector.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29791A1ABA1F00486C31 /* table_properties_collector.cc */; }; + 624F5E5F1BEE44E700497FEF /* transaction_log_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE297D1A1ABA1F00486C31 /* transaction_log_impl.cc */; }; + 624F5E601BEE44E700497FEF /* version_builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29801A1ABA1F00486C31 /* version_builder.cc */; }; + 624F5E611BEE44E700497FEF /* version_edit.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29841A1ABA1F00486C31 /* version_edit.cc */; }; + 624F5E621BEE44E700497FEF /* version_set.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29881A1ABA1F00486C31 /* version_set.cc */; }; + 624F5E631BEE44E700497FEF /* wal_manager.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE298C1A1ABA1F00486C31 /* wal_manager.cc */; }; + 624F5E641BEE44E700497FEF /* write_batch_base.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C224D1AF0188B006DC8FA /* write_batch_base.cc */; }; + 624F5E651BEE44E800497FEF /* write_batch.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29901A1ABA1F00486C31 /* write_batch.cc */; }; + 624F5E661BEE44E800497FEF /* write_controller.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29941A1ABA1F00486C31 /* write_controller.cc */; }; + 624F5E671BEE44E800497FEF /* write_thread.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29981A1ABA1F00486C31 /* write_thread.cc */; }; + 624F5E681BEE44E800497FEF /* port_posix.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2A7E1A1ABA1F00486C31 /* port_posix.cc */; }; + 624F5E691BEE44E800497FEF /* stack_trace.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2A821A1ABA1F00486C31 /* stack_trace.cc */; }; + 624F5E6A1BEE44E800497FEF /* adaptive_table_factory.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2A8A1A1ABA1F00486C31 /* adaptive_table_factory.cc */; }; + 624F5E6B1BEE44E800497FEF /* block.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2A8D1A1ABA1F00486C31 /* block.cc */; }; + 624F5E6C1BEE44E800497FEF /* block_based_filter_block.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2A901A1ABA1F00486C31 /* block_based_filter_block.cc */; }; + 624F5E6D1BEE44E800497FEF /* block_based_table_builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2A941A1ABA1F00486C31 /* block_based_table_builder.cc */; }; + 624F5E6E1BEE44E800497FEF /* block_based_table_factory.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2A971A1ABA1F00486C31 /* block_based_table_factory.cc */; }; + 624F5E6F1BEE44E800497FEF /* block_based_table_reader.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2A9A1A1ABA1F00486C31 /* block_based_table_reader.cc */; }; + 624F5E701BEE44E800497FEF /* block_builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2A9D1A1ABA1F00486C31 /* block_builder.cc */; }; + 624F5E711BEE44E800497FEF /* block_hash_index.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AA01A1ABA1F00486C31 /* block_hash_index.cc */; }; + 624F5E721BEE44E800497FEF /* block_prefix_index.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AA41A1ABA1F00486C31 /* block_prefix_index.cc */; }; + 624F5E731BEE44E800497FEF /* bloom_block.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AA81A1ABA1F00486C31 /* bloom_block.cc */; }; + 624F5E741BEE44E800497FEF /* cuckoo_table_builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AAB1A1ABA1F00486C31 /* cuckoo_table_builder.cc */; }; + 624F5E751BEE44E800497FEF /* cuckoo_table_factory.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AAF1A1ABA1F00486C31 /* cuckoo_table_factory.cc */; }; + 624F5E761BEE44E800497FEF /* cuckoo_table_reader.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AB21A1ABA1F00486C31 /* cuckoo_table_reader.cc */; }; + 624F5E771BEE44E800497FEF /* flush_block_policy.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AB71A1ABA1F00486C31 /* flush_block_policy.cc */; }; + 624F5E781BEE44E800497FEF /* format.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AB91A1ABA1F00486C31 /* format.cc */; }; + 624F5E791BEE44E800497FEF /* full_filter_block.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2ABC1A1ABA1F00486C31 /* full_filter_block.cc */; }; + 624F5E7A1BEE44E800497FEF /* get_context.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AC01A1ABA1F00486C31 /* get_context.cc */; }; + 624F5E7B1BEE44E800497FEF /* iterator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AC41A1ABA1F00486C31 /* iterator.cc */; }; + 624F5E7C1BEE44E800497FEF /* merger.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AC71A1ABA1F00486C31 /* merger.cc */; }; + 624F5E7D1BEE44E800497FEF /* meta_blocks.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2ACB1A1ABA1F00486C31 /* meta_blocks.cc */; }; + 624F5E7E1BEE44E800497FEF /* plain_table_builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AD01A1ABA1F00486C31 /* plain_table_builder.cc */; }; + 624F5E7F1BEE44E800497FEF /* plain_table_factory.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AD31A1ABA1F00486C31 /* plain_table_factory.cc */; }; + 624F5E801BEE44E800497FEF /* plain_table_index.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AD61A1ABA1F00486C31 /* plain_table_index.cc */; }; + 624F5E811BEE44E800497FEF /* plain_table_key_coding.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AD91A1ABA1F00486C31 /* plain_table_key_coding.cc */; }; + 624F5E821BEE44E800497FEF /* plain_table_reader.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2ADC1A1ABA1F00486C31 /* plain_table_reader.cc */; }; + 624F5E831BEE44E800497FEF /* table_properties.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AE01A1ABA1F00486C31 /* table_properties.cc */; }; + 624F5E841BEE44E800497FEF /* two_level_iterator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AE61A1ABA1F00486C31 /* two_level_iterator.cc */; }; + 624F5E851BEE44E800497FEF /* arena.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B061A1ABA2000486C31 /* arena.cc */; }; + 624F5E861BEE44E800497FEF /* auto_roll_logger.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B0A1A1ABA2000486C31 /* auto_roll_logger.cc */; }; + 624F5E871BEE44E800497FEF /* bloom.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B171A1ABA2000486C31 /* bloom.cc */; }; + 624F5E881BEE44E800497FEF /* build_version.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62297D591B6AC8CE00F72BF2 /* build_version.cc */; }; + 624F5E891BEE44E800497FEF /* cache.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B1D1A1ABA2000486C31 /* cache.cc */; }; + 624F5E8A1BEE44E800497FEF /* coding.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B211A1ABA2000486C31 /* coding.cc */; }; + 624F5E8B1BEE44E800497FEF /* comparator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B251A1ABA2000486C31 /* comparator.cc */; }; + 624F5E8C1BEE44E800497FEF /* crc32c.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B271A1ABA2000486C31 /* crc32c.cc */; }; + 624F5E8D1BEE44E800497FEF /* db_info_dumper.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B2B1A1ABA2000486C31 /* db_info_dumper.cc */; }; + 624F5E8E1BEE44E800497FEF /* dynamic_bloom.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B2E1A1ABA2000486C31 /* dynamic_bloom.cc */; }; + 624F5E8F1BEE44E800497FEF /* env.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B321A1ABA2000486C31 /* env.cc */; }; + 624F5E901BEE44E800497FEF /* env_hdfs.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B341A1ABA2000486C31 /* env_hdfs.cc */; }; + 624F5E911BEE44E800497FEF /* env_posix.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B361A1ABA2000486C31 /* env_posix.cc */; }; + 624F5E921BEE44E800497FEF /* event_logger.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C223D1AF017B6006DC8FA /* event_logger.cc */; }; + 624F5E931BEE44E800497FEF /* file_util.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B391A1ABA2000486C31 /* file_util.cc */; }; + 624F5E941BEE44E800497FEF /* filter_policy.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B3D1A1ABA2000486C31 /* filter_policy.cc */; }; + 624F5E951BEE44E800497FEF /* hash.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B3F1A1ABA2000486C31 /* hash.cc */; }; + 624F5E961BEE44E800497FEF /* hash_cuckoo_rep.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B421A1ABA2000486C31 /* hash_cuckoo_rep.cc */; }; + 624F5E971BEE44E800497FEF /* hash_linklist_rep.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B451A1ABA2000486C31 /* hash_linklist_rep.cc */; }; + 624F5E981BEE44E800497FEF /* hash_skiplist_rep.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B481A1ABA2000486C31 /* hash_skiplist_rep.cc */; }; + 624F5E991BEE44E800497FEF /* histogram.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B4B1A1ABA2000486C31 /* histogram.cc */; }; + 624F5E9A1BEE44E800497FEF /* instrumented_mutex.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C22691AF02B1B006DC8FA /* instrumented_mutex.cc */; }; + 624F5E9B1BEE44E800497FEF /* iostats_context.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B4F1A1ABA2000486C31 /* iostats_context.cc */; }; + 624F5E9C1BEE44E800497FEF /* log_buffer.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B581A1ABA2000486C31 /* log_buffer.cc */; }; + 624F5E9D1BEE44E800497FEF /* logging.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B5C1A1ABA2000486C31 /* logging.cc */; }; + 624F5E9E1BEE44E800497FEF /* memenv.cc in Sources */ = {isa = PBXBuildFile; fileRef = 622DB8651A7EA1CB0026C73F /* memenv.cc */; }; + 624F5E9F1BEE44E800497FEF /* murmurhash.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B631A1ABA2000486C31 /* murmurhash.cc */; }; + 624F5EA01BEE44E800497FEF /* mutable_cf_options.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B661A1ABA2000486C31 /* mutable_cf_options.cc */; }; + 624F5EA11BEE44E800497FEF /* options.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B6A1A1ABA2000486C31 /* options.cc */; }; + 624F5EA21BEE44E800497FEF /* options_builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B6C1A1ABA2000486C31 /* options_builder.cc */; }; + 624F5EA31BEE44E800497FEF /* options_helper.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B6E1A1ABA2000486C31 /* options_helper.cc */; }; + 624F5EA41BEE44E800497FEF /* perf_context.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B721A1ABA2000486C31 /* perf_context.cc */; }; + 624F5EA51BEE44E800497FEF /* rate_limiter.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B771A1ABA2000486C31 /* rate_limiter.cc */; }; + 624F5EA61BEE44E800497FEF /* skiplistrep.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B7D1A1ABA2000486C31 /* skiplistrep.cc */; }; + 624F5EA71BEE44E800497FEF /* slice.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B7F1A1ABA2000486C31 /* slice.cc */; }; + 624F5EA91BEE44E800497FEF /* statistics.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B831A1ABA2000486C31 /* statistics.cc */; }; + 624F5EAA1BEE44E800497FEF /* status.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B861A1ABA2000486C31 /* status.cc */; }; + 624F5EAB1BEE44E900497FEF /* string_util.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B8A1A1ABA2000486C31 /* string_util.cc */; }; + 624F5EAC1BEE44E900497FEF /* sst_dump_tool.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62451AD41A4BD61700AF11C8 /* sst_dump_tool.cc */; }; + 624F5EAD1BEE44E900497FEF /* sync_point.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B8D1A1ABA2000486C31 /* sync_point.cc */; }; + 624F5EAF1BEE44E900497FEF /* testutil.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B921A1ABA2000486C31 /* testutil.cc */; }; + 624F5EB01BEE44E900497FEF /* thread_local.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B941A1ABA2000486C31 /* thread_local.cc */; }; + 624F5EB11BEE44E900497FEF /* thread_status_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C221B1AF014E0006DC8FA /* thread_status_impl.cc */; }; + 624F5EB21BEE44E900497FEF /* thread_status_updater_debug.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62451ACC1A4BC85400AF11C8 /* thread_status_updater_debug.cc */; }; + 624F5EB31BEE44E900497FEF /* thread_status_updater.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62451ACD1A4BC85400AF11C8 /* thread_status_updater.cc */; }; + 624F5EB41BEE44E900497FEF /* thread_status_util_debug.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C22231AF015E4006DC8FA /* thread_status_util_debug.cc */; }; + 624F5EB51BEE44E900497FEF /* thread_status_util.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62451ACF1A4BC85400AF11C8 /* thread_status_util.cc */; }; + 624F5EB61BEE44E900497FEF /* vectorrep.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B981A1ABA2000486C31 /* vectorrep.cc */; }; + 624F5EB71BEE44E900497FEF /* xfunc.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C22171AF01485006DC8FA /* xfunc.cc */; }; + 624F5EB81BEE44E900497FEF /* xxhash.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B9A1A1ABA2000486C31 /* xxhash.cc */; }; + 624F5EB91BEE44E900497FEF /* backupable_db.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B9F1A1ABA2000486C31 /* backupable_db.cc */; }; + 624F5EBA1BEE44E900497FEF /* checkpoint.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62269EDB1A1FF27A005A58D3 /* checkpoint.cc */; }; + 624F5EBB1BEE44E900497FEF /* compacted_db_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BA31A1ABA2000486C31 /* compacted_db_impl.cc */; }; + 624F5EBC1BEE44E900497FEF /* convenience.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C22381AF0174B006DC8FA /* convenience.cc */; }; + 624F5EBD1BEE44E900497FEF /* document_db.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BA71A1ABA2000486C31 /* document_db.cc */; }; + 624F5EBE1BEE44E900497FEF /* json_document_builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C22331AF016EE006DC8FA /* json_document_builder.cc */; }; + 624F5EBF1BEE44E900497FEF /* json_document.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BAA1A1ABA2000486C31 /* json_document.cc */; }; + 624F5EC01BEE44E900497FEF /* flashcache.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C22551AF0195F006DC8FA /* flashcache.cc */; }; + 624F5EC11BEE44E900497FEF /* geodb_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BAE1A1ABA2000486C31 /* geodb_impl.cc */; }; + 624F5EC21BEE44E900497FEF /* leveldb_options.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62269EDF1A1FF2DC005A58D3 /* leveldb_options.cc */; }; + 624F5EC31BEE44E900497FEF /* put.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BB31A1ABA2000486C31 /* put.cc */; }; + 624F5EC41BEE44E900497FEF /* stringappend.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BB61A1ABA2000486C31 /* stringappend.cc */; }; + 624F5EC51BEE44E900497FEF /* stringappend2.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BB91A1ABA2000486C31 /* stringappend2.cc */; }; + 624F5EC61BEE44E900497FEF /* uint64add.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BBD1A1ABA2000486C31 /* uint64add.cc */; }; + 624F5EC71BEE44E900497FEF /* redis_lists.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BC41A1ABA2000486C31 /* redis_lists.cc */; }; + 624F5EC81BEE44E900497FEF /* spatial_db.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BC91A1ABA2000486C31 /* spatial_db.cc */; }; + 624F5EC91BEE44E900497FEF /* db_ttl_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BCE1A1ABA2000486C31 /* db_ttl_impl.cc */; }; + 624F5ECA1BEE44E900497FEF /* write_batch_with_index_internal.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62297D501B6AC05000F72BF2 /* write_batch_with_index_internal.cc */; }; + 624F5ECB1BEE44E900497FEF /* write_batch_with_index.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BD31A1ABA2000486C31 /* write_batch_with_index.cc */; }; + 624F5ECE1BEE452700497FEF /* ObjectiveRocks.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 624F5D981BEE416D00497FEF /* ObjectiveRocks.framework */; }; + 624F5ED01BEE456100497FEF /* RocksDBError.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B0CE81A1C104D0099C39B /* RocksDBError.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 624F5ED91BEE456100497FEF /* RocksDB+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 6221B78A1A62970800D28BF5 /* RocksDB+Private.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 624F5EDA1BEE456100497FEF /* RocksDBOptions+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 62F9D8A51B86AE8900C65860 /* RocksDBOptions+Private.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 624F5EDB1BEE456100497FEF /* RocksDBColumnFamily+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 6221B78E1A62973500D28BF5 /* RocksDBColumnFamily+Private.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 624F5EDC1BEE456100497FEF /* RocksDBColumnFamilyMetaData+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 6221B7921A62976F00D28BF5 /* RocksDBColumnFamilyMetaData+Private.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 624F5EDD1BEE456100497FEF /* RocksDBIterator+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 6221B7961A6298AD00D28BF5 /* RocksDBIterator+Private.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 624F5EDE1BEE456100497FEF /* RocksDBWriteBatch+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 6221B79A1A6298F800D28BF5 /* RocksDBWriteBatch+Private.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 624F5EDF1BEE456200497FEF /* RocksDBWriteBatchIterator+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 62F9D8A11B86A74900C65860 /* RocksDBWriteBatchIterator+Private.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 624F5EE01BEE456200497FEF /* RocksDBSnapshot+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 6221B79E1A629A4F00D28BF5 /* RocksDBSnapshot+Private.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 624F5EE11BEE456200497FEF /* RocksDBCallbackComparator.h in Headers */ = {isa = PBXBuildFile; fileRef = 62376BBE1A20EDF000C85DFB /* RocksDBCallbackComparator.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 624F5EE21BEE456200497FEF /* RocksDBCallbackAssociativeMergeOperator.h in Headers */ = {isa = PBXBuildFile; fileRef = 62EEC4B91A34FF0600624DA2 /* RocksDBCallbackAssociativeMergeOperator.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 624F5EE31BEE456200497FEF /* RocksDBCallbackMergeOperator.h in Headers */ = {isa = PBXBuildFile; fileRef = 6214FD081A3F698300B92E5C /* RocksDBCallbackMergeOperator.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 624F5EE41BEE456200497FEF /* RocksDBCallbackSliceTransform.h in Headers */ = {isa = PBXBuildFile; fileRef = 6236E2591A4DD71600A81ED6 /* RocksDBCallbackSliceTransform.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 624F5EE51BEE456200497FEF /* RocksDBSlice.h in Headers */ = {isa = PBXBuildFile; fileRef = 623D3C201A37C4FF00389207 /* RocksDBSlice.h */; settings = {ATTRIBUTES = (Private, ); }; }; 6251A3731B783DA7009BABD5 /* RocksDBReadOnlyTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 6251A3721B783DA7009BABD5 /* RocksDBReadOnlyTests.m */; }; 6251A3751B783DBC009BABD5 /* RocksDBReadOnlyTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6251A3741B783DBC009BABD5 /* RocksDBReadOnlyTests.swift */; }; 625F8F1F1A59C9B3007796BA /* RocksDBPropertiesTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 625F8F1E1A59C9B3007796BA /* RocksDBPropertiesTests.mm */; }; 625F8F251A59D11D007796BA /* RocksDBCheckpointTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 625F8F241A59D11D007796BA /* RocksDBCheckpointTests.mm */; }; - 625F8F2A1A59D7B1007796BA /* RocksDBMemTableRepFactory.mm in Sources */ = {isa = PBXBuildFile; fileRef = 625F8F281A59D7B1007796BA /* RocksDBMemTableRepFactory.mm */; }; - 625F8F2B1A59DE25007796BA /* RocksDBStatistics.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62A8B0641A58DD7D0069B4C8 /* RocksDBStatistics.mm */; }; - 625F8F2D1A59DEF2007796BA /* RocksDBStatisticsHistogram.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62A8B0681A58E4B60069B4C8 /* RocksDBStatisticsHistogram.mm */; }; - 625F8F721A5A229C007796BA /* RocksDB.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 6299F80C1A17B28200123F56 /* RocksDB.h */; }; - 625F8F731A5A229C007796BA /* RocksDBTypes.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 62451AC81A4BAEC000AF11C8 /* RocksDBTypes.h */; }; - 625F8F741A5A229C007796BA /* RocksDBError.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 628B0CE81A1C104D0099C39B /* RocksDBError.h */; }; - 625F8F751A5A229C007796BA /* RocksDBColumnFamily.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 620629681A510D36001DEDC4 /* RocksDBColumnFamily.h */; }; - 625F8F761A5A229C007796BA /* RocksDBColumnFamilyDescriptor.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 62074F2B1A520EC2002B1885 /* RocksDBColumnFamilyDescriptor.h */; }; - 625F8F781A5A229C007796BA /* RocksDBPrefixExtractor.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 6236E2551A4DD25000A81ED6 /* RocksDBPrefixExtractor.h */; }; - 625F8F791A5A229C007796BA /* RocksDBWriteBatch.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 623FE74E1A2D2ED500E68421 /* RocksDBWriteBatch.h */; }; - 625F8F7A1A5A229C007796BA /* RocksDBComparator.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 623224AA1A2116A400FB6625 /* RocksDBComparator.h */; }; - 625F8F7B1A5A229C007796BA /* RocksDBOptions.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 62AEF9B91A1D5DA900E63E89 /* RocksDBOptions.h */; }; - 625F8F7C1A5A229C007796BA /* RocksDBEncodingOptions.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 620629611A50ECCA001DEDC4 /* RocksDBEncodingOptions.h */; }; - 625F8F7D1A5A229C007796BA /* RocksDBDatabaseOptions.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 620629641A510056001DEDC4 /* RocksDBDatabaseOptions.h */; }; - 625F8F7E1A5A229C007796BA /* RocksDBColumnFamilyOptions.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 6206295E1A509DF1001DEDC4 /* RocksDBColumnFamilyOptions.h */; }; - 625F8F7F1A5A229C007796BA /* RocksDBWriteOptions.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 6232B7331A1E80F900B14535 /* RocksDBWriteOptions.h */; }; - 625F8F801A5A229C007796BA /* RocksDBReadOptions.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 6232B7361A1E860700B14535 /* RocksDBReadOptions.h */; }; - 625F8F811A5A229C007796BA /* RocksDBTableFactory.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 62F3ED591A574F7500EBFEBF /* RocksDBTableFactory.h */; }; - 625F8F821A5A229C007796BA /* RocksDBBlockBasedTableOptions.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 62F3ED4F1A57175F00EBFEBF /* RocksDBBlockBasedTableOptions.h */; }; - 625F8F831A5A229C007796BA /* RocksDBCache.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 62F3ED531A57212800EBFEBF /* RocksDBCache.h */; }; - 625F8F841A5A229C007796BA /* RocksDBFilterPolicy.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 62F3ED561A5727A300EBFEBF /* RocksDBFilterPolicy.h */; }; - 625F8F851A5A229C007796BA /* RocksDBMemTableRepFactory.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 625F8F271A59D7B1007796BA /* RocksDBMemTableRepFactory.h */; }; - 625F8F861A5A229C007796BA /* RocksDBSnapshot.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 620494851A3284A800A0E950 /* RocksDBSnapshot.h */; }; - 625F8F871A5A229C007796BA /* RocksDBMergeOperator.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 62EEC4B51A34FEE100624DA2 /* RocksDBMergeOperator.h */; }; 62662E931B8FCA8C008B4EF5 /* RocksDBIndexedWriteBatchTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 62662E921B8FCA8C008B4EF5 /* RocksDBIndexedWriteBatchTests.m */; }; 62662E941B8FCA8C008B4EF5 /* RocksDBIndexedWriteBatchTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 62662E921B8FCA8C008B4EF5 /* RocksDBIndexedWriteBatchTests.m */; }; 62662E961B8FCBA0008B4EF5 /* RocksDBIndexedWriteBatch.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62662E951B8FCBA0008B4EF5 /* RocksDBIndexedWriteBatch.swift */; }; @@ -315,157 +488,6 @@ 6299F8561A17B7AD00123F56 /* RocksDBBasicTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6299F8551A17B7AD00123F56 /* RocksDBBasicTests.mm */; }; 62A37D141A632316003F6095 /* RocksDBIteratorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62A37D131A632316003F6095 /* RocksDBIteratorTests.swift */; }; 62A37D151A632316003F6095 /* RocksDBIteratorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62A37D131A632316003F6095 /* RocksDBIteratorTests.swift */; }; - 62A8AF981A58C30E0069B4C8 /* memtable.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29611A1ABA1F00486C31 /* memtable.cc */; }; - 62A8AF991A58C30E0069B4C8 /* hash.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B3F1A1ABA2000486C31 /* hash.cc */; }; - 62A8AF9A1A58C30E0069B4C8 /* RocksDBCallbackMergeOperator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6214FD071A3F698300B92E5C /* RocksDBCallbackMergeOperator.cpp */; }; - 62A8AF9B1A58C30E0069B4C8 /* hash_skiplist_rep.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B481A1ABA2000486C31 /* hash_skiplist_rep.cc */; }; - 62A8AF9C1A58C30E0069B4C8 /* logging.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B5C1A1ABA2000486C31 /* logging.cc */; }; - 62A8AF9D1A58C30E0069B4C8 /* compacted_db_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BA31A1ABA2000486C31 /* compacted_db_impl.cc */; }; - 62A8AF9F1A58C30E0069B4C8 /* stringappend.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BB61A1ABA2000486C31 /* stringappend.cc */; }; - 62A8AFA01A58C30E0069B4C8 /* geodb_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BAE1A1ABA2000486C31 /* geodb_impl.cc */; }; - 62A8AFA11A58C30E0069B4C8 /* file_indexer.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29411A1ABA1F00486C31 /* file_indexer.cc */; }; - 62A8AFA21A58C30E0069B4C8 /* RocksDBSnapshot.mm in Sources */ = {isa = PBXBuildFile; fileRef = 620494861A3284A800A0E950 /* RocksDBSnapshot.mm */; }; - 62A8AFA31A58C30E0069B4C8 /* merge_helper.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29681A1ABA1F00486C31 /* merge_helper.cc */; }; - 62A8AFA41A58C30E0069B4C8 /* two_level_iterator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AE61A1ABA1F00486C31 /* two_level_iterator.cc */; }; - 62A8AFA51A58C30E0069B4C8 /* spatial_db.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BC91A1ABA2000486C31 /* spatial_db.cc */; }; - 62A8AFA61A58C30E0069B4C8 /* block_prefix_index.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AA41A1ABA1F00486C31 /* block_prefix_index.cc */; }; - 62A8AFA71A58C30E0069B4C8 /* RocksDBWriteBatch.mm in Sources */ = {isa = PBXBuildFile; fileRef = 623FE74F1A2D2ED500E68421 /* RocksDBWriteBatch.mm */; }; - 62A8AFA81A58C30E0069B4C8 /* adaptive_table_factory.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2A8A1A1ABA1F00486C31 /* adaptive_table_factory.cc */; }; - 62A8AFA91A58C30E0069B4C8 /* plain_table_key_coding.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AD91A1ABA1F00486C31 /* plain_table_key_coding.cc */; }; - 62A8AFAA1A58C30E0069B4C8 /* RocksDBOptions.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62AEF9BA1A1D5DA900E63E89 /* RocksDBOptions.mm */; }; - 62A8AFAB1A58C30E0069B4C8 /* port_posix.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2A7E1A1ABA1F00486C31 /* port_posix.cc */; }; - 62A8AFAC1A58C30E0069B4C8 /* comparator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B251A1ABA2000486C31 /* comparator.cc */; }; - 62A8AFAD1A58C30E0069B4C8 /* RocksDBColumnFamily.mm in Sources */ = {isa = PBXBuildFile; fileRef = 620629691A510D36001DEDC4 /* RocksDBColumnFamily.mm */; }; - 62A8AFAE1A58C30E0069B4C8 /* skiplistrep.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B7D1A1ABA2000486C31 /* skiplistrep.cc */; }; - 62A8AFAF1A58C30E0069B4C8 /* hash_linklist_rep.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B451A1ABA2000486C31 /* hash_linklist_rep.cc */; }; - 62A8AFB01A58C30E0069B4C8 /* memtable_allocator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 6235339E1A47722900D5CD14 /* memtable_allocator.cc */; }; - 62A8AFB11A58C30E0069B4C8 /* flush_scheduler.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE294D1A1ABA1F00486C31 /* flush_scheduler.cc */; }; - 62A8AFB21A58C30E0069B4C8 /* RocksDBFilterPolicy.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62F3ED571A5727A300EBFEBF /* RocksDBFilterPolicy.mm */; }; - 62A8AFB31A58C30E0069B4C8 /* vectorrep.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B981A1ABA2000486C31 /* vectorrep.cc */; }; - 62A8AFB41A58C30E0069B4C8 /* ldb.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B001A1ABA2000486C31 /* ldb.cc */; }; - 62A8AFB51A58C30E0069B4C8 /* stack_trace.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2A821A1ABA1F00486C31 /* stack_trace.cc */; }; - 62A8AFB61A58C30E0069B4C8 /* builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29141A1ABA1F00486C31 /* builder.cc */; }; - 62A8AFB71A58C30E0069B4C8 /* RocksDB.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6299F80E1A17B28200123F56 /* RocksDB.mm */; }; - 62A8AFB81A58C30E0069B4C8 /* db_filesnapshot.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE292D1A1ABA1F00486C31 /* db_filesnapshot.cc */; }; - 62A8AFB91A58C30E0069B4C8 /* RocksDBTypes.m in Sources */ = {isa = PBXBuildFile; fileRef = 62451AC91A4BAEC000AF11C8 /* RocksDBTypes.m */; }; - 62A8AFBA1A58C30E0069B4C8 /* flush_block_policy.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AB71A1ABA1F00486C31 /* flush_block_policy.cc */; }; - 62A8AFBB1A58C30E0069B4C8 /* block_based_table_builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2A941A1ABA1F00486C31 /* block_based_table_builder.cc */; }; - 62A8AFBC1A58C30E0069B4C8 /* RocksDBReadOptions.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6232B7371A1E860700B14535 /* RocksDBReadOptions.mm */; }; - 62A8AFBD1A58C30E0069B4C8 /* compaction_job.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29211A1ABA1F00486C31 /* compaction_job.cc */; }; - 62A8AFBE1A58C30E0069B4C8 /* forward_iterator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29501A1ABA1F00486C31 /* forward_iterator.cc */; }; - 62A8AFBF1A58C30E0069B4C8 /* repair.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29711A1ABA1F00486C31 /* repair.cc */; }; - 62A8AFC01A58C30E0069B4C8 /* perf_context.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B721A1ABA2000486C31 /* perf_context.cc */; }; - 62A8AFC11A58C30E0069B4C8 /* env.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B321A1ABA2000486C31 /* env.cc */; }; - 62A8AFC21A58C30E0069B4C8 /* version_builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29801A1ABA1F00486C31 /* version_builder.cc */; }; - 62A8AFC31A58C30E0069B4C8 /* env_posix.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B361A1ABA2000486C31 /* env_posix.cc */; }; - 62A8AFC41A58C30E0069B4C8 /* stringappend2.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BB91A1ABA2000486C31 /* stringappend2.cc */; }; - 62A8AFC51A58C30E0069B4C8 /* table_properties_collector.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29791A1ABA1F00486C31 /* table_properties_collector.cc */; }; - 62A8AFC61A58C30E0069B4C8 /* sync_point.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B8D1A1ABA2000486C31 /* sync_point.cc */; }; - 62A8AFC71A58C30E0069B4C8 /* plain_table_factory.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AD31A1ABA1F00486C31 /* plain_table_factory.cc */; }; - 62A8AFC81A58C30E0069B4C8 /* thread_local.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B941A1ABA2000486C31 /* thread_local.cc */; }; - 62A8AFC91A58C30E0069B4C8 /* cuckoo_table_builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AAB1A1ABA1F00486C31 /* cuckoo_table_builder.cc */; }; - 62A8AFCA1A58C30E0069B4C8 /* memtable_list.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29641A1ABA1F00486C31 /* memtable_list.cc */; }; - 62A8AFCB1A58C30E0069B4C8 /* filter_policy.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B3D1A1ABA2000486C31 /* filter_policy.cc */; }; - 62A8AFCC1A58C30E0069B4C8 /* write_controller.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29941A1ABA1F00486C31 /* write_controller.cc */; }; - 62A8AFCD1A58C30E0069B4C8 /* log_buffer.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B581A1ABA2000486C31 /* log_buffer.cc */; }; - 62A8AFCE1A58C30E0069B4C8 /* put.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BB31A1ABA2000486C31 /* put.cc */; }; - 62A8AFCF1A58C30E0069B4C8 /* wal_manager.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE298C1A1ABA1F00486C31 /* wal_manager.cc */; }; - 62A8AFD01A58C30E0069B4C8 /* log_reader.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE295A1A1ABA1F00486C31 /* log_reader.cc */; }; - 62A8AFD11A58C30E0069B4C8 /* compaction_picker.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29251A1ABA1F00486C31 /* compaction_picker.cc */; }; - 62A8AFD21A58C30E0069B4C8 /* cuckoo_table_reader.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AB21A1ABA1F00486C31 /* cuckoo_table_reader.cc */; }; - 62A8AFD31A58C30E0069B4C8 /* plain_table_reader.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2ADC1A1ABA1F00486C31 /* plain_table_reader.cc */; }; - 62A8AFD41A58C30E0069B4C8 /* RocksDBTableFactory.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62F3ED5A1A574F7500EBFEBF /* RocksDBTableFactory.mm */; }; - 62A8AFD51A58C30E0069B4C8 /* iterator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AC41A1ABA1F00486C31 /* iterator.cc */; }; - 62A8AFD71A58C30E0069B4C8 /* meta_blocks.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2ACB1A1ABA1F00486C31 /* meta_blocks.cc */; }; - 62A8AFD81A58C30E0069B4C8 /* block_builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2A9D1A1ABA1F00486C31 /* block_builder.cc */; }; - 62A8AFD91A58C30E0069B4C8 /* dynamic_bloom.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B2E1A1ABA2000486C31 /* dynamic_bloom.cc */; }; - 62A8AFDA1A58C30E0069B4C8 /* RocksDBBlockBasedTableOptions.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62F3ED501A57175F00EBFEBF /* RocksDBBlockBasedTableOptions.mm */; }; - 62A8AFDB1A58C30E0069B4C8 /* json_document.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BAA1A1ABA2000486C31 /* json_document.cc */; }; - 62A8AFDD1A58C30E0069B4C8 /* RocksDBError.mm in Sources */ = {isa = PBXBuildFile; fileRef = 628B0CE91A1C104D0099C39B /* RocksDBError.mm */; }; - 62A8AFDF1A58C30E0069B4C8 /* RocksDBPrefixExtractor.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6236E2561A4DD25000A81ED6 /* RocksDBPrefixExtractor.mm */; }; - 62A8AFE01A58C30E0069B4C8 /* leveldb_options.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62269EDF1A1FF2DC005A58D3 /* leveldb_options.cc */; }; - 62A8AFE11A58C30E0069B4C8 /* uint64add.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BBD1A1ABA2000486C31 /* uint64add.cc */; }; - 62A8AFE21A58C30E0069B4C8 /* xxhash.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B9A1A1ABA2000486C31 /* xxhash.cc */; }; - 62A8AFE31A58C30E0069B4C8 /* format.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AB91A1ABA1F00486C31 /* format.cc */; }; - 62A8AFE41A58C30E0069B4C8 /* document_db.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BA71A1ABA2000486C31 /* document_db.cc */; }; - 62A8AFE51A58C30E0069B4C8 /* RocksDBCallbackAssociativeMergeOperator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 62EEC4B81A34FF0600624DA2 /* RocksDBCallbackAssociativeMergeOperator.cpp */; }; - 62A8AFE61A58C30E0069B4C8 /* transaction_log_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE297D1A1ABA1F00486C31 /* transaction_log_impl.cc */; }; - 62A8AFE71A58C30E0069B4C8 /* arena.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B061A1ABA2000486C31 /* arena.cc */; }; - 62A8AFE81A58C30E0069B4C8 /* RocksDBDatabaseOptions.mm in Sources */ = {isa = PBXBuildFile; fileRef = 620629651A510056001DEDC4 /* RocksDBDatabaseOptions.mm */; }; - 62A8AFE91A58C30E0069B4C8 /* write_batch.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29901A1ABA1F00486C31 /* write_batch.cc */; }; - 62A8AFEA1A58C30E0069B4C8 /* db_impl_debug.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29321A1ABA1F00486C31 /* db_impl_debug.cc */; }; - 62A8AFEB1A58C30E0069B4C8 /* RocksDBCallbackComparator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 62376BBD1A20EDF000C85DFB /* RocksDBCallbackComparator.cpp */; }; - 62A8AFEC1A58C30E0069B4C8 /* full_filter_block.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2ABC1A1ABA1F00486C31 /* full_filter_block.cc */; }; - 62A8AFED1A58C30E0069B4C8 /* status.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B861A1ABA2000486C31 /* status.cc */; }; - 62A8AFEE1A58C30E0069B4C8 /* c.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29171A1ABA1F00486C31 /* c.cc */; }; - 62A8AFEF1A58C30E0069B4C8 /* options.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B6A1A1ABA2000486C31 /* options.cc */; }; - 62A8AFF01A58C30E0069B4C8 /* compaction.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE291E1A1ABA1F00486C31 /* compaction.cc */; }; - 62A8AFF11A58C30E0069B4C8 /* cuckoo_table_factory.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AAF1A1ABA1F00486C31 /* cuckoo_table_factory.cc */; }; - 62A8AFF21A58C30E0069B4C8 /* block.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2A8D1A1ABA1F00486C31 /* block.cc */; }; - 62A8AFF31A58C30E0069B4C8 /* internal_stats.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29531A1ABA1F00486C31 /* internal_stats.cc */; }; - 62A8AFF41A58C30E0069B4C8 /* coding.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B211A1ABA2000486C31 /* coding.cc */; }; - 62A8AFF51A58C30E0069B4C8 /* db_stress.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AFF1A1ABA2000486C31 /* db_stress.cc */; }; - 62A8AFF61A58C30E0069B4C8 /* table_properties.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AE01A1ABA1F00486C31 /* table_properties.cc */; }; - 62A8AFF71A58C30E0069B4C8 /* histogram.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B4B1A1ABA2000486C31 /* histogram.cc */; }; - 62A8AFF91A58C30E0069B4C8 /* backupable_db.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B9F1A1ABA2000486C31 /* backupable_db.cc */; }; - 62A8AFFA1A58C30E0069B4C8 /* RocksDBColumnFamilyOptions.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6206295F1A509DF1001DEDC4 /* RocksDBColumnFamilyOptions.mm */; }; - 62A8AFFB1A58C30E0069B4C8 /* write_batch_with_index.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BD31A1ABA2000486C31 /* write_batch_with_index.cc */; }; - 62A8AFFC1A58C30E0069B4C8 /* RocksDBColumnFamilyDescriptor.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62074F2C1A520EC2002B1885 /* RocksDBColumnFamilyDescriptor.mm */; }; - 62A8AFFD1A58C30E0069B4C8 /* RocksDBCache.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62F3ED541A57212800EBFEBF /* RocksDBCache.mm */; }; - 62A8AFFE1A58C30E0069B4C8 /* db_repl_stress.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AFD1A1ABA2000486C31 /* db_repl_stress.cc */; }; - 62A8AFFF1A58C30E0069B4C8 /* thread_status_updater.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62451ACD1A4BC85400AF11C8 /* thread_status_updater.cc */; }; - 62A8B0001A58C30E0069B4C8 /* filename.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29451A1ABA1F00486C31 /* filename.cc */; }; - 62A8B0011A58C30E0069B4C8 /* slice.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B7F1A1ABA2000486C31 /* slice.cc */; }; - 62A8B0021A58C30E0069B4C8 /* murmurhash.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B631A1ABA2000486C31 /* murmurhash.cc */; }; - 62A8B0031A58C30E0069B4C8 /* write_thread.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29981A1ABA1F00486C31 /* write_thread.cc */; }; - 62A8B0041A58C30E0069B4C8 /* ldb_tool.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B561A1ABA2000486C31 /* ldb_tool.cc */; }; - 62A8B0051A58C30E0069B4C8 /* db_ttl_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BCE1A1ABA2000486C31 /* db_ttl_impl.cc */; }; - 62A8B0061A58C30E0069B4C8 /* options_helper.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B6E1A1ABA2000486C31 /* options_helper.cc */; }; - 62A8B0071A58C30E0069B4C8 /* hash_cuckoo_rep.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B421A1ABA2000486C31 /* hash_cuckoo_rep.cc */; }; - 62A8B0081A58C30E0069B4C8 /* sst_dump_tool.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B811A1ABA2000486C31 /* sst_dump_tool.cc */; }; - 62A8B0091A58C30E0069B4C8 /* block_hash_index.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AA01A1ABA1F00486C31 /* block_hash_index.cc */; }; - 62A8B00A1A58C30E0069B4C8 /* block_based_table_factory.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2A971A1ABA1F00486C31 /* block_based_table_factory.cc */; }; - 62A8B00B1A58C30E0069B4C8 /* log_writer.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE295E1A1ABA1F00486C31 /* log_writer.cc */; }; - 62A8B00C1A58C30E0069B4C8 /* crc32c.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B271A1ABA2000486C31 /* crc32c.cc */; }; - 62A8B00D1A58C30E0069B4C8 /* plain_table_index.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AD61A1ABA1F00486C31 /* plain_table_index.cc */; }; - 62A8B00E1A58C30E0069B4C8 /* RocksDBComparator.mm in Sources */ = {isa = PBXBuildFile; fileRef = 623224AB1A2116A400FB6625 /* RocksDBComparator.mm */; }; - 62A8B00F1A58C30E0069B4C8 /* string_util.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B8A1A1ABA2000486C31 /* string_util.cc */; }; - 62A8B0101A58C30E0069B4C8 /* version_set.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29881A1ABA1F00486C31 /* version_set.cc */; }; - 62A8B0111A58C30E0069B4C8 /* db_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE292F1A1ABA1F00486C31 /* db_impl.cc */; }; - 62A8B0121A58C30E0069B4C8 /* RocksDBWriteOptions.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6232B7341A1E80F900B14535 /* RocksDBWriteOptions.mm */; }; - 62A8B0131A58C30E0069B4C8 /* plain_table_builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AD01A1ABA1F00486C31 /* plain_table_builder.cc */; }; - 62A8B0141A58C30E0069B4C8 /* bloom_block.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AA81A1ABA1F00486C31 /* bloom_block.cc */; }; - 62A8B0151A58C30E0069B4C8 /* merger.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AC71A1ABA1F00486C31 /* merger.cc */; }; - 62A8B0161A58C30E0069B4C8 /* env_hdfs.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B341A1ABA2000486C31 /* env_hdfs.cc */; }; - 62A8B0181A58C30E0069B4C8 /* db_iter.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29371A1ABA1F00486C31 /* db_iter.cc */; }; - 62A8B0191A58C30E0069B4C8 /* thread_status_util.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62451ACF1A4BC85400AF11C8 /* thread_status_util.cc */; }; - 62A8B01A1A58C30E0069B4C8 /* mutable_cf_options.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B661A1ABA2000486C31 /* mutable_cf_options.cc */; }; - 62A8B01B1A58C30E0069B4C8 /* RocksDBMergeOperator.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62EEC4B61A34FEE100624DA2 /* RocksDBMergeOperator.mm */; }; - 62A8B01C1A58C30E0069B4C8 /* column_family.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE291A1A1ABA1F00486C31 /* column_family.cc */; }; - 62A8B01D1A58C30E0069B4C8 /* RocksDBEncodingOptions.mm in Sources */ = {isa = PBXBuildFile; fileRef = 620629621A50ECCA001DEDC4 /* RocksDBEncodingOptions.mm */; }; - 62A8B01E1A58C30E0069B4C8 /* block_based_filter_block.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2A901A1ABA1F00486C31 /* block_based_filter_block.cc */; }; - 62A8B01F1A58C30E0069B4C8 /* dbformat.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE293C1A1ABA1F00486C31 /* dbformat.cc */; }; - 62A8B0201A58C30E0069B4C8 /* version_edit.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29841A1ABA1F00486C31 /* version_edit.cc */; }; - 62A8B0211A58C30E0069B4C8 /* auto_roll_logger.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B0A1A1ABA2000486C31 /* auto_roll_logger.cc */; }; - 62A8B0221A58C30E0069B4C8 /* sst_dump.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B041A1ABA2000486C31 /* sst_dump.cc */; }; - 62A8B0231A58C30E0069B4C8 /* statistics.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B831A1ABA2000486C31 /* statistics.cc */; }; - 62A8B0241A58C30E0069B4C8 /* rate_limiter.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B771A1ABA2000486C31 /* rate_limiter.cc */; }; - 62A8B0251A58C30E0069B4C8 /* merge_operator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE296B1A1ABA1F00486C31 /* merge_operator.cc */; }; - 62A8B0261A58C30E0069B4C8 /* checkpoint.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62269EDB1A1FF27A005A58D3 /* checkpoint.cc */; }; - 62A8B0271A58C30E0069B4C8 /* redis_lists.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BC41A1ABA2000486C31 /* redis_lists.cc */; }; - 62A8B0281A58C30E0069B4C8 /* db_info_dumper.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B2B1A1ABA2000486C31 /* db_info_dumper.cc */; }; - 62A8B0291A58C30E0069B4C8 /* options_builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B6C1A1ABA2000486C31 /* options_builder.cc */; }; - 62A8B02A1A58C30E0069B4C8 /* table_cache.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29761A1ABA1F00486C31 /* table_cache.cc */; }; - 62A8B02B1A58C30E0069B4C8 /* iostats_context.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B4F1A1ABA2000486C31 /* iostats_context.cc */; }; - 62A8B02C1A58C30E0069B4C8 /* RocksDBCallbackSliceTransform.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6236E2581A4DD71600A81ED6 /* RocksDBCallbackSliceTransform.cpp */; }; - 62A8B02D1A58C30E0069B4C8 /* flush_job.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29491A1ABA1F00486C31 /* flush_job.cc */; }; - 62A8B02E1A58C30E0069B4C8 /* get_context.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AC01A1ABA1F00486C31 /* get_context.cc */; }; - 62A8B02F1A58C30E0069B4C8 /* block_based_table_reader.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2A9A1A1ABA1F00486C31 /* block_based_table_reader.cc */; }; - 62A8B0301A58C30E0069B4C8 /* bloom.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B171A1ABA2000486C31 /* bloom.cc */; }; - 62A8B0311A58C30E0069B4C8 /* file_util.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B391A1ABA2000486C31 /* file_util.cc */; }; - 62A8B0321A58C30E0069B4C8 /* cache.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B1D1A1ABA2000486C31 /* cache.cc */; }; - 62A8B0331A58C30E0069B4C8 /* db_impl_readonly.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29341A1ABA1F00486C31 /* db_impl_readonly.cc */; }; - 62A8B0361A58C30E0069B4C8 /* ObjectiveRocks.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 62AEF9B81A1D5CF000E63E89 /* ObjectiveRocks.h */; }; 62A8B0481A58C40A0069B4C8 /* RocksDBBasicTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6299F8551A17B7AD00123F56 /* RocksDBBasicTests.mm */; }; 62A8B0491A58C40A0069B4C8 /* RocksDBTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6249A3CB1A4A43CA00949B07 /* RocksDBTests.mm */; }; 62A8B04A1A58C40A0069B4C8 /* RocksDBColumnFamilyTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 624566C71A51DA79009AC3FB /* RocksDBColumnFamilyTests.mm */; }; @@ -475,16 +497,12 @@ 62A8B04E1A58C40A0069B4C8 /* RocksDBPrefixExtractorTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6236E25B1A4E19A300A81ED6 /* RocksDBPrefixExtractorTests.mm */; }; 62A8B04F1A58C40A0069B4C8 /* RocksDBWriteBatchTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62685CB81A2E600A009401B1 /* RocksDBWriteBatchTests.mm */; }; 62A8B0501A58C40A0069B4C8 /* RocksDBMergeOperatorTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 620A2CAD1A3654D5007224A4 /* RocksDBMergeOperatorTests.mm */; }; - 62A8B05B1A58C4940069B4C8 /* libObjectiveRocks.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 62A8B0431A58C30E0069B4C8 /* libObjectiveRocks.a */; }; 62A8B06B1A5900540069B4C8 /* RocksDBStatisticsTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62A8B06A1A5900540069B4C8 /* RocksDBStatisticsTests.mm */; }; 62E173E61A6AD40E00A00DF3 /* RocksDBBackupTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62E173E51A6AD40E00A00DF3 /* RocksDBBackupTests.swift */; }; 62F4AA7C1A6AAF9A00489D6C /* RocksDBColumnFamilyMetadataTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62F4AA7B1A6AAF9A00489D6C /* RocksDBColumnFamilyMetadataTests.swift */; }; 62F4AA7E1A6AAFD700489D6C /* RocksDBColumnFamilyTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62F4AA7D1A6AAFD700489D6C /* RocksDBColumnFamilyTests.swift */; }; 62F4AA7F1A6AAFD700489D6C /* RocksDBColumnFamilyTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62F4AA7D1A6AAFD700489D6C /* RocksDBColumnFamilyTests.swift */; }; 62F4AA801A6AAFE500489D6C /* RocksDBColumnFamilyMetadataTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 627FBE761A61E0AA0038696A /* RocksDBColumnFamilyMetadataTests.mm */; }; - 62F8C6001B85386A00E2577F /* RocksDBIndexedWriteBatch.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62F8C5FE1B85386A00E2577F /* RocksDBIndexedWriteBatch.mm */; }; - 62F8C6041B853ABA00E2577F /* RocksDBWriteBatchIterator.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62F8C6021B853ABA00E2577F /* RocksDBWriteBatchIterator.mm */; }; - 62F8C6081B85632500E2577F /* RocksDBIterator.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62F8C6061B85632500E2577F /* RocksDBIterator.mm */; }; 62FC8B471A565B19003DF5C6 /* RocksDBBackupTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62FC8B461A565B19003DF5C6 /* RocksDBBackupTests.mm */; }; /* End PBXBuildFile section */ @@ -496,49 +514,15 @@ remoteGlobalIDString = 624203BF1BED64410043DD6F; remoteInfo = ObjectiveRocks; }; - 62A8B0591A58C4860069B4C8 /* PBXContainerItemProxy */ = { + 624F5ECC1BEE452100497FEF /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 6299F8011A17B28200123F56 /* Project object */; proxyType = 1; - remoteGlobalIDString = 62A8AF961A58C30E0069B4C8; + remoteGlobalIDString = 624F5D971BEE416D00497FEF; remoteInfo = "ObjectiveRocks-iOS"; }; /* End PBXContainerItemProxy section */ -/* Begin PBXCopyFilesBuildPhase section */ - 62A8B0351A58C30E0069B4C8 /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = "include/$(PRODUCT_NAME)"; - dstSubfolderSpec = 16; - files = ( - 625F8F721A5A229C007796BA /* RocksDB.h in CopyFiles */, - 625F8F731A5A229C007796BA /* RocksDBTypes.h in CopyFiles */, - 625F8F741A5A229C007796BA /* RocksDBError.h in CopyFiles */, - 625F8F751A5A229C007796BA /* RocksDBColumnFamily.h in CopyFiles */, - 625F8F761A5A229C007796BA /* RocksDBColumnFamilyDescriptor.h in CopyFiles */, - 625F8F781A5A229C007796BA /* RocksDBPrefixExtractor.h in CopyFiles */, - 625F8F791A5A229C007796BA /* RocksDBWriteBatch.h in CopyFiles */, - 625F8F7A1A5A229C007796BA /* RocksDBComparator.h in CopyFiles */, - 625F8F7B1A5A229C007796BA /* RocksDBOptions.h in CopyFiles */, - 625F8F7C1A5A229C007796BA /* RocksDBEncodingOptions.h in CopyFiles */, - 625F8F7D1A5A229C007796BA /* RocksDBDatabaseOptions.h in CopyFiles */, - 625F8F7E1A5A229C007796BA /* RocksDBColumnFamilyOptions.h in CopyFiles */, - 625F8F7F1A5A229C007796BA /* RocksDBWriteOptions.h in CopyFiles */, - 625F8F801A5A229C007796BA /* RocksDBReadOptions.h in CopyFiles */, - 625F8F811A5A229C007796BA /* RocksDBTableFactory.h in CopyFiles */, - 625F8F821A5A229C007796BA /* RocksDBBlockBasedTableOptions.h in CopyFiles */, - 625F8F831A5A229C007796BA /* RocksDBCache.h in CopyFiles */, - 625F8F841A5A229C007796BA /* RocksDBFilterPolicy.h in CopyFiles */, - 625F8F851A5A229C007796BA /* RocksDBMemTableRepFactory.h in CopyFiles */, - 625F8F861A5A229C007796BA /* RocksDBSnapshot.h in CopyFiles */, - 625F8F871A5A229C007796BA /* RocksDBMergeOperator.h in CopyFiles */, - 62A8B0361A58C30E0069B4C8 /* ObjectiveRocks.h in CopyFiles */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - /* Begin PBXFileReference section */ 620494851A3284A800A0E950 /* RocksDBSnapshot.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RocksDBSnapshot.h; sourceTree = ""; }; 620494861A3284A800A0E950 /* RocksDBSnapshot.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RocksDBSnapshot.mm; sourceTree = ""; }; @@ -674,6 +658,7 @@ 624C22681AF0217C006DC8FA /* thread_list_test.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = thread_list_test.cc; sourceTree = ""; }; 624C22691AF02B1B006DC8FA /* instrumented_mutex.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = instrumented_mutex.cc; sourceTree = ""; }; 624C226A1AF02B1B006DC8FA /* instrumented_mutex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = instrumented_mutex.h; sourceTree = ""; }; + 624F5D981BEE416D00497FEF /* ObjectiveRocks.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ObjectiveRocks.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 6251A3721B783DA7009BABD5 /* RocksDBReadOnlyTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RocksDBReadOnlyTests.m; sourceTree = ""; }; 6251A3741B783DBC009BABD5 /* RocksDBReadOnlyTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RocksDBReadOnlyTests.swift; sourceTree = ""; }; 625F8F1A1A59C3EB007796BA /* RocksDBProperties.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RocksDBProperties.h; sourceTree = ""; }; @@ -715,7 +700,6 @@ 62A74F831A60385D00BAD95B /* memtablerep_bench.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = memtablerep_bench.cc; sourceTree = ""; }; 62A74F841A603DDB00BAD95B /* RocksDBColumnFamilyMetadata.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RocksDBColumnFamilyMetadata.h; sourceTree = ""; }; 62A74F851A603DDB00BAD95B /* RocksDBColumnFamilyMetadata.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RocksDBColumnFamilyMetadata.mm; sourceTree = ""; }; - 62A8B0431A58C30E0069B4C8 /* libObjectiveRocks.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libObjectiveRocks.a; sourceTree = BUILT_PRODUCTS_DIR; }; 62A8B0571A58C40A0069B4C8 /* ObjectiveRocksTests-iOS.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "ObjectiveRocksTests-iOS.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; 62A8B05F1A58CC400069B4C8 /* RocksDBBackupInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RocksDBBackupInfo.h; sourceTree = ""; }; 62A8B0601A58CC400069B4C8 /* RocksDBBackupInfo.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RocksDBBackupInfo.mm; sourceTree = ""; }; @@ -1143,18 +1127,18 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 6299F8111A17B28200123F56 /* Frameworks */ = { + 624F5D941BEE416D00497FEF /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 624204CF1BED6B750043DD6F /* ObjectiveRocks.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 62A8B0341A58C30E0069B4C8 /* Frameworks */ = { + 6299F8111A17B28200123F56 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 624204CF1BED6B750043DD6F /* ObjectiveRocks.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1162,7 +1146,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 62A8B05B1A58C4940069B4C8 /* libObjectiveRocks.a in Frameworks */, + 624F5ECE1BEE452700497FEF /* ObjectiveRocks.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1455,9 +1439,9 @@ isa = PBXGroup; children = ( 6299F8141A17B28200123F56 /* ObjectiveRocksTests.xctest */, - 62A8B0431A58C30E0069B4C8 /* libObjectiveRocks.a */, 62A8B0571A58C40A0069B4C8 /* ObjectiveRocksTests-iOS.xctest */, 624203C01BED64410043DD6F /* ObjectiveRocks.framework */, + 624F5D981BEE416D00497FEF /* ObjectiveRocks.framework */, ); name = Products; sourceTree = ""; @@ -2264,6 +2248,57 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 624F5D951BEE416D00497FEF /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 624F5DA01BEE41F500497FEF /* ObjectiveRocks.h in Headers */, + 624F5DA11BEE41F500497FEF /* RocksDB.h in Headers */, + 624F5DA31BEE41F500497FEF /* RocksDBTypes.h in Headers */, + 624F5DA51BEE41F500497FEF /* RocksDBColumnFamily.h in Headers */, + 624F5DA61BEE41F500497FEF /* RocksDBColumnFamilyDescriptor.h in Headers */, + 624F5DA81BEE41F500497FEF /* RocksDBIterator.h in Headers */, + 624F5DA91BEE41F500497FEF /* RocksDBPrefixExtractor.h in Headers */, + 624F5DAA1BEE41F500497FEF /* RocksDBWriteBatch.h in Headers */, + 624F5DAB1BEE41F500497FEF /* RocksDBIndexedWriteBatch.h in Headers */, + 624F5DAC1BEE41F500497FEF /* RocksDBWriteBatchIterator.h in Headers */, + 624F5DAD1BEE41F600497FEF /* RocksDBComparator.h in Headers */, + 624F5DAE1BEE41F600497FEF /* RocksDBOptions.h in Headers */, + 624F5DAF1BEE41F600497FEF /* RocksDBEncodingOptions.h in Headers */, + 624F5DB01BEE41F600497FEF /* RocksDBDatabaseOptions.h in Headers */, + 624F5DB11BEE41F600497FEF /* RocksDBColumnFamilyOptions.h in Headers */, + 624F5DB21BEE41F600497FEF /* RocksDBWriteOptions.h in Headers */, + 624F5DB31BEE41F600497FEF /* RocksDBReadOptions.h in Headers */, + 624F5DB41BEE41F600497FEF /* RocksDBEnv.h in Headers */, + 624F5DB61BEE41F600497FEF /* RocksDBTableFactory.h in Headers */, + 624F5DB71BEE41F600497FEF /* RocksDBBlockBasedTableOptions.h in Headers */, + 624F5DBA1BEE41F600497FEF /* RocksDBCache.h in Headers */, + 624F5DBB1BEE41F700497FEF /* RocksDBFilterPolicy.h in Headers */, + 624F5DBC1BEE41F700497FEF /* RocksDBMemTableRepFactory.h in Headers */, + 624F5DBD1BEE41F700497FEF /* RocksDBSnapshot.h in Headers */, + 624F5DBE1BEE41F700497FEF /* RocksDBSnapshotUnavailable.h in Headers */, + 624F5DBF1BEE41F700497FEF /* RocksDBCheckpoint.h in Headers */, + 624F5DC01BEE41F700497FEF /* RocksDBMergeOperator.h in Headers */, + 621C6D971BEE4A4600044CB1 /* RocksDBStatistics.h in Headers */, + 621C6D981BEE4A4600044CB1 /* RocksDBStatisticsHistogram.h in Headers */, + 624F5ED91BEE456100497FEF /* RocksDB+Private.h in Headers */, + 624F5EDA1BEE456100497FEF /* RocksDBOptions+Private.h in Headers */, + 624F5EDB1BEE456100497FEF /* RocksDBColumnFamily+Private.h in Headers */, + 624F5EDC1BEE456100497FEF /* RocksDBColumnFamilyMetaData+Private.h in Headers */, + 624F5EDD1BEE456100497FEF /* RocksDBIterator+Private.h in Headers */, + 624F5EDE1BEE456100497FEF /* RocksDBWriteBatch+Private.h in Headers */, + 624F5EDF1BEE456200497FEF /* RocksDBWriteBatchIterator+Private.h in Headers */, + 621C6D991BEE4BA900044CB1 /* RocksDBColumnFamilyMetadata.h in Headers */, + 624F5EE01BEE456200497FEF /* RocksDBSnapshot+Private.h in Headers */, + 624F5EE11BEE456200497FEF /* RocksDBCallbackComparator.h in Headers */, + 624F5EE21BEE456200497FEF /* RocksDBCallbackAssociativeMergeOperator.h in Headers */, + 624F5EE31BEE456200497FEF /* RocksDBCallbackMergeOperator.h in Headers */, + 624F5EE41BEE456200497FEF /* RocksDBCallbackSliceTransform.h in Headers */, + 624F5ED01BEE456100497FEF /* RocksDBError.h in Headers */, + 624F5EE51BEE456200497FEF /* RocksDBSlice.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ @@ -2286,6 +2321,25 @@ productReference = 624203C01BED64410043DD6F /* ObjectiveRocks.framework */; productType = "com.apple.product-type.framework"; }; + 624F5D971BEE416D00497FEF /* ObjectiveRocks-iOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = 624F5D9D1BEE416D00497FEF /* Build configuration list for PBXNativeTarget "ObjectiveRocks-iOS" */; + buildPhases = ( + 624F5D931BEE416D00497FEF /* Sources */, + 624F5D941BEE416D00497FEF /* Frameworks */, + 624F5D961BEE416D00497FEF /* Resources */, + 624F5D951BEE416D00497FEF /* Headers */, + 624F5DC51BEE434700497FEF /* ShellScript */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "ObjectiveRocks-iOS"; + productName = "ObjectiveRocks-iOS"; + productReference = 624F5D981BEE416D00497FEF /* ObjectiveRocks.framework */; + productType = "com.apple.product-type.framework"; + }; 6299F8131A17B28200123F56 /* ObjectiveRocksTests */ = { isa = PBXNativeTarget; buildConfigurationList = 6299F8201A17B28200123F56 /* Build configuration list for PBXNativeTarget "ObjectiveRocksTests" */; @@ -2304,23 +2358,6 @@ productReference = 6299F8141A17B28200123F56 /* ObjectiveRocksTests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; - 62A8AF961A58C30E0069B4C8 /* ObjectiveRocks-iOS */ = { - isa = PBXNativeTarget; - buildConfigurationList = 62A8B0401A58C30E0069B4C8 /* Build configuration list for PBXNativeTarget "ObjectiveRocks-iOS" */; - buildPhases = ( - 62A8AF971A58C30E0069B4C8 /* Sources */, - 62A8B0341A58C30E0069B4C8 /* Frameworks */, - 62A8B0351A58C30E0069B4C8 /* CopyFiles */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "ObjectiveRocks-iOS"; - productName = ObjectiveRocks; - productReference = 62A8B0431A58C30E0069B4C8 /* libObjectiveRocks.a */; - productType = "com.apple.product-type.library.static"; - }; 62A8B0441A58C40A0069B4C8 /* ObjectiveRocksTests-iOS */ = { isa = PBXNativeTarget; buildConfigurationList = 62A8B0541A58C40A0069B4C8 /* Build configuration list for PBXNativeTarget "ObjectiveRocksTests-iOS" */; @@ -2332,7 +2369,7 @@ buildRules = ( ); dependencies = ( - 62A8B05A1A58C4860069B4C8 /* PBXTargetDependency */, + 624F5ECD1BEE452100497FEF /* PBXTargetDependency */, ); name = "ObjectiveRocksTests-iOS"; productName = ObjectiveRocksTests; @@ -2353,6 +2390,10 @@ 624203BF1BED64410043DD6F = { CreatedOnToolsVersion = 7.1; }; + 624F5D971BEE416D00497FEF = { + CreatedOnToolsVersion = 7.1; + DevelopmentTeam = YSGAPZW56W; + }; 6299F8131A17B28200123F56 = { CreatedOnToolsVersion = 6.1; }; @@ -2372,7 +2413,7 @@ targets = ( 624203BF1BED64410043DD6F /* ObjectiveRocks */, 6299F8131A17B28200123F56 /* ObjectiveRocksTests */, - 62A8AF961A58C30E0069B4C8 /* ObjectiveRocks-iOS */, + 624F5D971BEE416D00497FEF /* ObjectiveRocks-iOS */, 62A8B0441A58C40A0069B4C8 /* ObjectiveRocksTests-iOS */, ); }; @@ -2386,6 +2427,13 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 624F5D961BEE416D00497FEF /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; 6299F8121A17B28200123F56 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -2416,6 +2464,19 @@ shellPath = /bin/sh; shellScript = "#!/bin/sh\n\nROCKSDB_DIR=\"$PWD/rocksdb/.git\"\nOUTFILE=\"$PWD/rocksdb/util/build_version.cc\"\nGIT_SHA=\"\"\n\nif command -v git >/dev/null 2>&1; then\nGIT_SHA=$(git --git-dir=\"$ROCKSDB_DIR\" rev-parse HEAD 2>/dev/null)\nfi\n\ncat > \"${OUTFILE}\" </dev/null 2>&1; then\nGIT_SHA=$(git --git-dir=\"$ROCKSDB_DIR\" rev-parse HEAD 2>/dev/null)\nfi\n\ncat > \"${OUTFILE}\" < + + + + @@ -64,8 +78,8 @@ @@ -82,8 +96,8 @@ diff --git a/Tests/ObjectiveRocksTests-iOS-Bridging-Header.h b/Tests/ObjectiveRocksTests-iOS-Bridging-Header.h index 17cdf99..be87a2f 100644 --- a/Tests/ObjectiveRocksTests-iOS-Bridging-Header.h +++ b/Tests/ObjectiveRocksTests-iOS-Bridging-Header.h @@ -2,34 +2,33 @@ // Use this file to import your target's public headers that you would like to expose to Swift. // -#import "RocksDB.h" +#import -#import "RocksDBColumnFamily.h" -#import "RocksDBColumnFamilyDescriptor.h" -#import "RocksDBColumnFamilyMetaData.h" +#import +#import -#import "RocksDBIterator.h" -#import "RocksDBPrefixExtractor.h" +#import +#import -#import "RocksDBWriteBatch.h" +#import -#import "RocksDBComparator.h" +#import -#import "RocksDBOptions.h" -#import "RocksDBEncodingOptions.h" -#import "RocksDBDatabaseOptions.h" -#import "RocksDBColumnFamilyOptions.h" -#import "RocksDBWriteOptions.h" -#import "RocksDBReadOptions.h" -#import "RocksDBTableFactory.h" -#import "RocksDBBlockBasedTableOptions.h" -#import "RocksDBCache.h" -#import "RocksDBFilterPolicy.h" -#import "RocksDBMemTableRepFactory.h" -#import "RocksDBEnv.h" +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import -#import "RocksDBSnapshot.h" +#import -#import "RocksDBMergeOperator.h" +#import -#import "RocksDBTypes.h" +#import From 4c684a9d7a512d1736bcc384e8d510a002eb2fee Mon Sep 17 00:00:00 2001 From: iska Date: Sat, 7 Nov 2015 16:34:04 +0100 Subject: [PATCH 32/76] Run the script build phase before compiling sources --- ObjectiveRocks.xcodeproj/project.pbxproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ObjectiveRocks.xcodeproj/project.pbxproj b/ObjectiveRocks.xcodeproj/project.pbxproj index f84a2ba..54416a5 100644 --- a/ObjectiveRocks.xcodeproj/project.pbxproj +++ b/ObjectiveRocks.xcodeproj/project.pbxproj @@ -2306,11 +2306,11 @@ isa = PBXNativeTarget; buildConfigurationList = 624203C51BED64410043DD6F /* Build configuration list for PBXNativeTarget "ObjectiveRocks" */; buildPhases = ( + 624204CC1BED69600043DD6F /* ShellScript */, 624203BB1BED64410043DD6F /* Sources */, 624203BC1BED64410043DD6F /* Frameworks */, 624203BE1BED64410043DD6F /* Resources */, 624203BD1BED64410043DD6F /* Headers */, - 624204CC1BED69600043DD6F /* ShellScript */, ); buildRules = ( ); @@ -2325,11 +2325,11 @@ isa = PBXNativeTarget; buildConfigurationList = 624F5D9D1BEE416D00497FEF /* Build configuration list for PBXNativeTarget "ObjectiveRocks-iOS" */; buildPhases = ( + 624F5DC51BEE434700497FEF /* ShellScript */, 624F5D931BEE416D00497FEF /* Sources */, 624F5D941BEE416D00497FEF /* Frameworks */, 624F5D961BEE416D00497FEF /* Resources */, 624F5D951BEE416D00497FEF /* Headers */, - 624F5DC51BEE434700497FEF /* ShellScript */, ); buildRules = ( ); From 014ed2c70cafe11ec01ace8f2432b8865d0810b5 Mon Sep 17 00:00:00 2001 From: iska Date: Sat, 7 Nov 2015 16:50:46 +0100 Subject: [PATCH 33/76] Remove developer team from iOS framework target --- ObjectiveRocks.xcodeproj/project.pbxproj | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ObjectiveRocks.xcodeproj/project.pbxproj b/ObjectiveRocks.xcodeproj/project.pbxproj index 54416a5..7f826ed 100644 --- a/ObjectiveRocks.xcodeproj/project.pbxproj +++ b/ObjectiveRocks.xcodeproj/project.pbxproj @@ -2392,7 +2392,6 @@ }; 624F5D971BEE416D00497FEF = { CreatedOnToolsVersion = 7.1; - DevelopmentTeam = YSGAPZW56W; }; 6299F8131A17B28200123F56 = { CreatedOnToolsVersion = 6.1; @@ -3003,6 +3002,7 @@ 624F5D9E1BEE416D00497FEF /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CURRENT_PROJECT_VERSION = 1; DEBUG_INFORMATION_FORMAT = dwarf; @@ -3040,6 +3040,7 @@ 624F5D9F1BEE416D00497FEF /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = 1; From 7e06a10229ffa9a2272c6e8a961e4f6696a52d6f Mon Sep 17 00:00:00 2001 From: iska Date: Sat, 7 Nov 2015 17:23:36 +0100 Subject: [PATCH 34/76] Remove configuration flag from xcodebuild commands in travis.yaml Otherwise the iOS build fails due to missing provisioning profiles and friends. --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index e69fe12..5449167 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,7 @@ language: objective-c osx_image: xcode7.1 script: -- xcodebuild -project ObjectiveRocks.xcodeproj -scheme ObjectiveRocks -sdk macosx -configuration Release ONLY_ACTIVE_ARCH=NO +- xcodebuild -project ObjectiveRocks.xcodeproj -scheme ObjectiveRocks -sdk macosx ONLY_ACTIVE_ARCH=NO - xcodebuild test -project ObjectiveRocks.xcodeproj -scheme ObjectiveRocksTests -sdk macosx ONLY_ACTIVE_ARCH=NO -- xcodebuild -project ObjectiveRocks.xcodeproj -scheme ObjectiveRocks-iOS -sdk iphoneos -configuration Release ONLY_ACTIVE_ARCH=NO +- xcodebuild -project ObjectiveRocks.xcodeproj -scheme ObjectiveRocks-iOS -sdk iphoneos ONLY_ACTIVE_ARCH=NO - xcodebuild test -project ObjectiveRocks.xcodeproj -scheme ObjectiveRocksTests-iOS -sdk iphonesimulator ONLY_ACTIVE_ARCH=NO From 1d05345135bd8c597c1296a3f370518e7975c60b Mon Sep 17 00:00:00 2001 From: iska Date: Sat, 7 Nov 2015 20:05:38 +0100 Subject: [PATCH 35/76] Change SDK to iphonesimulator in travis.yml for iOS target --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 5449167..36968a1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,5 +3,5 @@ osx_image: xcode7.1 script: - xcodebuild -project ObjectiveRocks.xcodeproj -scheme ObjectiveRocks -sdk macosx ONLY_ACTIVE_ARCH=NO - xcodebuild test -project ObjectiveRocks.xcodeproj -scheme ObjectiveRocksTests -sdk macosx ONLY_ACTIVE_ARCH=NO -- xcodebuild -project ObjectiveRocks.xcodeproj -scheme ObjectiveRocks-iOS -sdk iphoneos ONLY_ACTIVE_ARCH=NO +- xcodebuild -project ObjectiveRocks.xcodeproj -scheme ObjectiveRocks-iOS -sdk iphonesimulator ONLY_ACTIVE_ARCH=NO - xcodebuild test -project ObjectiveRocks.xcodeproj -scheme ObjectiveRocksTests-iOS -sdk iphonesimulator ONLY_ACTIVE_ARCH=NO From 65e9fb80279fdaa90eb8aa019a409cacb84bec29 Mon Sep 17 00:00:00 2001 From: iska Date: Wed, 11 Nov 2015 23:58:34 +0100 Subject: [PATCH 36/76] Remove RocksDB method implementations without error parameter Makes the API more type-safe and Swift-friendly --- Code/RocksDB.mm | 45 --------------------------------------------- 1 file changed, 45 deletions(-) diff --git a/Code/RocksDB.mm b/Code/RocksDB.mm index e85cfaa..c294f5f 100644 --- a/Code/RocksDB.mm +++ b/Code/RocksDB.mm @@ -348,11 +348,6 @@ - (uint64_t)valueForIntProperty:(RocksDBIntProperty)property #pragma mark - Write Operations -- (BOOL)setObject:(id)anObject forKey:(id)aKey -{ - return [self setObject:anObject forKey:aKey error:nil]; -} - - (BOOL)setObject:(id)anObject forKey:(id)aKey error:(NSError * __autoreleasing *)error { return [self setObject:anObject forKey:aKey error:error writeOptions:nil]; @@ -384,11 +379,6 @@ - (BOOL)setObject:(id)anObject writeOptions:writeOptionsBlock]; } -- (BOOL)setData:(NSData *)data forKey:(NSData *)aKey -{ - return [self setData:data forKey:aKey error:nil]; -} - - (BOOL)setData:(NSData *)data forKey:(NSData *)aKey error:(NSError * __autoreleasing *)error { return [self setData:data forKey:aKey error:error writeOptions:nil]; @@ -426,11 +416,6 @@ - (BOOL)setData:(NSData *)data forKey:(NSData *)aKey #pragma mark - Merge Operations -- (BOOL)mergeOperation:(NSString *)aMerge forKey:(id)aKey -{ - return [self mergeOperation:aMerge forKey:aKey error:nil]; -} - - (BOOL)mergeOperation:(NSString *)aMerge forKey:(id)aKey error:(NSError **)error { return [self mergeOperation:aMerge forKey:aKey error:error writeOptions:nil]; @@ -457,11 +442,6 @@ - (BOOL)mergeOperation:(NSString *)aMerge forKey:(id)aKey error:(NSError **)erro writeOptions:writeOptionsBlock]; } -- (BOOL)mergeObject:(id)anObject forKey:(id)aKey -{ - return [self mergeObject:anObject forKey:aKey error:nil]; -} - - (BOOL)mergeObject:(id)anObject forKey:(id)aKey error:(NSError **)error { return [self mergeObject:anObject forKey:aKey error:error writeOptions:nil]; @@ -493,11 +473,6 @@ - (BOOL)mergeObject:(id)anObject writeOptions:writeOptionsBlock]; } -- (BOOL)mergeData:(NSData *)data forKey:(NSData *)aKey -{ - return [self mergeData:data forKey:aKey error:nil]; -} - - (BOOL)mergeData:(NSData *)data forKey:(NSData *)aKey error:(NSError **)error { return [self mergeData:data forKey:aKey error:error writeOptions:nil]; @@ -536,11 +511,6 @@ - (BOOL)mergeData:(NSData *)data #pragma mark - Read Operations -- (id)objectForKey:(id)aKey -{ - return [self objectForKey:aKey error:nil]; -} - - (id)objectForKey:(id)aKey error:(NSError **)error { return [self objectForKey:aKey error:error readOptions:nil]; @@ -569,11 +539,6 @@ - (id)objectForKey:(id)aKey error:(NSError **)error readOptions:(void (^)(RocksD return DecodeValueData(aKey, data, (RocksDBEncodingOptions *)_options, error); } -- (NSData *)dataForKey:(NSData *)aKey -{ - return [self dataForKey:aKey error:nil]; -} - - (NSData *)dataForKey:(NSData *)aKey error:(NSError * __autoreleasing *)error { return [self dataForKey:aKey error:error readOptions:nil]; @@ -611,11 +576,6 @@ - (NSData *)dataForKey:(NSData *)aKey #pragma mark - Delete Operations -- (BOOL)deleteObjectForKey:(id)aKey -{ - return [self deleteObjectForKey:aKey error:nil]; -} - - (BOOL)deleteObjectForKey:(id)aKey error:(NSError **)error { return [self deleteObjectForKey:aKey error:error writeOptions:nil]; @@ -644,11 +604,6 @@ - (BOOL)deleteObjectForKey:(id)aKey writeOptions:writeOptionsBlock]; } -- (BOOL)deleteDataForKey:(NSData *)aKey -{ - return [self deleteDataForKey:aKey error:nil]; -} - - (BOOL)deleteDataForKey:(NSData *)aKey error:(NSError * __autoreleasing *)error { return [self deleteDataForKey:aKey error:error writeOptions:nil]; From 15261658d9a6acd1a645a464275d726df088db69 Mon Sep 17 00:00:00 2001 From: iska Date: Thu, 12 Nov 2015 00:19:36 +0100 Subject: [PATCH 37/76] Consolidate RocksDB API - Drop all methods without error parameter - Refactor methods so that the error parameter is the last --- Code/RocksDB.h | 152 ++------------------------ Code/RocksDB.mm | 154 ++++++++++----------------- Tests/RocksDBColumnFamilyTests.mm | 2 +- Tests/RocksDBColumnFamilyTests.swift | 2 +- Tests/RocksDBWriteBatchTests.mm | 8 +- 5 files changed, 72 insertions(+), 246 deletions(-) diff --git a/Code/RocksDB.h b/Code/RocksDB.h index 9c96e09..0b8269d 100644 --- a/Code/RocksDB.h +++ b/Code/RocksDB.h @@ -254,20 +254,6 @@ */ - (BOOL)setObject:(id)anObject forKey:(id)aKey error:(NSError **)error; -/** - Stores the given key-object pair into the DB. - - @discussion - - @param anObject The object for key. - @param aKey The key for object. - @param writeOptions A block with a `RocksDBWriteOptions` instance for configuring this write operation. - @return `YES` if the operation succeeded, `NO` otherwise - - @see RocksDBWriteOptions - */ -- (BOOL)setObject:(id)anObject forKey:(id)aKey writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptionsBlock; - /** Stores the given key-object pair into the DB. @@ -281,7 +267,7 @@ @see RocksDBWriteOptions */ -- (BOOL)setObject:(id)anObject forKey:(id)aKey error:(NSError **)error writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions; +- (BOOL)setObject:(id)anObject forKey:(id)aKey writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions error:(NSError **)error; /** Stores the given data object under the given data key in the DB. @@ -298,23 +284,6 @@ */ - (BOOL)setData:(NSData *)data forKey:(NSData *)aKey error:(NSError **)error; -/** - Stores the given data object under the given data key in the DB. - - @discussion This method can be used to configure single write operations bypassing the defaults. - - @param data The data for key. - @param aKey The key for object. - @param writeOptions A block with a `RocksDBWriteOptions` instance for configuring this write operation. - @return `YES` if the operation succeeded, `NO` otherwise - - @see RocksDB setObject:forKey: - @see RocksDB setObject:forKey:error: - @see RocksDB setObject:forKey:writeOptions: - @see RocksDB setObject:forKey:error:writeOptions: - */ -- (BOOL)setData:(NSData *)data forKey:(NSData *)aKey writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions; - /** Stores the given data object under the given data key in the DB. @@ -331,7 +300,7 @@ @see RocksDB setObject:forKey:writeOptions: @see RocksDB setObject:forKey:error:writeOptions: */ -- (BOOL)setData:(NSData *)data forKey:(NSData *)aKey error:(NSError **)error writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions; +- (BOOL)setData:(NSData *)data forKey:(NSData *)aKey writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions error:(NSError **)error; @end @@ -343,8 +312,7 @@ - (BOOL)mergeOperation:(NSString *)aMerge forKey:(id)aKey error:(NSError **)error; -- (BOOL)mergeOperation:(NSString *)aMerge forKey:(id)aKey writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions; -- (BOOL)mergeOperation:(NSString *)aMerge forKey:(id)aKey error:(NSError **)error writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions; +- (BOOL)mergeOperation:(NSString *)aMerge forKey:(id)aKey writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions error:(NSError **)error; /** Merges the given object with the existing data for the given key. @@ -361,22 +329,6 @@ */ - (BOOL)mergeObject:(id)anObject forKey:(id)aKey error:(NSError **)error; -/** - Merges the given object with the existing data for the given key. - - @discussion A merge is an atomic read-modify-write operation, whose semantics are defined - by the user-provided merge operator. - This method can be used to configure single merge operations bypassing the defaults. - - @param anObject The object being merged. - @param aKey The key for the object. - @param writeOptions A block with a `RocksDBWriteOptions` instance for configuring this merge operation. - @return `YES` if the operation succeeded, `NO` otherwise - - @see RocksDBMergeOperator - */ -- (BOOL)mergeObject:(id)anObject forKey:(id)aKey writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions; - /** Merges the given object with the existing data for the given key. @@ -392,7 +344,7 @@ @see RocksDBMergeOperator */ -- (BOOL)mergeObject:(id)anObject forKey:(id)aKey error:(NSError **)error writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions; +- (BOOL)mergeObject:(id)anObject forKey:(id)aKey writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions error:(NSError **)error ; /** @@ -410,23 +362,6 @@ */ - (BOOL)mergeData:(NSData *)data forKey:(NSData *)aKey error:(NSError **)error; -/** - Merges the given data object with the existing data for the given key. - - @discussion A merge is an atomic read-modify-write operation, whose semantics are defined - by the user-provided merge operator. - This method can be used to configure single merge operations bypassing the defaults. - - @param data The data being merged. - @param aKey The key for the data. - @param writeOptions A block with a `RocksDBWriteOptions` instance for configuring this merge operation. - @return `YES` if the operation succeeded, `NO` otherwise - - @see RocksDBMergeOperator - @see RocksDBWriteOptions - */ -- (BOOL)mergeData:(NSData *)data forKey:(NSData *)aKey writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions; - /** Merges the given data object with the existing data for the given key. @@ -443,7 +378,7 @@ @see RocksDBMergeOperator @see RocksDBWriteOptions */ -- (BOOL)mergeData:(NSData *)data forKey:(NSData *)aKey error:(NSError **)error writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions; +- (BOOL)mergeData:(NSData *)data forKey:(NSData *)aKey writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions error:(NSError **)error; @end @@ -462,17 +397,6 @@ */ - (id)objectForKey:(id)aKey error:(NSError **)error; -/** - Returns the object for the given key. - - @peram aKey The key for object. - @param readOptions A block with a `RocksDBReadOptions` instance for configuring this read operation. - @return The object for the given key. - - @see RocksDBReadOptions - */ --(id)objectForKey:(id)aKey readOptions:(void (^)(RocksDBReadOptions *readOptions))readOptions; - /** Returns the object for the given key. @@ -483,7 +407,7 @@ @see RocksDBReadOptions */ -- (id)objectForKey:(id)aKey error:(NSError **)error readOptions:(void (^)(RocksDBReadOptions *readOptions))readOptions; +- (id)objectForKey:(id)aKey readOptions:(void (^)(RocksDBReadOptions *readOptions))readOptions error:(NSError **)error; /** Returns the data for the given key. @@ -499,21 +423,6 @@ */ - (NSData *)dataForKey:(NSData *)aKey error:(NSError **)error; -/** - Returns the data for the given key. - - @peram aKey The key for data. - @param readOptions A block with a `RocksDBReadOptions` instance for configuring this read operation. - @return The data object for the given key. - - @see RocksDBReadOptions - @see RocksDB objectForKey: - @see RocksDB objectForKey:error: - @see RocksDB objectForKey:readOptions: - @see RocksDB objectForKey:error:readOptions: - */ -- (NSData *)dataForKey:(NSData *)aKey readOptions:(void (^)(RocksDBReadOptions *readOptions))readOptions; - /** Returns the data for the given key. @@ -528,7 +437,7 @@ @see RocksDB objectForKey:readOptions: @see RocksDB objectForKey:error:readOptions: */ -- (NSData *)dataForKey:(NSData *)aKey error:(NSError **)error readOptions:(void (^)(RocksDBReadOptions *readOptions))readOptions; +- (NSData *)dataForKey:(NSData *)aKey readOptions:(void (^)(RocksDBReadOptions *readOptions))readOptions error:(NSError **)error; @end @@ -547,17 +456,6 @@ */ - (BOOL)deleteObjectForKey:(id)aKey error:(NSError **)error; -/** - Deletes the object for the given key. - - @peram aKey The key to delete. - @param writeOptions A block with a `RocksDBWriteOptions` instance for configuring this delete operation. - @return `YES` if the operation succeeded, `NO` otherwise - - @see RocksDBWriteOptions - */ -- (BOOL)deleteObjectForKey:(id)aKey writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions; - /** Deletes the object for the given key. @@ -568,7 +466,7 @@ @see RocksDBWriteOptions */ -- (BOOL)deleteObjectForKey:(id)aKey error:(NSError **)error writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions; +- (BOOL)deleteObjectForKey:(id)aKey writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions error:(NSError **)error ; /** Deletes the data for the given key. @@ -584,21 +482,6 @@ */ - (BOOL)deleteDataForKey:(NSData *)aKey error:(NSError **)error; -/** - Deletes the data for the given key. - - @peram aKey The key to delete. - @param writeOptions A block with a `RocksDBWriteOptions` instance for configuring this delete operation. - @return `YES` if the operation succeeded, `NO` otherwise - - @see RocksDBWriteOptions - @see RocksDB deleteObjectForKey: - @see RocksDB deleteObjectForKey:error: - @see RocksDB deleteObjectForKey:readOptions: - @see RocksDB deleteObjectForKey:error:readOptions: - */ -- (BOOL)deleteDataForKey:(NSData *)aKey writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions; - /** Deletes the data for the given key. @@ -613,7 +496,7 @@ @see RocksDB deleteObjectForKey:readOptions: @see RocksDB deleteObjectForKey:error:readOptions: */ -- (BOOL)deleteDataForKey:(NSData *)aKey error:(NSError **)error writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions; +- (BOOL)deleteDataForKey:(NSData *)aKey writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions error:(NSError **)error; @end @@ -671,21 +554,6 @@ */ - (BOOL)performIndexedWriteBatch:(void (^)(RocksDBIndexedWriteBatch *batch, RocksDBWriteOptions *options))batch error:(NSError **)error; -/** - Applies a write batch instance on this DB. - - @discussion In contrast to the block-based approach, this method allows for building the batch separately - and then applying it when needed. - - @param writeBatch The write batch instance to apply. - @param writeOptions The write options to configure this batch. - @return `YES` if the operation succeeded, `NO` otherwise - - @see RocksDBWriteBatch - @see RocksDBWriteOptions - */ -- (BOOL)applyWriteBatch:(RocksDBWriteBatch *)writeBatch withWriteOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions; - /** Applies a write batch instance on this DB. @@ -700,7 +568,7 @@ @see RocksDBWriteBatch @see RocksDBWriteOptions */ -- (BOOL)applyWriteBatch:(RocksDBWriteBatch *)writeBatch error:(NSError **)error writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions; +- (BOOL)applyWriteBatch:(RocksDBWriteBatch *)writeBatch writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions error:(NSError **)error; @end diff --git a/Code/RocksDB.mm b/Code/RocksDB.mm index c294f5f..6f2e650 100644 --- a/Code/RocksDB.mm +++ b/Code/RocksDB.mm @@ -1,10 +1,10 @@ -// -// ObjectiveRocks.m -// ObjectiveRocks -// -// Created by Iska on 15/11/14. -// Copyright (c) 2014 BrainCookie. All rights reserved. -// + // + // ObjectiveRocks.m + // ObjectiveRocks + // + // Created by Iska on 15/11/14. + // Copyright (c) 2014 BrainCookie. All rights reserved. + // #import "RocksDB.h" @@ -33,7 +33,7 @@ #import "RocksDBProperties.h" -#pragma mark - +#pragma mark - @interface RocksDBColumnFamilyDescriptor (Private) @property (nonatomic, assign) std::vector *columnFamilies; @@ -85,8 +85,8 @@ + (instancetype)databaseAtPath:(NSString *)path andDBOptions:(void (^)(RocksDBOp } + (instancetype)databaseAtPath:(NSString *)path - columnFamilies:(RocksDBColumnFamilyDescriptor *)descriptor - andDatabaseOptions:(void (^)(RocksDBDatabaseOptions *options))optionsBlock + columnFamilies:(RocksDBColumnFamilyDescriptor *)descriptor + andDatabaseOptions:(void (^)(RocksDBDatabaseOptions *options))optionsBlock { RocksDB *rocks = [[RocksDB alloc] initWithPath:path]; @@ -120,8 +120,8 @@ + (instancetype)databaseForReadOnlyAtPath:(NSString *)path } + (instancetype)databaseForReadOnlyAtPath:(NSString *)path - columnFamilies:(RocksDBColumnFamilyDescriptor *)descriptor - andDatabaseOptions:(void (^)(RocksDBDatabaseOptions *options))optionsBlock + columnFamilies:(RocksDBColumnFamilyDescriptor *)descriptor + andDatabaseOptions:(void (^)(RocksDBDatabaseOptions *options))optionsBlock { RocksDB *rocks = [[RocksDB alloc] initWithPath:path]; @@ -259,7 +259,7 @@ - (RocksDBColumnFamily *)createColumnFamilyWithName:(NSString *)name andOptions: RocksDBOptions *options = [[RocksDBOptions alloc] initWithDatabaseOptions:_options.databaseOptions andColumnFamilyOptions:columnFamilyOptions]; - + RocksDBColumnFamily *columnFamily = [[RocksDBColumnFamily alloc] initWithDBInstance:_db columnFamily:handle andOptions:options]; @@ -350,18 +350,13 @@ - (uint64_t)valueForIntProperty:(RocksDBIntProperty)property - (BOOL)setObject:(id)anObject forKey:(id)aKey error:(NSError * __autoreleasing *)error { - return [self setObject:anObject forKey:aKey error:error writeOptions:nil]; -} - -- (BOOL)setObject:(id)anObject forKey:(id)aKey writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptionsBlock -{ - return [self setObject:anObject forKey:aKey error:nil writeOptions:writeOptionsBlock]; + return [self setObject:anObject forKey:aKey writeOptions:nil error:error]; } - (BOOL)setObject:(id)anObject forKey:(id)aKey - error:(NSError * __autoreleasing *)error - writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptionsBlock + writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptionsBlock + error:(NSError * __autoreleasing *)error { NSError *locError = nil; NSData *keyData = EncodeKey(aKey, (RocksDBEncodingOptions *)_options, &locError); @@ -375,23 +370,18 @@ - (BOOL)setObject:(id)anObject return [self setData:valueData forKey:keyData - error:error - writeOptions:writeOptionsBlock]; + writeOptions:writeOptionsBlock + error:error]; } - (BOOL)setData:(NSData *)data forKey:(NSData *)aKey error:(NSError * __autoreleasing *)error { - return [self setData:data forKey:aKey error:error writeOptions:nil]; -} - -- (BOOL)setData:(NSData *)data forKey:(NSData *)aKey writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptionsBlock -{ - return [self setData:data forKey:aKey error:nil writeOptions:writeOptionsBlock]; + return [self setData:data forKey:aKey writeOptions:nil error:error]; } - (BOOL)setData:(NSData *)data forKey:(NSData *)aKey - error:(NSError * __autoreleasing *)error writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptionsBlock + error:(NSError * __autoreleasing *)error { RocksDBWriteOptions *writeOptions = [_writeOptions copy]; if (writeOptionsBlock) { @@ -416,17 +406,15 @@ - (BOOL)setData:(NSData *)data forKey:(NSData *)aKey #pragma mark - Merge Operations -- (BOOL)mergeOperation:(NSString *)aMerge forKey:(id)aKey error:(NSError **)error -{ - return [self mergeOperation:aMerge forKey:aKey error:error writeOptions:nil]; -} - -- (BOOL)mergeOperation:(NSString *)aMerge forKey:(id)aKey writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptionsBlock +- (BOOL)mergeOperation:(NSString *)aMerge forKey:(id)aKey error:(NSError * __autoreleasing *)error { - return [self mergeOperation:aMerge forKey:aKey error:nil writeOptions:writeOptionsBlock]; + return [self mergeOperation:aMerge forKey:aKey writeOptions:nil error:error]; } -- (BOOL)mergeOperation:(NSString *)aMerge forKey:(id)aKey error:(NSError **)error writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptionsBlock +- (BOOL)mergeOperation:(NSString *)aMerge + forKey:(id)aKey + writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptionsBlock + error:(NSError * __autoreleasing *)error { NSError *locError = nil; NSData *keyData = EncodeKey(aKey, (RocksDBEncodingOptions *)_options, &locError); @@ -439,23 +427,19 @@ - (BOOL)mergeOperation:(NSString *)aMerge forKey:(id)aKey error:(NSError **)erro return [self mergeData:[aMerge dataUsingEncoding:NSUTF8StringEncoding] forKey:keyData - writeOptions:writeOptionsBlock]; + writeOptions:writeOptionsBlock + error:error]; } -- (BOOL)mergeObject:(id)anObject forKey:(id)aKey error:(NSError **)error +- (BOOL)mergeObject:(id)anObject forKey:(id)aKey error:(NSError * __autoreleasing *)error { - return [self mergeObject:anObject forKey:aKey error:error writeOptions:nil]; -} - -- (BOOL)mergeObject:(id)anObject forKey:(id)aKey writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptionsBlock -{ - return [self mergeObject:anObject forKey:aKey error:nil writeOptions:writeOptionsBlock]; + return [self mergeObject:anObject forKey:aKey writeOptions:nil error:error]; } - (BOOL)mergeObject:(id)anObject forKey:(id)aKey - error:(NSError **)error writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptionsBlock + error:(NSError * __autoreleasing *)error { NSError *locError = nil; NSData *keyData = EncodeKey(aKey, (RocksDBEncodingOptions *)_options, &locError); @@ -469,24 +453,19 @@ - (BOOL)mergeObject:(id)anObject return [self mergeData:valueData forKey:keyData - error:error - writeOptions:writeOptionsBlock]; -} - -- (BOOL)mergeData:(NSData *)data forKey:(NSData *)aKey error:(NSError **)error -{ - return [self mergeData:data forKey:aKey error:error writeOptions:nil]; + writeOptions:writeOptionsBlock + error:error]; } -- (BOOL)mergeData:(NSData *)data forKey:(NSData *)aKey writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptionsBlock +- (BOOL)mergeData:(NSData *)data forKey:(NSData *)aKey error:(NSError * __autoreleasing *)error { - return [self mergeData:data forKey:aKey error:nil writeOptions:writeOptionsBlock]; + return [self mergeData:data forKey:aKey writeOptions:nil error:error]; } - (BOOL)mergeData:(NSData *)data forKey:(NSData *)aKey - error:(NSError **)error writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptionsBlock + error:(NSError * __autoreleasing *)error { RocksDBWriteOptions *writeOptions = [_writeOptions copy]; if (writeOptionsBlock) { @@ -511,17 +490,14 @@ - (BOOL)mergeData:(NSData *)data #pragma mark - Read Operations -- (id)objectForKey:(id)aKey error:(NSError **)error -{ - return [self objectForKey:aKey error:error readOptions:nil]; -} - -- (id)objectForKey:(id)aKey readOptions:(void (^)(RocksDBReadOptions *readOptions))readOptionsBlock +- (id)objectForKey:(id)aKey error:(NSError * __autoreleasing *)error { - return [self objectForKey:aKey error:nil readOptions:readOptionsBlock]; + return [self objectForKey:aKey readOptions:nil error:error]; } -- (id)objectForKey:(id)aKey error:(NSError **)error readOptions:(void (^)(RocksDBReadOptions *readOptions))readOptionsBlock +- (id)objectForKey:(id)aKey + readOptions:(void (^)(RocksDBReadOptions *readOptions))readOptionsBlock + error:(NSError * __autoreleasing *)error { NSError *locError = nil; NSData *keyData = EncodeKey(aKey, (RocksDBEncodingOptions *)_options, &locError); @@ -533,25 +509,20 @@ - (id)objectForKey:(id)aKey error:(NSError **)error readOptions:(void (^)(RocksD } NSData *data = [self dataForKey:keyData - error:error - readOptions:readOptionsBlock]; + readOptions:readOptionsBlock + error:error]; return DecodeValueData(aKey, data, (RocksDBEncodingOptions *)_options, error); } - (NSData *)dataForKey:(NSData *)aKey error:(NSError * __autoreleasing *)error { - return [self dataForKey:aKey error:error readOptions:nil]; -} - -- (NSData *)dataForKey:(NSData *)aKey readOptions:(void (^)(RocksDBReadOptions *readOptions))readOptionsBlock -{ - return [self dataForKey:aKey error:nil readOptions:readOptionsBlock]; + return [self dataForKey:aKey readOptions:nil error:error]; } - (NSData *)dataForKey:(NSData *)aKey - error:(NSError * __autoreleasing *)error readOptions:(void (^)(RocksDBReadOptions *readOptions))readOptionsBlock + error:(NSError * __autoreleasing *)error { RocksDBReadOptions *readOptions = [_readOptions copy]; if (readOptionsBlock) { @@ -576,19 +547,14 @@ - (NSData *)dataForKey:(NSData *)aKey #pragma mark - Delete Operations -- (BOOL)deleteObjectForKey:(id)aKey error:(NSError **)error +- (BOOL)deleteObjectForKey:(id)aKey error:(NSError * __autoreleasing *)error { - return [self deleteObjectForKey:aKey error:error writeOptions:nil]; -} - -- (BOOL)deleteObjectForKey:(id)aKey writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptionsBlock -{ - return [self deleteObjectForKey:aKey error:nil writeOptions:writeOptionsBlock]; + return [self deleteObjectForKey:aKey writeOptions:nil error:error]; } - (BOOL)deleteObjectForKey:(id)aKey - error:(NSError **)error writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptionsBlock + error:(NSError * __autoreleasing *)error { NSError *locError = nil; NSData *keyData = EncodeKey(aKey, (RocksDBEncodingOptions *)_options, &locError); @@ -600,23 +566,18 @@ - (BOOL)deleteObjectForKey:(id)aKey } return [self deleteDataForKey:keyData - error:error - writeOptions:writeOptionsBlock]; + writeOptions:writeOptionsBlock + error:error]; } - (BOOL)deleteDataForKey:(NSData *)aKey error:(NSError * __autoreleasing *)error { - return [self deleteDataForKey:aKey error:error writeOptions:nil]; -} - -- (BOOL)deleteDataForKey:(NSData *)aKey writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptionsBlock -{ - return [self deleteDataForKey:aKey error:nil writeOptions:writeOptionsBlock]; + return [self deleteDataForKey:aKey writeOptions:nil error:error]; } - (BOOL)deleteDataForKey:(NSData *)aKey - error:(NSError **)error writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptionsBlock + error:(NSError * __autoreleasing *)error { RocksDBWriteOptions *writeOptions = [_writeOptions copy]; if (writeOptionsBlock) { @@ -626,7 +587,7 @@ - (BOOL)deleteDataForKey:(NSData *)aKey rocksdb::Status status = _db->Delete(writeOptions.options, _columnFamily, SliceFromData(aKey)); - + if (!status.ok()) { NSError *temp = [RocksDBError errorWithRocksStatus:status]; if (error && *error == nil) { @@ -698,12 +659,9 @@ - (BOOL)performIndexedWriteBatch:(void (^)(RocksDBIndexedWriteBatch *batch, Rock return YES; } -- (BOOL)applyWriteBatch:(RocksDBWriteBatch *)writeBatch withWriteOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptionsBlock -{ - return [self applyWriteBatch:writeBatch error:nil writeOptions:writeOptionsBlock]; -} - -- (BOOL)applyWriteBatch:(RocksDBWriteBatch *)writeBatch error:(NSError **)error writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptionsBlock +- (BOOL)applyWriteBatch:(RocksDBWriteBatch *)writeBatch + writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptionsBlock + error:(NSError * __autoreleasing *)error { RocksDBWriteOptions *writeOptions = [_writeOptions copy]; if (writeOptionsBlock) { diff --git a/Tests/RocksDBColumnFamilyTests.mm b/Tests/RocksDBColumnFamilyTests.mm index a54e952..309fa18 100644 --- a/Tests/RocksDBColumnFamilyTests.mm +++ b/Tests/RocksDBColumnFamilyTests.mm @@ -223,7 +223,7 @@ - (void)testColumnFamilies_WriteBatch [batch deleteDataForKey:Data(@"xyz") inColumnFamily:defaultColumnFamily]; [batch deleteDataForKey:Data(@"xyz")]; - [_rocks applyWriteBatch:batch withWriteOptions:nil]; + [_rocks applyWriteBatch:batch writeOptions:nil error:nil]; XCTAssertEqualObjects([defaultColumnFamily dataForKey:Data(@"df_key") error:nil], Data(@"df_value")); XCTAssertNil([defaultColumnFamily dataForKey:Data(@"df_key1") error:nil]); diff --git a/Tests/RocksDBColumnFamilyTests.swift b/Tests/RocksDBColumnFamilyTests.swift index 6a3b0a2..f5aba2d 100644 --- a/Tests/RocksDBColumnFamilyTests.swift +++ b/Tests/RocksDBColumnFamilyTests.swift @@ -220,7 +220,7 @@ class RocksDBColumnFamilyTests : RocksDBTests { batch.deleteDataForKey(Data("xyz"), inColumnFamily:defaultColumnFamily) batch.deleteDataForKey(Data("xyz")) - rocks.applyWriteBatch(batch, withWriteOptions:nil) + try! rocks.applyWriteBatch(batch, writeOptions:nil) XCTAssertEqual(try! defaultColumnFamily.dataForKey(Data("df_key")), Data("df_value")) XCTAssertNil(try? defaultColumnFamily.dataForKey(Data("df_key1"))) diff --git a/Tests/RocksDBWriteBatchTests.mm b/Tests/RocksDBWriteBatchTests.mm index e38ccc0..7e1bb1e 100644 --- a/Tests/RocksDBWriteBatchTests.mm +++ b/Tests/RocksDBWriteBatchTests.mm @@ -86,7 +86,7 @@ - (void)testWriteBatch_Apply [batch setData:Data(@"Value 2") forKey:Data(@"Key 2")]; [batch setData:Data(@"Value 3") forKey:Data(@"Key 3")]; - [_rocks applyWriteBatch:batch withWriteOptions:nil]; + [_rocks applyWriteBatch:batch writeOptions:nil error:nil]; XCTAssertEqualObjects([_rocks dataForKey:Data(@"Key 1") error:nil], Data(@"Value 1")); XCTAssertEqualObjects([_rocks dataForKey:Data(@"Key 2") error:nil], Data(@"Value 2")); @@ -108,7 +108,7 @@ - (void)testWriteBatch_Apply_DeleteOps [batch setData:Data(@"Value 2") forKey:Data(@"Key 2")]; [batch setData:Data(@"Value 3") forKey:Data(@"Key 3")]; - [_rocks applyWriteBatch:batch withWriteOptions:nil]; + [_rocks applyWriteBatch:batch writeOptions:nil error:nil]; XCTAssertEqualObjects([_rocks dataForKey:Data(@"Key 1") error:nil], nil); XCTAssertEqualObjects([_rocks dataForKey:Data(@"Key 2") error:nil], Data(@"Value 2")); @@ -140,7 +140,7 @@ - (void)testWriteBatch_Apply_MergeOps [batch setData:Data(@"Value 3") forKey:Data(@"Key 3")]; [batch mergeData:Data(@"Value 2 New") forKey:Data(@"Key 2")]; - [_rocks applyWriteBatch:batch withWriteOptions:nil]; + [_rocks applyWriteBatch:batch writeOptions:nil error:nil]; XCTAssertEqualObjects([_rocks dataForKey:Data(@"Key 2") error:nil], Data(@"Value 2,Value 2 New")); } @@ -161,7 +161,7 @@ - (void)testWriteBatch_Apply_ClearOps [batch clear]; [batch setData:Data(@"Value 4") forKey:Data(@"Key 4")]; - [_rocks applyWriteBatch:batch withWriteOptions:nil]; + [_rocks applyWriteBatch:batch writeOptions:nil error:nil]; XCTAssertEqualObjects([_rocks dataForKey:Data(@"Key 1") error:nil], Data(@"Value 1")); XCTAssertEqualObjects([_rocks dataForKey:Data(@"Key 2") error:nil], nil); From a661e985cc75d7cc939405af2ef9ceb48cf60f23 Mon Sep 17 00:00:00 2001 From: iska Date: Thu, 12 Nov 2015 00:20:08 +0100 Subject: [PATCH 38/76] Enable code coverage in schemes --- .../xcshareddata/xcschemes/ObjectiveRocks-iOS.xcscheme | 3 ++- .../xcshareddata/xcschemes/ObjectiveRocks.xcscheme | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/ObjectiveRocks.xcodeproj/xcshareddata/xcschemes/ObjectiveRocks-iOS.xcscheme b/ObjectiveRocks.xcodeproj/xcshareddata/xcschemes/ObjectiveRocks-iOS.xcscheme index 1da7358..ffad1c8 100644 --- a/ObjectiveRocks.xcodeproj/xcshareddata/xcschemes/ObjectiveRocks-iOS.xcscheme +++ b/ObjectiveRocks.xcodeproj/xcshareddata/xcschemes/ObjectiveRocks-iOS.xcscheme @@ -40,7 +40,8 @@ buildConfiguration = "Debug" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" - shouldUseLaunchSchemeArgsEnv = "YES"> + shouldUseLaunchSchemeArgsEnv = "YES" + codeCoverageEnabled = "YES"> diff --git a/ObjectiveRocks.xcodeproj/xcshareddata/xcschemes/ObjectiveRocks.xcscheme b/ObjectiveRocks.xcodeproj/xcshareddata/xcschemes/ObjectiveRocks.xcscheme index 6ea5c54..d1a0bc1 100644 --- a/ObjectiveRocks.xcodeproj/xcshareddata/xcschemes/ObjectiveRocks.xcscheme +++ b/ObjectiveRocks.xcodeproj/xcshareddata/xcschemes/ObjectiveRocks.xcscheme @@ -26,7 +26,8 @@ buildConfiguration = "Debug" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" - shouldUseLaunchSchemeArgsEnv = "YES"> + shouldUseLaunchSchemeArgsEnv = "YES" + codeCoverageEnabled = "YES"> From 65f9eeab8a2c7fc1c333d900d1f54545b8bbe986 Mon Sep 17 00:00:00 2001 From: iska Date: Mon, 8 Feb 2016 23:16:24 +0100 Subject: [PATCH 39/76] Change code signing and deployment target --- ObjectiveRocks.xcodeproj/project.pbxproj | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ObjectiveRocks.xcodeproj/project.pbxproj b/ObjectiveRocks.xcodeproj/project.pbxproj index 7f826ed..de0fe94 100644 --- a/ObjectiveRocks.xcodeproj/project.pbxproj +++ b/ObjectiveRocks.xcodeproj/project.pbxproj @@ -3002,7 +3002,7 @@ 624F5D9E1BEE416D00497FEF /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - CODE_SIGN_IDENTITY = "iPhone Developer"; + CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CURRENT_PROJECT_VERSION = 1; DEBUG_INFORMATION_FORMAT = dwarf; @@ -3026,7 +3026,7 @@ ); INFOPLIST_FILE = Framework/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 9.1; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = de.iabudiab.ObjectiveRocks; PRODUCT_NAME = ObjectiveRocks; @@ -3040,7 +3040,7 @@ 624F5D9F1BEE416D00497FEF /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - CODE_SIGN_IDENTITY = "iPhone Developer"; + CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = 1; @@ -3064,7 +3064,7 @@ ); INFOPLIST_FILE = Framework/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 9.1; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = de.iabudiab.ObjectiveRocks; PRODUCT_NAME = ObjectiveRocks; From 8393b5c7a1ae201c2fb4def265bf2d88f5d51de4 Mon Sep 17 00:00:00 2001 From: iska Date: Mon, 8 Feb 2016 23:18:05 +0100 Subject: [PATCH 40/76] Update project settings for Xcode 7.2 --- ObjectiveRocks.xcodeproj/project.pbxproj | 7 +++---- .../xcshareddata/xcschemes/ObjectiveRocks-iOS.xcscheme | 2 +- .../xcshareddata/xcschemes/ObjectiveRocks.xcscheme | 2 +- .../xcschemes/ObjectiveRocksTests-iOS.xcscheme | 2 +- .../xcshareddata/xcschemes/ObjectiveRocksTests.xcscheme | 2 +- 5 files changed, 7 insertions(+), 8 deletions(-) diff --git a/ObjectiveRocks.xcodeproj/project.pbxproj b/ObjectiveRocks.xcodeproj/project.pbxproj index de0fe94..e22042b 100644 --- a/ObjectiveRocks.xcodeproj/project.pbxproj +++ b/ObjectiveRocks.xcodeproj/project.pbxproj @@ -428,7 +428,6 @@ 624F5EA91BEE44E800497FEF /* statistics.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B831A1ABA2000486C31 /* statistics.cc */; }; 624F5EAA1BEE44E800497FEF /* status.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B861A1ABA2000486C31 /* status.cc */; }; 624F5EAB1BEE44E900497FEF /* string_util.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B8A1A1ABA2000486C31 /* string_util.cc */; }; - 624F5EAC1BEE44E900497FEF /* sst_dump_tool.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62451AD41A4BD61700AF11C8 /* sst_dump_tool.cc */; }; 624F5EAD1BEE44E900497FEF /* sync_point.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B8D1A1ABA2000486C31 /* sync_point.cc */; }; 624F5EAF1BEE44E900497FEF /* testutil.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B921A1ABA2000486C31 /* testutil.cc */; }; 624F5EB01BEE44E900497FEF /* thread_local.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B941A1ABA2000486C31 /* thread_local.cc */; }; @@ -486,6 +485,7 @@ 629416631A69DFB000AA0498 /* RocksDBPrefixExtractorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 629416621A69DFB000AA0498 /* RocksDBPrefixExtractorTests.swift */; }; 629416641A69DFB000AA0498 /* RocksDBPrefixExtractorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 629416621A69DFB000AA0498 /* RocksDBPrefixExtractorTests.swift */; }; 6299F8561A17B7AD00123F56 /* RocksDBBasicTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6299F8551A17B7AD00123F56 /* RocksDBBasicTests.mm */; }; + 62A26A3D1C694B7F00DDE27E /* sst_dump_tool.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62451AD41A4BD61700AF11C8 /* sst_dump_tool.cc */; }; 62A37D141A632316003F6095 /* RocksDBIteratorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62A37D131A632316003F6095 /* RocksDBIteratorTests.swift */; }; 62A37D151A632316003F6095 /* RocksDBIteratorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62A37D131A632316003F6095 /* RocksDBIteratorTests.swift */; }; 62A8B0481A58C40A0069B4C8 /* RocksDBBasicTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6299F8551A17B7AD00123F56 /* RocksDBBasicTests.mm */; }; @@ -2384,7 +2384,7 @@ attributes = { LastSwiftMigration = 0700; LastSwiftUpdateCheck = 0700; - LastUpgradeCheck = 0710; + LastUpgradeCheck = 0720; ORGANIZATIONNAME = BrainCookie; TargetAttributes = { 624203BF1BED64410043DD6F = { @@ -2805,8 +2805,7 @@ 624F5EA51BEE44E800497FEF /* rate_limiter.cc in Sources */, 624F5EA61BEE44E800497FEF /* skiplistrep.cc in Sources */, 624F5EA71BEE44E800497FEF /* slice.cc in Sources */, - 624F5EAC1BEE44E900497FEF /* sst_dump_tool.cc in Sources */, - 624F5EAC1BEE44E900497FEF /* sst_dump_tool.cc in Sources */, + 62A26A3D1C694B7F00DDE27E /* sst_dump_tool.cc in Sources */, 624F5EA91BEE44E800497FEF /* statistics.cc in Sources */, 624F5EAA1BEE44E800497FEF /* status.cc in Sources */, 624F5EAB1BEE44E900497FEF /* string_util.cc in Sources */, diff --git a/ObjectiveRocks.xcodeproj/xcshareddata/xcschemes/ObjectiveRocks-iOS.xcscheme b/ObjectiveRocks.xcodeproj/xcshareddata/xcschemes/ObjectiveRocks-iOS.xcscheme index ffad1c8..7cc7bc9 100644 --- a/ObjectiveRocks.xcodeproj/xcshareddata/xcschemes/ObjectiveRocks-iOS.xcscheme +++ b/ObjectiveRocks.xcodeproj/xcshareddata/xcschemes/ObjectiveRocks-iOS.xcscheme @@ -1,6 +1,6 @@ Date: Mon, 8 Feb 2016 23:22:36 +0100 Subject: [PATCH 41/76] Reorder workspace --- ObjectiveRocks.xcworkspace/contents.xcworkspacedata | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ObjectiveRocks.xcworkspace/contents.xcworkspacedata b/ObjectiveRocks.xcworkspace/contents.xcworkspacedata index 4d8b70a..fd7441c 100644 --- a/ObjectiveRocks.xcworkspace/contents.xcworkspacedata +++ b/ObjectiveRocks.xcworkspace/contents.xcworkspacedata @@ -2,9 +2,9 @@ + location = "group:ObjectiveRocks.xcodeproj"> + location = "group:ObjectiveRocks.playground"> From 61bee5b38a94a5c269a6b529bbec6f82aedd3534 Mon Sep 17 00:00:00 2001 From: iska Date: Mon, 8 Feb 2016 23:43:28 +0100 Subject: [PATCH 42/76] Remove RocksDBCheckpoint header from iOS target --- ObjectiveRocks.xcodeproj/project.pbxproj | 2 -- 1 file changed, 2 deletions(-) diff --git a/ObjectiveRocks.xcodeproj/project.pbxproj b/ObjectiveRocks.xcodeproj/project.pbxproj index e22042b..dc43d63 100644 --- a/ObjectiveRocks.xcodeproj/project.pbxproj +++ b/ObjectiveRocks.xcodeproj/project.pbxproj @@ -286,7 +286,6 @@ 624F5DBC1BEE41F700497FEF /* RocksDBMemTableRepFactory.h in Headers */ = {isa = PBXBuildFile; fileRef = 625F8F271A59D7B1007796BA /* RocksDBMemTableRepFactory.h */; settings = {ATTRIBUTES = (Public, ); }; }; 624F5DBD1BEE41F700497FEF /* RocksDBSnapshot.h in Headers */ = {isa = PBXBuildFile; fileRef = 620494851A3284A800A0E950 /* RocksDBSnapshot.h */; settings = {ATTRIBUTES = (Public, ); }; }; 624F5DBE1BEE41F700497FEF /* RocksDBSnapshotUnavailable.h in Headers */ = {isa = PBXBuildFile; fileRef = 628C51C71A3BD08500B96F8F /* RocksDBSnapshotUnavailable.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 624F5DBF1BEE41F700497FEF /* RocksDBCheckpoint.h in Headers */ = {isa = PBXBuildFile; fileRef = 625F8F211A59CF82007796BA /* RocksDBCheckpoint.h */; settings = {ATTRIBUTES = (Public, ); }; }; 624F5DC01BEE41F700497FEF /* RocksDBMergeOperator.h in Headers */ = {isa = PBXBuildFile; fileRef = 62EEC4B51A34FEE100624DA2 /* RocksDBMergeOperator.h */; settings = {ATTRIBUTES = (Public, ); }; }; 624F5DC61BEE437C00497FEF /* RocksDB.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6299F80E1A17B28200123F56 /* RocksDB.mm */; }; 624F5DC81BEE437C00497FEF /* RocksDBTypes.m in Sources */ = {isa = PBXBuildFile; fileRef = 62451AC91A4BAEC000AF11C8 /* RocksDBTypes.m */; }; @@ -2277,7 +2276,6 @@ 624F5DBC1BEE41F700497FEF /* RocksDBMemTableRepFactory.h in Headers */, 624F5DBD1BEE41F700497FEF /* RocksDBSnapshot.h in Headers */, 624F5DBE1BEE41F700497FEF /* RocksDBSnapshotUnavailable.h in Headers */, - 624F5DBF1BEE41F700497FEF /* RocksDBCheckpoint.h in Headers */, 624F5DC01BEE41F700497FEF /* RocksDBMergeOperator.h in Headers */, 621C6D971BEE4A4600044CB1 /* RocksDBStatistics.h in Headers */, 621C6D981BEE4A4600044CB1 /* RocksDBStatisticsHistogram.h in Headers */, From 735c65736079effd0fe8f01ded0a1a9455112b5a Mon Sep 17 00:00:00 2001 From: iska Date: Sat, 4 Jun 2016 15:39:41 +0200 Subject: [PATCH 43/76] Update rocksdb to release version 4.6.1 --- rocksdb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rocksdb b/rocksdb index 812c461..8d7926a 160000 --- a/rocksdb +++ b/rocksdb @@ -1 +1 @@ -Subproject commit 812c461c96869ebcd8e629da8f01e1cea01c00ca +Subproject commit 8d7926a766f2ab9bd6e7aa8cba80b5d3ff26c52b From e2c96d8cea1a3de171f452c4fab8b18519e28616 Mon Sep 17 00:00:00 2001 From: iska Date: Sat, 4 Jun 2016 22:32:50 +0200 Subject: [PATCH 44/76] Change RocksDBTypes file type to ObjC++ Otherwise project wont compile due to CoreFoundation import conflict --- Code/{RocksDBTypes.m => RocksDBTypes.mm} | 2 +- ObjectiveRocks.xcodeproj/project.pbxproj | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) rename Code/{RocksDBTypes.m => RocksDBTypes.mm} (99%) diff --git a/Code/RocksDBTypes.m b/Code/RocksDBTypes.mm similarity index 99% rename from Code/RocksDBTypes.m rename to Code/RocksDBTypes.mm index 08d31bf..e7739a7 100644 --- a/Code/RocksDBTypes.m +++ b/Code/RocksDBTypes.mm @@ -1,5 +1,5 @@ // -// RocksDBTypes.m +// RocksDBTypes.mm // ObjectiveRocks // // Created by Iska on 25/12/14. diff --git a/ObjectiveRocks.xcodeproj/project.pbxproj b/ObjectiveRocks.xcodeproj/project.pbxproj index dc43d63..ab5f5b7 100644 --- a/ObjectiveRocks.xcodeproj/project.pbxproj +++ b/ObjectiveRocks.xcodeproj/project.pbxproj @@ -112,7 +112,7 @@ 6242041B1BED65250043DD6F /* RocksDBStatisticsHistogram.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62A8B0681A58E4B60069B4C8 /* RocksDBStatisticsHistogram.mm */; }; 6242041C1BED65250043DD6F /* RocksDBBackupEngine.mm in Sources */ = {isa = PBXBuildFile; fileRef = 621CD71B1A4FB24700853E16 /* RocksDBBackupEngine.mm */; }; 6242041D1BED65250043DD6F /* RocksDBBackupInfo.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62A8B0601A58CC400069B4C8 /* RocksDBBackupInfo.mm */; }; - 6242042C1BED652D0043DD6F /* RocksDBTypes.m in Sources */ = {isa = PBXBuildFile; fileRef = 62451AC91A4BAEC000AF11C8 /* RocksDBTypes.m */; }; + 6242042C1BED652D0043DD6F /* RocksDBTypes.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62451AC91A4BAEC000AF11C8 /* RocksDBTypes.mm */; }; 6242042D1BED65540043DD6F /* RocksDBCallbackComparator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 62376BBD1A20EDF000C85DFB /* RocksDBCallbackComparator.cpp */; }; 6242042E1BED65540043DD6F /* RocksDBCallbackAssociativeMergeOperator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 62EEC4B81A34FF0600624DA2 /* RocksDBCallbackAssociativeMergeOperator.cpp */; }; 6242042F1BED65540043DD6F /* RocksDBCallbackMergeOperator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6214FD071A3F698300B92E5C /* RocksDBCallbackMergeOperator.cpp */; }; @@ -288,7 +288,7 @@ 624F5DBE1BEE41F700497FEF /* RocksDBSnapshotUnavailable.h in Headers */ = {isa = PBXBuildFile; fileRef = 628C51C71A3BD08500B96F8F /* RocksDBSnapshotUnavailable.h */; settings = {ATTRIBUTES = (Public, ); }; }; 624F5DC01BEE41F700497FEF /* RocksDBMergeOperator.h in Headers */ = {isa = PBXBuildFile; fileRef = 62EEC4B51A34FEE100624DA2 /* RocksDBMergeOperator.h */; settings = {ATTRIBUTES = (Public, ); }; }; 624F5DC61BEE437C00497FEF /* RocksDB.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6299F80E1A17B28200123F56 /* RocksDB.mm */; }; - 624F5DC81BEE437C00497FEF /* RocksDBTypes.m in Sources */ = {isa = PBXBuildFile; fileRef = 62451AC91A4BAEC000AF11C8 /* RocksDBTypes.m */; }; + 624F5DC81BEE437C00497FEF /* RocksDBTypes.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62451AC91A4BAEC000AF11C8 /* RocksDBTypes.mm */; }; 624F5DC91BEE437C00497FEF /* RocksDBError.mm in Sources */ = {isa = PBXBuildFile; fileRef = 628B0CE91A1C104D0099C39B /* RocksDBError.mm */; }; 624F5DCA1BEE437C00497FEF /* RocksDBColumnFamily.mm in Sources */ = {isa = PBXBuildFile; fileRef = 620629691A510D36001DEDC4 /* RocksDBColumnFamily.mm */; }; 624F5DCB1BEE437C00497FEF /* RocksDBColumnFamilyDescriptor.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62074F2C1A520EC2002B1885 /* RocksDBColumnFamilyDescriptor.mm */; }; @@ -601,7 +601,6 @@ 624203C01BED64410043DD6F /* ObjectiveRocks.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ObjectiveRocks.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 624203C81BED64AE0043DD6F /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = Framework/Info.plist; sourceTree = SOURCE_ROOT; }; 62451AC81A4BAEC000AF11C8 /* RocksDBTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RocksDBTypes.h; sourceTree = ""; }; - 62451AC91A4BAEC000AF11C8 /* RocksDBTypes.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RocksDBTypes.m; sourceTree = ""; }; 62451ACB1A4BC7A600AF11C8 /* sst_dump_tool_imp.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = sst_dump_tool_imp.h; sourceTree = ""; }; 62451ACC1A4BC85400AF11C8 /* thread_status_updater_debug.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = thread_status_updater_debug.cc; sourceTree = ""; }; 62451ACD1A4BC85400AF11C8 /* thread_status_updater.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = thread_status_updater.cc; sourceTree = ""; }; @@ -610,6 +609,7 @@ 62451AD01A4BC85400AF11C8 /* thread_status_util.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = thread_status_util.h; sourceTree = ""; }; 62451AD41A4BD61700AF11C8 /* sst_dump_tool.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = sst_dump_tool.cc; sourceTree = ""; }; 62451AD51A4BD63D00AF11C8 /* sst_dump_test.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = sst_dump_test.cc; sourceTree = ""; }; + 62451AC91A4BAEC000AF11C8 /* RocksDBTypes.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RocksDBTypes.mm; sourceTree = ""; }; 624566C71A51DA79009AC3FB /* RocksDBColumnFamilyTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RocksDBColumnFamilyTests.mm; sourceTree = ""; }; 62456CBA1A66FE0500329F11 /* RocksDBMergeOperatorTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RocksDBMergeOperatorTests.swift; sourceTree = ""; }; 6249A3CB1A4A43CA00949B07 /* RocksDBTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RocksDBTests.mm; sourceTree = ""; }; From 6ecffaf8e732a4b1a5fbd362d844f333e28da915 Mon Sep 17 00:00:00 2001 From: iska Date: Sat, 4 Jun 2016 22:38:10 +0200 Subject: [PATCH 45/76] Update ObjectiveRocks targets for rocksdb version 4.6.1 - Update compile sources phase - Remove obsolete files --- ObjectiveRocks.xcodeproj/project.pbxproj | 4257 +++++++++++++--------- 1 file changed, 2579 insertions(+), 1678 deletions(-) diff --git a/ObjectiveRocks.xcodeproj/project.pbxproj b/ObjectiveRocks.xcodeproj/project.pbxproj index ab5f5b7..72461c2 100644 --- a/ObjectiveRocks.xcodeproj/project.pbxproj +++ b/ObjectiveRocks.xcodeproj/project.pbxproj @@ -117,145 +117,6 @@ 6242042E1BED65540043DD6F /* RocksDBCallbackAssociativeMergeOperator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 62EEC4B81A34FF0600624DA2 /* RocksDBCallbackAssociativeMergeOperator.cpp */; }; 6242042F1BED65540043DD6F /* RocksDBCallbackMergeOperator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6214FD071A3F698300B92E5C /* RocksDBCallbackMergeOperator.cpp */; }; 624204301BED65540043DD6F /* RocksDBCallbackSliceTransform.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6236E2581A4DD71600A81ED6 /* RocksDBCallbackSliceTransform.cpp */; }; - 624204311BED66850043DD6F /* builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29141A1ABA1F00486C31 /* builder.cc */; }; - 624204321BED66850043DD6F /* c.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29171A1ABA1F00486C31 /* c.cc */; }; - 624204331BED66850043DD6F /* column_family.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE291A1A1ABA1F00486C31 /* column_family.cc */; }; - 624204341BED66850043DD6F /* compaction.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE291E1A1ABA1F00486C31 /* compaction.cc */; }; - 624204351BED66850043DD6F /* compaction_job.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29211A1ABA1F00486C31 /* compaction_job.cc */; }; - 624204371BED66850043DD6F /* compaction_picker.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29251A1ABA1F00486C31 /* compaction_picker.cc */; }; - 6242043A1BED66850043DD6F /* db_filesnapshot.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE292D1A1ABA1F00486C31 /* db_filesnapshot.cc */; }; - 6242043B1BED66850043DD6F /* db_impl_experimental.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C225F1AF01C8E006DC8FA /* db_impl_experimental.cc */; }; - 6242043C1BED66850043DD6F /* db_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE292F1A1ABA1F00486C31 /* db_impl.cc */; }; - 6242043D1BED66850043DD6F /* db_impl_debug.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29321A1ABA1F00486C31 /* db_impl_debug.cc */; }; - 6242043E1BED66850043DD6F /* db_impl_readonly.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29341A1ABA1F00486C31 /* db_impl_readonly.cc */; }; - 6242043F1BED66850043DD6F /* db_iter.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29371A1ABA1F00486C31 /* db_iter.cc */; }; - 624204401BED66850043DD6F /* dbformat.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE293C1A1ABA1F00486C31 /* dbformat.cc */; }; - 624204411BED66850043DD6F /* event_logger_helpers.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62297D541B6AC08B00F72BF2 /* event_logger_helpers.cc */; }; - 624204421BED66850043DD6F /* experimental.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C22621AF01CA7006DC8FA /* experimental.cc */; }; - 624204431BED66850043DD6F /* file_indexer.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29411A1ABA1F00486C31 /* file_indexer.cc */; }; - 624204441BED66850043DD6F /* filename.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29451A1ABA1F00486C31 /* filename.cc */; }; - 624204451BED66850043DD6F /* flush_job.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29491A1ABA1F00486C31 /* flush_job.cc */; }; - 624204461BED66850043DD6F /* flush_scheduler.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE294D1A1ABA1F00486C31 /* flush_scheduler.cc */; }; - 624204471BED66850043DD6F /* forward_iterator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29501A1ABA1F00486C31 /* forward_iterator.cc */; }; - 624204481BED66850043DD6F /* internal_stats.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29531A1ABA1F00486C31 /* internal_stats.cc */; }; - 624204491BED66850043DD6F /* log_reader.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE295A1A1ABA1F00486C31 /* log_reader.cc */; }; - 6242044A1BED66850043DD6F /* log_writer.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE295E1A1ABA1F00486C31 /* log_writer.cc */; }; - 6242044B1BED66850043DD6F /* managed_iterator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C22261AF0161E006DC8FA /* managed_iterator.cc */; }; - 6242044C1BED66850043DD6F /* memtable.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29611A1ABA1F00486C31 /* memtable.cc */; }; - 6242044D1BED66850043DD6F /* memtable_allocator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 6235339E1A47722900D5CD14 /* memtable_allocator.cc */; }; - 6242044E1BED66850043DD6F /* memtable_list.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29641A1ABA1F00486C31 /* memtable_list.cc */; }; - 624204501BED66850043DD6F /* merge_helper.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29681A1ABA1F00486C31 /* merge_helper.cc */; }; - 624204511BED66850043DD6F /* merge_operator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE296B1A1ABA1F00486C31 /* merge_operator.cc */; }; - 624204521BED66850043DD6F /* repair.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29711A1ABA1F00486C31 /* repair.cc */; }; - 624204531BED66850043DD6F /* slice.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C224A1AF01880006DC8FA /* slice.cc */; }; - 624204541BED66850043DD6F /* table_cache.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29761A1ABA1F00486C31 /* table_cache.cc */; }; - 624204551BED66850043DD6F /* table_properties_collector.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29791A1ABA1F00486C31 /* table_properties_collector.cc */; }; - 624204571BED66850043DD6F /* transaction_log_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE297D1A1ABA1F00486C31 /* transaction_log_impl.cc */; }; - 624204581BED66850043DD6F /* version_builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29801A1ABA1F00486C31 /* version_builder.cc */; }; - 624204591BED66850043DD6F /* version_edit.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29841A1ABA1F00486C31 /* version_edit.cc */; }; - 6242045A1BED66850043DD6F /* version_set.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29881A1ABA1F00486C31 /* version_set.cc */; }; - 6242045B1BED66850043DD6F /* wal_manager.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE298C1A1ABA1F00486C31 /* wal_manager.cc */; }; - 6242045C1BED66850043DD6F /* write_batch_base.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C224D1AF0188B006DC8FA /* write_batch_base.cc */; }; - 6242045D1BED66850043DD6F /* write_batch.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29901A1ABA1F00486C31 /* write_batch.cc */; }; - 6242045E1BED66850043DD6F /* write_controller.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29941A1ABA1F00486C31 /* write_controller.cc */; }; - 6242045F1BED66850043DD6F /* write_thread.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29981A1ABA1F00486C31 /* write_thread.cc */; }; - 624204601BED66850043DD6F /* port_posix.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2A7E1A1ABA1F00486C31 /* port_posix.cc */; }; - 624204611BED66850043DD6F /* stack_trace.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2A821A1ABA1F00486C31 /* stack_trace.cc */; }; - 624204621BED66850043DD6F /* adaptive_table_factory.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2A8A1A1ABA1F00486C31 /* adaptive_table_factory.cc */; }; - 624204631BED66850043DD6F /* block.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2A8D1A1ABA1F00486C31 /* block.cc */; }; - 624204641BED66850043DD6F /* block_based_filter_block.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2A901A1ABA1F00486C31 /* block_based_filter_block.cc */; }; - 624204651BED66850043DD6F /* block_based_table_builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2A941A1ABA1F00486C31 /* block_based_table_builder.cc */; }; - 624204661BED66850043DD6F /* block_based_table_factory.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2A971A1ABA1F00486C31 /* block_based_table_factory.cc */; }; - 624204671BED66850043DD6F /* block_based_table_reader.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2A9A1A1ABA1F00486C31 /* block_based_table_reader.cc */; }; - 624204681BED66850043DD6F /* block_builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2A9D1A1ABA1F00486C31 /* block_builder.cc */; }; - 624204691BED66850043DD6F /* block_hash_index.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AA01A1ABA1F00486C31 /* block_hash_index.cc */; }; - 6242046A1BED66850043DD6F /* block_prefix_index.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AA41A1ABA1F00486C31 /* block_prefix_index.cc */; }; - 6242046B1BED66860043DD6F /* bloom_block.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AA81A1ABA1F00486C31 /* bloom_block.cc */; }; - 6242046C1BED66860043DD6F /* cuckoo_table_builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AAB1A1ABA1F00486C31 /* cuckoo_table_builder.cc */; }; - 6242046D1BED66860043DD6F /* cuckoo_table_factory.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AAF1A1ABA1F00486C31 /* cuckoo_table_factory.cc */; }; - 6242046E1BED66860043DD6F /* cuckoo_table_reader.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AB21A1ABA1F00486C31 /* cuckoo_table_reader.cc */; }; - 6242046F1BED66860043DD6F /* flush_block_policy.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AB71A1ABA1F00486C31 /* flush_block_policy.cc */; }; - 624204701BED66860043DD6F /* format.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AB91A1ABA1F00486C31 /* format.cc */; }; - 624204711BED66860043DD6F /* full_filter_block.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2ABC1A1ABA1F00486C31 /* full_filter_block.cc */; }; - 624204721BED66860043DD6F /* get_context.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AC01A1ABA1F00486C31 /* get_context.cc */; }; - 624204731BED66860043DD6F /* iterator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AC41A1ABA1F00486C31 /* iterator.cc */; }; - 624204741BED66860043DD6F /* merger.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AC71A1ABA1F00486C31 /* merger.cc */; }; - 624204751BED66860043DD6F /* meta_blocks.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2ACB1A1ABA1F00486C31 /* meta_blocks.cc */; }; - 624204771BED66860043DD6F /* plain_table_builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AD01A1ABA1F00486C31 /* plain_table_builder.cc */; }; - 624204781BED66860043DD6F /* plain_table_factory.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AD31A1ABA1F00486C31 /* plain_table_factory.cc */; }; - 624204791BED66860043DD6F /* plain_table_index.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AD61A1ABA1F00486C31 /* plain_table_index.cc */; }; - 6242047A1BED66860043DD6F /* plain_table_key_coding.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AD91A1ABA1F00486C31 /* plain_table_key_coding.cc */; }; - 6242047B1BED66860043DD6F /* plain_table_reader.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2ADC1A1ABA1F00486C31 /* plain_table_reader.cc */; }; - 6242047C1BED66860043DD6F /* table_properties.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AE01A1ABA1F00486C31 /* table_properties.cc */; }; - 6242047E1BED66860043DD6F /* two_level_iterator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AE61A1ABA1F00486C31 /* two_level_iterator.cc */; }; - 6242047F1BED66860043DD6F /* arena.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B061A1ABA2000486C31 /* arena.cc */; }; - 624204801BED66860043DD6F /* auto_roll_logger.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B0A1A1ABA2000486C31 /* auto_roll_logger.cc */; }; - 624204811BED66860043DD6F /* bloom.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B171A1ABA2000486C31 /* bloom.cc */; }; - 624204821BED66860043DD6F /* build_version.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62297D591B6AC8CE00F72BF2 /* build_version.cc */; }; - 624204831BED66860043DD6F /* cache.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B1D1A1ABA2000486C31 /* cache.cc */; }; - 624204851BED66860043DD6F /* coding.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B211A1ABA2000486C31 /* coding.cc */; }; - 624204861BED66860043DD6F /* comparator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B251A1ABA2000486C31 /* comparator.cc */; }; - 624204871BED66860043DD6F /* crc32c.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B271A1ABA2000486C31 /* crc32c.cc */; }; - 624204881BED66860043DD6F /* db_info_dumper.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B2B1A1ABA2000486C31 /* db_info_dumper.cc */; }; - 624204891BED66860043DD6F /* dynamic_bloom.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B2E1A1ABA2000486C31 /* dynamic_bloom.cc */; }; - 6242048A1BED66860043DD6F /* env.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B321A1ABA2000486C31 /* env.cc */; }; - 6242048B1BED66860043DD6F /* env_hdfs.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B341A1ABA2000486C31 /* env_hdfs.cc */; }; - 6242048C1BED66860043DD6F /* env_posix.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B361A1ABA2000486C31 /* env_posix.cc */; }; - 6242048D1BED66860043DD6F /* event_logger.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C223D1AF017B6006DC8FA /* event_logger.cc */; }; - 6242048E1BED66860043DD6F /* file_util.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B391A1ABA2000486C31 /* file_util.cc */; }; - 6242048F1BED66860043DD6F /* filter_policy.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B3D1A1ABA2000486C31 /* filter_policy.cc */; }; - 624204901BED66860043DD6F /* hash.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B3F1A1ABA2000486C31 /* hash.cc */; }; - 624204911BED66860043DD6F /* hash_cuckoo_rep.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B421A1ABA2000486C31 /* hash_cuckoo_rep.cc */; }; - 624204921BED66860043DD6F /* hash_linklist_rep.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B451A1ABA2000486C31 /* hash_linklist_rep.cc */; }; - 624204931BED66860043DD6F /* hash_skiplist_rep.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B481A1ABA2000486C31 /* hash_skiplist_rep.cc */; }; - 624204941BED66860043DD6F /* histogram.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B4B1A1ABA2000486C31 /* histogram.cc */; }; - 624204951BED66860043DD6F /* instrumented_mutex.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C22691AF02B1B006DC8FA /* instrumented_mutex.cc */; }; - 624204961BED66860043DD6F /* iostats_context.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B4F1A1ABA2000486C31 /* iostats_context.cc */; }; - 624204991BED66860043DD6F /* log_buffer.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B581A1ABA2000486C31 /* log_buffer.cc */; }; - 6242049B1BED66860043DD6F /* logging.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B5C1A1ABA2000486C31 /* logging.cc */; }; - 6242049D1BED66860043DD6F /* memenv.cc in Sources */ = {isa = PBXBuildFile; fileRef = 622DB8651A7EA1CB0026C73F /* memenv.cc */; }; - 6242049F1BED66860043DD6F /* murmurhash.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B631A1ABA2000486C31 /* murmurhash.cc */; }; - 624204A01BED66860043DD6F /* mutable_cf_options.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B661A1ABA2000486C31 /* mutable_cf_options.cc */; }; - 624204A11BED66860043DD6F /* options.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B6A1A1ABA2000486C31 /* options.cc */; }; - 624204A21BED66860043DD6F /* options_builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B6C1A1ABA2000486C31 /* options_builder.cc */; }; - 624204A31BED66860043DD6F /* options_helper.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B6E1A1ABA2000486C31 /* options_helper.cc */; }; - 624204A41BED66860043DD6F /* perf_context.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B721A1ABA2000486C31 /* perf_context.cc */; }; - 624204A51BED66860043DD6F /* rate_limiter.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B771A1ABA2000486C31 /* rate_limiter.cc */; }; - 624204A61BED66860043DD6F /* skiplistrep.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B7D1A1ABA2000486C31 /* skiplistrep.cc */; }; - 624204A71BED66860043DD6F /* slice.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B7F1A1ABA2000486C31 /* slice.cc */; }; - 624204A91BED66860043DD6F /* statistics.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B831A1ABA2000486C31 /* statistics.cc */; }; - 624204AA1BED66860043DD6F /* status.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B861A1ABA2000486C31 /* status.cc */; }; - 624204AB1BED66860043DD6F /* string_util.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B8A1A1ABA2000486C31 /* string_util.cc */; }; - 624204AD1BED66860043DD6F /* sync_point.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B8D1A1ABA2000486C31 /* sync_point.cc */; }; - 624204AF1BED66860043DD6F /* testutil.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B921A1ABA2000486C31 /* testutil.cc */; }; - 624204B01BED66860043DD6F /* thread_local.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B941A1ABA2000486C31 /* thread_local.cc */; }; - 624204B11BED66870043DD6F /* thread_status_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C221B1AF014E0006DC8FA /* thread_status_impl.cc */; }; - 624204B21BED66870043DD6F /* thread_status_updater_debug.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62451ACC1A4BC85400AF11C8 /* thread_status_updater_debug.cc */; }; - 624204B31BED66870043DD6F /* thread_status_updater.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62451ACD1A4BC85400AF11C8 /* thread_status_updater.cc */; }; - 624204B41BED66870043DD6F /* thread_status_util_debug.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C22231AF015E4006DC8FA /* thread_status_util_debug.cc */; }; - 624204B51BED66870043DD6F /* thread_status_util.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62451ACF1A4BC85400AF11C8 /* thread_status_util.cc */; }; - 624204B61BED66870043DD6F /* vectorrep.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B981A1ABA2000486C31 /* vectorrep.cc */; }; - 624204B71BED66870043DD6F /* xfunc.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C22171AF01485006DC8FA /* xfunc.cc */; }; - 624204B81BED66870043DD6F /* xxhash.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B9A1A1ABA2000486C31 /* xxhash.cc */; }; - 624204B91BED66870043DD6F /* backupable_db.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B9F1A1ABA2000486C31 /* backupable_db.cc */; }; - 624204BA1BED66870043DD6F /* checkpoint.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62269EDB1A1FF27A005A58D3 /* checkpoint.cc */; }; - 624204BB1BED66870043DD6F /* compacted_db_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BA31A1ABA2000486C31 /* compacted_db_impl.cc */; }; - 624204BC1BED66870043DD6F /* convenience.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C22381AF0174B006DC8FA /* convenience.cc */; }; - 624204BD1BED66870043DD6F /* document_db.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BA71A1ABA2000486C31 /* document_db.cc */; }; - 624204BE1BED66870043DD6F /* json_document_builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C22331AF016EE006DC8FA /* json_document_builder.cc */; }; - 624204BF1BED66870043DD6F /* json_document.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BAA1A1ABA2000486C31 /* json_document.cc */; }; - 624204C01BED66870043DD6F /* flashcache.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C22551AF0195F006DC8FA /* flashcache.cc */; }; - 624204C11BED66870043DD6F /* geodb_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BAE1A1ABA2000486C31 /* geodb_impl.cc */; }; - 624204C21BED66870043DD6F /* leveldb_options.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62269EDF1A1FF2DC005A58D3 /* leveldb_options.cc */; }; - 624204C31BED66870043DD6F /* put.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BB31A1ABA2000486C31 /* put.cc */; }; - 624204C41BED66870043DD6F /* stringappend.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BB61A1ABA2000486C31 /* stringappend.cc */; }; - 624204C51BED66870043DD6F /* stringappend2.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BB91A1ABA2000486C31 /* stringappend2.cc */; }; - 624204C61BED66870043DD6F /* uint64add.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BBD1A1ABA2000486C31 /* uint64add.cc */; }; - 624204C71BED66870043DD6F /* redis_lists.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BC41A1ABA2000486C31 /* redis_lists.cc */; }; - 624204C81BED66870043DD6F /* spatial_db.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BC91A1ABA2000486C31 /* spatial_db.cc */; }; - 624204C91BED66870043DD6F /* db_ttl_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BCE1A1ABA2000486C31 /* db_ttl_impl.cc */; }; - 624204CA1BED66870043DD6F /* write_batch_with_index_internal.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62297D501B6AC05000F72BF2 /* write_batch_with_index_internal.cc */; }; - 624204CB1BED66870043DD6F /* write_batch_with_index.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BD31A1ABA2000486C31 /* write_batch_with_index.cc */; }; 624204CF1BED6B750043DD6F /* ObjectiveRocks.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 624203C01BED64410043DD6F /* ObjectiveRocks.framework */; }; 624566C81A51DA79009AC3FB /* RocksDBColumnFamilyTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 624566C71A51DA79009AC3FB /* RocksDBColumnFamilyTests.mm */; }; 62456CBB1A66FE0500329F11 /* RocksDBMergeOperatorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62456CBA1A66FE0500329F11 /* RocksDBMergeOperatorTests.swift */; }; @@ -318,145 +179,6 @@ 624F5DEB1BEE438400497FEF /* RocksDBCallbackMergeOperator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6214FD071A3F698300B92E5C /* RocksDBCallbackMergeOperator.cpp */; }; 624F5DEC1BEE438400497FEF /* RocksDBCallbackSliceTransform.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6236E2581A4DD71600A81ED6 /* RocksDBCallbackSliceTransform.cpp */; }; 624F5DED1BEE441900497FEF /* RocksDBMergeOperator.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62EEC4B61A34FEE100624DA2 /* RocksDBMergeOperator.mm */; }; - 624F5E3E1BEE44E700497FEF /* builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29141A1ABA1F00486C31 /* builder.cc */; }; - 624F5E3F1BEE44E700497FEF /* c.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29171A1ABA1F00486C31 /* c.cc */; }; - 624F5E401BEE44E700497FEF /* column_family.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE291A1A1ABA1F00486C31 /* column_family.cc */; }; - 624F5E411BEE44E700497FEF /* compaction.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE291E1A1ABA1F00486C31 /* compaction.cc */; }; - 624F5E421BEE44E700497FEF /* compaction_job.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29211A1ABA1F00486C31 /* compaction_job.cc */; }; - 624F5E431BEE44E700497FEF /* compaction_picker.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29251A1ABA1F00486C31 /* compaction_picker.cc */; }; - 624F5E441BEE44E700497FEF /* db_filesnapshot.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE292D1A1ABA1F00486C31 /* db_filesnapshot.cc */; }; - 624F5E451BEE44E700497FEF /* db_impl_experimental.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C225F1AF01C8E006DC8FA /* db_impl_experimental.cc */; }; - 624F5E461BEE44E700497FEF /* db_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE292F1A1ABA1F00486C31 /* db_impl.cc */; }; - 624F5E471BEE44E700497FEF /* db_impl_debug.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29321A1ABA1F00486C31 /* db_impl_debug.cc */; }; - 624F5E481BEE44E700497FEF /* db_impl_readonly.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29341A1ABA1F00486C31 /* db_impl_readonly.cc */; }; - 624F5E491BEE44E700497FEF /* db_iter.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29371A1ABA1F00486C31 /* db_iter.cc */; }; - 624F5E4A1BEE44E700497FEF /* dbformat.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE293C1A1ABA1F00486C31 /* dbformat.cc */; }; - 624F5E4B1BEE44E700497FEF /* event_logger_helpers.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62297D541B6AC08B00F72BF2 /* event_logger_helpers.cc */; }; - 624F5E4C1BEE44E700497FEF /* experimental.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C22621AF01CA7006DC8FA /* experimental.cc */; }; - 624F5E4D1BEE44E700497FEF /* file_indexer.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29411A1ABA1F00486C31 /* file_indexer.cc */; }; - 624F5E4E1BEE44E700497FEF /* filename.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29451A1ABA1F00486C31 /* filename.cc */; }; - 624F5E4F1BEE44E700497FEF /* flush_job.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29491A1ABA1F00486C31 /* flush_job.cc */; }; - 624F5E501BEE44E700497FEF /* flush_scheduler.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE294D1A1ABA1F00486C31 /* flush_scheduler.cc */; }; - 624F5E511BEE44E700497FEF /* forward_iterator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29501A1ABA1F00486C31 /* forward_iterator.cc */; }; - 624F5E521BEE44E700497FEF /* internal_stats.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29531A1ABA1F00486C31 /* internal_stats.cc */; }; - 624F5E531BEE44E700497FEF /* log_reader.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE295A1A1ABA1F00486C31 /* log_reader.cc */; }; - 624F5E541BEE44E700497FEF /* log_writer.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE295E1A1ABA1F00486C31 /* log_writer.cc */; }; - 624F5E551BEE44E700497FEF /* managed_iterator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C22261AF0161E006DC8FA /* managed_iterator.cc */; }; - 624F5E561BEE44E700497FEF /* memtable.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29611A1ABA1F00486C31 /* memtable.cc */; }; - 624F5E571BEE44E700497FEF /* memtable_allocator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 6235339E1A47722900D5CD14 /* memtable_allocator.cc */; }; - 624F5E581BEE44E700497FEF /* memtable_list.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29641A1ABA1F00486C31 /* memtable_list.cc */; }; - 624F5E591BEE44E700497FEF /* merge_helper.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29681A1ABA1F00486C31 /* merge_helper.cc */; }; - 624F5E5A1BEE44E700497FEF /* merge_operator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE296B1A1ABA1F00486C31 /* merge_operator.cc */; }; - 624F5E5B1BEE44E700497FEF /* repair.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29711A1ABA1F00486C31 /* repair.cc */; }; - 624F5E5C1BEE44E700497FEF /* slice.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C224A1AF01880006DC8FA /* slice.cc */; }; - 624F5E5D1BEE44E700497FEF /* table_cache.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29761A1ABA1F00486C31 /* table_cache.cc */; }; - 624F5E5E1BEE44E700497FEF /* table_properties_collector.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29791A1ABA1F00486C31 /* table_properties_collector.cc */; }; - 624F5E5F1BEE44E700497FEF /* transaction_log_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE297D1A1ABA1F00486C31 /* transaction_log_impl.cc */; }; - 624F5E601BEE44E700497FEF /* version_builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29801A1ABA1F00486C31 /* version_builder.cc */; }; - 624F5E611BEE44E700497FEF /* version_edit.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29841A1ABA1F00486C31 /* version_edit.cc */; }; - 624F5E621BEE44E700497FEF /* version_set.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29881A1ABA1F00486C31 /* version_set.cc */; }; - 624F5E631BEE44E700497FEF /* wal_manager.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE298C1A1ABA1F00486C31 /* wal_manager.cc */; }; - 624F5E641BEE44E700497FEF /* write_batch_base.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C224D1AF0188B006DC8FA /* write_batch_base.cc */; }; - 624F5E651BEE44E800497FEF /* write_batch.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29901A1ABA1F00486C31 /* write_batch.cc */; }; - 624F5E661BEE44E800497FEF /* write_controller.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29941A1ABA1F00486C31 /* write_controller.cc */; }; - 624F5E671BEE44E800497FEF /* write_thread.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE29981A1ABA1F00486C31 /* write_thread.cc */; }; - 624F5E681BEE44E800497FEF /* port_posix.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2A7E1A1ABA1F00486C31 /* port_posix.cc */; }; - 624F5E691BEE44E800497FEF /* stack_trace.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2A821A1ABA1F00486C31 /* stack_trace.cc */; }; - 624F5E6A1BEE44E800497FEF /* adaptive_table_factory.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2A8A1A1ABA1F00486C31 /* adaptive_table_factory.cc */; }; - 624F5E6B1BEE44E800497FEF /* block.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2A8D1A1ABA1F00486C31 /* block.cc */; }; - 624F5E6C1BEE44E800497FEF /* block_based_filter_block.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2A901A1ABA1F00486C31 /* block_based_filter_block.cc */; }; - 624F5E6D1BEE44E800497FEF /* block_based_table_builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2A941A1ABA1F00486C31 /* block_based_table_builder.cc */; }; - 624F5E6E1BEE44E800497FEF /* block_based_table_factory.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2A971A1ABA1F00486C31 /* block_based_table_factory.cc */; }; - 624F5E6F1BEE44E800497FEF /* block_based_table_reader.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2A9A1A1ABA1F00486C31 /* block_based_table_reader.cc */; }; - 624F5E701BEE44E800497FEF /* block_builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2A9D1A1ABA1F00486C31 /* block_builder.cc */; }; - 624F5E711BEE44E800497FEF /* block_hash_index.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AA01A1ABA1F00486C31 /* block_hash_index.cc */; }; - 624F5E721BEE44E800497FEF /* block_prefix_index.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AA41A1ABA1F00486C31 /* block_prefix_index.cc */; }; - 624F5E731BEE44E800497FEF /* bloom_block.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AA81A1ABA1F00486C31 /* bloom_block.cc */; }; - 624F5E741BEE44E800497FEF /* cuckoo_table_builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AAB1A1ABA1F00486C31 /* cuckoo_table_builder.cc */; }; - 624F5E751BEE44E800497FEF /* cuckoo_table_factory.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AAF1A1ABA1F00486C31 /* cuckoo_table_factory.cc */; }; - 624F5E761BEE44E800497FEF /* cuckoo_table_reader.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AB21A1ABA1F00486C31 /* cuckoo_table_reader.cc */; }; - 624F5E771BEE44E800497FEF /* flush_block_policy.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AB71A1ABA1F00486C31 /* flush_block_policy.cc */; }; - 624F5E781BEE44E800497FEF /* format.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AB91A1ABA1F00486C31 /* format.cc */; }; - 624F5E791BEE44E800497FEF /* full_filter_block.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2ABC1A1ABA1F00486C31 /* full_filter_block.cc */; }; - 624F5E7A1BEE44E800497FEF /* get_context.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AC01A1ABA1F00486C31 /* get_context.cc */; }; - 624F5E7B1BEE44E800497FEF /* iterator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AC41A1ABA1F00486C31 /* iterator.cc */; }; - 624F5E7C1BEE44E800497FEF /* merger.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AC71A1ABA1F00486C31 /* merger.cc */; }; - 624F5E7D1BEE44E800497FEF /* meta_blocks.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2ACB1A1ABA1F00486C31 /* meta_blocks.cc */; }; - 624F5E7E1BEE44E800497FEF /* plain_table_builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AD01A1ABA1F00486C31 /* plain_table_builder.cc */; }; - 624F5E7F1BEE44E800497FEF /* plain_table_factory.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AD31A1ABA1F00486C31 /* plain_table_factory.cc */; }; - 624F5E801BEE44E800497FEF /* plain_table_index.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AD61A1ABA1F00486C31 /* plain_table_index.cc */; }; - 624F5E811BEE44E800497FEF /* plain_table_key_coding.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AD91A1ABA1F00486C31 /* plain_table_key_coding.cc */; }; - 624F5E821BEE44E800497FEF /* plain_table_reader.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2ADC1A1ABA1F00486C31 /* plain_table_reader.cc */; }; - 624F5E831BEE44E800497FEF /* table_properties.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AE01A1ABA1F00486C31 /* table_properties.cc */; }; - 624F5E841BEE44E800497FEF /* two_level_iterator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2AE61A1ABA1F00486C31 /* two_level_iterator.cc */; }; - 624F5E851BEE44E800497FEF /* arena.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B061A1ABA2000486C31 /* arena.cc */; }; - 624F5E861BEE44E800497FEF /* auto_roll_logger.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B0A1A1ABA2000486C31 /* auto_roll_logger.cc */; }; - 624F5E871BEE44E800497FEF /* bloom.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B171A1ABA2000486C31 /* bloom.cc */; }; - 624F5E881BEE44E800497FEF /* build_version.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62297D591B6AC8CE00F72BF2 /* build_version.cc */; }; - 624F5E891BEE44E800497FEF /* cache.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B1D1A1ABA2000486C31 /* cache.cc */; }; - 624F5E8A1BEE44E800497FEF /* coding.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B211A1ABA2000486C31 /* coding.cc */; }; - 624F5E8B1BEE44E800497FEF /* comparator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B251A1ABA2000486C31 /* comparator.cc */; }; - 624F5E8C1BEE44E800497FEF /* crc32c.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B271A1ABA2000486C31 /* crc32c.cc */; }; - 624F5E8D1BEE44E800497FEF /* db_info_dumper.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B2B1A1ABA2000486C31 /* db_info_dumper.cc */; }; - 624F5E8E1BEE44E800497FEF /* dynamic_bloom.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B2E1A1ABA2000486C31 /* dynamic_bloom.cc */; }; - 624F5E8F1BEE44E800497FEF /* env.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B321A1ABA2000486C31 /* env.cc */; }; - 624F5E901BEE44E800497FEF /* env_hdfs.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B341A1ABA2000486C31 /* env_hdfs.cc */; }; - 624F5E911BEE44E800497FEF /* env_posix.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B361A1ABA2000486C31 /* env_posix.cc */; }; - 624F5E921BEE44E800497FEF /* event_logger.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C223D1AF017B6006DC8FA /* event_logger.cc */; }; - 624F5E931BEE44E800497FEF /* file_util.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B391A1ABA2000486C31 /* file_util.cc */; }; - 624F5E941BEE44E800497FEF /* filter_policy.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B3D1A1ABA2000486C31 /* filter_policy.cc */; }; - 624F5E951BEE44E800497FEF /* hash.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B3F1A1ABA2000486C31 /* hash.cc */; }; - 624F5E961BEE44E800497FEF /* hash_cuckoo_rep.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B421A1ABA2000486C31 /* hash_cuckoo_rep.cc */; }; - 624F5E971BEE44E800497FEF /* hash_linklist_rep.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B451A1ABA2000486C31 /* hash_linklist_rep.cc */; }; - 624F5E981BEE44E800497FEF /* hash_skiplist_rep.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B481A1ABA2000486C31 /* hash_skiplist_rep.cc */; }; - 624F5E991BEE44E800497FEF /* histogram.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B4B1A1ABA2000486C31 /* histogram.cc */; }; - 624F5E9A1BEE44E800497FEF /* instrumented_mutex.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C22691AF02B1B006DC8FA /* instrumented_mutex.cc */; }; - 624F5E9B1BEE44E800497FEF /* iostats_context.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B4F1A1ABA2000486C31 /* iostats_context.cc */; }; - 624F5E9C1BEE44E800497FEF /* log_buffer.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B581A1ABA2000486C31 /* log_buffer.cc */; }; - 624F5E9D1BEE44E800497FEF /* logging.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B5C1A1ABA2000486C31 /* logging.cc */; }; - 624F5E9E1BEE44E800497FEF /* memenv.cc in Sources */ = {isa = PBXBuildFile; fileRef = 622DB8651A7EA1CB0026C73F /* memenv.cc */; }; - 624F5E9F1BEE44E800497FEF /* murmurhash.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B631A1ABA2000486C31 /* murmurhash.cc */; }; - 624F5EA01BEE44E800497FEF /* mutable_cf_options.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B661A1ABA2000486C31 /* mutable_cf_options.cc */; }; - 624F5EA11BEE44E800497FEF /* options.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B6A1A1ABA2000486C31 /* options.cc */; }; - 624F5EA21BEE44E800497FEF /* options_builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B6C1A1ABA2000486C31 /* options_builder.cc */; }; - 624F5EA31BEE44E800497FEF /* options_helper.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B6E1A1ABA2000486C31 /* options_helper.cc */; }; - 624F5EA41BEE44E800497FEF /* perf_context.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B721A1ABA2000486C31 /* perf_context.cc */; }; - 624F5EA51BEE44E800497FEF /* rate_limiter.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B771A1ABA2000486C31 /* rate_limiter.cc */; }; - 624F5EA61BEE44E800497FEF /* skiplistrep.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B7D1A1ABA2000486C31 /* skiplistrep.cc */; }; - 624F5EA71BEE44E800497FEF /* slice.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B7F1A1ABA2000486C31 /* slice.cc */; }; - 624F5EA91BEE44E800497FEF /* statistics.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B831A1ABA2000486C31 /* statistics.cc */; }; - 624F5EAA1BEE44E800497FEF /* status.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B861A1ABA2000486C31 /* status.cc */; }; - 624F5EAB1BEE44E900497FEF /* string_util.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B8A1A1ABA2000486C31 /* string_util.cc */; }; - 624F5EAD1BEE44E900497FEF /* sync_point.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B8D1A1ABA2000486C31 /* sync_point.cc */; }; - 624F5EAF1BEE44E900497FEF /* testutil.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B921A1ABA2000486C31 /* testutil.cc */; }; - 624F5EB01BEE44E900497FEF /* thread_local.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B941A1ABA2000486C31 /* thread_local.cc */; }; - 624F5EB11BEE44E900497FEF /* thread_status_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C221B1AF014E0006DC8FA /* thread_status_impl.cc */; }; - 624F5EB21BEE44E900497FEF /* thread_status_updater_debug.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62451ACC1A4BC85400AF11C8 /* thread_status_updater_debug.cc */; }; - 624F5EB31BEE44E900497FEF /* thread_status_updater.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62451ACD1A4BC85400AF11C8 /* thread_status_updater.cc */; }; - 624F5EB41BEE44E900497FEF /* thread_status_util_debug.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C22231AF015E4006DC8FA /* thread_status_util_debug.cc */; }; - 624F5EB51BEE44E900497FEF /* thread_status_util.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62451ACF1A4BC85400AF11C8 /* thread_status_util.cc */; }; - 624F5EB61BEE44E900497FEF /* vectorrep.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B981A1ABA2000486C31 /* vectorrep.cc */; }; - 624F5EB71BEE44E900497FEF /* xfunc.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C22171AF01485006DC8FA /* xfunc.cc */; }; - 624F5EB81BEE44E900497FEF /* xxhash.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B9A1A1ABA2000486C31 /* xxhash.cc */; }; - 624F5EB91BEE44E900497FEF /* backupable_db.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2B9F1A1ABA2000486C31 /* backupable_db.cc */; }; - 624F5EBA1BEE44E900497FEF /* checkpoint.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62269EDB1A1FF27A005A58D3 /* checkpoint.cc */; }; - 624F5EBB1BEE44E900497FEF /* compacted_db_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BA31A1ABA2000486C31 /* compacted_db_impl.cc */; }; - 624F5EBC1BEE44E900497FEF /* convenience.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C22381AF0174B006DC8FA /* convenience.cc */; }; - 624F5EBD1BEE44E900497FEF /* document_db.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BA71A1ABA2000486C31 /* document_db.cc */; }; - 624F5EBE1BEE44E900497FEF /* json_document_builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C22331AF016EE006DC8FA /* json_document_builder.cc */; }; - 624F5EBF1BEE44E900497FEF /* json_document.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BAA1A1ABA2000486C31 /* json_document.cc */; }; - 624F5EC01BEE44E900497FEF /* flashcache.cc in Sources */ = {isa = PBXBuildFile; fileRef = 624C22551AF0195F006DC8FA /* flashcache.cc */; }; - 624F5EC11BEE44E900497FEF /* geodb_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BAE1A1ABA2000486C31 /* geodb_impl.cc */; }; - 624F5EC21BEE44E900497FEF /* leveldb_options.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62269EDF1A1FF2DC005A58D3 /* leveldb_options.cc */; }; - 624F5EC31BEE44E900497FEF /* put.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BB31A1ABA2000486C31 /* put.cc */; }; - 624F5EC41BEE44E900497FEF /* stringappend.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BB61A1ABA2000486C31 /* stringappend.cc */; }; - 624F5EC51BEE44E900497FEF /* stringappend2.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BB91A1ABA2000486C31 /* stringappend2.cc */; }; - 624F5EC61BEE44E900497FEF /* uint64add.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BBD1A1ABA2000486C31 /* uint64add.cc */; }; - 624F5EC71BEE44E900497FEF /* redis_lists.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BC41A1ABA2000486C31 /* redis_lists.cc */; }; - 624F5EC81BEE44E900497FEF /* spatial_db.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BC91A1ABA2000486C31 /* spatial_db.cc */; }; - 624F5EC91BEE44E900497FEF /* db_ttl_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BCE1A1ABA2000486C31 /* db_ttl_impl.cc */; }; - 624F5ECA1BEE44E900497FEF /* write_batch_with_index_internal.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62297D501B6AC05000F72BF2 /* write_batch_with_index_internal.cc */; }; - 624F5ECB1BEE44E900497FEF /* write_batch_with_index.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62EE2BD31A1ABA2000486C31 /* write_batch_with_index.cc */; }; 624F5ECE1BEE452700497FEF /* ObjectiveRocks.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 624F5D981BEE416D00497FEF /* ObjectiveRocks.framework */; }; 624F5ED01BEE456100497FEF /* RocksDBError.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B0CE81A1C104D0099C39B /* RocksDBError.h */; settings = {ATTRIBUTES = (Private, ); }; }; 624F5ED91BEE456100497FEF /* RocksDB+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 6221B78A1A62970800D28BF5 /* RocksDB+Private.h */; settings = {ATTRIBUTES = (Private, ); }; }; @@ -481,10 +203,799 @@ 62662E961B8FCBA0008B4EF5 /* RocksDBIndexedWriteBatch.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62662E951B8FCBA0008B4EF5 /* RocksDBIndexedWriteBatch.swift */; }; 62662E971B8FCBA0008B4EF5 /* RocksDBIndexedWriteBatch.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62662E951B8FCBA0008B4EF5 /* RocksDBIndexedWriteBatch.swift */; }; 62685CB91A2E600A009401B1 /* RocksDBWriteBatchTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62685CB81A2E600A009401B1 /* RocksDBWriteBatchTests.mm */; }; + 628B4AF61D03125900E2D828 /* auto_roll_logger.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47641D03125800E2D828 /* auto_roll_logger.cc */; }; + 628B4AF71D03125900E2D828 /* auto_roll_logger.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47641D03125800E2D828 /* auto_roll_logger.cc */; }; + 628B4AF81D03125900E2D828 /* auto_roll_logger.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47651D03125800E2D828 /* auto_roll_logger.h */; }; + 628B4AF91D03125900E2D828 /* auto_roll_logger.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47651D03125800E2D828 /* auto_roll_logger.h */; }; + 628B4AFC1D03125900E2D828 /* builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47671D03125800E2D828 /* builder.cc */; }; + 628B4AFD1D03125900E2D828 /* builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47671D03125800E2D828 /* builder.cc */; }; + 628B4AFE1D03125900E2D828 /* builder.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47681D03125800E2D828 /* builder.h */; }; + 628B4AFF1D03125900E2D828 /* builder.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47681D03125800E2D828 /* builder.h */; }; + 628B4B001D03125900E2D828 /* c.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47691D03125800E2D828 /* c.cc */; }; + 628B4B011D03125900E2D828 /* c.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47691D03125800E2D828 /* c.cc */; }; + 628B4B041D03125900E2D828 /* column_family.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B476B1D03125800E2D828 /* column_family.cc */; }; + 628B4B051D03125900E2D828 /* column_family.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B476B1D03125800E2D828 /* column_family.cc */; }; + 628B4B061D03125900E2D828 /* column_family.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B476C1D03125800E2D828 /* column_family.h */; }; + 628B4B071D03125900E2D828 /* column_family.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B476C1D03125800E2D828 /* column_family.h */; }; + 628B4B0C1D03125900E2D828 /* compacted_db_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B476F1D03125800E2D828 /* compacted_db_impl.cc */; }; + 628B4B0D1D03125900E2D828 /* compacted_db_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B476F1D03125800E2D828 /* compacted_db_impl.cc */; }; + 628B4B0E1D03125900E2D828 /* compacted_db_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47701D03125800E2D828 /* compacted_db_impl.h */; }; + 628B4B0F1D03125900E2D828 /* compacted_db_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47701D03125800E2D828 /* compacted_db_impl.h */; }; + 628B4B101D03125900E2D828 /* compaction.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47711D03125800E2D828 /* compaction.cc */; }; + 628B4B111D03125900E2D828 /* compaction.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47711D03125800E2D828 /* compaction.cc */; }; + 628B4B121D03125900E2D828 /* compaction.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47721D03125800E2D828 /* compaction.h */; }; + 628B4B131D03125900E2D828 /* compaction.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47721D03125800E2D828 /* compaction.h */; }; + 628B4B141D03125900E2D828 /* compaction_iterator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47731D03125800E2D828 /* compaction_iterator.cc */; }; + 628B4B151D03125900E2D828 /* compaction_iterator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47731D03125800E2D828 /* compaction_iterator.cc */; }; + 628B4B161D03125900E2D828 /* compaction_iterator.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47741D03125800E2D828 /* compaction_iterator.h */; }; + 628B4B171D03125900E2D828 /* compaction_iterator.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47741D03125800E2D828 /* compaction_iterator.h */; }; + 628B4B1A1D03125900E2D828 /* compaction_job.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47761D03125800E2D828 /* compaction_job.cc */; }; + 628B4B1B1D03125900E2D828 /* compaction_job.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47761D03125800E2D828 /* compaction_job.cc */; }; + 628B4B1C1D03125900E2D828 /* compaction_job.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47771D03125800E2D828 /* compaction_job.h */; }; + 628B4B1D1D03125900E2D828 /* compaction_job.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47771D03125800E2D828 /* compaction_job.h */; }; + 628B4B221D03125900E2D828 /* compaction_picker.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B477A1D03125800E2D828 /* compaction_picker.cc */; }; + 628B4B231D03125900E2D828 /* compaction_picker.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B477A1D03125800E2D828 /* compaction_picker.cc */; }; + 628B4B241D03125900E2D828 /* compaction_picker.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B477B1D03125800E2D828 /* compaction_picker.h */; }; + 628B4B251D03125900E2D828 /* compaction_picker.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B477B1D03125800E2D828 /* compaction_picker.h */; }; + 628B4B2A1D03125900E2D828 /* convenience.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B477E1D03125800E2D828 /* convenience.cc */; }; + 628B4B2B1D03125900E2D828 /* convenience.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B477E1D03125800E2D828 /* convenience.cc */; }; + 628B4B381D03125900E2D828 /* db_filesnapshot.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47851D03125800E2D828 /* db_filesnapshot.cc */; }; + 628B4B391D03125900E2D828 /* db_filesnapshot.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47851D03125800E2D828 /* db_filesnapshot.cc */; }; + 628B4B3A1D03125900E2D828 /* db_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47861D03125800E2D828 /* db_impl.cc */; }; + 628B4B3B1D03125900E2D828 /* db_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47861D03125800E2D828 /* db_impl.cc */; }; + 628B4B3C1D03125900E2D828 /* db_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47871D03125800E2D828 /* db_impl.h */; }; + 628B4B3D1D03125900E2D828 /* db_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47871D03125800E2D828 /* db_impl.h */; }; + 628B4B3E1D03125900E2D828 /* db_impl_debug.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47881D03125800E2D828 /* db_impl_debug.cc */; }; + 628B4B3F1D03125900E2D828 /* db_impl_debug.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47881D03125800E2D828 /* db_impl_debug.cc */; }; + 628B4B401D03125900E2D828 /* db_impl_experimental.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47891D03125800E2D828 /* db_impl_experimental.cc */; }; + 628B4B411D03125900E2D828 /* db_impl_experimental.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47891D03125800E2D828 /* db_impl_experimental.cc */; }; + 628B4B421D03125900E2D828 /* db_impl_readonly.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B478A1D03125800E2D828 /* db_impl_readonly.cc */; }; + 628B4B431D03125900E2D828 /* db_impl_readonly.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B478A1D03125800E2D828 /* db_impl_readonly.cc */; }; + 628B4B441D03125900E2D828 /* db_impl_readonly.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B478B1D03125800E2D828 /* db_impl_readonly.h */; }; + 628B4B451D03125900E2D828 /* db_impl_readonly.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B478B1D03125800E2D828 /* db_impl_readonly.h */; }; + 628B4B461D03125900E2D828 /* db_info_dumper.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B478C1D03125800E2D828 /* db_info_dumper.cc */; }; + 628B4B471D03125900E2D828 /* db_info_dumper.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B478C1D03125800E2D828 /* db_info_dumper.cc */; }; + 628B4B481D03125900E2D828 /* db_info_dumper.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B478D1D03125800E2D828 /* db_info_dumper.h */; }; + 628B4B491D03125900E2D828 /* db_info_dumper.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B478D1D03125800E2D828 /* db_info_dumper.h */; }; + 628B4B4C1D03125900E2D828 /* db_iter.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B478F1D03125800E2D828 /* db_iter.cc */; }; + 628B4B4D1D03125900E2D828 /* db_iter.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B478F1D03125800E2D828 /* db_iter.cc */; }; + 628B4B4E1D03125900E2D828 /* db_iter.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47901D03125800E2D828 /* db_iter.h */; }; + 628B4B4F1D03125900E2D828 /* db_iter.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47901D03125800E2D828 /* db_iter.h */; }; + 628B4B661D03125900E2D828 /* dbformat.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B479C1D03125800E2D828 /* dbformat.cc */; }; + 628B4B671D03125900E2D828 /* dbformat.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B479C1D03125800E2D828 /* dbformat.cc */; }; + 628B4B681D03125900E2D828 /* dbformat.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B479D1D03125800E2D828 /* dbformat.h */; }; + 628B4B691D03125900E2D828 /* dbformat.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B479D1D03125800E2D828 /* dbformat.h */; }; + 628B4B6E1D03125900E2D828 /* event_helpers.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47A01D03125800E2D828 /* event_helpers.cc */; }; + 628B4B6F1D03125900E2D828 /* event_helpers.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47A01D03125800E2D828 /* event_helpers.cc */; }; + 628B4B701D03125900E2D828 /* event_helpers.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47A11D03125800E2D828 /* event_helpers.h */; }; + 628B4B711D03125900E2D828 /* event_helpers.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47A11D03125800E2D828 /* event_helpers.h */; }; + 628B4B721D03125900E2D828 /* experimental.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47A21D03125800E2D828 /* experimental.cc */; }; + 628B4B731D03125900E2D828 /* experimental.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47A21D03125800E2D828 /* experimental.cc */; }; + 628B4B761D03125900E2D828 /* file_indexer.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47A41D03125800E2D828 /* file_indexer.cc */; }; + 628B4B771D03125900E2D828 /* file_indexer.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47A41D03125800E2D828 /* file_indexer.cc */; }; + 628B4B781D03125900E2D828 /* file_indexer.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47A51D03125800E2D828 /* file_indexer.h */; }; + 628B4B791D03125900E2D828 /* file_indexer.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47A51D03125800E2D828 /* file_indexer.h */; }; + 628B4B7C1D03125900E2D828 /* filename.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47A71D03125800E2D828 /* filename.cc */; }; + 628B4B7D1D03125900E2D828 /* filename.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47A71D03125800E2D828 /* filename.cc */; }; + 628B4B7E1D03125900E2D828 /* filename.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47A81D03125800E2D828 /* filename.h */; }; + 628B4B7F1D03125900E2D828 /* filename.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47A81D03125800E2D828 /* filename.h */; }; + 628B4B821D03125900E2D828 /* flush_job.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47AA1D03125800E2D828 /* flush_job.cc */; }; + 628B4B831D03125900E2D828 /* flush_job.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47AA1D03125800E2D828 /* flush_job.cc */; }; + 628B4B841D03125900E2D828 /* flush_job.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47AB1D03125800E2D828 /* flush_job.h */; }; + 628B4B851D03125900E2D828 /* flush_job.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47AB1D03125800E2D828 /* flush_job.h */; }; + 628B4B881D03125900E2D828 /* flush_scheduler.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47AD1D03125800E2D828 /* flush_scheduler.cc */; }; + 628B4B891D03125900E2D828 /* flush_scheduler.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47AD1D03125800E2D828 /* flush_scheduler.cc */; }; + 628B4B8A1D03125900E2D828 /* flush_scheduler.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47AE1D03125800E2D828 /* flush_scheduler.h */; }; + 628B4B8B1D03125900E2D828 /* flush_scheduler.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47AE1D03125800E2D828 /* flush_scheduler.h */; }; + 628B4B8C1D03125900E2D828 /* forward_iterator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47AF1D03125800E2D828 /* forward_iterator.cc */; }; + 628B4B8D1D03125900E2D828 /* forward_iterator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47AF1D03125800E2D828 /* forward_iterator.cc */; }; + 628B4B8E1D03125900E2D828 /* forward_iterator.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47B01D03125800E2D828 /* forward_iterator.h */; }; + 628B4B8F1D03125900E2D828 /* forward_iterator.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47B01D03125800E2D828 /* forward_iterator.h */; }; + 628B4B921D03125900E2D828 /* inlineskiplist.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47B21D03125800E2D828 /* inlineskiplist.h */; }; + 628B4B931D03125900E2D828 /* inlineskiplist.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47B21D03125800E2D828 /* inlineskiplist.h */; }; + 628B4B961D03125900E2D828 /* internal_stats.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47B41D03125800E2D828 /* internal_stats.cc */; }; + 628B4B971D03125900E2D828 /* internal_stats.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47B41D03125800E2D828 /* internal_stats.cc */; }; + 628B4B981D03125900E2D828 /* internal_stats.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47B51D03125800E2D828 /* internal_stats.h */; }; + 628B4B991D03125900E2D828 /* internal_stats.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47B51D03125800E2D828 /* internal_stats.h */; }; + 628B4B9A1D03125900E2D828 /* job_context.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47B61D03125800E2D828 /* job_context.h */; }; + 628B4B9B1D03125900E2D828 /* job_context.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47B61D03125800E2D828 /* job_context.h */; }; + 628B4B9E1D03125900E2D828 /* log_format.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47B81D03125800E2D828 /* log_format.h */; }; + 628B4B9F1D03125900E2D828 /* log_format.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47B81D03125800E2D828 /* log_format.h */; }; + 628B4BA01D03125900E2D828 /* log_reader.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47B91D03125800E2D828 /* log_reader.cc */; }; + 628B4BA11D03125900E2D828 /* log_reader.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47B91D03125800E2D828 /* log_reader.cc */; }; + 628B4BA21D03125900E2D828 /* log_reader.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47BA1D03125800E2D828 /* log_reader.h */; }; + 628B4BA31D03125900E2D828 /* log_reader.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47BA1D03125800E2D828 /* log_reader.h */; }; + 628B4BA61D03125900E2D828 /* log_writer.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47BC1D03125800E2D828 /* log_writer.cc */; }; + 628B4BA71D03125900E2D828 /* log_writer.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47BC1D03125800E2D828 /* log_writer.cc */; }; + 628B4BA81D03125900E2D828 /* log_writer.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47BD1D03125800E2D828 /* log_writer.h */; }; + 628B4BA91D03125900E2D828 /* log_writer.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47BD1D03125800E2D828 /* log_writer.h */; }; + 628B4BAA1D03125900E2D828 /* managed_iterator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47BE1D03125800E2D828 /* managed_iterator.cc */; }; + 628B4BAB1D03125900E2D828 /* managed_iterator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47BE1D03125800E2D828 /* managed_iterator.cc */; }; + 628B4BAC1D03125900E2D828 /* managed_iterator.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47BF1D03125800E2D828 /* managed_iterator.h */; }; + 628B4BAD1D03125900E2D828 /* managed_iterator.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47BF1D03125800E2D828 /* managed_iterator.h */; }; + 628B4BB01D03125900E2D828 /* memtable.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47C11D03125800E2D828 /* memtable.cc */; }; + 628B4BB11D03125900E2D828 /* memtable.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47C11D03125800E2D828 /* memtable.cc */; }; + 628B4BB21D03125900E2D828 /* memtable.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47C21D03125800E2D828 /* memtable.h */; }; + 628B4BB31D03125900E2D828 /* memtable.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47C21D03125800E2D828 /* memtable.h */; }; + 628B4BB41D03125900E2D828 /* memtable_allocator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47C31D03125800E2D828 /* memtable_allocator.cc */; }; + 628B4BB51D03125900E2D828 /* memtable_allocator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47C31D03125800E2D828 /* memtable_allocator.cc */; }; + 628B4BB61D03125900E2D828 /* memtable_allocator.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47C41D03125800E2D828 /* memtable_allocator.h */; }; + 628B4BB71D03125900E2D828 /* memtable_allocator.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47C41D03125800E2D828 /* memtable_allocator.h */; }; + 628B4BB81D03125900E2D828 /* memtable_list.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47C51D03125800E2D828 /* memtable_list.cc */; }; + 628B4BB91D03125900E2D828 /* memtable_list.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47C51D03125800E2D828 /* memtable_list.cc */; }; + 628B4BBA1D03125900E2D828 /* memtable_list.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47C61D03125800E2D828 /* memtable_list.h */; }; + 628B4BBB1D03125900E2D828 /* memtable_list.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47C61D03125800E2D828 /* memtable_list.h */; }; + 628B4BC01D03125900E2D828 /* merge_context.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47C91D03125800E2D828 /* merge_context.h */; }; + 628B4BC11D03125900E2D828 /* merge_context.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47C91D03125800E2D828 /* merge_context.h */; }; + 628B4BC21D03125900E2D828 /* merge_helper.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47CA1D03125800E2D828 /* merge_helper.cc */; }; + 628B4BC31D03125900E2D828 /* merge_helper.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47CA1D03125800E2D828 /* merge_helper.cc */; }; + 628B4BC41D03125900E2D828 /* merge_helper.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47CB1D03125800E2D828 /* merge_helper.h */; }; + 628B4BC51D03125900E2D828 /* merge_helper.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47CB1D03125800E2D828 /* merge_helper.h */; }; + 628B4BC81D03125900E2D828 /* merge_operator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47CD1D03125800E2D828 /* merge_operator.cc */; }; + 628B4BC91D03125900E2D828 /* merge_operator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47CD1D03125800E2D828 /* merge_operator.cc */; }; + 628B4BD41D03125900E2D828 /* repair.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47D31D03125800E2D828 /* repair.cc */; }; + 628B4BD51D03125900E2D828 /* repair.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47D31D03125800E2D828 /* repair.cc */; }; + 628B4BD61D03125900E2D828 /* skiplist.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47D41D03125800E2D828 /* skiplist.h */; }; + 628B4BD71D03125900E2D828 /* skiplist.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47D41D03125800E2D828 /* skiplist.h */; }; + 628B4BDA1D03125900E2D828 /* slice.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47D61D03125800E2D828 /* slice.cc */; }; + 628B4BDB1D03125900E2D828 /* slice.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47D61D03125800E2D828 /* slice.cc */; }; + 628B4BDC1D03125900E2D828 /* snapshot_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47D71D03125800E2D828 /* snapshot_impl.cc */; }; + 628B4BDD1D03125900E2D828 /* snapshot_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47D71D03125800E2D828 /* snapshot_impl.cc */; }; + 628B4BDE1D03125900E2D828 /* snapshot_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47D81D03125800E2D828 /* snapshot_impl.h */; }; + 628B4BDF1D03125900E2D828 /* snapshot_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47D81D03125800E2D828 /* snapshot_impl.h */; }; + 628B4BE01D03125900E2D828 /* table_cache.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47D91D03125800E2D828 /* table_cache.cc */; }; + 628B4BE11D03125900E2D828 /* table_cache.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47D91D03125800E2D828 /* table_cache.cc */; }; + 628B4BE21D03125900E2D828 /* table_cache.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47DA1D03125800E2D828 /* table_cache.h */; }; + 628B4BE31D03125900E2D828 /* table_cache.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47DA1D03125800E2D828 /* table_cache.h */; }; + 628B4BE41D03125900E2D828 /* table_properties_collector.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47DB1D03125800E2D828 /* table_properties_collector.cc */; }; + 628B4BE51D03125900E2D828 /* table_properties_collector.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47DB1D03125800E2D828 /* table_properties_collector.cc */; }; + 628B4BE61D03125900E2D828 /* table_properties_collector.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47DC1D03125800E2D828 /* table_properties_collector.h */; }; + 628B4BE71D03125900E2D828 /* table_properties_collector.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47DC1D03125800E2D828 /* table_properties_collector.h */; }; + 628B4BEA1D03125900E2D828 /* transaction_log_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47DE1D03125800E2D828 /* transaction_log_impl.cc */; }; + 628B4BEB1D03125900E2D828 /* transaction_log_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47DE1D03125800E2D828 /* transaction_log_impl.cc */; }; + 628B4BEC1D03125900E2D828 /* transaction_log_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47DF1D03125800E2D828 /* transaction_log_impl.h */; }; + 628B4BED1D03125900E2D828 /* transaction_log_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47DF1D03125800E2D828 /* transaction_log_impl.h */; }; + 628B4BEE1D03125900E2D828 /* version_builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47E01D03125800E2D828 /* version_builder.cc */; }; + 628B4BEF1D03125900E2D828 /* version_builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47E01D03125800E2D828 /* version_builder.cc */; }; + 628B4BF01D03125900E2D828 /* version_builder.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47E11D03125800E2D828 /* version_builder.h */; }; + 628B4BF11D03125900E2D828 /* version_builder.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47E11D03125800E2D828 /* version_builder.h */; }; + 628B4BF41D03125900E2D828 /* version_edit.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47E31D03125800E2D828 /* version_edit.cc */; }; + 628B4BF51D03125900E2D828 /* version_edit.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47E31D03125800E2D828 /* version_edit.cc */; }; + 628B4BF61D03125900E2D828 /* version_edit.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47E41D03125800E2D828 /* version_edit.h */; }; + 628B4BF71D03125900E2D828 /* version_edit.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47E41D03125800E2D828 /* version_edit.h */; }; + 628B4BFA1D03125900E2D828 /* version_set.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47E61D03125800E2D828 /* version_set.cc */; }; + 628B4BFB1D03125900E2D828 /* version_set.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47E61D03125800E2D828 /* version_set.cc */; }; + 628B4BFC1D03125900E2D828 /* version_set.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47E71D03125800E2D828 /* version_set.h */; }; + 628B4BFD1D03125900E2D828 /* version_set.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47E71D03125800E2D828 /* version_set.h */; }; + 628B4C001D03125900E2D828 /* wal_manager.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47E91D03125800E2D828 /* wal_manager.cc */; }; + 628B4C011D03125900E2D828 /* wal_manager.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47E91D03125800E2D828 /* wal_manager.cc */; }; + 628B4C021D03125900E2D828 /* wal_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47EA1D03125800E2D828 /* wal_manager.h */; }; + 628B4C031D03125900E2D828 /* wal_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47EA1D03125800E2D828 /* wal_manager.h */; }; + 628B4C061D03125900E2D828 /* write_batch.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47EC1D03125800E2D828 /* write_batch.cc */; }; + 628B4C071D03125900E2D828 /* write_batch.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47EC1D03125800E2D828 /* write_batch.cc */; }; + 628B4C081D03125900E2D828 /* write_batch_base.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47ED1D03125800E2D828 /* write_batch_base.cc */; }; + 628B4C091D03125900E2D828 /* write_batch_base.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47ED1D03125800E2D828 /* write_batch_base.cc */; }; + 628B4C0A1D03125900E2D828 /* write_batch_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47EE1D03125800E2D828 /* write_batch_internal.h */; }; + 628B4C0B1D03125900E2D828 /* write_batch_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47EE1D03125800E2D828 /* write_batch_internal.h */; }; + 628B4C0E1D03125900E2D828 /* write_callback.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47F01D03125800E2D828 /* write_callback.h */; }; + 628B4C0F1D03125900E2D828 /* write_callback.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47F01D03125800E2D828 /* write_callback.h */; }; + 628B4C121D03125900E2D828 /* write_controller.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47F21D03125800E2D828 /* write_controller.cc */; }; + 628B4C131D03125900E2D828 /* write_controller.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47F21D03125800E2D828 /* write_controller.cc */; }; + 628B4C141D03125900E2D828 /* write_controller.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47F31D03125800E2D828 /* write_controller.h */; }; + 628B4C151D03125900E2D828 /* write_controller.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47F31D03125800E2D828 /* write_controller.h */; }; + 628B4C181D03125900E2D828 /* write_thread.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47F51D03125800E2D828 /* write_thread.cc */; }; + 628B4C191D03125900E2D828 /* write_thread.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47F51D03125800E2D828 /* write_thread.cc */; }; + 628B4C1A1D03125900E2D828 /* write_thread.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47F61D03125800E2D828 /* write_thread.h */; }; + 628B4C1B1D03125900E2D828 /* write_thread.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47F61D03125800E2D828 /* write_thread.h */; }; + 628B4C1C1D03125900E2D828 /* writebuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47F71D03125800E2D828 /* writebuffer.h */; }; + 628B4C1D1D03125900E2D828 /* writebuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47F71D03125800E2D828 /* writebuffer.h */; }; + 628B4C461D03125900E2D828 /* env_hdfs.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B480F1D03125800E2D828 /* env_hdfs.h */; }; + 628B4C471D03125900E2D828 /* env_hdfs.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B480F1D03125800E2D828 /* env_hdfs.h */; }; + 628B4C4E1D03125900E2D828 /* c.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48151D03125800E2D828 /* c.h */; }; + 628B4C4F1D03125900E2D828 /* c.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48151D03125800E2D828 /* c.h */; }; + 628B4C501D03125900E2D828 /* cache.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48161D03125800E2D828 /* cache.h */; }; + 628B4C511D03125900E2D828 /* cache.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48161D03125800E2D828 /* cache.h */; }; + 628B4C521D03125900E2D828 /* compaction_filter.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48171D03125800E2D828 /* compaction_filter.h */; }; + 628B4C531D03125900E2D828 /* compaction_filter.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48171D03125800E2D828 /* compaction_filter.h */; }; + 628B4C541D03125900E2D828 /* compaction_job_stats.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48181D03125800E2D828 /* compaction_job_stats.h */; }; + 628B4C551D03125900E2D828 /* compaction_job_stats.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48181D03125800E2D828 /* compaction_job_stats.h */; }; + 628B4C561D03125900E2D828 /* comparator.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48191D03125800E2D828 /* comparator.h */; }; + 628B4C571D03125900E2D828 /* comparator.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48191D03125800E2D828 /* comparator.h */; }; + 628B4C581D03125900E2D828 /* convenience.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B481A1D03125800E2D828 /* convenience.h */; }; + 628B4C591D03125900E2D828 /* convenience.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B481A1D03125800E2D828 /* convenience.h */; }; + 628B4C5A1D03125900E2D828 /* db.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B481B1D03125800E2D828 /* db.h */; }; + 628B4C5B1D03125900E2D828 /* db.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B481B1D03125800E2D828 /* db.h */; }; + 628B4C5E1D03125900E2D828 /* db_dump_tool.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B481D1D03125800E2D828 /* db_dump_tool.h */; }; + 628B4C5F1D03125900E2D828 /* db_dump_tool.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B481D1D03125800E2D828 /* db_dump_tool.h */; }; + 628B4C601D03125900E2D828 /* env.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B481E1D03125800E2D828 /* env.h */; }; + 628B4C611D03125900E2D828 /* env.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B481E1D03125800E2D828 /* env.h */; }; + 628B4C621D03125900E2D828 /* experimental.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B481F1D03125800E2D828 /* experimental.h */; }; + 628B4C631D03125900E2D828 /* experimental.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B481F1D03125800E2D828 /* experimental.h */; }; + 628B4C641D03125900E2D828 /* filter_policy.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48201D03125800E2D828 /* filter_policy.h */; }; + 628B4C651D03125900E2D828 /* filter_policy.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48201D03125800E2D828 /* filter_policy.h */; }; + 628B4C661D03125900E2D828 /* flush_block_policy.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48211D03125800E2D828 /* flush_block_policy.h */; }; + 628B4C671D03125900E2D828 /* flush_block_policy.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48211D03125800E2D828 /* flush_block_policy.h */; }; + 628B4C681D03125900E2D828 /* immutable_options.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48221D03125800E2D828 /* immutable_options.h */; }; + 628B4C691D03125900E2D828 /* immutable_options.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48221D03125800E2D828 /* immutable_options.h */; }; + 628B4C6A1D03125900E2D828 /* iostats_context.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48231D03125800E2D828 /* iostats_context.h */; }; + 628B4C6B1D03125900E2D828 /* iostats_context.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48231D03125800E2D828 /* iostats_context.h */; }; + 628B4C6C1D03125900E2D828 /* iterator.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48241D03125800E2D828 /* iterator.h */; }; + 628B4C6D1D03125900E2D828 /* iterator.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48241D03125800E2D828 /* iterator.h */; }; + 628B4C6E1D03125900E2D828 /* ldb_tool.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48251D03125800E2D828 /* ldb_tool.h */; }; + 628B4C6F1D03125900E2D828 /* ldb_tool.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48251D03125800E2D828 /* ldb_tool.h */; }; + 628B4C701D03125900E2D828 /* listener.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48261D03125800E2D828 /* listener.h */; }; + 628B4C711D03125900E2D828 /* listener.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48261D03125800E2D828 /* listener.h */; }; + 628B4C721D03125900E2D828 /* memtablerep.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48271D03125800E2D828 /* memtablerep.h */; }; + 628B4C731D03125900E2D828 /* memtablerep.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48271D03125800E2D828 /* memtablerep.h */; }; + 628B4C741D03125900E2D828 /* merge_operator.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48281D03125800E2D828 /* merge_operator.h */; }; + 628B4C751D03125900E2D828 /* merge_operator.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48281D03125800E2D828 /* merge_operator.h */; }; + 628B4C761D03125900E2D828 /* metadata.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48291D03125800E2D828 /* metadata.h */; }; + 628B4C771D03125900E2D828 /* metadata.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48291D03125800E2D828 /* metadata.h */; }; + 628B4C781D03125900E2D828 /* options.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B482A1D03125800E2D828 /* options.h */; }; + 628B4C791D03125900E2D828 /* options.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B482A1D03125800E2D828 /* options.h */; }; + 628B4C7A1D03125900E2D828 /* perf_context.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B482B1D03125800E2D828 /* perf_context.h */; }; + 628B4C7B1D03125900E2D828 /* perf_context.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B482B1D03125800E2D828 /* perf_context.h */; }; + 628B4C7C1D03125900E2D828 /* perf_level.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B482C1D03125800E2D828 /* perf_level.h */; }; + 628B4C7D1D03125900E2D828 /* perf_level.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B482C1D03125800E2D828 /* perf_level.h */; }; + 628B4C7E1D03125900E2D828 /* rate_limiter.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B482D1D03125800E2D828 /* rate_limiter.h */; }; + 628B4C7F1D03125900E2D828 /* rate_limiter.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B482D1D03125800E2D828 /* rate_limiter.h */; }; + 628B4C801D03125900E2D828 /* slice.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B482E1D03125800E2D828 /* slice.h */; }; + 628B4C811D03125900E2D828 /* slice.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B482E1D03125800E2D828 /* slice.h */; }; + 628B4C821D03125900E2D828 /* slice_transform.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B482F1D03125800E2D828 /* slice_transform.h */; }; + 628B4C831D03125900E2D828 /* slice_transform.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B482F1D03125800E2D828 /* slice_transform.h */; }; + 628B4C841D03125900E2D828 /* snapshot.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48301D03125800E2D828 /* snapshot.h */; }; + 628B4C851D03125900E2D828 /* snapshot.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48301D03125800E2D828 /* snapshot.h */; }; + 628B4C861D03125900E2D828 /* sst_dump_tool.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48311D03125800E2D828 /* sst_dump_tool.h */; }; + 628B4C871D03125900E2D828 /* sst_dump_tool.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48311D03125800E2D828 /* sst_dump_tool.h */; }; + 628B4C881D03125900E2D828 /* sst_file_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48321D03125800E2D828 /* sst_file_manager.h */; }; + 628B4C891D03125900E2D828 /* sst_file_manager.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48321D03125800E2D828 /* sst_file_manager.h */; }; + 628B4C8A1D03125900E2D828 /* sst_file_writer.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48331D03125800E2D828 /* sst_file_writer.h */; }; + 628B4C8B1D03125900E2D828 /* sst_file_writer.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48331D03125800E2D828 /* sst_file_writer.h */; }; + 628B4C8C1D03125900E2D828 /* statistics.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48341D03125800E2D828 /* statistics.h */; }; + 628B4C8D1D03125900E2D828 /* statistics.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48341D03125800E2D828 /* statistics.h */; }; + 628B4C8E1D03125900E2D828 /* status.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48351D03125800E2D828 /* status.h */; }; + 628B4C8F1D03125900E2D828 /* status.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48351D03125800E2D828 /* status.h */; }; + 628B4C901D03125900E2D828 /* table.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48361D03125800E2D828 /* table.h */; }; + 628B4C911D03125900E2D828 /* table.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48361D03125800E2D828 /* table.h */; }; + 628B4C921D03125900E2D828 /* table_properties.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48371D03125800E2D828 /* table_properties.h */; }; + 628B4C931D03125900E2D828 /* table_properties.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48371D03125800E2D828 /* table_properties.h */; }; + 628B4C941D03125900E2D828 /* thread_status.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48381D03125800E2D828 /* thread_status.h */; }; + 628B4C951D03125900E2D828 /* thread_status.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48381D03125800E2D828 /* thread_status.h */; }; + 628B4C961D03125900E2D828 /* transaction_log.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48391D03125800E2D828 /* transaction_log.h */; }; + 628B4C971D03125900E2D828 /* transaction_log.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48391D03125800E2D828 /* transaction_log.h */; }; + 628B4C981D03125900E2D828 /* types.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B483A1D03125800E2D828 /* types.h */; }; + 628B4C991D03125900E2D828 /* types.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B483A1D03125800E2D828 /* types.h */; }; + 628B4C9A1D03125900E2D828 /* universal_compaction.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B483B1D03125800E2D828 /* universal_compaction.h */; }; + 628B4C9B1D03125900E2D828 /* universal_compaction.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B483B1D03125800E2D828 /* universal_compaction.h */; }; + 628B4C9C1D03125900E2D828 /* backupable_db.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B483D1D03125800E2D828 /* backupable_db.h */; }; + 628B4C9D1D03125900E2D828 /* backupable_db.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B483D1D03125800E2D828 /* backupable_db.h */; }; + 628B4C9E1D03125900E2D828 /* checkpoint.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B483E1D03125800E2D828 /* checkpoint.h */; }; + 628B4C9F1D03125900E2D828 /* checkpoint.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B483E1D03125800E2D828 /* checkpoint.h */; }; + 628B4CA01D03125900E2D828 /* convenience.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B483F1D03125800E2D828 /* convenience.h */; }; + 628B4CA11D03125900E2D828 /* convenience.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B483F1D03125800E2D828 /* convenience.h */; }; + 628B4CA21D03125900E2D828 /* db_ttl.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48401D03125800E2D828 /* db_ttl.h */; }; + 628B4CA31D03125900E2D828 /* db_ttl.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48401D03125800E2D828 /* db_ttl.h */; }; + 628B4CA41D03125900E2D828 /* document_db.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48411D03125800E2D828 /* document_db.h */; }; + 628B4CA51D03125900E2D828 /* document_db.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48411D03125800E2D828 /* document_db.h */; }; + 628B4CA61D03125900E2D828 /* env_mirror.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48421D03125800E2D828 /* env_mirror.h */; }; + 628B4CA71D03125900E2D828 /* env_mirror.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48421D03125800E2D828 /* env_mirror.h */; }; + 628B4CA81D03125900E2D828 /* flashcache.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48431D03125800E2D828 /* flashcache.h */; }; + 628B4CA91D03125900E2D828 /* flashcache.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48431D03125800E2D828 /* flashcache.h */; }; + 628B4CAA1D03125900E2D828 /* geo_db.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48441D03125800E2D828 /* geo_db.h */; }; + 628B4CAB1D03125900E2D828 /* geo_db.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48441D03125800E2D828 /* geo_db.h */; }; + 628B4CAC1D03125900E2D828 /* info_log_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48451D03125800E2D828 /* info_log_finder.h */; }; + 628B4CAD1D03125900E2D828 /* info_log_finder.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48451D03125800E2D828 /* info_log_finder.h */; }; + 628B4CAE1D03125900E2D828 /* json_document.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48461D03125800E2D828 /* json_document.h */; }; + 628B4CAF1D03125900E2D828 /* json_document.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48461D03125800E2D828 /* json_document.h */; }; + 628B4CB01D03125900E2D828 /* leveldb_options.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48471D03125800E2D828 /* leveldb_options.h */; }; + 628B4CB11D03125900E2D828 /* leveldb_options.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48471D03125800E2D828 /* leveldb_options.h */; }; + 628B4CB21D03125900E2D828 /* memory_util.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48481D03125800E2D828 /* memory_util.h */; }; + 628B4CB31D03125900E2D828 /* memory_util.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48481D03125800E2D828 /* memory_util.h */; }; + 628B4CB41D03125900E2D828 /* optimistic_transaction_db.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48491D03125800E2D828 /* optimistic_transaction_db.h */; }; + 628B4CB51D03125900E2D828 /* optimistic_transaction_db.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48491D03125800E2D828 /* optimistic_transaction_db.h */; }; + 628B4CB61D03125900E2D828 /* options_util.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B484A1D03125800E2D828 /* options_util.h */; }; + 628B4CB71D03125900E2D828 /* options_util.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B484A1D03125800E2D828 /* options_util.h */; }; + 628B4CB81D03125900E2D828 /* spatial_db.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B484B1D03125800E2D828 /* spatial_db.h */; }; + 628B4CB91D03125900E2D828 /* spatial_db.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B484B1D03125800E2D828 /* spatial_db.h */; }; + 628B4CBA1D03125900E2D828 /* stackable_db.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B484C1D03125800E2D828 /* stackable_db.h */; }; + 628B4CBB1D03125900E2D828 /* stackable_db.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B484C1D03125800E2D828 /* stackable_db.h */; }; + 628B4CBC1D03125900E2D828 /* table_properties_collectors.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B484D1D03125800E2D828 /* table_properties_collectors.h */; }; + 628B4CBD1D03125900E2D828 /* table_properties_collectors.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B484D1D03125800E2D828 /* table_properties_collectors.h */; }; + 628B4CBE1D03125900E2D828 /* transaction.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B484E1D03125800E2D828 /* transaction.h */; }; + 628B4CBF1D03125900E2D828 /* transaction.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B484E1D03125800E2D828 /* transaction.h */; }; + 628B4CC01D03125900E2D828 /* transaction_db.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B484F1D03125800E2D828 /* transaction_db.h */; }; + 628B4CC11D03125900E2D828 /* transaction_db.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B484F1D03125800E2D828 /* transaction_db.h */; }; + 628B4CC21D03125900E2D828 /* transaction_db_mutex.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48501D03125800E2D828 /* transaction_db_mutex.h */; }; + 628B4CC31D03125900E2D828 /* transaction_db_mutex.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48501D03125800E2D828 /* transaction_db_mutex.h */; }; + 628B4CC41D03125900E2D828 /* utility_db.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48511D03125800E2D828 /* utility_db.h */; }; + 628B4CC51D03125900E2D828 /* utility_db.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48511D03125800E2D828 /* utility_db.h */; }; + 628B4CC61D03125900E2D828 /* write_batch_with_index.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48521D03125800E2D828 /* write_batch_with_index.h */; }; + 628B4CC71D03125900E2D828 /* write_batch_with_index.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48521D03125800E2D828 /* write_batch_with_index.h */; }; + 628B4CC81D03125900E2D828 /* version.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48531D03125800E2D828 /* version.h */; }; + 628B4CC91D03125900E2D828 /* version.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48531D03125800E2D828 /* version.h */; }; + 628B4CCA1D03125900E2D828 /* wal_filter.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48541D03125800E2D828 /* wal_filter.h */; }; + 628B4CCB1D03125900E2D828 /* wal_filter.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48541D03125800E2D828 /* wal_filter.h */; }; + 628B4CCC1D03125900E2D828 /* write_batch.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48551D03125800E2D828 /* write_batch.h */; }; + 628B4CCD1D03125900E2D828 /* write_batch.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48551D03125800E2D828 /* write_batch.h */; }; + 628B4CCE1D03125900E2D828 /* write_batch_base.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48561D03125800E2D828 /* write_batch_base.h */; }; + 628B4CCF1D03125900E2D828 /* write_batch_base.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B48561D03125800E2D828 /* write_batch_base.h */; }; + 628B4E241D03125900E2D828 /* hash_cuckoo_rep.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49201D03125900E2D828 /* hash_cuckoo_rep.cc */; }; + 628B4E251D03125900E2D828 /* hash_cuckoo_rep.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49201D03125900E2D828 /* hash_cuckoo_rep.cc */; }; + 628B4E261D03125900E2D828 /* hash_cuckoo_rep.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49211D03125900E2D828 /* hash_cuckoo_rep.h */; }; + 628B4E271D03125900E2D828 /* hash_cuckoo_rep.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49211D03125900E2D828 /* hash_cuckoo_rep.h */; }; + 628B4E281D03125900E2D828 /* hash_linklist_rep.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49221D03125900E2D828 /* hash_linklist_rep.cc */; }; + 628B4E291D03125900E2D828 /* hash_linklist_rep.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49221D03125900E2D828 /* hash_linklist_rep.cc */; }; + 628B4E2A1D03125900E2D828 /* hash_linklist_rep.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49231D03125900E2D828 /* hash_linklist_rep.h */; }; + 628B4E2B1D03125900E2D828 /* hash_linklist_rep.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49231D03125900E2D828 /* hash_linklist_rep.h */; }; + 628B4E2C1D03125900E2D828 /* hash_skiplist_rep.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49241D03125900E2D828 /* hash_skiplist_rep.cc */; }; + 628B4E2D1D03125900E2D828 /* hash_skiplist_rep.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49241D03125900E2D828 /* hash_skiplist_rep.cc */; }; + 628B4E2E1D03125900E2D828 /* hash_skiplist_rep.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49251D03125900E2D828 /* hash_skiplist_rep.h */; }; + 628B4E2F1D03125900E2D828 /* hash_skiplist_rep.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49251D03125900E2D828 /* hash_skiplist_rep.h */; }; + 628B4E301D03125900E2D828 /* skiplistrep.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49261D03125900E2D828 /* skiplistrep.cc */; }; + 628B4E311D03125900E2D828 /* skiplistrep.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49261D03125900E2D828 /* skiplistrep.cc */; }; + 628B4E321D03125900E2D828 /* stl_wrappers.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49271D03125900E2D828 /* stl_wrappers.h */; }; + 628B4E331D03125900E2D828 /* stl_wrappers.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49271D03125900E2D828 /* stl_wrappers.h */; }; + 628B4E341D03125900E2D828 /* vectorrep.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49281D03125900E2D828 /* vectorrep.cc */; }; + 628B4E351D03125900E2D828 /* vectorrep.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49281D03125900E2D828 /* vectorrep.cc */; }; + 628B4E3A1D03125900E2D828 /* likely.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B492C1D03125900E2D828 /* likely.h */; }; + 628B4E3B1D03125900E2D828 /* likely.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B492C1D03125900E2D828 /* likely.h */; }; + 628B4E3C1D03125900E2D828 /* port.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B492D1D03125900E2D828 /* port.h */; }; + 628B4E3D1D03125900E2D828 /* port.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B492D1D03125900E2D828 /* port.h */; }; + 628B4E3E1D03125900E2D828 /* port_example.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B492E1D03125900E2D828 /* port_example.h */; }; + 628B4E3F1D03125900E2D828 /* port_example.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B492E1D03125900E2D828 /* port_example.h */; }; + 628B4E401D03125900E2D828 /* port_posix.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B492F1D03125900E2D828 /* port_posix.cc */; }; + 628B4E411D03125900E2D828 /* port_posix.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B492F1D03125900E2D828 /* port_posix.cc */; }; + 628B4E421D03125900E2D828 /* port_posix.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49301D03125900E2D828 /* port_posix.h */; }; + 628B4E431D03125900E2D828 /* port_posix.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49301D03125900E2D828 /* port_posix.h */; }; + 628B4E461D03125900E2D828 /* stack_trace.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49321D03125900E2D828 /* stack_trace.cc */; }; + 628B4E471D03125900E2D828 /* stack_trace.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49321D03125900E2D828 /* stack_trace.cc */; }; + 628B4E481D03125900E2D828 /* stack_trace.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49331D03125900E2D828 /* stack_trace.h */; }; + 628B4E491D03125900E2D828 /* stack_trace.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49331D03125900E2D828 /* stack_trace.h */; }; + 628B4E4A1D03125900E2D828 /* sys_time.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49341D03125900E2D828 /* sys_time.h */; }; + 628B4E4B1D03125900E2D828 /* sys_time.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49341D03125900E2D828 /* sys_time.h */; }; + 628B4E4C1D03125900E2D828 /* util_logger.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49351D03125900E2D828 /* util_logger.h */; }; + 628B4E4D1D03125900E2D828 /* util_logger.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49351D03125900E2D828 /* util_logger.h */; }; + 628B4E5E1D03125900E2D828 /* adaptive_table_factory.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49401D03125900E2D828 /* adaptive_table_factory.cc */; }; + 628B4E5F1D03125900E2D828 /* adaptive_table_factory.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49401D03125900E2D828 /* adaptive_table_factory.cc */; }; + 628B4E601D03125900E2D828 /* adaptive_table_factory.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49411D03125900E2D828 /* adaptive_table_factory.h */; }; + 628B4E611D03125900E2D828 /* adaptive_table_factory.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49411D03125900E2D828 /* adaptive_table_factory.h */; }; + 628B4E621D03125900E2D828 /* block.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49421D03125900E2D828 /* block.cc */; }; + 628B4E631D03125900E2D828 /* block.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49421D03125900E2D828 /* block.cc */; }; + 628B4E641D03125900E2D828 /* block.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49431D03125900E2D828 /* block.h */; }; + 628B4E651D03125900E2D828 /* block.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49431D03125900E2D828 /* block.h */; }; + 628B4E661D03125900E2D828 /* block_based_filter_block.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49441D03125900E2D828 /* block_based_filter_block.cc */; }; + 628B4E671D03125900E2D828 /* block_based_filter_block.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49441D03125900E2D828 /* block_based_filter_block.cc */; }; + 628B4E681D03125900E2D828 /* block_based_filter_block.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49451D03125900E2D828 /* block_based_filter_block.h */; }; + 628B4E691D03125900E2D828 /* block_based_filter_block.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49451D03125900E2D828 /* block_based_filter_block.h */; }; + 628B4E6C1D03125900E2D828 /* block_based_table_builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49471D03125900E2D828 /* block_based_table_builder.cc */; }; + 628B4E6D1D03125900E2D828 /* block_based_table_builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49471D03125900E2D828 /* block_based_table_builder.cc */; }; + 628B4E6E1D03125900E2D828 /* block_based_table_builder.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49481D03125900E2D828 /* block_based_table_builder.h */; }; + 628B4E6F1D03125900E2D828 /* block_based_table_builder.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49481D03125900E2D828 /* block_based_table_builder.h */; }; + 628B4E701D03125900E2D828 /* block_based_table_factory.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49491D03125900E2D828 /* block_based_table_factory.cc */; }; + 628B4E711D03125900E2D828 /* block_based_table_factory.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49491D03125900E2D828 /* block_based_table_factory.cc */; }; + 628B4E721D03125900E2D828 /* block_based_table_factory.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B494A1D03125900E2D828 /* block_based_table_factory.h */; }; + 628B4E731D03125900E2D828 /* block_based_table_factory.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B494A1D03125900E2D828 /* block_based_table_factory.h */; }; + 628B4E741D03125900E2D828 /* block_based_table_reader.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B494B1D03125900E2D828 /* block_based_table_reader.cc */; }; + 628B4E751D03125900E2D828 /* block_based_table_reader.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B494B1D03125900E2D828 /* block_based_table_reader.cc */; }; + 628B4E761D03125900E2D828 /* block_based_table_reader.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B494C1D03125900E2D828 /* block_based_table_reader.h */; }; + 628B4E771D03125900E2D828 /* block_based_table_reader.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B494C1D03125900E2D828 /* block_based_table_reader.h */; }; + 628B4E781D03125900E2D828 /* block_builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B494D1D03125900E2D828 /* block_builder.cc */; }; + 628B4E791D03125900E2D828 /* block_builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B494D1D03125900E2D828 /* block_builder.cc */; }; + 628B4E7A1D03125900E2D828 /* block_builder.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B494E1D03125900E2D828 /* block_builder.h */; }; + 628B4E7B1D03125900E2D828 /* block_builder.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B494E1D03125900E2D828 /* block_builder.h */; }; + 628B4E7C1D03125900E2D828 /* block_hash_index.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B494F1D03125900E2D828 /* block_hash_index.cc */; }; + 628B4E7D1D03125900E2D828 /* block_hash_index.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B494F1D03125900E2D828 /* block_hash_index.cc */; }; + 628B4E7E1D03125900E2D828 /* block_hash_index.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49501D03125900E2D828 /* block_hash_index.h */; }; + 628B4E7F1D03125900E2D828 /* block_hash_index.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49501D03125900E2D828 /* block_hash_index.h */; }; + 628B4E821D03125900E2D828 /* block_prefix_index.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49521D03125900E2D828 /* block_prefix_index.cc */; }; + 628B4E831D03125900E2D828 /* block_prefix_index.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49521D03125900E2D828 /* block_prefix_index.cc */; }; + 628B4E841D03125900E2D828 /* block_prefix_index.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49531D03125900E2D828 /* block_prefix_index.h */; }; + 628B4E851D03125900E2D828 /* block_prefix_index.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49531D03125900E2D828 /* block_prefix_index.h */; }; + 628B4E881D03125900E2D828 /* bloom_block.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49551D03125900E2D828 /* bloom_block.cc */; }; + 628B4E891D03125900E2D828 /* bloom_block.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49551D03125900E2D828 /* bloom_block.cc */; }; + 628B4E8A1D03125900E2D828 /* bloom_block.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49561D03125900E2D828 /* bloom_block.h */; }; + 628B4E8B1D03125900E2D828 /* bloom_block.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49561D03125900E2D828 /* bloom_block.h */; }; + 628B4E8C1D03125900E2D828 /* cuckoo_table_builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49571D03125900E2D828 /* cuckoo_table_builder.cc */; }; + 628B4E8D1D03125A00E2D828 /* cuckoo_table_builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49571D03125900E2D828 /* cuckoo_table_builder.cc */; }; + 628B4E8E1D03125A00E2D828 /* cuckoo_table_builder.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49581D03125900E2D828 /* cuckoo_table_builder.h */; }; + 628B4E8F1D03125A00E2D828 /* cuckoo_table_builder.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49581D03125900E2D828 /* cuckoo_table_builder.h */; }; + 628B4E921D03125A00E2D828 /* cuckoo_table_factory.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B495A1D03125900E2D828 /* cuckoo_table_factory.cc */; }; + 628B4E931D03125A00E2D828 /* cuckoo_table_factory.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B495A1D03125900E2D828 /* cuckoo_table_factory.cc */; }; + 628B4E941D03125A00E2D828 /* cuckoo_table_factory.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B495B1D03125900E2D828 /* cuckoo_table_factory.h */; }; + 628B4E951D03125A00E2D828 /* cuckoo_table_factory.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B495B1D03125900E2D828 /* cuckoo_table_factory.h */; }; + 628B4E961D03125A00E2D828 /* cuckoo_table_reader.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B495C1D03125900E2D828 /* cuckoo_table_reader.cc */; }; + 628B4E971D03125A00E2D828 /* cuckoo_table_reader.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B495C1D03125900E2D828 /* cuckoo_table_reader.cc */; }; + 628B4E981D03125A00E2D828 /* cuckoo_table_reader.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B495D1D03125900E2D828 /* cuckoo_table_reader.h */; }; + 628B4E991D03125A00E2D828 /* cuckoo_table_reader.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B495D1D03125900E2D828 /* cuckoo_table_reader.h */; }; + 628B4E9C1D03125A00E2D828 /* filter_block.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B495F1D03125900E2D828 /* filter_block.h */; }; + 628B4E9D1D03125A00E2D828 /* filter_block.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B495F1D03125900E2D828 /* filter_block.h */; }; + 628B4E9E1D03125A00E2D828 /* flush_block_policy.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49601D03125900E2D828 /* flush_block_policy.cc */; }; + 628B4E9F1D03125A00E2D828 /* flush_block_policy.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49601D03125900E2D828 /* flush_block_policy.cc */; }; + 628B4EA01D03125A00E2D828 /* format.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49611D03125900E2D828 /* format.cc */; }; + 628B4EA11D03125A00E2D828 /* format.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49611D03125900E2D828 /* format.cc */; }; + 628B4EA21D03125A00E2D828 /* format.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49621D03125900E2D828 /* format.h */; }; + 628B4EA31D03125A00E2D828 /* format.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49621D03125900E2D828 /* format.h */; }; + 628B4EA41D03125A00E2D828 /* full_filter_block.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49631D03125900E2D828 /* full_filter_block.cc */; }; + 628B4EA51D03125A00E2D828 /* full_filter_block.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49631D03125900E2D828 /* full_filter_block.cc */; }; + 628B4EA61D03125A00E2D828 /* full_filter_block.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49641D03125900E2D828 /* full_filter_block.h */; }; + 628B4EA71D03125A00E2D828 /* full_filter_block.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49641D03125900E2D828 /* full_filter_block.h */; }; + 628B4EAA1D03125A00E2D828 /* get_context.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49661D03125900E2D828 /* get_context.cc */; }; + 628B4EAB1D03125A00E2D828 /* get_context.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49661D03125900E2D828 /* get_context.cc */; }; + 628B4EAC1D03125A00E2D828 /* get_context.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49671D03125900E2D828 /* get_context.h */; }; + 628B4EAD1D03125A00E2D828 /* get_context.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49671D03125900E2D828 /* get_context.h */; }; + 628B4EAE1D03125A00E2D828 /* internal_iterator.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49681D03125900E2D828 /* internal_iterator.h */; }; + 628B4EAF1D03125A00E2D828 /* internal_iterator.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49681D03125900E2D828 /* internal_iterator.h */; }; + 628B4EB01D03125A00E2D828 /* iter_heap.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49691D03125900E2D828 /* iter_heap.h */; }; + 628B4EB11D03125A00E2D828 /* iter_heap.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49691D03125900E2D828 /* iter_heap.h */; }; + 628B4EB21D03125A00E2D828 /* iterator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B496A1D03125900E2D828 /* iterator.cc */; }; + 628B4EB31D03125A00E2D828 /* iterator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B496A1D03125900E2D828 /* iterator.cc */; }; + 628B4EB41D03125A00E2D828 /* iterator_wrapper.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B496B1D03125900E2D828 /* iterator_wrapper.h */; }; + 628B4EB51D03125A00E2D828 /* iterator_wrapper.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B496B1D03125900E2D828 /* iterator_wrapper.h */; }; + 628B4EB61D03125A00E2D828 /* merger.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B496C1D03125900E2D828 /* merger.cc */; }; + 628B4EB71D03125A00E2D828 /* merger.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B496C1D03125900E2D828 /* merger.cc */; }; + 628B4EB81D03125A00E2D828 /* merger.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B496D1D03125900E2D828 /* merger.h */; }; + 628B4EB91D03125A00E2D828 /* merger.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B496D1D03125900E2D828 /* merger.h */; }; + 628B4EBC1D03125A00E2D828 /* meta_blocks.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B496F1D03125900E2D828 /* meta_blocks.cc */; }; + 628B4EBD1D03125A00E2D828 /* meta_blocks.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B496F1D03125900E2D828 /* meta_blocks.cc */; }; + 628B4EBE1D03125A00E2D828 /* meta_blocks.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49701D03125900E2D828 /* meta_blocks.h */; }; + 628B4EBF1D03125A00E2D828 /* meta_blocks.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49701D03125900E2D828 /* meta_blocks.h */; }; + 628B4EC41D03125A00E2D828 /* plain_table_builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49731D03125900E2D828 /* plain_table_builder.cc */; }; + 628B4EC51D03125A00E2D828 /* plain_table_builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49731D03125900E2D828 /* plain_table_builder.cc */; }; + 628B4EC61D03125A00E2D828 /* plain_table_builder.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49741D03125900E2D828 /* plain_table_builder.h */; }; + 628B4EC71D03125A00E2D828 /* plain_table_builder.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49741D03125900E2D828 /* plain_table_builder.h */; }; + 628B4EC81D03125A00E2D828 /* plain_table_factory.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49751D03125900E2D828 /* plain_table_factory.cc */; }; + 628B4EC91D03125A00E2D828 /* plain_table_factory.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49751D03125900E2D828 /* plain_table_factory.cc */; }; + 628B4ECA1D03125A00E2D828 /* plain_table_factory.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49761D03125900E2D828 /* plain_table_factory.h */; }; + 628B4ECB1D03125A00E2D828 /* plain_table_factory.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49761D03125900E2D828 /* plain_table_factory.h */; }; + 628B4ECC1D03125A00E2D828 /* plain_table_index.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49771D03125900E2D828 /* plain_table_index.cc */; }; + 628B4ECD1D03125A00E2D828 /* plain_table_index.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49771D03125900E2D828 /* plain_table_index.cc */; }; + 628B4ECE1D03125A00E2D828 /* plain_table_index.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49781D03125900E2D828 /* plain_table_index.h */; }; + 628B4ECF1D03125A00E2D828 /* plain_table_index.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49781D03125900E2D828 /* plain_table_index.h */; }; + 628B4ED01D03125A00E2D828 /* plain_table_key_coding.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49791D03125900E2D828 /* plain_table_key_coding.cc */; }; + 628B4ED11D03125A00E2D828 /* plain_table_key_coding.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49791D03125900E2D828 /* plain_table_key_coding.cc */; }; + 628B4ED21D03125A00E2D828 /* plain_table_key_coding.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B497A1D03125900E2D828 /* plain_table_key_coding.h */; }; + 628B4ED31D03125A00E2D828 /* plain_table_key_coding.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B497A1D03125900E2D828 /* plain_table_key_coding.h */; }; + 628B4ED41D03125A00E2D828 /* plain_table_reader.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B497B1D03125900E2D828 /* plain_table_reader.cc */; }; + 628B4ED51D03125A00E2D828 /* plain_table_reader.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B497B1D03125900E2D828 /* plain_table_reader.cc */; }; + 628B4ED61D03125A00E2D828 /* plain_table_reader.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B497C1D03125900E2D828 /* plain_table_reader.h */; }; + 628B4ED71D03125A00E2D828 /* plain_table_reader.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B497C1D03125900E2D828 /* plain_table_reader.h */; }; + 628B4ED81D03125A00E2D828 /* scoped_arena_iterator.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B497D1D03125900E2D828 /* scoped_arena_iterator.h */; }; + 628B4ED91D03125A00E2D828 /* scoped_arena_iterator.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B497D1D03125900E2D828 /* scoped_arena_iterator.h */; }; + 628B4EDA1D03125A00E2D828 /* sst_file_writer.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B497E1D03125900E2D828 /* sst_file_writer.cc */; }; + 628B4EDB1D03125A00E2D828 /* sst_file_writer.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B497E1D03125900E2D828 /* sst_file_writer.cc */; }; + 628B4EDC1D03125A00E2D828 /* table_builder.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B497F1D03125900E2D828 /* table_builder.h */; }; + 628B4EDD1D03125A00E2D828 /* table_builder.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B497F1D03125900E2D828 /* table_builder.h */; }; + 628B4EDE1D03125A00E2D828 /* table_properties.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49801D03125900E2D828 /* table_properties.cc */; }; + 628B4EDF1D03125A00E2D828 /* table_properties.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49801D03125900E2D828 /* table_properties.cc */; }; + 628B4EE01D03125A00E2D828 /* table_properties_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49811D03125900E2D828 /* table_properties_internal.h */; }; + 628B4EE11D03125A00E2D828 /* table_properties_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49811D03125900E2D828 /* table_properties_internal.h */; }; + 628B4EE21D03125A00E2D828 /* table_reader.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49821D03125900E2D828 /* table_reader.h */; }; + 628B4EE31D03125A00E2D828 /* table_reader.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49821D03125900E2D828 /* table_reader.h */; }; + 628B4EE81D03125A00E2D828 /* two_level_iterator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49851D03125900E2D828 /* two_level_iterator.cc */; }; + 628B4EE91D03125A00E2D828 /* two_level_iterator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49851D03125900E2D828 /* two_level_iterator.cc */; }; + 628B4EEA1D03125A00E2D828 /* two_level_iterator.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49861D03125900E2D828 /* two_level_iterator.h */; }; + 628B4EEB1D03125A00E2D828 /* two_level_iterator.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49861D03125900E2D828 /* two_level_iterator.h */; }; + 628B4EEE1D03125A00E2D828 /* FbsonDocument.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B498A1D03125900E2D828 /* FbsonDocument.h */; }; + 628B4EEF1D03125A00E2D828 /* FbsonDocument.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B498A1D03125900E2D828 /* FbsonDocument.h */; }; + 628B4EF01D03125A00E2D828 /* FbsonJsonParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B498B1D03125900E2D828 /* FbsonJsonParser.h */; }; + 628B4EF11D03125A00E2D828 /* FbsonJsonParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B498B1D03125900E2D828 /* FbsonJsonParser.h */; }; + 628B4EF21D03125A00E2D828 /* FbsonStream.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B498C1D03125900E2D828 /* FbsonStream.h */; }; + 628B4EF31D03125A00E2D828 /* FbsonStream.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B498C1D03125900E2D828 /* FbsonStream.h */; }; + 628B4EF41D03125A00E2D828 /* FbsonUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B498D1D03125900E2D828 /* FbsonUtil.h */; }; + 628B4EF51D03125A00E2D828 /* FbsonUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B498D1D03125900E2D828 /* FbsonUtil.h */; }; + 628B4EF61D03125A00E2D828 /* FbsonWriter.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B498E1D03125900E2D828 /* FbsonWriter.h */; }; + 628B4EF71D03125A00E2D828 /* FbsonWriter.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B498E1D03125900E2D828 /* FbsonWriter.h */; }; + 628B4EF81D03125A00E2D828 /* flashcache_ioctl.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49901D03125900E2D828 /* flashcache_ioctl.h */; }; + 628B4EF91D03125A00E2D828 /* flashcache_ioctl.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49901D03125900E2D828 /* flashcache_ioctl.h */; }; + 628B4F5E1D03125A00E2D828 /* aligned_buffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49CA1D03125900E2D828 /* aligned_buffer.h */; }; + 628B4F5F1D03125A00E2D828 /* aligned_buffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49CA1D03125900E2D828 /* aligned_buffer.h */; }; + 628B4F601D03125A00E2D828 /* allocator.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49CB1D03125900E2D828 /* allocator.h */; }; + 628B4F611D03125A00E2D828 /* allocator.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49CB1D03125900E2D828 /* allocator.h */; }; + 628B4F621D03125A00E2D828 /* arena.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49CC1D03125900E2D828 /* arena.cc */; }; + 628B4F631D03125A00E2D828 /* arena.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49CC1D03125900E2D828 /* arena.cc */; }; + 628B4F641D03125A00E2D828 /* arena.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49CD1D03125900E2D828 /* arena.h */; }; + 628B4F651D03125A00E2D828 /* arena.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49CD1D03125900E2D828 /* arena.h */; }; + 628B4F681D03125A00E2D828 /* autovector.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49CF1D03125900E2D828 /* autovector.h */; }; + 628B4F691D03125A00E2D828 /* autovector.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49CF1D03125900E2D828 /* autovector.h */; }; + 628B4F6C1D03125A00E2D828 /* bloom.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49D11D03125900E2D828 /* bloom.cc */; }; + 628B4F6D1D03125A00E2D828 /* bloom.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49D11D03125900E2D828 /* bloom.cc */; }; + 628B4F701D03125A00E2D828 /* build_version.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49D31D03125900E2D828 /* build_version.cc */; }; + 628B4F711D03125A00E2D828 /* build_version.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49D31D03125900E2D828 /* build_version.cc */; }; + 628B4F721D03125A00E2D828 /* build_version.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49D41D03125900E2D828 /* build_version.h */; }; + 628B4F731D03125A00E2D828 /* build_version.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49D41D03125900E2D828 /* build_version.h */; }; + 628B4F741D03125A00E2D828 /* cache.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49D51D03125900E2D828 /* cache.cc */; }; + 628B4F751D03125A00E2D828 /* cache.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49D51D03125900E2D828 /* cache.cc */; }; + 628B4F7A1D03125A00E2D828 /* channel.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49D81D03125900E2D828 /* channel.h */; }; + 628B4F7B1D03125A00E2D828 /* channel.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49D81D03125900E2D828 /* channel.h */; }; + 628B4F7C1D03125A00E2D828 /* coding.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49D91D03125900E2D828 /* coding.cc */; }; + 628B4F7D1D03125A00E2D828 /* coding.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49D91D03125900E2D828 /* coding.cc */; }; + 628B4F7E1D03125A00E2D828 /* coding.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49DA1D03125900E2D828 /* coding.h */; }; + 628B4F7F1D03125A00E2D828 /* coding.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49DA1D03125900E2D828 /* coding.h */; }; + 628B4F821D03125A00E2D828 /* compaction_job_stats_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49DC1D03125900E2D828 /* compaction_job_stats_impl.cc */; }; + 628B4F831D03125A00E2D828 /* compaction_job_stats_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49DC1D03125900E2D828 /* compaction_job_stats_impl.cc */; }; + 628B4F841D03125A00E2D828 /* comparator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49DD1D03125900E2D828 /* comparator.cc */; }; + 628B4F851D03125A00E2D828 /* comparator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49DD1D03125900E2D828 /* comparator.cc */; }; + 628B4F861D03125A00E2D828 /* compression.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49DE1D03125900E2D828 /* compression.h */; }; + 628B4F871D03125A00E2D828 /* compression.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49DE1D03125900E2D828 /* compression.h */; }; + 628B4F881D03125A00E2D828 /* concurrent_arena.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49DF1D03125900E2D828 /* concurrent_arena.cc */; }; + 628B4F891D03125A00E2D828 /* concurrent_arena.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49DF1D03125900E2D828 /* concurrent_arena.cc */; }; + 628B4F8A1D03125A00E2D828 /* concurrent_arena.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49E01D03125900E2D828 /* concurrent_arena.h */; }; + 628B4F8B1D03125A00E2D828 /* concurrent_arena.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49E01D03125900E2D828 /* concurrent_arena.h */; }; + 628B4F8C1D03125A00E2D828 /* crc32c.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49E11D03125900E2D828 /* crc32c.cc */; }; + 628B4F8D1D03125A00E2D828 /* crc32c.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49E11D03125900E2D828 /* crc32c.cc */; }; + 628B4F8E1D03125A00E2D828 /* crc32c.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49E21D03125900E2D828 /* crc32c.h */; }; + 628B4F8F1D03125A00E2D828 /* crc32c.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49E21D03125900E2D828 /* crc32c.h */; }; + 628B4F921D03125A00E2D828 /* delete_scheduler.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49E41D03125900E2D828 /* delete_scheduler.cc */; }; + 628B4F931D03125A00E2D828 /* delete_scheduler.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49E41D03125900E2D828 /* delete_scheduler.cc */; }; + 628B4F941D03125A00E2D828 /* delete_scheduler.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49E51D03125900E2D828 /* delete_scheduler.h */; }; + 628B4F951D03125A00E2D828 /* delete_scheduler.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49E51D03125900E2D828 /* delete_scheduler.h */; }; + 628B4F981D03125A00E2D828 /* dynamic_bloom.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49E71D03125900E2D828 /* dynamic_bloom.cc */; }; + 628B4F991D03125A00E2D828 /* dynamic_bloom.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49E71D03125900E2D828 /* dynamic_bloom.cc */; }; + 628B4F9A1D03125A00E2D828 /* dynamic_bloom.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49E81D03125900E2D828 /* dynamic_bloom.h */; }; + 628B4F9B1D03125A00E2D828 /* dynamic_bloom.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49E81D03125900E2D828 /* dynamic_bloom.h */; }; + 628B4F9E1D03125A00E2D828 /* env.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49EA1D03125900E2D828 /* env.cc */; }; + 628B4F9F1D03125A00E2D828 /* env.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49EA1D03125900E2D828 /* env.cc */; }; + 628B4FA01D03125A00E2D828 /* env_hdfs.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49EB1D03125900E2D828 /* env_hdfs.cc */; }; + 628B4FA11D03125A00E2D828 /* env_hdfs.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49EB1D03125900E2D828 /* env_hdfs.cc */; }; + 628B4FA21D03125A00E2D828 /* env_posix.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49EC1D03125900E2D828 /* env_posix.cc */; }; + 628B4FA31D03125A00E2D828 /* env_posix.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49EC1D03125900E2D828 /* env_posix.cc */; }; + 628B4FA61D03125A00E2D828 /* event_logger.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49EE1D03125900E2D828 /* event_logger.cc */; }; + 628B4FA71D03125A00E2D828 /* event_logger.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49EE1D03125900E2D828 /* event_logger.cc */; }; + 628B4FA81D03125A00E2D828 /* event_logger.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49EF1D03125900E2D828 /* event_logger.h */; }; + 628B4FA91D03125A00E2D828 /* event_logger.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49EF1D03125900E2D828 /* event_logger.h */; }; + 628B4FAC1D03125A00E2D828 /* file_reader_writer.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49F11D03125900E2D828 /* file_reader_writer.cc */; }; + 628B4FAD1D03125A00E2D828 /* file_reader_writer.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49F11D03125900E2D828 /* file_reader_writer.cc */; }; + 628B4FAE1D03125A00E2D828 /* file_reader_writer.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49F21D03125900E2D828 /* file_reader_writer.h */; }; + 628B4FAF1D03125A00E2D828 /* file_reader_writer.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49F21D03125900E2D828 /* file_reader_writer.h */; }; + 628B4FB21D03125A00E2D828 /* file_util.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49F41D03125900E2D828 /* file_util.cc */; }; + 628B4FB31D03125A00E2D828 /* file_util.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49F41D03125900E2D828 /* file_util.cc */; }; + 628B4FB41D03125A00E2D828 /* file_util.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49F51D03125900E2D828 /* file_util.h */; }; + 628B4FB51D03125A00E2D828 /* file_util.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49F51D03125900E2D828 /* file_util.h */; }; + 628B4FB81D03125A00E2D828 /* filter_policy.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49F71D03125900E2D828 /* filter_policy.cc */; }; + 628B4FB91D03125A00E2D828 /* filter_policy.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49F71D03125900E2D828 /* filter_policy.cc */; }; + 628B4FBA1D03125A00E2D828 /* hash.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49F81D03125900E2D828 /* hash.cc */; }; + 628B4FBB1D03125A00E2D828 /* hash.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49F81D03125900E2D828 /* hash.cc */; }; + 628B4FBC1D03125A00E2D828 /* hash.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49F91D03125900E2D828 /* hash.h */; }; + 628B4FBD1D03125A00E2D828 /* hash.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49F91D03125900E2D828 /* hash.h */; }; + 628B4FBE1D03125A00E2D828 /* heap.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49FA1D03125900E2D828 /* heap.h */; }; + 628B4FBF1D03125A00E2D828 /* heap.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49FA1D03125900E2D828 /* heap.h */; }; + 628B4FC21D03125A00E2D828 /* histogram.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49FC1D03125900E2D828 /* histogram.cc */; }; + 628B4FC31D03125A00E2D828 /* histogram.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49FC1D03125900E2D828 /* histogram.cc */; }; + 628B4FC41D03125A00E2D828 /* histogram.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49FD1D03125900E2D828 /* histogram.h */; }; + 628B4FC51D03125A00E2D828 /* histogram.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B49FD1D03125900E2D828 /* histogram.h */; }; + 628B4FC81D03125A00E2D828 /* instrumented_mutex.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49FF1D03125900E2D828 /* instrumented_mutex.cc */; }; + 628B4FC91D03125A00E2D828 /* instrumented_mutex.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B49FF1D03125900E2D828 /* instrumented_mutex.cc */; }; + 628B4FCA1D03125A00E2D828 /* instrumented_mutex.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A001D03125900E2D828 /* instrumented_mutex.h */; }; + 628B4FCB1D03125A00E2D828 /* instrumented_mutex.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A001D03125900E2D828 /* instrumented_mutex.h */; }; + 628B4FCC1D03125A00E2D828 /* io_posix.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A011D03125900E2D828 /* io_posix.cc */; }; + 628B4FCD1D03125A00E2D828 /* io_posix.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A011D03125900E2D828 /* io_posix.cc */; }; + 628B4FCE1D03125A00E2D828 /* io_posix.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A021D03125900E2D828 /* io_posix.h */; }; + 628B4FCF1D03125A00E2D828 /* io_posix.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A021D03125900E2D828 /* io_posix.h */; }; + 628B4FD01D03125A00E2D828 /* iostats_context.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A031D03125900E2D828 /* iostats_context.cc */; }; + 628B4FD11D03125A00E2D828 /* iostats_context.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A031D03125900E2D828 /* iostats_context.cc */; }; + 628B4FD21D03125A00E2D828 /* iostats_context_imp.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A041D03125900E2D828 /* iostats_context_imp.h */; }; + 628B4FD31D03125A00E2D828 /* iostats_context_imp.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A041D03125900E2D828 /* iostats_context_imp.h */; }; + 628B4FD61D03125A00E2D828 /* kv_map.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A061D03125900E2D828 /* kv_map.h */; }; + 628B4FD71D03125A00E2D828 /* kv_map.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A061D03125900E2D828 /* kv_map.h */; }; + 628B4FD81D03125A00E2D828 /* log_buffer.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A071D03125900E2D828 /* log_buffer.cc */; }; + 628B4FD91D03125A00E2D828 /* log_buffer.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A071D03125900E2D828 /* log_buffer.cc */; }; + 628B4FDA1D03125A00E2D828 /* log_buffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A081D03125900E2D828 /* log_buffer.h */; }; + 628B4FDB1D03125A00E2D828 /* log_buffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A081D03125900E2D828 /* log_buffer.h */; }; + 628B4FDE1D03125A00E2D828 /* logging.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A0A1D03125900E2D828 /* logging.cc */; }; + 628B4FDF1D03125A00E2D828 /* logging.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A0A1D03125900E2D828 /* logging.cc */; }; + 628B4FE01D03125A00E2D828 /* logging.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A0B1D03125900E2D828 /* logging.h */; }; + 628B4FE11D03125A00E2D828 /* logging.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A0B1D03125900E2D828 /* logging.h */; }; + 628B4FE21D03125A00E2D828 /* memenv.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A0C1D03125900E2D828 /* memenv.cc */; }; + 628B4FE31D03125A00E2D828 /* memenv.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A0C1D03125900E2D828 /* memenv.cc */; }; + 628B4FEC1D03125A00E2D828 /* murmurhash.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A111D03125900E2D828 /* murmurhash.cc */; }; + 628B4FED1D03125A00E2D828 /* murmurhash.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A111D03125900E2D828 /* murmurhash.cc */; }; + 628B4FEE1D03125A00E2D828 /* murmurhash.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A121D03125900E2D828 /* murmurhash.h */; }; + 628B4FEF1D03125A00E2D828 /* murmurhash.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A121D03125900E2D828 /* murmurhash.h */; }; + 628B4FF01D03125A00E2D828 /* mutable_cf_options.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A131D03125900E2D828 /* mutable_cf_options.cc */; }; + 628B4FF11D03125A00E2D828 /* mutable_cf_options.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A131D03125900E2D828 /* mutable_cf_options.cc */; }; + 628B4FF21D03125A00E2D828 /* mutable_cf_options.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A141D03125900E2D828 /* mutable_cf_options.h */; }; + 628B4FF31D03125A00E2D828 /* mutable_cf_options.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A141D03125900E2D828 /* mutable_cf_options.h */; }; + 628B4FF41D03125A00E2D828 /* mutexlock.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A151D03125900E2D828 /* mutexlock.h */; }; + 628B4FF51D03125A00E2D828 /* mutexlock.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A151D03125900E2D828 /* mutexlock.h */; }; + 628B4FF61D03125A00E2D828 /* options.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A161D03125900E2D828 /* options.cc */; }; + 628B4FF71D03125A00E2D828 /* options.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A161D03125900E2D828 /* options.cc */; }; + 628B4FF81D03125A00E2D828 /* options_builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A171D03125900E2D828 /* options_builder.cc */; }; + 628B4FF91D03125A00E2D828 /* options_builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A171D03125900E2D828 /* options_builder.cc */; }; + 628B4FFA1D03125A00E2D828 /* options_helper.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A181D03125900E2D828 /* options_helper.cc */; }; + 628B4FFB1D03125A00E2D828 /* options_helper.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A181D03125900E2D828 /* options_helper.cc */; }; + 628B4FFC1D03125A00E2D828 /* options_helper.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A191D03125900E2D828 /* options_helper.h */; }; + 628B4FFD1D03125A00E2D828 /* options_helper.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A191D03125900E2D828 /* options_helper.h */; }; + 628B4FFE1D03125A00E2D828 /* options_parser.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A1A1D03125900E2D828 /* options_parser.cc */; }; + 628B4FFF1D03125A00E2D828 /* options_parser.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A1A1D03125900E2D828 /* options_parser.cc */; }; + 628B50001D03125A00E2D828 /* options_parser.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A1B1D03125900E2D828 /* options_parser.h */; }; + 628B50011D03125A00E2D828 /* options_parser.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A1B1D03125900E2D828 /* options_parser.h */; }; + 628B50021D03125A00E2D828 /* options_sanity_check.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A1C1D03125900E2D828 /* options_sanity_check.cc */; }; + 628B50031D03125A00E2D828 /* options_sanity_check.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A1C1D03125900E2D828 /* options_sanity_check.cc */; }; + 628B50041D03125A00E2D828 /* options_sanity_check.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A1D1D03125900E2D828 /* options_sanity_check.h */; }; + 628B50051D03125A00E2D828 /* options_sanity_check.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A1D1D03125900E2D828 /* options_sanity_check.h */; }; + 628B50081D03125A00E2D828 /* perf_context.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A1F1D03125900E2D828 /* perf_context.cc */; }; + 628B50091D03125A00E2D828 /* perf_context.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A1F1D03125900E2D828 /* perf_context.cc */; }; + 628B500A1D03125A00E2D828 /* perf_context_imp.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A201D03125900E2D828 /* perf_context_imp.h */; }; + 628B500B1D03125A00E2D828 /* perf_context_imp.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A201D03125900E2D828 /* perf_context_imp.h */; }; + 628B500C1D03125A00E2D828 /* perf_level.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A211D03125900E2D828 /* perf_level.cc */; }; + 628B500D1D03125A00E2D828 /* perf_level.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A211D03125900E2D828 /* perf_level.cc */; }; + 628B500E1D03125A00E2D828 /* perf_level_imp.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A221D03125900E2D828 /* perf_level_imp.h */; }; + 628B500F1D03125A00E2D828 /* perf_level_imp.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A221D03125900E2D828 /* perf_level_imp.h */; }; + 628B50101D03125A00E2D828 /* perf_step_timer.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A231D03125900E2D828 /* perf_step_timer.h */; }; + 628B50111D03125A00E2D828 /* perf_step_timer.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A231D03125900E2D828 /* perf_step_timer.h */; }; + 628B50121D03125A00E2D828 /* posix_logger.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A241D03125900E2D828 /* posix_logger.h */; }; + 628B50131D03125A00E2D828 /* posix_logger.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A241D03125900E2D828 /* posix_logger.h */; }; + 628B50141D03125A00E2D828 /* random.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A251D03125900E2D828 /* random.cc */; }; + 628B50151D03125A00E2D828 /* random.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A251D03125900E2D828 /* random.cc */; }; + 628B50161D03125A00E2D828 /* random.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A261D03125900E2D828 /* random.h */; }; + 628B50171D03125A00E2D828 /* random.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A261D03125900E2D828 /* random.h */; }; + 628B50181D03125A00E2D828 /* rate_limiter.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A271D03125900E2D828 /* rate_limiter.cc */; }; + 628B50191D03125A00E2D828 /* rate_limiter.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A271D03125900E2D828 /* rate_limiter.cc */; }; + 628B501A1D03125A00E2D828 /* rate_limiter.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A281D03125900E2D828 /* rate_limiter.h */; }; + 628B501B1D03125A00E2D828 /* rate_limiter.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A281D03125900E2D828 /* rate_limiter.h */; }; + 628B501E1D03125A00E2D828 /* slice.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A2A1D03125900E2D828 /* slice.cc */; }; + 628B501F1D03125A00E2D828 /* slice.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A2A1D03125900E2D828 /* slice.cc */; }; + 628B50221D03125A00E2D828 /* sst_file_manager_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A2C1D03125900E2D828 /* sst_file_manager_impl.cc */; }; + 628B50231D03125A00E2D828 /* sst_file_manager_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A2C1D03125900E2D828 /* sst_file_manager_impl.cc */; }; + 628B50241D03125A00E2D828 /* sst_file_manager_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A2D1D03125900E2D828 /* sst_file_manager_impl.h */; }; + 628B50251D03125A00E2D828 /* sst_file_manager_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A2D1D03125900E2D828 /* sst_file_manager_impl.h */; }; + 628B50261D03125A00E2D828 /* statistics.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A2E1D03125900E2D828 /* statistics.cc */; }; + 628B50271D03125A00E2D828 /* statistics.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A2E1D03125900E2D828 /* statistics.cc */; }; + 628B50281D03125A00E2D828 /* statistics.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A2F1D03125900E2D828 /* statistics.h */; }; + 628B50291D03125A00E2D828 /* statistics.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A2F1D03125900E2D828 /* statistics.h */; }; + 628B502A1D03125A00E2D828 /* status.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A301D03125900E2D828 /* status.cc */; }; + 628B502B1D03125A00E2D828 /* status.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A301D03125900E2D828 /* status.cc */; }; + 628B502C1D03125A00E2D828 /* status_message.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A311D03125900E2D828 /* status_message.cc */; }; + 628B502D1D03125A00E2D828 /* status_message.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A311D03125900E2D828 /* status_message.cc */; }; + 628B502E1D03125A00E2D828 /* stop_watch.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A321D03125900E2D828 /* stop_watch.h */; }; + 628B502F1D03125A00E2D828 /* stop_watch.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A321D03125900E2D828 /* stop_watch.h */; }; + 628B50301D03125A00E2D828 /* string_util.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A331D03125900E2D828 /* string_util.cc */; }; + 628B50311D03125A00E2D828 /* string_util.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A331D03125900E2D828 /* string_util.cc */; }; + 628B50321D03125A00E2D828 /* string_util.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A341D03125900E2D828 /* string_util.h */; }; + 628B50331D03125A00E2D828 /* string_util.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A341D03125900E2D828 /* string_util.h */; }; + 628B50341D03125A00E2D828 /* sync_point.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A351D03125900E2D828 /* sync_point.cc */; }; + 628B50351D03125A00E2D828 /* sync_point.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A351D03125900E2D828 /* sync_point.cc */; }; + 628B50361D03125A00E2D828 /* sync_point.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A361D03125900E2D828 /* sync_point.h */; }; + 628B50371D03125A00E2D828 /* sync_point.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A361D03125900E2D828 /* sync_point.h */; }; + 628B50421D03125A00E2D828 /* thread_local.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A3C1D03125900E2D828 /* thread_local.cc */; }; + 628B50431D03125A00E2D828 /* thread_local.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A3C1D03125900E2D828 /* thread_local.cc */; }; + 628B50441D03125A00E2D828 /* thread_local.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A3D1D03125900E2D828 /* thread_local.h */; }; + 628B50451D03125A00E2D828 /* thread_local.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A3D1D03125900E2D828 /* thread_local.h */; }; + 628B50481D03125A00E2D828 /* thread_operation.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A3F1D03125900E2D828 /* thread_operation.h */; }; + 628B50491D03125A00E2D828 /* thread_operation.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A3F1D03125900E2D828 /* thread_operation.h */; }; + 628B504A1D03125A00E2D828 /* thread_posix.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A401D03125900E2D828 /* thread_posix.cc */; }; + 628B504B1D03125A00E2D828 /* thread_posix.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A401D03125900E2D828 /* thread_posix.cc */; }; + 628B504C1D03125A00E2D828 /* thread_posix.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A411D03125900E2D828 /* thread_posix.h */; }; + 628B504D1D03125A00E2D828 /* thread_posix.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A411D03125900E2D828 /* thread_posix.h */; }; + 628B504E1D03125A00E2D828 /* thread_status_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A421D03125900E2D828 /* thread_status_impl.cc */; }; + 628B504F1D03125A00E2D828 /* thread_status_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A421D03125900E2D828 /* thread_status_impl.cc */; }; + 628B50501D03125A00E2D828 /* thread_status_updater.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A431D03125900E2D828 /* thread_status_updater.cc */; }; + 628B50511D03125A00E2D828 /* thread_status_updater.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A431D03125900E2D828 /* thread_status_updater.cc */; }; + 628B50521D03125A00E2D828 /* thread_status_updater.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A441D03125900E2D828 /* thread_status_updater.h */; }; + 628B50531D03125A00E2D828 /* thread_status_updater.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A441D03125900E2D828 /* thread_status_updater.h */; }; + 628B50541D03125A00E2D828 /* thread_status_updater_debug.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A451D03125900E2D828 /* thread_status_updater_debug.cc */; }; + 628B50551D03125A00E2D828 /* thread_status_updater_debug.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A451D03125900E2D828 /* thread_status_updater_debug.cc */; }; + 628B50561D03125A00E2D828 /* thread_status_util.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A461D03125900E2D828 /* thread_status_util.cc */; }; + 628B50571D03125A00E2D828 /* thread_status_util.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A461D03125900E2D828 /* thread_status_util.cc */; }; + 628B50581D03125A00E2D828 /* thread_status_util.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A471D03125900E2D828 /* thread_status_util.h */; }; + 628B50591D03125A00E2D828 /* thread_status_util.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A471D03125900E2D828 /* thread_status_util.h */; }; + 628B505A1D03125A00E2D828 /* thread_status_util_debug.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A481D03125900E2D828 /* thread_status_util_debug.cc */; }; + 628B505B1D03125A00E2D828 /* thread_status_util_debug.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A481D03125900E2D828 /* thread_status_util_debug.cc */; }; + 628B505C1D03125A00E2D828 /* xfunc.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A491D03125900E2D828 /* xfunc.cc */; }; + 628B505D1D03125A00E2D828 /* xfunc.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A491D03125900E2D828 /* xfunc.cc */; }; + 628B505E1D03125A00E2D828 /* xfunc.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A4A1D03125900E2D828 /* xfunc.h */; }; + 628B505F1D03125A00E2D828 /* xfunc.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A4A1D03125900E2D828 /* xfunc.h */; }; + 628B50601D03125A00E2D828 /* xxhash.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A4B1D03125900E2D828 /* xxhash.cc */; }; + 628B50611D03125A00E2D828 /* xxhash.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A4B1D03125900E2D828 /* xxhash.cc */; }; + 628B50621D03125A00E2D828 /* xxhash.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A4C1D03125900E2D828 /* xxhash.h */; }; + 628B50631D03125A00E2D828 /* xxhash.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A4C1D03125900E2D828 /* xxhash.h */; }; + 628B50641D03125A00E2D828 /* backupable_db.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A4F1D03125900E2D828 /* backupable_db.cc */; }; + 628B50651D03125A00E2D828 /* backupable_db.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A4F1D03125900E2D828 /* backupable_db.cc */; }; + 628B50681D03125A00E2D828 /* checkpoint.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A521D03125900E2D828 /* checkpoint.cc */; }; + 628B50691D03125A00E2D828 /* checkpoint.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A521D03125900E2D828 /* checkpoint.cc */; }; + 628B506C1D03125A00E2D828 /* remove_emptyvalue_compactionfilter.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A561D03125900E2D828 /* remove_emptyvalue_compactionfilter.cc */; }; + 628B506D1D03125A00E2D828 /* remove_emptyvalue_compactionfilter.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A561D03125900E2D828 /* remove_emptyvalue_compactionfilter.cc */; }; + 628B506E1D03125A00E2D828 /* remove_emptyvalue_compactionfilter.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A571D03125900E2D828 /* remove_emptyvalue_compactionfilter.h */; }; + 628B506F1D03125A00E2D828 /* remove_emptyvalue_compactionfilter.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A571D03125900E2D828 /* remove_emptyvalue_compactionfilter.h */; }; + 628B50701D03125A00E2D828 /* info_log_finder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A591D03125900E2D828 /* info_log_finder.cc */; }; + 628B50711D03125A00E2D828 /* info_log_finder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A591D03125900E2D828 /* info_log_finder.cc */; }; + 628B50721D03125A00E2D828 /* document_db.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A5B1D03125900E2D828 /* document_db.cc */; }; + 628B50731D03125A00E2D828 /* document_db.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A5B1D03125900E2D828 /* document_db.cc */; }; + 628B50761D03125A00E2D828 /* json_document.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A5D1D03125900E2D828 /* json_document.cc */; }; + 628B50771D03125A00E2D828 /* json_document.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A5D1D03125900E2D828 /* json_document.cc */; }; + 628B50781D03125A00E2D828 /* json_document_builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A5E1D03125900E2D828 /* json_document_builder.cc */; }; + 628B50791D03125A00E2D828 /* json_document_builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A5E1D03125900E2D828 /* json_document_builder.cc */; }; + 628B507C1D03125A00E2D828 /* env_mirror.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A601D03125900E2D828 /* env_mirror.cc */; }; + 628B507D1D03125A00E2D828 /* env_mirror.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A601D03125900E2D828 /* env_mirror.cc */; }; + 628B50801D03125A00E2D828 /* flashcache.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A631D03125900E2D828 /* flashcache.cc */; }; + 628B50811D03125A00E2D828 /* flashcache.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A631D03125900E2D828 /* flashcache.cc */; }; + 628B50821D03125A00E2D828 /* flashcache.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A641D03125900E2D828 /* flashcache.h */; }; + 628B50831D03125A00E2D828 /* flashcache.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A641D03125900E2D828 /* flashcache.h */; }; + 628B50841D03125A00E2D828 /* geodb_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A661D03125900E2D828 /* geodb_impl.cc */; }; + 628B50851D03125A00E2D828 /* geodb_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A661D03125900E2D828 /* geodb_impl.cc */; }; + 628B50861D03125A00E2D828 /* geodb_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A671D03125900E2D828 /* geodb_impl.h */; }; + 628B50871D03125A00E2D828 /* geodb_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A671D03125900E2D828 /* geodb_impl.h */; }; + 628B508A1D03125A00E2D828 /* leveldb_options.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A6A1D03125900E2D828 /* leveldb_options.cc */; }; + 628B508B1D03125A00E2D828 /* leveldb_options.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A6A1D03125900E2D828 /* leveldb_options.cc */; }; + 628B508E1D03125A00E2D828 /* memory_util.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A6D1D03125900E2D828 /* memory_util.cc */; }; + 628B508F1D03125A00E2D828 /* memory_util.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A6D1D03125900E2D828 /* memory_util.cc */; }; + 628B50901D03125A00E2D828 /* put.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A6F1D03125900E2D828 /* put.cc */; }; + 628B50911D03125A00E2D828 /* put.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A6F1D03125900E2D828 /* put.cc */; }; + 628B50921D03125A00E2D828 /* stringappend.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A711D03125900E2D828 /* stringappend.cc */; }; + 628B50931D03125A00E2D828 /* stringappend.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A711D03125900E2D828 /* stringappend.cc */; }; + 628B50941D03125A00E2D828 /* stringappend.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A721D03125900E2D828 /* stringappend.h */; }; + 628B50951D03125A00E2D828 /* stringappend.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A721D03125900E2D828 /* stringappend.h */; }; + 628B50961D03125A00E2D828 /* stringappend2.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A731D03125900E2D828 /* stringappend2.cc */; }; + 628B50971D03125A00E2D828 /* stringappend2.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A731D03125900E2D828 /* stringappend2.cc */; }; + 628B50981D03125A00E2D828 /* stringappend2.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A741D03125900E2D828 /* stringappend2.h */; }; + 628B50991D03125A00E2D828 /* stringappend2.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A741D03125900E2D828 /* stringappend2.h */; }; + 628B509C1D03125A00E2D828 /* uint64add.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A761D03125900E2D828 /* uint64add.cc */; }; + 628B509D1D03125A00E2D828 /* uint64add.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A761D03125900E2D828 /* uint64add.cc */; }; + 628B509E1D03125A00E2D828 /* merge_operators.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A771D03125900E2D828 /* merge_operators.h */; }; + 628B509F1D03125A00E2D828 /* merge_operators.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A771D03125900E2D828 /* merge_operators.h */; }; + 628B50A01D03125A00E2D828 /* options_util.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A791D03125900E2D828 /* options_util.cc */; }; + 628B50A11D03125A00E2D828 /* options_util.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A791D03125900E2D828 /* options_util.cc */; }; + 628B50A61D03125A00E2D828 /* redis_list_exception.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A7D1D03125900E2D828 /* redis_list_exception.h */; }; + 628B50A71D03125A00E2D828 /* redis_list_exception.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A7D1D03125900E2D828 /* redis_list_exception.h */; }; + 628B50A81D03125A00E2D828 /* redis_list_iterator.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A7E1D03125900E2D828 /* redis_list_iterator.h */; }; + 628B50A91D03125A00E2D828 /* redis_list_iterator.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A7E1D03125900E2D828 /* redis_list_iterator.h */; }; + 628B50AA1D03125A00E2D828 /* redis_lists.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A7F1D03125900E2D828 /* redis_lists.cc */; }; + 628B50AB1D03125A00E2D828 /* redis_lists.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A7F1D03125900E2D828 /* redis_lists.cc */; }; + 628B50AC1D03125A00E2D828 /* redis_lists.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A801D03125900E2D828 /* redis_lists.h */; }; + 628B50AD1D03125A00E2D828 /* redis_lists.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A801D03125900E2D828 /* redis_lists.h */; }; + 628B50B01D03125A00E2D828 /* spatial_db.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A831D03125900E2D828 /* spatial_db.cc */; }; + 628B50B11D03125A00E2D828 /* spatial_db.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A831D03125900E2D828 /* spatial_db.cc */; }; + 628B50B41D03125A00E2D828 /* utils.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A851D03125900E2D828 /* utils.h */; }; + 628B50B51D03125A00E2D828 /* utils.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A851D03125900E2D828 /* utils.h */; }; + 628B50B61D03125A00E2D828 /* compact_on_deletion_collector.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A871D03125900E2D828 /* compact_on_deletion_collector.cc */; }; + 628B50B71D03125A00E2D828 /* compact_on_deletion_collector.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A871D03125900E2D828 /* compact_on_deletion_collector.cc */; }; + 628B50B81D03125A00E2D828 /* compact_on_deletion_collector.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A881D03125900E2D828 /* compact_on_deletion_collector.h */; }; + 628B50B91D03125A00E2D828 /* compact_on_deletion_collector.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A881D03125900E2D828 /* compact_on_deletion_collector.h */; }; + 628B50BC1D03125A00E2D828 /* optimistic_transaction_db_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A8B1D03125900E2D828 /* optimistic_transaction_db_impl.cc */; }; + 628B50BD1D03125A00E2D828 /* optimistic_transaction_db_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A8B1D03125900E2D828 /* optimistic_transaction_db_impl.cc */; }; + 628B50BE1D03125A00E2D828 /* optimistic_transaction_db_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A8C1D03125900E2D828 /* optimistic_transaction_db_impl.h */; }; + 628B50BF1D03125A00E2D828 /* optimistic_transaction_db_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A8C1D03125900E2D828 /* optimistic_transaction_db_impl.h */; }; + 628B50C01D03125A00E2D828 /* optimistic_transaction_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A8D1D03125900E2D828 /* optimistic_transaction_impl.cc */; }; + 628B50C11D03125A00E2D828 /* optimistic_transaction_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A8D1D03125900E2D828 /* optimistic_transaction_impl.cc */; }; + 628B50C21D03125A00E2D828 /* optimistic_transaction_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A8E1D03125900E2D828 /* optimistic_transaction_impl.h */; }; + 628B50C31D03125A00E2D828 /* optimistic_transaction_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A8E1D03125900E2D828 /* optimistic_transaction_impl.h */; }; + 628B50C61D03125A00E2D828 /* transaction_base.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A901D03125900E2D828 /* transaction_base.cc */; }; + 628B50C71D03125A00E2D828 /* transaction_base.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A901D03125900E2D828 /* transaction_base.cc */; }; + 628B50C81D03125A00E2D828 /* transaction_base.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A911D03125900E2D828 /* transaction_base.h */; }; + 628B50C91D03125A00E2D828 /* transaction_base.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A911D03125900E2D828 /* transaction_base.h */; }; + 628B50CA1D03125A00E2D828 /* transaction_db_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A921D03125900E2D828 /* transaction_db_impl.cc */; }; + 628B50CB1D03125A00E2D828 /* transaction_db_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A921D03125900E2D828 /* transaction_db_impl.cc */; }; + 628B50CC1D03125A00E2D828 /* transaction_db_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A931D03125900E2D828 /* transaction_db_impl.h */; }; + 628B50CD1D03125A00E2D828 /* transaction_db_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A931D03125900E2D828 /* transaction_db_impl.h */; }; + 628B50CE1D03125A00E2D828 /* transaction_db_mutex_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A941D03125900E2D828 /* transaction_db_mutex_impl.cc */; }; + 628B50CF1D03125A00E2D828 /* transaction_db_mutex_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A941D03125900E2D828 /* transaction_db_mutex_impl.cc */; }; + 628B50D01D03125A00E2D828 /* transaction_db_mutex_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A951D03125900E2D828 /* transaction_db_mutex_impl.h */; }; + 628B50D11D03125A00E2D828 /* transaction_db_mutex_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A951D03125900E2D828 /* transaction_db_mutex_impl.h */; }; + 628B50D21D03125A00E2D828 /* transaction_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A961D03125900E2D828 /* transaction_impl.cc */; }; + 628B50D31D03125A00E2D828 /* transaction_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A961D03125900E2D828 /* transaction_impl.cc */; }; + 628B50D41D03125A00E2D828 /* transaction_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A971D03125900E2D828 /* transaction_impl.h */; }; + 628B50D51D03125A00E2D828 /* transaction_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A971D03125900E2D828 /* transaction_impl.h */; }; + 628B50D61D03125A00E2D828 /* transaction_lock_mgr.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A981D03125900E2D828 /* transaction_lock_mgr.cc */; }; + 628B50D71D03125A00E2D828 /* transaction_lock_mgr.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A981D03125900E2D828 /* transaction_lock_mgr.cc */; }; + 628B50D81D03125A00E2D828 /* transaction_lock_mgr.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A991D03125900E2D828 /* transaction_lock_mgr.h */; }; + 628B50D91D03125A00E2D828 /* transaction_lock_mgr.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A991D03125900E2D828 /* transaction_lock_mgr.h */; }; + 628B50DC1D03125A00E2D828 /* transaction_util.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A9B1D03125900E2D828 /* transaction_util.cc */; }; + 628B50DD1D03125A00E2D828 /* transaction_util.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A9B1D03125900E2D828 /* transaction_util.cc */; }; + 628B50DE1D03125A00E2D828 /* transaction_util.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A9C1D03125900E2D828 /* transaction_util.h */; }; + 628B50DF1D03125A00E2D828 /* transaction_util.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A9C1D03125900E2D828 /* transaction_util.h */; }; + 628B50E01D03125A00E2D828 /* db_ttl_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A9E1D03125900E2D828 /* db_ttl_impl.cc */; }; + 628B50E11D03125A00E2D828 /* db_ttl_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4A9E1D03125900E2D828 /* db_ttl_impl.cc */; }; + 628B50E21D03125A00E2D828 /* db_ttl_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A9F1D03125900E2D828 /* db_ttl_impl.h */; }; + 628B50E31D03125A00E2D828 /* db_ttl_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4A9F1D03125900E2D828 /* db_ttl_impl.h */; }; + 628B50E61D03125A00E2D828 /* write_batch_with_index.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4AA21D03125900E2D828 /* write_batch_with_index.cc */; }; + 628B50E71D03125A00E2D828 /* write_batch_with_index.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4AA21D03125900E2D828 /* write_batch_with_index.cc */; }; + 628B50E81D03125A00E2D828 /* write_batch_with_index_internal.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4AA31D03125900E2D828 /* write_batch_with_index_internal.cc */; }; + 628B50E91D03125A00E2D828 /* write_batch_with_index_internal.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4AA31D03125900E2D828 /* write_batch_with_index_internal.cc */; }; + 628B50EA1D03125A00E2D828 /* write_batch_with_index_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4AA41D03125900E2D828 /* write_batch_with_index_internal.h */; }; + 628B50EB1D03125A00E2D828 /* write_batch_with_index_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4AA41D03125900E2D828 /* write_batch_with_index_internal.h */; }; 629416631A69DFB000AA0498 /* RocksDBPrefixExtractorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 629416621A69DFB000AA0498 /* RocksDBPrefixExtractorTests.swift */; }; 629416641A69DFB000AA0498 /* RocksDBPrefixExtractorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 629416621A69DFB000AA0498 /* RocksDBPrefixExtractorTests.swift */; }; 6299F8561A17B7AD00123F56 /* RocksDBBasicTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6299F8551A17B7AD00123F56 /* RocksDBBasicTests.mm */; }; - 62A26A3D1C694B7F00DDE27E /* sst_dump_tool.cc in Sources */ = {isa = PBXBuildFile; fileRef = 62451AD41A4BD61700AF11C8 /* sst_dump_tool.cc */; }; 62A37D141A632316003F6095 /* RocksDBIteratorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62A37D131A632316003F6095 /* RocksDBIteratorTests.swift */; }; 62A37D151A632316003F6095 /* RocksDBIteratorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62A37D131A632316003F6095 /* RocksDBIteratorTests.swift */; }; 62A8B0481A58C40A0069B4C8 /* RocksDBBasicTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6299F8551A17B7AD00123F56 /* RocksDBBasicTests.mm */; }; @@ -556,35 +1067,16 @@ 6221B7A21A629B3500D28BF5 /* ObjectiveRocksTests-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "ObjectiveRocksTests-Bridging-Header.h"; sourceTree = ""; }; 6221B7A31A629B3500D28BF5 /* ObjectiveRocksTests-iOS-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "ObjectiveRocksTests-iOS-Bridging-Header.h"; sourceTree = ""; }; 6221B7A41A629B3600D28BF5 /* RockDBTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RockDBTests.swift; sourceTree = ""; }; - 62269ED91A1FF266005A58D3 /* checkpoint.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = checkpoint.h; path = utilities/checkpoint.h; sourceTree = ""; }; - 62269EDB1A1FF27A005A58D3 /* checkpoint.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = checkpoint.cc; sourceTree = ""; }; - 62269EDD1A1FF2B2005A58D3 /* leveldb_options.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = leveldb_options.h; sourceTree = ""; }; - 62269EDF1A1FF2DC005A58D3 /* leveldb_options.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = leveldb_options.cc; sourceTree = ""; }; - 62297D501B6AC05000F72BF2 /* write_batch_with_index_internal.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = write_batch_with_index_internal.cc; sourceTree = ""; }; - 62297D511B6AC05000F72BF2 /* write_batch_with_index_internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = write_batch_with_index_internal.h; sourceTree = ""; }; - 62297D541B6AC08B00F72BF2 /* event_logger_helpers.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = event_logger_helpers.cc; sourceTree = ""; }; - 62297D551B6AC08B00F72BF2 /* event_logger_helpers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = event_logger_helpers.h; sourceTree = ""; }; - 62297D591B6AC8CE00F72BF2 /* build_version.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = build_version.cc; sourceTree = ""; }; - 622DB85E1A7E9FFB0026C73F /* compression.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = compression.h; sourceTree = ""; }; - 622DB8621A7EA1470026C73F /* fault_injection_test.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = fault_injection_test.cc; sourceTree = ""; }; - 622DB8641A7EA1CB0026C73F /* memenv_test.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = memenv_test.cc; sourceTree = ""; }; - 622DB8651A7EA1CB0026C73F /* memenv.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = memenv.cc; sourceTree = ""; }; - 622DB86B1A7EA2970026C73F /* slice_transform_test.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = slice_transform_test.cc; sourceTree = ""; }; 623147591A5AE18A0019D14A /* RocksDBEnv.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RocksDBEnv.h; sourceTree = ""; }; 6231475A1A5AE18A0019D14A /* RocksDBEnv.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RocksDBEnv.mm; sourceTree = ""; }; 6231475D1A5AE3E30019D14A /* RocksDBThreadStatus.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RocksDBThreadStatus.h; sourceTree = ""; }; 6231475E1A5AE3E30019D14A /* RocksDBThreadStatus.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RocksDBThreadStatus.mm; sourceTree = ""; }; - 623147601A5AF1190019D14A /* thread_status.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = thread_status.h; sourceTree = ""; }; 623224AA1A2116A400FB6625 /* RocksDBComparator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RocksDBComparator.h; sourceTree = ""; }; 623224AB1A2116A400FB6625 /* RocksDBComparator.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RocksDBComparator.mm; sourceTree = ""; }; 6232B7331A1E80F900B14535 /* RocksDBWriteOptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RocksDBWriteOptions.h; sourceTree = ""; }; 6232B7341A1E80F900B14535 /* RocksDBWriteOptions.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RocksDBWriteOptions.mm; sourceTree = ""; }; 6232B7361A1E860700B14535 /* RocksDBReadOptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RocksDBReadOptions.h; sourceTree = ""; }; 6232B7371A1E860700B14535 /* RocksDBReadOptions.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RocksDBReadOptions.mm; sourceTree = ""; }; - 6235339E1A47722900D5CD14 /* memtable_allocator.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = memtable_allocator.cc; sourceTree = ""; }; - 6235339F1A47722900D5CD14 /* memtable_allocator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = memtable_allocator.h; sourceTree = ""; }; - 623533A11A47724D00D5CD14 /* writebuffer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = writebuffer.h; sourceTree = ""; }; - 623533A21A4772AC00D5CD14 /* allocator.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = allocator.h; sourceTree = ""; }; 6236E2551A4DD25000A81ED6 /* RocksDBPrefixExtractor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RocksDBPrefixExtractor.h; sourceTree = ""; }; 6236E2561A4DD25000A81ED6 /* RocksDBPrefixExtractor.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RocksDBPrefixExtractor.mm; sourceTree = ""; }; 6236E2581A4DD71600A81ED6 /* RocksDBCallbackSliceTransform.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RocksDBCallbackSliceTransform.cpp; sourceTree = ""; }; @@ -601,62 +1093,11 @@ 624203C01BED64410043DD6F /* ObjectiveRocks.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ObjectiveRocks.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 624203C81BED64AE0043DD6F /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = Framework/Info.plist; sourceTree = SOURCE_ROOT; }; 62451AC81A4BAEC000AF11C8 /* RocksDBTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RocksDBTypes.h; sourceTree = ""; }; - 62451ACB1A4BC7A600AF11C8 /* sst_dump_tool_imp.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = sst_dump_tool_imp.h; sourceTree = ""; }; - 62451ACC1A4BC85400AF11C8 /* thread_status_updater_debug.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = thread_status_updater_debug.cc; sourceTree = ""; }; - 62451ACD1A4BC85400AF11C8 /* thread_status_updater.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = thread_status_updater.cc; sourceTree = ""; }; - 62451ACE1A4BC85400AF11C8 /* thread_status_updater.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = thread_status_updater.h; sourceTree = ""; }; - 62451ACF1A4BC85400AF11C8 /* thread_status_util.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = thread_status_util.cc; sourceTree = ""; }; - 62451AD01A4BC85400AF11C8 /* thread_status_util.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = thread_status_util.h; sourceTree = ""; }; - 62451AD41A4BD61700AF11C8 /* sst_dump_tool.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = sst_dump_tool.cc; sourceTree = ""; }; - 62451AD51A4BD63D00AF11C8 /* sst_dump_test.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = sst_dump_test.cc; sourceTree = ""; }; 62451AC91A4BAEC000AF11C8 /* RocksDBTypes.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RocksDBTypes.mm; sourceTree = ""; }; 624566C71A51DA79009AC3FB /* RocksDBColumnFamilyTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RocksDBColumnFamilyTests.mm; sourceTree = ""; }; 62456CBA1A66FE0500329F11 /* RocksDBMergeOperatorTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RocksDBMergeOperatorTests.swift; sourceTree = ""; }; 6249A3CB1A4A43CA00949B07 /* RocksDBTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RocksDBTests.mm; sourceTree = ""; }; 6249A3CD1A4A6E4000949B07 /* RocksDBTests.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RocksDBTests.h; sourceTree = ""; }; - 624C22171AF01485006DC8FA /* xfunc.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = xfunc.cc; sourceTree = ""; }; - 624C221A1AF0148B006DC8FA /* xfunc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = xfunc.h; sourceTree = ""; }; - 624C221B1AF014E0006DC8FA /* thread_status_impl.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = thread_status_impl.cc; sourceTree = ""; }; - 624C221E1AF01590006DC8FA /* dbench_monitor */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = dbench_monitor; sourceTree = ""; }; - 624C221F1AF01597006DC8FA /* pflag */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = pflag; sourceTree = ""; }; - 624C22231AF015E4006DC8FA /* thread_status_util_debug.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = thread_status_util_debug.cc; sourceTree = ""; }; - 624C22261AF0161E006DC8FA /* managed_iterator.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = managed_iterator.cc; sourceTree = ""; }; - 624C22271AF0161E006DC8FA /* managed_iterator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = managed_iterator.h; sourceTree = ""; }; - 624C222B1AF016B7006DC8FA /* COMMIT.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = COMMIT.md; sourceTree = ""; }; - 624C222C1AF016B7006DC8FA /* FbsonDocument.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FbsonDocument.h; sourceTree = ""; }; - 624C222D1AF016B7006DC8FA /* FbsonJsonParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FbsonJsonParser.h; sourceTree = ""; }; - 624C222E1AF016B7006DC8FA /* FbsonStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FbsonStream.h; sourceTree = ""; }; - 624C222F1AF016B7006DC8FA /* FbsonUtil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FbsonUtil.h; sourceTree = ""; }; - 624C22301AF016B7006DC8FA /* FbsonWriter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FbsonWriter.h; sourceTree = ""; }; - 624C22331AF016EE006DC8FA /* json_document_builder.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = json_document_builder.cc; sourceTree = ""; }; - 624C22361AF01719006DC8FA /* src.mk */ = {isa = PBXFileReference; lastKnownFileType = text; path = src.mk; sourceTree = ""; }; - 624C22381AF0174B006DC8FA /* convenience.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = convenience.cc; sourceTree = ""; }; - 624C223B1AF01773006DC8FA /* compact_files_test.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = compact_files_test.cc; sourceTree = ""; }; - 624C223C1AF017B6006DC8FA /* event_logger_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = event_logger_test.cc; sourceTree = ""; }; - 624C223D1AF017B6006DC8FA /* event_logger.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = event_logger.cc; sourceTree = ""; }; - 624C223E1AF017B6006DC8FA /* event_logger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = event_logger.h; sourceTree = ""; }; - 624C22461AF017F1006DC8FA /* gtest-all.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = "gtest-all.cc"; sourceTree = ""; }; - 624C22471AF017F1006DC8FA /* gtest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = gtest.h; sourceTree = ""; }; - 624C224A1AF01880006DC8FA /* slice.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slice.cc; sourceTree = ""; }; - 624C224D1AF0188B006DC8FA /* write_batch_base.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = write_batch_base.cc; sourceTree = ""; }; - 624C22501AF018B6006DC8FA /* write_batch_base.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = write_batch_base.h; sourceTree = ""; }; - 624C22511AF0193B006DC8FA /* flashcache.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = flashcache.h; path = utilities/flashcache.h; sourceTree = ""; }; - 624C22531AF0194E006DC8FA /* flashcache_ioctl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = flashcache_ioctl.h; sourceTree = ""; }; - 624C22551AF0195F006DC8FA /* flashcache.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = flashcache.cc; sourceTree = ""; }; - 624C22561AF0195F006DC8FA /* flashcache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = flashcache.h; sourceTree = ""; }; - 624C225A1AF01B1F006DC8FA /* USERS.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = USERS.md; sourceTree = ""; }; - 624C225B1AF01B3E006DC8FA /* check_format_compatible.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = check_format_compatible.sh; sourceTree = ""; }; - 624C225C1AF01B45006DC8FA /* generate_random_db.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = generate_random_db.sh; sourceTree = ""; }; - 624C225D1AF01B4C006DC8FA /* verify_random_db.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = verify_random_db.sh; sourceTree = ""; }; - 624C225E1AF01B7A006DC8FA /* memtable_list_test.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = memtable_list_test.cc; sourceTree = ""; }; - 624C225F1AF01C8E006DC8FA /* db_impl_experimental.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = db_impl_experimental.cc; path = rocksdb/db/db_impl_experimental.cc; sourceTree = SOURCE_ROOT; }; - 624C22621AF01CA7006DC8FA /* experimental.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = experimental.cc; path = rocksdb/db/experimental.cc; sourceTree = SOURCE_ROOT; }; - 624C22651AF01CE0006DC8FA /* experimental.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = experimental.h; sourceTree = ""; }; - 624C22661AF01D30006DC8FA /* benchmark_leveldb.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = benchmark_leveldb.sh; sourceTree = ""; }; - 624C22671AF01D36006DC8FA /* run_leveldb.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = run_leveldb.sh; sourceTree = ""; }; - 624C22681AF0217C006DC8FA /* thread_list_test.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = thread_list_test.cc; sourceTree = ""; }; - 624C22691AF02B1B006DC8FA /* instrumented_mutex.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = instrumented_mutex.cc; sourceTree = ""; }; - 624C226A1AF02B1B006DC8FA /* instrumented_mutex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = instrumented_mutex.h; sourceTree = ""; }; 624F5D981BEE416D00497FEF /* ObjectiveRocks.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ObjectiveRocks.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 6251A3721B783DA7009BABD5 /* RocksDBReadOnlyTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RocksDBReadOnlyTests.m; sourceTree = ""; }; 6251A3741B783DBC009BABD5 /* RocksDBReadOnlyTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RocksDBReadOnlyTests.swift; sourceTree = ""; }; @@ -675,18 +1116,404 @@ 62662E921B8FCA8C008B4EF5 /* RocksDBIndexedWriteBatchTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RocksDBIndexedWriteBatchTests.m; sourceTree = ""; }; 62662E951B8FCBA0008B4EF5 /* RocksDBIndexedWriteBatch.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RocksDBIndexedWriteBatch.swift; sourceTree = ""; }; 62685CB81A2E600A009401B1 /* RocksDBWriteBatchTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RocksDBWriteBatchTests.mm; sourceTree = ""; }; - 626A7D4C1A27EC570098A979 /* .gitignore */ = {isa = PBXFileReference; lastKnownFileType = text; path = .gitignore; sourceTree = ""; }; - 626A7D4D1A27EC570098A979 /* API.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = API.md; sourceTree = ""; }; - 626A7D4E1A27EC570098A979 /* binding.gyp */ = {isa = PBXFileReference; lastKnownFileType = text; path = binding.gyp; sourceTree = ""; }; - 626A7D4F1A27EC570098A979 /* db_wrapper.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = db_wrapper.cc; sourceTree = ""; }; - 626A7D501A27EC570098A979 /* db_wrapper.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = db_wrapper.h; sourceTree = ""; }; - 626A7D511A27EC570098A979 /* rdb */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = rdb; sourceTree = ""; }; - 626A7D521A27EC570098A979 /* rdb.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = rdb.cc; sourceTree = ""; }; - 626A7D531A27EC570098A979 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; - 626A7D541A27EC570098A979 /* unit_test.js */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.javascript; path = unit_test.js; sourceTree = ""; }; 627FBE761A61E0AA0038696A /* RocksDBColumnFamilyMetadataTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RocksDBColumnFamilyMetadataTests.mm; sourceTree = ""; }; 628B0CE81A1C104D0099C39B /* RocksDBError.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RocksDBError.h; sourceTree = ""; }; 628B0CE91A1C104D0099C39B /* RocksDBError.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RocksDBError.mm; sourceTree = ""; }; + 628B47641D03125800E2D828 /* auto_roll_logger.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = auto_roll_logger.cc; sourceTree = ""; }; + 628B47651D03125800E2D828 /* auto_roll_logger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = auto_roll_logger.h; sourceTree = ""; }; + 628B47671D03125800E2D828 /* builder.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = builder.cc; sourceTree = ""; }; + 628B47681D03125800E2D828 /* builder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = builder.h; sourceTree = ""; }; + 628B47691D03125800E2D828 /* c.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = c.cc; sourceTree = ""; }; + 628B476B1D03125800E2D828 /* column_family.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = column_family.cc; sourceTree = ""; }; + 628B476C1D03125800E2D828 /* column_family.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = column_family.h; sourceTree = ""; }; + 628B476F1D03125800E2D828 /* compacted_db_impl.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = compacted_db_impl.cc; sourceTree = ""; }; + 628B47701D03125800E2D828 /* compacted_db_impl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = compacted_db_impl.h; sourceTree = ""; }; + 628B47711D03125800E2D828 /* compaction.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = compaction.cc; sourceTree = ""; }; + 628B47721D03125800E2D828 /* compaction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = compaction.h; sourceTree = ""; }; + 628B47731D03125800E2D828 /* compaction_iterator.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = compaction_iterator.cc; sourceTree = ""; }; + 628B47741D03125800E2D828 /* compaction_iterator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = compaction_iterator.h; sourceTree = ""; }; + 628B47761D03125800E2D828 /* compaction_job.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = compaction_job.cc; sourceTree = ""; }; + 628B47771D03125800E2D828 /* compaction_job.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = compaction_job.h; sourceTree = ""; }; + 628B477A1D03125800E2D828 /* compaction_picker.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = compaction_picker.cc; sourceTree = ""; }; + 628B477B1D03125800E2D828 /* compaction_picker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = compaction_picker.h; sourceTree = ""; }; + 628B477E1D03125800E2D828 /* convenience.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = convenience.cc; sourceTree = ""; }; + 628B47851D03125800E2D828 /* db_filesnapshot.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = db_filesnapshot.cc; sourceTree = ""; }; + 628B47861D03125800E2D828 /* db_impl.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = db_impl.cc; sourceTree = ""; }; + 628B47871D03125800E2D828 /* db_impl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = db_impl.h; sourceTree = ""; }; + 628B47881D03125800E2D828 /* db_impl_debug.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = db_impl_debug.cc; sourceTree = ""; }; + 628B47891D03125800E2D828 /* db_impl_experimental.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = db_impl_experimental.cc; sourceTree = ""; }; + 628B478A1D03125800E2D828 /* db_impl_readonly.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = db_impl_readonly.cc; sourceTree = ""; }; + 628B478B1D03125800E2D828 /* db_impl_readonly.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = db_impl_readonly.h; sourceTree = ""; }; + 628B478C1D03125800E2D828 /* db_info_dumper.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = db_info_dumper.cc; sourceTree = ""; }; + 628B478D1D03125800E2D828 /* db_info_dumper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = db_info_dumper.h; sourceTree = ""; }; + 628B478F1D03125800E2D828 /* db_iter.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = db_iter.cc; sourceTree = ""; }; + 628B47901D03125800E2D828 /* db_iter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = db_iter.h; sourceTree = ""; }; + 628B479C1D03125800E2D828 /* dbformat.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = dbformat.cc; sourceTree = ""; }; + 628B479D1D03125800E2D828 /* dbformat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dbformat.h; sourceTree = ""; }; + 628B47A01D03125800E2D828 /* event_helpers.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = event_helpers.cc; sourceTree = ""; }; + 628B47A11D03125800E2D828 /* event_helpers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = event_helpers.h; sourceTree = ""; }; + 628B47A21D03125800E2D828 /* experimental.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = experimental.cc; sourceTree = ""; }; + 628B47A41D03125800E2D828 /* file_indexer.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = file_indexer.cc; sourceTree = ""; }; + 628B47A51D03125800E2D828 /* file_indexer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = file_indexer.h; sourceTree = ""; }; + 628B47A71D03125800E2D828 /* filename.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = filename.cc; sourceTree = ""; }; + 628B47A81D03125800E2D828 /* filename.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = filename.h; sourceTree = ""; }; + 628B47AA1D03125800E2D828 /* flush_job.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = flush_job.cc; sourceTree = ""; }; + 628B47AB1D03125800E2D828 /* flush_job.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = flush_job.h; sourceTree = ""; }; + 628B47AD1D03125800E2D828 /* flush_scheduler.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = flush_scheduler.cc; sourceTree = ""; }; + 628B47AE1D03125800E2D828 /* flush_scheduler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = flush_scheduler.h; sourceTree = ""; }; + 628B47AF1D03125800E2D828 /* forward_iterator.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = forward_iterator.cc; sourceTree = ""; }; + 628B47B01D03125800E2D828 /* forward_iterator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = forward_iterator.h; sourceTree = ""; }; + 628B47B21D03125800E2D828 /* inlineskiplist.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = inlineskiplist.h; sourceTree = ""; }; + 628B47B41D03125800E2D828 /* internal_stats.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = internal_stats.cc; sourceTree = ""; }; + 628B47B51D03125800E2D828 /* internal_stats.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = internal_stats.h; sourceTree = ""; }; + 628B47B61D03125800E2D828 /* job_context.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = job_context.h; sourceTree = ""; }; + 628B47B81D03125800E2D828 /* log_format.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = log_format.h; sourceTree = ""; }; + 628B47B91D03125800E2D828 /* log_reader.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = log_reader.cc; sourceTree = ""; }; + 628B47BA1D03125800E2D828 /* log_reader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = log_reader.h; sourceTree = ""; }; + 628B47BC1D03125800E2D828 /* log_writer.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = log_writer.cc; sourceTree = ""; }; + 628B47BD1D03125800E2D828 /* log_writer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = log_writer.h; sourceTree = ""; }; + 628B47BE1D03125800E2D828 /* managed_iterator.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = managed_iterator.cc; sourceTree = ""; }; + 628B47BF1D03125800E2D828 /* managed_iterator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = managed_iterator.h; sourceTree = ""; }; + 628B47C11D03125800E2D828 /* memtable.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = memtable.cc; sourceTree = ""; }; + 628B47C21D03125800E2D828 /* memtable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = memtable.h; sourceTree = ""; }; + 628B47C31D03125800E2D828 /* memtable_allocator.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = memtable_allocator.cc; sourceTree = ""; }; + 628B47C41D03125800E2D828 /* memtable_allocator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = memtable_allocator.h; sourceTree = ""; }; + 628B47C51D03125800E2D828 /* memtable_list.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = memtable_list.cc; sourceTree = ""; }; + 628B47C61D03125800E2D828 /* memtable_list.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = memtable_list.h; sourceTree = ""; }; + 628B47C91D03125800E2D828 /* merge_context.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = merge_context.h; sourceTree = ""; }; + 628B47CA1D03125800E2D828 /* merge_helper.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = merge_helper.cc; sourceTree = ""; }; + 628B47CB1D03125800E2D828 /* merge_helper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = merge_helper.h; sourceTree = ""; }; + 628B47CD1D03125800E2D828 /* merge_operator.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = merge_operator.cc; sourceTree = ""; }; + 628B47D31D03125800E2D828 /* repair.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = repair.cc; sourceTree = ""; }; + 628B47D41D03125800E2D828 /* skiplist.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = skiplist.h; sourceTree = ""; }; + 628B47D61D03125800E2D828 /* slice.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slice.cc; sourceTree = ""; }; + 628B47D71D03125800E2D828 /* snapshot_impl.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = snapshot_impl.cc; sourceTree = ""; }; + 628B47D81D03125800E2D828 /* snapshot_impl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = snapshot_impl.h; sourceTree = ""; }; + 628B47D91D03125800E2D828 /* table_cache.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = table_cache.cc; sourceTree = ""; }; + 628B47DA1D03125800E2D828 /* table_cache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = table_cache.h; sourceTree = ""; }; + 628B47DB1D03125800E2D828 /* table_properties_collector.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = table_properties_collector.cc; sourceTree = ""; }; + 628B47DC1D03125800E2D828 /* table_properties_collector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = table_properties_collector.h; sourceTree = ""; }; + 628B47DE1D03125800E2D828 /* transaction_log_impl.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = transaction_log_impl.cc; sourceTree = ""; }; + 628B47DF1D03125800E2D828 /* transaction_log_impl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = transaction_log_impl.h; sourceTree = ""; }; + 628B47E01D03125800E2D828 /* version_builder.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = version_builder.cc; sourceTree = ""; }; + 628B47E11D03125800E2D828 /* version_builder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = version_builder.h; sourceTree = ""; }; + 628B47E31D03125800E2D828 /* version_edit.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = version_edit.cc; sourceTree = ""; }; + 628B47E41D03125800E2D828 /* version_edit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = version_edit.h; sourceTree = ""; }; + 628B47E61D03125800E2D828 /* version_set.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = version_set.cc; sourceTree = ""; }; + 628B47E71D03125800E2D828 /* version_set.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = version_set.h; sourceTree = ""; }; + 628B47E91D03125800E2D828 /* wal_manager.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = wal_manager.cc; sourceTree = ""; }; + 628B47EA1D03125800E2D828 /* wal_manager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = wal_manager.h; sourceTree = ""; }; + 628B47EC1D03125800E2D828 /* write_batch.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = write_batch.cc; sourceTree = ""; }; + 628B47ED1D03125800E2D828 /* write_batch_base.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = write_batch_base.cc; sourceTree = ""; }; + 628B47EE1D03125800E2D828 /* write_batch_internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = write_batch_internal.h; sourceTree = ""; }; + 628B47F01D03125800E2D828 /* write_callback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = write_callback.h; sourceTree = ""; }; + 628B47F21D03125800E2D828 /* write_controller.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = write_controller.cc; sourceTree = ""; }; + 628B47F31D03125800E2D828 /* write_controller.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = write_controller.h; sourceTree = ""; }; + 628B47F51D03125800E2D828 /* write_thread.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = write_thread.cc; sourceTree = ""; }; + 628B47F61D03125800E2D828 /* write_thread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = write_thread.h; sourceTree = ""; }; + 628B47F71D03125800E2D828 /* writebuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = writebuffer.h; sourceTree = ""; }; + 628B480F1D03125800E2D828 /* env_hdfs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = env_hdfs.h; sourceTree = ""; }; + 628B48151D03125800E2D828 /* c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = c.h; sourceTree = ""; }; + 628B48161D03125800E2D828 /* cache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cache.h; sourceTree = ""; }; + 628B48171D03125800E2D828 /* compaction_filter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = compaction_filter.h; sourceTree = ""; }; + 628B48181D03125800E2D828 /* compaction_job_stats.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = compaction_job_stats.h; sourceTree = ""; }; + 628B48191D03125800E2D828 /* comparator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = comparator.h; sourceTree = ""; }; + 628B481A1D03125800E2D828 /* convenience.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = convenience.h; sourceTree = ""; }; + 628B481B1D03125800E2D828 /* db.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = db.h; sourceTree = ""; }; + 628B481D1D03125800E2D828 /* db_dump_tool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = db_dump_tool.h; sourceTree = ""; }; + 628B481E1D03125800E2D828 /* env.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = env.h; sourceTree = ""; }; + 628B481F1D03125800E2D828 /* experimental.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = experimental.h; sourceTree = ""; }; + 628B48201D03125800E2D828 /* filter_policy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = filter_policy.h; sourceTree = ""; }; + 628B48211D03125800E2D828 /* flush_block_policy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = flush_block_policy.h; sourceTree = ""; }; + 628B48221D03125800E2D828 /* immutable_options.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = immutable_options.h; sourceTree = ""; }; + 628B48231D03125800E2D828 /* iostats_context.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = iostats_context.h; sourceTree = ""; }; + 628B48241D03125800E2D828 /* iterator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = iterator.h; sourceTree = ""; }; + 628B48251D03125800E2D828 /* ldb_tool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ldb_tool.h; sourceTree = ""; }; + 628B48261D03125800E2D828 /* listener.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = listener.h; sourceTree = ""; }; + 628B48271D03125800E2D828 /* memtablerep.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = memtablerep.h; sourceTree = ""; }; + 628B48281D03125800E2D828 /* merge_operator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = merge_operator.h; sourceTree = ""; }; + 628B48291D03125800E2D828 /* metadata.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = metadata.h; sourceTree = ""; }; + 628B482A1D03125800E2D828 /* options.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = options.h; sourceTree = ""; }; + 628B482B1D03125800E2D828 /* perf_context.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = perf_context.h; sourceTree = ""; }; + 628B482C1D03125800E2D828 /* perf_level.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = perf_level.h; sourceTree = ""; }; + 628B482D1D03125800E2D828 /* rate_limiter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rate_limiter.h; sourceTree = ""; }; + 628B482E1D03125800E2D828 /* slice.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = slice.h; sourceTree = ""; }; + 628B482F1D03125800E2D828 /* slice_transform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = slice_transform.h; sourceTree = ""; }; + 628B48301D03125800E2D828 /* snapshot.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = snapshot.h; sourceTree = ""; }; + 628B48311D03125800E2D828 /* sst_dump_tool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sst_dump_tool.h; sourceTree = ""; }; + 628B48321D03125800E2D828 /* sst_file_manager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sst_file_manager.h; sourceTree = ""; }; + 628B48331D03125800E2D828 /* sst_file_writer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sst_file_writer.h; sourceTree = ""; }; + 628B48341D03125800E2D828 /* statistics.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = statistics.h; sourceTree = ""; }; + 628B48351D03125800E2D828 /* status.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = status.h; sourceTree = ""; }; + 628B48361D03125800E2D828 /* table.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = table.h; sourceTree = ""; }; + 628B48371D03125800E2D828 /* table_properties.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = table_properties.h; sourceTree = ""; }; + 628B48381D03125800E2D828 /* thread_status.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = thread_status.h; sourceTree = ""; }; + 628B48391D03125800E2D828 /* transaction_log.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = transaction_log.h; sourceTree = ""; }; + 628B483A1D03125800E2D828 /* types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = types.h; sourceTree = ""; }; + 628B483B1D03125800E2D828 /* universal_compaction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = universal_compaction.h; sourceTree = ""; }; + 628B483D1D03125800E2D828 /* backupable_db.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = backupable_db.h; sourceTree = ""; }; + 628B483E1D03125800E2D828 /* checkpoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = checkpoint.h; sourceTree = ""; }; + 628B483F1D03125800E2D828 /* convenience.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = convenience.h; sourceTree = ""; }; + 628B48401D03125800E2D828 /* db_ttl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = db_ttl.h; sourceTree = ""; }; + 628B48411D03125800E2D828 /* document_db.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = document_db.h; sourceTree = ""; }; + 628B48421D03125800E2D828 /* env_mirror.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = env_mirror.h; sourceTree = ""; }; + 628B48431D03125800E2D828 /* flashcache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = flashcache.h; sourceTree = ""; }; + 628B48441D03125800E2D828 /* geo_db.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = geo_db.h; sourceTree = ""; }; + 628B48451D03125800E2D828 /* info_log_finder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = info_log_finder.h; sourceTree = ""; }; + 628B48461D03125800E2D828 /* json_document.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = json_document.h; sourceTree = ""; }; + 628B48471D03125800E2D828 /* leveldb_options.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = leveldb_options.h; sourceTree = ""; }; + 628B48481D03125800E2D828 /* memory_util.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = memory_util.h; sourceTree = ""; }; + 628B48491D03125800E2D828 /* optimistic_transaction_db.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = optimistic_transaction_db.h; sourceTree = ""; }; + 628B484A1D03125800E2D828 /* options_util.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = options_util.h; sourceTree = ""; }; + 628B484B1D03125800E2D828 /* spatial_db.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = spatial_db.h; sourceTree = ""; }; + 628B484C1D03125800E2D828 /* stackable_db.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = stackable_db.h; sourceTree = ""; }; + 628B484D1D03125800E2D828 /* table_properties_collectors.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = table_properties_collectors.h; sourceTree = ""; }; + 628B484E1D03125800E2D828 /* transaction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = transaction.h; sourceTree = ""; }; + 628B484F1D03125800E2D828 /* transaction_db.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = transaction_db.h; sourceTree = ""; }; + 628B48501D03125800E2D828 /* transaction_db_mutex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = transaction_db_mutex.h; sourceTree = ""; }; + 628B48511D03125800E2D828 /* utility_db.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = utility_db.h; sourceTree = ""; }; + 628B48521D03125800E2D828 /* write_batch_with_index.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = write_batch_with_index.h; sourceTree = ""; }; + 628B48531D03125800E2D828 /* version.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = version.h; sourceTree = ""; }; + 628B48541D03125800E2D828 /* wal_filter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = wal_filter.h; sourceTree = ""; }; + 628B48551D03125800E2D828 /* write_batch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = write_batch.h; sourceTree = ""; }; + 628B48561D03125800E2D828 /* write_batch_base.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = write_batch_base.h; sourceTree = ""; }; + 628B49201D03125900E2D828 /* hash_cuckoo_rep.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = hash_cuckoo_rep.cc; sourceTree = ""; }; + 628B49211D03125900E2D828 /* hash_cuckoo_rep.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = hash_cuckoo_rep.h; sourceTree = ""; }; + 628B49221D03125900E2D828 /* hash_linklist_rep.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = hash_linklist_rep.cc; sourceTree = ""; }; + 628B49231D03125900E2D828 /* hash_linklist_rep.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = hash_linklist_rep.h; sourceTree = ""; }; + 628B49241D03125900E2D828 /* hash_skiplist_rep.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = hash_skiplist_rep.cc; sourceTree = ""; }; + 628B49251D03125900E2D828 /* hash_skiplist_rep.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = hash_skiplist_rep.h; sourceTree = ""; }; + 628B49261D03125900E2D828 /* skiplistrep.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = skiplistrep.cc; sourceTree = ""; }; + 628B49271D03125900E2D828 /* stl_wrappers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = stl_wrappers.h; sourceTree = ""; }; + 628B49281D03125900E2D828 /* vectorrep.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vectorrep.cc; sourceTree = ""; }; + 628B492C1D03125900E2D828 /* likely.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = likely.h; sourceTree = ""; }; + 628B492D1D03125900E2D828 /* port.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = port.h; sourceTree = ""; }; + 628B492E1D03125900E2D828 /* port_example.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = port_example.h; sourceTree = ""; }; + 628B492F1D03125900E2D828 /* port_posix.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = port_posix.cc; sourceTree = ""; }; + 628B49301D03125900E2D828 /* port_posix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = port_posix.h; sourceTree = ""; }; + 628B49321D03125900E2D828 /* stack_trace.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = stack_trace.cc; sourceTree = ""; }; + 628B49331D03125900E2D828 /* stack_trace.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = stack_trace.h; sourceTree = ""; }; + 628B49341D03125900E2D828 /* sys_time.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sys_time.h; sourceTree = ""; }; + 628B49351D03125900E2D828 /* util_logger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = util_logger.h; sourceTree = ""; }; + 628B49401D03125900E2D828 /* adaptive_table_factory.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = adaptive_table_factory.cc; sourceTree = ""; }; + 628B49411D03125900E2D828 /* adaptive_table_factory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = adaptive_table_factory.h; sourceTree = ""; }; + 628B49421D03125900E2D828 /* block.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = block.cc; sourceTree = ""; }; + 628B49431D03125900E2D828 /* block.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = block.h; sourceTree = ""; }; + 628B49441D03125900E2D828 /* block_based_filter_block.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = block_based_filter_block.cc; sourceTree = ""; }; + 628B49451D03125900E2D828 /* block_based_filter_block.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = block_based_filter_block.h; sourceTree = ""; }; + 628B49471D03125900E2D828 /* block_based_table_builder.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = block_based_table_builder.cc; sourceTree = ""; }; + 628B49481D03125900E2D828 /* block_based_table_builder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = block_based_table_builder.h; sourceTree = ""; }; + 628B49491D03125900E2D828 /* block_based_table_factory.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = block_based_table_factory.cc; sourceTree = ""; }; + 628B494A1D03125900E2D828 /* block_based_table_factory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = block_based_table_factory.h; sourceTree = ""; }; + 628B494B1D03125900E2D828 /* block_based_table_reader.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = block_based_table_reader.cc; sourceTree = ""; }; + 628B494C1D03125900E2D828 /* block_based_table_reader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = block_based_table_reader.h; sourceTree = ""; }; + 628B494D1D03125900E2D828 /* block_builder.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = block_builder.cc; sourceTree = ""; }; + 628B494E1D03125900E2D828 /* block_builder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = block_builder.h; sourceTree = ""; }; + 628B494F1D03125900E2D828 /* block_hash_index.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = block_hash_index.cc; sourceTree = ""; }; + 628B49501D03125900E2D828 /* block_hash_index.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = block_hash_index.h; sourceTree = ""; }; + 628B49521D03125900E2D828 /* block_prefix_index.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = block_prefix_index.cc; sourceTree = ""; }; + 628B49531D03125900E2D828 /* block_prefix_index.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = block_prefix_index.h; sourceTree = ""; }; + 628B49551D03125900E2D828 /* bloom_block.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = bloom_block.cc; sourceTree = ""; }; + 628B49561D03125900E2D828 /* bloom_block.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = bloom_block.h; sourceTree = ""; }; + 628B49571D03125900E2D828 /* cuckoo_table_builder.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cuckoo_table_builder.cc; sourceTree = ""; }; + 628B49581D03125900E2D828 /* cuckoo_table_builder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cuckoo_table_builder.h; sourceTree = ""; }; + 628B495A1D03125900E2D828 /* cuckoo_table_factory.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cuckoo_table_factory.cc; sourceTree = ""; }; + 628B495B1D03125900E2D828 /* cuckoo_table_factory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cuckoo_table_factory.h; sourceTree = ""; }; + 628B495C1D03125900E2D828 /* cuckoo_table_reader.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cuckoo_table_reader.cc; sourceTree = ""; }; + 628B495D1D03125900E2D828 /* cuckoo_table_reader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cuckoo_table_reader.h; sourceTree = ""; }; + 628B495F1D03125900E2D828 /* filter_block.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = filter_block.h; sourceTree = ""; }; + 628B49601D03125900E2D828 /* flush_block_policy.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = flush_block_policy.cc; sourceTree = ""; }; + 628B49611D03125900E2D828 /* format.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = format.cc; sourceTree = ""; }; + 628B49621D03125900E2D828 /* format.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = format.h; sourceTree = ""; }; + 628B49631D03125900E2D828 /* full_filter_block.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = full_filter_block.cc; sourceTree = ""; }; + 628B49641D03125900E2D828 /* full_filter_block.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = full_filter_block.h; sourceTree = ""; }; + 628B49661D03125900E2D828 /* get_context.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = get_context.cc; sourceTree = ""; }; + 628B49671D03125900E2D828 /* get_context.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = get_context.h; sourceTree = ""; }; + 628B49681D03125900E2D828 /* internal_iterator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = internal_iterator.h; sourceTree = ""; }; + 628B49691D03125900E2D828 /* iter_heap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = iter_heap.h; sourceTree = ""; }; + 628B496A1D03125900E2D828 /* iterator.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = iterator.cc; sourceTree = ""; }; + 628B496B1D03125900E2D828 /* iterator_wrapper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = iterator_wrapper.h; sourceTree = ""; }; + 628B496C1D03125900E2D828 /* merger.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = merger.cc; sourceTree = ""; }; + 628B496D1D03125900E2D828 /* merger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = merger.h; sourceTree = ""; }; + 628B496F1D03125900E2D828 /* meta_blocks.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = meta_blocks.cc; sourceTree = ""; }; + 628B49701D03125900E2D828 /* meta_blocks.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = meta_blocks.h; sourceTree = ""; }; + 628B49731D03125900E2D828 /* plain_table_builder.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = plain_table_builder.cc; sourceTree = ""; }; + 628B49741D03125900E2D828 /* plain_table_builder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = plain_table_builder.h; sourceTree = ""; }; + 628B49751D03125900E2D828 /* plain_table_factory.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = plain_table_factory.cc; sourceTree = ""; }; + 628B49761D03125900E2D828 /* plain_table_factory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = plain_table_factory.h; sourceTree = ""; }; + 628B49771D03125900E2D828 /* plain_table_index.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = plain_table_index.cc; sourceTree = ""; }; + 628B49781D03125900E2D828 /* plain_table_index.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = plain_table_index.h; sourceTree = ""; }; + 628B49791D03125900E2D828 /* plain_table_key_coding.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = plain_table_key_coding.cc; sourceTree = ""; }; + 628B497A1D03125900E2D828 /* plain_table_key_coding.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = plain_table_key_coding.h; sourceTree = ""; }; + 628B497B1D03125900E2D828 /* plain_table_reader.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = plain_table_reader.cc; sourceTree = ""; }; + 628B497C1D03125900E2D828 /* plain_table_reader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = plain_table_reader.h; sourceTree = ""; }; + 628B497D1D03125900E2D828 /* scoped_arena_iterator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = scoped_arena_iterator.h; sourceTree = ""; }; + 628B497E1D03125900E2D828 /* sst_file_writer.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = sst_file_writer.cc; sourceTree = ""; }; + 628B497F1D03125900E2D828 /* table_builder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = table_builder.h; sourceTree = ""; }; + 628B49801D03125900E2D828 /* table_properties.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = table_properties.cc; sourceTree = ""; }; + 628B49811D03125900E2D828 /* table_properties_internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = table_properties_internal.h; sourceTree = ""; }; + 628B49821D03125900E2D828 /* table_reader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = table_reader.h; sourceTree = ""; }; + 628B49851D03125900E2D828 /* two_level_iterator.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = two_level_iterator.cc; sourceTree = ""; }; + 628B49861D03125900E2D828 /* two_level_iterator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = two_level_iterator.h; sourceTree = ""; }; + 628B498A1D03125900E2D828 /* FbsonDocument.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FbsonDocument.h; sourceTree = ""; }; + 628B498B1D03125900E2D828 /* FbsonJsonParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FbsonJsonParser.h; sourceTree = ""; }; + 628B498C1D03125900E2D828 /* FbsonStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FbsonStream.h; sourceTree = ""; }; + 628B498D1D03125900E2D828 /* FbsonUtil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FbsonUtil.h; sourceTree = ""; }; + 628B498E1D03125900E2D828 /* FbsonWriter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FbsonWriter.h; sourceTree = ""; }; + 628B49901D03125900E2D828 /* flashcache_ioctl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = flashcache_ioctl.h; sourceTree = ""; }; + 628B49CA1D03125900E2D828 /* aligned_buffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aligned_buffer.h; sourceTree = ""; }; + 628B49CB1D03125900E2D828 /* allocator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = allocator.h; sourceTree = ""; }; + 628B49CC1D03125900E2D828 /* arena.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = arena.cc; sourceTree = ""; }; + 628B49CD1D03125900E2D828 /* arena.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = arena.h; sourceTree = ""; }; + 628B49CF1D03125900E2D828 /* autovector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = autovector.h; sourceTree = ""; }; + 628B49D11D03125900E2D828 /* bloom.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = bloom.cc; sourceTree = ""; }; + 628B49D31D03125900E2D828 /* build_version.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = build_version.cc; sourceTree = ""; }; + 628B49D41D03125900E2D828 /* build_version.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = build_version.h; sourceTree = ""; }; + 628B49D51D03125900E2D828 /* cache.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cache.cc; sourceTree = ""; }; + 628B49D81D03125900E2D828 /* channel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = channel.h; sourceTree = ""; }; + 628B49D91D03125900E2D828 /* coding.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = coding.cc; sourceTree = ""; }; + 628B49DA1D03125900E2D828 /* coding.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = coding.h; sourceTree = ""; }; + 628B49DC1D03125900E2D828 /* compaction_job_stats_impl.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = compaction_job_stats_impl.cc; sourceTree = ""; }; + 628B49DD1D03125900E2D828 /* comparator.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = comparator.cc; sourceTree = ""; }; + 628B49DE1D03125900E2D828 /* compression.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = compression.h; sourceTree = ""; }; + 628B49DF1D03125900E2D828 /* concurrent_arena.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = concurrent_arena.cc; sourceTree = ""; }; + 628B49E01D03125900E2D828 /* concurrent_arena.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = concurrent_arena.h; sourceTree = ""; }; + 628B49E11D03125900E2D828 /* crc32c.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = crc32c.cc; sourceTree = ""; }; + 628B49E21D03125900E2D828 /* crc32c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = crc32c.h; sourceTree = ""; }; + 628B49E41D03125900E2D828 /* delete_scheduler.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = delete_scheduler.cc; sourceTree = ""; }; + 628B49E51D03125900E2D828 /* delete_scheduler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = delete_scheduler.h; sourceTree = ""; }; + 628B49E71D03125900E2D828 /* dynamic_bloom.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = dynamic_bloom.cc; sourceTree = ""; }; + 628B49E81D03125900E2D828 /* dynamic_bloom.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dynamic_bloom.h; sourceTree = ""; }; + 628B49EA1D03125900E2D828 /* env.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = env.cc; sourceTree = ""; }; + 628B49EB1D03125900E2D828 /* env_hdfs.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = env_hdfs.cc; sourceTree = ""; }; + 628B49EC1D03125900E2D828 /* env_posix.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = env_posix.cc; sourceTree = ""; }; + 628B49EE1D03125900E2D828 /* event_logger.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = event_logger.cc; sourceTree = ""; }; + 628B49EF1D03125900E2D828 /* event_logger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = event_logger.h; sourceTree = ""; }; + 628B49F11D03125900E2D828 /* file_reader_writer.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = file_reader_writer.cc; sourceTree = ""; }; + 628B49F21D03125900E2D828 /* file_reader_writer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = file_reader_writer.h; sourceTree = ""; }; + 628B49F41D03125900E2D828 /* file_util.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = file_util.cc; sourceTree = ""; }; + 628B49F51D03125900E2D828 /* file_util.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = file_util.h; sourceTree = ""; }; + 628B49F71D03125900E2D828 /* filter_policy.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = filter_policy.cc; sourceTree = ""; }; + 628B49F81D03125900E2D828 /* hash.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = hash.cc; sourceTree = ""; }; + 628B49F91D03125900E2D828 /* hash.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = hash.h; sourceTree = ""; }; + 628B49FA1D03125900E2D828 /* heap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = heap.h; sourceTree = ""; }; + 628B49FC1D03125900E2D828 /* histogram.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = histogram.cc; sourceTree = ""; }; + 628B49FD1D03125900E2D828 /* histogram.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = histogram.h; sourceTree = ""; }; + 628B49FF1D03125900E2D828 /* instrumented_mutex.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = instrumented_mutex.cc; sourceTree = ""; }; + 628B4A001D03125900E2D828 /* instrumented_mutex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = instrumented_mutex.h; sourceTree = ""; }; + 628B4A011D03125900E2D828 /* io_posix.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = io_posix.cc; sourceTree = ""; }; + 628B4A021D03125900E2D828 /* io_posix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = io_posix.h; sourceTree = ""; }; + 628B4A031D03125900E2D828 /* iostats_context.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = iostats_context.cc; sourceTree = ""; }; + 628B4A041D03125900E2D828 /* iostats_context_imp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = iostats_context_imp.h; sourceTree = ""; }; + 628B4A061D03125900E2D828 /* kv_map.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = kv_map.h; sourceTree = ""; }; + 628B4A071D03125900E2D828 /* log_buffer.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = log_buffer.cc; sourceTree = ""; }; + 628B4A081D03125900E2D828 /* log_buffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = log_buffer.h; sourceTree = ""; }; + 628B4A0A1D03125900E2D828 /* logging.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = logging.cc; sourceTree = ""; }; + 628B4A0B1D03125900E2D828 /* logging.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = logging.h; sourceTree = ""; }; + 628B4A0C1D03125900E2D828 /* memenv.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = memenv.cc; sourceTree = ""; }; + 628B4A111D03125900E2D828 /* murmurhash.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = murmurhash.cc; sourceTree = ""; }; + 628B4A121D03125900E2D828 /* murmurhash.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = murmurhash.h; sourceTree = ""; }; + 628B4A131D03125900E2D828 /* mutable_cf_options.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = mutable_cf_options.cc; sourceTree = ""; }; + 628B4A141D03125900E2D828 /* mutable_cf_options.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mutable_cf_options.h; sourceTree = ""; }; + 628B4A151D03125900E2D828 /* mutexlock.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mutexlock.h; sourceTree = ""; }; + 628B4A161D03125900E2D828 /* options.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = options.cc; sourceTree = ""; }; + 628B4A171D03125900E2D828 /* options_builder.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = options_builder.cc; sourceTree = ""; }; + 628B4A181D03125900E2D828 /* options_helper.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = options_helper.cc; sourceTree = ""; }; + 628B4A191D03125900E2D828 /* options_helper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = options_helper.h; sourceTree = ""; }; + 628B4A1A1D03125900E2D828 /* options_parser.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = options_parser.cc; sourceTree = ""; }; + 628B4A1B1D03125900E2D828 /* options_parser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = options_parser.h; sourceTree = ""; }; + 628B4A1C1D03125900E2D828 /* options_sanity_check.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = options_sanity_check.cc; sourceTree = ""; }; + 628B4A1D1D03125900E2D828 /* options_sanity_check.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = options_sanity_check.h; sourceTree = ""; }; + 628B4A1F1D03125900E2D828 /* perf_context.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = perf_context.cc; sourceTree = ""; }; + 628B4A201D03125900E2D828 /* perf_context_imp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = perf_context_imp.h; sourceTree = ""; }; + 628B4A211D03125900E2D828 /* perf_level.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = perf_level.cc; sourceTree = ""; }; + 628B4A221D03125900E2D828 /* perf_level_imp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = perf_level_imp.h; sourceTree = ""; }; + 628B4A231D03125900E2D828 /* perf_step_timer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = perf_step_timer.h; sourceTree = ""; }; + 628B4A241D03125900E2D828 /* posix_logger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = posix_logger.h; sourceTree = ""; }; + 628B4A251D03125900E2D828 /* random.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = random.cc; sourceTree = ""; }; + 628B4A261D03125900E2D828 /* random.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = random.h; sourceTree = ""; }; + 628B4A271D03125900E2D828 /* rate_limiter.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = rate_limiter.cc; sourceTree = ""; }; + 628B4A281D03125900E2D828 /* rate_limiter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rate_limiter.h; sourceTree = ""; }; + 628B4A2A1D03125900E2D828 /* slice.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slice.cc; sourceTree = ""; }; + 628B4A2C1D03125900E2D828 /* sst_file_manager_impl.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = sst_file_manager_impl.cc; sourceTree = ""; }; + 628B4A2D1D03125900E2D828 /* sst_file_manager_impl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sst_file_manager_impl.h; sourceTree = ""; }; + 628B4A2E1D03125900E2D828 /* statistics.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = statistics.cc; sourceTree = ""; }; + 628B4A2F1D03125900E2D828 /* statistics.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = statistics.h; sourceTree = ""; }; + 628B4A301D03125900E2D828 /* status.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = status.cc; sourceTree = ""; }; + 628B4A311D03125900E2D828 /* status_message.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = status_message.cc; sourceTree = ""; }; + 628B4A321D03125900E2D828 /* stop_watch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = stop_watch.h; sourceTree = ""; }; + 628B4A331D03125900E2D828 /* string_util.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = string_util.cc; sourceTree = ""; }; + 628B4A341D03125900E2D828 /* string_util.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = string_util.h; sourceTree = ""; }; + 628B4A351D03125900E2D828 /* sync_point.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = sync_point.cc; sourceTree = ""; }; + 628B4A361D03125900E2D828 /* sync_point.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sync_point.h; sourceTree = ""; }; + 628B4A3C1D03125900E2D828 /* thread_local.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = thread_local.cc; sourceTree = ""; }; + 628B4A3D1D03125900E2D828 /* thread_local.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = thread_local.h; sourceTree = ""; }; + 628B4A3F1D03125900E2D828 /* thread_operation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = thread_operation.h; sourceTree = ""; }; + 628B4A401D03125900E2D828 /* thread_posix.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = thread_posix.cc; sourceTree = ""; }; + 628B4A411D03125900E2D828 /* thread_posix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = thread_posix.h; sourceTree = ""; }; + 628B4A421D03125900E2D828 /* thread_status_impl.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = thread_status_impl.cc; sourceTree = ""; }; + 628B4A431D03125900E2D828 /* thread_status_updater.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = thread_status_updater.cc; sourceTree = ""; }; + 628B4A441D03125900E2D828 /* thread_status_updater.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = thread_status_updater.h; sourceTree = ""; }; + 628B4A451D03125900E2D828 /* thread_status_updater_debug.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = thread_status_updater_debug.cc; sourceTree = ""; }; + 628B4A461D03125900E2D828 /* thread_status_util.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = thread_status_util.cc; sourceTree = ""; }; + 628B4A471D03125900E2D828 /* thread_status_util.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = thread_status_util.h; sourceTree = ""; }; + 628B4A481D03125900E2D828 /* thread_status_util_debug.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = thread_status_util_debug.cc; sourceTree = ""; }; + 628B4A491D03125900E2D828 /* xfunc.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = xfunc.cc; sourceTree = ""; }; + 628B4A4A1D03125900E2D828 /* xfunc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = xfunc.h; sourceTree = ""; }; + 628B4A4B1D03125900E2D828 /* xxhash.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = xxhash.cc; sourceTree = ""; }; + 628B4A4C1D03125900E2D828 /* xxhash.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = xxhash.h; sourceTree = ""; }; + 628B4A4F1D03125900E2D828 /* backupable_db.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = backupable_db.cc; sourceTree = ""; }; + 628B4A521D03125900E2D828 /* checkpoint.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = checkpoint.cc; sourceTree = ""; }; + 628B4A561D03125900E2D828 /* remove_emptyvalue_compactionfilter.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = remove_emptyvalue_compactionfilter.cc; sourceTree = ""; }; + 628B4A571D03125900E2D828 /* remove_emptyvalue_compactionfilter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = remove_emptyvalue_compactionfilter.h; sourceTree = ""; }; + 628B4A591D03125900E2D828 /* info_log_finder.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = info_log_finder.cc; sourceTree = ""; }; + 628B4A5B1D03125900E2D828 /* document_db.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = document_db.cc; sourceTree = ""; }; + 628B4A5D1D03125900E2D828 /* json_document.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = json_document.cc; sourceTree = ""; }; + 628B4A5E1D03125900E2D828 /* json_document_builder.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = json_document_builder.cc; sourceTree = ""; }; + 628B4A601D03125900E2D828 /* env_mirror.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = env_mirror.cc; sourceTree = ""; }; + 628B4A631D03125900E2D828 /* flashcache.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = flashcache.cc; sourceTree = ""; }; + 628B4A641D03125900E2D828 /* flashcache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = flashcache.h; sourceTree = ""; }; + 628B4A661D03125900E2D828 /* geodb_impl.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = geodb_impl.cc; sourceTree = ""; }; + 628B4A671D03125900E2D828 /* geodb_impl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = geodb_impl.h; sourceTree = ""; }; + 628B4A6A1D03125900E2D828 /* leveldb_options.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = leveldb_options.cc; sourceTree = ""; }; + 628B4A6D1D03125900E2D828 /* memory_util.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = memory_util.cc; sourceTree = ""; }; + 628B4A6F1D03125900E2D828 /* put.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = put.cc; sourceTree = ""; }; + 628B4A711D03125900E2D828 /* stringappend.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = stringappend.cc; sourceTree = ""; }; + 628B4A721D03125900E2D828 /* stringappend.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = stringappend.h; sourceTree = ""; }; + 628B4A731D03125900E2D828 /* stringappend2.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = stringappend2.cc; sourceTree = ""; }; + 628B4A741D03125900E2D828 /* stringappend2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = stringappend2.h; sourceTree = ""; }; + 628B4A761D03125900E2D828 /* uint64add.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = uint64add.cc; sourceTree = ""; }; + 628B4A771D03125900E2D828 /* merge_operators.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = merge_operators.h; sourceTree = ""; }; + 628B4A791D03125900E2D828 /* options_util.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = options_util.cc; sourceTree = ""; }; + 628B4A7D1D03125900E2D828 /* redis_list_exception.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = redis_list_exception.h; sourceTree = ""; }; + 628B4A7E1D03125900E2D828 /* redis_list_iterator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = redis_list_iterator.h; sourceTree = ""; }; + 628B4A7F1D03125900E2D828 /* redis_lists.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = redis_lists.cc; sourceTree = ""; }; + 628B4A801D03125900E2D828 /* redis_lists.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = redis_lists.h; sourceTree = ""; }; + 628B4A831D03125900E2D828 /* spatial_db.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = spatial_db.cc; sourceTree = ""; }; + 628B4A851D03125900E2D828 /* utils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = utils.h; sourceTree = ""; }; + 628B4A871D03125900E2D828 /* compact_on_deletion_collector.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = compact_on_deletion_collector.cc; sourceTree = ""; }; + 628B4A881D03125900E2D828 /* compact_on_deletion_collector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = compact_on_deletion_collector.h; sourceTree = ""; }; + 628B4A8B1D03125900E2D828 /* optimistic_transaction_db_impl.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = optimistic_transaction_db_impl.cc; sourceTree = ""; }; + 628B4A8C1D03125900E2D828 /* optimistic_transaction_db_impl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = optimistic_transaction_db_impl.h; sourceTree = ""; }; + 628B4A8D1D03125900E2D828 /* optimistic_transaction_impl.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = optimistic_transaction_impl.cc; sourceTree = ""; }; + 628B4A8E1D03125900E2D828 /* optimistic_transaction_impl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = optimistic_transaction_impl.h; sourceTree = ""; }; + 628B4A901D03125900E2D828 /* transaction_base.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = transaction_base.cc; sourceTree = ""; }; + 628B4A911D03125900E2D828 /* transaction_base.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = transaction_base.h; sourceTree = ""; }; + 628B4A921D03125900E2D828 /* transaction_db_impl.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = transaction_db_impl.cc; sourceTree = ""; }; + 628B4A931D03125900E2D828 /* transaction_db_impl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = transaction_db_impl.h; sourceTree = ""; }; + 628B4A941D03125900E2D828 /* transaction_db_mutex_impl.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = transaction_db_mutex_impl.cc; sourceTree = ""; }; + 628B4A951D03125900E2D828 /* transaction_db_mutex_impl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = transaction_db_mutex_impl.h; sourceTree = ""; }; + 628B4A961D03125900E2D828 /* transaction_impl.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = transaction_impl.cc; sourceTree = ""; }; + 628B4A971D03125900E2D828 /* transaction_impl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = transaction_impl.h; sourceTree = ""; }; + 628B4A981D03125900E2D828 /* transaction_lock_mgr.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = transaction_lock_mgr.cc; sourceTree = ""; }; + 628B4A991D03125900E2D828 /* transaction_lock_mgr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = transaction_lock_mgr.h; sourceTree = ""; }; + 628B4A9B1D03125900E2D828 /* transaction_util.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = transaction_util.cc; sourceTree = ""; }; + 628B4A9C1D03125900E2D828 /* transaction_util.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = transaction_util.h; sourceTree = ""; }; + 628B4A9E1D03125900E2D828 /* db_ttl_impl.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = db_ttl_impl.cc; sourceTree = ""; }; + 628B4A9F1D03125900E2D828 /* db_ttl_impl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = db_ttl_impl.h; sourceTree = ""; }; + 628B4AA21D03125900E2D828 /* write_batch_with_index.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = write_batch_with_index.cc; sourceTree = ""; }; + 628B4AA31D03125900E2D828 /* write_batch_with_index_internal.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = write_batch_with_index_internal.cc; sourceTree = ""; }; + 628B4AA41D03125900E2D828 /* write_batch_with_index_internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = write_batch_with_index_internal.h; sourceTree = ""; }; 628C51C71A3BD08500B96F8F /* RocksDBSnapshotUnavailable.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RocksDBSnapshotUnavailable.h; sourceTree = ""; }; 629416621A69DFB000AA0498 /* RocksDBPrefixExtractorTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RocksDBPrefixExtractorTests.swift; sourceTree = ""; }; 6299F80C1A17B28200123F56 /* RocksDB.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RocksDB.h; sourceTree = ""; }; @@ -695,8 +1522,6 @@ 6299F81A1A17B28200123F56 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 6299F8551A17B7AD00123F56 /* RocksDBBasicTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RocksDBBasicTests.mm; sourceTree = ""; }; 62A37D131A632316003F6095 /* RocksDBIteratorTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RocksDBIteratorTests.swift; sourceTree = ""; }; - 62A74F821A6037F500BAD95B /* thread_operation.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = thread_operation.h; sourceTree = ""; }; - 62A74F831A60385D00BAD95B /* memtablerep_bench.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = memtablerep_bench.cc; sourceTree = ""; }; 62A74F841A603DDB00BAD95B /* RocksDBColumnFamilyMetadata.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RocksDBColumnFamilyMetadata.h; sourceTree = ""; }; 62A74F851A603DDB00BAD95B /* RocksDBColumnFamilyMetadata.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RocksDBColumnFamilyMetadata.mm; sourceTree = ""; }; 62A8B0571A58C40A0069B4C8 /* ObjectiveRocksTests-iOS.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "ObjectiveRocksTests-iOS.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -711,388 +1536,6 @@ 62AEF9B91A1D5DA900E63E89 /* RocksDBOptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RocksDBOptions.h; sourceTree = ""; }; 62AEF9BA1A1D5DA900E63E89 /* RocksDBOptions.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RocksDBOptions.mm; sourceTree = ""; }; 62E173E51A6AD40E00A00DF3 /* RocksDBBackupTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RocksDBBackupTests.swift; sourceTree = ""; }; - 62EE29021A1ABA1F00486C31 /* AUTHORS */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = AUTHORS; sourceTree = ""; }; - 62EE290F1A1ABA1F00486C31 /* CONTRIBUTING.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = CONTRIBUTING.md; sourceTree = ""; }; - 62EE29141A1ABA1F00486C31 /* builder.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = builder.cc; sourceTree = ""; }; - 62EE29151A1ABA1F00486C31 /* builder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = builder.h; sourceTree = ""; }; - 62EE29171A1ABA1F00486C31 /* c.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = c.cc; sourceTree = ""; }; - 62EE29191A1ABA1F00486C31 /* c_test.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = c_test.c; sourceTree = ""; }; - 62EE291A1A1ABA1F00486C31 /* column_family.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = column_family.cc; sourceTree = ""; }; - 62EE291B1A1ABA1F00486C31 /* column_family.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = column_family.h; sourceTree = ""; }; - 62EE291D1A1ABA1F00486C31 /* column_family_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = column_family_test.cc; sourceTree = ""; }; - 62EE291E1A1ABA1F00486C31 /* compaction.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = compaction.cc; sourceTree = ""; }; - 62EE291F1A1ABA1F00486C31 /* compaction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = compaction.h; sourceTree = ""; }; - 62EE29211A1ABA1F00486C31 /* compaction_job.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = compaction_job.cc; sourceTree = ""; }; - 62EE29221A1ABA1F00486C31 /* compaction_job.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = compaction_job.h; sourceTree = ""; }; - 62EE29241A1ABA1F00486C31 /* compaction_job_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = compaction_job_test.cc; sourceTree = ""; }; - 62EE29251A1ABA1F00486C31 /* compaction_picker.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = compaction_picker.cc; sourceTree = ""; }; - 62EE29261A1ABA1F00486C31 /* compaction_picker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = compaction_picker.h; sourceTree = ""; }; - 62EE29281A1ABA1F00486C31 /* compaction_picker_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = compaction_picker_test.cc; sourceTree = ""; }; - 62EE29291A1ABA1F00486C31 /* comparator_db_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = comparator_db_test.cc; sourceTree = ""; }; - 62EE292A1A1ABA1F00486C31 /* corruption_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = corruption_test.cc; sourceTree = ""; }; - 62EE292B1A1ABA1F00486C31 /* cuckoo_table_db_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cuckoo_table_db_test.cc; sourceTree = ""; }; - 62EE292C1A1ABA1F00486C31 /* db_bench.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = db_bench.cc; sourceTree = ""; }; - 62EE292D1A1ABA1F00486C31 /* db_filesnapshot.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = db_filesnapshot.cc; sourceTree = ""; }; - 62EE292F1A1ABA1F00486C31 /* db_impl.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = db_impl.cc; sourceTree = ""; }; - 62EE29301A1ABA1F00486C31 /* db_impl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = db_impl.h; sourceTree = ""; }; - 62EE29321A1ABA1F00486C31 /* db_impl_debug.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = db_impl_debug.cc; sourceTree = ""; }; - 62EE29341A1ABA1F00486C31 /* db_impl_readonly.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = db_impl_readonly.cc; sourceTree = ""; }; - 62EE29351A1ABA1F00486C31 /* db_impl_readonly.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = db_impl_readonly.h; sourceTree = ""; }; - 62EE29371A1ABA1F00486C31 /* db_iter.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = db_iter.cc; sourceTree = ""; }; - 62EE29381A1ABA1F00486C31 /* db_iter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = db_iter.h; sourceTree = ""; }; - 62EE293A1A1ABA1F00486C31 /* db_iter_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = db_iter_test.cc; sourceTree = ""; }; - 62EE293B1A1ABA1F00486C31 /* db_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = db_test.cc; sourceTree = ""; }; - 62EE293C1A1ABA1F00486C31 /* dbformat.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = dbformat.cc; sourceTree = ""; }; - 62EE293D1A1ABA1F00486C31 /* dbformat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dbformat.h; sourceTree = ""; }; - 62EE293F1A1ABA1F00486C31 /* dbformat_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = dbformat_test.cc; sourceTree = ""; }; - 62EE29401A1ABA1F00486C31 /* deletefile_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = deletefile_test.cc; sourceTree = ""; }; - 62EE29411A1ABA1F00486C31 /* file_indexer.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = file_indexer.cc; sourceTree = ""; }; - 62EE29421A1ABA1F00486C31 /* file_indexer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = file_indexer.h; sourceTree = ""; }; - 62EE29441A1ABA1F00486C31 /* file_indexer_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = file_indexer_test.cc; sourceTree = ""; }; - 62EE29451A1ABA1F00486C31 /* filename.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = filename.cc; sourceTree = ""; }; - 62EE29461A1ABA1F00486C31 /* filename.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = filename.h; sourceTree = ""; }; - 62EE29481A1ABA1F00486C31 /* filename_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = filename_test.cc; sourceTree = ""; }; - 62EE29491A1ABA1F00486C31 /* flush_job.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = flush_job.cc; sourceTree = ""; }; - 62EE294A1A1ABA1F00486C31 /* flush_job.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = flush_job.h; sourceTree = ""; }; - 62EE294C1A1ABA1F00486C31 /* flush_job_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = flush_job_test.cc; sourceTree = ""; }; - 62EE294D1A1ABA1F00486C31 /* flush_scheduler.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = flush_scheduler.cc; sourceTree = ""; }; - 62EE294E1A1ABA1F00486C31 /* flush_scheduler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = flush_scheduler.h; sourceTree = ""; }; - 62EE29501A1ABA1F00486C31 /* forward_iterator.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = forward_iterator.cc; sourceTree = ""; }; - 62EE29511A1ABA1F00486C31 /* forward_iterator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = forward_iterator.h; sourceTree = ""; }; - 62EE29531A1ABA1F00486C31 /* internal_stats.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = internal_stats.cc; sourceTree = ""; }; - 62EE29541A1ABA1F00486C31 /* internal_stats.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = internal_stats.h; sourceTree = ""; }; - 62EE29561A1ABA1F00486C31 /* job_context.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = job_context.h; sourceTree = ""; }; - 62EE29571A1ABA1F00486C31 /* listener_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = listener_test.cc; sourceTree = ""; }; - 62EE29591A1ABA1F00486C31 /* log_format.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = log_format.h; sourceTree = ""; }; - 62EE295A1A1ABA1F00486C31 /* log_reader.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = log_reader.cc; sourceTree = ""; }; - 62EE295B1A1ABA1F00486C31 /* log_reader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = log_reader.h; sourceTree = ""; }; - 62EE295D1A1ABA1F00486C31 /* log_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = log_test.cc; sourceTree = ""; }; - 62EE295E1A1ABA1F00486C31 /* log_writer.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = log_writer.cc; sourceTree = ""; }; - 62EE295F1A1ABA1F00486C31 /* log_writer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = log_writer.h; sourceTree = ""; }; - 62EE29611A1ABA1F00486C31 /* memtable.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = memtable.cc; sourceTree = ""; }; - 62EE29621A1ABA1F00486C31 /* memtable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = memtable.h; sourceTree = ""; }; - 62EE29641A1ABA1F00486C31 /* memtable_list.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = memtable_list.cc; sourceTree = ""; }; - 62EE29651A1ABA1F00486C31 /* memtable_list.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = memtable_list.h; sourceTree = ""; }; - 62EE29671A1ABA1F00486C31 /* merge_context.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = merge_context.h; sourceTree = ""; }; - 62EE29681A1ABA1F00486C31 /* merge_helper.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = merge_helper.cc; sourceTree = ""; }; - 62EE29691A1ABA1F00486C31 /* merge_helper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = merge_helper.h; sourceTree = ""; }; - 62EE296B1A1ABA1F00486C31 /* merge_operator.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = merge_operator.cc; sourceTree = ""; }; - 62EE296D1A1ABA1F00486C31 /* merge_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = merge_test.cc; sourceTree = ""; }; - 62EE296E1A1ABA1F00486C31 /* perf_context_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = perf_context_test.cc; sourceTree = ""; }; - 62EE296F1A1ABA1F00486C31 /* plain_table_db_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = plain_table_db_test.cc; sourceTree = ""; }; - 62EE29701A1ABA1F00486C31 /* prefix_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = prefix_test.cc; sourceTree = ""; }; - 62EE29711A1ABA1F00486C31 /* repair.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = repair.cc; sourceTree = ""; }; - 62EE29731A1ABA1F00486C31 /* skiplist.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = skiplist.h; sourceTree = ""; }; - 62EE29741A1ABA1F00486C31 /* skiplist_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = skiplist_test.cc; sourceTree = ""; }; - 62EE29751A1ABA1F00486C31 /* snapshot.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = snapshot.h; sourceTree = ""; }; - 62EE29761A1ABA1F00486C31 /* table_cache.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = table_cache.cc; sourceTree = ""; }; - 62EE29771A1ABA1F00486C31 /* table_cache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = table_cache.h; sourceTree = ""; }; - 62EE29791A1ABA1F00486C31 /* table_properties_collector.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = table_properties_collector.cc; sourceTree = ""; }; - 62EE297A1A1ABA1F00486C31 /* table_properties_collector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = table_properties_collector.h; sourceTree = ""; }; - 62EE297C1A1ABA1F00486C31 /* table_properties_collector_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = table_properties_collector_test.cc; sourceTree = ""; }; - 62EE297D1A1ABA1F00486C31 /* transaction_log_impl.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = transaction_log_impl.cc; sourceTree = ""; }; - 62EE297E1A1ABA1F00486C31 /* transaction_log_impl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = transaction_log_impl.h; sourceTree = ""; }; - 62EE29801A1ABA1F00486C31 /* version_builder.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = version_builder.cc; sourceTree = ""; }; - 62EE29811A1ABA1F00486C31 /* version_builder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = version_builder.h; sourceTree = ""; }; - 62EE29831A1ABA1F00486C31 /* version_builder_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = version_builder_test.cc; sourceTree = ""; }; - 62EE29841A1ABA1F00486C31 /* version_edit.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = version_edit.cc; sourceTree = ""; }; - 62EE29851A1ABA1F00486C31 /* version_edit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = version_edit.h; sourceTree = ""; }; - 62EE29871A1ABA1F00486C31 /* version_edit_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = version_edit_test.cc; sourceTree = ""; }; - 62EE29881A1ABA1F00486C31 /* version_set.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = version_set.cc; sourceTree = ""; }; - 62EE29891A1ABA1F00486C31 /* version_set.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = version_set.h; sourceTree = ""; }; - 62EE298B1A1ABA1F00486C31 /* version_set_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = version_set_test.cc; sourceTree = ""; }; - 62EE298C1A1ABA1F00486C31 /* wal_manager.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = wal_manager.cc; sourceTree = ""; }; - 62EE298D1A1ABA1F00486C31 /* wal_manager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = wal_manager.h; sourceTree = ""; }; - 62EE298F1A1ABA1F00486C31 /* wal_manager_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = wal_manager_test.cc; sourceTree = ""; }; - 62EE29901A1ABA1F00486C31 /* write_batch.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = write_batch.cc; sourceTree = ""; }; - 62EE29921A1ABA1F00486C31 /* write_batch_internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = write_batch_internal.h; sourceTree = ""; }; - 62EE29931A1ABA1F00486C31 /* write_batch_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = write_batch_test.cc; sourceTree = ""; }; - 62EE29941A1ABA1F00486C31 /* write_controller.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = write_controller.cc; sourceTree = ""; }; - 62EE29951A1ABA1F00486C31 /* write_controller.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = write_controller.h; sourceTree = ""; }; - 62EE29971A1ABA1F00486C31 /* write_controller_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = write_controller_test.cc; sourceTree = ""; }; - 62EE29981A1ABA1F00486C31 /* write_thread.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = write_thread.cc; sourceTree = ""; }; - 62EE29991A1ABA1F00486C31 /* write_thread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = write_thread.h; sourceTree = ""; }; - 62EE29A91A1ABA1F00486C31 /* env_hdfs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = env_hdfs.h; sourceTree = ""; }; - 62EE29AA1A1ABA1F00486C31 /* README */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = README; sourceTree = ""; }; - 62EE29AB1A1ABA1F00486C31 /* setup.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = setup.sh; sourceTree = ""; }; - 62EE29B01A1ABA1F00486C31 /* HISTORY.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = HISTORY.md; sourceTree = ""; }; - 62EE29B31A1ABA1F00486C31 /* c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = c.h; sourceTree = ""; }; - 62EE29B41A1ABA1F00486C31 /* cache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cache.h; sourceTree = ""; }; - 62EE29B51A1ABA1F00486C31 /* compaction_filter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = compaction_filter.h; sourceTree = ""; }; - 62EE29B61A1ABA1F00486C31 /* comparator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = comparator.h; sourceTree = ""; }; - 62EE29B71A1ABA1F00486C31 /* db.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = db.h; sourceTree = ""; }; - 62EE29B81A1ABA1F00486C31 /* env.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = env.h; sourceTree = ""; }; - 62EE29B91A1ABA1F00486C31 /* filter_policy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = filter_policy.h; sourceTree = ""; }; - 62EE29BA1A1ABA1F00486C31 /* flush_block_policy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = flush_block_policy.h; sourceTree = ""; }; - 62EE29BB1A1ABA1F00486C31 /* immutable_options.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = immutable_options.h; sourceTree = ""; }; - 62EE29BC1A1ABA1F00486C31 /* iostats_context.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = iostats_context.h; sourceTree = ""; }; - 62EE29BD1A1ABA1F00486C31 /* iterator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = iterator.h; sourceTree = ""; }; - 62EE29BE1A1ABA1F00486C31 /* ldb_tool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ldb_tool.h; sourceTree = ""; }; - 62EE29BF1A1ABA1F00486C31 /* listener.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = listener.h; sourceTree = ""; }; - 62EE29C01A1ABA1F00486C31 /* memtablerep.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = memtablerep.h; sourceTree = ""; }; - 62EE29C11A1ABA1F00486C31 /* merge_operator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = merge_operator.h; sourceTree = ""; }; - 62EE29C21A1ABA1F00486C31 /* metadata.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = metadata.h; sourceTree = ""; }; - 62EE29C31A1ABA1F00486C31 /* options.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = options.h; sourceTree = ""; }; - 62EE29C41A1ABA1F00486C31 /* perf_context.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = perf_context.h; sourceTree = ""; }; - 62EE29C51A1ABA1F00486C31 /* rate_limiter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rate_limiter.h; sourceTree = ""; }; - 62EE29C61A1ABA1F00486C31 /* slice.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = slice.h; sourceTree = ""; }; - 62EE29C71A1ABA1F00486C31 /* slice_transform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = slice_transform.h; sourceTree = ""; }; - 62EE29C81A1ABA1F00486C31 /* sst_dump_tool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sst_dump_tool.h; sourceTree = ""; }; - 62EE29C91A1ABA1F00486C31 /* statistics.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = statistics.h; sourceTree = ""; }; - 62EE29CA1A1ABA1F00486C31 /* status.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = status.h; sourceTree = ""; }; - 62EE29CB1A1ABA1F00486C31 /* table.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = table.h; sourceTree = ""; }; - 62EE29CC1A1ABA1F00486C31 /* table_properties.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = table_properties.h; sourceTree = ""; }; - 62EE29CD1A1ABA1F00486C31 /* transaction_log.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = transaction_log.h; sourceTree = ""; }; - 62EE29CE1A1ABA1F00486C31 /* types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = types.h; sourceTree = ""; }; - 62EE29CF1A1ABA1F00486C31 /* universal_compaction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = universal_compaction.h; sourceTree = ""; }; - 62EE29D11A1ABA1F00486C31 /* backupable_db.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = backupable_db.h; sourceTree = ""; }; - 62EE29D21A1ABA1F00486C31 /* convenience.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = convenience.h; sourceTree = ""; }; - 62EE29D31A1ABA1F00486C31 /* db_ttl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = db_ttl.h; sourceTree = ""; }; - 62EE29D41A1ABA1F00486C31 /* document_db.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = document_db.h; sourceTree = ""; }; - 62EE29D51A1ABA1F00486C31 /* geo_db.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = geo_db.h; sourceTree = ""; }; - 62EE29D61A1ABA1F00486C31 /* json_document.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = json_document.h; sourceTree = ""; }; - 62EE29D71A1ABA1F00486C31 /* spatial_db.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = spatial_db.h; sourceTree = ""; }; - 62EE29D81A1ABA1F00486C31 /* stackable_db.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = stackable_db.h; sourceTree = ""; }; - 62EE29D91A1ABA1F00486C31 /* utility_db.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = utility_db.h; sourceTree = ""; }; - 62EE29DA1A1ABA1F00486C31 /* write_batch_with_index.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = write_batch_with_index.h; sourceTree = ""; }; - 62EE29DB1A1ABA1F00486C31 /* version.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = version.h; sourceTree = ""; }; - 62EE29DC1A1ABA1F00486C31 /* write_batch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = write_batch.h; sourceTree = ""; }; - 62EE29DE1A1ABA1F00486C31 /* backupable_db.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = backupable_db.h; sourceTree = ""; }; - 62EE29DF1A1ABA1F00486C31 /* db_ttl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = db_ttl.h; sourceTree = ""; }; - 62EE29E01A1ABA1F00486C31 /* document_db.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = document_db.h; sourceTree = ""; }; - 62EE29E11A1ABA1F00486C31 /* geo_db.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = geo_db.h; sourceTree = ""; }; - 62EE29E21A1ABA1F00486C31 /* json_document.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = json_document.h; sourceTree = ""; }; - 62EE29E31A1ABA1F00486C31 /* stackable_db.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = stackable_db.h; sourceTree = ""; }; - 62EE29E41A1ABA1F00486C31 /* utility_db.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = utility_db.h; sourceTree = ""; }; - 62EE29E51A1ABA1F00486C31 /* INSTALL.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = INSTALL.md; sourceTree = ""; }; - 62EE2A6D1A1ABA1F00486C31 /* LICENSE */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = LICENSE; sourceTree = ""; }; - 62EE2A781A1ABA1F00486C31 /* Makefile */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = ""; }; - 62EE2A791A1ABA1F00486C31 /* PATENTS */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = PATENTS; sourceTree = ""; }; - 62EE2A7B1A1ABA1F00486C31 /* likely.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = likely.h; sourceTree = ""; }; - 62EE2A7C1A1ABA1F00486C31 /* port.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = port.h; sourceTree = ""; }; - 62EE2A7D1A1ABA1F00486C31 /* port_example.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = port_example.h; sourceTree = ""; }; - 62EE2A7E1A1ABA1F00486C31 /* port_posix.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = port_posix.cc; sourceTree = ""; }; - 62EE2A7F1A1ABA1F00486C31 /* port_posix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = port_posix.h; sourceTree = ""; }; - 62EE2A811A1ABA1F00486C31 /* README */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = README; sourceTree = ""; }; - 62EE2A821A1ABA1F00486C31 /* stack_trace.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = stack_trace.cc; sourceTree = ""; }; - 62EE2A831A1ABA1F00486C31 /* stack_trace.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = stack_trace.h; sourceTree = ""; }; - 62EE2A861A1ABA1F00486C31 /* stdint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = stdint.h; sourceTree = ""; }; - 62EE2A871A1ABA1F00486C31 /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; - 62EE2A881A1ABA1F00486C31 /* ROCKSDB_LITE.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = ROCKSDB_LITE.md; sourceTree = ""; }; - 62EE2A8A1A1ABA1F00486C31 /* adaptive_table_factory.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = adaptive_table_factory.cc; sourceTree = ""; }; - 62EE2A8B1A1ABA1F00486C31 /* adaptive_table_factory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = adaptive_table_factory.h; sourceTree = ""; }; - 62EE2A8D1A1ABA1F00486C31 /* block.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = block.cc; sourceTree = ""; }; - 62EE2A8E1A1ABA1F00486C31 /* block.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = block.h; sourceTree = ""; }; - 62EE2A901A1ABA1F00486C31 /* block_based_filter_block.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = block_based_filter_block.cc; sourceTree = ""; }; - 62EE2A911A1ABA1F00486C31 /* block_based_filter_block.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = block_based_filter_block.h; sourceTree = ""; }; - 62EE2A931A1ABA1F00486C31 /* block_based_filter_block_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = block_based_filter_block_test.cc; sourceTree = ""; }; - 62EE2A941A1ABA1F00486C31 /* block_based_table_builder.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = block_based_table_builder.cc; sourceTree = ""; }; - 62EE2A951A1ABA1F00486C31 /* block_based_table_builder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = block_based_table_builder.h; sourceTree = ""; }; - 62EE2A971A1ABA1F00486C31 /* block_based_table_factory.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = block_based_table_factory.cc; sourceTree = ""; }; - 62EE2A981A1ABA1F00486C31 /* block_based_table_factory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = block_based_table_factory.h; sourceTree = ""; }; - 62EE2A9A1A1ABA1F00486C31 /* block_based_table_reader.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = block_based_table_reader.cc; sourceTree = ""; }; - 62EE2A9B1A1ABA1F00486C31 /* block_based_table_reader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = block_based_table_reader.h; sourceTree = ""; }; - 62EE2A9D1A1ABA1F00486C31 /* block_builder.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = block_builder.cc; sourceTree = ""; }; - 62EE2A9E1A1ABA1F00486C31 /* block_builder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = block_builder.h; sourceTree = ""; }; - 62EE2AA01A1ABA1F00486C31 /* block_hash_index.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = block_hash_index.cc; sourceTree = ""; }; - 62EE2AA11A1ABA1F00486C31 /* block_hash_index.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = block_hash_index.h; sourceTree = ""; }; - 62EE2AA31A1ABA1F00486C31 /* block_hash_index_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = block_hash_index_test.cc; sourceTree = ""; }; - 62EE2AA41A1ABA1F00486C31 /* block_prefix_index.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = block_prefix_index.cc; sourceTree = ""; }; - 62EE2AA51A1ABA1F00486C31 /* block_prefix_index.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = block_prefix_index.h; sourceTree = ""; }; - 62EE2AA71A1ABA1F00486C31 /* block_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = block_test.cc; sourceTree = ""; }; - 62EE2AA81A1ABA1F00486C31 /* bloom_block.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = bloom_block.cc; sourceTree = ""; }; - 62EE2AA91A1ABA1F00486C31 /* bloom_block.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = bloom_block.h; sourceTree = ""; }; - 62EE2AAB1A1ABA1F00486C31 /* cuckoo_table_builder.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cuckoo_table_builder.cc; sourceTree = ""; }; - 62EE2AAC1A1ABA1F00486C31 /* cuckoo_table_builder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cuckoo_table_builder.h; sourceTree = ""; }; - 62EE2AAE1A1ABA1F00486C31 /* cuckoo_table_builder_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cuckoo_table_builder_test.cc; sourceTree = ""; }; - 62EE2AAF1A1ABA1F00486C31 /* cuckoo_table_factory.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cuckoo_table_factory.cc; sourceTree = ""; }; - 62EE2AB01A1ABA1F00486C31 /* cuckoo_table_factory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cuckoo_table_factory.h; sourceTree = ""; }; - 62EE2AB21A1ABA1F00486C31 /* cuckoo_table_reader.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cuckoo_table_reader.cc; sourceTree = ""; }; - 62EE2AB31A1ABA1F00486C31 /* cuckoo_table_reader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cuckoo_table_reader.h; sourceTree = ""; }; - 62EE2AB51A1ABA1F00486C31 /* cuckoo_table_reader_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cuckoo_table_reader_test.cc; sourceTree = ""; }; - 62EE2AB61A1ABA1F00486C31 /* filter_block.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = filter_block.h; sourceTree = ""; }; - 62EE2AB71A1ABA1F00486C31 /* flush_block_policy.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = flush_block_policy.cc; sourceTree = ""; }; - 62EE2AB91A1ABA1F00486C31 /* format.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = format.cc; sourceTree = ""; }; - 62EE2ABA1A1ABA1F00486C31 /* format.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = format.h; sourceTree = ""; }; - 62EE2ABC1A1ABA1F00486C31 /* full_filter_block.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = full_filter_block.cc; sourceTree = ""; }; - 62EE2ABD1A1ABA1F00486C31 /* full_filter_block.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = full_filter_block.h; sourceTree = ""; }; - 62EE2ABF1A1ABA1F00486C31 /* full_filter_block_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = full_filter_block_test.cc; sourceTree = ""; }; - 62EE2AC01A1ABA1F00486C31 /* get_context.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = get_context.cc; sourceTree = ""; }; - 62EE2AC11A1ABA1F00486C31 /* get_context.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = get_context.h; sourceTree = ""; }; - 62EE2AC31A1ABA1F00486C31 /* iter_heap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = iter_heap.h; sourceTree = ""; }; - 62EE2AC41A1ABA1F00486C31 /* iterator.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = iterator.cc; sourceTree = ""; }; - 62EE2AC61A1ABA1F00486C31 /* iterator_wrapper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = iterator_wrapper.h; sourceTree = ""; }; - 62EE2AC71A1ABA1F00486C31 /* merger.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = merger.cc; sourceTree = ""; }; - 62EE2AC81A1ABA1F00486C31 /* merger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = merger.h; sourceTree = ""; }; - 62EE2ACA1A1ABA1F00486C31 /* merger_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = merger_test.cc; sourceTree = ""; }; - 62EE2ACB1A1ABA1F00486C31 /* meta_blocks.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = meta_blocks.cc; sourceTree = ""; }; - 62EE2ACC1A1ABA1F00486C31 /* meta_blocks.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = meta_blocks.h; sourceTree = ""; }; - 62EE2ACE1A1ABA1F00486C31 /* mock_table.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = mock_table.cc; sourceTree = ""; }; - 62EE2ACF1A1ABA1F00486C31 /* mock_table.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mock_table.h; sourceTree = ""; }; - 62EE2AD01A1ABA1F00486C31 /* plain_table_builder.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = plain_table_builder.cc; sourceTree = ""; }; - 62EE2AD11A1ABA1F00486C31 /* plain_table_builder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = plain_table_builder.h; sourceTree = ""; }; - 62EE2AD31A1ABA1F00486C31 /* plain_table_factory.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = plain_table_factory.cc; sourceTree = ""; }; - 62EE2AD41A1ABA1F00486C31 /* plain_table_factory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = plain_table_factory.h; sourceTree = ""; }; - 62EE2AD61A1ABA1F00486C31 /* plain_table_index.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = plain_table_index.cc; sourceTree = ""; }; - 62EE2AD71A1ABA1F00486C31 /* plain_table_index.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = plain_table_index.h; sourceTree = ""; }; - 62EE2AD91A1ABA1F00486C31 /* plain_table_key_coding.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = plain_table_key_coding.cc; sourceTree = ""; }; - 62EE2ADA1A1ABA1F00486C31 /* plain_table_key_coding.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = plain_table_key_coding.h; sourceTree = ""; }; - 62EE2ADC1A1ABA1F00486C31 /* plain_table_reader.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = plain_table_reader.cc; sourceTree = ""; }; - 62EE2ADD1A1ABA1F00486C31 /* plain_table_reader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = plain_table_reader.h; sourceTree = ""; }; - 62EE2ADF1A1ABA1F00486C31 /* table_builder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = table_builder.h; sourceTree = ""; }; - 62EE2AE01A1ABA1F00486C31 /* table_properties.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = table_properties.cc; sourceTree = ""; }; - 62EE2AE21A1ABA1F00486C31 /* table_properties_internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = table_properties_internal.h; sourceTree = ""; }; - 62EE2AE31A1ABA1F00486C31 /* table_reader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = table_reader.h; sourceTree = ""; }; - 62EE2AE41A1ABA1F00486C31 /* table_reader_bench.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = table_reader_bench.cc; sourceTree = ""; }; - 62EE2AE51A1ABA1F00486C31 /* table_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = table_test.cc; sourceTree = ""; }; - 62EE2AE61A1ABA1F00486C31 /* two_level_iterator.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = two_level_iterator.cc; sourceTree = ""; }; - 62EE2AE71A1ABA1F00486C31 /* two_level_iterator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = two_level_iterator.h; sourceTree = ""; }; - 62EE2AF81A1ABA2000486C31 /* auto_sanity_test.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = auto_sanity_test.sh; sourceTree = ""; }; - 62EE2AF91A1ABA2000486C31 /* benchmark.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = benchmark.sh; sourceTree = ""; }; - 62EE2AFB1A1ABA2000486C31 /* db_crashtest.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = db_crashtest.py; sourceTree = ""; }; - 62EE2AFC1A1ABA2000486C31 /* db_crashtest2.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = db_crashtest2.py; sourceTree = ""; }; - 62EE2AFD1A1ABA2000486C31 /* db_repl_stress.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = db_repl_stress.cc; sourceTree = ""; }; - 62EE2AFE1A1ABA2000486C31 /* db_sanity_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = db_sanity_test.cc; sourceTree = ""; }; - 62EE2AFF1A1ABA2000486C31 /* db_stress.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = db_stress.cc; sourceTree = ""; }; - 62EE2B001A1ABA2000486C31 /* ldb.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ldb.cc; sourceTree = ""; }; - 62EE2B011A1ABA2000486C31 /* ldb_test.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = ldb_test.py; sourceTree = ""; }; - 62EE2B021A1ABA2000486C31 /* reduce_levels_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = reduce_levels_test.cc; sourceTree = ""; }; - 62EE2B031A1ABA2000486C31 /* run_flash_bench.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = run_flash_bench.sh; sourceTree = ""; }; - 62EE2B041A1ABA2000486C31 /* sst_dump.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = sst_dump.cc; sourceTree = ""; }; - 62EE2B061A1ABA2000486C31 /* arena.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = arena.cc; sourceTree = ""; }; - 62EE2B071A1ABA2000486C31 /* arena.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = arena.h; sourceTree = ""; }; - 62EE2B091A1ABA2000486C31 /* arena_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = arena_test.cc; sourceTree = ""; }; - 62EE2B0A1A1ABA2000486C31 /* auto_roll_logger.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = auto_roll_logger.cc; sourceTree = ""; }; - 62EE2B0B1A1ABA2000486C31 /* auto_roll_logger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = auto_roll_logger.h; sourceTree = ""; }; - 62EE2B0D1A1ABA2000486C31 /* auto_roll_logger_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = auto_roll_logger_test.cc; sourceTree = ""; }; - 62EE2B0E1A1ABA2000486C31 /* autovector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = autovector.h; sourceTree = ""; }; - 62EE2B0F1A1ABA2000486C31 /* autovector_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = autovector_test.cc; sourceTree = ""; }; - 62EE2B171A1ABA2000486C31 /* bloom.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = bloom.cc; sourceTree = ""; }; - 62EE2B191A1ABA2000486C31 /* bloom_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = bloom_test.cc; sourceTree = ""; }; - 62EE2B1B1A1ABA2000486C31 /* build_version.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = build_version.h; sourceTree = ""; }; - 62EE2B1D1A1ABA2000486C31 /* cache.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cache.cc; sourceTree = ""; }; - 62EE2B1F1A1ABA2000486C31 /* cache_bench.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cache_bench.cc; sourceTree = ""; }; - 62EE2B201A1ABA2000486C31 /* cache_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cache_test.cc; sourceTree = ""; }; - 62EE2B211A1ABA2000486C31 /* coding.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = coding.cc; sourceTree = ""; }; - 62EE2B221A1ABA2000486C31 /* coding.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = coding.h; sourceTree = ""; }; - 62EE2B241A1ABA2000486C31 /* coding_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = coding_test.cc; sourceTree = ""; }; - 62EE2B251A1ABA2000486C31 /* comparator.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = comparator.cc; sourceTree = ""; }; - 62EE2B271A1ABA2000486C31 /* crc32c.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = crc32c.cc; sourceTree = ""; }; - 62EE2B281A1ABA2000486C31 /* crc32c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = crc32c.h; sourceTree = ""; }; - 62EE2B2A1A1ABA2000486C31 /* crc32c_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = crc32c_test.cc; sourceTree = ""; }; - 62EE2B2B1A1ABA2000486C31 /* db_info_dumper.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = db_info_dumper.cc; sourceTree = ""; }; - 62EE2B2C1A1ABA2000486C31 /* db_info_dumper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = db_info_dumper.h; sourceTree = ""; }; - 62EE2B2E1A1ABA2000486C31 /* dynamic_bloom.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = dynamic_bloom.cc; sourceTree = ""; }; - 62EE2B2F1A1ABA2000486C31 /* dynamic_bloom.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dynamic_bloom.h; sourceTree = ""; }; - 62EE2B311A1ABA2000486C31 /* dynamic_bloom_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = dynamic_bloom_test.cc; sourceTree = ""; }; - 62EE2B321A1ABA2000486C31 /* env.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = env.cc; sourceTree = ""; }; - 62EE2B341A1ABA2000486C31 /* env_hdfs.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = env_hdfs.cc; sourceTree = ""; }; - 62EE2B361A1ABA2000486C31 /* env_posix.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = env_posix.cc; sourceTree = ""; }; - 62EE2B381A1ABA2000486C31 /* env_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = env_test.cc; sourceTree = ""; }; - 62EE2B391A1ABA2000486C31 /* file_util.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = file_util.cc; sourceTree = ""; }; - 62EE2B3A1A1ABA2000486C31 /* file_util.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = file_util.h; sourceTree = ""; }; - 62EE2B3C1A1ABA2000486C31 /* filelock_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = filelock_test.cc; sourceTree = ""; }; - 62EE2B3D1A1ABA2000486C31 /* filter_policy.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = filter_policy.cc; sourceTree = ""; }; - 62EE2B3F1A1ABA2000486C31 /* hash.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = hash.cc; sourceTree = ""; }; - 62EE2B401A1ABA2000486C31 /* hash.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = hash.h; sourceTree = ""; }; - 62EE2B421A1ABA2000486C31 /* hash_cuckoo_rep.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = hash_cuckoo_rep.cc; sourceTree = ""; }; - 62EE2B431A1ABA2000486C31 /* hash_cuckoo_rep.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = hash_cuckoo_rep.h; sourceTree = ""; }; - 62EE2B451A1ABA2000486C31 /* hash_linklist_rep.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = hash_linklist_rep.cc; sourceTree = ""; }; - 62EE2B461A1ABA2000486C31 /* hash_linklist_rep.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = hash_linklist_rep.h; sourceTree = ""; }; - 62EE2B481A1ABA2000486C31 /* hash_skiplist_rep.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = hash_skiplist_rep.cc; sourceTree = ""; }; - 62EE2B491A1ABA2000486C31 /* hash_skiplist_rep.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = hash_skiplist_rep.h; sourceTree = ""; }; - 62EE2B4B1A1ABA2000486C31 /* histogram.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = histogram.cc; sourceTree = ""; }; - 62EE2B4C1A1ABA2000486C31 /* histogram.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = histogram.h; sourceTree = ""; }; - 62EE2B4E1A1ABA2000486C31 /* histogram_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = histogram_test.cc; sourceTree = ""; }; - 62EE2B4F1A1ABA2000486C31 /* iostats_context.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = iostats_context.cc; sourceTree = ""; }; - 62EE2B511A1ABA2000486C31 /* iostats_context_imp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = iostats_context_imp.h; sourceTree = ""; }; - 62EE2B521A1ABA2000486C31 /* ldb_cmd.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ldb_cmd.cc; sourceTree = ""; }; - 62EE2B531A1ABA2000486C31 /* ldb_cmd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ldb_cmd.h; sourceTree = ""; }; - 62EE2B551A1ABA2000486C31 /* ldb_cmd_execute_result.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ldb_cmd_execute_result.h; sourceTree = ""; }; - 62EE2B561A1ABA2000486C31 /* ldb_tool.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ldb_tool.cc; sourceTree = ""; }; - 62EE2B581A1ABA2000486C31 /* log_buffer.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = log_buffer.cc; sourceTree = ""; }; - 62EE2B591A1ABA2000486C31 /* log_buffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = log_buffer.h; sourceTree = ""; }; - 62EE2B5B1A1ABA2000486C31 /* log_write_bench.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = log_write_bench.cc; sourceTree = ""; }; - 62EE2B5C1A1ABA2000486C31 /* logging.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = logging.cc; sourceTree = ""; }; - 62EE2B5D1A1ABA2000486C31 /* logging.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = logging.h; sourceTree = ""; }; - 62EE2B5F1A1ABA2000486C31 /* manual_compaction_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = manual_compaction_test.cc; sourceTree = ""; }; - 62EE2B601A1ABA2000486C31 /* mock_env.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = mock_env.cc; sourceTree = ""; }; - 62EE2B611A1ABA2000486C31 /* mock_env.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mock_env.h; sourceTree = ""; }; - 62EE2B621A1ABA2000486C31 /* mock_env_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = mock_env_test.cc; sourceTree = ""; }; - 62EE2B631A1ABA2000486C31 /* murmurhash.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = murmurhash.cc; sourceTree = ""; }; - 62EE2B641A1ABA2000486C31 /* murmurhash.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = murmurhash.h; sourceTree = ""; }; - 62EE2B661A1ABA2000486C31 /* mutable_cf_options.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = mutable_cf_options.cc; sourceTree = ""; }; - 62EE2B671A1ABA2000486C31 /* mutable_cf_options.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mutable_cf_options.h; sourceTree = ""; }; - 62EE2B691A1ABA2000486C31 /* mutexlock.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mutexlock.h; sourceTree = ""; }; - 62EE2B6A1A1ABA2000486C31 /* options.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = options.cc; sourceTree = ""; }; - 62EE2B6C1A1ABA2000486C31 /* options_builder.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = options_builder.cc; sourceTree = ""; }; - 62EE2B6E1A1ABA2000486C31 /* options_helper.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = options_helper.cc; sourceTree = ""; }; - 62EE2B6F1A1ABA2000486C31 /* options_helper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = options_helper.h; sourceTree = ""; }; - 62EE2B711A1ABA2000486C31 /* options_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = options_test.cc; sourceTree = ""; }; - 62EE2B721A1ABA2000486C31 /* perf_context.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = perf_context.cc; sourceTree = ""; }; - 62EE2B741A1ABA2000486C31 /* perf_context_imp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = perf_context_imp.h; sourceTree = ""; }; - 62EE2B751A1ABA2000486C31 /* posix_logger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = posix_logger.h; sourceTree = ""; }; - 62EE2B761A1ABA2000486C31 /* random.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = random.h; sourceTree = ""; }; - 62EE2B771A1ABA2000486C31 /* rate_limiter.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = rate_limiter.cc; sourceTree = ""; }; - 62EE2B781A1ABA2000486C31 /* rate_limiter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rate_limiter.h; sourceTree = ""; }; - 62EE2B7A1A1ABA2000486C31 /* rate_limiter_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = rate_limiter_test.cc; sourceTree = ""; }; - 62EE2B7B1A1ABA2000486C31 /* scoped_arena_iterator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = scoped_arena_iterator.h; sourceTree = ""; }; - 62EE2B7D1A1ABA2000486C31 /* skiplistrep.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = skiplistrep.cc; sourceTree = ""; }; - 62EE2B7F1A1ABA2000486C31 /* slice.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slice.cc; sourceTree = ""; }; - 62EE2B811A1ABA2000486C31 /* sst_dump_tool.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = sst_dump_tool.cc; sourceTree = ""; }; - 62EE2B831A1ABA2000486C31 /* statistics.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = statistics.cc; sourceTree = ""; }; - 62EE2B841A1ABA2000486C31 /* statistics.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = statistics.h; sourceTree = ""; }; - 62EE2B861A1ABA2000486C31 /* status.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = status.cc; sourceTree = ""; }; - 62EE2B881A1ABA2000486C31 /* stl_wrappers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = stl_wrappers.h; sourceTree = ""; }; - 62EE2B891A1ABA2000486C31 /* stop_watch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = stop_watch.h; sourceTree = ""; }; - 62EE2B8A1A1ABA2000486C31 /* string_util.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = string_util.cc; sourceTree = ""; }; - 62EE2B8B1A1ABA2000486C31 /* string_util.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = string_util.h; sourceTree = ""; }; - 62EE2B8D1A1ABA2000486C31 /* sync_point.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = sync_point.cc; sourceTree = ""; }; - 62EE2B8E1A1ABA2000486C31 /* sync_point.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sync_point.h; sourceTree = ""; }; - 62EE2B901A1ABA2000486C31 /* testharness.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = testharness.cc; sourceTree = ""; }; - 62EE2B911A1ABA2000486C31 /* testharness.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = testharness.h; sourceTree = ""; }; - 62EE2B921A1ABA2000486C31 /* testutil.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = testutil.cc; sourceTree = ""; }; - 62EE2B931A1ABA2000486C31 /* testutil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = testutil.h; sourceTree = ""; }; - 62EE2B941A1ABA2000486C31 /* thread_local.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = thread_local.cc; sourceTree = ""; }; - 62EE2B951A1ABA2000486C31 /* thread_local.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = thread_local.h; sourceTree = ""; }; - 62EE2B971A1ABA2000486C31 /* thread_local_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = thread_local_test.cc; sourceTree = ""; }; - 62EE2B981A1ABA2000486C31 /* vectorrep.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vectorrep.cc; sourceTree = ""; }; - 62EE2B9A1A1ABA2000486C31 /* xxhash.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = xxhash.cc; sourceTree = ""; }; - 62EE2B9B1A1ABA2000486C31 /* xxhash.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = xxhash.h; sourceTree = ""; }; - 62EE2B9F1A1ABA2000486C31 /* backupable_db.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = backupable_db.cc; sourceTree = ""; }; - 62EE2BA11A1ABA2000486C31 /* backupable_db_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = backupable_db_test.cc; sourceTree = ""; }; - 62EE2BA31A1ABA2000486C31 /* compacted_db_impl.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = compacted_db_impl.cc; sourceTree = ""; }; - 62EE2BA41A1ABA2000486C31 /* compacted_db_impl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = compacted_db_impl.h; sourceTree = ""; }; - 62EE2BA71A1ABA2000486C31 /* document_db.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = document_db.cc; sourceTree = ""; }; - 62EE2BA91A1ABA2000486C31 /* document_db_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = document_db_test.cc; sourceTree = ""; }; - 62EE2BAA1A1ABA2000486C31 /* json_document.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = json_document.cc; sourceTree = ""; }; - 62EE2BAC1A1ABA2000486C31 /* json_document_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = json_document_test.cc; sourceTree = ""; }; - 62EE2BAE1A1ABA2000486C31 /* geodb_impl.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = geodb_impl.cc; sourceTree = ""; }; - 62EE2BAF1A1ABA2000486C31 /* geodb_impl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = geodb_impl.h; sourceTree = ""; }; - 62EE2BB11A1ABA2000486C31 /* geodb_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = geodb_test.cc; sourceTree = ""; }; - 62EE2BB31A1ABA2000486C31 /* put.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = put.cc; sourceTree = ""; }; - 62EE2BB61A1ABA2000486C31 /* stringappend.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = stringappend.cc; sourceTree = ""; }; - 62EE2BB71A1ABA2000486C31 /* stringappend.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = stringappend.h; sourceTree = ""; }; - 62EE2BB91A1ABA2000486C31 /* stringappend2.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = stringappend2.cc; sourceTree = ""; }; - 62EE2BBA1A1ABA2000486C31 /* stringappend2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = stringappend2.h; sourceTree = ""; }; - 62EE2BBC1A1ABA2000486C31 /* stringappend_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = stringappend_test.cc; sourceTree = ""; }; - 62EE2BBD1A1ABA2000486C31 /* uint64add.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = uint64add.cc; sourceTree = ""; }; - 62EE2BBF1A1ABA2000486C31 /* merge_operators.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = merge_operators.h; sourceTree = ""; }; - 62EE2BC11A1ABA2000486C31 /* README */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = README; sourceTree = ""; }; - 62EE2BC21A1ABA2000486C31 /* redis_list_exception.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = redis_list_exception.h; sourceTree = ""; }; - 62EE2BC31A1ABA2000486C31 /* redis_list_iterator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = redis_list_iterator.h; sourceTree = ""; }; - 62EE2BC41A1ABA2000486C31 /* redis_lists.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = redis_lists.cc; sourceTree = ""; }; - 62EE2BC51A1ABA2000486C31 /* redis_lists.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = redis_lists.h; sourceTree = ""; }; - 62EE2BC71A1ABA2000486C31 /* redis_lists_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = redis_lists_test.cc; sourceTree = ""; }; - 62EE2BC91A1ABA2000486C31 /* spatial_db.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = spatial_db.cc; sourceTree = ""; }; - 62EE2BCB1A1ABA2000486C31 /* spatial_db_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = spatial_db_test.cc; sourceTree = ""; }; - 62EE2BCC1A1ABA2000486C31 /* utils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = utils.h; sourceTree = ""; }; - 62EE2BCE1A1ABA2000486C31 /* db_ttl_impl.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = db_ttl_impl.cc; sourceTree = ""; }; - 62EE2BCF1A1ABA2000486C31 /* db_ttl_impl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = db_ttl_impl.h; sourceTree = ""; }; - 62EE2BD11A1ABA2000486C31 /* ttl_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ttl_test.cc; sourceTree = ""; }; - 62EE2BD31A1ABA2000486C31 /* write_batch_with_index.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = write_batch_with_index.cc; sourceTree = ""; }; - 62EE2BD51A1ABA2000486C31 /* write_batch_with_index_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = write_batch_with_index_test.cc; sourceTree = ""; }; - 62EE2BD61A1ABA2000486C31 /* Vagrantfile */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Vagrantfile; sourceTree = ""; }; 62EEC4B51A34FEE100624DA2 /* RocksDBMergeOperator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RocksDBMergeOperator.h; sourceTree = ""; }; 62EEC4B61A34FEE100624DA2 /* RocksDBMergeOperator.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RocksDBMergeOperator.mm; sourceTree = ""; }; 62EEC4B81A34FF0600624DA2 /* RocksDBCallbackAssociativeMergeOperator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RocksDBCallbackAssociativeMergeOperator.cpp; sourceTree = ""; }; @@ -1236,23 +1679,6 @@ name = Private; sourceTree = ""; }; - 62269EDA1A1FF27A005A58D3 /* checkpoint */ = { - isa = PBXGroup; - children = ( - 62269EDB1A1FF27A005A58D3 /* checkpoint.cc */, - ); - name = checkpoint; - path = rocksdb/utilities/checkpoint; - sourceTree = SOURCE_ROOT; - }; - 62269EDE1A1FF2DC005A58D3 /* leveldb_options */ = { - isa = PBXGroup; - children = ( - 62269EDF1A1FF2DC005A58D3 /* leveldb_options.cc */, - ); - path = leveldb_options; - sourceTree = ""; - }; 62269EE21A200CD9005A58D3 /* Options */ = { isa = PBXGroup; children = ( @@ -1323,840 +1749,788 @@ path = ObjectiveRocks; sourceTree = ""; }; - 624C222A1AF016B7006DC8FA /* fbson */ = { + 625F8F261A59D78E007796BA /* Mem Table */ = { isa = PBXGroup; children = ( - 624C222B1AF016B7006DC8FA /* COMMIT.md */, - 624C222C1AF016B7006DC8FA /* FbsonDocument.h */, - 624C222D1AF016B7006DC8FA /* FbsonJsonParser.h */, - 624C222E1AF016B7006DC8FA /* FbsonStream.h */, - 624C222F1AF016B7006DC8FA /* FbsonUtil.h */, - 624C22301AF016B7006DC8FA /* FbsonWriter.h */, + 625F8F271A59D7B1007796BA /* RocksDBMemTableRepFactory.h */, + 625F8F281A59D7B1007796BA /* RocksDBMemTableRepFactory.mm */, ); - path = fbson; + name = "Mem Table"; sourceTree = ""; }; - 624C22371AF0174B006DC8FA /* convenience */ = { + 62685CBA1A2E8257009401B1 /* Write Batch */ = { isa = PBXGroup; children = ( - 624C22381AF0174B006DC8FA /* convenience.cc */, + 623FE74E1A2D2ED500E68421 /* RocksDBWriteBatch.h */, + 623FE74F1A2D2ED500E68421 /* RocksDBWriteBatch.mm */, + 62F8C5FD1B85386A00E2577F /* RocksDBIndexedWriteBatch.h */, + 62F8C5FE1B85386A00E2577F /* RocksDBIndexedWriteBatch.mm */, + 62F8C6011B853ABA00E2577F /* RocksDBWriteBatchIterator.h */, + 62F8C6021B853ABA00E2577F /* RocksDBWriteBatchIterator.mm */, ); - path = convenience; + name = "Write Batch"; sourceTree = ""; }; - 624C22431AF017F1006DC8FA /* gtest-1.7.0 */ = { + 628B47341D03125800E2D828 /* rocksdb */ = { isa = PBXGroup; children = ( - 624C22441AF017F1006DC8FA /* fused-src */, + 628B47631D03125800E2D828 /* db */, + 628B480E1D03125800E2D828 /* hdfs */, + 628B48131D03125800E2D828 /* include */, + 628B491F1D03125900E2D828 /* memtable */, + 628B492A1D03125900E2D828 /* port */, + 628B493F1D03125900E2D828 /* table */, + 628B49871D03125900E2D828 /* third-party */, + 628B49C91D03125900E2D828 /* util */, + 628B4A4D1D03125900E2D828 /* utilities */, ); - path = "gtest-1.7.0"; + name = rocksdb; + path = ../rocksdb; sourceTree = ""; }; - 624C22441AF017F1006DC8FA /* fused-src */ = { + 628B47631D03125800E2D828 /* db */ = { isa = PBXGroup; children = ( - 624C22451AF017F1006DC8FA /* gtest */, + 628B47641D03125800E2D828 /* auto_roll_logger.cc */, + 628B47651D03125800E2D828 /* auto_roll_logger.h */, + 628B47671D03125800E2D828 /* builder.cc */, + 628B47681D03125800E2D828 /* builder.h */, + 628B47691D03125800E2D828 /* c.cc */, + 628B476B1D03125800E2D828 /* column_family.cc */, + 628B476C1D03125800E2D828 /* column_family.h */, + 628B476F1D03125800E2D828 /* compacted_db_impl.cc */, + 628B47701D03125800E2D828 /* compacted_db_impl.h */, + 628B47711D03125800E2D828 /* compaction.cc */, + 628B47721D03125800E2D828 /* compaction.h */, + 628B47731D03125800E2D828 /* compaction_iterator.cc */, + 628B47741D03125800E2D828 /* compaction_iterator.h */, + 628B47761D03125800E2D828 /* compaction_job.cc */, + 628B47771D03125800E2D828 /* compaction_job.h */, + 628B477A1D03125800E2D828 /* compaction_picker.cc */, + 628B477B1D03125800E2D828 /* compaction_picker.h */, + 628B477E1D03125800E2D828 /* convenience.cc */, + 628B47851D03125800E2D828 /* db_filesnapshot.cc */, + 628B47861D03125800E2D828 /* db_impl.cc */, + 628B47871D03125800E2D828 /* db_impl.h */, + 628B47881D03125800E2D828 /* db_impl_debug.cc */, + 628B47891D03125800E2D828 /* db_impl_experimental.cc */, + 628B478A1D03125800E2D828 /* db_impl_readonly.cc */, + 628B478B1D03125800E2D828 /* db_impl_readonly.h */, + 628B478C1D03125800E2D828 /* db_info_dumper.cc */, + 628B478D1D03125800E2D828 /* db_info_dumper.h */, + 628B478F1D03125800E2D828 /* db_iter.cc */, + 628B47901D03125800E2D828 /* db_iter.h */, + 628B479C1D03125800E2D828 /* dbformat.cc */, + 628B479D1D03125800E2D828 /* dbformat.h */, + 628B47A01D03125800E2D828 /* event_helpers.cc */, + 628B47A11D03125800E2D828 /* event_helpers.h */, + 628B47A21D03125800E2D828 /* experimental.cc */, + 628B47A41D03125800E2D828 /* file_indexer.cc */, + 628B47A51D03125800E2D828 /* file_indexer.h */, + 628B47A71D03125800E2D828 /* filename.cc */, + 628B47A81D03125800E2D828 /* filename.h */, + 628B47AA1D03125800E2D828 /* flush_job.cc */, + 628B47AB1D03125800E2D828 /* flush_job.h */, + 628B47AD1D03125800E2D828 /* flush_scheduler.cc */, + 628B47AE1D03125800E2D828 /* flush_scheduler.h */, + 628B47AF1D03125800E2D828 /* forward_iterator.cc */, + 628B47B01D03125800E2D828 /* forward_iterator.h */, + 628B47B21D03125800E2D828 /* inlineskiplist.h */, + 628B47B41D03125800E2D828 /* internal_stats.cc */, + 628B47B51D03125800E2D828 /* internal_stats.h */, + 628B47B61D03125800E2D828 /* job_context.h */, + 628B47B81D03125800E2D828 /* log_format.h */, + 628B47B91D03125800E2D828 /* log_reader.cc */, + 628B47BA1D03125800E2D828 /* log_reader.h */, + 628B47BC1D03125800E2D828 /* log_writer.cc */, + 628B47BD1D03125800E2D828 /* log_writer.h */, + 628B47BE1D03125800E2D828 /* managed_iterator.cc */, + 628B47BF1D03125800E2D828 /* managed_iterator.h */, + 628B47C11D03125800E2D828 /* memtable.cc */, + 628B47C21D03125800E2D828 /* memtable.h */, + 628B47C31D03125800E2D828 /* memtable_allocator.cc */, + 628B47C41D03125800E2D828 /* memtable_allocator.h */, + 628B47C51D03125800E2D828 /* memtable_list.cc */, + 628B47C61D03125800E2D828 /* memtable_list.h */, + 628B47C91D03125800E2D828 /* merge_context.h */, + 628B47CA1D03125800E2D828 /* merge_helper.cc */, + 628B47CB1D03125800E2D828 /* merge_helper.h */, + 628B47CD1D03125800E2D828 /* merge_operator.cc */, + 628B47D31D03125800E2D828 /* repair.cc */, + 628B47D41D03125800E2D828 /* skiplist.h */, + 628B47D61D03125800E2D828 /* slice.cc */, + 628B47D71D03125800E2D828 /* snapshot_impl.cc */, + 628B47D81D03125800E2D828 /* snapshot_impl.h */, + 628B47D91D03125800E2D828 /* table_cache.cc */, + 628B47DA1D03125800E2D828 /* table_cache.h */, + 628B47DB1D03125800E2D828 /* table_properties_collector.cc */, + 628B47DC1D03125800E2D828 /* table_properties_collector.h */, + 628B47DE1D03125800E2D828 /* transaction_log_impl.cc */, + 628B47DF1D03125800E2D828 /* transaction_log_impl.h */, + 628B47E01D03125800E2D828 /* version_builder.cc */, + 628B47E11D03125800E2D828 /* version_builder.h */, + 628B47E31D03125800E2D828 /* version_edit.cc */, + 628B47E41D03125800E2D828 /* version_edit.h */, + 628B47E61D03125800E2D828 /* version_set.cc */, + 628B47E71D03125800E2D828 /* version_set.h */, + 628B47E91D03125800E2D828 /* wal_manager.cc */, + 628B47EA1D03125800E2D828 /* wal_manager.h */, + 628B47EC1D03125800E2D828 /* write_batch.cc */, + 628B47ED1D03125800E2D828 /* write_batch_base.cc */, + 628B47EE1D03125800E2D828 /* write_batch_internal.h */, + 628B47F01D03125800E2D828 /* write_callback.h */, + 628B47F21D03125800E2D828 /* write_controller.cc */, + 628B47F31D03125800E2D828 /* write_controller.h */, + 628B47F51D03125800E2D828 /* write_thread.cc */, + 628B47F61D03125800E2D828 /* write_thread.h */, + 628B47F71D03125800E2D828 /* writebuffer.h */, ); - path = "fused-src"; + path = db; sourceTree = ""; }; - 624C22451AF017F1006DC8FA /* gtest */ = { + 628B480E1D03125800E2D828 /* hdfs */ = { isa = PBXGroup; children = ( - 624C22461AF017F1006DC8FA /* gtest-all.cc */, - 624C22471AF017F1006DC8FA /* gtest.h */, + 628B480F1D03125800E2D828 /* env_hdfs.h */, ); - path = gtest; + path = hdfs; sourceTree = ""; }; - 624C22521AF0194E006DC8FA /* flashcache */ = { + 628B48131D03125800E2D828 /* include */ = { isa = PBXGroup; children = ( - 624C22531AF0194E006DC8FA /* flashcache_ioctl.h */, + 628B48141D03125800E2D828 /* rocksdb */, + 628B48571D03125800E2D828 /* utilities */, ); - path = flashcache; + path = include; sourceTree = ""; }; - 624C22541AF0195F006DC8FA /* flashcache */ = { + 628B48141D03125800E2D828 /* rocksdb */ = { isa = PBXGroup; children = ( - 624C22551AF0195F006DC8FA /* flashcache.cc */, - 624C22561AF0195F006DC8FA /* flashcache.h */, + 628B48151D03125800E2D828 /* c.h */, + 628B48161D03125800E2D828 /* cache.h */, + 628B48171D03125800E2D828 /* compaction_filter.h */, + 628B48181D03125800E2D828 /* compaction_job_stats.h */, + 628B48191D03125800E2D828 /* comparator.h */, + 628B481A1D03125800E2D828 /* convenience.h */, + 628B481B1D03125800E2D828 /* db.h */, + 628B481D1D03125800E2D828 /* db_dump_tool.h */, + 628B481E1D03125800E2D828 /* env.h */, + 628B481F1D03125800E2D828 /* experimental.h */, + 628B48201D03125800E2D828 /* filter_policy.h */, + 628B48211D03125800E2D828 /* flush_block_policy.h */, + 628B48221D03125800E2D828 /* immutable_options.h */, + 628B48231D03125800E2D828 /* iostats_context.h */, + 628B48241D03125800E2D828 /* iterator.h */, + 628B48251D03125800E2D828 /* ldb_tool.h */, + 628B48261D03125800E2D828 /* listener.h */, + 628B48271D03125800E2D828 /* memtablerep.h */, + 628B48281D03125800E2D828 /* merge_operator.h */, + 628B48291D03125800E2D828 /* metadata.h */, + 628B482A1D03125800E2D828 /* options.h */, + 628B482B1D03125800E2D828 /* perf_context.h */, + 628B482C1D03125800E2D828 /* perf_level.h */, + 628B482D1D03125800E2D828 /* rate_limiter.h */, + 628B482E1D03125800E2D828 /* slice.h */, + 628B482F1D03125800E2D828 /* slice_transform.h */, + 628B48301D03125800E2D828 /* snapshot.h */, + 628B48311D03125800E2D828 /* sst_dump_tool.h */, + 628B48321D03125800E2D828 /* sst_file_manager.h */, + 628B48331D03125800E2D828 /* sst_file_writer.h */, + 628B48341D03125800E2D828 /* statistics.h */, + 628B48351D03125800E2D828 /* status.h */, + 628B48361D03125800E2D828 /* table.h */, + 628B48371D03125800E2D828 /* table_properties.h */, + 628B48381D03125800E2D828 /* thread_status.h */, + 628B48391D03125800E2D828 /* transaction_log.h */, + 628B483A1D03125800E2D828 /* types.h */, + 628B483B1D03125800E2D828 /* universal_compaction.h */, + 628B483C1D03125800E2D828 /* utilities */, + 628B48531D03125800E2D828 /* version.h */, + 628B48541D03125800E2D828 /* wal_filter.h */, + 628B48551D03125800E2D828 /* write_batch.h */, + 628B48561D03125800E2D828 /* write_batch_base.h */, ); - path = flashcache; + path = rocksdb; sourceTree = ""; }; - 625F8F261A59D78E007796BA /* Mem Table */ = { + 628B483C1D03125800E2D828 /* utilities */ = { isa = PBXGroup; children = ( - 625F8F271A59D7B1007796BA /* RocksDBMemTableRepFactory.h */, - 625F8F281A59D7B1007796BA /* RocksDBMemTableRepFactory.mm */, + 628B483D1D03125800E2D828 /* backupable_db.h */, + 628B483E1D03125800E2D828 /* checkpoint.h */, + 628B483F1D03125800E2D828 /* convenience.h */, + 628B48401D03125800E2D828 /* db_ttl.h */, + 628B48411D03125800E2D828 /* document_db.h */, + 628B48421D03125800E2D828 /* env_mirror.h */, + 628B48431D03125800E2D828 /* flashcache.h */, + 628B48441D03125800E2D828 /* geo_db.h */, + 628B48451D03125800E2D828 /* info_log_finder.h */, + 628B48461D03125800E2D828 /* json_document.h */, + 628B48471D03125800E2D828 /* leveldb_options.h */, + 628B48481D03125800E2D828 /* memory_util.h */, + 628B48491D03125800E2D828 /* optimistic_transaction_db.h */, + 628B484A1D03125800E2D828 /* options_util.h */, + 628B484B1D03125800E2D828 /* spatial_db.h */, + 628B484C1D03125800E2D828 /* stackable_db.h */, + 628B484D1D03125800E2D828 /* table_properties_collectors.h */, + 628B484E1D03125800E2D828 /* transaction.h */, + 628B484F1D03125800E2D828 /* transaction_db.h */, + 628B48501D03125800E2D828 /* transaction_db_mutex.h */, + 628B48511D03125800E2D828 /* utility_db.h */, + 628B48521D03125800E2D828 /* write_batch_with_index.h */, ); - name = "Mem Table"; + path = utilities; sourceTree = ""; }; - 62685CBA1A2E8257009401B1 /* Write Batch */ = { + 628B48571D03125800E2D828 /* utilities */ = { isa = PBXGroup; children = ( - 623FE74E1A2D2ED500E68421 /* RocksDBWriteBatch.h */, - 623FE74F1A2D2ED500E68421 /* RocksDBWriteBatch.mm */, - 62F8C5FD1B85386A00E2577F /* RocksDBIndexedWriteBatch.h */, - 62F8C5FE1B85386A00E2577F /* RocksDBIndexedWriteBatch.mm */, - 62F8C6011B853ABA00E2577F /* RocksDBWriteBatchIterator.h */, - 62F8C6021B853ABA00E2577F /* RocksDBWriteBatchIterator.mm */, ); - name = "Write Batch"; + path = utilities; sourceTree = ""; }; - 626A7D4B1A27EC570098A979 /* rdb */ = { + 628B491F1D03125900E2D828 /* memtable */ = { isa = PBXGroup; children = ( - 626A7D4C1A27EC570098A979 /* .gitignore */, - 626A7D4D1A27EC570098A979 /* API.md */, - 626A7D4E1A27EC570098A979 /* binding.gyp */, - 626A7D4F1A27EC570098A979 /* db_wrapper.cc */, - 626A7D501A27EC570098A979 /* db_wrapper.h */, - 626A7D511A27EC570098A979 /* rdb */, - 626A7D521A27EC570098A979 /* rdb.cc */, - 626A7D531A27EC570098A979 /* README.md */, - 626A7D541A27EC570098A979 /* unit_test.js */, - ); - path = rdb; + 628B49201D03125900E2D828 /* hash_cuckoo_rep.cc */, + 628B49211D03125900E2D828 /* hash_cuckoo_rep.h */, + 628B49221D03125900E2D828 /* hash_linklist_rep.cc */, + 628B49231D03125900E2D828 /* hash_linklist_rep.h */, + 628B49241D03125900E2D828 /* hash_skiplist_rep.cc */, + 628B49251D03125900E2D828 /* hash_skiplist_rep.h */, + 628B49261D03125900E2D828 /* skiplistrep.cc */, + 628B49271D03125900E2D828 /* stl_wrappers.h */, + 628B49281D03125900E2D828 /* vectorrep.cc */, + ); + path = memtable; sourceTree = ""; }; - 6299F8001A17B28200123F56 = { + 628B492A1D03125900E2D828 /* port */ = { isa = PBXGroup; children = ( - 6299F80B1A17B28200123F56 /* Source */, - 6299F8181A17B28200123F56 /* Tests */, - 624203C11BED64410043DD6F /* Framework */, - 6299F80A1A17B28200123F56 /* Products */, + 628B492C1D03125900E2D828 /* likely.h */, + 628B492D1D03125900E2D828 /* port.h */, + 628B492E1D03125900E2D828 /* port_example.h */, + 628B492F1D03125900E2D828 /* port_posix.cc */, + 628B49301D03125900E2D828 /* port_posix.h */, + 628B49321D03125900E2D828 /* stack_trace.cc */, + 628B49331D03125900E2D828 /* stack_trace.h */, + 628B49341D03125900E2D828 /* sys_time.h */, + 628B49351D03125900E2D828 /* util_logger.h */, ); + path = port; sourceTree = ""; }; - 6299F80A1A17B28200123F56 /* Products */ = { + 628B493F1D03125900E2D828 /* table */ = { isa = PBXGroup; children = ( - 6299F8141A17B28200123F56 /* ObjectiveRocksTests.xctest */, - 62A8B0571A58C40A0069B4C8 /* ObjectiveRocksTests-iOS.xctest */, - 624203C01BED64410043DD6F /* ObjectiveRocks.framework */, - 624F5D981BEE416D00497FEF /* ObjectiveRocks.framework */, + 628B49401D03125900E2D828 /* adaptive_table_factory.cc */, + 628B49411D03125900E2D828 /* adaptive_table_factory.h */, + 628B49421D03125900E2D828 /* block.cc */, + 628B49431D03125900E2D828 /* block.h */, + 628B49441D03125900E2D828 /* block_based_filter_block.cc */, + 628B49451D03125900E2D828 /* block_based_filter_block.h */, + 628B49471D03125900E2D828 /* block_based_table_builder.cc */, + 628B49481D03125900E2D828 /* block_based_table_builder.h */, + 628B49491D03125900E2D828 /* block_based_table_factory.cc */, + 628B494A1D03125900E2D828 /* block_based_table_factory.h */, + 628B494B1D03125900E2D828 /* block_based_table_reader.cc */, + 628B494C1D03125900E2D828 /* block_based_table_reader.h */, + 628B494D1D03125900E2D828 /* block_builder.cc */, + 628B494E1D03125900E2D828 /* block_builder.h */, + 628B494F1D03125900E2D828 /* block_hash_index.cc */, + 628B49501D03125900E2D828 /* block_hash_index.h */, + 628B49521D03125900E2D828 /* block_prefix_index.cc */, + 628B49531D03125900E2D828 /* block_prefix_index.h */, + 628B49551D03125900E2D828 /* bloom_block.cc */, + 628B49561D03125900E2D828 /* bloom_block.h */, + 628B49571D03125900E2D828 /* cuckoo_table_builder.cc */, + 628B49581D03125900E2D828 /* cuckoo_table_builder.h */, + 628B495A1D03125900E2D828 /* cuckoo_table_factory.cc */, + 628B495B1D03125900E2D828 /* cuckoo_table_factory.h */, + 628B495C1D03125900E2D828 /* cuckoo_table_reader.cc */, + 628B495D1D03125900E2D828 /* cuckoo_table_reader.h */, + 628B495F1D03125900E2D828 /* filter_block.h */, + 628B49601D03125900E2D828 /* flush_block_policy.cc */, + 628B49611D03125900E2D828 /* format.cc */, + 628B49621D03125900E2D828 /* format.h */, + 628B49631D03125900E2D828 /* full_filter_block.cc */, + 628B49641D03125900E2D828 /* full_filter_block.h */, + 628B49661D03125900E2D828 /* get_context.cc */, + 628B49671D03125900E2D828 /* get_context.h */, + 628B49681D03125900E2D828 /* internal_iterator.h */, + 628B49691D03125900E2D828 /* iter_heap.h */, + 628B496A1D03125900E2D828 /* iterator.cc */, + 628B496B1D03125900E2D828 /* iterator_wrapper.h */, + 628B496C1D03125900E2D828 /* merger.cc */, + 628B496D1D03125900E2D828 /* merger.h */, + 628B496F1D03125900E2D828 /* meta_blocks.cc */, + 628B49701D03125900E2D828 /* meta_blocks.h */, + 628B49731D03125900E2D828 /* plain_table_builder.cc */, + 628B49741D03125900E2D828 /* plain_table_builder.h */, + 628B49751D03125900E2D828 /* plain_table_factory.cc */, + 628B49761D03125900E2D828 /* plain_table_factory.h */, + 628B49771D03125900E2D828 /* plain_table_index.cc */, + 628B49781D03125900E2D828 /* plain_table_index.h */, + 628B49791D03125900E2D828 /* plain_table_key_coding.cc */, + 628B497A1D03125900E2D828 /* plain_table_key_coding.h */, + 628B497B1D03125900E2D828 /* plain_table_reader.cc */, + 628B497C1D03125900E2D828 /* plain_table_reader.h */, + 628B497D1D03125900E2D828 /* scoped_arena_iterator.h */, + 628B497E1D03125900E2D828 /* sst_file_writer.cc */, + 628B497F1D03125900E2D828 /* table_builder.h */, + 628B49801D03125900E2D828 /* table_properties.cc */, + 628B49811D03125900E2D828 /* table_properties_internal.h */, + 628B49821D03125900E2D828 /* table_reader.h */, + 628B49851D03125900E2D828 /* two_level_iterator.cc */, + 628B49861D03125900E2D828 /* two_level_iterator.h */, ); - name = Products; + path = table; sourceTree = ""; }; - 6299F80B1A17B28200123F56 /* Source */ = { + 628B49871D03125900E2D828 /* third-party */ = { isa = PBXGroup; children = ( - 62AEF9B81A1D5CF000E63E89 /* ObjectiveRocks.h */, - 6299F80C1A17B28200123F56 /* RocksDB.h */, - 6299F80E1A17B28200123F56 /* RocksDB.mm */, - 625F8F1A1A59C3EB007796BA /* RocksDBProperties.h */, - 625F8F1B1A59C3EB007796BA /* RocksDBProperties.mm */, - 62451AC81A4BAEC000AF11C8 /* RocksDBTypes.h */, - 62451AC91A4BAEC000AF11C8 /* RocksDBTypes.m */, - 628B0CE81A1C104D0099C39B /* RocksDBError.h */, - 628B0CE91A1C104D0099C39B /* RocksDBError.mm */, - 620629671A510D24001DEDC4 /* Column Family */, - 620494831A32808800A0E950 /* Iterator */, - 62685CBA1A2E8257009401B1 /* Write Batch */, - 620494841A32809400A0E950 /* Comparator */, - 62269EE21A200CD9005A58D3 /* Options */, - 623DC2541A335B9300B61B18 /* Snapshot */, - 62EEC4B41A34FEC500624DA2 /* Merge Operator */, - 62A8B0621A58DD620069B4C8 /* Statistics */, - 621CD7191A4FB22C00853E16 /* Backup */, - 6221B7851A6295FA00D28BF5 /* Private */, - 62376BBC1A20EA4B00C85DFB /* Internal */, - 62EE28FD1A1ABA1F00486C31 /* rocksdb */, + 628B49881D03125900E2D828 /* fbson */, + 628B498F1D03125900E2D828 /* flashcache */, ); - name = Source; - path = Code; + path = "third-party"; sourceTree = ""; }; - 6299F8181A17B28200123F56 /* Tests */ = { + 628B49881D03125900E2D828 /* fbson */ = { isa = PBXGroup; children = ( - 621636191A631E4F00B132CE /* Swift */, - 6249A3CD1A4A6E4000949B07 /* RocksDBTests.h */, - 6249A3CB1A4A43CA00949B07 /* RocksDBTests.mm */, - 6299F8551A17B7AD00123F56 /* RocksDBBasicTests.mm */, - 6251A3721B783DA7009BABD5 /* RocksDBReadOnlyTests.m */, - 62685CB81A2E600A009401B1 /* RocksDBWriteBatchTests.mm */, - 62662E921B8FCA8C008B4EF5 /* RocksDBIndexedWriteBatchTests.m */, - 62385EB31A2FCFB100493F18 /* RocksDBIteratorTests.mm */, - 62385EB51A2FD05500493F18 /* RocksDBComparatorTests.mm */, - 623DC2551A335BAF00B61B18 /* RocksDBSnapshotTests.mm */, - 625F8F241A59D11D007796BA /* RocksDBCheckpointTests.mm */, - 620A2CAD1A3654D5007224A4 /* RocksDBMergeOperatorTests.mm */, - 6236E25B1A4E19A300A81ED6 /* RocksDBPrefixExtractorTests.mm */, - 624566C71A51DA79009AC3FB /* RocksDBColumnFamilyTests.mm */, - 627FBE761A61E0AA0038696A /* RocksDBColumnFamilyMetadataTests.mm */, - 62FC8B461A565B19003DF5C6 /* RocksDBBackupTests.mm */, - 62A8B06A1A5900540069B4C8 /* RocksDBStatisticsTests.mm */, - 625F8F1E1A59C9B3007796BA /* RocksDBPropertiesTests.mm */, - 6299F8191A17B28200123F56 /* Supporting Files */, + 628B498A1D03125900E2D828 /* FbsonDocument.h */, + 628B498B1D03125900E2D828 /* FbsonJsonParser.h */, + 628B498C1D03125900E2D828 /* FbsonStream.h */, + 628B498D1D03125900E2D828 /* FbsonUtil.h */, + 628B498E1D03125900E2D828 /* FbsonWriter.h */, ); - path = Tests; + path = fbson; sourceTree = ""; }; - 6299F8191A17B28200123F56 /* Supporting Files */ = { + 628B498F1D03125900E2D828 /* flashcache */ = { isa = PBXGroup; children = ( - 6299F81A1A17B28200123F56 /* Info.plist */, + 628B49901D03125900E2D828 /* flashcache_ioctl.h */, ); - name = "Supporting Files"; + path = flashcache; sourceTree = ""; }; - 62A8B0621A58DD620069B4C8 /* Statistics */ = { + 628B49C91D03125900E2D828 /* util */ = { isa = PBXGroup; children = ( - 62A8B0631A58DD7D0069B4C8 /* RocksDBStatistics.h */, - 62A8B0641A58DD7D0069B4C8 /* RocksDBStatistics.mm */, - 62A8B0671A58E4B60069B4C8 /* RocksDBStatisticsHistogram.h */, - 62A8B0681A58E4B60069B4C8 /* RocksDBStatisticsHistogram.mm */, + 628B49CA1D03125900E2D828 /* aligned_buffer.h */, + 628B49CB1D03125900E2D828 /* allocator.h */, + 628B49CC1D03125900E2D828 /* arena.cc */, + 628B49CD1D03125900E2D828 /* arena.h */, + 628B49CF1D03125900E2D828 /* autovector.h */, + 628B49D11D03125900E2D828 /* bloom.cc */, + 628B49D31D03125900E2D828 /* build_version.cc */, + 628B49D41D03125900E2D828 /* build_version.h */, + 628B49D51D03125900E2D828 /* cache.cc */, + 628B49D81D03125900E2D828 /* channel.h */, + 628B49D91D03125900E2D828 /* coding.cc */, + 628B49DA1D03125900E2D828 /* coding.h */, + 628B49DC1D03125900E2D828 /* compaction_job_stats_impl.cc */, + 628B49DD1D03125900E2D828 /* comparator.cc */, + 628B49DE1D03125900E2D828 /* compression.h */, + 628B49DF1D03125900E2D828 /* concurrent_arena.cc */, + 628B49E01D03125900E2D828 /* concurrent_arena.h */, + 628B49E11D03125900E2D828 /* crc32c.cc */, + 628B49E21D03125900E2D828 /* crc32c.h */, + 628B49E41D03125900E2D828 /* delete_scheduler.cc */, + 628B49E51D03125900E2D828 /* delete_scheduler.h */, + 628B49E71D03125900E2D828 /* dynamic_bloom.cc */, + 628B49E81D03125900E2D828 /* dynamic_bloom.h */, + 628B49EA1D03125900E2D828 /* env.cc */, + 628B49EB1D03125900E2D828 /* env_hdfs.cc */, + 628B49EC1D03125900E2D828 /* env_posix.cc */, + 628B49EE1D03125900E2D828 /* event_logger.cc */, + 628B49EF1D03125900E2D828 /* event_logger.h */, + 628B49F11D03125900E2D828 /* file_reader_writer.cc */, + 628B49F21D03125900E2D828 /* file_reader_writer.h */, + 628B49F41D03125900E2D828 /* file_util.cc */, + 628B49F51D03125900E2D828 /* file_util.h */, + 628B49F71D03125900E2D828 /* filter_policy.cc */, + 628B49F81D03125900E2D828 /* hash.cc */, + 628B49F91D03125900E2D828 /* hash.h */, + 628B49FA1D03125900E2D828 /* heap.h */, + 628B49FC1D03125900E2D828 /* histogram.cc */, + 628B49FD1D03125900E2D828 /* histogram.h */, + 628B49FF1D03125900E2D828 /* instrumented_mutex.cc */, + 628B4A001D03125900E2D828 /* instrumented_mutex.h */, + 628B4A011D03125900E2D828 /* io_posix.cc */, + 628B4A021D03125900E2D828 /* io_posix.h */, + 628B4A031D03125900E2D828 /* iostats_context.cc */, + 628B4A041D03125900E2D828 /* iostats_context_imp.h */, + 628B4A061D03125900E2D828 /* kv_map.h */, + 628B4A071D03125900E2D828 /* log_buffer.cc */, + 628B4A081D03125900E2D828 /* log_buffer.h */, + 628B4A0A1D03125900E2D828 /* logging.cc */, + 628B4A0B1D03125900E2D828 /* logging.h */, + 628B4A0C1D03125900E2D828 /* memenv.cc */, + 628B4A111D03125900E2D828 /* murmurhash.cc */, + 628B4A121D03125900E2D828 /* murmurhash.h */, + 628B4A131D03125900E2D828 /* mutable_cf_options.cc */, + 628B4A141D03125900E2D828 /* mutable_cf_options.h */, + 628B4A151D03125900E2D828 /* mutexlock.h */, + 628B4A161D03125900E2D828 /* options.cc */, + 628B4A171D03125900E2D828 /* options_builder.cc */, + 628B4A181D03125900E2D828 /* options_helper.cc */, + 628B4A191D03125900E2D828 /* options_helper.h */, + 628B4A1A1D03125900E2D828 /* options_parser.cc */, + 628B4A1B1D03125900E2D828 /* options_parser.h */, + 628B4A1C1D03125900E2D828 /* options_sanity_check.cc */, + 628B4A1D1D03125900E2D828 /* options_sanity_check.h */, + 628B4A1F1D03125900E2D828 /* perf_context.cc */, + 628B4A201D03125900E2D828 /* perf_context_imp.h */, + 628B4A211D03125900E2D828 /* perf_level.cc */, + 628B4A221D03125900E2D828 /* perf_level_imp.h */, + 628B4A231D03125900E2D828 /* perf_step_timer.h */, + 628B4A241D03125900E2D828 /* posix_logger.h */, + 628B4A251D03125900E2D828 /* random.cc */, + 628B4A261D03125900E2D828 /* random.h */, + 628B4A271D03125900E2D828 /* rate_limiter.cc */, + 628B4A281D03125900E2D828 /* rate_limiter.h */, + 628B4A2A1D03125900E2D828 /* slice.cc */, + 628B4A2C1D03125900E2D828 /* sst_file_manager_impl.cc */, + 628B4A2D1D03125900E2D828 /* sst_file_manager_impl.h */, + 628B4A2E1D03125900E2D828 /* statistics.cc */, + 628B4A2F1D03125900E2D828 /* statistics.h */, + 628B4A301D03125900E2D828 /* status.cc */, + 628B4A311D03125900E2D828 /* status_message.cc */, + 628B4A321D03125900E2D828 /* stop_watch.h */, + 628B4A331D03125900E2D828 /* string_util.cc */, + 628B4A341D03125900E2D828 /* string_util.h */, + 628B4A351D03125900E2D828 /* sync_point.cc */, + 628B4A361D03125900E2D828 /* sync_point.h */, + 628B4A3C1D03125900E2D828 /* thread_local.cc */, + 628B4A3D1D03125900E2D828 /* thread_local.h */, + 628B4A3F1D03125900E2D828 /* thread_operation.h */, + 628B4A401D03125900E2D828 /* thread_posix.cc */, + 628B4A411D03125900E2D828 /* thread_posix.h */, + 628B4A421D03125900E2D828 /* thread_status_impl.cc */, + 628B4A431D03125900E2D828 /* thread_status_updater.cc */, + 628B4A441D03125900E2D828 /* thread_status_updater.h */, + 628B4A451D03125900E2D828 /* thread_status_updater_debug.cc */, + 628B4A461D03125900E2D828 /* thread_status_util.cc */, + 628B4A471D03125900E2D828 /* thread_status_util.h */, + 628B4A481D03125900E2D828 /* thread_status_util_debug.cc */, + 628B4A491D03125900E2D828 /* xfunc.cc */, + 628B4A4A1D03125900E2D828 /* xfunc.h */, + 628B4A4B1D03125900E2D828 /* xxhash.cc */, + 628B4A4C1D03125900E2D828 /* xxhash.h */, ); - name = Statistics; + path = util; sourceTree = ""; }; - 62EE28FD1A1ABA1F00486C31 /* rocksdb */ = { + 628B4A4D1D03125900E2D828 /* utilities */ = { isa = PBXGroup; children = ( - 62EE29021A1ABA1F00486C31 /* AUTHORS */, - 62EE290F1A1ABA1F00486C31 /* CONTRIBUTING.md */, - 62EE29131A1ABA1F00486C31 /* db */, - 62EE29A81A1ABA1F00486C31 /* hdfs */, - 62EE29B01A1ABA1F00486C31 /* HISTORY.md */, - 62EE29B11A1ABA1F00486C31 /* include */, - 62EE29E51A1ABA1F00486C31 /* INSTALL.md */, - 62EE2A6D1A1ABA1F00486C31 /* LICENSE */, - 62EE2A781A1ABA1F00486C31 /* Makefile */, - 62EE2A791A1ABA1F00486C31 /* PATENTS */, - 62EE2A7A1A1ABA1F00486C31 /* port */, - 62EE2A871A1ABA1F00486C31 /* README.md */, - 62EE2A881A1ABA1F00486C31 /* ROCKSDB_LITE.md */, - 624C22361AF01719006DC8FA /* src.mk */, - 62EE2A891A1ABA1F00486C31 /* table */, - 62EE2AE91A1ABA2000486C31 /* third-party */, - 62EE2AF71A1ABA2000486C31 /* tools */, - 62EE2B051A1ABA2000486C31 /* util */, - 62EE2B9D1A1ABA2000486C31 /* utilities */, - 624C225A1AF01B1F006DC8FA /* USERS.md */, - 62EE2BD61A1ABA2000486C31 /* Vagrantfile */, + 628B4A4E1D03125900E2D828 /* backupable */, + 628B4A511D03125900E2D828 /* checkpoint */, + 628B4A541D03125900E2D828 /* compacted_db */, + 628B4A551D03125900E2D828 /* compaction_filters */, + 628B4A581D03125900E2D828 /* convenience */, + 628B4A5A1D03125900E2D828 /* document */, + 628B4A601D03125900E2D828 /* env_mirror.cc */, + 628B4A621D03125900E2D828 /* flashcache */, + 628B4A651D03125900E2D828 /* geodb */, + 628B4A691D03125900E2D828 /* leveldb_options */, + 628B4A6B1D03125900E2D828 /* memory */, + 628B4A6E1D03125900E2D828 /* merge_operators */, + 628B4A771D03125900E2D828 /* merge_operators.h */, + 628B4A781D03125900E2D828 /* options */, + 628B4A7B1D03125900E2D828 /* redis */, + 628B4A821D03125900E2D828 /* spatialdb */, + 628B4A861D03125900E2D828 /* table_properties_collectors */, + 628B4A8A1D03125900E2D828 /* transactions */, + 628B4A9D1D03125900E2D828 /* ttl */, + 628B4AA11D03125900E2D828 /* write_batch_with_index */, ); - name = rocksdb; - path = ../rocksdb; + path = utilities; sourceTree = ""; }; - 62EE29131A1ABA1F00486C31 /* db */ = { + 628B4A4E1D03125900E2D828 /* backupable */ = { isa = PBXGroup; children = ( - 62EE29141A1ABA1F00486C31 /* builder.cc */, - 62EE29151A1ABA1F00486C31 /* builder.h */, - 62EE29171A1ABA1F00486C31 /* c.cc */, - 62EE29191A1ABA1F00486C31 /* c_test.c */, - 62EE291A1A1ABA1F00486C31 /* column_family.cc */, - 62EE291B1A1ABA1F00486C31 /* column_family.h */, - 62EE291D1A1ABA1F00486C31 /* column_family_test.cc */, - 624C223B1AF01773006DC8FA /* compact_files_test.cc */, - 62EE291E1A1ABA1F00486C31 /* compaction.cc */, - 62EE291F1A1ABA1F00486C31 /* compaction.h */, - 62EE29211A1ABA1F00486C31 /* compaction_job.cc */, - 62EE29221A1ABA1F00486C31 /* compaction_job.h */, - 62EE29241A1ABA1F00486C31 /* compaction_job_test.cc */, - 62EE29251A1ABA1F00486C31 /* compaction_picker.cc */, - 62EE29261A1ABA1F00486C31 /* compaction_picker.h */, - 62EE29281A1ABA1F00486C31 /* compaction_picker_test.cc */, - 62EE29291A1ABA1F00486C31 /* comparator_db_test.cc */, - 62EE292A1A1ABA1F00486C31 /* corruption_test.cc */, - 62EE292B1A1ABA1F00486C31 /* cuckoo_table_db_test.cc */, - 62EE292C1A1ABA1F00486C31 /* db_bench.cc */, - 62EE292D1A1ABA1F00486C31 /* db_filesnapshot.cc */, - 624C225F1AF01C8E006DC8FA /* db_impl_experimental.cc */, - 62EE292F1A1ABA1F00486C31 /* db_impl.cc */, - 62EE29301A1ABA1F00486C31 /* db_impl.h */, - 62EE29321A1ABA1F00486C31 /* db_impl_debug.cc */, - 62EE29341A1ABA1F00486C31 /* db_impl_readonly.cc */, - 62EE29351A1ABA1F00486C31 /* db_impl_readonly.h */, - 62EE29371A1ABA1F00486C31 /* db_iter.cc */, - 62EE29381A1ABA1F00486C31 /* db_iter.h */, - 62EE293A1A1ABA1F00486C31 /* db_iter_test.cc */, - 62EE293B1A1ABA1F00486C31 /* db_test.cc */, - 62EE293C1A1ABA1F00486C31 /* dbformat.cc */, - 62EE293D1A1ABA1F00486C31 /* dbformat.h */, - 62EE293F1A1ABA1F00486C31 /* dbformat_test.cc */, - 62EE29401A1ABA1F00486C31 /* deletefile_test.cc */, - 62297D541B6AC08B00F72BF2 /* event_logger_helpers.cc */, - 62297D551B6AC08B00F72BF2 /* event_logger_helpers.h */, - 624C22621AF01CA7006DC8FA /* experimental.cc */, - 622DB8621A7EA1470026C73F /* fault_injection_test.cc */, - 62EE29411A1ABA1F00486C31 /* file_indexer.cc */, - 62EE29421A1ABA1F00486C31 /* file_indexer.h */, - 62EE29441A1ABA1F00486C31 /* file_indexer_test.cc */, - 62EE29451A1ABA1F00486C31 /* filename.cc */, - 62EE29461A1ABA1F00486C31 /* filename.h */, - 62EE29481A1ABA1F00486C31 /* filename_test.cc */, - 62EE29491A1ABA1F00486C31 /* flush_job.cc */, - 62EE294A1A1ABA1F00486C31 /* flush_job.h */, - 62EE294C1A1ABA1F00486C31 /* flush_job_test.cc */, - 62EE294D1A1ABA1F00486C31 /* flush_scheduler.cc */, - 62EE294E1A1ABA1F00486C31 /* flush_scheduler.h */, - 62EE29501A1ABA1F00486C31 /* forward_iterator.cc */, - 62EE29511A1ABA1F00486C31 /* forward_iterator.h */, - 62EE29531A1ABA1F00486C31 /* internal_stats.cc */, - 62EE29541A1ABA1F00486C31 /* internal_stats.h */, - 62EE29561A1ABA1F00486C31 /* job_context.h */, - 62EE29571A1ABA1F00486C31 /* listener_test.cc */, - 62EE29591A1ABA1F00486C31 /* log_format.h */, - 62EE295A1A1ABA1F00486C31 /* log_reader.cc */, - 62EE295B1A1ABA1F00486C31 /* log_reader.h */, - 62EE295D1A1ABA1F00486C31 /* log_test.cc */, - 62EE295E1A1ABA1F00486C31 /* log_writer.cc */, - 62EE295F1A1ABA1F00486C31 /* log_writer.h */, - 624C22261AF0161E006DC8FA /* managed_iterator.cc */, - 624C22271AF0161E006DC8FA /* managed_iterator.h */, - 62EE29611A1ABA1F00486C31 /* memtable.cc */, - 62EE29621A1ABA1F00486C31 /* memtable.h */, - 6235339E1A47722900D5CD14 /* memtable_allocator.cc */, - 6235339F1A47722900D5CD14 /* memtable_allocator.h */, - 624C225E1AF01B7A006DC8FA /* memtable_list_test.cc */, - 62EE29641A1ABA1F00486C31 /* memtable_list.cc */, - 62EE29651A1ABA1F00486C31 /* memtable_list.h */, - 62A74F831A60385D00BAD95B /* memtablerep_bench.cc */, - 62EE29671A1ABA1F00486C31 /* merge_context.h */, - 62EE29681A1ABA1F00486C31 /* merge_helper.cc */, - 62EE29691A1ABA1F00486C31 /* merge_helper.h */, - 62EE296B1A1ABA1F00486C31 /* merge_operator.cc */, - 62EE296D1A1ABA1F00486C31 /* merge_test.cc */, - 62EE296E1A1ABA1F00486C31 /* perf_context_test.cc */, - 62EE296F1A1ABA1F00486C31 /* plain_table_db_test.cc */, - 62EE29701A1ABA1F00486C31 /* prefix_test.cc */, - 62EE29711A1ABA1F00486C31 /* repair.cc */, - 62EE29731A1ABA1F00486C31 /* skiplist.h */, - 62EE29741A1ABA1F00486C31 /* skiplist_test.cc */, - 624C224A1AF01880006DC8FA /* slice.cc */, - 62EE29751A1ABA1F00486C31 /* snapshot.h */, - 62EE29761A1ABA1F00486C31 /* table_cache.cc */, - 62EE29771A1ABA1F00486C31 /* table_cache.h */, - 62EE29791A1ABA1F00486C31 /* table_properties_collector.cc */, - 62EE297A1A1ABA1F00486C31 /* table_properties_collector.h */, - 62EE297C1A1ABA1F00486C31 /* table_properties_collector_test.cc */, - 62EE297D1A1ABA1F00486C31 /* transaction_log_impl.cc */, - 62EE297E1A1ABA1F00486C31 /* transaction_log_impl.h */, - 62EE29801A1ABA1F00486C31 /* version_builder.cc */, - 62EE29811A1ABA1F00486C31 /* version_builder.h */, - 62EE29831A1ABA1F00486C31 /* version_builder_test.cc */, - 62EE29841A1ABA1F00486C31 /* version_edit.cc */, - 62EE29851A1ABA1F00486C31 /* version_edit.h */, - 62EE29871A1ABA1F00486C31 /* version_edit_test.cc */, - 62EE29881A1ABA1F00486C31 /* version_set.cc */, - 62EE29891A1ABA1F00486C31 /* version_set.h */, - 62EE298B1A1ABA1F00486C31 /* version_set_test.cc */, - 62EE298C1A1ABA1F00486C31 /* wal_manager.cc */, - 62EE298D1A1ABA1F00486C31 /* wal_manager.h */, - 62EE298F1A1ABA1F00486C31 /* wal_manager_test.cc */, - 624C224D1AF0188B006DC8FA /* write_batch_base.cc */, - 62EE29901A1ABA1F00486C31 /* write_batch.cc */, - 62EE29921A1ABA1F00486C31 /* write_batch_internal.h */, - 62EE29931A1ABA1F00486C31 /* write_batch_test.cc */, - 62EE29941A1ABA1F00486C31 /* write_controller.cc */, - 62EE29951A1ABA1F00486C31 /* write_controller.h */, - 62EE29971A1ABA1F00486C31 /* write_controller_test.cc */, - 62EE29981A1ABA1F00486C31 /* write_thread.cc */, - 62EE29991A1ABA1F00486C31 /* write_thread.h */, - 623533A11A47724D00D5CD14 /* writebuffer.h */, + 628B4A4F1D03125900E2D828 /* backupable_db.cc */, ); - path = db; + path = backupable; sourceTree = ""; }; - 62EE29A81A1ABA1F00486C31 /* hdfs */ = { + 628B4A511D03125900E2D828 /* checkpoint */ = { isa = PBXGroup; children = ( - 62EE29A91A1ABA1F00486C31 /* env_hdfs.h */, - 62EE29AA1A1ABA1F00486C31 /* README */, - 62EE29AB1A1ABA1F00486C31 /* setup.sh */, + 628B4A521D03125900E2D828 /* checkpoint.cc */, ); - path = hdfs; + path = checkpoint; sourceTree = ""; }; - 62EE29B11A1ABA1F00486C31 /* include */ = { + 628B4A541D03125900E2D828 /* compacted_db */ = { isa = PBXGroup; children = ( - 62EE29B21A1ABA1F00486C31 /* rocksdb */, - 62EE29DD1A1ABA1F00486C31 /* utilities */, ); - path = include; + path = compacted_db; sourceTree = ""; }; - 62EE29B21A1ABA1F00486C31 /* rocksdb */ = { + 628B4A551D03125900E2D828 /* compaction_filters */ = { isa = PBXGroup; children = ( - 62EE29B31A1ABA1F00486C31 /* c.h */, - 62EE29B41A1ABA1F00486C31 /* cache.h */, - 62269ED91A1FF266005A58D3 /* checkpoint.h */, - 62EE29B51A1ABA1F00486C31 /* compaction_filter.h */, - 62EE29B61A1ABA1F00486C31 /* comparator.h */, - 62EE29B71A1ABA1F00486C31 /* db.h */, - 62EE29B81A1ABA1F00486C31 /* env.h */, - 624C22651AF01CE0006DC8FA /* experimental.h */, - 62EE29B91A1ABA1F00486C31 /* filter_policy.h */, - 624C22511AF0193B006DC8FA /* flashcache.h */, - 62EE29BA1A1ABA1F00486C31 /* flush_block_policy.h */, - 62EE29BB1A1ABA1F00486C31 /* immutable_options.h */, - 62EE29BC1A1ABA1F00486C31 /* iostats_context.h */, - 62EE29BD1A1ABA1F00486C31 /* iterator.h */, - 62EE29BE1A1ABA1F00486C31 /* ldb_tool.h */, - 62EE29BF1A1ABA1F00486C31 /* listener.h */, - 62EE29C01A1ABA1F00486C31 /* memtablerep.h */, - 62EE29C11A1ABA1F00486C31 /* merge_operator.h */, - 62EE29C21A1ABA1F00486C31 /* metadata.h */, - 62EE29C31A1ABA1F00486C31 /* options.h */, - 62EE29C41A1ABA1F00486C31 /* perf_context.h */, - 62EE29C51A1ABA1F00486C31 /* rate_limiter.h */, - 62EE29C61A1ABA1F00486C31 /* slice.h */, - 62EE29C71A1ABA1F00486C31 /* slice_transform.h */, - 62EE29C81A1ABA1F00486C31 /* sst_dump_tool.h */, - 62EE29C91A1ABA1F00486C31 /* statistics.h */, - 62EE29CA1A1ABA1F00486C31 /* status.h */, - 62EE29CB1A1ABA1F00486C31 /* table.h */, - 62EE29CC1A1ABA1F00486C31 /* table_properties.h */, - 623147601A5AF1190019D14A /* thread_status.h */, - 62EE29CD1A1ABA1F00486C31 /* transaction_log.h */, - 62EE29CE1A1ABA1F00486C31 /* types.h */, - 62EE29CF1A1ABA1F00486C31 /* universal_compaction.h */, - 62EE29D01A1ABA1F00486C31 /* utilities */, - 62EE29DB1A1ABA1F00486C31 /* version.h */, - 62EE29DC1A1ABA1F00486C31 /* write_batch.h */, - 624C22501AF018B6006DC8FA /* write_batch_base.h */, + 628B4A561D03125900E2D828 /* remove_emptyvalue_compactionfilter.cc */, + 628B4A571D03125900E2D828 /* remove_emptyvalue_compactionfilter.h */, ); - path = rocksdb; + path = compaction_filters; sourceTree = ""; }; - 62EE29D01A1ABA1F00486C31 /* utilities */ = { + 628B4A581D03125900E2D828 /* convenience */ = { isa = PBXGroup; children = ( - 62EE29D11A1ABA1F00486C31 /* backupable_db.h */, - 62EE29D21A1ABA1F00486C31 /* convenience.h */, - 62EE29D31A1ABA1F00486C31 /* db_ttl.h */, - 62EE29D41A1ABA1F00486C31 /* document_db.h */, - 62EE29D51A1ABA1F00486C31 /* geo_db.h */, - 62EE29D61A1ABA1F00486C31 /* json_document.h */, - 62269EDD1A1FF2B2005A58D3 /* leveldb_options.h */, - 62EE29D71A1ABA1F00486C31 /* spatial_db.h */, - 62EE29D81A1ABA1F00486C31 /* stackable_db.h */, - 62EE29D91A1ABA1F00486C31 /* utility_db.h */, - 62EE29DA1A1ABA1F00486C31 /* write_batch_with_index.h */, + 628B4A591D03125900E2D828 /* info_log_finder.cc */, ); - path = utilities; + path = convenience; sourceTree = ""; }; - 62EE29DD1A1ABA1F00486C31 /* utilities */ = { + 628B4A5A1D03125900E2D828 /* document */ = { isa = PBXGroup; children = ( - 62EE29DE1A1ABA1F00486C31 /* backupable_db.h */, - 62EE29DF1A1ABA1F00486C31 /* db_ttl.h */, - 62EE29E01A1ABA1F00486C31 /* document_db.h */, - 62EE29E11A1ABA1F00486C31 /* geo_db.h */, - 62EE29E21A1ABA1F00486C31 /* json_document.h */, - 62EE29E31A1ABA1F00486C31 /* stackable_db.h */, - 62EE29E41A1ABA1F00486C31 /* utility_db.h */, + 628B4A5B1D03125900E2D828 /* document_db.cc */, + 628B4A5D1D03125900E2D828 /* json_document.cc */, + 628B4A5E1D03125900E2D828 /* json_document_builder.cc */, ); - path = utilities; + path = document; sourceTree = ""; }; - 62EE2A7A1A1ABA1F00486C31 /* port */ = { + 628B4A621D03125900E2D828 /* flashcache */ = { isa = PBXGroup; children = ( - 62EE2A7B1A1ABA1F00486C31 /* likely.h */, - 62EE2A7C1A1ABA1F00486C31 /* port.h */, - 62EE2A7D1A1ABA1F00486C31 /* port_example.h */, - 62EE2A7E1A1ABA1F00486C31 /* port_posix.cc */, - 62EE2A7F1A1ABA1F00486C31 /* port_posix.h */, - 62EE2A811A1ABA1F00486C31 /* README */, - 62EE2A821A1ABA1F00486C31 /* stack_trace.cc */, - 62EE2A831A1ABA1F00486C31 /* stack_trace.h */, - 62EE2A851A1ABA1F00486C31 /* win */, + 628B4A631D03125900E2D828 /* flashcache.cc */, + 628B4A641D03125900E2D828 /* flashcache.h */, ); - path = port; + path = flashcache; sourceTree = ""; }; - 62EE2A851A1ABA1F00486C31 /* win */ = { + 628B4A651D03125900E2D828 /* geodb */ = { isa = PBXGroup; children = ( - 62EE2A861A1ABA1F00486C31 /* stdint.h */, + 628B4A661D03125900E2D828 /* geodb_impl.cc */, + 628B4A671D03125900E2D828 /* geodb_impl.h */, ); - path = win; + path = geodb; sourceTree = ""; }; - 62EE2A891A1ABA1F00486C31 /* table */ = { + 628B4A691D03125900E2D828 /* leveldb_options */ = { isa = PBXGroup; children = ( - 62EE2A8A1A1ABA1F00486C31 /* adaptive_table_factory.cc */, - 62EE2A8B1A1ABA1F00486C31 /* adaptive_table_factory.h */, - 62EE2A8D1A1ABA1F00486C31 /* block.cc */, - 62EE2A8E1A1ABA1F00486C31 /* block.h */, - 62EE2A901A1ABA1F00486C31 /* block_based_filter_block.cc */, - 62EE2A911A1ABA1F00486C31 /* block_based_filter_block.h */, - 62EE2A931A1ABA1F00486C31 /* block_based_filter_block_test.cc */, - 62EE2A941A1ABA1F00486C31 /* block_based_table_builder.cc */, - 62EE2A951A1ABA1F00486C31 /* block_based_table_builder.h */, - 62EE2A971A1ABA1F00486C31 /* block_based_table_factory.cc */, - 62EE2A981A1ABA1F00486C31 /* block_based_table_factory.h */, - 62EE2A9A1A1ABA1F00486C31 /* block_based_table_reader.cc */, - 62EE2A9B1A1ABA1F00486C31 /* block_based_table_reader.h */, - 62EE2A9D1A1ABA1F00486C31 /* block_builder.cc */, - 62EE2A9E1A1ABA1F00486C31 /* block_builder.h */, - 62EE2AA01A1ABA1F00486C31 /* block_hash_index.cc */, - 62EE2AA11A1ABA1F00486C31 /* block_hash_index.h */, - 62EE2AA31A1ABA1F00486C31 /* block_hash_index_test.cc */, - 62EE2AA41A1ABA1F00486C31 /* block_prefix_index.cc */, - 62EE2AA51A1ABA1F00486C31 /* block_prefix_index.h */, - 62EE2AA71A1ABA1F00486C31 /* block_test.cc */, - 62EE2AA81A1ABA1F00486C31 /* bloom_block.cc */, - 62EE2AA91A1ABA1F00486C31 /* bloom_block.h */, - 62EE2AAB1A1ABA1F00486C31 /* cuckoo_table_builder.cc */, - 62EE2AAC1A1ABA1F00486C31 /* cuckoo_table_builder.h */, - 62EE2AAE1A1ABA1F00486C31 /* cuckoo_table_builder_test.cc */, - 62EE2AAF1A1ABA1F00486C31 /* cuckoo_table_factory.cc */, - 62EE2AB01A1ABA1F00486C31 /* cuckoo_table_factory.h */, - 62EE2AB21A1ABA1F00486C31 /* cuckoo_table_reader.cc */, - 62EE2AB31A1ABA1F00486C31 /* cuckoo_table_reader.h */, - 62EE2AB51A1ABA1F00486C31 /* cuckoo_table_reader_test.cc */, - 62EE2AB61A1ABA1F00486C31 /* filter_block.h */, - 62EE2AB71A1ABA1F00486C31 /* flush_block_policy.cc */, - 62EE2AB91A1ABA1F00486C31 /* format.cc */, - 62EE2ABA1A1ABA1F00486C31 /* format.h */, - 62EE2ABC1A1ABA1F00486C31 /* full_filter_block.cc */, - 62EE2ABD1A1ABA1F00486C31 /* full_filter_block.h */, - 62EE2ABF1A1ABA1F00486C31 /* full_filter_block_test.cc */, - 62EE2AC01A1ABA1F00486C31 /* get_context.cc */, - 62EE2AC11A1ABA1F00486C31 /* get_context.h */, - 62EE2AC31A1ABA1F00486C31 /* iter_heap.h */, - 62EE2AC41A1ABA1F00486C31 /* iterator.cc */, - 62EE2AC61A1ABA1F00486C31 /* iterator_wrapper.h */, - 62EE2AC71A1ABA1F00486C31 /* merger.cc */, - 62EE2AC81A1ABA1F00486C31 /* merger.h */, - 62EE2ACA1A1ABA1F00486C31 /* merger_test.cc */, - 62EE2ACB1A1ABA1F00486C31 /* meta_blocks.cc */, - 62EE2ACC1A1ABA1F00486C31 /* meta_blocks.h */, - 62EE2ACE1A1ABA1F00486C31 /* mock_table.cc */, - 62EE2ACF1A1ABA1F00486C31 /* mock_table.h */, - 62EE2AD01A1ABA1F00486C31 /* plain_table_builder.cc */, - 62EE2AD11A1ABA1F00486C31 /* plain_table_builder.h */, - 62EE2AD31A1ABA1F00486C31 /* plain_table_factory.cc */, - 62EE2AD41A1ABA1F00486C31 /* plain_table_factory.h */, - 62EE2AD61A1ABA1F00486C31 /* plain_table_index.cc */, - 62EE2AD71A1ABA1F00486C31 /* plain_table_index.h */, - 62EE2AD91A1ABA1F00486C31 /* plain_table_key_coding.cc */, - 62EE2ADA1A1ABA1F00486C31 /* plain_table_key_coding.h */, - 62EE2ADC1A1ABA1F00486C31 /* plain_table_reader.cc */, - 62EE2ADD1A1ABA1F00486C31 /* plain_table_reader.h */, - 62EE2ADF1A1ABA1F00486C31 /* table_builder.h */, - 62EE2AE01A1ABA1F00486C31 /* table_properties.cc */, - 62EE2AE21A1ABA1F00486C31 /* table_properties_internal.h */, - 62EE2AE31A1ABA1F00486C31 /* table_reader.h */, - 62EE2AE41A1ABA1F00486C31 /* table_reader_bench.cc */, - 62EE2AE51A1ABA1F00486C31 /* table_test.cc */, - 62EE2AE61A1ABA1F00486C31 /* two_level_iterator.cc */, - 62EE2AE71A1ABA1F00486C31 /* two_level_iterator.h */, + 628B4A6A1D03125900E2D828 /* leveldb_options.cc */, ); - path = table; + path = leveldb_options; sourceTree = ""; }; - 62EE2AE91A1ABA2000486C31 /* third-party */ = { + 628B4A6B1D03125900E2D828 /* memory */ = { isa = PBXGroup; children = ( - 624C222A1AF016B7006DC8FA /* fbson */, - 624C22521AF0194E006DC8FA /* flashcache */, - 624C22431AF017F1006DC8FA /* gtest-1.7.0 */, + 628B4A6D1D03125900E2D828 /* memory_util.cc */, ); - path = "third-party"; + path = memory; sourceTree = ""; }; - 62EE2AF71A1ABA2000486C31 /* tools */ = { + 628B4A6E1D03125900E2D828 /* merge_operators */ = { isa = PBXGroup; children = ( - 626A7D4B1A27EC570098A979 /* rdb */, - 62EE2AF81A1ABA2000486C31 /* auto_sanity_test.sh */, - 62EE2AF91A1ABA2000486C31 /* benchmark.sh */, - 624C22661AF01D30006DC8FA /* benchmark_leveldb.sh */, - 624C225B1AF01B3E006DC8FA /* check_format_compatible.sh */, - 62EE2AFB1A1ABA2000486C31 /* db_crashtest.py */, - 62EE2AFC1A1ABA2000486C31 /* db_crashtest2.py */, - 62EE2AFD1A1ABA2000486C31 /* db_repl_stress.cc */, - 62EE2AFE1A1ABA2000486C31 /* db_sanity_test.cc */, - 62EE2AFF1A1ABA2000486C31 /* db_stress.cc */, - 624C221E1AF01590006DC8FA /* dbench_monitor */, - 624C225C1AF01B45006DC8FA /* generate_random_db.sh */, - 62EE2B001A1ABA2000486C31 /* ldb.cc */, - 62EE2B011A1ABA2000486C31 /* ldb_test.py */, - 624C221F1AF01597006DC8FA /* pflag */, - 62EE2B021A1ABA2000486C31 /* reduce_levels_test.cc */, - 62EE2B031A1ABA2000486C31 /* run_flash_bench.sh */, - 624C22671AF01D36006DC8FA /* run_leveldb.sh */, - 62EE2B041A1ABA2000486C31 /* sst_dump.cc */, - 624C225D1AF01B4C006DC8FA /* verify_random_db.sh */, - ); - path = tools; + 628B4A6F1D03125900E2D828 /* put.cc */, + 628B4A701D03125900E2D828 /* string_append */, + 628B4A761D03125900E2D828 /* uint64add.cc */, + ); + path = merge_operators; sourceTree = ""; }; - 62EE2B051A1ABA2000486C31 /* util */ = { + 628B4A701D03125900E2D828 /* string_append */ = { isa = PBXGroup; children = ( - 623533A21A4772AC00D5CD14 /* allocator.h */, - 62EE2B061A1ABA2000486C31 /* arena.cc */, - 62EE2B071A1ABA2000486C31 /* arena.h */, - 62EE2B091A1ABA2000486C31 /* arena_test.cc */, - 62EE2B0A1A1ABA2000486C31 /* auto_roll_logger.cc */, - 62EE2B0B1A1ABA2000486C31 /* auto_roll_logger.h */, - 62EE2B0D1A1ABA2000486C31 /* auto_roll_logger_test.cc */, - 62EE2B0E1A1ABA2000486C31 /* autovector.h */, - 62EE2B0F1A1ABA2000486C31 /* autovector_test.cc */, - 62EE2B171A1ABA2000486C31 /* bloom.cc */, - 62EE2B191A1ABA2000486C31 /* bloom_test.cc */, - 62EE2B1B1A1ABA2000486C31 /* build_version.h */, - 62297D591B6AC8CE00F72BF2 /* build_version.cc */, - 62EE2B1D1A1ABA2000486C31 /* cache.cc */, - 62EE2B1F1A1ABA2000486C31 /* cache_bench.cc */, - 62EE2B201A1ABA2000486C31 /* cache_test.cc */, - 62EE2B211A1ABA2000486C31 /* coding.cc */, - 62EE2B221A1ABA2000486C31 /* coding.h */, - 62EE2B241A1ABA2000486C31 /* coding_test.cc */, - 62EE2B251A1ABA2000486C31 /* comparator.cc */, - 622DB85E1A7E9FFB0026C73F /* compression.h */, - 62EE2B271A1ABA2000486C31 /* crc32c.cc */, - 62EE2B281A1ABA2000486C31 /* crc32c.h */, - 62EE2B2A1A1ABA2000486C31 /* crc32c_test.cc */, - 62EE2B2B1A1ABA2000486C31 /* db_info_dumper.cc */, - 62EE2B2C1A1ABA2000486C31 /* db_info_dumper.h */, - 62EE2B2E1A1ABA2000486C31 /* dynamic_bloom.cc */, - 62EE2B2F1A1ABA2000486C31 /* dynamic_bloom.h */, - 62EE2B311A1ABA2000486C31 /* dynamic_bloom_test.cc */, - 62EE2B321A1ABA2000486C31 /* env.cc */, - 62EE2B341A1ABA2000486C31 /* env_hdfs.cc */, - 62EE2B361A1ABA2000486C31 /* env_posix.cc */, - 62EE2B381A1ABA2000486C31 /* env_test.cc */, - 624C223C1AF017B6006DC8FA /* event_logger_test.cc */, - 624C223D1AF017B6006DC8FA /* event_logger.cc */, - 624C223E1AF017B6006DC8FA /* event_logger.h */, - 62EE2B391A1ABA2000486C31 /* file_util.cc */, - 62EE2B3A1A1ABA2000486C31 /* file_util.h */, - 62EE2B3C1A1ABA2000486C31 /* filelock_test.cc */, - 62EE2B3D1A1ABA2000486C31 /* filter_policy.cc */, - 62EE2B3F1A1ABA2000486C31 /* hash.cc */, - 62EE2B401A1ABA2000486C31 /* hash.h */, - 62EE2B421A1ABA2000486C31 /* hash_cuckoo_rep.cc */, - 62EE2B431A1ABA2000486C31 /* hash_cuckoo_rep.h */, - 62EE2B451A1ABA2000486C31 /* hash_linklist_rep.cc */, - 62EE2B461A1ABA2000486C31 /* hash_linklist_rep.h */, - 62EE2B481A1ABA2000486C31 /* hash_skiplist_rep.cc */, - 62EE2B491A1ABA2000486C31 /* hash_skiplist_rep.h */, - 62EE2B4B1A1ABA2000486C31 /* histogram.cc */, - 62EE2B4C1A1ABA2000486C31 /* histogram.h */, - 62EE2B4E1A1ABA2000486C31 /* histogram_test.cc */, - 624C22691AF02B1B006DC8FA /* instrumented_mutex.cc */, - 624C226A1AF02B1B006DC8FA /* instrumented_mutex.h */, - 62EE2B4F1A1ABA2000486C31 /* iostats_context.cc */, - 62EE2B511A1ABA2000486C31 /* iostats_context_imp.h */, - 62EE2B521A1ABA2000486C31 /* ldb_cmd.cc */, - 62EE2B531A1ABA2000486C31 /* ldb_cmd.h */, - 62EE2B551A1ABA2000486C31 /* ldb_cmd_execute_result.h */, - 62EE2B561A1ABA2000486C31 /* ldb_tool.cc */, - 62EE2B581A1ABA2000486C31 /* log_buffer.cc */, - 62EE2B591A1ABA2000486C31 /* log_buffer.h */, - 62EE2B5B1A1ABA2000486C31 /* log_write_bench.cc */, - 62EE2B5C1A1ABA2000486C31 /* logging.cc */, - 62EE2B5D1A1ABA2000486C31 /* logging.h */, - 62EE2B5F1A1ABA2000486C31 /* manual_compaction_test.cc */, - 622DB8641A7EA1CB0026C73F /* memenv_test.cc */, - 622DB8651A7EA1CB0026C73F /* memenv.cc */, - 62EE2B601A1ABA2000486C31 /* mock_env.cc */, - 62EE2B611A1ABA2000486C31 /* mock_env.h */, - 62EE2B621A1ABA2000486C31 /* mock_env_test.cc */, - 62EE2B631A1ABA2000486C31 /* murmurhash.cc */, - 62EE2B641A1ABA2000486C31 /* murmurhash.h */, - 62EE2B661A1ABA2000486C31 /* mutable_cf_options.cc */, - 62EE2B671A1ABA2000486C31 /* mutable_cf_options.h */, - 62EE2B691A1ABA2000486C31 /* mutexlock.h */, - 62EE2B6A1A1ABA2000486C31 /* options.cc */, - 62EE2B6C1A1ABA2000486C31 /* options_builder.cc */, - 62EE2B6E1A1ABA2000486C31 /* options_helper.cc */, - 62EE2B6F1A1ABA2000486C31 /* options_helper.h */, - 62EE2B711A1ABA2000486C31 /* options_test.cc */, - 62EE2B721A1ABA2000486C31 /* perf_context.cc */, - 62EE2B741A1ABA2000486C31 /* perf_context_imp.h */, - 62EE2B751A1ABA2000486C31 /* posix_logger.h */, - 62EE2B761A1ABA2000486C31 /* random.h */, - 62EE2B771A1ABA2000486C31 /* rate_limiter.cc */, - 62EE2B781A1ABA2000486C31 /* rate_limiter.h */, - 62EE2B7A1A1ABA2000486C31 /* rate_limiter_test.cc */, - 62EE2B7B1A1ABA2000486C31 /* scoped_arena_iterator.h */, - 62EE2B7D1A1ABA2000486C31 /* skiplistrep.cc */, - 622DB86B1A7EA2970026C73F /* slice_transform_test.cc */, - 62EE2B7F1A1ABA2000486C31 /* slice.cc */, - 62EE2B811A1ABA2000486C31 /* sst_dump_tool.cc */, - 62EE2B831A1ABA2000486C31 /* statistics.cc */, - 62EE2B841A1ABA2000486C31 /* statistics.h */, - 62EE2B861A1ABA2000486C31 /* status.cc */, - 62EE2B881A1ABA2000486C31 /* stl_wrappers.h */, - 62EE2B891A1ABA2000486C31 /* stop_watch.h */, - 62EE2B8A1A1ABA2000486C31 /* string_util.cc */, - 62EE2B8B1A1ABA2000486C31 /* string_util.h */, - 62451AD51A4BD63D00AF11C8 /* sst_dump_test.cc */, - 62451AD41A4BD61700AF11C8 /* sst_dump_tool.cc */, - 62451ACB1A4BC7A600AF11C8 /* sst_dump_tool_imp.h */, - 62EE2B8D1A1ABA2000486C31 /* sync_point.cc */, - 62EE2B8E1A1ABA2000486C31 /* sync_point.h */, - 62EE2B901A1ABA2000486C31 /* testharness.cc */, - 62EE2B911A1ABA2000486C31 /* testharness.h */, - 62EE2B921A1ABA2000486C31 /* testutil.cc */, - 62EE2B931A1ABA2000486C31 /* testutil.h */, - 624C22681AF0217C006DC8FA /* thread_list_test.cc */, - 62EE2B941A1ABA2000486C31 /* thread_local.cc */, - 62EE2B951A1ABA2000486C31 /* thread_local.h */, - 62EE2B971A1ABA2000486C31 /* thread_local_test.cc */, - 62A74F821A6037F500BAD95B /* thread_operation.h */, - 624C221B1AF014E0006DC8FA /* thread_status_impl.cc */, - 62451ACC1A4BC85400AF11C8 /* thread_status_updater_debug.cc */, - 62451ACD1A4BC85400AF11C8 /* thread_status_updater.cc */, - 62451ACE1A4BC85400AF11C8 /* thread_status_updater.h */, - 624C22231AF015E4006DC8FA /* thread_status_util_debug.cc */, - 62451ACF1A4BC85400AF11C8 /* thread_status_util.cc */, - 62451AD01A4BC85400AF11C8 /* thread_status_util.h */, - 62EE2B981A1ABA2000486C31 /* vectorrep.cc */, - 624C22171AF01485006DC8FA /* xfunc.cc */, - 624C221A1AF0148B006DC8FA /* xfunc.h */, - 62EE2B9A1A1ABA2000486C31 /* xxhash.cc */, - 62EE2B9B1A1ABA2000486C31 /* xxhash.h */, + 628B4A711D03125900E2D828 /* stringappend.cc */, + 628B4A721D03125900E2D828 /* stringappend.h */, + 628B4A731D03125900E2D828 /* stringappend2.cc */, + 628B4A741D03125900E2D828 /* stringappend2.h */, ); - path = util; + path = string_append; sourceTree = ""; }; - 62EE2B9D1A1ABA2000486C31 /* utilities */ = { + 628B4A781D03125900E2D828 /* options */ = { isa = PBXGroup; children = ( - 62EE2B9E1A1ABA2000486C31 /* backupable */, - 62269EDA1A1FF27A005A58D3 /* checkpoint */, - 62EE2BA21A1ABA2000486C31 /* compacted_db */, - 624C22371AF0174B006DC8FA /* convenience */, - 62EE2BA61A1ABA2000486C31 /* document */, - 624C22541AF0195F006DC8FA /* flashcache */, - 62EE2BAD1A1ABA2000486C31 /* geodb */, - 62269EDE1A1FF2DC005A58D3 /* leveldb_options */, - 62EE2BB21A1ABA2000486C31 /* merge_operators */, - 62EE2BBF1A1ABA2000486C31 /* merge_operators.h */, - 62EE2BC01A1ABA2000486C31 /* redis */, - 62EE2BC81A1ABA2000486C31 /* spatialdb */, - 62EE2BCD1A1ABA2000486C31 /* ttl */, - 62EE2BD21A1ABA2000486C31 /* write_batch_with_index */, + 628B4A791D03125900E2D828 /* options_util.cc */, ); - path = utilities; + path = options; sourceTree = ""; }; - 62EE2B9E1A1ABA2000486C31 /* backupable */ = { + 628B4A7B1D03125900E2D828 /* redis */ = { isa = PBXGroup; children = ( - 62EE2B9F1A1ABA2000486C31 /* backupable_db.cc */, - 62EE2BA11A1ABA2000486C31 /* backupable_db_test.cc */, + 628B4A7D1D03125900E2D828 /* redis_list_exception.h */, + 628B4A7E1D03125900E2D828 /* redis_list_iterator.h */, + 628B4A7F1D03125900E2D828 /* redis_lists.cc */, + 628B4A801D03125900E2D828 /* redis_lists.h */, ); - path = backupable; + path = redis; sourceTree = ""; }; - 62EE2BA21A1ABA2000486C31 /* compacted_db */ = { + 628B4A821D03125900E2D828 /* spatialdb */ = { isa = PBXGroup; children = ( - 62EE2BA31A1ABA2000486C31 /* compacted_db_impl.cc */, - 62EE2BA41A1ABA2000486C31 /* compacted_db_impl.h */, + 628B4A831D03125900E2D828 /* spatial_db.cc */, + 628B4A851D03125900E2D828 /* utils.h */, ); - path = compacted_db; + path = spatialdb; sourceTree = ""; }; - 62EE2BA61A1ABA2000486C31 /* document */ = { + 628B4A861D03125900E2D828 /* table_properties_collectors */ = { isa = PBXGroup; children = ( - 62EE2BA71A1ABA2000486C31 /* document_db.cc */, - 62EE2BA91A1ABA2000486C31 /* document_db_test.cc */, - 624C22331AF016EE006DC8FA /* json_document_builder.cc */, - 62EE2BAA1A1ABA2000486C31 /* json_document.cc */, - 62EE2BAC1A1ABA2000486C31 /* json_document_test.cc */, + 628B4A871D03125900E2D828 /* compact_on_deletion_collector.cc */, + 628B4A881D03125900E2D828 /* compact_on_deletion_collector.h */, ); - path = document; + path = table_properties_collectors; sourceTree = ""; }; - 62EE2BAD1A1ABA2000486C31 /* geodb */ = { + 628B4A8A1D03125900E2D828 /* transactions */ = { isa = PBXGroup; children = ( - 62EE2BAE1A1ABA2000486C31 /* geodb_impl.cc */, - 62EE2BAF1A1ABA2000486C31 /* geodb_impl.h */, - 62EE2BB11A1ABA2000486C31 /* geodb_test.cc */, + 628B4A8B1D03125900E2D828 /* optimistic_transaction_db_impl.cc */, + 628B4A8C1D03125900E2D828 /* optimistic_transaction_db_impl.h */, + 628B4A8D1D03125900E2D828 /* optimistic_transaction_impl.cc */, + 628B4A8E1D03125900E2D828 /* optimistic_transaction_impl.h */, + 628B4A901D03125900E2D828 /* transaction_base.cc */, + 628B4A911D03125900E2D828 /* transaction_base.h */, + 628B4A921D03125900E2D828 /* transaction_db_impl.cc */, + 628B4A931D03125900E2D828 /* transaction_db_impl.h */, + 628B4A941D03125900E2D828 /* transaction_db_mutex_impl.cc */, + 628B4A951D03125900E2D828 /* transaction_db_mutex_impl.h */, + 628B4A961D03125900E2D828 /* transaction_impl.cc */, + 628B4A971D03125900E2D828 /* transaction_impl.h */, + 628B4A981D03125900E2D828 /* transaction_lock_mgr.cc */, + 628B4A991D03125900E2D828 /* transaction_lock_mgr.h */, + 628B4A9B1D03125900E2D828 /* transaction_util.cc */, + 628B4A9C1D03125900E2D828 /* transaction_util.h */, ); - path = geodb; + path = transactions; sourceTree = ""; }; - 62EE2BB21A1ABA2000486C31 /* merge_operators */ = { + 628B4A9D1D03125900E2D828 /* ttl */ = { isa = PBXGroup; children = ( - 62EE2BB31A1ABA2000486C31 /* put.cc */, - 62EE2BB51A1ABA2000486C31 /* string_append */, - 62EE2BBD1A1ABA2000486C31 /* uint64add.cc */, + 628B4A9E1D03125900E2D828 /* db_ttl_impl.cc */, + 628B4A9F1D03125900E2D828 /* db_ttl_impl.h */, ); - path = merge_operators; + path = ttl; sourceTree = ""; }; - 62EE2BB51A1ABA2000486C31 /* string_append */ = { + 628B4AA11D03125900E2D828 /* write_batch_with_index */ = { isa = PBXGroup; children = ( - 62EE2BB61A1ABA2000486C31 /* stringappend.cc */, - 62EE2BB71A1ABA2000486C31 /* stringappend.h */, - 62EE2BB91A1ABA2000486C31 /* stringappend2.cc */, - 62EE2BBA1A1ABA2000486C31 /* stringappend2.h */, - 62EE2BBC1A1ABA2000486C31 /* stringappend_test.cc */, + 628B4AA21D03125900E2D828 /* write_batch_with_index.cc */, + 628B4AA31D03125900E2D828 /* write_batch_with_index_internal.cc */, + 628B4AA41D03125900E2D828 /* write_batch_with_index_internal.h */, ); - path = string_append; + path = write_batch_with_index; sourceTree = ""; }; - 62EE2BC01A1ABA2000486C31 /* redis */ = { + 6299F8001A17B28200123F56 = { isa = PBXGroup; children = ( - 62EE2BC11A1ABA2000486C31 /* README */, - 62EE2BC21A1ABA2000486C31 /* redis_list_exception.h */, - 62EE2BC31A1ABA2000486C31 /* redis_list_iterator.h */, - 62EE2BC41A1ABA2000486C31 /* redis_lists.cc */, - 62EE2BC51A1ABA2000486C31 /* redis_lists.h */, - 62EE2BC71A1ABA2000486C31 /* redis_lists_test.cc */, + 6299F80B1A17B28200123F56 /* Source */, + 6299F8181A17B28200123F56 /* Tests */, + 624203C11BED64410043DD6F /* Framework */, + 6299F80A1A17B28200123F56 /* Products */, ); - path = redis; sourceTree = ""; }; - 62EE2BC81A1ABA2000486C31 /* spatialdb */ = { + 6299F80A1A17B28200123F56 /* Products */ = { isa = PBXGroup; children = ( - 62EE2BC91A1ABA2000486C31 /* spatial_db.cc */, - 62EE2BCB1A1ABA2000486C31 /* spatial_db_test.cc */, - 62EE2BCC1A1ABA2000486C31 /* utils.h */, + 6299F8141A17B28200123F56 /* ObjectiveRocksTests.xctest */, + 62A8B0571A58C40A0069B4C8 /* ObjectiveRocksTests-iOS.xctest */, + 624203C01BED64410043DD6F /* ObjectiveRocks.framework */, + 624F5D981BEE416D00497FEF /* ObjectiveRocks.framework */, ); - path = spatialdb; + name = Products; sourceTree = ""; }; - 62EE2BCD1A1ABA2000486C31 /* ttl */ = { + 6299F80B1A17B28200123F56 /* Source */ = { isa = PBXGroup; children = ( - 62EE2BCE1A1ABA2000486C31 /* db_ttl_impl.cc */, - 62EE2BCF1A1ABA2000486C31 /* db_ttl_impl.h */, - 62EE2BD11A1ABA2000486C31 /* ttl_test.cc */, + 62AEF9B81A1D5CF000E63E89 /* ObjectiveRocks.h */, + 6299F80C1A17B28200123F56 /* RocksDB.h */, + 6299F80E1A17B28200123F56 /* RocksDB.mm */, + 625F8F1A1A59C3EB007796BA /* RocksDBProperties.h */, + 625F8F1B1A59C3EB007796BA /* RocksDBProperties.mm */, + 62451AC81A4BAEC000AF11C8 /* RocksDBTypes.h */, + 62451AC91A4BAEC000AF11C8 /* RocksDBTypes.mm */, + 628B0CE81A1C104D0099C39B /* RocksDBError.h */, + 628B0CE91A1C104D0099C39B /* RocksDBError.mm */, + 620629671A510D24001DEDC4 /* Column Family */, + 620494831A32808800A0E950 /* Iterator */, + 62685CBA1A2E8257009401B1 /* Write Batch */, + 620494841A32809400A0E950 /* Comparator */, + 62269EE21A200CD9005A58D3 /* Options */, + 623DC2541A335B9300B61B18 /* Snapshot */, + 62EEC4B41A34FEC500624DA2 /* Merge Operator */, + 62A8B0621A58DD620069B4C8 /* Statistics */, + 621CD7191A4FB22C00853E16 /* Backup */, + 6221B7851A6295FA00D28BF5 /* Private */, + 62376BBC1A20EA4B00C85DFB /* Internal */, + 628B47341D03125800E2D828 /* rocksdb */, ); - path = ttl; + name = Source; + path = Code; + sourceTree = ""; + }; + 6299F8181A17B28200123F56 /* Tests */ = { + isa = PBXGroup; + children = ( + 621636191A631E4F00B132CE /* Swift */, + 6249A3CD1A4A6E4000949B07 /* RocksDBTests.h */, + 6249A3CB1A4A43CA00949B07 /* RocksDBTests.mm */, + 6299F8551A17B7AD00123F56 /* RocksDBBasicTests.mm */, + 6251A3721B783DA7009BABD5 /* RocksDBReadOnlyTests.m */, + 62685CB81A2E600A009401B1 /* RocksDBWriteBatchTests.mm */, + 62662E921B8FCA8C008B4EF5 /* RocksDBIndexedWriteBatchTests.m */, + 62385EB31A2FCFB100493F18 /* RocksDBIteratorTests.mm */, + 62385EB51A2FD05500493F18 /* RocksDBComparatorTests.mm */, + 623DC2551A335BAF00B61B18 /* RocksDBSnapshotTests.mm */, + 625F8F241A59D11D007796BA /* RocksDBCheckpointTests.mm */, + 620A2CAD1A3654D5007224A4 /* RocksDBMergeOperatorTests.mm */, + 6236E25B1A4E19A300A81ED6 /* RocksDBPrefixExtractorTests.mm */, + 624566C71A51DA79009AC3FB /* RocksDBColumnFamilyTests.mm */, + 627FBE761A61E0AA0038696A /* RocksDBColumnFamilyMetadataTests.mm */, + 62FC8B461A565B19003DF5C6 /* RocksDBBackupTests.mm */, + 62A8B06A1A5900540069B4C8 /* RocksDBStatisticsTests.mm */, + 625F8F1E1A59C9B3007796BA /* RocksDBPropertiesTests.mm */, + 6299F8191A17B28200123F56 /* Supporting Files */, + ); + path = Tests; sourceTree = ""; }; - 62EE2BD21A1ABA2000486C31 /* write_batch_with_index */ = { + 6299F8191A17B28200123F56 /* Supporting Files */ = { isa = PBXGroup; children = ( - 62297D501B6AC05000F72BF2 /* write_batch_with_index_internal.cc */, - 62297D511B6AC05000F72BF2 /* write_batch_with_index_internal.h */, - 62EE2BD31A1ABA2000486C31 /* write_batch_with_index.cc */, - 62EE2BD51A1ABA2000486C31 /* write_batch_with_index_test.cc */, + 6299F81A1A17B28200123F56 /* Info.plist */, ); - path = write_batch_with_index; + name = "Supporting Files"; + sourceTree = ""; + }; + 62A8B0621A58DD620069B4C8 /* Statistics */ = { + isa = PBXGroup; + children = ( + 62A8B0631A58DD7D0069B4C8 /* RocksDBStatistics.h */, + 62A8B0641A58DD7D0069B4C8 /* RocksDBStatistics.mm */, + 62A8B0671A58E4B60069B4C8 /* RocksDBStatisticsHistogram.h */, + 62A8B0681A58E4B60069B4C8 /* RocksDBStatisticsHistogram.mm */, + ); + name = Statistics; sourceTree = ""; }; 62EEC4B41A34FEC500624DA2 /* Merge Operator */ = { @@ -2194,56 +2568,284 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( + 628B4E641D03125900E2D828 /* block.h in Headers */, + 628B4C661D03125900E2D828 /* flush_block_policy.h in Headers */, + 628B4F8E1D03125A00E2D828 /* crc32c.h in Headers */, + 628B4C8C1D03125900E2D828 /* statistics.h in Headers */, + 628B4C9C1D03125900E2D828 /* backupable_db.h in Headers */, + 628B4EAE1D03125A00E2D828 /* internal_iterator.h in Headers */, + 628B4C981D03125900E2D828 /* types.h in Headers */, 624203CA1BED64F70043DD6F /* ObjectiveRocks.h in Headers */, + 628B4F8A1D03125A00E2D828 /* concurrent_arena.h in Headers */, + 628B4CC81D03125900E2D828 /* version.h in Headers */, + 628B4F7A1D03125A00E2D828 /* channel.h in Headers */, + 628B50041D03125A00E2D828 /* options_sanity_check.h in Headers */, 624203CB1BED64F70043DD6F /* RocksDB.h in Headers */, + 628B50621D03125A00E2D828 /* xxhash.h in Headers */, + 628B504C1D03125A00E2D828 /* thread_posix.h in Headers */, + 628B4F681D03125A00E2D828 /* autovector.h in Headers */, + 628B4FCE1D03125A00E2D828 /* io_posix.h in Headers */, + 628B4BA21D03125900E2D828 /* log_reader.h in Headers */, 624203CC1BED64F70043DD6F /* RocksDBProperties.h in Headers */, + 628B4C801D03125900E2D828 /* slice.h in Headers */, + 628B50E21D03125A00E2D828 /* db_ttl_impl.h in Headers */, + 628B4C621D03125900E2D828 /* experimental.h in Headers */, + 628B4E481D03125900E2D828 /* stack_trace.h in Headers */, + 628B4EB81D03125A00E2D828 /* merger.h in Headers */, 624203CD1BED64F70043DD6F /* RocksDBTypes.h in Headers */, + 628B4CAE1D03125900E2D828 /* json_document.h in Headers */, + 628B50B41D03125A00E2D828 /* utils.h in Headers */, + 628B4BAC1D03125900E2D828 /* managed_iterator.h in Headers */, + 628B4EE21D03125A00E2D828 /* table_reader.h in Headers */, + 628B4EAC1D03125A00E2D828 /* get_context.h in Headers */, + 628B4C561D03125900E2D828 /* comparator.h in Headers */, + 628B4C141D03125900E2D828 /* write_controller.h in Headers */, + 628B4CB01D03125900E2D828 /* leveldb_options.h in Headers */, + 628B4CC01D03125900E2D828 /* transaction_db.h in Headers */, 624203CF1BED64F70043DD6F /* RocksDBColumnFamily.h in Headers */, 624203D01BED64F70043DD6F /* RocksDBColumnFamilyDescriptor.h in Headers */, + 628B4C021D03125900E2D828 /* wal_manager.h in Headers */, + 628B4F941D03125A00E2D828 /* delete_scheduler.h in Headers */, + 628B4F5E1D03125A00E2D828 /* aligned_buffer.h in Headers */, + 628B4EB01D03125A00E2D828 /* iter_heap.h in Headers */, + 628B4E8A1D03125900E2D828 /* bloom_block.h in Headers */, + 628B4EDC1D03125A00E2D828 /* table_builder.h in Headers */, + 628B4BE61D03125900E2D828 /* table_properties_collector.h in Headers */, 624203D11BED64F80043DD6F /* RocksDBColumnFamilyMetadata.h in Headers */, + 628B4C541D03125900E2D828 /* compaction_job_stats.h in Headers */, + 628B50001D03125A00E2D828 /* options_parser.h in Headers */, + 628B4C8E1D03125900E2D828 /* status.h in Headers */, + 628B4B9A1D03125900E2D828 /* job_context.h in Headers */, + 628B4BDE1D03125900E2D828 /* snapshot_impl.h in Headers */, + 628B4CA01D03125900E2D828 /* convenience.h in Headers */, + 628B4FE01D03125A00E2D828 /* logging.h in Headers */, + 628B4C641D03125900E2D828 /* filter_policy.h in Headers */, + 628B4E681D03125900E2D828 /* block_based_filter_block.h in Headers */, + 628B4C461D03125900E2D828 /* env_hdfs.h in Headers */, + 628B4EF61D03125A00E2D828 /* FbsonWriter.h in Headers */, 624203D21BED64F80043DD6F /* RocksDBIterator.h in Headers */, + 628B4ECE1D03125A00E2D828 /* plain_table_index.h in Headers */, + 628B4E3E1D03125900E2D828 /* port_example.h in Headers */, + 628B4F7E1D03125A00E2D828 /* coding.h in Headers */, + 628B509E1D03125A00E2D828 /* merge_operators.h in Headers */, + 628B50521D03125A00E2D828 /* thread_status_updater.h in Headers */, 624203D31BED64F80043DD6F /* RocksDBPrefixExtractor.h in Headers */, + 628B4E981D03125A00E2D828 /* cuckoo_table_reader.h in Headers */, + 628B4CA41D03125900E2D828 /* document_db.h in Headers */, 624203D41BED64F80043DD6F /* RocksDBWriteBatch.h in Headers */, + 628B4FD21D03125A00E2D828 /* iostats_context_imp.h in Headers */, + 628B4E6E1D03125900E2D828 /* block_based_table_builder.h in Headers */, 624203D51BED64F80043DD6F /* RocksDBIndexedWriteBatch.h in Headers */, 624203D61BED64F80043DD6F /* RocksDBWriteBatchIterator.h in Headers */, 624203D71BED64F80043DD6F /* RocksDBComparator.h in Headers */, 624203D81BED64F80043DD6F /* RocksDBOptions.h in Headers */, + 628B4EB41D03125A00E2D828 /* iterator_wrapper.h in Headers */, + 628B4C921D03125900E2D828 /* table_properties.h in Headers */, + 628B50BE1D03125A00E2D828 /* optimistic_transaction_db_impl.h in Headers */, + 628B4C9E1D03125900E2D828 /* checkpoint.h in Headers */, + 628B4EA61D03125A00E2D828 /* full_filter_block.h in Headers */, 624203D91BED64F80043DD6F /* RocksDBEncodingOptions.h in Headers */, + 628B4F601D03125A00E2D828 /* allocator.h in Headers */, + 628B4BEC1D03125900E2D828 /* transaction_log_impl.h in Headers */, + 628B4C721D03125900E2D828 /* memtablerep.h in Headers */, + 628B4B3C1D03125900E2D828 /* db_impl.h in Headers */, + 628B4FC41D03125A00E2D828 /* histogram.h in Headers */, + 628B4F9A1D03125A00E2D828 /* dynamic_bloom.h in Headers */, + 628B4EEE1D03125A00E2D828 /* FbsonDocument.h in Headers */, + 628B4BC01D03125900E2D828 /* merge_context.h in Headers */, + 628B4EEA1D03125A00E2D828 /* two_level_iterator.h in Headers */, + 628B4CB41D03125900E2D828 /* optimistic_transaction_db.h in Headers */, + 628B4C741D03125900E2D828 /* merge_operator.h in Headers */, + 628B4FB41D03125A00E2D828 /* file_util.h in Headers */, + 628B4C761D03125900E2D828 /* metadata.h in Headers */, + 628B4FBE1D03125A00E2D828 /* heap.h in Headers */, + 628B4E3C1D03125900E2D828 /* port.h in Headers */, + 628B4B241D03125900E2D828 /* compaction_picker.h in Headers */, 624203DA1BED64F80043DD6F /* RocksDBDatabaseOptions.h in Headers */, + 628B4C5E1D03125900E2D828 /* db_dump_tool.h in Headers */, 624203DB1BED64F80043DD6F /* RocksDBColumnFamilyOptions.h in Headers */, 624203DC1BED64F80043DD6F /* RocksDBWriteOptions.h in Headers */, + 628B4EF41D03125A00E2D828 /* FbsonUtil.h in Headers */, 624203DD1BED64F80043DD6F /* RocksDBReadOptions.h in Headers */, + 628B50981D03125A00E2D828 /* stringappend2.h in Headers */, + 628B50D81D03125A00E2D828 /* transaction_lock_mgr.h in Headers */, + 628B4C8A1D03125900E2D828 /* sst_file_writer.h in Headers */, + 628B4C9A1D03125900E2D828 /* universal_compaction.h in Headers */, + 628B4B0E1D03125900E2D828 /* compacted_db_impl.h in Headers */, + 628B50B81D03125A00E2D828 /* compact_on_deletion_collector.h in Headers */, 624203DE1BED64F80043DD6F /* RocksDBEnv.h in Headers */, + 628B4E2A1D03125900E2D828 /* hash_linklist_rep.h in Headers */, 624203DF1BED64F80043DD6F /* RocksDBThreadStatus.h in Headers */, + 628B4C0A1D03125900E2D828 /* write_batch_internal.h in Headers */, + 628B4C0E1D03125900E2D828 /* write_callback.h in Headers */, 624203E01BED64F80043DD6F /* RocksDBTableFactory.h in Headers */, 624203E11BED64F80043DD6F /* RocksDBBlockBasedTableOptions.h in Headers */, 624203E21BED64F90043DD6F /* RocksDBPlainTableOptions.h in Headers */, + 628B4C701D03125900E2D828 /* listener.h in Headers */, + 628B4EF21D03125A00E2D828 /* FbsonStream.h in Headers */, + 628B4B481D03125900E2D828 /* db_info_dumper.h in Headers */, + 628B50C81D03125A00E2D828 /* transaction_base.h in Headers */, + 628B50581D03125A00E2D828 /* thread_status_util.h in Headers */, + 628B4BB21D03125900E2D828 /* memtable.h in Headers */, + 628B4F641D03125A00E2D828 /* arena.h in Headers */, + 628B4C861D03125900E2D828 /* sst_dump_tool.h in Headers */, + 628B4B8A1D03125900E2D828 /* flush_scheduler.h in Headers */, + 628B502E1D03125A00E2D828 /* stop_watch.h in Headers */, + 628B4E2E1D03125900E2D828 /* hash_skiplist_rep.h in Headers */, 624203E31BED64F90043DD6F /* RocksDBCuckooTableOptions.h in Headers */, + 628B4CCC1D03125900E2D828 /* write_batch.h in Headers */, 624203E41BED64F90043DD6F /* RocksDBCache.h in Headers */, + 628B4FBC1D03125A00E2D828 /* hash.h in Headers */, + 628B4E3A1D03125900E2D828 /* likely.h in Headers */, 624203E51BED64F90043DD6F /* RocksDBFilterPolicy.h in Headers */, + 628B4FFC1D03125A00E2D828 /* options_helper.h in Headers */, + 628B4FF21D03125A00E2D828 /* mutable_cf_options.h in Headers */, + 628B4E9C1D03125A00E2D828 /* filter_block.h in Headers */, + 628B50D41D03125A00E2D828 /* transaction_impl.h in Headers */, + 628B4C1A1D03125900E2D828 /* write_thread.h in Headers */, + 628B4CA21D03125900E2D828 /* db_ttl.h in Headers */, + 628B4C881D03125900E2D828 /* sst_file_manager.h in Headers */, 624203E61BED64F90043DD6F /* RocksDBMemTableRepFactory.h in Headers */, + 628B4B981D03125900E2D828 /* internal_stats.h in Headers */, + 628B4F861D03125A00E2D828 /* compression.h in Headers */, + 628B50CC1D03125A00E2D828 /* transaction_db_impl.h in Headers */, + 628B4CCA1D03125900E2D828 /* wal_filter.h in Headers */, + 628B4C501D03125900E2D828 /* cache.h in Headers */, 624203E71BED64F90043DD6F /* RocksDBSnapshot.h in Headers */, + 628B4E8E1D03125A00E2D828 /* cuckoo_table_builder.h in Headers */, 624203E81BED64F90043DD6F /* RocksDBSnapshotUnavailable.h in Headers */, + 628B4B701D03125900E2D828 /* event_helpers.h in Headers */, + 628B4B061D03125900E2D828 /* column_family.h in Headers */, + 628B4C581D03125900E2D828 /* convenience.h in Headers */, + 628B4B841D03125900E2D828 /* flush_job.h in Headers */, + 628B4E721D03125900E2D828 /* block_based_table_factory.h in Headers */, + 628B4E321D03125900E2D828 /* stl_wrappers.h in Headers */, + 628B4FEE1D03125A00E2D828 /* murmurhash.h in Headers */, 624203E91BED64F90043DD6F /* RocksDBCheckpoint.h in Headers */, + 628B50241D03125A00E2D828 /* sst_file_manager_impl.h in Headers */, + 628B4E7A1D03125900E2D828 /* block_builder.h in Headers */, + 628B50861D03125A00E2D828 /* geodb_impl.h in Headers */, + 628B4CB81D03125900E2D828 /* spatial_db.h in Headers */, + 628B4B161D03125900E2D828 /* compaction_iterator.h in Headers */, + 628B4EE01D03125A00E2D828 /* table_properties_internal.h in Headers */, + 628B50121D03125A00E2D828 /* posix_logger.h in Headers */, + 628B4ED21D03125A00E2D828 /* plain_table_key_coding.h in Headers */, + 628B4CAC1D03125900E2D828 /* info_log_finder.h in Headers */, + 628B4BA81D03125900E2D828 /* log_writer.h in Headers */, + 628B4FA81D03125A00E2D828 /* event_logger.h in Headers */, + 628B4BF61D03125900E2D828 /* version_edit.h in Headers */, + 628B4CCE1D03125900E2D828 /* write_batch_base.h in Headers */, 624203EA1BED64F90043DD6F /* RocksDBMergeOperator.h in Headers */, + 628B4C6E1D03125900E2D828 /* ldb_tool.h in Headers */, + 628B4E421D03125900E2D828 /* port_posix.h in Headers */, + 628B505E1D03125A00E2D828 /* xfunc.h in Headers */, + 628B4B781D03125900E2D828 /* file_indexer.h in Headers */, + 628B4E761D03125900E2D828 /* block_based_table_reader.h in Headers */, 624203EB1BED64F90043DD6F /* RocksDBStatistics.h in Headers */, + 628B4CBE1D03125900E2D828 /* transaction.h in Headers */, + 628B50AC1D03125A00E2D828 /* redis_lists.h in Headers */, 624203EC1BED64FA0043DD6F /* RocksDBStatisticsHistogram.h in Headers */, + 628B50A81D03125A00E2D828 /* redis_list_iterator.h in Headers */, + 628B4C4E1D03125900E2D828 /* c.h in Headers */, + 628B4FD61D03125A00E2D828 /* kv_map.h in Headers */, + 628B4FF41D03125A00E2D828 /* mutexlock.h in Headers */, + 628B4E841D03125900E2D828 /* block_prefix_index.h in Headers */, + 628B4C821D03125900E2D828 /* slice_transform.h in Headers */, + 628B4AFE1D03125900E2D828 /* builder.h in Headers */, + 628B500A1D03125A00E2D828 /* perf_context_imp.h in Headers */, 624203ED1BED64FA0043DD6F /* RocksDBBackupEngine.h in Headers */, + 628B50C21D03125A00E2D828 /* optimistic_transaction_impl.h in Headers */, 624203EE1BED64FA0043DD6F /* RocksDBBackupInfo.h in Headers */, + 628B50361D03125A00E2D828 /* sync_point.h in Headers */, + 628B4BC41D03125900E2D828 /* merge_helper.h in Headers */, + 628B4BF01D03125900E2D828 /* version_builder.h in Headers */, 624203CE1BED64F70043DD6F /* RocksDBError.h in Headers */, + 628B4C7A1D03125900E2D828 /* perf_context.h in Headers */, + 628B50321D03125A00E2D828 /* string_util.h in Headers */, 624203EF1BED650D0043DD6F /* RocksDB+Private.h in Headers */, 624203F01BED650D0043DD6F /* RocksDBOptions+Private.h in Headers */, + 628B4C6C1D03125900E2D828 /* iterator.h in Headers */, + 628B4C5A1D03125900E2D828 /* db.h in Headers */, + 628B4B681D03125900E2D828 /* dbformat.h in Headers */, + 628B50EA1D03125A00E2D828 /* write_batch_with_index_internal.h in Headers */, + 628B50DE1D03125A00E2D828 /* transaction_util.h in Headers */, + 628B4FAE1D03125A00E2D828 /* file_reader_writer.h in Headers */, + 628B4E941D03125A00E2D828 /* cuckoo_table_factory.h in Headers */, + 628B50281D03125A00E2D828 /* statistics.h in Headers */, 624203F11BED650D0043DD6F /* RocksDBColumnFamily+Private.h in Headers */, + 628B4E601D03125900E2D828 /* adaptive_table_factory.h in Headers */, + 628B4EBE1D03125A00E2D828 /* meta_blocks.h in Headers */, + 628B4E4A1D03125900E2D828 /* sys_time.h in Headers */, + 628B4E7E1D03125900E2D828 /* block_hash_index.h in Headers */, + 628B500E1D03125A00E2D828 /* perf_level_imp.h in Headers */, + 628B4B1C1D03125900E2D828 /* compaction_job.h in Headers */, + 628B50101D03125A00E2D828 /* perf_step_timer.h in Headers */, + 628B4ED81D03125A00E2D828 /* scoped_arena_iterator.h in Headers */, + 628B4C681D03125900E2D828 /* immutable_options.h in Headers */, + 628B4C781D03125900E2D828 /* options.h in Headers */, + 628B4C1C1D03125900E2D828 /* writebuffer.h in Headers */, + 628B4B4E1D03125900E2D828 /* db_iter.h in Headers */, + 628B4B7E1D03125900E2D828 /* filename.h in Headers */, + 628B501A1D03125A00E2D828 /* rate_limiter.h in Headers */, + 628B4EF81D03125A00E2D828 /* flashcache_ioctl.h in Headers */, + 628B4C601D03125900E2D828 /* env.h in Headers */, + 628B50A61D03125A00E2D828 /* redis_list_exception.h in Headers */, + 628B4EF01D03125A00E2D828 /* FbsonJsonParser.h in Headers */, + 628B4BB61D03125900E2D828 /* memtable_allocator.h in Headers */, + 628B4AF81D03125900E2D828 /* auto_roll_logger.h in Headers */, + 628B4B441D03125900E2D828 /* db_impl_readonly.h in Headers */, + 628B4CA81D03125900E2D828 /* flashcache.h in Headers */, + 628B506E1D03125A00E2D828 /* remove_emptyvalue_compactionfilter.h in Headers */, + 628B4B121D03125900E2D828 /* compaction.h in Headers */, 624203F21BED650E0043DD6F /* RocksDBColumnFamilyMetaData+Private.h in Headers */, + 628B4ED61D03125A00E2D828 /* plain_table_reader.h in Headers */, + 628B4CAA1D03125900E2D828 /* geo_db.h in Headers */, + 628B4B8E1D03125900E2D828 /* forward_iterator.h in Headers */, 624203F31BED650E0043DD6F /* RocksDBIterator+Private.h in Headers */, + 628B50821D03125A00E2D828 /* flashcache.h in Headers */, + 628B4C521D03125900E2D828 /* compaction_filter.h in Headers */, + 628B4CC61D03125900E2D828 /* write_batch_with_index.h in Headers */, + 628B4FCA1D03125A00E2D828 /* instrumented_mutex.h in Headers */, + 628B4CBC1D03125900E2D828 /* table_properties_collectors.h in Headers */, + 628B4CA61D03125900E2D828 /* env_mirror.h in Headers */, + 628B4C841D03125900E2D828 /* snapshot.h in Headers */, + 628B4BD61D03125900E2D828 /* skiplist.h in Headers */, 624203F41BED650E0043DD6F /* RocksDBWriteBatch+Private.h in Headers */, + 628B4CB61D03125900E2D828 /* options_util.h in Headers */, + 628B4EA21D03125A00E2D828 /* format.h in Headers */, 624203F51BED650E0043DD6F /* RocksDBWriteBatchIterator+Private.h in Headers */, + 628B4C901D03125900E2D828 /* table.h in Headers */, + 628B4BBA1D03125900E2D828 /* memtable_list.h in Headers */, + 628B4E261D03125900E2D828 /* hash_cuckoo_rep.h in Headers */, + 628B4C961D03125900E2D828 /* transaction_log.h in Headers */, + 628B50D01D03125A00E2D828 /* transaction_db_mutex_impl.h in Headers */, + 628B4CB21D03125900E2D828 /* memory_util.h in Headers */, + 628B4BFC1D03125900E2D828 /* version_set.h in Headers */, + 628B4B9E1D03125900E2D828 /* log_format.h in Headers */, + 628B4BE21D03125900E2D828 /* table_cache.h in Headers */, 624203F61BED650E0043DD6F /* RocksDBSnapshot+Private.h in Headers */, + 628B4F721D03125A00E2D828 /* build_version.h in Headers */, 624203F71BED650E0043DD6F /* RocksDBCallbackComparator.h in Headers */, + 628B4CC21D03125900E2D828 /* transaction_db_mutex.h in Headers */, + 628B4B921D03125900E2D828 /* inlineskiplist.h in Headers */, + 628B50161D03125A00E2D828 /* random.h in Headers */, + 628B50441D03125A00E2D828 /* thread_local.h in Headers */, + 628B4E4C1D03125900E2D828 /* util_logger.h in Headers */, + 628B4CBA1D03125900E2D828 /* stackable_db.h in Headers */, + 628B4C7E1D03125900E2D828 /* rate_limiter.h in Headers */, 624203F81BED650E0043DD6F /* RocksDBCallbackAssociativeMergeOperator.h in Headers */, + 628B4CC41D03125900E2D828 /* utility_db.h in Headers */, 624203F91BED650F0043DD6F /* RocksDBCallbackMergeOperator.h in Headers */, + 628B4C7C1D03125900E2D828 /* perf_level.h in Headers */, 624203FA1BED650F0043DD6F /* RocksDBCallbackSliceTransform.h in Headers */, + 628B4ECA1D03125A00E2D828 /* plain_table_factory.h in Headers */, + 628B4C6A1D03125900E2D828 /* iostats_context.h in Headers */, + 628B50481D03125A00E2D828 /* thread_operation.h in Headers */, + 628B50941D03125A00E2D828 /* stringappend.h in Headers */, + 628B4C941D03125900E2D828 /* thread_status.h in Headers */, + 628B4FDA1D03125A00E2D828 /* log_buffer.h in Headers */, 624203FB1BED650F0043DD6F /* RocksDBSlice.h in Headers */, + 628B4EC61D03125A00E2D828 /* plain_table_builder.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2251,49 +2853,277 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( + 628B4C991D03125900E2D828 /* types.h in Headers */, 624F5DA01BEE41F500497FEF /* ObjectiveRocks.h in Headers */, + 628B4CB11D03125900E2D828 /* leveldb_options.h in Headers */, + 628B4C471D03125900E2D828 /* env_hdfs.h in Headers */, + 628B4CC91D03125900E2D828 /* version.h in Headers */, + 628B4EB11D03125A00E2D828 /* iter_heap.h in Headers */, + 628B4C031D03125900E2D828 /* wal_manager.h in Headers */, + 628B4B8B1D03125900E2D828 /* flush_scheduler.h in Headers */, + 628B4FD31D03125A00E2D828 /* iostats_context_imp.h in Headers */, + 628B4FA91D03125A00E2D828 /* event_logger.h in Headers */, + 628B4C651D03125900E2D828 /* filter_policy.h in Headers */, + 628B4B851D03125900E2D828 /* flush_job.h in Headers */, 624F5DA11BEE41F500497FEF /* RocksDB.h in Headers */, + 628B4B8F1D03125900E2D828 /* forward_iterator.h in Headers */, 624F5DA31BEE41F500497FEF /* RocksDBTypes.h in Headers */, + 628B50491D03125A00E2D828 /* thread_operation.h in Headers */, + 628B4FFD1D03125A00E2D828 /* options_helper.h in Headers */, + 628B4BE31D03125900E2D828 /* table_cache.h in Headers */, + 628B4F731D03125A00E2D828 /* build_version.h in Headers */, + 628B4B4F1D03125900E2D828 /* db_iter.h in Headers */, + 628B4CB71D03125900E2D828 /* options_util.h in Headers */, + 628B4B0F1D03125900E2D828 /* compacted_db_impl.h in Headers */, + 628B4CA31D03125900E2D828 /* db_ttl.h in Headers */, 624F5DA51BEE41F500497FEF /* RocksDBColumnFamily.h in Headers */, 624F5DA61BEE41F500497FEF /* RocksDBColumnFamilyDescriptor.h in Headers */, + 628B4B3D1D03125900E2D828 /* db_impl.h in Headers */, 624F5DA81BEE41F500497FEF /* RocksDBIterator.h in Headers */, + 628B4FBD1D03125A00E2D828 /* hash.h in Headers */, + 628B4FF31D03125A00E2D828 /* mutable_cf_options.h in Headers */, + 628B4EF31D03125A00E2D828 /* FbsonStream.h in Headers */, + 628B4F8F1D03125A00E2D828 /* crc32c.h in Headers */, 624F5DA91BEE41F500497FEF /* RocksDBPrefixExtractor.h in Headers */, + 628B4C7F1D03125900E2D828 /* rate_limiter.h in Headers */, + 628B50131D03125A00E2D828 /* posix_logger.h in Headers */, + 628B4CB31D03125900E2D828 /* memory_util.h in Headers */, + 628B4EF51D03125A00E2D828 /* FbsonUtil.h in Headers */, 624F5DAA1BEE41F500497FEF /* RocksDBWriteBatch.h in Headers */, + 628B4B991D03125900E2D828 /* internal_stats.h in Headers */, + 628B4BA91D03125900E2D828 /* log_writer.h in Headers */, + 628B4BF11D03125900E2D828 /* version_builder.h in Headers */, + 628B4EF71D03125A00E2D828 /* FbsonWriter.h in Headers */, + 628B4CC31D03125900E2D828 /* transaction_db_mutex.h in Headers */, 624F5DAB1BEE41F500497FEF /* RocksDBIndexedWriteBatch.h in Headers */, + 628B4F691D03125A00E2D828 /* autovector.h in Headers */, + 628B4CCF1D03125900E2D828 /* write_batch_base.h in Headers */, + 628B502F1D03125A00E2D828 /* stop_watch.h in Headers */, + 628B4BB71D03125900E2D828 /* memtable_allocator.h in Headers */, + 628B4E3B1D03125900E2D828 /* likely.h in Headers */, 624F5DAC1BEE41F500497FEF /* RocksDBWriteBatchIterator.h in Headers */, + 628B4C1B1D03125900E2D828 /* write_thread.h in Headers */, + 628B4BED1D03125900E2D828 /* transaction_log_impl.h in Headers */, + 628B4EAD1D03125A00E2D828 /* get_context.h in Headers */, 624F5DAD1BEE41F600497FEF /* RocksDBComparator.h in Headers */, + 628B4E7F1D03125900E2D828 /* block_hash_index.h in Headers */, + 628B4C691D03125900E2D828 /* immutable_options.h in Headers */, + 628B4F7F1D03125A00E2D828 /* coding.h in Headers */, + 628B4C571D03125900E2D828 /* comparator.h in Headers */, + 628B50531D03125A00E2D828 /* thread_status_updater.h in Headers */, + 628B4CAF1D03125900E2D828 /* json_document.h in Headers */, + 628B50AD1D03125A00E2D828 /* redis_lists.h in Headers */, + 628B50A91D03125A00E2D828 /* redis_list_iterator.h in Headers */, + 628B4E991D03125A00E2D828 /* cuckoo_table_reader.h in Headers */, + 628B4E7B1D03125900E2D828 /* block_builder.h in Headers */, + 628B4CBD1D03125900E2D828 /* table_properties_collectors.h in Headers */, + 628B4B9B1D03125900E2D828 /* job_context.h in Headers */, + 628B4C6D1D03125900E2D828 /* iterator.h in Headers */, + 628B4CBF1D03125900E2D828 /* transaction.h in Headers */, + 628B4AFF1D03125900E2D828 /* builder.h in Headers */, + 628B4C791D03125900E2D828 /* options.h in Headers */, 624F5DAE1BEE41F600497FEF /* RocksDBOptions.h in Headers */, + 628B4B9F1D03125900E2D828 /* log_format.h in Headers */, + 628B4FF51D03125A00E2D828 /* mutexlock.h in Headers */, + 628B4BFD1D03125900E2D828 /* version_set.h in Headers */, + 628B50831D03125A00E2D828 /* flashcache.h in Headers */, + 628B4F611D03125A00E2D828 /* allocator.h in Headers */, + 628B4E271D03125900E2D828 /* hash_cuckoo_rep.h in Headers */, + 628B50371D03125A00E2D828 /* sync_point.h in Headers */, + 628B4FBF1D03125A00E2D828 /* heap.h in Headers */, 624F5DAF1BEE41F600497FEF /* RocksDBEncodingOptions.h in Headers */, + 628B4C911D03125900E2D828 /* table.h in Headers */, + 628B4C0B1D03125900E2D828 /* write_batch_internal.h in Headers */, + 628B4C671D03125900E2D828 /* flush_block_policy.h in Headers */, + 628B4B131D03125900E2D828 /* compaction.h in Headers */, + 628B50251D03125A00E2D828 /* sst_file_manager_impl.h in Headers */, + 628B4E2F1D03125900E2D828 /* hash_skiplist_rep.h in Headers */, + 628B4CA11D03125900E2D828 /* convenience.h in Headers */, 624F5DB01BEE41F600497FEF /* RocksDBDatabaseOptions.h in Headers */, + 628B504D1D03125A00E2D828 /* thread_posix.h in Headers */, + 628B4FC51D03125A00E2D828 /* histogram.h in Headers */, + 628B4E3F1D03125900E2D828 /* port_example.h in Headers */, + 628B505F1D03125A00E2D828 /* xfunc.h in Headers */, + 628B4B251D03125900E2D828 /* compaction_picker.h in Headers */, + 628B4EB91D03125A00E2D828 /* merger.h in Headers */, + 628B4BE71D03125900E2D828 /* table_properties_collector.h in Headers */, + 628B4B931D03125900E2D828 /* inlineskiplist.h in Headers */, 624F5DB11BEE41F600497FEF /* RocksDBColumnFamilyOptions.h in Headers */, 624F5DB21BEE41F600497FEF /* RocksDBWriteOptions.h in Headers */, + 628B4ED71D03125A00E2D828 /* plain_table_reader.h in Headers */, + 628B4E8F1D03125A00E2D828 /* cuckoo_table_builder.h in Headers */, + 628B4B1D1D03125900E2D828 /* compaction_job.h in Headers */, + 628B4E3D1D03125900E2D828 /* port.h in Headers */, 624F5DB31BEE41F600497FEF /* RocksDBReadOptions.h in Headers */, + 628B4CBB1D03125900E2D828 /* stackable_db.h in Headers */, + 628B4C551D03125900E2D828 /* compaction_job_stats.h in Headers */, + 628B4E651D03125900E2D828 /* block.h in Headers */, + 628B50E31D03125A00E2D828 /* db_ttl_impl.h in Headers */, + 628B4C751D03125900E2D828 /* merge_operator.h in Headers */, + 628B4EAF1D03125A00E2D828 /* internal_iterator.h in Headers */, + 628B50171D03125A00E2D828 /* random.h in Headers */, 624F5DB41BEE41F600497FEF /* RocksDBEnv.h in Headers */, + 628B50D11D03125A00E2D828 /* transaction_db_mutex_impl.h in Headers */, + 628B50951D03125A00E2D828 /* stringappend.h in Headers */, 624F5DB61BEE41F600497FEF /* RocksDBTableFactory.h in Headers */, + 628B4B491D03125900E2D828 /* db_info_dumper.h in Headers */, + 628B4C8B1D03125900E2D828 /* sst_file_writer.h in Headers */, + 628B4C5B1D03125900E2D828 /* db.h in Headers */, + 628B4CCB1D03125900E2D828 /* wal_filter.h in Headers */, + 628B4CC11D03125900E2D828 /* transaction_db.h in Headers */, + 628B509F1D03125A00E2D828 /* merge_operators.h in Headers */, + 628B4CB91D03125900E2D828 /* spatial_db.h in Headers */, + 628B4CA51D03125900E2D828 /* document_db.h in Headers */, + 628B50451D03125A00E2D828 /* thread_local.h in Headers */, + 628B50111D03125A00E2D828 /* perf_step_timer.h in Headers */, + 628B4EEF1D03125A00E2D828 /* FbsonDocument.h in Headers */, + 628B4FD71D03125A00E2D828 /* kv_map.h in Headers */, + 628B4FEF1D03125A00E2D828 /* murmurhash.h in Headers */, + 628B4C8F1D03125900E2D828 /* status.h in Headers */, + 628B4E951D03125A00E2D828 /* cuckoo_table_factory.h in Headers */, 624F5DB71BEE41F600497FEF /* RocksDBBlockBasedTableOptions.h in Headers */, + 628B50011D03125A00E2D828 /* options_parser.h in Headers */, 624F5DBA1BEE41F600497FEF /* RocksDBCache.h in Headers */, + 628B4ED31D03125A00E2D828 /* plain_table_key_coding.h in Headers */, + 628B4BD71D03125900E2D828 /* skiplist.h in Headers */, + 628B4F8B1D03125A00E2D828 /* concurrent_arena.h in Headers */, + 628B4FE11D03125A00E2D828 /* logging.h in Headers */, + 628B4B071D03125900E2D828 /* column_family.h in Headers */, 624F5DBB1BEE41F700497FEF /* RocksDBFilterPolicy.h in Headers */, + 628B4EEB1D03125A00E2D828 /* two_level_iterator.h in Headers */, + 628B4C831D03125900E2D828 /* slice_transform.h in Headers */, + 628B4BAD1D03125900E2D828 /* managed_iterator.h in Headers */, + 628B4E4B1D03125900E2D828 /* sys_time.h in Headers */, 624F5DBC1BEE41F700497FEF /* RocksDBMemTableRepFactory.h in Headers */, + 628B4C611D03125900E2D828 /* env.h in Headers */, 624F5DBD1BEE41F700497FEF /* RocksDBSnapshot.h in Headers */, 624F5DBE1BEE41F700497FEF /* RocksDBSnapshotUnavailable.h in Headers */, + 628B4F9B1D03125A00E2D828 /* dynamic_bloom.h in Headers */, + 628B4C531D03125900E2D828 /* compaction_filter.h in Headers */, + 628B4CB51D03125900E2D828 /* optimistic_transaction_db.h in Headers */, + 628B4BBB1D03125900E2D828 /* memtable_list.h in Headers */, + 628B4C151D03125900E2D828 /* write_controller.h in Headers */, 624F5DC01BEE41F700497FEF /* RocksDBMergeOperator.h in Headers */, + 628B4F951D03125A00E2D828 /* delete_scheduler.h in Headers */, 621C6D971BEE4A4600044CB1 /* RocksDBStatistics.h in Headers */, + 628B4C7B1D03125900E2D828 /* perf_context.h in Headers */, + 628B4EF11D03125A00E2D828 /* FbsonJsonParser.h in Headers */, + 628B4C5F1D03125900E2D828 /* db_dump_tool.h in Headers */, 621C6D981BEE4A4600044CB1 /* RocksDBStatisticsHistogram.h in Headers */, + 628B4F651D03125A00E2D828 /* arena.h in Headers */, + 628B4C811D03125900E2D828 /* slice.h in Headers */, + 628B4E8B1D03125900E2D828 /* bloom_block.h in Headers */, + 628B4ECB1D03125A00E2D828 /* plain_table_factory.h in Headers */, + 628B4C8D1D03125900E2D828 /* statistics.h in Headers */, + 628B4EA71D03125A00E2D828 /* full_filter_block.h in Headers */, + 628B4C0F1D03125900E2D828 /* write_callback.h in Headers */, + 628B4E771D03125900E2D828 /* block_based_table_reader.h in Headers */, + 628B4BC51D03125900E2D828 /* merge_helper.h in Headers */, + 628B4C891D03125900E2D828 /* sst_file_manager.h in Headers */, + 628B4BC11D03125900E2D828 /* merge_context.h in Headers */, 624F5ED91BEE456100497FEF /* RocksDB+Private.h in Headers */, + 628B4C871D03125900E2D828 /* sst_dump_tool.h in Headers */, + 628B4EBF1D03125A00E2D828 /* meta_blocks.h in Headers */, + 628B4CAD1D03125900E2D828 /* info_log_finder.h in Headers */, + 628B4FCF1D03125A00E2D828 /* io_posix.h in Headers */, + 628B506F1D03125A00E2D828 /* remove_emptyvalue_compactionfilter.h in Headers */, + 628B4F871D03125A00E2D828 /* compression.h in Headers */, + 628B4ED91D03125A00E2D828 /* scoped_arena_iterator.h in Headers */, 624F5EDA1BEE456100497FEF /* RocksDBOptions+Private.h in Headers */, 624F5EDB1BEE456100497FEF /* RocksDBColumnFamily+Private.h in Headers */, + 628B4EE31D03125A00E2D828 /* table_reader.h in Headers */, 624F5EDC1BEE456100497FEF /* RocksDBColumnFamilyMetaData+Private.h in Headers */, + 628B4E731D03125900E2D828 /* block_based_table_factory.h in Headers */, + 628B4FB51D03125A00E2D828 /* file_util.h in Headers */, + 628B50D51D03125A00E2D828 /* transaction_impl.h in Headers */, + 628B4C951D03125900E2D828 /* thread_status.h in Headers */, 624F5EDD1BEE456100497FEF /* RocksDBIterator+Private.h in Headers */, + 628B4C6B1D03125900E2D828 /* iostats_context.h in Headers */, 624F5EDE1BEE456100497FEF /* RocksDBWriteBatch+Private.h in Headers */, 624F5EDF1BEE456200497FEF /* RocksDBWriteBatchIterator+Private.h in Headers */, + 628B4EDD1D03125A00E2D828 /* table_builder.h in Headers */, + 628B50A71D03125A00E2D828 /* redis_list_exception.h in Headers */, + 628B4F5F1D03125A00E2D828 /* aligned_buffer.h in Headers */, + 628B50C31D03125A00E2D828 /* optimistic_transaction_impl.h in Headers */, + 628B4C931D03125900E2D828 /* table_properties.h in Headers */, + 628B50EB1D03125A00E2D828 /* write_batch_with_index_internal.h in Headers */, + 628B50871D03125A00E2D828 /* geodb_impl.h in Headers */, + 628B500B1D03125A00E2D828 /* perf_context_imp.h in Headers */, 621C6D991BEE4BA900044CB1 /* RocksDBColumnFamilyMetadata.h in Headers */, + 628B4AF91D03125900E2D828 /* auto_roll_logger.h in Headers */, + 628B4CA91D03125900E2D828 /* flashcache.h in Headers */, + 628B50631D03125A00E2D828 /* xxhash.h in Headers */, 624F5EE01BEE456200497FEF /* RocksDBSnapshot+Private.h in Headers */, + 628B4EC71D03125A00E2D828 /* plain_table_builder.h in Headers */, 624F5EE11BEE456200497FEF /* RocksDBCallbackComparator.h in Headers */, 624F5EE21BEE456200497FEF /* RocksDBCallbackAssociativeMergeOperator.h in Headers */, + 628B4CCD1D03125900E2D828 /* write_batch.h in Headers */, + 628B50BF1D03125A00E2D828 /* optimistic_transaction_db_impl.h in Headers */, + 628B4BB31D03125900E2D828 /* memtable.h in Headers */, 624F5EE31BEE456200497FEF /* RocksDBCallbackMergeOperator.h in Headers */, + 628B4BDF1D03125900E2D828 /* snapshot_impl.h in Headers */, + 628B50B91D03125A00E2D828 /* compact_on_deletion_collector.h in Headers */, + 628B4CA71D03125900E2D828 /* env_mirror.h in Headers */, + 628B4E4D1D03125900E2D828 /* util_logger.h in Headers */, + 628B4EE11D03125A00E2D828 /* table_properties_internal.h in Headers */, + 628B4FAF1D03125A00E2D828 /* file_reader_writer.h in Headers */, 624F5EE41BEE456200497FEF /* RocksDBCallbackSliceTransform.h in Headers */, + 628B4B451D03125900E2D828 /* db_impl_readonly.h in Headers */, + 628B4C711D03125900E2D828 /* listener.h in Headers */, + 628B4FCB1D03125A00E2D828 /* instrumented_mutex.h in Headers */, + 628B4C1D1D03125900E2D828 /* writebuffer.h in Headers */, + 628B4CC51D03125900E2D828 /* utility_db.h in Headers */, + 628B4B711D03125900E2D828 /* event_helpers.h in Headers */, + 628B4F7B1D03125A00E2D828 /* channel.h in Headers */, + 628B501B1D03125A00E2D828 /* rate_limiter.h in Headers */, + 628B4CAB1D03125900E2D828 /* geo_db.h in Headers */, + 628B4C971D03125900E2D828 /* transaction_log.h in Headers */, + 628B4C771D03125900E2D828 /* metadata.h in Headers */, + 628B4E611D03125900E2D828 /* adaptive_table_factory.h in Headers */, + 628B4E331D03125900E2D828 /* stl_wrappers.h in Headers */, + 628B4E9D1D03125A00E2D828 /* filter_block.h in Headers */, 624F5ED01BEE456100497FEF /* RocksDBError.h in Headers */, + 628B4C9F1D03125900E2D828 /* checkpoint.h in Headers */, + 628B4E691D03125900E2D828 /* block_based_filter_block.h in Headers */, + 628B4EA31D03125A00E2D828 /* format.h in Headers */, + 628B4C7D1D03125900E2D828 /* perf_level.h in Headers */, + 628B50D91D03125A00E2D828 /* transaction_lock_mgr.h in Headers */, + 628B4C511D03125900E2D828 /* cache.h in Headers */, + 628B4EF91D03125A00E2D828 /* flashcache_ioctl.h in Headers */, + 628B4E431D03125900E2D828 /* port_posix.h in Headers */, + 628B50CD1D03125A00E2D828 /* transaction_db_impl.h in Headers */, + 628B4E851D03125900E2D828 /* block_prefix_index.h in Headers */, + 628B4C591D03125900E2D828 /* convenience.h in Headers */, + 628B500F1D03125A00E2D828 /* perf_level_imp.h in Headers */, + 628B4C9D1D03125900E2D828 /* backupable_db.h in Headers */, + 628B50B51D03125A00E2D828 /* utils.h in Headers */, + 628B4C731D03125900E2D828 /* memtablerep.h in Headers */, + 628B4E6F1D03125900E2D828 /* block_based_table_builder.h in Headers */, + 628B50331D03125A00E2D828 /* string_util.h in Headers */, + 628B4E2B1D03125900E2D828 /* hash_linklist_rep.h in Headers */, + 628B50C91D03125A00E2D828 /* transaction_base.h in Headers */, + 628B4C851D03125900E2D828 /* snapshot.h in Headers */, + 628B4C9B1D03125900E2D828 /* universal_compaction.h in Headers */, + 628B50DF1D03125A00E2D828 /* transaction_util.h in Headers */, + 628B4FDB1D03125A00E2D828 /* log_buffer.h in Headers */, + 628B4C4F1D03125900E2D828 /* c.h in Headers */, + 628B4ECF1D03125A00E2D828 /* plain_table_index.h in Headers */, + 628B4C631D03125900E2D828 /* experimental.h in Headers */, + 628B4BA31D03125900E2D828 /* log_reader.h in Headers */, + 628B4B791D03125900E2D828 /* file_indexer.h in Headers */, + 628B4BF71D03125900E2D828 /* version_edit.h in Headers */, + 628B50591D03125A00E2D828 /* thread_status_util.h in Headers */, + 628B4B691D03125900E2D828 /* dbformat.h in Headers */, + 628B50291D03125A00E2D828 /* statistics.h in Headers */, + 628B4B7F1D03125900E2D828 /* filename.h in Headers */, + 628B4CC71D03125900E2D828 /* write_batch_with_index.h in Headers */, + 628B50051D03125A00E2D828 /* options_sanity_check.h in Headers */, + 628B50991D03125A00E2D828 /* stringappend2.h in Headers */, + 628B4B171D03125900E2D828 /* compaction_iterator.h in Headers */, + 628B4EB51D03125A00E2D828 /* iterator_wrapper.h in Headers */, + 628B4E491D03125900E2D828 /* stack_trace.h in Headers */, 624F5EE51BEE456200497FEF /* RocksDBSlice.h in Headers */, + 628B4C6F1D03125900E2D828 /* ldb_tool.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2481,184 +3311,212 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 628B50701D03125A00E2D828 /* info_log_finder.cc in Sources */, + 628B4C001D03125900E2D828 /* wal_manager.cc in Sources */, + 628B4EBC1D03125A00E2D828 /* meta_blocks.cc in Sources */, + 628B50801D03125A00E2D828 /* flashcache.cc in Sources */, 624203FC1BED65250043DD6F /* RocksDB.mm in Sources */, - 6242042C1BED652D0043DD6F /* RocksDBTypes.m in Sources */, + 628B4B7C1D03125900E2D828 /* filename.cc in Sources */, + 6242042C1BED652D0043DD6F /* RocksDBTypes.mm in Sources */, + 628B4C181D03125900E2D828 /* write_thread.cc in Sources */, + 628B4EB21D03125A00E2D828 /* iterator.cc in Sources */, + 628B508A1D03125A00E2D828 /* leveldb_options.cc in Sources */, 624203FD1BED65250043DD6F /* RocksDBProperties.mm in Sources */, + 628B50C61D03125A00E2D828 /* transaction_base.cc in Sources */, + 628B4BA01D03125900E2D828 /* log_reader.cc in Sources */, + 628B50021D03125A00E2D828 /* options_sanity_check.cc in Sources */, + 628B4B001D03125900E2D828 /* c.cc in Sources */, + 628B4AFC1D03125900E2D828 /* builder.cc in Sources */, + 628B4B401D03125900E2D828 /* db_impl_experimental.cc in Sources */, + 628B4EDE1D03125A00E2D828 /* table_properties.cc in Sources */, 624203FE1BED65250043DD6F /* RocksDBError.mm in Sources */, + 628B4FD01D03125A00E2D828 /* iostats_context.cc in Sources */, 624203FF1BED65250043DD6F /* RocksDBColumnFamily.mm in Sources */, + 628B4E341D03125900E2D828 /* vectorrep.cc in Sources */, + 628B4BB01D03125900E2D828 /* memtable.cc in Sources */, + 628B50781D03125A00E2D828 /* json_document_builder.cc in Sources */, 624204001BED65250043DD6F /* RocksDBColumnFamilyDescriptor.mm in Sources */, + 628B50DC1D03125A00E2D828 /* transaction_util.cc in Sources */, + 628B50CE1D03125A00E2D828 /* transaction_db_mutex_impl.cc in Sources */, 624204011BED65250043DD6F /* RocksDBColumnFamilyMetadata.mm in Sources */, 624204021BED65250043DD6F /* RocksDBIterator.mm in Sources */, + 628B4FB81D03125A00E2D828 /* filter_policy.cc in Sources */, 624204031BED65250043DD6F /* RocksDBPrefixExtractor.mm in Sources */, + 628B4FF81D03125A00E2D828 /* options_builder.cc in Sources */, 624204041BED65250043DD6F /* RocksDBWriteBatch.mm in Sources */, + 628B4BC81D03125900E2D828 /* merge_operator.cc in Sources */, + 628B50E61D03125A00E2D828 /* write_batch_with_index.cc in Sources */, 624204051BED65250043DD6F /* RocksDBIndexedWriteBatch.mm in Sources */, + 628B4B421D03125900E2D828 /* db_impl_readonly.cc in Sources */, + 628B50181D03125A00E2D828 /* rate_limiter.cc in Sources */, + 628B4FFA1D03125A00E2D828 /* options_helper.cc in Sources */, 624204061BED65250043DD6F /* RocksDBWriteBatchIterator.mm in Sources */, + 628B4B661D03125900E2D828 /* dbformat.cc in Sources */, + 628B4FFE1D03125A00E2D828 /* options_parser.cc in Sources */, 624204071BED65250043DD6F /* RocksDBComparator.mm in Sources */, + 628B4B6E1D03125900E2D828 /* event_helpers.cc in Sources */, + 628B4B761D03125900E2D828 /* file_indexer.cc in Sources */, + 628B502C1D03125A00E2D828 /* status_message.cc in Sources */, + 628B4EC41D03125A00E2D828 /* plain_table_builder.cc in Sources */, + 628B4E621D03125900E2D828 /* block.cc in Sources */, + 628B4BDA1D03125900E2D828 /* slice.cc in Sources */, 624204081BED65250043DD6F /* RocksDBOptions.mm in Sources */, + 628B50501D03125A00E2D828 /* thread_status_updater.cc in Sources */, + 628B50721D03125A00E2D828 /* document_db.cc in Sources */, + 628B502A1D03125A00E2D828 /* status.cc in Sources */, + 628B50C01D03125A00E2D828 /* optimistic_transaction_impl.cc in Sources */, + 628B4FA61D03125A00E2D828 /* event_logger.cc in Sources */, + 628B4BAA1D03125900E2D828 /* managed_iterator.cc in Sources */, 624204091BED65250043DD6F /* RocksDBEncodingOptions.mm in Sources */, + 628B508E1D03125A00E2D828 /* memory_util.cc in Sources */, + 628B4ED01D03125A00E2D828 /* plain_table_key_coding.cc in Sources */, 6242040A1BED65250043DD6F /* RocksDBDatabaseOptions.mm in Sources */, + 628B4EA01D03125A00E2D828 /* format.cc in Sources */, + 628B4BEA1D03125900E2D828 /* transaction_log_impl.cc in Sources */, + 628B4BD41D03125900E2D828 /* repair.cc in Sources */, + 628B4F701D03125A00E2D828 /* build_version.cc in Sources */, 6242040B1BED65250043DD6F /* RocksDBColumnFamilyOptions.mm in Sources */, + 628B50A01D03125A00E2D828 /* options_util.cc in Sources */, + 628B50901D03125A00E2D828 /* put.cc in Sources */, 6242040C1BED65250043DD6F /* RocksDBWriteOptions.mm in Sources */, + 628B4B881D03125900E2D828 /* flush_scheduler.cc in Sources */, + 628B4BE41D03125900E2D828 /* table_properties_collector.cc in Sources */, 6242040D1BED65250043DD6F /* RocksDBReadOptions.mm in Sources */, 6242040E1BED65250043DD6F /* RocksDBEnv.mm in Sources */, + 628B50CA1D03125A00E2D828 /* transaction_db_impl.cc in Sources */, 6242040F1BED65250043DD6F /* RocksDBThreadStatus.mm in Sources */, + 628B4E241D03125900E2D828 /* hash_cuckoo_rep.cc in Sources */, + 628B4FA01D03125A00E2D828 /* env_hdfs.cc in Sources */, + 628B4B4C1D03125900E2D828 /* db_iter.cc in Sources */, + 628B4B3A1D03125900E2D828 /* db_impl.cc in Sources */, + 628B4B961D03125900E2D828 /* internal_stats.cc in Sources */, + 628B4BFA1D03125900E2D828 /* version_set.cc in Sources */, + 628B4FF61D03125A00E2D828 /* options.cc in Sources */, + 628B50681D03125A00E2D828 /* checkpoint.cc in Sources */, + 628B4F821D03125A00E2D828 /* compaction_job_stats_impl.cc in Sources */, + 628B4EA41D03125A00E2D828 /* full_filter_block.cc in Sources */, + 628B4B041D03125900E2D828 /* column_family.cc in Sources */, + 628B4E281D03125900E2D828 /* hash_linklist_rep.cc in Sources */, + 628B4B2A1D03125900E2D828 /* convenience.cc in Sources */, + 628B4BA61D03125900E2D828 /* log_writer.cc in Sources */, + 628B50221D03125A00E2D828 /* sst_file_manager_impl.cc in Sources */, + 628B50261D03125A00E2D828 /* statistics.cc in Sources */, + 628B4E921D03125A00E2D828 /* cuckoo_table_factory.cc in Sources */, + 628B50421D03125A00E2D828 /* thread_local.cc in Sources */, + 628B4F8C1D03125A00E2D828 /* crc32c.cc in Sources */, + 628B50B61D03125A00E2D828 /* compact_on_deletion_collector.cc in Sources */, + 628B504A1D03125A00E2D828 /* thread_posix.cc in Sources */, + 628B4E5E1D03125900E2D828 /* adaptive_table_factory.cc in Sources */, + 628B4FBA1D03125A00E2D828 /* hash.cc in Sources */, + 628B50141D03125A00E2D828 /* random.cc in Sources */, + 628B4E881D03125900E2D828 /* bloom_block.cc in Sources */, + 628B4FF01D03125A00E2D828 /* mutable_cf_options.cc in Sources */, + 628B504E1D03125A00E2D828 /* thread_status_impl.cc in Sources */, 624204101BED65250043DD6F /* RocksDBTableFactory.mm in Sources */, + 628B506C1D03125A00E2D828 /* remove_emptyvalue_compactionfilter.cc in Sources */, + 628B50081D03125A00E2D828 /* perf_context.cc in Sources */, + 628B4FB21D03125A00E2D828 /* file_util.cc in Sources */, + 628B4C121D03125900E2D828 /* write_controller.cc in Sources */, + 628B4B0C1D03125900E2D828 /* compacted_db_impl.cc in Sources */, + 628B4BF41D03125900E2D828 /* version_edit.cc in Sources */, + 628B4B381D03125900E2D828 /* db_filesnapshot.cc in Sources */, + 628B4E6C1D03125900E2D828 /* block_based_table_builder.cc in Sources */, + 628B4E661D03125900E2D828 /* block_based_filter_block.cc in Sources */, + 628B505C1D03125A00E2D828 /* xfunc.cc in Sources */, + 628B4F621D03125A00E2D828 /* arena.cc in Sources */, 624204111BED65250043DD6F /* RocksDBBlockBasedTableOptions.mm in Sources */, + 628B4F981D03125A00E2D828 /* dynamic_bloom.cc in Sources */, + 628B4E7C1D03125900E2D828 /* block_hash_index.cc in Sources */, + 628B4B221D03125900E2D828 /* compaction_picker.cc in Sources */, + 628B50541D03125A00E2D828 /* thread_status_updater_debug.cc in Sources */, + 628B4FCC1D03125A00E2D828 /* io_posix.cc in Sources */, + 628B50D61D03125A00E2D828 /* transaction_lock_mgr.cc in Sources */, + 628B4FDE1D03125A00E2D828 /* logging.cc in Sources */, + 628B4E8C1D03125900E2D828 /* cuckoo_table_builder.cc in Sources */, + 628B50301D03125A00E2D828 /* string_util.cc in Sources */, + 628B4BEE1D03125900E2D828 /* version_builder.cc in Sources */, 624204121BED65250043DD6F /* RocksDBPlainTableOptions.mm in Sources */, + 628B4B8C1D03125900E2D828 /* forward_iterator.cc in Sources */, 624204131BED65250043DD6F /* RocksDBCuckooTableOptions.mm in Sources */, 624204141BED65250043DD6F /* RocksDBCache.mm in Sources */, + 628B4FC81D03125A00E2D828 /* instrumented_mutex.cc in Sources */, 624204151BED65250043DD6F /* RocksDBFilterPolicy.mm in Sources */, + 628B4B141D03125900E2D828 /* compaction_iterator.cc in Sources */, + 628B50761D03125A00E2D828 /* json_document.cc in Sources */, + 628B4EC81D03125A00E2D828 /* plain_table_factory.cc in Sources */, 624204161BED65250043DD6F /* RocksDBMemTableRepFactory.mm in Sources */, + 628B507C1D03125A00E2D828 /* env_mirror.cc in Sources */, + 628B50AA1D03125A00E2D828 /* redis_lists.cc in Sources */, + 628B4B461D03125900E2D828 /* db_info_dumper.cc in Sources */, + 628B4C081D03125900E2D828 /* write_batch_base.cc in Sources */, + 628B4BE01D03125900E2D828 /* table_cache.cc in Sources */, + 628B4FEC1D03125A00E2D828 /* murmurhash.cc in Sources */, + 628B4F841D03125A00E2D828 /* comparator.cc in Sources */, + 628B4E781D03125900E2D828 /* block_builder.cc in Sources */, + 628B4E461D03125900E2D828 /* stack_trace.cc in Sources */, + 628B4F921D03125A00E2D828 /* delete_scheduler.cc in Sources */, + 628B50D21D03125A00E2D828 /* transaction_impl.cc in Sources */, + 628B501E1D03125A00E2D828 /* slice.cc in Sources */, 624204171BED65250043DD6F /* RocksDBSnapshot.mm in Sources */, + 628B4EDA1D03125A00E2D828 /* sst_file_writer.cc in Sources */, 624204181BED65250043DD6F /* RocksDBCheckpoint.mm in Sources */, 624204191BED65250043DD6F /* RocksDBMergeOperator.mm in Sources */, + 628B4B821D03125900E2D828 /* flush_job.cc in Sources */, + 628B4E2C1D03125900E2D828 /* hash_skiplist_rep.cc in Sources */, + 628B505A1D03125A00E2D828 /* thread_status_util_debug.cc in Sources */, + 628B4BB81D03125900E2D828 /* memtable_list.cc in Sources */, + 628B50921D03125A00E2D828 /* stringappend.cc in Sources */, + 628B4B101D03125900E2D828 /* compaction.cc in Sources */, + 628B4F881D03125A00E2D828 /* concurrent_arena.cc in Sources */, 6242041A1BED65250043DD6F /* RocksDBStatistics.mm in Sources */, + 628B4AF61D03125900E2D828 /* auto_roll_logger.cc in Sources */, + 628B4ECC1D03125A00E2D828 /* plain_table_index.cc in Sources */, + 628B4FAC1D03125A00E2D828 /* file_reader_writer.cc in Sources */, + 628B50341D03125A00E2D828 /* sync_point.cc in Sources */, + 628B50E01D03125A00E2D828 /* db_ttl_impl.cc in Sources */, + 628B4B721D03125900E2D828 /* experimental.cc in Sources */, + 628B4FD81D03125A00E2D828 /* log_buffer.cc in Sources */, + 628B4EB61D03125A00E2D828 /* merger.cc in Sources */, + 628B4F9E1D03125A00E2D828 /* env.cc in Sources */, 6242041B1BED65250043DD6F /* RocksDBStatisticsHistogram.mm in Sources */, + 628B50B01D03125A00E2D828 /* spatial_db.cc in Sources */, + 628B4F741D03125A00E2D828 /* cache.cc in Sources */, + 628B509C1D03125A00E2D828 /* uint64add.cc in Sources */, + 628B4BB41D03125900E2D828 /* memtable_allocator.cc in Sources */, 6242041C1BED65250043DD6F /* RocksDBBackupEngine.mm in Sources */, 6242041D1BED65250043DD6F /* RocksDBBackupInfo.mm in Sources */, + 628B50641D03125A00E2D828 /* backupable_db.cc in Sources */, + 628B4E821D03125900E2D828 /* block_prefix_index.cc in Sources */, + 628B4BC21D03125900E2D828 /* merge_helper.cc in Sources */, + 628B50961D03125A00E2D828 /* stringappend2.cc in Sources */, + 628B4EE81D03125A00E2D828 /* two_level_iterator.cc in Sources */, 6242042D1BED65540043DD6F /* RocksDBCallbackComparator.cpp in Sources */, + 628B4E701D03125900E2D828 /* block_based_table_factory.cc in Sources */, + 628B4F7C1D03125A00E2D828 /* coding.cc in Sources */, + 628B4E401D03125900E2D828 /* port_posix.cc in Sources */, + 628B500C1D03125A00E2D828 /* perf_level.cc in Sources */, + 628B4E741D03125900E2D828 /* block_based_table_reader.cc in Sources */, + 628B4ED41D03125A00E2D828 /* plain_table_reader.cc in Sources */, + 628B50601D03125A00E2D828 /* xxhash.cc in Sources */, + 628B4FC21D03125A00E2D828 /* histogram.cc in Sources */, 6242042E1BED65540043DD6F /* RocksDBCallbackAssociativeMergeOperator.cpp in Sources */, + 628B4C061D03125900E2D828 /* write_batch.cc in Sources */, + 628B4B1A1D03125900E2D828 /* compaction_job.cc in Sources */, + 628B50841D03125A00E2D828 /* geodb_impl.cc in Sources */, + 628B4FE21D03125A00E2D828 /* memenv.cc in Sources */, + 628B4BDC1D03125900E2D828 /* snapshot_impl.cc in Sources */, + 628B50E81D03125A00E2D828 /* write_batch_with_index_internal.cc in Sources */, + 628B50BC1D03125A00E2D828 /* optimistic_transaction_db_impl.cc in Sources */, + 628B4E961D03125A00E2D828 /* cuckoo_table_reader.cc in Sources */, + 628B4B3E1D03125900E2D828 /* db_impl_debug.cc in Sources */, + 628B4F6C1D03125A00E2D828 /* bloom.cc in Sources */, 6242042F1BED65540043DD6F /* RocksDBCallbackMergeOperator.cpp in Sources */, 624204301BED65540043DD6F /* RocksDBCallbackSliceTransform.cpp in Sources */, - 624204311BED66850043DD6F /* builder.cc in Sources */, - 624204321BED66850043DD6F /* c.cc in Sources */, - 624204331BED66850043DD6F /* column_family.cc in Sources */, - 624204341BED66850043DD6F /* compaction.cc in Sources */, - 624204351BED66850043DD6F /* compaction_job.cc in Sources */, - 624204371BED66850043DD6F /* compaction_picker.cc in Sources */, - 6242043A1BED66850043DD6F /* db_filesnapshot.cc in Sources */, - 6242043B1BED66850043DD6F /* db_impl_experimental.cc in Sources */, - 6242043C1BED66850043DD6F /* db_impl.cc in Sources */, - 6242043D1BED66850043DD6F /* db_impl_debug.cc in Sources */, - 6242043E1BED66850043DD6F /* db_impl_readonly.cc in Sources */, - 6242043F1BED66850043DD6F /* db_iter.cc in Sources */, - 624204401BED66850043DD6F /* dbformat.cc in Sources */, - 624204411BED66850043DD6F /* event_logger_helpers.cc in Sources */, - 624204421BED66850043DD6F /* experimental.cc in Sources */, - 624204431BED66850043DD6F /* file_indexer.cc in Sources */, - 624204441BED66850043DD6F /* filename.cc in Sources */, - 624204451BED66850043DD6F /* flush_job.cc in Sources */, - 624204461BED66850043DD6F /* flush_scheduler.cc in Sources */, - 624204471BED66850043DD6F /* forward_iterator.cc in Sources */, - 624204481BED66850043DD6F /* internal_stats.cc in Sources */, - 624204491BED66850043DD6F /* log_reader.cc in Sources */, - 6242044A1BED66850043DD6F /* log_writer.cc in Sources */, - 6242044B1BED66850043DD6F /* managed_iterator.cc in Sources */, - 6242044C1BED66850043DD6F /* memtable.cc in Sources */, - 6242044D1BED66850043DD6F /* memtable_allocator.cc in Sources */, - 6242044E1BED66850043DD6F /* memtable_list.cc in Sources */, - 624204501BED66850043DD6F /* merge_helper.cc in Sources */, - 624204511BED66850043DD6F /* merge_operator.cc in Sources */, - 624204521BED66850043DD6F /* repair.cc in Sources */, - 624204531BED66850043DD6F /* slice.cc in Sources */, - 624204541BED66850043DD6F /* table_cache.cc in Sources */, - 624204551BED66850043DD6F /* table_properties_collector.cc in Sources */, - 624204571BED66850043DD6F /* transaction_log_impl.cc in Sources */, - 624204581BED66850043DD6F /* version_builder.cc in Sources */, - 624204591BED66850043DD6F /* version_edit.cc in Sources */, - 6242045A1BED66850043DD6F /* version_set.cc in Sources */, - 6242045B1BED66850043DD6F /* wal_manager.cc in Sources */, - 6242045C1BED66850043DD6F /* write_batch_base.cc in Sources */, - 6242045D1BED66850043DD6F /* write_batch.cc in Sources */, - 6242045E1BED66850043DD6F /* write_controller.cc in Sources */, - 6242045F1BED66850043DD6F /* write_thread.cc in Sources */, - 624204601BED66850043DD6F /* port_posix.cc in Sources */, - 624204611BED66850043DD6F /* stack_trace.cc in Sources */, - 624204621BED66850043DD6F /* adaptive_table_factory.cc in Sources */, - 624204631BED66850043DD6F /* block.cc in Sources */, - 624204641BED66850043DD6F /* block_based_filter_block.cc in Sources */, - 624204651BED66850043DD6F /* block_based_table_builder.cc in Sources */, - 624204661BED66850043DD6F /* block_based_table_factory.cc in Sources */, - 624204671BED66850043DD6F /* block_based_table_reader.cc in Sources */, - 624204681BED66850043DD6F /* block_builder.cc in Sources */, - 624204691BED66850043DD6F /* block_hash_index.cc in Sources */, - 6242046A1BED66850043DD6F /* block_prefix_index.cc in Sources */, - 6242046B1BED66860043DD6F /* bloom_block.cc in Sources */, - 6242046C1BED66860043DD6F /* cuckoo_table_builder.cc in Sources */, - 6242046D1BED66860043DD6F /* cuckoo_table_factory.cc in Sources */, - 6242046E1BED66860043DD6F /* cuckoo_table_reader.cc in Sources */, - 6242046F1BED66860043DD6F /* flush_block_policy.cc in Sources */, - 624204701BED66860043DD6F /* format.cc in Sources */, - 624204711BED66860043DD6F /* full_filter_block.cc in Sources */, - 624204721BED66860043DD6F /* get_context.cc in Sources */, - 624204731BED66860043DD6F /* iterator.cc in Sources */, - 624204741BED66860043DD6F /* merger.cc in Sources */, - 624204751BED66860043DD6F /* meta_blocks.cc in Sources */, - 624204771BED66860043DD6F /* plain_table_builder.cc in Sources */, - 624204781BED66860043DD6F /* plain_table_factory.cc in Sources */, - 624204791BED66860043DD6F /* plain_table_index.cc in Sources */, - 6242047A1BED66860043DD6F /* plain_table_key_coding.cc in Sources */, - 6242047B1BED66860043DD6F /* plain_table_reader.cc in Sources */, - 6242047C1BED66860043DD6F /* table_properties.cc in Sources */, - 6242047E1BED66860043DD6F /* two_level_iterator.cc in Sources */, - 6242047F1BED66860043DD6F /* arena.cc in Sources */, - 624204801BED66860043DD6F /* auto_roll_logger.cc in Sources */, - 624204811BED66860043DD6F /* bloom.cc in Sources */, - 624204821BED66860043DD6F /* build_version.cc in Sources */, - 624204831BED66860043DD6F /* cache.cc in Sources */, - 624204851BED66860043DD6F /* coding.cc in Sources */, - 624204861BED66860043DD6F /* comparator.cc in Sources */, - 624204871BED66860043DD6F /* crc32c.cc in Sources */, - 624204881BED66860043DD6F /* db_info_dumper.cc in Sources */, - 624204891BED66860043DD6F /* dynamic_bloom.cc in Sources */, - 6242048A1BED66860043DD6F /* env.cc in Sources */, - 6242048B1BED66860043DD6F /* env_hdfs.cc in Sources */, - 6242048C1BED66860043DD6F /* env_posix.cc in Sources */, - 6242048D1BED66860043DD6F /* event_logger.cc in Sources */, - 6242048E1BED66860043DD6F /* file_util.cc in Sources */, - 6242048F1BED66860043DD6F /* filter_policy.cc in Sources */, - 624204901BED66860043DD6F /* hash.cc in Sources */, - 624204911BED66860043DD6F /* hash_cuckoo_rep.cc in Sources */, - 624204921BED66860043DD6F /* hash_linklist_rep.cc in Sources */, - 624204931BED66860043DD6F /* hash_skiplist_rep.cc in Sources */, - 624204941BED66860043DD6F /* histogram.cc in Sources */, - 624204951BED66860043DD6F /* instrumented_mutex.cc in Sources */, - 624204961BED66860043DD6F /* iostats_context.cc in Sources */, - 624204991BED66860043DD6F /* log_buffer.cc in Sources */, - 6242049B1BED66860043DD6F /* logging.cc in Sources */, - 6242049D1BED66860043DD6F /* memenv.cc in Sources */, - 6242049F1BED66860043DD6F /* murmurhash.cc in Sources */, - 624204A01BED66860043DD6F /* mutable_cf_options.cc in Sources */, - 624204A11BED66860043DD6F /* options.cc in Sources */, - 624204A21BED66860043DD6F /* options_builder.cc in Sources */, - 624204A31BED66860043DD6F /* options_helper.cc in Sources */, - 624204A41BED66860043DD6F /* perf_context.cc in Sources */, - 624204A51BED66860043DD6F /* rate_limiter.cc in Sources */, - 624204A61BED66860043DD6F /* skiplistrep.cc in Sources */, - 624204A71BED66860043DD6F /* slice.cc in Sources */, - 624204A91BED66860043DD6F /* statistics.cc in Sources */, - 624204AA1BED66860043DD6F /* status.cc in Sources */, - 624204AB1BED66860043DD6F /* string_util.cc in Sources */, - 624204AD1BED66860043DD6F /* sync_point.cc in Sources */, - 624204AF1BED66860043DD6F /* testutil.cc in Sources */, - 624204B01BED66860043DD6F /* thread_local.cc in Sources */, - 624204B11BED66870043DD6F /* thread_status_impl.cc in Sources */, - 624204B21BED66870043DD6F /* thread_status_updater_debug.cc in Sources */, - 624204B31BED66870043DD6F /* thread_status_updater.cc in Sources */, - 624204B41BED66870043DD6F /* thread_status_util_debug.cc in Sources */, - 624204B51BED66870043DD6F /* thread_status_util.cc in Sources */, - 624204B61BED66870043DD6F /* vectorrep.cc in Sources */, - 624204B71BED66870043DD6F /* xfunc.cc in Sources */, - 624204B81BED66870043DD6F /* xxhash.cc in Sources */, - 624204B91BED66870043DD6F /* backupable_db.cc in Sources */, - 624204BA1BED66870043DD6F /* checkpoint.cc in Sources */, - 624204BB1BED66870043DD6F /* compacted_db_impl.cc in Sources */, - 624204BC1BED66870043DD6F /* convenience.cc in Sources */, - 624204BD1BED66870043DD6F /* document_db.cc in Sources */, - 624204BE1BED66870043DD6F /* json_document_builder.cc in Sources */, - 624204BF1BED66870043DD6F /* json_document.cc in Sources */, - 624204C01BED66870043DD6F /* flashcache.cc in Sources */, - 624204C11BED66870043DD6F /* geodb_impl.cc in Sources */, - 624204C21BED66870043DD6F /* leveldb_options.cc in Sources */, - 624204C31BED66870043DD6F /* put.cc in Sources */, - 624204C41BED66870043DD6F /* stringappend.cc in Sources */, - 624204C51BED66870043DD6F /* stringappend2.cc in Sources */, - 624204C61BED66870043DD6F /* uint64add.cc in Sources */, - 624204C71BED66870043DD6F /* redis_lists.cc in Sources */, - 624204C81BED66870043DD6F /* spatial_db.cc in Sources */, - 624204C91BED66870043DD6F /* db_ttl_impl.cc in Sources */, - 624204CA1BED66870043DD6F /* write_batch_with_index_internal.cc in Sources */, - 624204CB1BED66870043DD6F /* write_batch_with_index.cc in Sources */, + 628B4EAA1D03125A00E2D828 /* get_context.cc in Sources */, + 628B4FA21D03125A00E2D828 /* env_posix.cc in Sources */, + 628B4E9E1D03125A00E2D828 /* flush_block_policy.cc in Sources */, + 628B4E301D03125900E2D828 /* skiplistrep.cc in Sources */, + 628B50561D03125A00E2D828 /* thread_status_util.cc in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2666,177 +3524,204 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 628B4E251D03125900E2D828 /* hash_cuckoo_rep.cc in Sources */, 624F5DC61BEE437C00497FEF /* RocksDB.mm in Sources */, - 624F5DC81BEE437C00497FEF /* RocksDBTypes.m in Sources */, + 628B505D1D03125A00E2D828 /* xfunc.cc in Sources */, + 624F5DC81BEE437C00497FEF /* RocksDBTypes.mm in Sources */, + 628B502D1D03125A00E2D828 /* status_message.cc in Sources */, + 628B4E631D03125900E2D828 /* block.cc in Sources */, + 628B4F8D1D03125A00E2D828 /* crc32c.cc in Sources */, + 628B4E411D03125900E2D828 /* port_posix.cc in Sources */, + 628B4B971D03125900E2D828 /* internal_stats.cc in Sources */, + 628B4BEB1D03125900E2D828 /* transaction_log_impl.cc in Sources */, + 628B50511D03125A00E2D828 /* thread_status_updater.cc in Sources */, + 628B50611D03125A00E2D828 /* xxhash.cc in Sources */, + 628B4C091D03125900E2D828 /* write_batch_base.cc in Sources */, 624F5DC91BEE437C00497FEF /* RocksDBError.mm in Sources */, + 628B4F991D03125A00E2D828 /* dynamic_bloom.cc in Sources */, + 628B4B391D03125900E2D828 /* db_filesnapshot.cc in Sources */, + 628B4FFB1D03125A00E2D828 /* options_helper.cc in Sources */, 624F5DCA1BEE437C00497FEF /* RocksDBColumnFamily.mm in Sources */, + 628B4E711D03125900E2D828 /* block_based_table_factory.cc in Sources */, + 628B50B71D03125A00E2D828 /* compact_on_deletion_collector.cc in Sources */, + 628B4C071D03125900E2D828 /* write_batch.cc in Sources */, 624F5DCB1BEE437C00497FEF /* RocksDBColumnFamilyDescriptor.mm in Sources */, 624F5DCD1BEE437C00497FEF /* RocksDBIterator.mm in Sources */, + 628B4EA11D03125A00E2D828 /* format.cc in Sources */, + 628B4BB91D03125900E2D828 /* memtable_list.cc in Sources */, + 628B4F931D03125A00E2D828 /* delete_scheduler.cc in Sources */, + 628B4BD51D03125900E2D828 /* repair.cc in Sources */, + 628B50771D03125A00E2D828 /* json_document.cc in Sources */, + 628B50351D03125A00E2D828 /* sync_point.cc in Sources */, + 628B4E351D03125900E2D828 /* vectorrep.cc in Sources */, 624F5DCE1BEE437C00497FEF /* RocksDBPrefixExtractor.mm in Sources */, + 628B4EB71D03125A00E2D828 /* merger.cc in Sources */, + 628B4E751D03125900E2D828 /* block_based_table_reader.cc in Sources */, + 628B50191D03125A00E2D828 /* rate_limiter.cc in Sources */, + 628B4E931D03125A00E2D828 /* cuckoo_table_factory.cc in Sources */, + 628B4BC31D03125900E2D828 /* merge_helper.cc in Sources */, + 628B4B431D03125900E2D828 /* db_impl_readonly.cc in Sources */, 624F5DCF1BEE437C00497FEF /* RocksDBWriteBatch.mm in Sources */, + 628B4F711D03125A00E2D828 /* build_version.cc in Sources */, + 628B509D1D03125A00E2D828 /* uint64add.cc in Sources */, + 628B4ED11D03125A00E2D828 /* plain_table_key_coding.cc in Sources */, + 628B4B3F1D03125900E2D828 /* db_impl_debug.cc in Sources */, + 628B50571D03125A00E2D828 /* thread_status_util.cc in Sources */, + 628B506D1D03125A00E2D828 /* remove_emptyvalue_compactionfilter.cc in Sources */, + 628B50BD1D03125A00E2D828 /* optimistic_transaction_db_impl.cc in Sources */, + 628B504B1D03125A00E2D828 /* thread_posix.cc in Sources */, + 628B50A11D03125A00E2D828 /* options_util.cc in Sources */, + 628B4E831D03125900E2D828 /* block_prefix_index.cc in Sources */, + 628B4ED51D03125A00E2D828 /* plain_table_reader.cc in Sources */, 624F5DD01BEE437C00497FEF /* RocksDBIndexedWriteBatch.mm in Sources */, + 628B50811D03125A00E2D828 /* flashcache.cc in Sources */, 624F5DD11BEE437C00497FEF /* RocksDBWriteBatchIterator.mm in Sources */, + 628B4E9F1D03125A00E2D828 /* flush_block_policy.cc in Sources */, + 628B50DD1D03125A00E2D828 /* transaction_util.cc in Sources */, + 628B4FF91D03125A00E2D828 /* options_builder.cc in Sources */, + 628B4E8D1D03125A00E2D828 /* cuckoo_table_builder.cc in Sources */, + 628B4BC91D03125900E2D828 /* merge_operator.cc in Sources */, + 628B4B011D03125900E2D828 /* c.cc in Sources */, + 628B4F7D1D03125A00E2D828 /* coding.cc in Sources */, 624F5DD21BEE437C00497FEF /* RocksDBComparator.mm in Sources */, + 628B4BF51D03125900E2D828 /* version_edit.cc in Sources */, 624F5DD31BEE437C00497FEF /* RocksDBOptions.mm in Sources */, + 628B502B1D03125A00E2D828 /* status.cc in Sources */, + 628B4FCD1D03125A00E2D828 /* io_posix.cc in Sources */, + 628B4B3B1D03125900E2D828 /* db_impl.cc in Sources */, + 628B4C191D03125900E2D828 /* write_thread.cc in Sources */, + 628B50851D03125A00E2D828 /* geodb_impl.cc in Sources */, + 628B4FC31D03125A00E2D828 /* histogram.cc in Sources */, + 628B50D31D03125A00E2D828 /* transaction_impl.cc in Sources */, 624F5DD41BEE437C00497FEF /* RocksDBEncodingOptions.mm in Sources */, 624F5DD51BEE437C00497FEF /* RocksDBDatabaseOptions.mm in Sources */, + 628B4E291D03125900E2D828 /* hash_linklist_rep.cc in Sources */, + 628B4FD11D03125A00E2D828 /* iostats_context.cc in Sources */, + 628B4F751D03125A00E2D828 /* cache.cc in Sources */, + 628B4F631D03125A00E2D828 /* arena.cc in Sources */, + 628B50651D03125A00E2D828 /* backupable_db.cc in Sources */, + 628B50E71D03125A00E2D828 /* write_batch_with_index.cc in Sources */, + 628B4FB31D03125A00E2D828 /* file_util.cc in Sources */, + 628B50791D03125A00E2D828 /* json_document_builder.cc in Sources */, + 628B4E5F1D03125900E2D828 /* adaptive_table_factory.cc in Sources */, + 628B4BDB1D03125900E2D828 /* slice.cc in Sources */, + 628B50B11D03125A00E2D828 /* spatial_db.cc in Sources */, + 628B4B2B1D03125900E2D828 /* convenience.cc in Sources */, + 628B4B891D03125900E2D828 /* flush_scheduler.cc in Sources */, + 628B4E971D03125A00E2D828 /* cuckoo_table_reader.cc in Sources */, + 628B4B231D03125900E2D828 /* compaction_picker.cc in Sources */, + 628B4C011D03125900E2D828 /* wal_manager.cc in Sources */, + 628B4BFB1D03125900E2D828 /* version_set.cc in Sources */, 624F5DD61BEE437C00497FEF /* RocksDBColumnFamilyOptions.mm in Sources */, + 628B500D1D03125A00E2D828 /* perf_level.cc in Sources */, + 628B50E91D03125A00E2D828 /* write_batch_with_index_internal.cc in Sources */, + 628B4B111D03125900E2D828 /* compaction.cc in Sources */, + 628B4F891D03125A00E2D828 /* concurrent_arena.cc in Sources */, + 628B50D71D03125A00E2D828 /* transaction_lock_mgr.cc in Sources */, + 628B4E671D03125900E2D828 /* block_based_filter_block.cc in Sources */, 624F5DD71BEE437C00497FEF /* RocksDBWriteOptions.mm in Sources */, + 628B4BAB1D03125900E2D828 /* managed_iterator.cc in Sources */, + 628B4F851D03125A00E2D828 /* comparator.cc in Sources */, + 628B4FED1D03125A00E2D828 /* murmurhash.cc in Sources */, + 628B4F9F1D03125A00E2D828 /* env.cc in Sources */, + 628B4E311D03125900E2D828 /* skiplistrep.cc in Sources */, + 628B50CF1D03125A00E2D828 /* transaction_db_mutex_impl.cc in Sources */, + 628B4BEF1D03125900E2D828 /* version_builder.cc in Sources */, + 628B4FDF1D03125A00E2D828 /* logging.cc in Sources */, + 628B50691D03125A00E2D828 /* checkpoint.cc in Sources */, + 628B4EDF1D03125A00E2D828 /* table_properties.cc in Sources */, + 628B4BE51D03125900E2D828 /* table_properties_collector.cc in Sources */, 624F5DD81BEE437C00497FEF /* RocksDBReadOptions.mm in Sources */, + 628B4F6D1D03125A00E2D828 /* bloom.cc in Sources */, + 628B4B7D1D03125900E2D828 /* filename.cc in Sources */, 624F5DD91BEE437C00497FEF /* RocksDBEnv.mm in Sources */, + 628B4B1B1D03125900E2D828 /* compaction_job.cc in Sources */, + 628B508F1D03125A00E2D828 /* memory_util.cc in Sources */, 624F5DDB1BEE437C00497FEF /* RocksDBTableFactory.mm in Sources */, + 628B4EC51D03125A00E2D828 /* plain_table_builder.cc in Sources */, 624F5DDC1BEE437C00497FEF /* RocksDBBlockBasedTableOptions.mm in Sources */, + 628B501F1D03125A00E2D828 /* slice.cc in Sources */, 624F5DDF1BEE437C00497FEF /* RocksDBCache.mm in Sources */, + 628B4E891D03125900E2D828 /* bloom_block.cc in Sources */, + 628B4EDB1D03125A00E2D828 /* sst_file_writer.cc in Sources */, + 628B4B051D03125900E2D828 /* column_family.cc in Sources */, + 628B4E471D03125900E2D828 /* stack_trace.cc in Sources */, + 628B4B731D03125900E2D828 /* experimental.cc in Sources */, 624F5DE01BEE437C00497FEF /* RocksDBFilterPolicy.mm in Sources */, + 628B4FBB1D03125A00E2D828 /* hash.cc in Sources */, + 628B4BDD1D03125900E2D828 /* snapshot_impl.cc in Sources */, + 628B50271D03125A00E2D828 /* statistics.cc in Sources */, + 628B505B1D03125A00E2D828 /* thread_status_util_debug.cc in Sources */, + 628B4FA31D03125A00E2D828 /* env_posix.cc in Sources */, + 628B4EC91D03125A00E2D828 /* plain_table_factory.cc in Sources */, + 628B4FB91D03125A00E2D828 /* filter_policy.cc in Sources */, + 628B507D1D03125A00E2D828 /* env_mirror.cc in Sources */, + 628B4B4D1D03125900E2D828 /* db_iter.cc in Sources */, + 628B4F831D03125A00E2D828 /* compaction_job_stats_impl.cc in Sources */, + 628B4FD91D03125A00E2D828 /* log_buffer.cc in Sources */, + 628B4FA71D03125A00E2D828 /* event_logger.cc in Sources */, + 628B4BE11D03125900E2D828 /* table_cache.cc in Sources */, + 628B4B471D03125900E2D828 /* db_info_dumper.cc in Sources */, + 628B50231D03125A00E2D828 /* sst_file_manager_impl.cc in Sources */, + 628B4FC91D03125A00E2D828 /* instrumented_mutex.cc in Sources */, 624F5DE11BEE437C00497FEF /* RocksDBMemTableRepFactory.mm in Sources */, + 628B50311D03125A00E2D828 /* string_util.cc in Sources */, + 628B4EAB1D03125A00E2D828 /* get_context.cc in Sources */, + 628B4E7D1D03125900E2D828 /* block_hash_index.cc in Sources */, + 628B50431D03125A00E2D828 /* thread_local.cc in Sources */, 624F5DE21BEE437C00497FEF /* RocksDBSnapshot.mm in Sources */, + 628B4FAD1D03125A00E2D828 /* file_reader_writer.cc in Sources */, 624F5DED1BEE441900497FEF /* RocksDBMergeOperator.mm in Sources */, 624F5DE51BEE437C00497FEF /* RocksDBStatistics.mm in Sources */, + 628B4BB11D03125900E2D828 /* memtable.cc in Sources */, + 628B4BB51D03125900E2D828 /* memtable_allocator.cc in Sources */, + 628B4FFF1D03125A00E2D828 /* options_parser.cc in Sources */, + 628B4B411D03125900E2D828 /* db_impl_experimental.cc in Sources */, + 628B4EB31D03125A00E2D828 /* iterator.cc in Sources */, + 628B4E6D1D03125900E2D828 /* block_based_table_builder.cc in Sources */, + 628B50711D03125A00E2D828 /* info_log_finder.cc in Sources */, + 628B4B671D03125900E2D828 /* dbformat.cc in Sources */, + 628B50031D03125A00E2D828 /* options_sanity_check.cc in Sources */, + 628B4AFD1D03125900E2D828 /* builder.cc in Sources */, + 628B504F1D03125A00E2D828 /* thread_status_impl.cc in Sources */, 624F5DE61BEE437C00497FEF /* RocksDBStatisticsHistogram.mm in Sources */, + 628B4B8D1D03125900E2D828 /* forward_iterator.cc in Sources */, + 628B50971D03125A00E2D828 /* stringappend2.cc in Sources */, + 628B4B151D03125900E2D828 /* compaction_iterator.cc in Sources */, + 628B4E2D1D03125900E2D828 /* hash_skiplist_rep.cc in Sources */, + 628B4FA11D03125A00E2D828 /* env_hdfs.cc in Sources */, + 628B508B1D03125A00E2D828 /* leveldb_options.cc in Sources */, + 628B4AF71D03125900E2D828 /* auto_roll_logger.cc in Sources */, + 628B50551D03125A00E2D828 /* thread_status_updater_debug.cc in Sources */, + 628B4E791D03125900E2D828 /* block_builder.cc in Sources */, + 628B4EE91D03125A00E2D828 /* two_level_iterator.cc in Sources */, 624F5DE91BEE438400497FEF /* RocksDBCallbackComparator.cpp in Sources */, + 628B50091D03125A00E2D828 /* perf_context.cc in Sources */, + 628B50151D03125A00E2D828 /* random.cc in Sources */, + 628B50AB1D03125A00E2D828 /* redis_lists.cc in Sources */, + 628B50911D03125A00E2D828 /* put.cc in Sources */, + 628B4B831D03125900E2D828 /* flush_job.cc in Sources */, + 628B4B771D03125900E2D828 /* file_indexer.cc in Sources */, + 628B50CB1D03125A00E2D828 /* transaction_db_impl.cc in Sources */, + 628B4B0D1D03125900E2D828 /* compacted_db_impl.cc in Sources */, + 628B4FE31D03125A00E2D828 /* memenv.cc in Sources */, 624F5DEA1BEE438400497FEF /* RocksDBCallbackAssociativeMergeOperator.cpp in Sources */, + 628B4FF71D03125A00E2D828 /* options.cc in Sources */, + 628B4ECD1D03125A00E2D828 /* plain_table_index.cc in Sources */, + 628B4B6F1D03125900E2D828 /* event_helpers.cc in Sources */, + 628B4EA51D03125A00E2D828 /* full_filter_block.cc in Sources */, + 628B4BA11D03125900E2D828 /* log_reader.cc in Sources */, + 628B50731D03125A00E2D828 /* document_db.cc in Sources */, + 628B50C71D03125A00E2D828 /* transaction_base.cc in Sources */, + 628B50E11D03125A00E2D828 /* db_ttl_impl.cc in Sources */, + 628B4EBD1D03125A00E2D828 /* meta_blocks.cc in Sources */, 624F5DEB1BEE438400497FEF /* RocksDBCallbackMergeOperator.cpp in Sources */, + 628B4C131D03125900E2D828 /* write_controller.cc in Sources */, + 628B50931D03125A00E2D828 /* stringappend.cc in Sources */, 624F5DEC1BEE438400497FEF /* RocksDBCallbackSliceTransform.cpp in Sources */, - 624F5E3E1BEE44E700497FEF /* builder.cc in Sources */, - 624F5E3F1BEE44E700497FEF /* c.cc in Sources */, - 624F5E401BEE44E700497FEF /* column_family.cc in Sources */, - 624F5E411BEE44E700497FEF /* compaction.cc in Sources */, - 624F5E421BEE44E700497FEF /* compaction_job.cc in Sources */, - 624F5E431BEE44E700497FEF /* compaction_picker.cc in Sources */, - 624F5E441BEE44E700497FEF /* db_filesnapshot.cc in Sources */, - 624F5E451BEE44E700497FEF /* db_impl_experimental.cc in Sources */, - 624F5E461BEE44E700497FEF /* db_impl.cc in Sources */, - 624F5E471BEE44E700497FEF /* db_impl_debug.cc in Sources */, - 624F5E481BEE44E700497FEF /* db_impl_readonly.cc in Sources */, - 624F5E491BEE44E700497FEF /* db_iter.cc in Sources */, - 624F5E4A1BEE44E700497FEF /* dbformat.cc in Sources */, - 624F5E4B1BEE44E700497FEF /* event_logger_helpers.cc in Sources */, - 624F5E4C1BEE44E700497FEF /* experimental.cc in Sources */, - 624F5E4D1BEE44E700497FEF /* file_indexer.cc in Sources */, - 624F5E4E1BEE44E700497FEF /* filename.cc in Sources */, - 624F5E4F1BEE44E700497FEF /* flush_job.cc in Sources */, - 624F5E501BEE44E700497FEF /* flush_scheduler.cc in Sources */, - 624F5E511BEE44E700497FEF /* forward_iterator.cc in Sources */, - 624F5E521BEE44E700497FEF /* internal_stats.cc in Sources */, - 624F5E531BEE44E700497FEF /* log_reader.cc in Sources */, - 624F5E541BEE44E700497FEF /* log_writer.cc in Sources */, - 624F5E551BEE44E700497FEF /* managed_iterator.cc in Sources */, - 624F5E561BEE44E700497FEF /* memtable.cc in Sources */, - 624F5E571BEE44E700497FEF /* memtable_allocator.cc in Sources */, - 624F5E581BEE44E700497FEF /* memtable_list.cc in Sources */, - 624F5E591BEE44E700497FEF /* merge_helper.cc in Sources */, - 624F5E5A1BEE44E700497FEF /* merge_operator.cc in Sources */, - 624F5E5B1BEE44E700497FEF /* repair.cc in Sources */, - 624F5E5C1BEE44E700497FEF /* slice.cc in Sources */, - 624F5E5D1BEE44E700497FEF /* table_cache.cc in Sources */, - 624F5E5E1BEE44E700497FEF /* table_properties_collector.cc in Sources */, - 624F5E5F1BEE44E700497FEF /* transaction_log_impl.cc in Sources */, - 624F5E601BEE44E700497FEF /* version_builder.cc in Sources */, - 624F5E611BEE44E700497FEF /* version_edit.cc in Sources */, - 624F5E621BEE44E700497FEF /* version_set.cc in Sources */, - 624F5E631BEE44E700497FEF /* wal_manager.cc in Sources */, - 624F5E641BEE44E700497FEF /* write_batch_base.cc in Sources */, - 624F5E651BEE44E800497FEF /* write_batch.cc in Sources */, - 624F5E661BEE44E800497FEF /* write_controller.cc in Sources */, - 624F5E671BEE44E800497FEF /* write_thread.cc in Sources */, - 624F5E681BEE44E800497FEF /* port_posix.cc in Sources */, - 624F5E691BEE44E800497FEF /* stack_trace.cc in Sources */, - 624F5E6A1BEE44E800497FEF /* adaptive_table_factory.cc in Sources */, - 624F5E6B1BEE44E800497FEF /* block.cc in Sources */, - 624F5E6C1BEE44E800497FEF /* block_based_filter_block.cc in Sources */, - 624F5E6D1BEE44E800497FEF /* block_based_table_builder.cc in Sources */, - 624F5E6E1BEE44E800497FEF /* block_based_table_factory.cc in Sources */, - 624F5E6F1BEE44E800497FEF /* block_based_table_reader.cc in Sources */, - 624F5E701BEE44E800497FEF /* block_builder.cc in Sources */, - 624F5E711BEE44E800497FEF /* block_hash_index.cc in Sources */, - 624F5E721BEE44E800497FEF /* block_prefix_index.cc in Sources */, - 624F5E731BEE44E800497FEF /* bloom_block.cc in Sources */, - 624F5E741BEE44E800497FEF /* cuckoo_table_builder.cc in Sources */, - 624F5E751BEE44E800497FEF /* cuckoo_table_factory.cc in Sources */, - 624F5E761BEE44E800497FEF /* cuckoo_table_reader.cc in Sources */, - 624F5E771BEE44E800497FEF /* flush_block_policy.cc in Sources */, - 624F5E781BEE44E800497FEF /* format.cc in Sources */, - 624F5E791BEE44E800497FEF /* full_filter_block.cc in Sources */, - 624F5E7A1BEE44E800497FEF /* get_context.cc in Sources */, - 624F5E7B1BEE44E800497FEF /* iterator.cc in Sources */, - 624F5E7C1BEE44E800497FEF /* merger.cc in Sources */, - 624F5E7D1BEE44E800497FEF /* meta_blocks.cc in Sources */, - 624F5E7E1BEE44E800497FEF /* plain_table_builder.cc in Sources */, - 624F5E7F1BEE44E800497FEF /* plain_table_factory.cc in Sources */, - 624F5E801BEE44E800497FEF /* plain_table_index.cc in Sources */, - 624F5E811BEE44E800497FEF /* plain_table_key_coding.cc in Sources */, - 624F5E821BEE44E800497FEF /* plain_table_reader.cc in Sources */, - 624F5E831BEE44E800497FEF /* table_properties.cc in Sources */, - 624F5E841BEE44E800497FEF /* two_level_iterator.cc in Sources */, - 624F5E851BEE44E800497FEF /* arena.cc in Sources */, - 624F5E861BEE44E800497FEF /* auto_roll_logger.cc in Sources */, - 624F5E871BEE44E800497FEF /* bloom.cc in Sources */, - 624F5E881BEE44E800497FEF /* build_version.cc in Sources */, - 624F5E891BEE44E800497FEF /* cache.cc in Sources */, - 624F5E8A1BEE44E800497FEF /* coding.cc in Sources */, - 624F5E8B1BEE44E800497FEF /* comparator.cc in Sources */, - 624F5E8C1BEE44E800497FEF /* crc32c.cc in Sources */, - 624F5E8D1BEE44E800497FEF /* db_info_dumper.cc in Sources */, - 624F5E8E1BEE44E800497FEF /* dynamic_bloom.cc in Sources */, - 624F5E8F1BEE44E800497FEF /* env.cc in Sources */, - 624F5E901BEE44E800497FEF /* env_hdfs.cc in Sources */, - 624F5E911BEE44E800497FEF /* env_posix.cc in Sources */, - 624F5E921BEE44E800497FEF /* event_logger.cc in Sources */, - 624F5E931BEE44E800497FEF /* file_util.cc in Sources */, - 624F5E941BEE44E800497FEF /* filter_policy.cc in Sources */, - 624F5E951BEE44E800497FEF /* hash.cc in Sources */, - 624F5E961BEE44E800497FEF /* hash_cuckoo_rep.cc in Sources */, - 624F5E971BEE44E800497FEF /* hash_linklist_rep.cc in Sources */, - 624F5E981BEE44E800497FEF /* hash_skiplist_rep.cc in Sources */, - 624F5E991BEE44E800497FEF /* histogram.cc in Sources */, - 624F5E9A1BEE44E800497FEF /* instrumented_mutex.cc in Sources */, - 624F5E9B1BEE44E800497FEF /* iostats_context.cc in Sources */, - 624F5E9C1BEE44E800497FEF /* log_buffer.cc in Sources */, - 624F5E9D1BEE44E800497FEF /* logging.cc in Sources */, - 624F5E9E1BEE44E800497FEF /* memenv.cc in Sources */, - 624F5E9F1BEE44E800497FEF /* murmurhash.cc in Sources */, - 624F5EA01BEE44E800497FEF /* mutable_cf_options.cc in Sources */, - 624F5EA11BEE44E800497FEF /* options.cc in Sources */, - 624F5EA21BEE44E800497FEF /* options_builder.cc in Sources */, - 624F5EA31BEE44E800497FEF /* options_helper.cc in Sources */, - 624F5EA41BEE44E800497FEF /* perf_context.cc in Sources */, - 624F5EA51BEE44E800497FEF /* rate_limiter.cc in Sources */, - 624F5EA61BEE44E800497FEF /* skiplistrep.cc in Sources */, - 624F5EA71BEE44E800497FEF /* slice.cc in Sources */, - 62A26A3D1C694B7F00DDE27E /* sst_dump_tool.cc in Sources */, - 624F5EA91BEE44E800497FEF /* statistics.cc in Sources */, - 624F5EAA1BEE44E800497FEF /* status.cc in Sources */, - 624F5EAB1BEE44E900497FEF /* string_util.cc in Sources */, - 624F5EAD1BEE44E900497FEF /* sync_point.cc in Sources */, - 624F5EAF1BEE44E900497FEF /* testutil.cc in Sources */, - 624F5EB01BEE44E900497FEF /* thread_local.cc in Sources */, - 624F5EB11BEE44E900497FEF /* thread_status_impl.cc in Sources */, - 624F5EB21BEE44E900497FEF /* thread_status_updater_debug.cc in Sources */, - 624F5EB31BEE44E900497FEF /* thread_status_updater.cc in Sources */, - 624F5EB41BEE44E900497FEF /* thread_status_util_debug.cc in Sources */, - 624F5EB51BEE44E900497FEF /* thread_status_util.cc in Sources */, - 624F5EB61BEE44E900497FEF /* vectorrep.cc in Sources */, - 624F5EB71BEE44E900497FEF /* xfunc.cc in Sources */, - 624F5EB81BEE44E900497FEF /* xxhash.cc in Sources */, - 624F5EB91BEE44E900497FEF /* backupable_db.cc in Sources */, - 624F5EBA1BEE44E900497FEF /* checkpoint.cc in Sources */, - 624F5EBB1BEE44E900497FEF /* compacted_db_impl.cc in Sources */, - 624F5EBC1BEE44E900497FEF /* convenience.cc in Sources */, - 624F5EBD1BEE44E900497FEF /* document_db.cc in Sources */, - 624F5EBE1BEE44E900497FEF /* json_document_builder.cc in Sources */, - 624F5EBF1BEE44E900497FEF /* json_document.cc in Sources */, - 624F5EC01BEE44E900497FEF /* flashcache.cc in Sources */, - 624F5EC11BEE44E900497FEF /* geodb_impl.cc in Sources */, - 624F5EC21BEE44E900497FEF /* leveldb_options.cc in Sources */, - 624F5EC31BEE44E900497FEF /* put.cc in Sources */, - 624F5EC41BEE44E900497FEF /* stringappend.cc in Sources */, - 624F5EC51BEE44E900497FEF /* stringappend2.cc in Sources */, - 624F5EC61BEE44E900497FEF /* uint64add.cc in Sources */, - 624F5EC71BEE44E900497FEF /* redis_lists.cc in Sources */, - 624F5EC81BEE44E900497FEF /* spatial_db.cc in Sources */, - 624F5EC91BEE44E900497FEF /* db_ttl_impl.cc in Sources */, - 624F5ECA1BEE44E900497FEF /* write_batch_with_index_internal.cc in Sources */, - 624F5ECB1BEE44E900497FEF /* write_batch_with_index.cc in Sources */, + 628B50C11D03125A00E2D828 /* optimistic_transaction_impl.cc in Sources */, + 628B4BA71D03125900E2D828 /* log_writer.cc in Sources */, + 628B4FF11D03125A00E2D828 /* mutable_cf_options.cc in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2949,6 +3834,10 @@ INFOPLIST_FILE = Framework/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/rocksdb", + ); MACOSX_DEPLOYMENT_TARGET = 10.10; PRODUCT_BUNDLE_IDENTIFIER = de.iabudiab.ObjectiveRocks; PRODUCT_NAME = ObjectiveRocks; @@ -2986,6 +3875,10 @@ INFOPLIST_FILE = Framework/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/rocksdb", + ); MACOSX_DEPLOYMENT_TARGET = 10.10; PRODUCT_BUNDLE_IDENTIFIER = de.iabudiab.ObjectiveRocks; PRODUCT_NAME = ObjectiveRocks; @@ -3025,6 +3918,10 @@ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/rocksdb", + ); PRODUCT_BUNDLE_IDENTIFIER = de.iabudiab.ObjectiveRocks; PRODUCT_NAME = ObjectiveRocks; SKIP_INSTALL = YES; @@ -3063,6 +3960,10 @@ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/rocksdb", + ); PRODUCT_BUNDLE_IDENTIFIER = de.iabudiab.ObjectiveRocks; PRODUCT_NAME = ObjectiveRocks; SKIP_INSTALL = YES; From 8b995527af53f397d18d05a801af69b04ef570b7 Mon Sep 17 00:00:00 2001 From: iska Date: Sat, 4 Jun 2016 22:40:14 +0200 Subject: [PATCH 46/76] Fix rocksdb compilation for iOS and OSX Add ROCKSDB_LIB_IO_POSIX compiler flag to compile io_poisx.cc --- ObjectiveRocks.xcodeproj/project.pbxproj | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ObjectiveRocks.xcodeproj/project.pbxproj b/ObjectiveRocks.xcodeproj/project.pbxproj index 72461c2..c339399 100644 --- a/ObjectiveRocks.xcodeproj/project.pbxproj +++ b/ObjectiveRocks.xcodeproj/project.pbxproj @@ -3824,6 +3824,7 @@ "DEBUG=1", "OS_MACOSX=1", "ROCKSDB_PLATFORM_POSIX=1", + "ROCKSDB_LIB_IO_POSIX=1", "ROCKSDB_USING_THREAD_STATUS=1", ); HEADER_SEARCH_PATHS = ( @@ -3865,6 +3866,7 @@ GCC_PREPROCESSOR_DEFINITIONS = ( "OS_MACOSX=1", "ROCKSDB_PLATFORM_POSIX=1", + "ROCKSDB_LIB_IO_POSIX=1", "ROCKSDB_USING_THREAD_STATUS=1", ); HEADER_SEARCH_PATHS = ( @@ -3905,6 +3907,7 @@ "DEBUG=1", "OS_MACOSX=1", "ROCKSDB_PLATFORM_POSIX=1", + "ROCKSDB_LIB_IO_POSIX=1", "ROCKSDB_LITE=1", "IOS_CROSS_COMPILE=1", "NROCKSDB_THREAD_STATUS=1", @@ -3947,6 +3950,7 @@ GCC_PREPROCESSOR_DEFINITIONS = ( "OS_MACOSX=1", "ROCKSDB_PLATFORM_POSIX=1", + "ROCKSDB_LIB_IO_POSIX=1", "ROCKSDB_LITE=1", "IOS_CROSS_COMPILE=1", "NROCKSDB_THREAD_STATUS=1", From 2a6ab96c13d5e4596712da5ff42650e7682211a6 Mon Sep 17 00:00:00 2001 From: iska Date: Sat, 4 Jun 2016 22:40:42 +0200 Subject: [PATCH 47/76] Update Swift tests for latest swift syntax --- Tests/RockDBTests.swift | 8 ++++---- Tests/RocksDBColumnFamilyTests.swift | 8 ++++++-- Tests/RocksDBComparatorTests.swift | 16 ++++++++-------- Tests/RocksDBIteratorTests.swift | 4 +++- 4 files changed, 21 insertions(+), 15 deletions(-) diff --git a/Tests/RockDBTests.swift b/Tests/RockDBTests.swift index e5dcbe7..9c0b666 100644 --- a/Tests/RockDBTests.swift +++ b/Tests/RockDBTests.swift @@ -11,10 +11,10 @@ import XCTest import ObjectiveRocks public func AssertThrows(message: String = "Expression did not throw", - _ function: String = __FUNCTION__, - _ file: String = __FILE__, - _ line: UInt = __LINE__, - expression: () throws -> Void) + _ function: String = #function, + _ file: StaticString = #file, + _ line: UInt = #line, + expression: () throws -> Void) { var thrown: NSError? = nil do { diff --git a/Tests/RocksDBColumnFamilyTests.swift b/Tests/RocksDBColumnFamilyTests.swift index f5aba2d..341d88b 100644 --- a/Tests/RocksDBColumnFamilyTests.swift +++ b/Tests/RocksDBColumnFamilyTests.swift @@ -261,9 +261,11 @@ class RocksDBColumnFamilyTests : RocksDBTests { let actual = NSMutableArray() - for dfIterator.seekToFirst(); dfIterator.isValid(); dfIterator.next() { + dfIterator.seekToFirst() + while dfIterator.isValid() { actual.addObject(Str(dfIterator.key() as! NSData)) actual.addObject(Str(dfIterator.value() as! NSData)) + dfIterator.next() } var expected = [ "df_key1", "df_value1", "df_key2", "df_value2" ] @@ -275,9 +277,11 @@ class RocksDBColumnFamilyTests : RocksDBTests { actual.removeAllObjects() - for cfIterator.seekToFirst(); cfIterator.isValid(); cfIterator.next() { + cfIterator.seekToFirst() + while cfIterator.isValid() { actual.addObject(Str(cfIterator.key() as! NSData)) actual.addObject(Str(cfIterator.value() as! NSData)) + cfIterator.next() } expected = [ "cf_key1", "cf_value1", "cf_key2", "cf_value2" ] diff --git a/Tests/RocksDBComparatorTests.swift b/Tests/RocksDBComparatorTests.swift index 198eed6..8414f54 100644 --- a/Tests/RocksDBComparatorTests.swift +++ b/Tests/RocksDBComparatorTests.swift @@ -130,14 +130,14 @@ class RocksDBComparatorTests : RocksDBTests { } /* Expected Array: [A0, A1, A10, A100, A1000, A1001, A1019, A102, A1020, ...] */ - expected.sortUsingSelector(Selector("compare:")) + expected.sortUsingSelector(#selector(NSString.compare(_:))) let iterator = rocks.iterator() var idx = 0 iterator.enumerateKeysUsingBlock { (key, stop) -> Void in XCTAssertEqual(key as? NSString, expected[idx] as? NSString) - idx++ + idx += 1 } } @@ -158,14 +158,14 @@ class RocksDBComparatorTests : RocksDBTests { } /* Expected Array: [A9999, A9998 .. A9990, A999, A9989, ...] */ - expected.sortUsingSelector(Selector("compare:")) + expected.sortUsingSelector(#selector(NSNumber.compare(_:))) let iterator = rocks.iterator() var idx = 9999 iterator.enumerateKeysUsingBlock { (key, stop) -> Void in XCTAssertEqual(key as? NSString, expected[idx] as? NSString) - idx-- + idx -= 1 } } @@ -195,7 +195,7 @@ class RocksDBComparatorTests : RocksDBTests { let value = try? rocks.objectForKey(NSNumber(unsignedInt: r)) if value as? NSData == nil { try! rocks.setObject(Data("value"), forKey: NSNumber(unsignedInt: r)) - i++ + i += 1 } } @@ -207,7 +207,7 @@ class RocksDBComparatorTests : RocksDBTests { iterator.enumerateKeysUsingBlock { (key, stop) -> Void in XCTAssertTrue(lastKey.compare(key as! NSNumber) == .OrderedAscending) lastKey = key as! NSNumber - count++ + count += 1 } XCTAssertEqual(count, 10000); @@ -239,7 +239,7 @@ class RocksDBComparatorTests : RocksDBTests { let value = try? rocks.objectForKey(NSNumber(unsignedInt: r)) if value as? NSData == nil { try! rocks.setObject(Data("value"), forKey: NSNumber(unsignedInt: r)) - i++ + i += 1 } } @@ -251,7 +251,7 @@ class RocksDBComparatorTests : RocksDBTests { iterator.enumerateKeysUsingBlock { (key, stop) -> Void in XCTAssertTrue(lastKey.compare(key as! NSNumber) == .OrderedDescending) lastKey = key as! NSNumber - count++ + count += 1 } XCTAssertEqual(count, 10000); diff --git a/Tests/RocksDBIteratorTests.swift b/Tests/RocksDBIteratorTests.swift index b756aa2..496f095 100644 --- a/Tests/RocksDBIteratorTests.swift +++ b/Tests/RocksDBIteratorTests.swift @@ -23,8 +23,10 @@ class RocksDBIteratorTests : RocksDBTests { let actual = NSMutableArray() let iterator = rocks.iterator() - for iterator.seekToFirst(); iterator.isValid(); iterator.next() { + iterator.seekToFirst() + while iterator.isValid() { actual.addObject(Str(iterator.key() as! NSData)) + iterator.next() } let expected = [ "key 1", "key 2", "key 3" ] From 395df79dc0a9ba75a510072f60997b3125bc8f1a Mon Sep 17 00:00:00 2001 From: iska Date: Sat, 4 Jun 2016 22:53:35 +0200 Subject: [PATCH 48/76] Add new RocksDB Statistics tickers and counters This also fixes the Statistics-Ticker tests. --- Code/RocksDBStatistics.h | 55 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/Code/RocksDBStatistics.h b/Code/RocksDBStatistics.h index b755824..58a90b4 100644 --- a/Code/RocksDBStatistics.h +++ b/Code/RocksDBStatistics.h @@ -21,6 +21,9 @@ typedef NS_ENUM(uint32_t, RocksDBTickerType) /** @brief Number of blocks added to block cache. */ RocksDBTickerBlockCacheAdd, + /** @brief Number of failures when adding blocks to block cache. */ + RocksDBTickerBlockCacheFailure, + /** @brief # of times cache miss when accessing index block from block cache. */ RocksDBTickerBlockCacheIndexMiss, @@ -45,6 +48,12 @@ typedef NS_ENUM(uint32_t, RocksDBTickerType) from block cache. */ RocksDBTickerBlockCacheDataHit, + /** @brief Number of bytes read from cache. */ + RocksDBTickerBlockCacheBytesRead, + + /** @brief Number of bytes written to cache. */ + RocksDBTickerBlockCacheBytesWrite, + /** @brief # of times bloom filter has avoided file reads. */ RocksDBTickerBloomFilterUseful, @@ -90,6 +99,28 @@ typedef NS_ENUM(uint32_t, RocksDBTickerType) /** @brief Number of bytes read. */ RocksDBTickerBytesRead, + /** @brief Number of calls to `seek`. */ + RocksDBTickerNumberDBSeek, + + /** @brief Number of calls to `next`. */ + RocksDBTickerNumberDBNext, + + /** @brief Number of calls to `previous`. */ + RocksDBTickerNumberDBPrevious, + + /** @brief Number of calls to `seek` that returned data. */ + RocksDBTickerNumberDBSeekFound, + + /** @brief Number of calls to `next` that returned data. */ + RocksDBTickerNumberDBNextFound, + + /** @brief Number of calls to `previous` that returned data. */ + RocksDBTickerNumberDBPreviousFound, + + /** @brief The number of uncompressed bytes read from an iterator. + Includes size of key and value. */ + RocksDBTickerIterBytesRead, + /** @brief Number of file closes. */ RocksDBTickerNoFileCloses, @@ -167,6 +198,12 @@ typedef NS_ENUM(uint32_t, RocksDBTickerType) /** @brief Number of hits in the compressed block cache. */ RocksDBTickerBlockCacheCompressedHit, + /** @brief Number of blocks added to comopressed block cache. */ + RocksDBTickerBlockCacheCompressedAdd, + + /** @brief Number of failures when adding blocks to compressed block cache. */ + RocksDBTickerBlockCacheCompressedAddFailure, + /** @brief Number of times WAL sync is done. */ RocksDBTickerWalFileSynced, @@ -216,6 +253,12 @@ typedef NS_ENUM(uint32_t, RocksDBTickerType) /** @brief The total time of the filter operation. */ RocksDBTickerFilterOperationTotalTime, + + /** @brief Total row cache hits. */ + RocksDBTickerRowCacheHit, + + /** @brief Total row cache misses. */ + RocksDBTickerRowCacheMiss }; /** @brief An enum for the Histogram Types. */ @@ -280,6 +323,18 @@ typedef NS_ENUM(uint32_t, RocksDBHistogramType) /** @brief */ RocksDBHistogramWriteStall, + + /** @brief The number of subcompactions actually scheduled during a compaction. */ + RocksDBHistogramNumCompactionsScheduled, + + /* @brief Distribution of bytes read in each operations. */ + RocksDBHistogramBytesPerRead, + + /* @brief Distribution of bytes written in each operations. */ + RocksDBHistogramBytesPerWrite, + + /* @brief Distribution of bytes via multiget in each operations. */ + RocksDBHistogramBytesPerMultiGet }; /** From 7c9f95bb3f536f9783e2b6b672aaf427ee3a3b1a Mon Sep 17 00:00:00 2001 From: iska Date: Thu, 21 Apr 2016 00:29:17 +0200 Subject: [PATCH 49/76] Remove Indexed Write Batch and Write Batch Iterator from iOS target These are no longer available in the rocksdb-lite --- Code/RocksDB.h | 54 +++++++++++++----------- Code/RocksDB.mm | 44 ++++++++++--------- ObjectiveRocks.xcodeproj/project.pbxproj | 8 ---- 3 files changed, 53 insertions(+), 53 deletions(-) diff --git a/Code/RocksDB.h b/Code/RocksDB.h index 0b8269d..aa1636c 100644 --- a/Code/RocksDB.h +++ b/Code/RocksDB.h @@ -13,10 +13,10 @@ #import "RocksDBReadOptions.h" #import "RocksDBWriteOptions.h" #import "RocksDBWriteBatch.h" -#import "RocksDBIndexedWriteBatch.h" #import "RocksDBIterator.h" #ifndef ROCKSDB_LITE +#import "RocksDBIndexedWriteBatch.h" #import "RocksDBProperties.h" #endif @@ -516,17 +516,6 @@ */ - (RocksDBWriteBatch *)writeBatch; -/** - Returns an instance of an indexed write batch, which can be used to perform a set of - updates to the database atomically. - - @discussion The indexed write batch builds a searchable index, that can be read and - iterated before applying it to the database. - - @see RocksDBIndexedWriteBatch - */ -- (RocksDBIndexedWriteBatch *)indexedWriteBatch; - /** Performs a write batch on this DB. @@ -541,19 +530,6 @@ */ - (BOOL)performWriteBatch:(void (^)(RocksDBWriteBatch *batch, RocksDBWriteOptions *options))batch error:(NSError **)error; -/** - Performs an indexed write batch on this DB. - - @discussion All the operations stored to the batch instance are written atomically to DB when the - block is executed. - - @param batch A block with `RocksDBIndexedWriteBatch` instance and `RocksDBWriteOptions` to configure the batch. - @return `YES` if the operation succeeded, `NO` otherwise - - @see RocksDBIndexedWriteBatch - */ -- (BOOL)performIndexedWriteBatch:(void (^)(RocksDBIndexedWriteBatch *batch, RocksDBWriteOptions *options))batch error:(NSError **)error; - /** Applies a write batch instance on this DB. @@ -570,6 +546,34 @@ */ - (BOOL)applyWriteBatch:(RocksDBWriteBatch *)writeBatch writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions error:(NSError **)error; +#ifndef ROCKSDB_LITE + +/** + Returns an instance of an indexed write batch, which can be used to perform a set of + updates to the database atomically. + + @discussion The indexed write batch builds a searchable index, that can be read and + iterated before applying it to the database. + + @see RocksDBIndexedWriteBatch + */ +- (RocksDBIndexedWriteBatch *)indexedWriteBatch; + +/** + Performs an indexed write batch on this DB. + + @discussion All the operations stored to the batch instance are written atomically to DB when the + block is executed. + + @param batch A block with `RocksDBIndexedWriteBatch` instance and `RocksDBWriteOptions` to configure the batch. + @return `YES` if the operation succeeded, `NO` otherwise + + @see RocksDBIndexedWriteBatch + */ +- (BOOL)performIndexedWriteBatch:(void (^)(RocksDBIndexedWriteBatch *batch, RocksDBWriteOptions *options))batch error:(NSError **)error; + +#endif + @end @interface RocksDB (Iterator) diff --git a/Code/RocksDB.mm b/Code/RocksDB.mm index 6f2e650..4530ec9 100644 --- a/Code/RocksDB.mm +++ b/Code/RocksDB.mm @@ -607,14 +607,6 @@ - (RocksDBWriteBatch *)writeBatch andEncodingOptions:(RocksDBEncodingOptions *)_options]; } -- (RocksDBIndexedWriteBatch *)indexedWriteBatch -{ - return [[RocksDBIndexedWriteBatch alloc] initWithDBInstance:_db - columnFamily:_columnFamily - readOptions:_readOptions - andEncodingOptions:(RocksDBEncodingOptions *)_options]; -} - - (BOOL)performWriteBatch:(void (^)(RocksDBWriteBatch *batch, RocksDBWriteOptions *options))batchBlock error:(NSError * __autoreleasing *)error { @@ -637,15 +629,15 @@ - (BOOL)performWriteBatch:(void (^)(RocksDBWriteBatch *batch, RocksDBWriteOption return YES; } -- (BOOL)performIndexedWriteBatch:(void (^)(RocksDBIndexedWriteBatch *batch, RocksDBWriteOptions *options))batchBlock - error:(NSError * __autoreleasing *)error +- (BOOL)applyWriteBatch:(RocksDBWriteBatch *)writeBatch + writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptionsBlock + error:(NSError * __autoreleasing *)error { - if (batchBlock == nil) return NO; - - RocksDBIndexedWriteBatch *writeBatch = [self indexedWriteBatch]; RocksDBWriteOptions *writeOptions = [_writeOptions copy]; + if (writeOptionsBlock) { + writeOptionsBlock(writeOptions); + } - batchBlock(writeBatch, writeOptions); rocksdb::WriteBatch *batch = writeBatch.writeBatchBase->GetWriteBatch(); rocksdb::Status status = _db->Write(writeOptions.options, batch); @@ -659,15 +651,25 @@ - (BOOL)performIndexedWriteBatch:(void (^)(RocksDBIndexedWriteBatch *batch, Rock return YES; } -- (BOOL)applyWriteBatch:(RocksDBWriteBatch *)writeBatch - writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptionsBlock - error:(NSError * __autoreleasing *)error +#ifndef ROCKSDB_LITE + +- (RocksDBIndexedWriteBatch *)indexedWriteBatch +{ + return [[RocksDBIndexedWriteBatch alloc] initWithDBInstance:_db + columnFamily:_columnFamily + readOptions:_readOptions + andEncodingOptions:(RocksDBEncodingOptions *)_options]; +} + +- (BOOL)performIndexedWriteBatch:(void (^)(RocksDBIndexedWriteBatch *batch, RocksDBWriteOptions *options))batchBlock + error:(NSError * __autoreleasing *)error { + if (batchBlock == nil) return NO; + + RocksDBIndexedWriteBatch *writeBatch = [self indexedWriteBatch]; RocksDBWriteOptions *writeOptions = [_writeOptions copy]; - if (writeOptionsBlock) { - writeOptionsBlock(writeOptions); - } + batchBlock(writeBatch, writeOptions); rocksdb::WriteBatch *batch = writeBatch.writeBatchBase->GetWriteBatch(); rocksdb::Status status = _db->Write(writeOptions.options, batch); @@ -681,6 +683,8 @@ - (BOOL)applyWriteBatch:(RocksDBWriteBatch *)writeBatch return YES; } +#endif + #pragma mark - Iteration - (RocksDBIterator *)iterator diff --git a/ObjectiveRocks.xcodeproj/project.pbxproj b/ObjectiveRocks.xcodeproj/project.pbxproj index c339399..cd63496 100644 --- a/ObjectiveRocks.xcodeproj/project.pbxproj +++ b/ObjectiveRocks.xcodeproj/project.pbxproj @@ -130,8 +130,6 @@ 624F5DA81BEE41F500497FEF /* RocksDBIterator.h in Headers */ = {isa = PBXBuildFile; fileRef = 62F8C6051B85632500E2577F /* RocksDBIterator.h */; settings = {ATTRIBUTES = (Public, ); }; }; 624F5DA91BEE41F500497FEF /* RocksDBPrefixExtractor.h in Headers */ = {isa = PBXBuildFile; fileRef = 6236E2551A4DD25000A81ED6 /* RocksDBPrefixExtractor.h */; settings = {ATTRIBUTES = (Public, ); }; }; 624F5DAA1BEE41F500497FEF /* RocksDBWriteBatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 623FE74E1A2D2ED500E68421 /* RocksDBWriteBatch.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 624F5DAB1BEE41F500497FEF /* RocksDBIndexedWriteBatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 62F8C5FD1B85386A00E2577F /* RocksDBIndexedWriteBatch.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 624F5DAC1BEE41F500497FEF /* RocksDBWriteBatchIterator.h in Headers */ = {isa = PBXBuildFile; fileRef = 62F8C6011B853ABA00E2577F /* RocksDBWriteBatchIterator.h */; settings = {ATTRIBUTES = (Public, ); }; }; 624F5DAD1BEE41F600497FEF /* RocksDBComparator.h in Headers */ = {isa = PBXBuildFile; fileRef = 623224AA1A2116A400FB6625 /* RocksDBComparator.h */; settings = {ATTRIBUTES = (Public, ); }; }; 624F5DAE1BEE41F600497FEF /* RocksDBOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 62AEF9B91A1D5DA900E63E89 /* RocksDBOptions.h */; settings = {ATTRIBUTES = (Public, ); }; }; 624F5DAF1BEE41F600497FEF /* RocksDBEncodingOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 620629611A50ECCA001DEDC4 /* RocksDBEncodingOptions.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -156,8 +154,6 @@ 624F5DCD1BEE437C00497FEF /* RocksDBIterator.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62F8C6061B85632500E2577F /* RocksDBIterator.mm */; }; 624F5DCE1BEE437C00497FEF /* RocksDBPrefixExtractor.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6236E2561A4DD25000A81ED6 /* RocksDBPrefixExtractor.mm */; }; 624F5DCF1BEE437C00497FEF /* RocksDBWriteBatch.mm in Sources */ = {isa = PBXBuildFile; fileRef = 623FE74F1A2D2ED500E68421 /* RocksDBWriteBatch.mm */; }; - 624F5DD01BEE437C00497FEF /* RocksDBIndexedWriteBatch.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62F8C5FE1B85386A00E2577F /* RocksDBIndexedWriteBatch.mm */; }; - 624F5DD11BEE437C00497FEF /* RocksDBWriteBatchIterator.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62F8C6021B853ABA00E2577F /* RocksDBWriteBatchIterator.mm */; }; 624F5DD21BEE437C00497FEF /* RocksDBComparator.mm in Sources */ = {isa = PBXBuildFile; fileRef = 623224AB1A2116A400FB6625 /* RocksDBComparator.mm */; }; 624F5DD31BEE437C00497FEF /* RocksDBOptions.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62AEF9BA1A1D5DA900E63E89 /* RocksDBOptions.mm */; }; 624F5DD41BEE437C00497FEF /* RocksDBEncodingOptions.mm in Sources */ = {isa = PBXBuildFile; fileRef = 620629621A50ECCA001DEDC4 /* RocksDBEncodingOptions.mm */; }; @@ -2895,13 +2891,11 @@ 628B4BF11D03125900E2D828 /* version_builder.h in Headers */, 628B4EF71D03125A00E2D828 /* FbsonWriter.h in Headers */, 628B4CC31D03125900E2D828 /* transaction_db_mutex.h in Headers */, - 624F5DAB1BEE41F500497FEF /* RocksDBIndexedWriteBatch.h in Headers */, 628B4F691D03125A00E2D828 /* autovector.h in Headers */, 628B4CCF1D03125900E2D828 /* write_batch_base.h in Headers */, 628B502F1D03125A00E2D828 /* stop_watch.h in Headers */, 628B4BB71D03125900E2D828 /* memtable_allocator.h in Headers */, 628B4E3B1D03125900E2D828 /* likely.h in Headers */, - 624F5DAC1BEE41F500497FEF /* RocksDBWriteBatchIterator.h in Headers */, 628B4C1B1D03125900E2D828 /* write_thread.h in Headers */, 628B4BED1D03125900E2D828 /* transaction_log_impl.h in Headers */, 628B4EAD1D03125A00E2D828 /* get_context.h in Headers */, @@ -3573,9 +3567,7 @@ 628B50A11D03125A00E2D828 /* options_util.cc in Sources */, 628B4E831D03125900E2D828 /* block_prefix_index.cc in Sources */, 628B4ED51D03125A00E2D828 /* plain_table_reader.cc in Sources */, - 624F5DD01BEE437C00497FEF /* RocksDBIndexedWriteBatch.mm in Sources */, 628B50811D03125A00E2D828 /* flashcache.cc in Sources */, - 624F5DD11BEE437C00497FEF /* RocksDBWriteBatchIterator.mm in Sources */, 628B4E9F1D03125A00E2D828 /* flush_block_policy.cc in Sources */, 628B50DD1D03125A00E2D828 /* transaction_util.cc in Sources */, 628B4FF91D03125A00E2D828 /* options_builder.cc in Sources */, From d718772d031e6fdd9e53d0c3833cf981506cee0c Mon Sep 17 00:00:00 2001 From: iska Date: Sun, 5 Jun 2016 17:04:18 +0200 Subject: [PATCH 50/76] Mark Write Batch with Index methods as unavailable in the Snapshot header --- Code/RocksDBSnapshotUnavailable.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Code/RocksDBSnapshotUnavailable.h b/Code/RocksDBSnapshotUnavailable.h index 46b26f0..7660140 100644 --- a/Code/RocksDBSnapshotUnavailable.h +++ b/Code/RocksDBSnapshotUnavailable.h @@ -49,3 +49,6 @@ NA_SELECTOR(- (BOOL)performWriteBatch:(void (^)(RocksDBWriteBatch *batch, RocksD NA_SELECTOR(- (BOOL)performWriteBatch:(void (^)(RocksDBWriteBatch *batch, RocksDBWriteOptions *options))batch error:(NSError **)error) \ NA_SELECTOR(- (BOOL)applyWriteBatch:(RocksDBWriteBatch *)writeBatch withWriteOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions) \ NA_SELECTOR(- (BOOL)applyWriteBatch:(RocksDBWriteBatch *)writeBatch error:(NSError **)error writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions) \ +\ +NA_SELECTOR(- (RocksDBIndexedWriteBatch *)indexedWriteBatch) \ +NA_SELECTOR(- (BOOL)performIndexedWriteBatch:(void (^)(RocksDBIndexedWriteBatch *batch, RocksDBWriteOptions *options))batch error:(NSError **)error) \ From 0589519de35830e84186055a606f52396d9ff5ac Mon Sep 17 00:00:00 2001 From: iska Date: Thu, 21 Apr 2016 00:42:45 +0200 Subject: [PATCH 51/76] Add pragma marks in RocksDB header --- Code/RocksDB.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Code/RocksDB.h b/Code/RocksDB.h index aa1636c..4115ab5 100644 --- a/Code/RocksDB.h +++ b/Code/RocksDB.h @@ -25,6 +25,7 @@ @interface RocksDB : NSObject +#pragma mark - Initializing the database ///-------------------------------- /// @name Initializing the database ///-------------------------------- @@ -156,6 +157,7 @@ @interface RocksDB (ColumnFamilies) +#pragma mark - Column Family Management ///-------------------------------- /// @name Column Family Management ///-------------------------------- @@ -206,6 +208,7 @@ @interface RocksDB (Properties) +#pragma mark - Database properties ///-------------------------------- /// @name Database properties ///-------------------------------- @@ -240,6 +243,7 @@ @interface RocksDB (WriteOps) +#pragma mark - Write operations ///-------------------------------- /// @name Write operations ///-------------------------------- @@ -306,6 +310,7 @@ @interface RocksDB (MergeOps) +#pragma mark - Merge operations ///-------------------------------- /// @name Merge operations ///-------------------------------- @@ -384,6 +389,7 @@ @interface RocksDB (ReadOps) +#pragma mark - Read operations ///-------------------------------- /// @name Read operations ///-------------------------------- @@ -443,6 +449,7 @@ @interface RocksDB (DeleteOps) +#pragma mark - Delete operations ///-------------------------------- /// @name Delete operations ///-------------------------------- @@ -502,6 +509,7 @@ @interface RocksDB (WriteBatch) +#pragma mark - Atomic Writes ///-------------------------------- /// @name Atomic Writes ///-------------------------------- @@ -578,6 +586,7 @@ @interface RocksDB (Iterator) +#pragma mark - Database Iterator ///-------------------------------- /// @name Database Iterator ///-------------------------------- @@ -606,6 +615,7 @@ @interface RocksDB (Snapshot) +#pragma mark - Database Snapshot ///-------------------------------- /// @name Database Snapshot ///-------------------------------- From 47bc9a0898e803e044fe5cd52f6c80e105156c44 Mon Sep 17 00:00:00 2001 From: iska Date: Fri, 10 Jun 2016 20:21:27 +0200 Subject: [PATCH 52/76] Fix unavailable snapshot selectors headers and includes --- Code/RocksDBSnapshot.h | 6 +++++ Code/RocksDBSnapshotUnavailable.h | 39 +++++++++++-------------------- 2 files changed, 20 insertions(+), 25 deletions(-) diff --git a/Code/RocksDBSnapshot.h b/Code/RocksDBSnapshot.h index f590683..87e0422 100644 --- a/Code/RocksDBSnapshot.h +++ b/Code/RocksDBSnapshot.h @@ -59,4 +59,10 @@ SNAPSHOT_PUT_MERGE_DELETE_SELECTORS #undef NA_SELECTOR +#ifndef ROCKSDB_LITE +#define NA_SELECTOR(sel) sel UNAVAILABLE("Snapshot is read-only"); +SNAPSHOT_WRITE_BATCH_SELECTORS +#undef NA_SELECTOR +#endif + @end diff --git a/Code/RocksDBSnapshotUnavailable.h b/Code/RocksDBSnapshotUnavailable.h index 7660140..14f05ff 100644 --- a/Code/RocksDBSnapshotUnavailable.h +++ b/Code/RocksDBSnapshotUnavailable.h @@ -9,46 +9,35 @@ #define UNAVAILABLE(x) __attribute__((unavailable(x))) #define SNAPSHOT_PUT_MERGE_DELETE_SELECTORS \ -NA_SELECTOR(- (BOOL)setObject:(id)anObject forKey:(id)aKey) \ NA_SELECTOR(- (BOOL)setObject:(id)anObject forKey:(id)aKey error:(NSError **)error) \ -NA_SELECTOR(- (BOOL)setObject:(id)anObject forKey:(id)aKey writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptionsBlock) \ -NA_SELECTOR(- (BOOL)setObject:(id)anObject forKey:(id)aKey error:(NSError **)error writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions) \ +NA_SELECTOR(- (BOOL)setObject:(id)anObject forKey:(id)aKey writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions error:(NSError **)error) \ \ -NA_SELECTOR(- (BOOL)setData:(NSData *)data forKey:(NSData *)aKey) \ NA_SELECTOR(- (BOOL)setData:(NSData *)data forKey:(NSData *)aKey error:(NSError **)error) \ -NA_SELECTOR(- (BOOL)setData:(NSData *)data forKey:(NSData *)aKey writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions) \ -NA_SELECTOR(- (BOOL)setData:(NSData *)data forKey:(NSData *)aKey error:(NSError **)error writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions) \ +NA_SELECTOR(- (BOOL)setData:(NSData *)data forKey:(NSData *)aKey writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions error:(NSError **)error) \ \ -NA_SELECTOR(- (BOOL)mergeObject:(id)anObject forKey:(id)aKey) \ NA_SELECTOR(- (BOOL)mergeObject:(id)anObject forKey:(id)aKey error:(NSError **)error) \ -NA_SELECTOR(- (BOOL)mergeObject:(id)anObject forKey:(id)aKey writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions) \ -NA_SELECTOR(- (BOOL)mergeObject:(id)anObject forKey:(id)aKey error:(NSError **)error writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions) \ +NA_SELECTOR(- (BOOL)mergeObject:(id)anObject forKey:(id)aKey writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions error:(NSError **)error) \ \ -NA_SELECTOR(- (BOOL)mergeOperation:(NSString *)aMerge forKey:(id)aKey) \ NA_SELECTOR(- (BOOL)mergeOperation:(NSString *)aMerge forKey:(id)aKey error:(NSError **)error) \ -NA_SELECTOR(- (BOOL)mergeOperation:(NSString *)aMerge forKey:(id)aKey writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions) \ -NA_SELECTOR(- (BOOL)mergeOperation:(NSString *)aMerge forKey:(id)aKey error:(NSError **)error writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions) \ +NA_SELECTOR(- (BOOL)mergeOperation:(NSString *)aMerge forKey:(id)aKey writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions error:(NSError **)error) \ \ -NA_SELECTOR(- (BOOL)mergeData:(NSData *)data forKey:(NSData *)aKey) \ NA_SELECTOR(- (BOOL)mergeData:(NSData *)data forKey:(NSData *)aKey error:(NSError **)error) \ -NA_SELECTOR(- (BOOL)mergeData:(NSData *)data forKey:(NSData *)aKey writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions) \ -NA_SELECTOR(- (BOOL)mergeData:(NSData *)data forKey:(NSData *)aKey error:(NSError **)error writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions) \ +NA_SELECTOR(- (BOOL)mergeData:(NSData *)data forKey:(NSData *)aKey writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions error:(NSError **)error) \ \ -NA_SELECTOR(- (BOOL)deleteObjectForKey:(id)aKey) \ NA_SELECTOR(- (BOOL)deleteObjectForKey:(id)aKey error:(NSError **)error) \ -NA_SELECTOR(- (BOOL)deleteObjectForKey:(id)aKey writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions) \ -NA_SELECTOR(- (BOOL)deleteObjectForKey:(id)aKey error:(NSError **)error writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions) \ +NA_SELECTOR(- (BOOL)deleteObjectForKey:(id)aKey writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions error:(NSError **)error) \ \ -NA_SELECTOR(- (BOOL)deleteDataForKey:(NSData *)aKey) \ NA_SELECTOR(- (BOOL)deleteDataForKey:(NSData *)aKey error:(NSError **)error) \ -NA_SELECTOR(- (BOOL)deleteDataForKey:(NSData *)aKey writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions) \ -NA_SELECTOR(- (BOOL)deleteDataForKey:(NSData *)aKey error:(NSError **)error writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions) \ -\ +NA_SELECTOR(- (BOOL)deleteDataForKey:(NSData *)aKey writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions error:(NSError **)error) \ + +#ifndef ROCKSDB_LITE + +#define SNAPSHOT_WRITE_BATCH_SELECTORS \ NA_SELECTOR(- (RocksDBWriteBatch *)writeBatch) \ -NA_SELECTOR(- (BOOL)performWriteBatch:(void (^)(RocksDBWriteBatch *batch, RocksDBWriteOptions *options))batch) \ NA_SELECTOR(- (BOOL)performWriteBatch:(void (^)(RocksDBWriteBatch *batch, RocksDBWriteOptions *options))batch error:(NSError **)error) \ -NA_SELECTOR(- (BOOL)applyWriteBatch:(RocksDBWriteBatch *)writeBatch withWriteOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions) \ -NA_SELECTOR(- (BOOL)applyWriteBatch:(RocksDBWriteBatch *)writeBatch error:(NSError **)error writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions) \ +NA_SELECTOR(- (BOOL)applyWriteBatch:(RocksDBWriteBatch *)writeBatch writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions error:(NSError **)error) \ \ NA_SELECTOR(- (RocksDBIndexedWriteBatch *)indexedWriteBatch) \ NA_SELECTOR(- (BOOL)performIndexedWriteBatch:(void (^)(RocksDBIndexedWriteBatch *batch, RocksDBWriteOptions *options))batch error:(NSError **)error) \ + +#endif From f64af9be98a03283a3883caab9cf440d5846945a Mon Sep 17 00:00:00 2001 From: iska Date: Fri, 10 Jun 2016 20:23:32 +0200 Subject: [PATCH 53/76] Add podspec file --- ObjectiveRocks.podspec | 85 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 ObjectiveRocks.podspec diff --git a/ObjectiveRocks.podspec b/ObjectiveRocks.podspec new file mode 100644 index 0000000..6a2115e --- /dev/null +++ b/ObjectiveRocks.podspec @@ -0,0 +1,85 @@ +Pod::Spec.new do |s| + s.name = 'ObjectiveRocks' + s.version = '0.5.0' + s.summary = 'Objective-C wrapper of RocksDB - A Persistent Key-Value Store for Flash and RAM Storage.' + s.license = 'MIT' + s.homepage = 'https://github.com/iabudiab/ObjectiveRocks' + s.author = 'iabudiab' + s.social_media_url = 'https://twitter.com/_iabudiab' + s.source = { :git => 'https://github.com/iabudiab/ObjectiveRocks.git', :tag => s.version, :submodules => true } + + s.ios.deployment_target = '8.0' + s.osx.deployment_target = '10.10' + + s.requires_arc = true + s.preserve_paths = 'rocksdb/**' + + s.prepare_command = <<-CMD + ROCKSDB_DIR="$PWD/rocksdb/.git" + OUTFILE="$PWD/rocksdb/util/build_version.cc" + GIT_SHA="" + + if command -v git >/dev/null 2>&1; then + GIT_SHA=$(git --git-dir="$ROCKSDB_DIR" rev-parse HEAD 2>/dev/null) + fi + + cat > "${OUTFILE}" < '"${PODS_ROOT}/ObjectiveRocks/rocksdb" "${PODS_ROOT}/ObjectiveRocks/rocksdb/include"', + 'GCC_INPUT_FILETYPE' => 'sourcecode.cpp.objcpp' + } + + s.osx.xcconfig = { + 'GCC_PREPROCESSOR_DEFINITIONS' => 'OS_MACOSX=1 ROCKSDB_PLATFORM_POSIX=1 ROCKSDB_LIB_IO_POSIX=1 ROCKSDB_USING_THREAD_STATUS=1' + } + + s.ios.xcconfig = { + 'GCC_PREPROCESSOR_DEFINITIONS' => 'OS_MACOSX=1 ROCKSDB_PLATFORM_POSIX=1 ROCKSDB_LIB_IO_POSIX=1 ROCKSDB_LITE=1 IOS_CROSS_COMPILE=1 NROCKSDB_THREAD_STATUS=1' + } + +end From 8fae8fccda8f663315e846075cb5b276a1d3ca39 Mon Sep 17 00:00:00 2001 From: iska Date: Sat, 11 Jun 2016 00:08:48 +0200 Subject: [PATCH 54/76] Remove ColumnFamily MetaData header and imports from iOS target --- Code/RocksDB.h | 2 +- Code/RocksDBSnapshot.h | 2 +- ObjectiveRocks.xcodeproj/project.pbxproj | 2 -- 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/Code/RocksDB.h b/Code/RocksDB.h index 4115ab5..904204b 100644 --- a/Code/RocksDB.h +++ b/Code/RocksDB.h @@ -8,7 +8,6 @@ #import #import "RocksDBColumnFamilyDescriptor.h" -#import "RocksDBColumnFamilyMetaData.h" #import "RocksDBOptions.h" #import "RocksDBReadOptions.h" #import "RocksDBWriteOptions.h" @@ -16,6 +15,7 @@ #import "RocksDBIterator.h" #ifndef ROCKSDB_LITE +#import "RocksDBColumnFamilyMetaData.h" #import "RocksDBIndexedWriteBatch.h" #import "RocksDBProperties.h" #endif diff --git a/Code/RocksDBSnapshot.h b/Code/RocksDBSnapshot.h index 87e0422..abb0a89 100644 --- a/Code/RocksDBSnapshot.h +++ b/Code/RocksDBSnapshot.h @@ -40,13 +40,13 @@ + (instancetype)databaseForReadOnlyAtPath:(NSString *)path columnFamilies:(RocksDBColumnFamilyDescriptor *)descriptor andDatabaseOptions:(void (^)(RocksDBDatabaseOptions *options))options UNAVAILABLE("Create a snapshot via a DB instance"); +- (RocksDBColumnFamilyMetaData *)columnFamilyMetaData UNAVAILABLE("Column Family API not available"); #endif + (NSArray *)listColumnFamiliesInDatabaseAtPath:(NSString *)path UNAVAILABLE("Column Family API not available"); - (RocksDBColumnFamily *)createColumnFamilyWithName:(NSString *)name andOptions:(void (^)(RocksDBColumnFamilyOptions *options))optionsBlock UNAVAILABLE("Column Family API not available"); -- (RocksDBColumnFamilyMetaData *)columnFamilyMetaData UNAVAILABLE("Column Family API not available"); - (NSArray *)columnFamilies UNAVAILABLE("Column Family API not available"); - (void)setDefaultReadOptions:(void (^)(RocksDBReadOptions *readOptions))readOptions diff --git a/ObjectiveRocks.xcodeproj/project.pbxproj b/ObjectiveRocks.xcodeproj/project.pbxproj index cd63496..8d8796c 100644 --- a/ObjectiveRocks.xcodeproj/project.pbxproj +++ b/ObjectiveRocks.xcodeproj/project.pbxproj @@ -21,7 +21,6 @@ 6216361B1A631F2900B132CE /* RocksDBStatisticsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6216361A1A631F2900B132CE /* RocksDBStatisticsTests.swift */; }; 621C6D971BEE4A4600044CB1 /* RocksDBStatistics.h in Headers */ = {isa = PBXBuildFile; fileRef = 62A8B0631A58DD7D0069B4C8 /* RocksDBStatistics.h */; settings = {ATTRIBUTES = (Public, ); }; }; 621C6D981BEE4A4600044CB1 /* RocksDBStatisticsHistogram.h in Headers */ = {isa = PBXBuildFile; fileRef = 62A8B0671A58E4B60069B4C8 /* RocksDBStatisticsHistogram.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 621C6D991BEE4BA900044CB1 /* RocksDBColumnFamilyMetadata.h in Headers */ = {isa = PBXBuildFile; fileRef = 62A74F841A603DDB00BAD95B /* RocksDBColumnFamilyMetadata.h */; settings = {ATTRIBUTES = (Public, ); }; }; 6221B7A71A629E1B00D28BF5 /* RockDBTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6221B7A41A629B3600D28BF5 /* RockDBTests.swift */; }; 6221B7A81A629E2700D28BF5 /* RockDBTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6221B7A41A629B3600D28BF5 /* RockDBTests.swift */; }; 6236E25C1A4E19A300A81ED6 /* RocksDBPrefixExtractorTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6236E25B1A4E19A300A81ED6 /* RocksDBPrefixExtractorTests.mm */; }; @@ -3043,7 +3042,6 @@ 628B50EB1D03125A00E2D828 /* write_batch_with_index_internal.h in Headers */, 628B50871D03125A00E2D828 /* geodb_impl.h in Headers */, 628B500B1D03125A00E2D828 /* perf_context_imp.h in Headers */, - 621C6D991BEE4BA900044CB1 /* RocksDBColumnFamilyMetadata.h in Headers */, 628B4AF91D03125900E2D828 /* auto_roll_logger.h in Headers */, 628B4CA91D03125900E2D828 /* flashcache.h in Headers */, 628B50631D03125A00E2D828 /* xxhash.h in Headers */, From ced909ea7568ad01911a1997de089906878cfd6b Mon Sep 17 00:00:00 2001 From: iska Date: Sat, 11 Jun 2016 00:25:29 +0200 Subject: [PATCH 55/76] Release native Column Family handle on DB close --- Code/RocksDB.mm | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Code/RocksDB.mm b/Code/RocksDB.mm index 4530ec9..6584ccc 100644 --- a/Code/RocksDB.mm +++ b/Code/RocksDB.mm @@ -166,6 +166,11 @@ - (void)close _columnFamilyHandles = nullptr; } + if (_columnFamily != nullptr) { + delete _columnFamily; + _columnFamily = nullptr; + } + if (_db != nullptr) { delete _db; _db = nullptr; From a956581e21cccff93892f2b512f97879c84cef6e Mon Sep 17 00:00:00 2001 From: iska Date: Sat, 11 Jun 2016 12:32:10 +0200 Subject: [PATCH 56/76] Add NDEBUG flag to disable debug code from compiling --- ObjectiveRocks.podspec | 15 ++++++++------- ObjectiveRocks.xcodeproj/project.pbxproj | 2 ++ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/ObjectiveRocks.podspec b/ObjectiveRocks.podspec index 6a2115e..20dcaa3 100644 --- a/ObjectiveRocks.podspec +++ b/ObjectiveRocks.podspec @@ -69,17 +69,18 @@ Pod::Spec.new do |s| 'Code/RocksDBThreadStatus.{h,mm}', 'Code/RocksDBWriteBatchIterator.{h,mm}' - s.xcconfig = { - 'HEADER_SEARCH_PATHS' => '"${PODS_ROOT}/ObjectiveRocks/rocksdb" "${PODS_ROOT}/ObjectiveRocks/rocksdb/include"', - 'GCC_INPUT_FILETYPE' => 'sourcecode.cpp.objcpp' - } + s.xcconfig = { + 'GCC_PREPROCESSOR_DEFINITIONS' => 'NDEBUG=1 OS_MACOSX=1 ROCKSDB_PLATFORM_POSIX=1 ROCKSDB_LIB_IO_POSIX=1', + 'HEADER_SEARCH_PATHS' => '"${PODS_ROOT}/ObjectiveRocks/rocksdb" "${PODS_ROOT}/ObjectiveRocks/rocksdb/include"', + 'GCC_INPUT_FILETYPE' => 'sourcecode.cpp.objcpp' + } - s.osx.xcconfig = { - 'GCC_PREPROCESSOR_DEFINITIONS' => 'OS_MACOSX=1 ROCKSDB_PLATFORM_POSIX=1 ROCKSDB_LIB_IO_POSIX=1 ROCKSDB_USING_THREAD_STATUS=1' + s.osx.xcconfig = { + 'GCC_PREPROCESSOR_DEFINITIONS' => 'ROCKSDB_USING_THREAD_STATUS=1' } s.ios.xcconfig = { - 'GCC_PREPROCESSOR_DEFINITIONS' => 'OS_MACOSX=1 ROCKSDB_PLATFORM_POSIX=1 ROCKSDB_LIB_IO_POSIX=1 ROCKSDB_LITE=1 IOS_CROSS_COMPILE=1 NROCKSDB_THREAD_STATUS=1' + 'GCC_PREPROCESSOR_DEFINITIONS' => 'ROCKSDB_LITE=1 IOS_CROSS_COMPILE=1 NROCKSDB_THREAD_STATUS=1' } end diff --git a/ObjectiveRocks.xcodeproj/project.pbxproj b/ObjectiveRocks.xcodeproj/project.pbxproj index 8d8796c..415c892 100644 --- a/ObjectiveRocks.xcodeproj/project.pbxproj +++ b/ObjectiveRocks.xcodeproj/project.pbxproj @@ -3854,6 +3854,7 @@ FRAMEWORK_VERSION = A; GCC_NO_COMMON_BLOCKS = YES; GCC_PREPROCESSOR_DEFINITIONS = ( + "NDEBUG=1", "OS_MACOSX=1", "ROCKSDB_PLATFORM_POSIX=1", "ROCKSDB_LIB_IO_POSIX=1", @@ -3938,6 +3939,7 @@ DYLIB_INSTALL_NAME_BASE = "@rpath"; GCC_NO_COMMON_BLOCKS = YES; GCC_PREPROCESSOR_DEFINITIONS = ( + "NDEBUG=1", "OS_MACOSX=1", "ROCKSDB_PLATFORM_POSIX=1", "ROCKSDB_LIB_IO_POSIX=1", From 3cdc2ca820fcd9e48d2318018980d2fabd633f4d Mon Sep 17 00:00:00 2001 From: iska Date: Sat, 11 Jun 2016 14:15:29 +0200 Subject: [PATCH 57/76] Revert "Release native Column Family handle on DB close" This reverts commit ced909ea7568ad01911a1997de089906878cfd6b. --- Code/RocksDB.mm | 5 ----- 1 file changed, 5 deletions(-) diff --git a/Code/RocksDB.mm b/Code/RocksDB.mm index 6584ccc..4530ec9 100644 --- a/Code/RocksDB.mm +++ b/Code/RocksDB.mm @@ -166,11 +166,6 @@ - (void)close _columnFamilyHandles = nullptr; } - if (_columnFamily != nullptr) { - delete _columnFamily; - _columnFamily = nullptr; - } - if (_db != nullptr) { delete _db; _db = nullptr; From af8155cd6e6ba5542bbd4456edfb5a00969a8772 Mon Sep 17 00:00:00 2001 From: iska Date: Sun, 24 Apr 2016 21:25:29 +0200 Subject: [PATCH 58/76] Refactor RocksDBIteratorKeyRange to RocksDBKeyRange - Key ranges are used not only for iterations but also for compaction jobs, hence the generalization - Empty-range constant is refactored to open-range, since it represents a range containing all the keys --- Code/RocksDBIterator.h | 30 ++---------- Code/RocksDBIterator.mm | 20 +++----- Code/RocksDBRange.h | 47 +++++++++++++++++++ Code/RocksDBRange.mm | 25 ++++++++++ ObjectiveRocks.xcodeproj/project.pbxproj | 12 +++++ Tests/ObjectiveRocksTests-Bridging-Header.h | 2 +- .../ObjectiveRocksTests-iOS-Bridging-Header.h | 1 + 7 files changed, 95 insertions(+), 42 deletions(-) create mode 100644 Code/RocksDBRange.h create mode 100644 Code/RocksDBRange.mm diff --git a/Code/RocksDBIterator.h b/Code/RocksDBIterator.h index 424ff86..11144b9 100644 --- a/Code/RocksDBIterator.h +++ b/Code/RocksDBIterator.h @@ -8,31 +8,7 @@ #import #import "RocksDBEncodingOptions.h" - -/** - Represents a range of keys. - */ -@interface RocksDBIteratorKeyRange : NSObject - -/* @breif Start key, inclusive */ -@property (nonatomic, strong) id start; -/* @breif End key, exclusive */ -@property (nonatomic, strong) id end; - -@end - -/** - Creates a new RocksDBIteratorKeyRange from the specified values. - - @return RocksDBIteratorKeyRange with start and end keys. - */ -NS_INLINE RocksDBIteratorKeyRange * RocksDBMakeKeyRange(id start, id end) { - RocksDBIteratorKeyRange *range = [RocksDBIteratorKeyRange new]; - range.start = start; - range.end = end; - - return range; -} +#import "RocksDBRange.h" /** An iterator over the sorted DB keys. Supports iteration in the natural sort order, the reverse order, and prefix seek. @@ -122,7 +98,7 @@ NS_INLINE RocksDBIteratorKeyRange * RocksDBMakeKeyRange(id start, id end) { @see RocksDBIteratorKeyRange */ -- (void)enumerateKeysInRange:(RocksDBIteratorKeyRange *)range reverse:(BOOL)reverse usingBlock:(void (^)(id key, BOOL *stop))block; +- (void)enumerateKeysInRange:(RocksDBKeyRange *)range reverse:(BOOL)reverse usingBlock:(void (^)(id key, BOOL *stop))block; /** Executes a given block for each key-value pair in the iterator. @@ -146,7 +122,7 @@ NS_INLINE RocksDBIteratorKeyRange * RocksDBMakeKeyRange(id start, id end) { @parame reverse BOOL indicating whether to enumerate in the reverse order. @param block The block to apply to elements. */ -- (void)enumerateKeysAndValuesInRange:(RocksDBIteratorKeyRange *)range reverse:(BOOL)reverse usingBlock:(void (^)(id key, id value, BOOL *stop))block; +- (void)enumerateKeysAndValuesInRange:(RocksDBKeyRange *)range reverse:(BOOL)reverse usingBlock:(void (^)(id key, id value, BOOL *stop))block; /** Executes a given block for each key with the given prefix in the iterator. diff --git a/Code/RocksDBIterator.mm b/Code/RocksDBIterator.mm index 8795e60..de95690 100644 --- a/Code/RocksDBIterator.mm +++ b/Code/RocksDBIterator.mm @@ -11,14 +11,6 @@ #import -#pragma mark - Iterator Key Range - -static RocksDBIteratorKeyRange *RocksDBEmptyRange = RocksDBMakeKeyRange(nil, nil); - -@implementation RocksDBIteratorKeyRange - -@end - #pragma mark - Iterator @interface RocksDBIterator () @@ -110,19 +102,19 @@ - (id)value - (void)enumerateKeysUsingBlock:(void (^)(id key, BOOL *stop))block { - [self enumerateKeysAndValuesInRange:RocksDBEmptyRange reverse:NO usingBlock:^(id key, id value, BOOL *stop) { + [self enumerateKeysAndValuesInRange:RocksDBOpenRange reverse:NO usingBlock:^(id key, id value, BOOL *stop) { block(key, stop); }]; } - (void)enumerateKeysInReverse:(BOOL)reverse usingBlock:(void (^)(id key, BOOL *stop))block { - [self enumerateKeysAndValuesInRange:RocksDBEmptyRange reverse:reverse usingBlock:^(id key, id value, BOOL *stop) { + [self enumerateKeysAndValuesInRange:RocksDBOpenRange reverse:reverse usingBlock:^(id key, id value, BOOL *stop) { block(key, stop); }]; } -- (void)enumerateKeysInRange:(RocksDBIteratorKeyRange *)range reverse:(BOOL)reverse usingBlock:(void (^)(id key, BOOL *stop))block +- (void)enumerateKeysInRange:(RocksDBKeyRange *)range reverse:(BOOL)reverse usingBlock:(void (^)(id key, BOOL *stop))block { [self enumerateKeysAndValuesInRange:range reverse:reverse usingBlock:^(id key, id value, BOOL *stop) { block(key, stop); @@ -133,15 +125,15 @@ - (void)enumerateKeysInRange:(RocksDBIteratorKeyRange *)range reverse:(BOOL)reve - (void)enumerateKeysAndValuesUsingBlock:(void (^)(id key, id value, BOOL *stop))block { - [self enumerateKeysAndValuesInRange:RocksDBEmptyRange reverse:NO usingBlock:block]; + [self enumerateKeysAndValuesInRange:RocksDBOpenRange reverse:NO usingBlock:block]; } - (void)enumerateKeysAndValuesInReverse:(BOOL)reverse usingBlock:(void (^)(id key, id value, BOOL *stop))block { - [self enumerateKeysAndValuesInRange:RocksDBEmptyRange reverse:reverse usingBlock:block]; + [self enumerateKeysAndValuesInRange:RocksDBOpenRange reverse:reverse usingBlock:block]; } -- (void)enumerateKeysAndValuesInRange:(RocksDBIteratorKeyRange *)range reverse:(BOOL)reverse usingBlock:(void (^)(id key, id value, BOOL *stop))block +- (void)enumerateKeysAndValuesInRange:(RocksDBKeyRange *)range reverse:(BOOL)reverse usingBlock:(void (^)(id key, id value, BOOL *stop))block { BOOL stop = NO; diff --git a/Code/RocksDBRange.h b/Code/RocksDBRange.h new file mode 100644 index 0000000..a9a4a7f --- /dev/null +++ b/Code/RocksDBRange.h @@ -0,0 +1,47 @@ +// +// RocksDBRange.h +// ObjectiveRocks +// +// Created by Iska on 24/04/16. +// Copyright © 2016 BrainCookie. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + Represents a range of keys. + */ +@interface RocksDBKeyRange : NSObject + +/* @breif Start key, inclusive */ +@property (nonatomic, strong, nullable) id start; +/* @breif End key, exclusive */ +@property (nonatomic, strong, nullable) id end; + +/** + Creates a new RocksDBKeyRange from the specified values. + + @return RocksDBKeyRange with start and end keys. + */ +- (instancetype)initWithStart:(__nullable id)start end:(__nullable id)end; + +@end + +/** + A shorthand utility function for creating a new RocksDBKeyRange from the specified values. + + @return RocksDBKeyRange with start and end keys. + */ +NS_INLINE RocksDBKeyRange * RocksDBMakeKeyRange(__nullable id start, __nullable id end) +{ + return [[RocksDBKeyRange alloc] initWithStart:start end:end]; +} + +/** + An "open" RocksDB range, i.e. the range that starts before the first and ends after the last keys. + */ +extern RocksDBKeyRange * const RocksDBOpenRange; + +NS_ASSUME_NONNULL_END diff --git a/Code/RocksDBRange.mm b/Code/RocksDBRange.mm new file mode 100644 index 0000000..135d8ee --- /dev/null +++ b/Code/RocksDBRange.mm @@ -0,0 +1,25 @@ +// +// RocksDBRange.m +// ObjectiveRocks +// +// Created by Iska on 24/04/16. +// Copyright © 2016 BrainCookie. All rights reserved. +// + +#import "RocksDBRange.h" + +RocksDBKeyRange * const RocksDBOpenRange = RocksDBMakeKeyRange(nil, nil); + +@implementation RocksDBKeyRange + +- (instancetype)initWithStart:(id)start end:(id)end +{ + self = [super init]; + if (self) { + self.start = start; + self.end = end; + } + return self; +} + +@end diff --git a/ObjectiveRocks.xcodeproj/project.pbxproj b/ObjectiveRocks.xcodeproj/project.pbxproj index 415c892..2831215 100644 --- a/ObjectiveRocks.xcodeproj/project.pbxproj +++ b/ObjectiveRocks.xcodeproj/project.pbxproj @@ -191,6 +191,10 @@ 624F5EE51BEE456200497FEF /* RocksDBSlice.h in Headers */ = {isa = PBXBuildFile; fileRef = 623D3C201A37C4FF00389207 /* RocksDBSlice.h */; settings = {ATTRIBUTES = (Private, ); }; }; 6251A3731B783DA7009BABD5 /* RocksDBReadOnlyTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 6251A3721B783DA7009BABD5 /* RocksDBReadOnlyTests.m */; }; 6251A3751B783DBC009BABD5 /* RocksDBReadOnlyTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6251A3741B783DBC009BABD5 /* RocksDBReadOnlyTests.swift */; }; + 625EF4971D0C3A960058ACDA /* RocksDBRange.h in Headers */ = {isa = PBXBuildFile; fileRef = 625EF4951D0C3A960058ACDA /* RocksDBRange.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 625EF4981D0C3A960058ACDA /* RocksDBRange.h in Headers */ = {isa = PBXBuildFile; fileRef = 625EF4951D0C3A960058ACDA /* RocksDBRange.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 625EF4991D0C3A960058ACDA /* RocksDBRange.mm in Sources */ = {isa = PBXBuildFile; fileRef = 625EF4961D0C3A960058ACDA /* RocksDBRange.mm */; }; + 625EF49A1D0C3A960058ACDA /* RocksDBRange.mm in Sources */ = {isa = PBXBuildFile; fileRef = 625EF4961D0C3A960058ACDA /* RocksDBRange.mm */; }; 625F8F1F1A59C9B3007796BA /* RocksDBPropertiesTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 625F8F1E1A59C9B3007796BA /* RocksDBPropertiesTests.mm */; }; 625F8F251A59D11D007796BA /* RocksDBCheckpointTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 625F8F241A59D11D007796BA /* RocksDBCheckpointTests.mm */; }; 62662E931B8FCA8C008B4EF5 /* RocksDBIndexedWriteBatchTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 62662E921B8FCA8C008B4EF5 /* RocksDBIndexedWriteBatchTests.m */; }; @@ -1096,6 +1100,8 @@ 624F5D981BEE416D00497FEF /* ObjectiveRocks.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ObjectiveRocks.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 6251A3721B783DA7009BABD5 /* RocksDBReadOnlyTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RocksDBReadOnlyTests.m; sourceTree = ""; }; 6251A3741B783DBC009BABD5 /* RocksDBReadOnlyTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RocksDBReadOnlyTests.swift; sourceTree = ""; }; + 625EF4951D0C3A960058ACDA /* RocksDBRange.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RocksDBRange.h; sourceTree = ""; }; + 625EF4961D0C3A960058ACDA /* RocksDBRange.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RocksDBRange.mm; sourceTree = ""; }; 625F8F1A1A59C3EB007796BA /* RocksDBProperties.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RocksDBProperties.h; sourceTree = ""; }; 625F8F1B1A59C3EB007796BA /* RocksDBProperties.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RocksDBProperties.mm; sourceTree = ""; }; 625F8F1E1A59C9B3007796BA /* RocksDBPropertiesTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RocksDBPropertiesTests.mm; sourceTree = ""; }; @@ -2460,6 +2466,8 @@ 62AEF9B81A1D5CF000E63E89 /* ObjectiveRocks.h */, 6299F80C1A17B28200123F56 /* RocksDB.h */, 6299F80E1A17B28200123F56 /* RocksDB.mm */, + 625EF4951D0C3A960058ACDA /* RocksDBRange.h */, + 625EF4961D0C3A960058ACDA /* RocksDBRange.mm */, 625F8F1A1A59C3EB007796BA /* RocksDBProperties.h */, 625F8F1B1A59C3EB007796BA /* RocksDBProperties.mm */, 62451AC81A4BAEC000AF11C8 /* RocksDBTypes.h */, @@ -2735,6 +2743,7 @@ 628B4E421D03125900E2D828 /* port_posix.h in Headers */, 628B505E1D03125A00E2D828 /* xfunc.h in Headers */, 628B4B781D03125900E2D828 /* file_indexer.h in Headers */, + 625EF4971D0C3A960058ACDA /* RocksDBRange.h in Headers */, 628B4E761D03125900E2D828 /* block_based_table_reader.h in Headers */, 624203EB1BED64F90043DD6F /* RocksDBStatistics.h in Headers */, 628B4CBE1D03125900E2D828 /* transaction.h in Headers */, @@ -2931,6 +2940,7 @@ 628B4B131D03125900E2D828 /* compaction.h in Headers */, 628B50251D03125A00E2D828 /* sst_file_manager_impl.h in Headers */, 628B4E2F1D03125900E2D828 /* hash_skiplist_rep.h in Headers */, + 625EF4981D0C3A960058ACDA /* RocksDBRange.h in Headers */, 628B4CA11D03125900E2D828 /* convenience.h in Headers */, 624F5DB01BEE41F600497FEF /* RocksDBDatabaseOptions.h in Headers */, 628B504D1D03125A00E2D828 /* thread_posix.h in Headers */, @@ -3380,6 +3390,7 @@ 628B4E241D03125900E2D828 /* hash_cuckoo_rep.cc in Sources */, 628B4FA01D03125A00E2D828 /* env_hdfs.cc in Sources */, 628B4B4C1D03125900E2D828 /* db_iter.cc in Sources */, + 625EF4991D0C3A960058ACDA /* RocksDBRange.mm in Sources */, 628B4B3A1D03125900E2D828 /* db_impl.cc in Sources */, 628B4B961D03125900E2D828 /* internal_stats.cc in Sources */, 628B4BFA1D03125900E2D828 /* version_set.cc in Sources */, @@ -3619,6 +3630,7 @@ 628B4BEF1D03125900E2D828 /* version_builder.cc in Sources */, 628B4FDF1D03125A00E2D828 /* logging.cc in Sources */, 628B50691D03125A00E2D828 /* checkpoint.cc in Sources */, + 625EF49A1D0C3A960058ACDA /* RocksDBRange.mm in Sources */, 628B4EDF1D03125A00E2D828 /* table_properties.cc in Sources */, 628B4BE51D03125900E2D828 /* table_properties_collector.cc in Sources */, 624F5DD81BEE437C00497FEF /* RocksDBReadOptions.mm in Sources */, diff --git a/Tests/ObjectiveRocksTests-Bridging-Header.h b/Tests/ObjectiveRocksTests-Bridging-Header.h index cdf0ff9..87bcb1d 100644 --- a/Tests/ObjectiveRocksTests-Bridging-Header.h +++ b/Tests/ObjectiveRocksTests-Bridging-Header.h @@ -6,7 +6,6 @@ #import #import -#import #import #import @@ -33,6 +32,7 @@ #import #import +#import #import diff --git a/Tests/ObjectiveRocksTests-iOS-Bridging-Header.h b/Tests/ObjectiveRocksTests-iOS-Bridging-Header.h index be87a2f..e7c1ad6 100644 --- a/Tests/ObjectiveRocksTests-iOS-Bridging-Header.h +++ b/Tests/ObjectiveRocksTests-iOS-Bridging-Header.h @@ -32,3 +32,4 @@ #import #import +#import From 9db8502d12f6ed3d83c0b077c32757d668d27a3e Mon Sep 17 00:00:00 2001 From: iska Date: Sat, 11 Jun 2016 17:21:34 +0200 Subject: [PATCH 59/76] Add nullability annotations throughout the codebase --- Code/RocksDB.h | 80 ++++++++++++++------------- Code/RocksDBBackupEngine.h | 14 +++-- Code/RocksDBBackupEngine.mm | 13 ++++- Code/RocksDBBackupInfo.h | 12 ++-- Code/RocksDBBackupInfo.mm | 9 ++- Code/RocksDBCheckpoint.h | 6 +- Code/RocksDBCheckpoint.mm | 2 +- Code/RocksDBColumnFamily.h | 14 +++-- Code/RocksDBColumnFamilyDescriptor.h | 8 ++- Code/RocksDBColumnFamilyMetadata.h | 30 +++++----- Code/RocksDBColumnFamilyMetadata.mm | 26 ++++----- Code/RocksDBComparator.h | 4 ++ Code/RocksDBEnv.h | 4 ++ Code/RocksDBEnv.mm | 15 +++++ Code/RocksDBIndexedWriteBatch.h | 19 ++++--- Code/RocksDBIndexedWriteBatch.mm | 2 +- Code/RocksDBIterator.h | 4 ++ Code/RocksDBMemTableRepFactory.mm | 12 ++-- Code/RocksDBMergeOperator.h | 10 +++- Code/RocksDBOptions.h | 9 ++- Code/RocksDBPrefixExtractor.h | 4 ++ Code/RocksDBSnapshot.h | 4 ++ Code/RocksDBSnapshotUnavailable.h | 34 ++++++------ Code/RocksDBStatistics.h | 4 ++ Code/RocksDBStatistics.mm | 13 +++++ Code/RocksDBStatisticsHistogram.h | 16 ++++-- Code/RocksDBStatisticsHistogram.mm | 10 ++++ Code/RocksDBThreadStatus.h | 17 ++++-- Code/RocksDBThreadStatus.mm | 11 +++- Code/RocksDBTypes.h | 4 ++ Code/RocksDBWriteBatch.h | 18 +++--- Code/RocksDBWriteBatchIterator.h | 3 + Tests/RocksDBBackupTests.swift | 26 +++++---- Tests/RocksDBColumnFamilyTests.swift | 25 +++++---- Tests/RocksDBMergeOperatorTests.swift | 18 +++--- Tests/RocksDBWriteBatchTests.swift | 2 +- 36 files changed, 329 insertions(+), 173 deletions(-) diff --git a/Code/RocksDB.h b/Code/RocksDB.h index 904204b..727adbf 100644 --- a/Code/RocksDB.h +++ b/Code/RocksDB.h @@ -20,6 +20,8 @@ #import "RocksDBProperties.h" #endif +NS_ASSUME_NONNULL_BEGIN + @class RocksDBColumnFamily; @class RocksDBSnapshot; @@ -48,8 +50,8 @@ @warning When opening a DB in a read-write mode, you need to specify all Column Families that currently exist in the DB. */ -+ (instancetype)databaseAtPath:(NSString *)path - andDBOptions:(void (^)(RocksDBOptions *options))options; ++ (nullable instancetype)databaseAtPath:(NSString *)path + andDBOptions:(nullable void (^)(RocksDBOptions *options))options; /** Intializes a DB instance and opens the defined Column Families. @@ -73,9 +75,9 @@ @warning When opening a DB in a read-write mode, you need to specify all Column Families that currently exist in the DB. */ -+ (instancetype)databaseAtPath:(NSString *)path - columnFamilies:(RocksDBColumnFamilyDescriptor *)descriptor - andDatabaseOptions:(void (^)(RocksDBDatabaseOptions *options))options; ++ (nullable instancetype)databaseAtPath:(NSString *)path + columnFamilies:(RocksDBColumnFamilyDescriptor *)descriptor + andDatabaseOptions:(nullable void (^)(RocksDBDatabaseOptions *options))options; #ifndef ROCKSDB_LITE @@ -99,8 +101,8 @@ @remark Opening a non-existing database in read-only mode wont have any effect, even if `createIfMissing` option is set. */ -+ (instancetype)databaseForReadOnlyAtPath:(NSString *)path - andDBOptions:(void (^)(RocksDBOptions *options))options; ++ (nullable instancetype)databaseForReadOnlyAtPath:(NSString *)path + andDBOptions:(nullable void (^)(RocksDBOptions *options))options; /** Intializes a DB instance for read-only and opens the defined Column Families. @@ -130,9 +132,9 @@ @remark When opening DB with read only, it is possible to specify only a subset of column families in the database that should be opened. However, default column family must specified. */ -+ (instancetype)databaseForReadOnlyAtPath:(NSString *)path - columnFamilies:(RocksDBColumnFamilyDescriptor *)descriptor - andDatabaseOptions:(void (^)(RocksDBDatabaseOptions *options))options; ++ (nullable instancetype)databaseForReadOnlyAtPath:(NSString *)path + columnFamilies:(RocksDBColumnFamilyDescriptor *)descriptor + andDatabaseOptions:(nullable void (^)(RocksDBDatabaseOptions *options))options; #endif @@ -150,8 +152,8 @@ @see RocksDBReadOptions @see RocksDBWriteOptions */ -- (void)setDefaultReadOptions:(void (^)(RocksDBReadOptions *readOptions))readOptions - andWriteOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions; +- (void)setDefaultReadOptions:(nullable void (^)(RocksDBReadOptions *readOptions))readOptions + andWriteOptions:(nullable void (^)(RocksDBWriteOptions *writeOptions))writeOptions; @end @@ -183,8 +185,8 @@ @see RocksDBColumnFamily @see RocksDBColumnFamilyOptions */ -- (RocksDBColumnFamily *)createColumnFamilyWithName:(NSString *)name - andOptions:(void (^)(RocksDBColumnFamilyOptions *options))options; +- (nullable RocksDBColumnFamily *)createColumnFamilyWithName:(NSString *)name + andOptions:(nullable void (^)(RocksDBColumnFamilyOptions *options))options; /** @brief Returns an array */ - (NSArray *)columnFamilies; @@ -223,7 +225,7 @@ @warning Not available in RocksDB Lite. */ -- (NSString *)valueForProperty:(RocksDBProperty)property; +- (nullable NSString *)valueForProperty:(RocksDBProperty)property; /** Returns the integer value for the given int property name. @@ -256,7 +258,7 @@ @param error If an error occurs, upon return contains an `NSError` object that describes the problem. @return `YES` if the operation succeeded, `NO` otherwise */ -- (BOOL)setObject:(id)anObject forKey:(id)aKey error:(NSError **)error; +- (BOOL)setObject:(id)anObject forKey:(id)aKey error:(NSError * _Nullable *)error; /** Stores the given key-object pair into the DB. @@ -271,7 +273,7 @@ @see RocksDBWriteOptions */ -- (BOOL)setObject:(id)anObject forKey:(id)aKey writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions error:(NSError **)error; +- (BOOL)setObject:(id)anObject forKey:(id)aKey writeOptions:(nullable void (^)(RocksDBWriteOptions *writeOptions))writeOptions error:(NSError * _Nullable *)error; /** Stores the given data object under the given data key in the DB. @@ -286,7 +288,7 @@ @see RocksDB setObject:forKey:writeOptions: @see RocksDB setObject:forKey:error:writeOptions: */ -- (BOOL)setData:(NSData *)data forKey:(NSData *)aKey error:(NSError **)error; +- (BOOL)setData:(NSData *)data forKey:(NSData *)aKey error:(NSError * _Nullable *)error; /** Stores the given data object under the given data key in the DB. @@ -304,7 +306,7 @@ @see RocksDB setObject:forKey:writeOptions: @see RocksDB setObject:forKey:error:writeOptions: */ -- (BOOL)setData:(NSData *)data forKey:(NSData *)aKey writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions error:(NSError **)error; +- (BOOL)setData:(NSData *)data forKey:(NSData *)aKey writeOptions:(nullable void (^)(RocksDBWriteOptions *writeOptions))writeOptions error:(NSError * _Nullable *)error; @end @@ -316,8 +318,8 @@ ///-------------------------------- -- (BOOL)mergeOperation:(NSString *)aMerge forKey:(id)aKey error:(NSError **)error; -- (BOOL)mergeOperation:(NSString *)aMerge forKey:(id)aKey writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions error:(NSError **)error; +- (BOOL)mergeOperation:(NSString *)aMerge forKey:(id)aKey error:(NSError * _Nullable *)error; +- (BOOL)mergeOperation:(NSString *)aMerge forKey:(id)aKey writeOptions:(nullable void (^)(RocksDBWriteOptions *writeOptions))writeOptions error:(NSError * _Nullable *)error; /** Merges the given object with the existing data for the given key. @@ -332,7 +334,7 @@ @see RocksDBMergeOperator */ -- (BOOL)mergeObject:(id)anObject forKey:(id)aKey error:(NSError **)error; +- (BOOL)mergeObject:(id)anObject forKey:(id)aKey error:(NSError * _Nullable *)error; /** Merges the given object with the existing data for the given key. @@ -349,7 +351,7 @@ @see RocksDBMergeOperator */ -- (BOOL)mergeObject:(id)anObject forKey:(id)aKey writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions error:(NSError **)error ; +- (BOOL)mergeObject:(id)anObject forKey:(id)aKey writeOptions:(nullable void (^)(RocksDBWriteOptions *writeOptions))writeOptions error:(NSError * _Nullable *)error ; /** @@ -365,7 +367,7 @@ @see RocksDBMergeOperator */ -- (BOOL)mergeData:(NSData *)data forKey:(NSData *)aKey error:(NSError **)error; +- (BOOL)mergeData:(NSData *)data forKey:(NSData *)aKey error:(NSError * _Nullable *)error; /** Merges the given data object with the existing data for the given key. @@ -383,7 +385,7 @@ @see RocksDBMergeOperator @see RocksDBWriteOptions */ -- (BOOL)mergeData:(NSData *)data forKey:(NSData *)aKey writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions error:(NSError **)error; +- (BOOL)mergeData:(NSData *)data forKey:(NSData *)aKey writeOptions:(nullable void (^)(RocksDBWriteOptions *writeOptions))writeOptions error:(NSError * _Nullable *)error; @end @@ -401,7 +403,7 @@ @param error If an error occurs, upon return contains an `NSError` object that describes the problem. @return The object for the given key. */ -- (id)objectForKey:(id)aKey error:(NSError **)error; +- (nullable id)objectForKey:(id)aKey error:(NSError * _Nullable *)error; /** Returns the object for the given key. @@ -413,7 +415,7 @@ @see RocksDBReadOptions */ -- (id)objectForKey:(id)aKey readOptions:(void (^)(RocksDBReadOptions *readOptions))readOptions error:(NSError **)error; +- (nullable id)objectForKey:(id)aKey readOptions:(nullable void (^)(RocksDBReadOptions *readOptions))readOptions error:(NSError * _Nullable *)error; /** Returns the data for the given key. @@ -427,7 +429,7 @@ @see RocksDB objectForKey:readOptions: @see RocksDB objectForKey:error:readOptions: */ -- (NSData *)dataForKey:(NSData *)aKey error:(NSError **)error; +- (nullable NSData *)dataForKey:(NSData *)aKey error:(NSError * _Nullable *)error; /** Returns the data for the given key. @@ -443,7 +445,7 @@ @see RocksDB objectForKey:readOptions: @see RocksDB objectForKey:error:readOptions: */ -- (NSData *)dataForKey:(NSData *)aKey readOptions:(void (^)(RocksDBReadOptions *readOptions))readOptions error:(NSError **)error; +- (nullable NSData *)dataForKey:(NSData *)aKey readOptions:(nullable void (^)(RocksDBReadOptions *readOptions))readOptions error:(NSError * _Nullable *)error; @end @@ -461,7 +463,7 @@ @param error If an error occurs, upon return contains an `NSError` object that describes the problem. @return `YES` if the operation succeeded, `NO` otherwise */ -- (BOOL)deleteObjectForKey:(id)aKey error:(NSError **)error; +- (BOOL)deleteObjectForKey:(id)aKey error:(NSError * _Nullable *)error; /** Deletes the object for the given key. @@ -473,7 +475,7 @@ @see RocksDBWriteOptions */ -- (BOOL)deleteObjectForKey:(id)aKey writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions error:(NSError **)error ; +- (BOOL)deleteObjectForKey:(id)aKey writeOptions:(nullable void (^)(RocksDBWriteOptions *writeOptions))writeOptions error:(NSError * _Nullable *)error ; /** Deletes the data for the given key. @@ -487,7 +489,7 @@ @see RocksDB deleteObjectForKey:readOptions: @see RocksDB deleteObjectForKey:error:readOptions: */ -- (BOOL)deleteDataForKey:(NSData *)aKey error:(NSError **)error; +- (BOOL)deleteDataForKey:(NSData *)aKey error:(NSError * _Nullable *)error; /** Deletes the data for the given key. @@ -503,7 +505,7 @@ @see RocksDB deleteObjectForKey:readOptions: @see RocksDB deleteObjectForKey:error:readOptions: */ -- (BOOL)deleteDataForKey:(NSData *)aKey writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions error:(NSError **)error; +- (BOOL)deleteDataForKey:(NSData *)aKey writeOptions:(nullable void (^)(RocksDBWriteOptions *writeOptions))writeOptions error:(NSError * _Nullable *)error; @end @@ -536,7 +538,7 @@ @see RocksDBWriteBatch */ -- (BOOL)performWriteBatch:(void (^)(RocksDBWriteBatch *batch, RocksDBWriteOptions *options))batch error:(NSError **)error; +- (BOOL)performWriteBatch:(void (^)(RocksDBWriteBatch *batch, RocksDBWriteOptions *options))batch error:(NSError * _Nullable *)error; /** Applies a write batch instance on this DB. @@ -552,7 +554,7 @@ @see RocksDBWriteBatch @see RocksDBWriteOptions */ -- (BOOL)applyWriteBatch:(RocksDBWriteBatch *)writeBatch writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions error:(NSError **)error; +- (BOOL)applyWriteBatch:(RocksDBWriteBatch *)writeBatch writeOptions:(nullable void (^)(RocksDBWriteOptions *writeOptions))writeOptions error:(NSError * _Nullable *)error; #ifndef ROCKSDB_LITE @@ -578,7 +580,7 @@ @see RocksDBIndexedWriteBatch */ -- (BOOL)performIndexedWriteBatch:(void (^)(RocksDBIndexedWriteBatch *batch, RocksDBWriteOptions *options))batch error:(NSError **)error; +- (BOOL)performIndexedWriteBatch:(void (^)(RocksDBIndexedWriteBatch *batch, RocksDBWriteOptions *options))batch error:(NSError * _Nullable *)error; #endif @@ -609,7 +611,7 @@ @see RocksDBIterator @see RocksDBReadOptions */ -- (RocksDBIterator *)iteratorWithReadOptions:(void (^)(RocksDBReadOptions *readOptions))readOptions; +- (RocksDBIterator *)iteratorWithReadOptions:(nullable void (^)(RocksDBReadOptions *readOptions))readOptions; @end @@ -635,6 +637,8 @@ @see RocksDBSnapshot @see RocksDBReadOptions */ -- (RocksDBSnapshot *)snapshotWithReadOptions:(void (^)(RocksDBReadOptions *readOptions))readOptions; +- (RocksDBSnapshot *)snapshotWithReadOptions:(nullable void (^)(RocksDBReadOptions *readOptions))readOptions; @end + +NS_ASSUME_NONNULL_END diff --git a/Code/RocksDBBackupEngine.h b/Code/RocksDBBackupEngine.h index 8eb2804..5891d23 100644 --- a/Code/RocksDBBackupEngine.h +++ b/Code/RocksDBBackupEngine.h @@ -10,6 +10,8 @@ #import "RocksDB.h" +NS_ASSUME_NONNULL_BEGIN + /** The `RocksDBBackupEngine` provides backup and restore functionality for RocksDB. Backups are incremental and each backup receives an ID, which can be used to restore that specific backup. Backups can also be deleted to @@ -32,7 +34,7 @@ @param error If an error occurs, upon return contains an `NSError` object that describes the problem. @return `YES` if the backup succeeded, `NO` otherwise. */ -- (BOOL)createBackupForDatabase:(RocksDB *)database error:(NSError **)error; +- (BOOL)createBackupForDatabase:(RocksDB *)database error:(NSError * _Nullable *)error; /** Restores the latest backup of this Backup Engine to the given destination path. @@ -41,7 +43,7 @@ @param error If an error occurs, upon return contains an `NSError` object that describes the problem. @return `YES` if the restore succeeded, `NO` otherwise. */ -- (BOOL)restoreBackupToDestinationPath:(NSString *)destination error:(NSError **)error; +- (BOOL)restoreBackupToDestinationPath:(NSString *)destination error:(NSError * _Nullable *)error; /** Restores the backup with the given ID in this Backup Engine to the given destination path. @@ -51,7 +53,7 @@ @param error If an error occurs, upon return contains an `NSError` object that describes the problem. @return `YES` if the restore succeeded, `NO` otherwise. */ -- (BOOL)restoreBackupWithId:(uint32_t)backupId toDestinationPath:(NSString *)destination error:(NSError **)error; +- (BOOL)restoreBackupWithId:(uint32_t)backupId toDestinationPath:(NSString *)destination error:(NSError * _Nullable *)error; /** Deleted all backups from this Backup Engine keeping the last N backups. @@ -60,7 +62,7 @@ @param error If an error occurs, upon return contains an `NSError` object that describes the problem. @return `YES` if the purge succeeded, `NO` otherwise. */ -- (BOOL)purgeOldBackupsKeepingLast:(uint32_t)countBackups error:(NSError **)error; +- (BOOL)purgeOldBackupsKeepingLast:(uint32_t)countBackups error:(NSError * _Nullable *)error; /** Deletes a specific backup from this Backup Engine. @@ -69,7 +71,7 @@ @param error If an error occurs, upon return contains an `NSError` object that describes the problem. @return `YES` if the delete succeeded, `NO` otherwise. */ -- (BOOL)deleteBackupWithId:(uint32_t)backupId error:(NSError **)error; +- (BOOL)deleteBackupWithId:(uint32_t)backupId error:(NSError * _Nullable *)error; /** Returns a list of backups in this Backup Engine together with information on timestamp of the backups @@ -87,3 +89,5 @@ - (void)close; @end + +NS_ASSUME_NONNULL_END diff --git a/Code/RocksDBBackupEngine.mm b/Code/RocksDBBackupEngine.mm index 7a7154d..abc4360 100644 --- a/Code/RocksDBBackupEngine.mm +++ b/Code/RocksDBBackupEngine.mm @@ -13,10 +13,21 @@ #include #include -@interface RocksDB (Private) +#pragma mark - Informal Protocols + +@interface RocksDB () @property (nonatomic, assign) rocksdb::DB *db; @end +@interface RocksDBBackupInfo () +@property (nonatomic, assign) uint32_t backupId; +@property (nonatomic, assign) int64_t timestamp; +@property (nonatomic, assign) uint64_t size; +@property (nonatomic, assign) uint32_t numberFiles; +@end + +#pragma mark - Impl + @interface RocksDBBackupEngine () { NSString *_path; diff --git a/Code/RocksDBBackupInfo.h b/Code/RocksDBBackupInfo.h index 61f83ea..bdc7078 100644 --- a/Code/RocksDBBackupInfo.h +++ b/Code/RocksDBBackupInfo.h @@ -8,6 +8,8 @@ #import +NS_ASSUME_NONNULL_BEGIN + /** Holds information about a database backup. */ @@ -16,21 +18,23 @@ /** @brief The backup ID. */ -@property (nonatomic, assign) uint32_t backupId; +@property (nonatomic, assign, readonly) uint32_t backupId; /** @brief The timestamp when the backup was created. */ -@property (nonatomic, assign) int64_t timestamp; +@property (nonatomic, assign, readonly) int64_t timestamp; /** @brief The size of the backup in bytes. */ -@property (nonatomic, assign) uint64_t size; +@property (nonatomic, assign, readonly) uint64_t size; /** @brief The number of files in the backup. */ -@property (nonatomic, assign) uint32_t numberFiles; +@property (nonatomic, assign, readonly) uint32_t numberFiles; @end + +NS_ASSUME_NONNULL_END diff --git a/Code/RocksDBBackupInfo.mm b/Code/RocksDBBackupInfo.mm index 5cbb525..58ffc3a 100644 --- a/Code/RocksDBBackupInfo.mm +++ b/Code/RocksDBBackupInfo.mm @@ -8,6 +8,13 @@ #import "RocksDBBackupInfo.h" -@implementation RocksDBBackupInfo +@interface RocksDBBackupInfo () +@property (nonatomic, assign) uint32_t backupId; +@property (nonatomic, assign) int64_t timestamp; +@property (nonatomic, assign) uint64_t size; +@property (nonatomic, assign) uint32_t numberFiles; +@end +@implementation RocksDBBackupInfo +@synthesize backupId, timestamp, size, numberFiles; @end diff --git a/Code/RocksDBCheckpoint.h b/Code/RocksDBCheckpoint.h index 8954ade..7050543 100644 --- a/Code/RocksDBCheckpoint.h +++ b/Code/RocksDBCheckpoint.h @@ -9,6 +9,8 @@ #import #import "RocksDB.h" +NS_ASSUME_NONNULL_BEGIN + /** A checkpoint is an openable Snapshot of a database at a point in time. The `RocksDBCheckpoint` is used to create such Snapshots for a given DB. @@ -31,6 +33,8 @@ @param error If an error occurs, upon return contains an `NSError` object that describes the problem. @return `YES` if the checkpoint was created, `NO` otherwise. */ -- (BOOL)createCheckpointAtPath:(NSString *)path error:(NSError **)error; +- (BOOL)createCheckpointAtPath:(NSString *)path error:(NSError * _Nullable *)error; @end + +NS_ASSUME_NONNULL_END diff --git a/Code/RocksDBCheckpoint.mm b/Code/RocksDBCheckpoint.mm index 8321699..f893388 100644 --- a/Code/RocksDBCheckpoint.mm +++ b/Code/RocksDBCheckpoint.mm @@ -47,7 +47,7 @@ - (void)dealloc #pragma mark - Checkpoint Create -- (BOOL)createCheckpointAtPath:(NSString *)path error:(NSError **)error +- (BOOL)createCheckpointAtPath:(NSString *)path error:(NSError * __autoreleasing *)error { rocksdb::Status status = _checkpoint->CreateCheckpoint(path.UTF8String); diff --git a/Code/RocksDBColumnFamily.h b/Code/RocksDBColumnFamily.h index 96df9e3..eb3cbf8 100644 --- a/Code/RocksDBColumnFamily.h +++ b/Code/RocksDBColumnFamily.h @@ -9,6 +9,8 @@ #import "RocksDB.h" #import "RocksDBOptions.h" +NS_ASSUME_NONNULL_BEGIN + /** Column Families provide a way to logically partition the database. Each key-value pair in RocksDB is associated with exactly one Column Family. If there is no Column Family specified, key-value pair is associated with Column @@ -20,23 +22,23 @@ @interface RocksDBColumnFamily : RocksDB + (instancetype)databaseAtPath:(NSString *)path - andDBOptions:(void (^)(RocksDBOptions *options))options __attribute__((unavailable("Create column family via a RocksDB instance"))); + andDBOptions:(nullable void (^)(RocksDBOptions *options))options __attribute__((unavailable("Create column family via a RocksDB instance"))); + (instancetype)databaseAtPath:(NSString *)path columnFamilies:(RocksDBColumnFamilyDescriptor *)descriptor - andDatabaseOptions:(void (^)(RocksDBDatabaseOptions *options))options __attribute__((unavailable("Create column family via a RocksDB instance"))); + andDatabaseOptions:(nullable void (^)(RocksDBDatabaseOptions *options))options __attribute__((unavailable("Create column family via a RocksDB instance"))); #ifndef ROCKSDB_LITE + (instancetype)databaseForReadOnlyAtPath:(NSString *)path - andDBOptions:(void (^)(RocksDBOptions *options))options __attribute__((unavailable("Create column family via a RocksDB instance"))); + andDBOptions:(nullable void (^)(RocksDBOptions *options))options __attribute__((unavailable("Create column family via a RocksDB instance"))); + (instancetype)databaseForReadOnlyAtPath:(NSString *)path columnFamilies:(RocksDBColumnFamilyDescriptor *)descriptor - andDatabaseOptions:(void (^)(RocksDBDatabaseOptions *options))options __attribute__((unavailable("Create column family via a RocksDB instance"))); + andDatabaseOptions:(nullable void (^)(RocksDBDatabaseOptions *options))options __attribute__((unavailable("Create column family via a RocksDB instance"))); #endif + (NSArray *)listColumnFamiliesInDatabaseAtPath:(NSString *)path __attribute__((unavailable("Use the superclass RocksDB instead"))); - (RocksDBColumnFamily *)createColumnFamilyWithName:(NSString *)name - andOptions:(void (^)(RocksDBColumnFamilyOptions *options))optionsBlock __attribute__((unavailable("Use the superclass RocksDB instead"))); + andOptions:(nullable void (^)(RocksDBColumnFamilyOptions *options))optionsBlock __attribute__((unavailable("Use the superclass RocksDB instead"))); /** @breaf Drops this Column Family form the DB instance it is associated with. @@ -44,3 +46,5 @@ - (void)drop; @end + +NS_ASSUME_NONNULL_END diff --git a/Code/RocksDBColumnFamilyDescriptor.h b/Code/RocksDBColumnFamilyDescriptor.h index c4f37b0..391ab64 100644 --- a/Code/RocksDBColumnFamilyDescriptor.h +++ b/Code/RocksDBColumnFamilyDescriptor.h @@ -9,6 +9,8 @@ #import #import "RocksDBColumnFamilyOptions.h" +NS_ASSUME_NONNULL_BEGIN + extern NSString * const RocksDBDefaultColumnFamilyName; /** @@ -25,7 +27,7 @@ extern NSString * const RocksDBDefaultColumnFamilyName; @see RocksDBColumnFamilyOptions */ -- (void)addDefaultColumnFamilyWithOptions:(void (^)(RocksDBColumnFamilyOptions *options))options; +- (void)addDefaultColumnFamilyWithOptions:(nullable void (^)(RocksDBColumnFamilyOptions *options))options; /** Adds a Column Family to this descriptor instance with the given name and options. @@ -35,6 +37,8 @@ extern NSString * const RocksDBDefaultColumnFamilyName; @see RocksDBColumnFamilyOptions */ -- (void)addColumnFamilyWithName:(NSString *)name andOptions:(void (^)(RocksDBColumnFamilyOptions *options))options; +- (void)addColumnFamilyWithName:(NSString *)name andOptions:(nullable void (^)(RocksDBColumnFamilyOptions *options))options; @end + +NS_ASSUME_NONNULL_END diff --git a/Code/RocksDBColumnFamilyMetadata.h b/Code/RocksDBColumnFamilyMetadata.h index bf77e2c..cc51ab3 100644 --- a/Code/RocksDBColumnFamilyMetadata.h +++ b/Code/RocksDBColumnFamilyMetadata.h @@ -8,6 +8,8 @@ #import +NS_ASSUME_NONNULL_BEGIN + /** The metadata that describes a Column Family. */ @@ -16,17 +18,17 @@ /** @brief The size of this Column Family in bytes, which is equal to the sum of the file size of its "levels". */ -@property (nonatomic, assign) uint64_t size; +@property (nonatomic, readonly) uint64_t size; /** @brief The number of files in this Clumn Family. */ -@property (nonatomic, assign) size_t fileCount; +@property (nonatomic, readonly) size_t fileCount; /** @brief The name of the Column Family. */ -@property (nonatomic, assign) NSString *name; +@property (nonatomic, strong, readonly) NSString *name; /** @brief The metadata of all levels in this Column Family. @@ -43,12 +45,12 @@ /** @brief The level which this meta data describes. */ -@property (nonatomic, assign) const int level; +@property (nonatomic, readonly) int level; /** @brief The size of this level in bytes, which is equal to the sum of the file size of its "files". */ -@property (nonatomic, assign) const uint64_t size; +@property (nonatomic, readonly) uint64_t size; /** @brief The metadata of all sst files in this level. @@ -65,41 +67,43 @@ /** @brief File size in bytes. */ -@property (nonatomic, assign) uint64_t size; +@property (nonatomic, readonly) uint64_t size; /** @brief The name of the file. */ -@property (nonatomic, assign) NSString *name; +@property (nonatomic, strong, readonly) NSString *name; /** @brief The full path where the file locates. */ -@property (nonatomic, assign) NSString *dbPath; +@property (nonatomic, strong, readonly) NSString *dbPath; /** @brief Smallest sequence number in file. */ -@property (nonatomic, assign) uint64_t smallestSeqno; +@property (nonatomic, readonly) uint64_t smallestSeqno; /** @brief Largest sequence number in file. */ -@property (nonatomic, assign) uint64_t largestSeqno; +@property (nonatomic, readonly) uint64_t largestSeqno; /** @brief Smallest user defined key in the file. */ -@property (nonatomic, assign) NSString *smallestKey; +@property (nonatomic, strong, readonly) NSString *smallestKey; /** @brief Largest user defined key in the file. */ -@property (nonatomic, assign) NSString *largestKey; +@property (nonatomic, strong, readonly) NSString *largestKey; /** @brief `true` if the file is currently being compacted. */ -@property (nonatomic, assign) bool beingCompacted; +@property (nonatomic, readonly) bool beingCompacted; @end + +NS_ASSUME_NONNULL_END diff --git a/Code/RocksDBColumnFamilyMetadata.mm b/Code/RocksDBColumnFamilyMetadata.mm index 4f72413..1982457 100644 --- a/Code/RocksDBColumnFamilyMetadata.mm +++ b/Code/RocksDBColumnFamilyMetadata.mm @@ -17,9 +17,9 @@ - (instancetype)initWithMetaData:(rocksdb::ColumnFamilyMetaData)metadata { self = [super init]; if (self) { - self.size = metadata.size; - self.fileCount = metadata.file_count; - self.name = [NSString stringWithCString:metadata.name.c_str() encoding:NSUTF8StringEncoding]; + self->_size = metadata.size; + self->_fileCount = metadata.file_count; + self->_name = [NSString stringWithCString:metadata.name.c_str() encoding:NSUTF8StringEncoding]; NSMutableArray *levels = [NSMutableArray array]; for (auto it = std::begin(metadata.levels); it != std::end(metadata.levels); ++it) { RocksDBLevelFileMetaData *levelMetaData = [[RocksDBLevelFileMetaData alloc] initWithLevelMetaData:*it]; @@ -38,8 +38,8 @@ - (instancetype)initWithLevelMetaData:(rocksdb::LevelMetaData)metadata { self = [super init]; if (self) { - self.level = metadata.level; - self.size = metadata.size; + self->_level = metadata.level; + self->_size = metadata.size; NSMutableArray *sstFiles = [NSMutableArray array]; for (auto it = std::begin(metadata.files); it != std::end(metadata.files); ++it) { @@ -59,14 +59,14 @@ - (instancetype)initWithSstFileMetaData:(rocksdb::SstFileMetaData)metadata { self = [super init]; if (self) { - self.size = metadata.size; - self.name = [NSString stringWithCString:metadata.name.c_str() encoding:NSUTF8StringEncoding]; - self.dbPath = [NSString stringWithCString:metadata.db_path.c_str() encoding:NSUTF8StringEncoding]; - self.smallestSeqno = metadata.smallest_seqno; - self.largestSeqno = metadata.largest_seqno; - self.smallestKey = [NSString stringWithCString:metadata.smallestkey.c_str() encoding:NSUTF8StringEncoding]; - self.largestKey = [NSString stringWithCString:metadata.largestkey.c_str() encoding:NSUTF8StringEncoding]; - self.beingCompacted = metadata.being_compacted; + self->_size = metadata.size; + self->_name = [NSString stringWithCString:metadata.name.c_str() encoding:NSUTF8StringEncoding]; + self->_dbPath = [NSString stringWithCString:metadata.db_path.c_str() encoding:NSUTF8StringEncoding]; + self->_smallestSeqno = metadata.smallest_seqno; + self->_largestSeqno = metadata.largest_seqno; + self->_smallestKey = [NSString stringWithCString:metadata.smallestkey.c_str() encoding:NSUTF8StringEncoding]; + self->_largestKey = [NSString stringWithCString:metadata.largestkey.c_str() encoding:NSUTF8StringEncoding]; + self->_beingCompacted = metadata.being_compacted; } return self; } diff --git a/Code/RocksDBComparator.h b/Code/RocksDBComparator.h index afae2b8..6f1ccc4 100644 --- a/Code/RocksDBComparator.h +++ b/Code/RocksDBComparator.h @@ -8,6 +8,8 @@ #import +NS_ASSUME_NONNULL_BEGIN + /** An enum defining the built-in Comparators. */ @@ -58,3 +60,5 @@ typedef NS_ENUM(NSUInteger, RocksDBComparatorType) - (instancetype)initWithName:(NSString *)name andBlock:(int (^)(id key1, id key2))block; @end + +NS_ASSUME_NONNULL_END diff --git a/Code/RocksDBEnv.h b/Code/RocksDBEnv.h index e9fa72f..f1ce38d 100644 --- a/Code/RocksDBEnv.h +++ b/Code/RocksDBEnv.h @@ -8,6 +8,8 @@ #import +NS_ASSUME_NONNULL_BEGIN + /** All file operations (and other operating system calls) issued by the RocksDB implementation are routed through an `RocksDBEnv` object. Currently `RocksDBEnv` only exposes the high & low priority thread pool parameters. @@ -41,3 +43,5 @@ #endif @end + +NS_ASSUME_NONNULL_END diff --git a/Code/RocksDBEnv.mm b/Code/RocksDBEnv.mm index 5634eab..9aa558d 100644 --- a/Code/RocksDBEnv.mm +++ b/Code/RocksDBEnv.mm @@ -15,6 +15,8 @@ #import #import +#pragma mark - Informal Protocols + @interface RocksDBEnv () { rocksdb::Env *_env; @@ -22,6 +24,19 @@ @interface RocksDBEnv () @property (nonatomic, assign) rocksdb::Env *env; @end +#if ROCKSDB_USING_THREAD_STATUS +@interface RocksDBThreadStatus () +@property (nonatomic, assign) uint64_t threadId; +@property (nonatomic, assign) RocksDBThreadType threadType; +@property (nonatomic, copy) NSString *databaseName; +@property (nonatomic, copy) NSString *columnFamilyname; +@property (nonatomic, assign) RocksDBOperationType operationType; +@property (nonatomic, assign) RocksDBStateType stateType; +@end +#endif + +#pragma mark - Impl + @implementation RocksDBEnv @synthesize env = _env; diff --git a/Code/RocksDBIndexedWriteBatch.h b/Code/RocksDBIndexedWriteBatch.h index e7fdbdc..aa88c42 100644 --- a/Code/RocksDBIndexedWriteBatch.h +++ b/Code/RocksDBIndexedWriteBatch.h @@ -9,6 +9,8 @@ #import "RocksDBWriteBatch.h" #import "RocksDBWriteBatchIterator.h" +NS_ASSUME_NONNULL_BEGIN + @class RocksDBColumnFamily; @class RocksDBReadOptions; @@ -33,9 +35,9 @@ @see RocksDBColumnFamily */ -- (id)objectForKey:(id)aKey +- (nullable id)objectForKey:(id)aKey inColumnFamily:(RocksDBColumnFamily *)columnFamily - error:(NSError **)error; + error:(NSError * _Nullable *)error; /** Returns the object for the given key. @@ -51,18 +53,17 @@ @param aKey The key for object. @param columnFamily The column family from which the data should be read. - @param error If an error occurs, upon return contains an `NSError` object that describes the problem. @param readOptions A block with a `RocksDBReadOptions` instance for configuring this read operation. + @param error If an error occurs, upon return contains an `NSError` object that describes åthe problem. @return The object for the given key. @see RocksDBColumnFamily @see RocksDBReadOptions */ -- (id)objectForKeyIncludingDatabase:(id)aKey - inColumnFamily:(RocksDBColumnFamily *)columnFamily - error:(NSError **)error - readOptions:(void (^)(RocksDBReadOptions *readOptions))readOptions; - +- (nullable id)objectForKeyIncludingDatabase:(id)aKey + inColumnFamily:(RocksDBColumnFamily *)columnFamily + readOptions:(nullable void (^)(RocksDBReadOptions *readOptions))readOptions + error:(NSError * _Nullable *)error; /** Creates and returns an iterator over this indexed write batch. @@ -77,3 +78,5 @@ - (RocksDBWriteBatchIterator *)iterator; @end + +NS_ASSUME_NONNULL_END diff --git a/Code/RocksDBIndexedWriteBatch.mm b/Code/RocksDBIndexedWriteBatch.mm index a1bf640..e7178f4 100644 --- a/Code/RocksDBIndexedWriteBatch.mm +++ b/Code/RocksDBIndexedWriteBatch.mm @@ -74,8 +74,8 @@ - (id)objectForKey:(id)aKey - (id)objectForKeyIncludingDatabase:(id)aKey inColumnFamily:(RocksDBColumnFamily *)columnFamily - error:(NSError * __autoreleasing *)error readOptions:(void (^)(RocksDBReadOptions *readOptions))readOptionsBlock + error:(NSError * __autoreleasing *)error { RocksDBReadOptions *readOptions = [_readOptions copy]; if (readOptionsBlock) { diff --git a/Code/RocksDBIterator.h b/Code/RocksDBIterator.h index 11144b9..76bb1fb 100644 --- a/Code/RocksDBIterator.h +++ b/Code/RocksDBIterator.h @@ -10,6 +10,8 @@ #import "RocksDBEncodingOptions.h" #import "RocksDBRange.h" +NS_ASSUME_NONNULL_BEGIN + /** An iterator over the sorted DB keys. Supports iteration in the natural sort order, the reverse order, and prefix seek. */ @@ -139,3 +141,5 @@ - (void)enumerateKeysAndValuesWithPrefix:(id)prefix usingBlock:(void (^)(id key, id value, BOOL *stop))block; @end + +NS_ASSUME_NONNULL_END diff --git a/Code/RocksDBMemTableRepFactory.mm b/Code/RocksDBMemTableRepFactory.mm index 2971214..46a7436 100644 --- a/Code/RocksDBMemTableRepFactory.mm +++ b/Code/RocksDBMemTableRepFactory.mm @@ -22,34 +22,34 @@ @implementation RocksDBMemTableRepFactory + (instancetype)skipListRepFacotry { - return [[self alloc] initWithNatviceMemTableRepFactory:new rocksdb::SkipListFactory]; + return [[self alloc] initWithNativeMemTableRepFactory:new rocksdb::SkipListFactory]; } #ifndef ROCKSDB_LITE + (instancetype)vectorRepFactory { - return [[self alloc] initWithNatviceMemTableRepFactory:new rocksdb::VectorRepFactory]; + return [[self alloc] initWithNativeMemTableRepFactory:new rocksdb::VectorRepFactory]; } + (instancetype)hashSkipListRepFactory { - return [[self alloc] initWithNatviceMemTableRepFactory:rocksdb::NewHashSkipListRepFactory()]; + return [[self alloc] initWithNativeMemTableRepFactory:rocksdb::NewHashSkipListRepFactory()]; } + (instancetype)hashLinkListRepFactory { - return [[self alloc] initWithNatviceMemTableRepFactory:rocksdb::NewHashLinkListRepFactory()]; + return [[self alloc] initWithNativeMemTableRepFactory:rocksdb::NewHashLinkListRepFactory()]; } + (instancetype)hashCuckooRepFactoryWithWriteBufferSize:(size_t)writeBufferSize { - return [[self alloc] initWithNatviceMemTableRepFactory:rocksdb::NewHashCuckooRepFactory(writeBufferSize)]; + return [[self alloc] initWithNativeMemTableRepFactory:rocksdb::NewHashCuckooRepFactory(writeBufferSize)]; } #endif -- (instancetype)initWithNatviceMemTableRepFactory:(rocksdb::MemTableRepFactory *)factory +- (instancetype)initWithNativeMemTableRepFactory:(rocksdb::MemTableRepFactory *)factory { self = [super init]; if (self) { diff --git a/Code/RocksDBMergeOperator.h b/Code/RocksDBMergeOperator.h index e330ba8..29698fe 100644 --- a/Code/RocksDBMergeOperator.h +++ b/Code/RocksDBMergeOperator.h @@ -8,6 +8,8 @@ #import +NS_ASSUME_NONNULL_BEGIN + /** A Merge operator is an atomic Read-Modify-Write operation in RocksDB. */ @@ -26,7 +28,7 @@ @return A newly-initialized instance of the Merge Operator. */ + (instancetype)operatorWithName:(NSString *)name - andBlock:(id (^)(id key, id existingValue, id value))block; + andBlock:(id (^)(id key, id _Nullable existingValue, id value))block; /** Initializes a new instance of a generic merge operator. @@ -51,7 +53,9 @@ @return A newly-initialized instance of the Merge Operator. */ + (instancetype)operatorWithName:(NSString *)name - partialMergeBlock:(NSString * (^)(id key, NSString *leftOperand, NSString *rightOperand))partialMergeBlock - fullMergeBlock:(id (^)(id key, id existingValue, NSArray *operandList))fullMergeBlock; + partialMergeBlock:(NSString * _Nullable (^)(id key, NSString *leftOperand, NSString *rightOperand))partialMergeBlock + fullMergeBlock:(id _Nullable (^)(id key, id _Nullable existingValue, NSArray *operandList))fullMergeBlock; @end + +NS_ASSUME_NONNULL_END diff --git a/Code/RocksDBOptions.h b/Code/RocksDBOptions.h index 2b528d8..05cc9a1 100644 --- a/Code/RocksDBOptions.h +++ b/Code/RocksDBOptions.h @@ -16,6 +16,8 @@ #import "RocksDBPrefixExtractor.h" #import "RocksDBTypes.h" +#pragma mark - Options + /** A proxy object for `RocksDBDatabaseOptions` and `RocksDBColumnFamilyOptions`. */ @@ -36,6 +38,8 @@ @end +#pragma mark - Encoding Options + /** Options to define how arbitrary objects (keys & values) should be converted to NSData and vise versa. @@ -73,6 +77,8 @@ @end +#pragma mark - DB Options + /** Options to control the behavior of the DB. */ @@ -147,6 +153,8 @@ @end +#pragma mark - Column Family Options + /** Options to control the behaviour of Column Families. @RocksDBColumnFamily @@ -333,4 +341,3 @@ @property (nonatomic, assign) uint32_t minPartialMergeOperands; @end - diff --git a/Code/RocksDBPrefixExtractor.h b/Code/RocksDBPrefixExtractor.h index 9d688f0..4512cc7 100644 --- a/Code/RocksDBPrefixExtractor.h +++ b/Code/RocksDBPrefixExtractor.h @@ -8,6 +8,8 @@ #import +NS_ASSUME_NONNULL_BEGIN + /** Constants for the built-in prefix extractors. */ @@ -51,3 +53,5 @@ typedef NS_ENUM(NSUInteger, RocksDBPrefixType) validPrefixBlock:(BOOL (^)(id prefix))validPrefixBlock; @end + +NS_ASSUME_NONNULL_END diff --git a/Code/RocksDBSnapshot.h b/Code/RocksDBSnapshot.h index abb0a89..c19b402 100644 --- a/Code/RocksDBSnapshot.h +++ b/Code/RocksDBSnapshot.h @@ -11,6 +11,8 @@ #import "RocksDBReadOptions.h" #import "RocksDBSnapshotUnavailable.h" +NS_ASSUME_NONNULL_BEGIN + /** The `RocksDBSnapshot` provides a consistent read-only view over the state of the key-value store. */ @@ -66,3 +68,5 @@ SNAPSHOT_WRITE_BATCH_SELECTORS #endif @end + +NS_ASSUME_NONNULL_END diff --git a/Code/RocksDBSnapshotUnavailable.h b/Code/RocksDBSnapshotUnavailable.h index 14f05ff..055bafe 100644 --- a/Code/RocksDBSnapshotUnavailable.h +++ b/Code/RocksDBSnapshotUnavailable.h @@ -9,35 +9,35 @@ #define UNAVAILABLE(x) __attribute__((unavailable(x))) #define SNAPSHOT_PUT_MERGE_DELETE_SELECTORS \ -NA_SELECTOR(- (BOOL)setObject:(id)anObject forKey:(id)aKey error:(NSError **)error) \ -NA_SELECTOR(- (BOOL)setObject:(id)anObject forKey:(id)aKey writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions error:(NSError **)error) \ +NA_SELECTOR(- (BOOL)setObject:(id)anObject forKey:(id)aKey error:(NSError * _Nullable *)error) \ +NA_SELECTOR(- (BOOL)setObject:(id)anObject forKey:(id)aKey writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions error:(NSError * _Nullable *)error) \ \ -NA_SELECTOR(- (BOOL)setData:(NSData *)data forKey:(NSData *)aKey error:(NSError **)error) \ -NA_SELECTOR(- (BOOL)setData:(NSData *)data forKey:(NSData *)aKey writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions error:(NSError **)error) \ +NA_SELECTOR(- (BOOL)setData:(NSData *)data forKey:(NSData *)aKey error:(NSError * _Nullable *)error) \ +NA_SELECTOR(- (BOOL)setData:(NSData *)data forKey:(NSData *)aKey writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions error:(NSError * _Nullable *)error) \ \ -NA_SELECTOR(- (BOOL)mergeObject:(id)anObject forKey:(id)aKey error:(NSError **)error) \ -NA_SELECTOR(- (BOOL)mergeObject:(id)anObject forKey:(id)aKey writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions error:(NSError **)error) \ +NA_SELECTOR(- (BOOL)mergeObject:(id)anObject forKey:(id)aKey error:(NSError * _Nullable *)error) \ +NA_SELECTOR(- (BOOL)mergeObject:(id)anObject forKey:(id)aKey writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions error:(NSError * _Nullable *)error) \ \ -NA_SELECTOR(- (BOOL)mergeOperation:(NSString *)aMerge forKey:(id)aKey error:(NSError **)error) \ -NA_SELECTOR(- (BOOL)mergeOperation:(NSString *)aMerge forKey:(id)aKey writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions error:(NSError **)error) \ +NA_SELECTOR(- (BOOL)mergeOperation:(NSString *)aMerge forKey:(id)aKey error:(NSError * _Nullable *)error) \ +NA_SELECTOR(- (BOOL)mergeOperation:(NSString *)aMerge forKey:(id)aKey writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions error:(NSError * _Nullable *)error) \ \ -NA_SELECTOR(- (BOOL)mergeData:(NSData *)data forKey:(NSData *)aKey error:(NSError **)error) \ -NA_SELECTOR(- (BOOL)mergeData:(NSData *)data forKey:(NSData *)aKey writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions error:(NSError **)error) \ +NA_SELECTOR(- (BOOL)mergeData:(NSData *)data forKey:(NSData *)aKey error:(NSError * _Nullable *)error) \ +NA_SELECTOR(- (BOOL)mergeData:(NSData *)data forKey:(NSData *)aKey writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions error:(NSError * _Nullable *)error) \ \ -NA_SELECTOR(- (BOOL)deleteObjectForKey:(id)aKey error:(NSError **)error) \ -NA_SELECTOR(- (BOOL)deleteObjectForKey:(id)aKey writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions error:(NSError **)error) \ +NA_SELECTOR(- (BOOL)deleteObjectForKey:(id)aKey error:(NSError * _Nullable *)error) \ +NA_SELECTOR(- (BOOL)deleteObjectForKey:(id)aKey writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions error:(NSError * _Nullable *)error) \ \ -NA_SELECTOR(- (BOOL)deleteDataForKey:(NSData *)aKey error:(NSError **)error) \ -NA_SELECTOR(- (BOOL)deleteDataForKey:(NSData *)aKey writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions error:(NSError **)error) \ +NA_SELECTOR(- (BOOL)deleteDataForKey:(NSData *)aKey error:(NSError * _Nullable *)error) \ +NA_SELECTOR(- (BOOL)deleteDataForKey:(NSData *)aKey writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions error:(NSError * _Nullable *)error) \ #ifndef ROCKSDB_LITE #define SNAPSHOT_WRITE_BATCH_SELECTORS \ NA_SELECTOR(- (RocksDBWriteBatch *)writeBatch) \ -NA_SELECTOR(- (BOOL)performWriteBatch:(void (^)(RocksDBWriteBatch *batch, RocksDBWriteOptions *options))batch error:(NSError **)error) \ -NA_SELECTOR(- (BOOL)applyWriteBatch:(RocksDBWriteBatch *)writeBatch writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions error:(NSError **)error) \ +NA_SELECTOR(- (BOOL)performWriteBatch:(void (^)(RocksDBWriteBatch *batch, RocksDBWriteOptions *options))batch error:(NSError * _Nullable *)error) \ +NA_SELECTOR(- (BOOL)applyWriteBatch:(RocksDBWriteBatch *)writeBatch writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions error:(NSError * _Nullable *)error) \ \ NA_SELECTOR(- (RocksDBIndexedWriteBatch *)indexedWriteBatch) \ -NA_SELECTOR(- (BOOL)performIndexedWriteBatch:(void (^)(RocksDBIndexedWriteBatch *batch, RocksDBWriteOptions *options))batch error:(NSError **)error) \ +NA_SELECTOR(- (BOOL)performIndexedWriteBatch:(void (^)(RocksDBIndexedWriteBatch *batch, RocksDBWriteOptions *options))batch error:(NSError * _Nullable *)error) \ #endif diff --git a/Code/RocksDBStatistics.h b/Code/RocksDBStatistics.h index 58a90b4..b6960bb 100644 --- a/Code/RocksDBStatistics.h +++ b/Code/RocksDBStatistics.h @@ -9,6 +9,8 @@ #import #import "RocksDBStatisticsHistogram.h" +NS_ASSUME_NONNULL_BEGIN + /** @brief An enum for the Ticker Types. */ typedef NS_ENUM(uint32_t, RocksDBTickerType) { @@ -366,3 +368,5 @@ typedef NS_ENUM(uint32_t, RocksDBHistogramType) - (NSString *)description; @end + +NS_ASSUME_NONNULL_END diff --git a/Code/RocksDBStatistics.mm b/Code/RocksDBStatistics.mm index 441cae3..92dc04e 100644 --- a/Code/RocksDBStatistics.mm +++ b/Code/RocksDBStatistics.mm @@ -10,6 +10,8 @@ #import +#pragma mark - Informal Protocols + @interface RocksDBStatistics () { std::shared_ptr _statistics; @@ -17,6 +19,17 @@ @interface RocksDBStatistics () @property (nonatomic, assign) std::shared_ptr statistics; @end +@interface RocksDBStatisticsHistogram () +@property (nonatomic, copy) NSString *ticker; +@property (nonatomic, assign) double median; +@property (nonatomic, assign) double percentile95; +@property (nonatomic, assign) double percentile99; +@property (nonatomic, assign) double average; +@property (nonatomic, assign) double standardDeviation; +@end + +#pragma mark - Impl + @implementation RocksDBStatistics @synthesize statistics = _statistics; diff --git a/Code/RocksDBStatisticsHistogram.h b/Code/RocksDBStatisticsHistogram.h index 911d5bd..ae5aa57 100644 --- a/Code/RocksDBStatisticsHistogram.h +++ b/Code/RocksDBStatisticsHistogram.h @@ -8,25 +8,29 @@ #import +NS_ASSUME_NONNULL_BEGIN + /** @brief Holds histogram data. */ @interface RocksDBStatisticsHistogram : NSObject /** @brief The name of this histogram type. */ -@property (nonatomic, copy) NSString *ticker; +@property (nonatomic, copy, readonly) NSString *ticker; /** @brief The median value. */ -@property (nonatomic, assign) double median; +@property (nonatomic, assign, readonly) double median; /** @brief The percentile95 value. */ -@property (nonatomic, assign) double percentile95; +@property (nonatomic, assign, readonly) double percentile95; /** @brief The percentile99 value. */ -@property (nonatomic, assign) double percentile99; +@property (nonatomic, assign, readonly) double percentile99; /** @brief The average value. */ -@property (nonatomic, assign) double average; +@property (nonatomic, assign, readonly) double average; /** @brief The standard deviation value. */ -@property (nonatomic, assign) double standardDeviation; +@property (nonatomic, assign, readonly) double standardDeviation; @end + +NS_ASSUME_NONNULL_END diff --git a/Code/RocksDBStatisticsHistogram.mm b/Code/RocksDBStatisticsHistogram.mm index a83efba..cb76509 100644 --- a/Code/RocksDBStatisticsHistogram.mm +++ b/Code/RocksDBStatisticsHistogram.mm @@ -8,7 +8,17 @@ #import "RocksDBStatisticsHistogram.h" +@interface RocksDBStatisticsHistogram () +@property (nonatomic, copy) NSString *ticker; +@property (nonatomic, assign) double median; +@property (nonatomic, assign) double percentile95; +@property (nonatomic, assign) double percentile99; +@property (nonatomic, assign) double average; +@property (nonatomic, assign) double standardDeviation; +@end + @implementation RocksDBStatisticsHistogram +@synthesize ticker, median, percentile95, percentile99, average, standardDeviation; - (NSString *)description { diff --git a/Code/RocksDBThreadStatus.h b/Code/RocksDBThreadStatus.h index d71c944..2c84e6d 100644 --- a/Code/RocksDBThreadStatus.h +++ b/Code/RocksDBThreadStatus.h @@ -8,6 +8,8 @@ #import +NS_ASSUME_NONNULL_BEGIN + /** The type of a thread. */ typedef NS_ENUM(int, RocksDBThreadType) { @@ -49,23 +51,26 @@ typedef NS_ENUM(int, RocksDBStateType) @interface RocksDBThreadStatus : NSObject /** @brief An unique ID for the thread. */ -@property (nonatomic, assign) uint64_t threadId; +@property (nonatomic, assign, readonly) uint64_t threadId; /** @brief The type of the thread. */ -@property (nonatomic, assign) RocksDBThreadType threadType; +@property (nonatomic, assign, readonly) RocksDBThreadType threadType; /** @brief The name of the DB instance where the thread is currently involved with. It would be set to empty string if the thread does not involve in any DB operation. */ -@property (nonatomic, strong) NSString *databaseName; +@property (nonatomic, copy, readonly) NSString *databaseName; /** @brief The name of the column family where the thread is currently It would be set to empty string if the thread does not involve in any column family. */ -@property (nonatomic, strong) NSString *columnFamilyname; +@property (nonatomic, copy, readonly) NSString *columnFamilyname; /** @brief The operation (high-level action) that the current thread is involved. */ -@property (nonatomic, assign) RocksDBOperationType operationType; +@property (nonatomic, assign, readonly) RocksDBOperationType operationType; /** @brief The state (lower-level action) that the current thread is involved. */ -@property (nonatomic, assign) RocksDBStateType stateType; +@property (nonatomic, assign, readonly) RocksDBStateType stateType; @end + +NS_ASSUME_NONNULL_END + diff --git a/Code/RocksDBThreadStatus.mm b/Code/RocksDBThreadStatus.mm index b8c9b4d..9521d29 100644 --- a/Code/RocksDBThreadStatus.mm +++ b/Code/RocksDBThreadStatus.mm @@ -8,6 +8,15 @@ #import "RocksDBThreadStatus.h" -@implementation RocksDBThreadStatus +@interface RocksDBThreadStatus () +@property (nonatomic, assign) uint64_t threadId; +@property (nonatomic, assign) RocksDBThreadType threadType; +@property (nonatomic, copy) NSString *databaseName; +@property (nonatomic, copy) NSString *columnFamilyname; +@property (nonatomic, assign) RocksDBOperationType operationType; +@property (nonatomic, assign) RocksDBStateType stateType; +@end +@implementation RocksDBThreadStatus +@synthesize threadId, threadType, databaseName, columnFamilyname, operationType, stateType; @end diff --git a/Code/RocksDBTypes.h b/Code/RocksDBTypes.h index 4807a49..d464584 100644 --- a/Code/RocksDBTypes.h +++ b/Code/RocksDBTypes.h @@ -8,6 +8,8 @@ #import +NS_ASSUME_NONNULL_BEGIN + /** The predefined supported types */ typedef NS_ENUM(NSUInteger, RocksDBType) { @@ -55,3 +57,5 @@ typedef NS_ENUM(NSUInteger, RocksDBType) + (id (^)(id, NSData *))valueDecoderForType:(RocksDBType)type; @end + +NS_ASSUME_NONNULL_END diff --git a/Code/RocksDBWriteBatch.h b/Code/RocksDBWriteBatch.h index 46070f2..0616fd4 100644 --- a/Code/RocksDBWriteBatch.h +++ b/Code/RocksDBWriteBatch.h @@ -9,6 +9,8 @@ #import #import "RocksDBEncodingOptions.h" +NS_ASSUME_NONNULL_BEGIN + @class RocksDBColumnFamily; /** @@ -45,7 +47,7 @@ @param aKey The key for object. @param columnFamily The column family where data should be written. */ -- (void)setObject:(id)anObject forKey:(id)aKey inColumnFamily:(RocksDBColumnFamily *)columnFamily; +- (void)setObject:(id)anObject forKey:(id)aKey inColumnFamily:(nullable RocksDBColumnFamily *)columnFamily; /** Stores the given key-data pair for the given Column Family into the Write Batch. @@ -54,7 +56,7 @@ @param aKey The key for object. @param columnFamily The column family where data should be written. */ -- (void)setData:(NSData *)data forKey:(NSData *)aKey inColumnFamily:(RocksDBColumnFamily *)columnFamily; +- (void)setData:(NSData *)data forKey:(NSData *)aKey inColumnFamily:(nullable RocksDBColumnFamily *)columnFamily; /** Perform the merge operation in the Write Batch. @@ -71,7 +73,7 @@ @param aKey The key for the merge. @param columnFamily The column family where data should be merged. */ -- (void)mergeOperation:(NSString *)aMerge forKey:(id)aKey inColumnFamily:(RocksDBColumnFamily *)columnFamily; +- (void)mergeOperation:(NSString *)aMerge forKey:(id)aKey inColumnFamily:(nullable RocksDBColumnFamily *)columnFamily; /** Merges the given key-object pair into the Write Batch. @@ -97,7 +99,7 @@ @param aKey The key for object. @param columnFamily The column family where data should be written. */ -- (void)mergeObject:(id)anObject forKey:(id)aKey inColumnFamily:(RocksDBColumnFamily *)columnFamily; +- (void)mergeObject:(id)anObject forKey:(id)aKey inColumnFamily:(nullable RocksDBColumnFamily *)columnFamily; /** Merges the given key-data pair for the given Column Family into the Write Batch. @@ -106,7 +108,7 @@ @param aKey The key for object. @param columnFamily The column family where data should be written. */ -- (void)mergeData:(NSData *)data forKey:(NSData *)aKey inColumnFamily:(RocksDBColumnFamily *)columnFamily; +- (void)mergeData:(NSData *)data forKey:(NSData *)aKey inColumnFamily:(nullable RocksDBColumnFamily *)columnFamily; /** Deletes the object for the given key from this Write Batch. @@ -129,7 +131,7 @@ @param aKey The key for object. @param columnFamily The column family from which the data should be deleted. */ -- (void)deleteObjectForKey:(id)aKey inColumnFamily:(RocksDBColumnFamily *)columnFamily; +- (void)deleteObjectForKey:(id)aKey inColumnFamily:(nullable RocksDBColumnFamily *)columnFamily; /** Deletes the object for the given key in the given Column Family from the Write Batch. @@ -138,7 +140,7 @@ @param aKey The key for object. @param columnFamily The column family from which the data should be deleted. */ -- (void)deleteDataForKey:(NSData *)aKey inColumnFamily:(RocksDBColumnFamily *)columnFamily; +- (void)deleteDataForKey:(NSData *)aKey inColumnFamily:(nullable RocksDBColumnFamily *)columnFamily; /** Append a blob of arbitrary size to the records in this batch. Blobs, puts, deletes, and merges @@ -162,3 +164,5 @@ - (size_t)dataSize; @end + +NS_ASSUME_NONNULL_END diff --git a/Code/RocksDBWriteBatchIterator.h b/Code/RocksDBWriteBatchIterator.h index b1b3fd3..6c22a1d 100644 --- a/Code/RocksDBWriteBatchIterator.h +++ b/Code/RocksDBWriteBatchIterator.h @@ -8,6 +8,7 @@ #import "RocksDBIterator.h" +NS_ASSUME_NONNULL_BEGIN typedef NS_ENUM(NSUInteger, RocksDBWriteBatchEntryType) { @@ -94,3 +95,5 @@ typedef NS_ENUM(NSUInteger, RocksDBWriteBatchEntryType) - (void)reverseEnumerateEntriesUsingBlock:(void (^)(RocksDBWriteBatchEntry *entry, BOOL *stop))block; @end + +NS_ASSUME_NONNULL_END diff --git a/Tests/RocksDBBackupTests.swift b/Tests/RocksDBBackupTests.swift index 0f39370..5818651 100644 --- a/Tests/RocksDBBackupTests.swift +++ b/Tests/RocksDBBackupTests.swift @@ -169,11 +169,12 @@ class RocksDBBackupTests : RocksDBTests { let backupRocks = RocksDB.databaseAtPath(restorePath, andDBOptions: nil) - XCTAssertEqual(try! backupRocks.dataForKey(Data("key 1")), Data("value 1")) - XCTAssertEqual(try! backupRocks.dataForKey(Data("key 2")), Data("value 2")) - XCTAssertEqual(try! backupRocks.dataForKey(Data("key 3")), Data("value 3")) + XCTAssertNotNil(backupRocks) + XCTAssertEqual(try! backupRocks?.dataForKey(Data("key 1")), Data("value 1")) + XCTAssertEqual(try! backupRocks?.dataForKey(Data("key 2")), Data("value 2")) + XCTAssertEqual(try! backupRocks?.dataForKey(Data("key 3")), Data("value 3")) - backupRocks.close() + backupRocks?.close() } func testSwift_Backup_Restore_Specific() { @@ -198,21 +199,22 @@ class RocksDBBackupTests : RocksDBTests { var backupRocks = RocksDB.databaseAtPath(restorePath, andDBOptions: nil) - XCTAssertEqual(try! backupRocks.dataForKey(Data("key 1")), Data("value 1")) + XCTAssertEqual(try! backupRocks?.dataForKey(Data("key 1")), Data("value 1")) - XCTAssertNil(try? backupRocks.dataForKey(Data("key 2"))) - XCTAssertNil(try? backupRocks.dataForKey(Data("key 3"))) + XCTAssertNil(try? backupRocks?.dataForKey(Data("key 2"))) + XCTAssertNil(try? backupRocks?.dataForKey(Data("key 3"))) - backupRocks.close() + backupRocks?.close() try! backupEngine.restoreBackupWithId(2, toDestinationPath: self.restorePath) backupRocks = RocksDB.databaseAtPath(restorePath, andDBOptions: nil) - XCTAssertEqual(try! backupRocks.dataForKey(Data("key 1")), Data("value 1")) - XCTAssertEqual(try! backupRocks.dataForKey(Data("key 2")), Data("value 2")) - XCTAssertNil(try? backupRocks.dataForKey(Data("key 3"))) + XCTAssertNotNil(backupRocks) + XCTAssertEqual(try! backupRocks?.dataForKey(Data("key 1")), Data("value 1")) + XCTAssertEqual(try! backupRocks?.dataForKey(Data("key 2")), Data("value 2")) + XCTAssertNil(try? backupRocks?.dataForKey(Data("key 3"))) - backupRocks.close() + backupRocks?.close() } } diff --git a/Tests/RocksDBColumnFamilyTests.swift b/Tests/RocksDBColumnFamilyTests.swift index 341d88b..859ab6f 100644 --- a/Tests/RocksDBColumnFamilyTests.swift +++ b/Tests/RocksDBColumnFamilyTests.swift @@ -30,7 +30,9 @@ class RocksDBColumnFamilyTests : RocksDBTests { }) let columnFamily = rocks.createColumnFamilyWithName("new_cf", andOptions: nil) - columnFamily.close() + + XCTAssertNotNil(columnFamily) + columnFamily?.close() rocks.close() let names = RocksDB.listColumnFamiliesInDatabaseAtPath(self.path) @@ -46,8 +48,9 @@ class RocksDBColumnFamilyTests : RocksDBTests { }) let columnFamily = rocks.createColumnFamilyWithName("new_cf", andOptions: nil) - columnFamily.drop() - columnFamily.close() + XCTAssertNotNil(columnFamily) + columnFamily?.drop() + columnFamily?.close() rocks.close() let names = RocksDB.listColumnFamiliesInDatabaseAtPath(self.path) @@ -66,8 +69,8 @@ class RocksDBColumnFamilyTests : RocksDBTests { (options) in options.comparator = RocksDBComparator.comaparatorWithType(.BytewiseDescending) }) - - columnFamily.close() + XCTAssertNotNil(columnFamily) + columnFamily?.close() rocks.close() let names = RocksDB.listColumnFamiliesInDatabaseAtPath(self.path) @@ -114,7 +117,8 @@ class RocksDBColumnFamilyTests : RocksDBTests { options.comparator = RocksDBComparator.comaparatorWithType(.BytewiseDescending) }) - columnFamily.close() + XCTAssertNotNil(columnFamily) + columnFamily?.close() rocks.close() let names = RocksDB.listColumnFamiliesInDatabaseAtPath(self.path) @@ -148,12 +152,11 @@ class RocksDBColumnFamilyTests : RocksDBTests { try! rocks.setData(Data("df_value"), forKey: Data("df_key2")) let columnFamily = rocks.createColumnFamilyWithName("new_cf", andOptions:nil) + XCTAssertNotNil(columnFamily) + try! columnFamily?.setData(Data("cf_value"), forKey: Data("cf_key1")) + try! columnFamily?.setData(Data("cf_value"), forKey: Data("cf_key2")) - try! columnFamily.setData(Data("cf_value"), forKey: Data("cf_key1")) - try! columnFamily.setData(Data("cf_value"), forKey: Data("cf_key2")) - - - columnFamily.close() + columnFamily?.close() rocks.close() let descriptor = RocksDBColumnFamilyDescriptor() diff --git a/Tests/RocksDBMergeOperatorTests.swift b/Tests/RocksDBMergeOperatorTests.swift index 9dcf6ea..818846f 100644 --- a/Tests/RocksDBMergeOperatorTests.swift +++ b/Tests/RocksDBMergeOperatorTests.swift @@ -12,9 +12,9 @@ import ObjectiveRocks class RocksDBMergeOperatorTests : RocksDBTests { func testSwift_AssociativeMergeOperator() { - let mergeOp = RocksDBMergeOperator(name: "operator") { (key, existing, value) -> AnyObject! in + let mergeOp = RocksDBMergeOperator(name: "operator") { (key, existing, value) -> AnyObject in var prev: UInt64 = 0 - if (existing != nil) { + if let existing = existing { existing.getBytes(&prev, length: sizeof(UInt64)) } var plus: UInt64 = 0 @@ -41,9 +41,9 @@ class RocksDBMergeOperatorTests : RocksDBTests { } func testSwift_AssociativeMergeOperator_NumberAdd_Encoded() { - let mergeOp = RocksDBMergeOperator(name: "operator") { (key, existing, value) -> AnyObject! in + let mergeOp = RocksDBMergeOperator(name: "operator") { (key, existing, value) -> AnyObject in var val = value.floatValue - if (existing != nil) { + if let existing = existing { val = val + existing.floatValue } let result: NSNumber = NSNumber(float: val) @@ -81,13 +81,13 @@ class RocksDBMergeOperatorTests : RocksDBTests { } func testSwift_AssociativeMergeOperator_DictionaryPut_Encoded() { - let mergeOp = RocksDBMergeOperator(name: "operator") { (key, existing, value) -> AnyObject! in - if (existing != nil) { - existing.addEntriesFromDictionary(value as! [NSObject : AnyObject]) - return existing - } else { + let mergeOp = RocksDBMergeOperator(name: "operator") { (key, existing, value) -> AnyObject in + guard let existing = existing else { return value } + + existing.addEntriesFromDictionary(value as! [NSObject : AnyObject]) + return existing } rocks = RocksDB.databaseAtPath(self.path, andDBOptions: { (options) -> Void in diff --git a/Tests/RocksDBWriteBatchTests.swift b/Tests/RocksDBWriteBatchTests.swift index 7e8f441..321e641 100644 --- a/Tests/RocksDBWriteBatchTests.swift +++ b/Tests/RocksDBWriteBatchTests.swift @@ -111,7 +111,7 @@ class RocksDBWriteBatchTests : RocksDBTests { func testSwift_WriteBatch_Apply_MergeOps() { rocks = RocksDB.databaseAtPath(self.path, andDBOptions: { (options) -> Void in options.createIfMissing = true - options.mergeOperator = RocksDBMergeOperator(name: "merge", andBlock: { (key, existing, value) -> AnyObject! in + options.mergeOperator = RocksDBMergeOperator(name: "merge", andBlock: { (key, existing, value) -> AnyObject in let result: NSMutableString = "" if let existingValue = existing as? NSData { result.setString(Str(existingValue) as String) From 2aa3b63cf8c400578a65943fb2e97d29c95cb405 Mon Sep 17 00:00:00 2001 From: iska Date: Sun, 24 Apr 2016 22:59:11 +0200 Subject: [PATCH 60/76] Add wrapper class for CompactRangeOptions --- Code/RocksDBCompactRangeOptions+Private.h | 24 +++++++++++++++++++++++ Code/RocksDBCompactRangeOptions.h | 13 ++++++++++++ Code/RocksDBCompactRangeOptions.mm | 21 ++++++++++++++++++++ ObjectiveRocks.xcodeproj/project.pbxproj | 18 +++++++++++++++++ 4 files changed, 76 insertions(+) create mode 100644 Code/RocksDBCompactRangeOptions+Private.h create mode 100644 Code/RocksDBCompactRangeOptions.h create mode 100644 Code/RocksDBCompactRangeOptions.mm diff --git a/Code/RocksDBCompactRangeOptions+Private.h b/Code/RocksDBCompactRangeOptions+Private.h new file mode 100644 index 0000000..d5e5a40 --- /dev/null +++ b/Code/RocksDBCompactRangeOptions+Private.h @@ -0,0 +1,24 @@ +// +// RocksDBCompactRangeOptions+Private.h +// ObjectiveRocks +// +// Created by Iska on 24/04/16. +// Copyright © 2016 BrainCookie. All rights reserved. +// + +#import "RocksDBCompactRangeOptions.h" + +namespace rocksdb { + class CompactRangeOptions; +} + +/** + This category is intended to hide all C++ types from the public interface in order to + maintain a pure Objective-C API for Swift compatibility. + */ +@interface RocksDBCompactRangeOptions (Private) + +/** @brief The underlying rocksdb::CompactRangeOptions associated with this instance. */ +@property (nonatomic, assign) rocksdb::CompactRangeOptions options; + +@end diff --git a/Code/RocksDBCompactRangeOptions.h b/Code/RocksDBCompactRangeOptions.h new file mode 100644 index 0000000..b95a0b9 --- /dev/null +++ b/Code/RocksDBCompactRangeOptions.h @@ -0,0 +1,13 @@ +// +// RocksDBCompactRangeOptions.h +// ObjectiveRocks +// +// Created by Iska on 24/04/16. +// Copyright © 2016 BrainCookie. All rights reserved. +// + +#import + +@interface RocksDBCompactRangeOptions : NSObject + +@end diff --git a/Code/RocksDBCompactRangeOptions.mm b/Code/RocksDBCompactRangeOptions.mm new file mode 100644 index 0000000..3996af6 --- /dev/null +++ b/Code/RocksDBCompactRangeOptions.mm @@ -0,0 +1,21 @@ +// +// RocksDBCompactRangeOptions.m +// ObjectiveRocks +// +// Created by Iska on 24/04/16. +// Copyright © 2016 BrainCookie. All rights reserved. +// + +#import "RocksDBCompactRangeOptions.h" + +#import + +@interface RocksDBCompactRangeOptions () +{ + rocksdb::CompactRangeOptions _options; +} +@end + +@implementation RocksDBCompactRangeOptions + +@end diff --git a/ObjectiveRocks.xcodeproj/project.pbxproj b/ObjectiveRocks.xcodeproj/project.pbxproj index 2831215..8a50938 100644 --- a/ObjectiveRocks.xcodeproj/project.pbxproj +++ b/ObjectiveRocks.xcodeproj/project.pbxproj @@ -202,6 +202,12 @@ 62662E961B8FCBA0008B4EF5 /* RocksDBIndexedWriteBatch.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62662E951B8FCBA0008B4EF5 /* RocksDBIndexedWriteBatch.swift */; }; 62662E971B8FCBA0008B4EF5 /* RocksDBIndexedWriteBatch.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62662E951B8FCBA0008B4EF5 /* RocksDBIndexedWriteBatch.swift */; }; 62685CB91A2E600A009401B1 /* RocksDBWriteBatchTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62685CB81A2E600A009401B1 /* RocksDBWriteBatchTests.mm */; }; + 6273A50E1D0C646C00CF8BF1 /* RocksDBCompactRangeOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 6273A50C1D0C646C00CF8BF1 /* RocksDBCompactRangeOptions.h */; }; + 6273A50F1D0C646C00CF8BF1 /* RocksDBCompactRangeOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 6273A50C1D0C646C00CF8BF1 /* RocksDBCompactRangeOptions.h */; }; + 6273A5101D0C646C00CF8BF1 /* RocksDBCompactRangeOptions.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6273A50D1D0C646C00CF8BF1 /* RocksDBCompactRangeOptions.mm */; }; + 6273A5111D0C646C00CF8BF1 /* RocksDBCompactRangeOptions.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6273A50D1D0C646C00CF8BF1 /* RocksDBCompactRangeOptions.mm */; }; + 6273A5131D0C647E00CF8BF1 /* RocksDBCompactRangeOptions+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 6273A5121D0C647E00CF8BF1 /* RocksDBCompactRangeOptions+Private.h */; }; + 6273A5141D0C647E00CF8BF1 /* RocksDBCompactRangeOptions+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 6273A5121D0C647E00CF8BF1 /* RocksDBCompactRangeOptions+Private.h */; }; 628B4AF61D03125900E2D828 /* auto_roll_logger.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47641D03125800E2D828 /* auto_roll_logger.cc */; }; 628B4AF71D03125900E2D828 /* auto_roll_logger.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47641D03125800E2D828 /* auto_roll_logger.cc */; }; 628B4AF81D03125900E2D828 /* auto_roll_logger.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47651D03125800E2D828 /* auto_roll_logger.h */; }; @@ -1117,6 +1123,9 @@ 62662E921B8FCA8C008B4EF5 /* RocksDBIndexedWriteBatchTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RocksDBIndexedWriteBatchTests.m; sourceTree = ""; }; 62662E951B8FCBA0008B4EF5 /* RocksDBIndexedWriteBatch.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RocksDBIndexedWriteBatch.swift; sourceTree = ""; }; 62685CB81A2E600A009401B1 /* RocksDBWriteBatchTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RocksDBWriteBatchTests.mm; sourceTree = ""; }; + 6273A50C1D0C646C00CF8BF1 /* RocksDBCompactRangeOptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RocksDBCompactRangeOptions.h; sourceTree = ""; }; + 6273A50D1D0C646C00CF8BF1 /* RocksDBCompactRangeOptions.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RocksDBCompactRangeOptions.mm; sourceTree = ""; }; + 6273A5121D0C647E00CF8BF1 /* RocksDBCompactRangeOptions+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "RocksDBCompactRangeOptions+Private.h"; sourceTree = ""; }; 627FBE761A61E0AA0038696A /* RocksDBColumnFamilyMetadataTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RocksDBColumnFamilyMetadataTests.mm; sourceTree = ""; }; 628B0CE81A1C104D0099C39B /* RocksDBError.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RocksDBError.h; sourceTree = ""; }; 628B0CE91A1C104D0099C39B /* RocksDBError.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RocksDBError.mm; sourceTree = ""; }; @@ -1670,6 +1679,7 @@ children = ( 6221B78A1A62970800D28BF5 /* RocksDB+Private.h */, 62F9D8A51B86AE8900C65860 /* RocksDBOptions+Private.h */, + 6273A5121D0C647E00CF8BF1 /* RocksDBCompactRangeOptions+Private.h */, 6221B78E1A62973500D28BF5 /* RocksDBColumnFamily+Private.h */, 6221B7921A62976F00D28BF5 /* RocksDBColumnFamilyMetaData+Private.h */, 6221B7961A6298AD00D28BF5 /* RocksDBIterator+Private.h */, @@ -1695,6 +1705,8 @@ 6232B7341A1E80F900B14535 /* RocksDBWriteOptions.mm */, 6232B7361A1E860700B14535 /* RocksDBReadOptions.h */, 6232B7371A1E860700B14535 /* RocksDBReadOptions.mm */, + 6273A50C1D0C646C00CF8BF1 /* RocksDBCompactRangeOptions.h */, + 6273A50D1D0C646C00CF8BF1 /* RocksDBCompactRangeOptions.mm */, 623147581A5AE1720019D14A /* Env */, 62F3ED521A57176200EBFEBF /* Table */, 625F8F261A59D78E007796BA /* Mem Table */, @@ -2685,6 +2697,7 @@ 624203E11BED64F80043DD6F /* RocksDBBlockBasedTableOptions.h in Headers */, 624203E21BED64F90043DD6F /* RocksDBPlainTableOptions.h in Headers */, 628B4C701D03125900E2D828 /* listener.h in Headers */, + 6273A50E1D0C646C00CF8BF1 /* RocksDBCompactRangeOptions.h in Headers */, 628B4EF21D03125A00E2D828 /* FbsonStream.h in Headers */, 628B4B481D03125900E2D828 /* db_info_dumper.h in Headers */, 628B50C81D03125A00E2D828 /* transaction_base.h in Headers */, @@ -2841,6 +2854,7 @@ 628B4CC41D03125900E2D828 /* utility_db.h in Headers */, 624203F91BED650F0043DD6F /* RocksDBCallbackMergeOperator.h in Headers */, 628B4C7C1D03125900E2D828 /* perf_level.h in Headers */, + 6273A5131D0C647E00CF8BF1 /* RocksDBCompactRangeOptions+Private.h in Headers */, 624203FA1BED650F0043DD6F /* RocksDBCallbackSliceTransform.h in Headers */, 628B4ECA1D03125A00E2D828 /* plain_table_factory.h in Headers */, 628B4C6A1D03125900E2D828 /* iostats_context.h in Headers */, @@ -2967,10 +2981,12 @@ 628B50171D03125A00E2D828 /* random.h in Headers */, 624F5DB41BEE41F600497FEF /* RocksDBEnv.h in Headers */, 628B50D11D03125A00E2D828 /* transaction_db_mutex_impl.h in Headers */, + 6273A5141D0C647E00CF8BF1 /* RocksDBCompactRangeOptions+Private.h in Headers */, 628B50951D03125A00E2D828 /* stringappend.h in Headers */, 624F5DB61BEE41F600497FEF /* RocksDBTableFactory.h in Headers */, 628B4B491D03125900E2D828 /* db_info_dumper.h in Headers */, 628B4C8B1D03125900E2D828 /* sst_file_writer.h in Headers */, + 6273A50F1D0C646C00CF8BF1 /* RocksDBCompactRangeOptions.h in Headers */, 628B4C5B1D03125900E2D828 /* db.h in Headers */, 628B4CCB1D03125900E2D828 /* wal_filter.h in Headers */, 628B4CC11D03125900E2D828 /* transaction_db.h in Headers */, @@ -3342,6 +3358,7 @@ 628B50CE1D03125A00E2D828 /* transaction_db_mutex_impl.cc in Sources */, 624204011BED65250043DD6F /* RocksDBColumnFamilyMetadata.mm in Sources */, 624204021BED65250043DD6F /* RocksDBIterator.mm in Sources */, + 6273A5101D0C646C00CF8BF1 /* RocksDBCompactRangeOptions.mm in Sources */, 628B4FB81D03125A00E2D828 /* filter_policy.cc in Sources */, 624204031BED65250043DD6F /* RocksDBPrefixExtractor.mm in Sources */, 628B4FF81D03125A00E2D828 /* options_builder.cc in Sources */, @@ -3570,6 +3587,7 @@ 628B4ED11D03125A00E2D828 /* plain_table_key_coding.cc in Sources */, 628B4B3F1D03125900E2D828 /* db_impl_debug.cc in Sources */, 628B50571D03125A00E2D828 /* thread_status_util.cc in Sources */, + 6273A5111D0C646C00CF8BF1 /* RocksDBCompactRangeOptions.mm in Sources */, 628B506D1D03125A00E2D828 /* remove_emptyvalue_compactionfilter.cc in Sources */, 628B50BD1D03125A00E2D828 /* optimistic_transaction_db_impl.cc in Sources */, 628B504B1D03125A00E2D828 /* thread_posix.cc in Sources */, From 9988f165690a063d2b20f32f4b465df6b7bfa25e Mon Sep 17 00:00:00 2001 From: iska Date: Sun, 24 Apr 2016 22:59:38 +0200 Subject: [PATCH 61/76] Add implementation for the compact-range operation --- Code/RocksDB.h | 24 ++++++++++ Code/RocksDB.mm | 29 ++++++++++++ Code/RocksDBCompactRangeOptions.h | 34 ++++++++++++++ Code/RocksDBCompactRangeOptions.mm | 57 ++++++++++++++++++++++++ Code/RocksDBRange.h | 4 +- ObjectiveRocks.xcodeproj/project.pbxproj | 8 ++-- 6 files changed, 150 insertions(+), 6 deletions(-) diff --git a/Code/RocksDB.h b/Code/RocksDB.h index 727adbf..b2de566 100644 --- a/Code/RocksDB.h +++ b/Code/RocksDB.h @@ -7,10 +7,13 @@ // #import + #import "RocksDBColumnFamilyDescriptor.h" #import "RocksDBOptions.h" #import "RocksDBReadOptions.h" #import "RocksDBWriteOptions.h" +#import "RocksDBCompactRangeOptions.h" + #import "RocksDBWriteBatch.h" #import "RocksDBIterator.h" @@ -639,6 +642,27 @@ NS_ASSUME_NONNULL_BEGIN */ - (RocksDBSnapshot *)snapshotWithReadOptions:(nullable void (^)(RocksDBReadOptions *readOptions))readOptions; +#pragma mark - Compaction +///-------------------------------- +/// @name Database Compaction +///-------------------------------- + +/** + Compacts the underlying storage for the specified key range [begin, end]. + + A `nil` start key is treated as a key before all keys, and a `nil` end key is treated as a key + after all keys in the database. Thus, in order to compact the entire database, the `RocksDBOpenRange` can be used. + + @param range The key range for the compcation. + @param options The options for the compact range operation. + @param error If an error occurs, upon return contains an `NSError` object that describes the problem. + @return `YES` if the operation succeeded, `NO` otherwise. + + @see RocksDBKeyRange + @see RocksDBCompactRangeOptions + */ +- (BOOL)compactRange:(RocksDBKeyRange *)range withOptions:(nullable void (^)(RocksDBCompactRangeOptions *options))options error:(NSError * _Nullable *)error; + @end NS_ASSUME_NONNULL_END diff --git a/Code/RocksDB.mm b/Code/RocksDB.mm index 4530ec9..7e45d80 100644 --- a/Code/RocksDB.mm +++ b/Code/RocksDB.mm @@ -18,6 +18,9 @@ #import "RocksDBReadOptions.h" #import "RocksDBWriteOptions.h" + +#import "RocksDBCompactRangeOptions+Private.h" + #import "RocksDBIterator+Private.h" #import "RocksDBWriteBatch+Private.h" @@ -726,4 +729,30 @@ - (RocksDBSnapshot *)snapshotWithReadOptions:(void (^)(RocksDBReadOptions *readO return snapshot; } +#pragma mark - Compaction + +- (BOOL)compactRange:(RocksDBKeyRange *)range + withOptions:(void (^)(RocksDBCompactRangeOptions *options))optionsBlock + error:(NSError * __autoreleasing *)error +{ + RocksDBCompactRangeOptions *rangeOptions = [RocksDBCompactRangeOptions new]; + if (optionsBlock) { + optionsBlock(rangeOptions); + } + + rocksdb::Slice startSlice = SliceFromKey(range.start, (RocksDBEncodingOptions *)_options, nil); + rocksdb::Slice endSlice = SliceFromKey(range.end, (RocksDBEncodingOptions *)_options, nil); + + rocksdb::Status status = _db->CompactRange(rangeOptions.options, _columnFamily, &startSlice, &endSlice); + + if (!status.ok()) { + NSError *temp = [RocksDBError errorWithRocksStatus:status]; + if (error && *error == nil) { + *error = temp; + } + return NO; + } + return YES; +} + @end diff --git a/Code/RocksDBCompactRangeOptions.h b/Code/RocksDBCompactRangeOptions.h index b95a0b9..7f78265 100644 --- a/Code/RocksDBCompactRangeOptions.h +++ b/Code/RocksDBCompactRangeOptions.h @@ -8,6 +8,40 @@ #import +NS_ASSUME_NONNULL_BEGIN + +/** + Determines the behavior for compacting the bottommost level. + */ +typedef NS_ENUM(NSUInteger, RocksDBBottommostLevelCompaction) +{ + RocksDBBottommostLevelCompactionSkip, + RocksDBBottommostLevelCompactionIfHaveCompactionFilter, + RocksDBBottommostLevelCompactionForce, +}; + +/** + The options used for range compactions. + */ @interface RocksDBCompactRangeOptions : NSObject +/** + If true, compacted files will be moved to the minimum level capable + of holding the data or given level (specified non-negative targetLevel). +*/ +@property (nonatomic, assign) BOOL changeLevel; + +/** + If change_level is true and target_level have non-negative value, compacted + files will be moved to target_level. +*/ +@property (nonatomic, assign) int targetLevel; + +/** + By default level based compaction will only compact the bottommost level if there is a compaction filter. +*/ +@property (nonatomic, assign) RocksDBBottommostLevelCompaction bottommostLevelCompaction; + @end + +NS_ASSUME_NONNULL_END diff --git a/Code/RocksDBCompactRangeOptions.mm b/Code/RocksDBCompactRangeOptions.mm index 3996af6..25d1b01 100644 --- a/Code/RocksDBCompactRangeOptions.mm +++ b/Code/RocksDBCompactRangeOptions.mm @@ -18,4 +18,61 @@ @interface RocksDBCompactRangeOptions () @implementation RocksDBCompactRangeOptions +#pragma mark - Lifecycle + +- (instancetype)init +{ + self = [super init]; + if (self) { + _options = rocksdb::CompactRangeOptions(); + } + return self; +} + +#pragma mark - Options + +- (BOOL)changeLevel +{ + return _options.change_level; +} + +- (void)setChangeLevel:(BOOL)changeLevel +{ + _options.change_level = changeLevel; +} + +- (int)targetLevel +{ + return _options.target_level; +} + +- (void)setTargetLevel:(int)targetLevel +{ + _options.target_level = targetLevel; +} + +- (RocksDBBottommostLevelCompaction)bottommostLevelCompaction +{ + switch (_options.bottommost_level_compaction) { + case rocksdb::BottommostLevelCompaction::kSkip: + return RocksDBBottommostLevelCompactionSkip; + case rocksdb::BottommostLevelCompaction::kIfHaveCompactionFilter: + return RocksDBBottommostLevelCompactionIfHaveCompactionFilter; + case rocksdb::BottommostLevelCompaction::kForce: + return RocksDBBottommostLevelCompactionForce; + } +} + +- (void)setBottommostLevelCompaction:(RocksDBBottommostLevelCompaction)bottommostLevelCompaction +{ + switch (bottommostLevelCompaction) { + case RocksDBBottommostLevelCompactionSkip: + _options.bottommost_level_compaction = rocksdb::BottommostLevelCompaction::kSkip; + case RocksDBBottommostLevelCompactionIfHaveCompactionFilter: + _options.bottommost_level_compaction = rocksdb::BottommostLevelCompaction::kIfHaveCompactionFilter; + case RocksDBBottommostLevelCompactionForce: + _options.bottommost_level_compaction = rocksdb::BottommostLevelCompaction::kForce; + } +} + @end diff --git a/Code/RocksDBRange.h b/Code/RocksDBRange.h index a9a4a7f..9d6e24f 100644 --- a/Code/RocksDBRange.h +++ b/Code/RocksDBRange.h @@ -15,9 +15,9 @@ NS_ASSUME_NONNULL_BEGIN */ @interface RocksDBKeyRange : NSObject -/* @breif Start key, inclusive */ +/* @breif Start key */ @property (nonatomic, strong, nullable) id start; -/* @breif End key, exclusive */ +/* @breif End key */ @property (nonatomic, strong, nullable) id end; /** diff --git a/ObjectiveRocks.xcodeproj/project.pbxproj b/ObjectiveRocks.xcodeproj/project.pbxproj index 8a50938..64a930c 100644 --- a/ObjectiveRocks.xcodeproj/project.pbxproj +++ b/ObjectiveRocks.xcodeproj/project.pbxproj @@ -202,12 +202,12 @@ 62662E961B8FCBA0008B4EF5 /* RocksDBIndexedWriteBatch.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62662E951B8FCBA0008B4EF5 /* RocksDBIndexedWriteBatch.swift */; }; 62662E971B8FCBA0008B4EF5 /* RocksDBIndexedWriteBatch.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62662E951B8FCBA0008B4EF5 /* RocksDBIndexedWriteBatch.swift */; }; 62685CB91A2E600A009401B1 /* RocksDBWriteBatchTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 62685CB81A2E600A009401B1 /* RocksDBWriteBatchTests.mm */; }; - 6273A50E1D0C646C00CF8BF1 /* RocksDBCompactRangeOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 6273A50C1D0C646C00CF8BF1 /* RocksDBCompactRangeOptions.h */; }; - 6273A50F1D0C646C00CF8BF1 /* RocksDBCompactRangeOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 6273A50C1D0C646C00CF8BF1 /* RocksDBCompactRangeOptions.h */; }; + 6273A50E1D0C646C00CF8BF1 /* RocksDBCompactRangeOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 6273A50C1D0C646C00CF8BF1 /* RocksDBCompactRangeOptions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6273A50F1D0C646C00CF8BF1 /* RocksDBCompactRangeOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 6273A50C1D0C646C00CF8BF1 /* RocksDBCompactRangeOptions.h */; settings = {ATTRIBUTES = (Public, ); }; }; 6273A5101D0C646C00CF8BF1 /* RocksDBCompactRangeOptions.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6273A50D1D0C646C00CF8BF1 /* RocksDBCompactRangeOptions.mm */; }; 6273A5111D0C646C00CF8BF1 /* RocksDBCompactRangeOptions.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6273A50D1D0C646C00CF8BF1 /* RocksDBCompactRangeOptions.mm */; }; - 6273A5131D0C647E00CF8BF1 /* RocksDBCompactRangeOptions+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 6273A5121D0C647E00CF8BF1 /* RocksDBCompactRangeOptions+Private.h */; }; - 6273A5141D0C647E00CF8BF1 /* RocksDBCompactRangeOptions+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 6273A5121D0C647E00CF8BF1 /* RocksDBCompactRangeOptions+Private.h */; }; + 6273A5131D0C647E00CF8BF1 /* RocksDBCompactRangeOptions+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 6273A5121D0C647E00CF8BF1 /* RocksDBCompactRangeOptions+Private.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 6273A5141D0C647E00CF8BF1 /* RocksDBCompactRangeOptions+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 6273A5121D0C647E00CF8BF1 /* RocksDBCompactRangeOptions+Private.h */; settings = {ATTRIBUTES = (Private, ); }; }; 628B4AF61D03125900E2D828 /* auto_roll_logger.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47641D03125800E2D828 /* auto_roll_logger.cc */; }; 628B4AF71D03125900E2D828 /* auto_roll_logger.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B47641D03125800E2D828 /* auto_roll_logger.cc */; }; 628B4AF81D03125900E2D828 /* auto_roll_logger.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B47651D03125800E2D828 /* auto_roll_logger.h */; }; From a18998c4965f2fde5f4d64c9a81776098fbd93b5 Mon Sep 17 00:00:00 2001 From: iska Date: Sat, 11 Jun 2016 21:52:24 +0200 Subject: [PATCH 62/76] Add TARGET_OS_IOS preprocessor conditional in addition to ROCKSDB_LITE This simplifies using ObjectiveRocks as a subproject or via Carthage --- Code/ObjectiveRocks.h | 2 +- Code/RocksDB.h | 10 +++++----- Code/RocksDB.mm | 8 ++++---- Code/RocksDBColumnFamily.h | 2 +- Code/RocksDBMemTableRepFactory.h | 2 +- Code/RocksDBMemTableRepFactory.mm | 2 +- Code/RocksDBSnapshot.h | 4 ++-- Code/RocksDBSnapshotUnavailable.h | 2 +- Code/RocksDBTableFactory.h | 4 ++-- Code/RocksDBTableFactory.mm | 4 ++-- 10 files changed, 20 insertions(+), 20 deletions(-) diff --git a/Code/ObjectiveRocks.h b/Code/ObjectiveRocks.h index ceb4e90..62d1e2b 100644 --- a/Code/ObjectiveRocks.h +++ b/Code/ObjectiveRocks.h @@ -43,7 +43,7 @@ extern const unsigned char ObjectiveRocksVersionString[]; #import "RocksDBTypes.h" -#ifndef ROCKSDB_LITE +#if !defined(ROCKSDB_LITE) && !defined(TARGET_OS_IPHONE) #import "RocksDBColumnFamilyMetadata.h" diff --git a/Code/RocksDB.h b/Code/RocksDB.h index b2de566..3cb1804 100644 --- a/Code/RocksDB.h +++ b/Code/RocksDB.h @@ -17,7 +17,7 @@ #import "RocksDBWriteBatch.h" #import "RocksDBIterator.h" -#ifndef ROCKSDB_LITE +#if !defined(ROCKSDB_LITE) && !defined(TARGET_OS_IPHONE) #import "RocksDBColumnFamilyMetaData.h" #import "RocksDBIndexedWriteBatch.h" #import "RocksDBProperties.h" @@ -82,7 +82,7 @@ NS_ASSUME_NONNULL_BEGIN columnFamilies:(RocksDBColumnFamilyDescriptor *)descriptor andDatabaseOptions:(nullable void (^)(RocksDBDatabaseOptions *options))options; -#ifndef ROCKSDB_LITE +#if !defined(ROCKSDB_LITE) && !defined(TARGET_OS_IPHONE) /** Intializes a DB instance for read-only with the given path and configured with the given options. @@ -194,7 +194,7 @@ NS_ASSUME_NONNULL_BEGIN /** @brief Returns an array */ - (NSArray *)columnFamilies; -#ifndef ROCKSDB_LITE +#if !defined(ROCKSDB_LITE) && !defined(TARGET_OS_IPHONE) /** Returns the Meta Data object for the Column Family associated with this instance. @@ -209,7 +209,7 @@ NS_ASSUME_NONNULL_BEGIN @end -#ifndef ROCKSDB_LITE +#if !defined(ROCKSDB_LITE) && !defined(TARGET_OS_IPHONE) @interface RocksDB (Properties) @@ -559,7 +559,7 @@ NS_ASSUME_NONNULL_BEGIN */ - (BOOL)applyWriteBatch:(RocksDBWriteBatch *)writeBatch writeOptions:(nullable void (^)(RocksDBWriteOptions *writeOptions))writeOptions error:(NSError * _Nullable *)error; -#ifndef ROCKSDB_LITE +#if !defined(ROCKSDB_LITE) && !defined(TARGET_OS_IPHONE) /** Returns an instance of an indexed write batch, which can be used to perform a set of diff --git a/Code/RocksDB.mm b/Code/RocksDB.mm index 7e45d80..6eed196 100644 --- a/Code/RocksDB.mm +++ b/Code/RocksDB.mm @@ -105,7 +105,7 @@ + (instancetype)databaseAtPath:(NSString *)path return rocks; } -#ifndef ROCKSDB_LITE +#if !defined(ROCKSDB_LITE) && !defined(TARGET_OS_IPHONE) + (instancetype)databaseForReadOnlyAtPath:(NSString *)path andDBOptions:(void (^)(RocksDBOptions *options))optionsBlock @@ -288,7 +288,7 @@ - (NSArray *)columnFamilies return _columnFamilies; } -#ifndef ROCKSDB_LITE +#if !defined(ROCKSDB_LITE) && !defined(TARGET_OS_IPHONE) - (RocksDBColumnFamilyMetaData *)columnFamilyMetaData { @@ -317,7 +317,7 @@ - (void)setDefaultReadOptions:(void (^)(RocksDBReadOptions *))readOptionsBlock a } } -#ifndef ROCKSDB_LITE +#if !defined(ROCKSDB_LITE) && !defined(TARGET_OS_IPHONE) #pragma mark - Peroperties @@ -654,7 +654,7 @@ - (BOOL)applyWriteBatch:(RocksDBWriteBatch *)writeBatch return YES; } -#ifndef ROCKSDB_LITE +#if !defined(ROCKSDB_LITE) && !defined(TARGET_OS_IPHONE) - (RocksDBIndexedWriteBatch *)indexedWriteBatch { diff --git a/Code/RocksDBColumnFamily.h b/Code/RocksDBColumnFamily.h index eb3cbf8..88a7ba4 100644 --- a/Code/RocksDBColumnFamily.h +++ b/Code/RocksDBColumnFamily.h @@ -27,7 +27,7 @@ NS_ASSUME_NONNULL_BEGIN columnFamilies:(RocksDBColumnFamilyDescriptor *)descriptor andDatabaseOptions:(nullable void (^)(RocksDBDatabaseOptions *options))options __attribute__((unavailable("Create column family via a RocksDB instance"))); -#ifndef ROCKSDB_LITE +#if !defined(ROCKSDB_LITE) && !defined(TARGET_OS_IPHONE) + (instancetype)databaseForReadOnlyAtPath:(NSString *)path andDBOptions:(nullable void (^)(RocksDBOptions *options))options __attribute__((unavailable("Create column family via a RocksDB instance"))); diff --git a/Code/RocksDBMemTableRepFactory.h b/Code/RocksDBMemTableRepFactory.h index 5d7e9c0..e91b6b5 100644 --- a/Code/RocksDBMemTableRepFactory.h +++ b/Code/RocksDBMemTableRepFactory.h @@ -19,7 +19,7 @@ */ + (instancetype)skipListRepFacotry; -#ifndef ROCKSDB_LITE +#if !defined(ROCKSDB_LITE) && !defined(TARGET_OS_IPHONE) /** Creates MemTableReps that are backed by an std::vector. diff --git a/Code/RocksDBMemTableRepFactory.mm b/Code/RocksDBMemTableRepFactory.mm index 46a7436..35ade62 100644 --- a/Code/RocksDBMemTableRepFactory.mm +++ b/Code/RocksDBMemTableRepFactory.mm @@ -25,7 +25,7 @@ + (instancetype)skipListRepFacotry return [[self alloc] initWithNativeMemTableRepFactory:new rocksdb::SkipListFactory]; } -#ifndef ROCKSDB_LITE +#if !defined(ROCKSDB_LITE) && !defined(TARGET_OS_IPHONE) + (instancetype)vectorRepFactory { diff --git a/Code/RocksDBSnapshot.h b/Code/RocksDBSnapshot.h index c19b402..3fac3fa 100644 --- a/Code/RocksDBSnapshot.h +++ b/Code/RocksDBSnapshot.h @@ -35,7 +35,7 @@ NS_ASSUME_NONNULL_BEGIN columnFamilies:(RocksDBColumnFamilyDescriptor *)descriptor andDatabaseOptions:(void (^)(RocksDBDatabaseOptions *options))options UNAVAILABLE("Create a snapshot via a DB instance"); -#ifndef ROCKSDB_LITE +#if !defined(ROCKSDB_LITE) && !defined(TARGET_OS_IPHONE) + (instancetype)databaseForReadOnlyAtPath:(NSString *)path andDBOptions:(void (^)(RocksDBOptions *options))options UNAVAILABLE("Create a snapshot via a DB instance"); @@ -61,7 +61,7 @@ NS_ASSUME_NONNULL_BEGIN SNAPSHOT_PUT_MERGE_DELETE_SELECTORS #undef NA_SELECTOR -#ifndef ROCKSDB_LITE +#if !defined(ROCKSDB_LITE) && !defined(TARGET_OS_IPHONE) #define NA_SELECTOR(sel) sel UNAVAILABLE("Snapshot is read-only"); SNAPSHOT_WRITE_BATCH_SELECTORS #undef NA_SELECTOR diff --git a/Code/RocksDBSnapshotUnavailable.h b/Code/RocksDBSnapshotUnavailable.h index 055bafe..b084b3c 100644 --- a/Code/RocksDBSnapshotUnavailable.h +++ b/Code/RocksDBSnapshotUnavailable.h @@ -30,7 +30,7 @@ NA_SELECTOR(- (BOOL)deleteObjectForKey:(id)aKey writeOptions:(void (^)(RocksDBWr NA_SELECTOR(- (BOOL)deleteDataForKey:(NSData *)aKey error:(NSError * _Nullable *)error) \ NA_SELECTOR(- (BOOL)deleteDataForKey:(NSData *)aKey writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions error:(NSError * _Nullable *)error) \ -#ifndef ROCKSDB_LITE +#if !defined(ROCKSDB_LITE) && !defined(TARGET_OS_IPHONE) #define SNAPSHOT_WRITE_BATCH_SELECTORS \ NA_SELECTOR(- (RocksDBWriteBatch *)writeBatch) \ diff --git a/Code/RocksDBTableFactory.h b/Code/RocksDBTableFactory.h index 9cd2cfb..6bf46f0 100644 --- a/Code/RocksDBTableFactory.h +++ b/Code/RocksDBTableFactory.h @@ -9,7 +9,7 @@ #import #import "RocksDBBlockBasedTableOptions.h" -#ifndef ROCKSDB_LITE +#if !defined(ROCKSDB_LITE) && !defined(TARGET_OS_IPHONE) #import "RocksDBPlainTableOptions.h" #import "RocksDBCuckooTableOptions.h" #endif @@ -26,7 +26,7 @@ */ + (instancetype)blockBasedTableFactoryWithOptions:(void (^)(RocksDBBlockBasedTableOptions *options))options; -#ifndef ROCKSDB_LITE +#if !defined(ROCKSDB_LITE) && !defined(TARGET_OS_IPHONE) /** Returns a Plain Table Factory object with thge given Plain table options. diff --git a/Code/RocksDBTableFactory.mm b/Code/RocksDBTableFactory.mm index e8a101c..c21886c 100644 --- a/Code/RocksDBTableFactory.mm +++ b/Code/RocksDBTableFactory.mm @@ -14,7 +14,7 @@ @interface RocksDBBlockBasedTableOptions () @property (nonatomic, assign) rocksdb::BlockBasedTableOptions options; @end -#ifndef ROCKSDB_LITE +#if !defined(ROCKSDB_LITE) && !defined(TARGET_OS_IPHONE) @interface RocksDBPlainTableOptions () @property (nonatomic, assign) rocksdb::PlainTableOptions options; @@ -49,7 +49,7 @@ + (instancetype)blockBasedTableFactoryWithOptions:(void (^)(RocksDBBlockBasedTab return instance; } -#ifndef ROCKSDB_LITE +#if !defined(ROCKSDB_LITE) && !defined(TARGET_OS_IPHONE) + (instancetype)plainTableFactoryWithOptions:(void (^)(RocksDBPlainTableOptions *options))optionsBlock { From c16c20fb996764ba8ac77ba1484bcdfbe1391501 Mon Sep 17 00:00:00 2001 From: iska Date: Sat, 11 Jun 2016 21:55:36 +0200 Subject: [PATCH 63/76] Add win-, java-, and tools-related files to the exclude list in podspec --- ObjectiveRocks.podspec | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ObjectiveRocks.podspec b/ObjectiveRocks.podspec index 20dcaa3..6eac2dd 100644 --- a/ObjectiveRocks.podspec +++ b/ObjectiveRocks.podspec @@ -53,6 +53,10 @@ Pod::Spec.new do |s| s.exclude_files = 'rocksdb/port/dirent.h', + 'rocksdb/port/win/**', + 'rocksdb/hdfs/**', + 'rocksdb/java/**', + 'rocksdb/tools/**', 'rocksdb/**/*bench*', 'rocksdb/**/*mock*', 'rocksdb/**/*test*' From 461e51c8572662cf63cb336066bc07ed39333e33 Mon Sep 17 00:00:00 2001 From: iska Date: Sun, 12 Jun 2016 02:12:00 +0200 Subject: [PATCH 64/76] Remove private Column Family Metadata header from iOS target --- ObjectiveRocks.xcodeproj/project.pbxproj | 2 -- 1 file changed, 2 deletions(-) diff --git a/ObjectiveRocks.xcodeproj/project.pbxproj b/ObjectiveRocks.xcodeproj/project.pbxproj index 64a930c..730cebf 100644 --- a/ObjectiveRocks.xcodeproj/project.pbxproj +++ b/ObjectiveRocks.xcodeproj/project.pbxproj @@ -179,7 +179,6 @@ 624F5ED91BEE456100497FEF /* RocksDB+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 6221B78A1A62970800D28BF5 /* RocksDB+Private.h */; settings = {ATTRIBUTES = (Private, ); }; }; 624F5EDA1BEE456100497FEF /* RocksDBOptions+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 62F9D8A51B86AE8900C65860 /* RocksDBOptions+Private.h */; settings = {ATTRIBUTES = (Private, ); }; }; 624F5EDB1BEE456100497FEF /* RocksDBColumnFamily+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 6221B78E1A62973500D28BF5 /* RocksDBColumnFamily+Private.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 624F5EDC1BEE456100497FEF /* RocksDBColumnFamilyMetaData+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 6221B7921A62976F00D28BF5 /* RocksDBColumnFamilyMetaData+Private.h */; settings = {ATTRIBUTES = (Private, ); }; }; 624F5EDD1BEE456100497FEF /* RocksDBIterator+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 6221B7961A6298AD00D28BF5 /* RocksDBIterator+Private.h */; settings = {ATTRIBUTES = (Private, ); }; }; 624F5EDE1BEE456100497FEF /* RocksDBWriteBatch+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 6221B79A1A6298F800D28BF5 /* RocksDBWriteBatch+Private.h */; settings = {ATTRIBUTES = (Private, ); }; }; 624F5EDF1BEE456200497FEF /* RocksDBWriteBatchIterator+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 62F9D8A11B86A74900C65860 /* RocksDBWriteBatchIterator+Private.h */; settings = {ATTRIBUTES = (Private, ); }; }; @@ -3051,7 +3050,6 @@ 624F5EDA1BEE456100497FEF /* RocksDBOptions+Private.h in Headers */, 624F5EDB1BEE456100497FEF /* RocksDBColumnFamily+Private.h in Headers */, 628B4EE31D03125A00E2D828 /* table_reader.h in Headers */, - 624F5EDC1BEE456100497FEF /* RocksDBColumnFamilyMetaData+Private.h in Headers */, 628B4E731D03125900E2D828 /* block_based_table_factory.h in Headers */, 628B4FB51D03125A00E2D828 /* file_util.h in Headers */, 628B50D51D03125A00E2D828 /* transaction_impl.h in Headers */, From fee71aa1670cebac72a88a3bd2933f90e9135d3e Mon Sep 17 00:00:00 2001 From: iska Date: Sun, 12 Jun 2016 02:19:20 +0200 Subject: [PATCH 65/76] Remove private Write Batch Iterator header from iOS target --- ObjectiveRocks.xcodeproj/project.pbxproj | 2 -- 1 file changed, 2 deletions(-) diff --git a/ObjectiveRocks.xcodeproj/project.pbxproj b/ObjectiveRocks.xcodeproj/project.pbxproj index 730cebf..92337ca 100644 --- a/ObjectiveRocks.xcodeproj/project.pbxproj +++ b/ObjectiveRocks.xcodeproj/project.pbxproj @@ -181,7 +181,6 @@ 624F5EDB1BEE456100497FEF /* RocksDBColumnFamily+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 6221B78E1A62973500D28BF5 /* RocksDBColumnFamily+Private.h */; settings = {ATTRIBUTES = (Private, ); }; }; 624F5EDD1BEE456100497FEF /* RocksDBIterator+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 6221B7961A6298AD00D28BF5 /* RocksDBIterator+Private.h */; settings = {ATTRIBUTES = (Private, ); }; }; 624F5EDE1BEE456100497FEF /* RocksDBWriteBatch+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 6221B79A1A6298F800D28BF5 /* RocksDBWriteBatch+Private.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 624F5EDF1BEE456200497FEF /* RocksDBWriteBatchIterator+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 62F9D8A11B86A74900C65860 /* RocksDBWriteBatchIterator+Private.h */; settings = {ATTRIBUTES = (Private, ); }; }; 624F5EE01BEE456200497FEF /* RocksDBSnapshot+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 6221B79E1A629A4F00D28BF5 /* RocksDBSnapshot+Private.h */; settings = {ATTRIBUTES = (Private, ); }; }; 624F5EE11BEE456200497FEF /* RocksDBCallbackComparator.h in Headers */ = {isa = PBXBuildFile; fileRef = 62376BBE1A20EDF000C85DFB /* RocksDBCallbackComparator.h */; settings = {ATTRIBUTES = (Private, ); }; }; 624F5EE21BEE456200497FEF /* RocksDBCallbackAssociativeMergeOperator.h in Headers */ = {isa = PBXBuildFile; fileRef = 62EEC4B91A34FF0600624DA2 /* RocksDBCallbackAssociativeMergeOperator.h */; settings = {ATTRIBUTES = (Private, ); }; }; @@ -3057,7 +3056,6 @@ 624F5EDD1BEE456100497FEF /* RocksDBIterator+Private.h in Headers */, 628B4C6B1D03125900E2D828 /* iostats_context.h in Headers */, 624F5EDE1BEE456100497FEF /* RocksDBWriteBatch+Private.h in Headers */, - 624F5EDF1BEE456200497FEF /* RocksDBWriteBatchIterator+Private.h in Headers */, 628B4EDD1D03125A00E2D828 /* table_builder.h in Headers */, 628B50A71D03125A00E2D828 /* redis_list_exception.h in Headers */, 628B4F5F1D03125A00E2D828 /* aligned_buffer.h in Headers */, From 49b65158028ef1b773d7aeb1f779ecbe2d3f88aa Mon Sep 17 00:00:00 2001 From: iska Date: Sun, 12 Jun 2016 03:31:44 +0200 Subject: [PATCH 66/76] Fix conditional OS-Target checks --- Code/ObjectiveRocks.h | 4 +++- Code/RocksDB.h | 11 ++++++----- Code/RocksDB.mm | 13 +++++++------ Code/RocksDBColumnFamily.h | 2 +- Code/RocksDBMemTableRepFactory.h | 2 +- Code/RocksDBMemTableRepFactory.mm | 2 +- Code/RocksDBSnapshot.h | 4 ++-- Code/RocksDBSnapshotUnavailable.h | 2 +- Code/RocksDBTableFactory.h | 4 ++-- Code/RocksDBTableFactory.mm | 4 ++-- 10 files changed, 26 insertions(+), 22 deletions(-) diff --git a/Code/ObjectiveRocks.h b/Code/ObjectiveRocks.h index 62d1e2b..cfb2cb2 100644 --- a/Code/ObjectiveRocks.h +++ b/Code/ObjectiveRocks.h @@ -12,6 +12,8 @@ extern double ObjectiveRocksVersionNumber; //! Project version string for ObjectiveRocks. extern const unsigned char ObjectiveRocksVersionString[]; +#import + #import "RocksDB.h" #import "RocksDBColumnFamily.h" @@ -43,7 +45,7 @@ extern const unsigned char ObjectiveRocksVersionString[]; #import "RocksDBTypes.h" -#if !defined(ROCKSDB_LITE) && !defined(TARGET_OS_IPHONE) +#if !(defined(ROCKSDB_LITE) && defined(TARGET_OS_IPHONE)) #import "RocksDBColumnFamilyMetadata.h" diff --git a/Code/RocksDB.h b/Code/RocksDB.h index 3cb1804..ade8407 100644 --- a/Code/RocksDB.h +++ b/Code/RocksDB.h @@ -7,6 +7,7 @@ // #import +#import #import "RocksDBColumnFamilyDescriptor.h" #import "RocksDBOptions.h" @@ -17,7 +18,7 @@ #import "RocksDBWriteBatch.h" #import "RocksDBIterator.h" -#if !defined(ROCKSDB_LITE) && !defined(TARGET_OS_IPHONE) +#if !(defined(ROCKSDB_LITE) && defined(TARGET_OS_IPHONE)) #import "RocksDBColumnFamilyMetaData.h" #import "RocksDBIndexedWriteBatch.h" #import "RocksDBProperties.h" @@ -82,7 +83,7 @@ NS_ASSUME_NONNULL_BEGIN columnFamilies:(RocksDBColumnFamilyDescriptor *)descriptor andDatabaseOptions:(nullable void (^)(RocksDBDatabaseOptions *options))options; -#if !defined(ROCKSDB_LITE) && !defined(TARGET_OS_IPHONE) +#if !(defined(ROCKSDB_LITE) && defined(TARGET_OS_IPHONE)) /** Intializes a DB instance for read-only with the given path and configured with the given options. @@ -194,7 +195,7 @@ NS_ASSUME_NONNULL_BEGIN /** @brief Returns an array */ - (NSArray *)columnFamilies; -#if !defined(ROCKSDB_LITE) && !defined(TARGET_OS_IPHONE) +#if !(defined(ROCKSDB_LITE) && defined(TARGET_OS_IPHONE)) /** Returns the Meta Data object for the Column Family associated with this instance. @@ -209,7 +210,7 @@ NS_ASSUME_NONNULL_BEGIN @end -#if !defined(ROCKSDB_LITE) && !defined(TARGET_OS_IPHONE) +#if !(defined(ROCKSDB_LITE) && defined(TARGET_OS_IPHONE)) @interface RocksDB (Properties) @@ -559,7 +560,7 @@ NS_ASSUME_NONNULL_BEGIN */ - (BOOL)applyWriteBatch:(RocksDBWriteBatch *)writeBatch writeOptions:(nullable void (^)(RocksDBWriteOptions *writeOptions))writeOptions error:(NSError * _Nullable *)error; -#if !defined(ROCKSDB_LITE) && !defined(TARGET_OS_IPHONE) +#if !(defined(ROCKSDB_LITE) && defined(TARGET_OS_IPHONE)) /** Returns an instance of an indexed write batch, which can be used to perform a set of diff --git a/Code/RocksDB.mm b/Code/RocksDB.mm index 6eed196..8c519fb 100644 --- a/Code/RocksDB.mm +++ b/Code/RocksDB.mm @@ -12,13 +12,11 @@ #import "RocksDBColumnFamily.h" #import "RocksDBColumnFamily+Private.h" -#import "RocksDBColumnFamilyMetaData+Private.h" #import "RocksDBOptions.h" #import "RocksDBReadOptions.h" #import "RocksDBWriteOptions.h" - #import "RocksDBCompactRangeOptions+Private.h" #import "RocksDBIterator+Private.h" @@ -34,7 +32,10 @@ #include #include +#if !(defined(ROCKSDB_LITE) && defined(TARGET_OS_IPHONE)) +#import "RocksDBColumnFamilyMetaData+Private.h" #import "RocksDBProperties.h" +#endif #pragma mark - @@ -105,7 +106,7 @@ + (instancetype)databaseAtPath:(NSString *)path return rocks; } -#if !defined(ROCKSDB_LITE) && !defined(TARGET_OS_IPHONE) +#if !(defined(ROCKSDB_LITE) && defined(TARGET_OS_IPHONE)) + (instancetype)databaseForReadOnlyAtPath:(NSString *)path andDBOptions:(void (^)(RocksDBOptions *options))optionsBlock @@ -288,7 +289,7 @@ - (NSArray *)columnFamilies return _columnFamilies; } -#if !defined(ROCKSDB_LITE) && !defined(TARGET_OS_IPHONE) +#if !(defined(ROCKSDB_LITE) && defined(TARGET_OS_IPHONE)) - (RocksDBColumnFamilyMetaData *)columnFamilyMetaData { @@ -317,7 +318,7 @@ - (void)setDefaultReadOptions:(void (^)(RocksDBReadOptions *))readOptionsBlock a } } -#if !defined(ROCKSDB_LITE) && !defined(TARGET_OS_IPHONE) +#if !(defined(ROCKSDB_LITE) && defined(TARGET_OS_IPHONE)) #pragma mark - Peroperties @@ -654,7 +655,7 @@ - (BOOL)applyWriteBatch:(RocksDBWriteBatch *)writeBatch return YES; } -#if !defined(ROCKSDB_LITE) && !defined(TARGET_OS_IPHONE) +#if !(defined(ROCKSDB_LITE) && defined(TARGET_OS_IPHONE)) - (RocksDBIndexedWriteBatch *)indexedWriteBatch { diff --git a/Code/RocksDBColumnFamily.h b/Code/RocksDBColumnFamily.h index 88a7ba4..f7a8fdd 100644 --- a/Code/RocksDBColumnFamily.h +++ b/Code/RocksDBColumnFamily.h @@ -27,7 +27,7 @@ NS_ASSUME_NONNULL_BEGIN columnFamilies:(RocksDBColumnFamilyDescriptor *)descriptor andDatabaseOptions:(nullable void (^)(RocksDBDatabaseOptions *options))options __attribute__((unavailable("Create column family via a RocksDB instance"))); -#if !defined(ROCKSDB_LITE) && !defined(TARGET_OS_IPHONE) +#if !(defined(ROCKSDB_LITE) && defined(TARGET_OS_IPHONE)) + (instancetype)databaseForReadOnlyAtPath:(NSString *)path andDBOptions:(nullable void (^)(RocksDBOptions *options))options __attribute__((unavailable("Create column family via a RocksDB instance"))); diff --git a/Code/RocksDBMemTableRepFactory.h b/Code/RocksDBMemTableRepFactory.h index e91b6b5..21a8327 100644 --- a/Code/RocksDBMemTableRepFactory.h +++ b/Code/RocksDBMemTableRepFactory.h @@ -19,7 +19,7 @@ */ + (instancetype)skipListRepFacotry; -#if !defined(ROCKSDB_LITE) && !defined(TARGET_OS_IPHONE) +#if !(defined(ROCKSDB_LITE) && defined(TARGET_OS_IPHONE)) /** Creates MemTableReps that are backed by an std::vector. diff --git a/Code/RocksDBMemTableRepFactory.mm b/Code/RocksDBMemTableRepFactory.mm index 35ade62..66de336 100644 --- a/Code/RocksDBMemTableRepFactory.mm +++ b/Code/RocksDBMemTableRepFactory.mm @@ -25,7 +25,7 @@ + (instancetype)skipListRepFacotry return [[self alloc] initWithNativeMemTableRepFactory:new rocksdb::SkipListFactory]; } -#if !defined(ROCKSDB_LITE) && !defined(TARGET_OS_IPHONE) +#if !(defined(ROCKSDB_LITE) && defined(TARGET_OS_IPHONE)) + (instancetype)vectorRepFactory { diff --git a/Code/RocksDBSnapshot.h b/Code/RocksDBSnapshot.h index 3fac3fa..e2b4048 100644 --- a/Code/RocksDBSnapshot.h +++ b/Code/RocksDBSnapshot.h @@ -35,7 +35,7 @@ NS_ASSUME_NONNULL_BEGIN columnFamilies:(RocksDBColumnFamilyDescriptor *)descriptor andDatabaseOptions:(void (^)(RocksDBDatabaseOptions *options))options UNAVAILABLE("Create a snapshot via a DB instance"); -#if !defined(ROCKSDB_LITE) && !defined(TARGET_OS_IPHONE) +#if !(defined(ROCKSDB_LITE) && defined(TARGET_OS_IPHONE)) + (instancetype)databaseForReadOnlyAtPath:(NSString *)path andDBOptions:(void (^)(RocksDBOptions *options))options UNAVAILABLE("Create a snapshot via a DB instance"); @@ -61,7 +61,7 @@ NS_ASSUME_NONNULL_BEGIN SNAPSHOT_PUT_MERGE_DELETE_SELECTORS #undef NA_SELECTOR -#if !defined(ROCKSDB_LITE) && !defined(TARGET_OS_IPHONE) +#if !(defined(ROCKSDB_LITE) && defined(TARGET_OS_IPHONE)) #define NA_SELECTOR(sel) sel UNAVAILABLE("Snapshot is read-only"); SNAPSHOT_WRITE_BATCH_SELECTORS #undef NA_SELECTOR diff --git a/Code/RocksDBSnapshotUnavailable.h b/Code/RocksDBSnapshotUnavailable.h index b084b3c..c9227a3 100644 --- a/Code/RocksDBSnapshotUnavailable.h +++ b/Code/RocksDBSnapshotUnavailable.h @@ -30,7 +30,7 @@ NA_SELECTOR(- (BOOL)deleteObjectForKey:(id)aKey writeOptions:(void (^)(RocksDBWr NA_SELECTOR(- (BOOL)deleteDataForKey:(NSData *)aKey error:(NSError * _Nullable *)error) \ NA_SELECTOR(- (BOOL)deleteDataForKey:(NSData *)aKey writeOptions:(void (^)(RocksDBWriteOptions *writeOptions))writeOptions error:(NSError * _Nullable *)error) \ -#if !defined(ROCKSDB_LITE) && !defined(TARGET_OS_IPHONE) +#if !(defined(ROCKSDB_LITE) && defined(TARGET_OS_IPHONE)) #define SNAPSHOT_WRITE_BATCH_SELECTORS \ NA_SELECTOR(- (RocksDBWriteBatch *)writeBatch) \ diff --git a/Code/RocksDBTableFactory.h b/Code/RocksDBTableFactory.h index 6bf46f0..7e2cc34 100644 --- a/Code/RocksDBTableFactory.h +++ b/Code/RocksDBTableFactory.h @@ -9,7 +9,7 @@ #import #import "RocksDBBlockBasedTableOptions.h" -#if !defined(ROCKSDB_LITE) && !defined(TARGET_OS_IPHONE) +#if !(defined(ROCKSDB_LITE) && defined(TARGET_OS_IPHONE)) #import "RocksDBPlainTableOptions.h" #import "RocksDBCuckooTableOptions.h" #endif @@ -26,7 +26,7 @@ */ + (instancetype)blockBasedTableFactoryWithOptions:(void (^)(RocksDBBlockBasedTableOptions *options))options; -#if !defined(ROCKSDB_LITE) && !defined(TARGET_OS_IPHONE) +#if !(defined(ROCKSDB_LITE) && defined(TARGET_OS_IPHONE)) /** Returns a Plain Table Factory object with thge given Plain table options. diff --git a/Code/RocksDBTableFactory.mm b/Code/RocksDBTableFactory.mm index c21886c..b25fa6e 100644 --- a/Code/RocksDBTableFactory.mm +++ b/Code/RocksDBTableFactory.mm @@ -14,7 +14,7 @@ @interface RocksDBBlockBasedTableOptions () @property (nonatomic, assign) rocksdb::BlockBasedTableOptions options; @end -#if !defined(ROCKSDB_LITE) && !defined(TARGET_OS_IPHONE) +#if !(defined(ROCKSDB_LITE) && defined(TARGET_OS_IPHONE)) @interface RocksDBPlainTableOptions () @property (nonatomic, assign) rocksdb::PlainTableOptions options; @@ -49,7 +49,7 @@ + (instancetype)blockBasedTableFactoryWithOptions:(void (^)(RocksDBBlockBasedTab return instance; } -#if !defined(ROCKSDB_LITE) && !defined(TARGET_OS_IPHONE) +#if !(defined(ROCKSDB_LITE) && defined(TARGET_OS_IPHONE)) + (instancetype)plainTableFactoryWithOptions:(void (^)(RocksDBPlainTableOptions *options))optionsBlock { From 462b7336426502d73870804f864a943efb4bb0ce Mon Sep 17 00:00:00 2001 From: iska Date: Sun, 12 Jun 2016 01:52:42 +0200 Subject: [PATCH 67/76] Add CHANGELOG.md --- CHANGELOG.md | 127 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..332d282 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,127 @@ +# Change Log + +## [0.6.0](https://github.com/iabudiab/ObjectiveRocks/releases/tag/0.6.0) + +Released on 2016.06.12 + +- RocksDB Version: `4.6.1`: [facebook/rocksdb@8d7926a](https://github.com/facebook/rocksdb/commit/8d7926a766f2ab9bd6e7aa8cba80b5d3ff26c52b) + +### Added + +- Support for opening the database in read-only mode +- Support for `Write Batch with Index` and `Write Batch Iterator` +- Support for `Range Compaction` operations +- Nullability annotations + - Better compatibility with Swift +- New statistics and counters +- Cocoapods Podspec +- Travis integration + +### Breaking Changes + +- RocksDB initializers were changed to class instead of instance methods +- Removed RocksDB methods without error parameter + - Better compatibility with Swift's error-handling model +- Refactored all RocksDB methods so that the error parameter is the last + - Better compatibility with Swift's error-handling model +- Removed `Column Family Metadata` from iOS target +- `RocksDBIteratorKeyRange` is refactored to `RocksDBKeyRange` + - Key ranges are used not only for iterations but also for compaction jobs + - Empty-range constant is refactored to open-range, since it represents a range containing all the keys +- ObjectiveRocks builds frameworks now instead of static libraries + +## [0.5.0](https://github.com/iabudiab/ObjectiveRocks/releases/tag/0.5.0) + +Released on 2016.07.30 + +- RocksDB Version: `3.11`: [facebook/rocksdb@812c461](https://github.com/facebook/rocksdb/commit/812c461c96869ebcd8e629da8f01e1cea01c00ca) + +### Added + +- Source code documentation + +### Removed + +- Removed `+ (instancetype)LRUCacheWithCapacity:numShardsBits:removeScanCountLimit:` RocksDB Cache initializer + - No longer available since: [facebook/rocksdb@c88ff4c](https://github.com/facebook/rocksdb/commit/c88ff4ca76a6a24632cbdd834f621952a251d7a1) + +## [0.4.0](https://github.com/iabudiab/ObjectiveRocks/releases/tag/0.4.0) + +Released on 2015.01.17 + +- RocksDB Version: `3.9`: [facebook/rocksdb@b89d58d](https://github.com/facebook/rocksdb/commit/b89d58dfa3887d561bd772421fb92ef01bd26fc4) + +All headers are refactored in this release to provide a pure Objective-C interface for Swift compatibility. + +### Added + +- Basic support for RocksDB `Env` for configuring priority thread pools +- Support for querying the `Threads Status` +- Options for `Background Compactions` and `Background Flushes` +- Iterator methods for key-value iteration +- Support for Column Family Metadata +- Swift tests + +### Fixed + +- Typo in method name in Filter Policy class +- Typo in method name to retrieve column families in RocksDB class + +### Changed + +- Updated `Thread Status` API + - Adapted according to the changes introduces in: [facebook/rocksdb@bf287b7](https://github.com/facebook/rocksdb/commit/bf287b76e0e7b5998de49e3ceaa2b34d1f3c13ae) + +## [0.3.0](https://github.com/iabudiab/ObjectiveRocks/releases/tag/0.3.0) + +Released on 2015.01.05 + +- RocksDB Version: `3.9`: [facebook/rocksdb@a801c1f](https://github.com/facebook/rocksdb/commit/a801c1fb099167cf48a714483163061062e3dcb7) + +This is the first public release of ObjectiveRocks. + +### Added + +- Database backup and backup-info support +- Database `Checkpoints` +- Support for collecting database statistics, histograms and properties +- Column Family options +- Support for Column Family `memtable rep` factories +- Support for `Block-based`, `Plain-Table` and `Cuckoo-Table` factories +- Support for RocksDB `Cache` +- Support for RocksDB `Filter Policy` + +## [0.2.0](https://github.com/iabudiab/ObjectiveRocks/releases/tag/0.2.0) + +Released on 2015.02.01 + +- RocksDB Version: `3.9`: [facebook/rocksdb@a801c1f](https://github.com/facebook/rocksdb/commit/a801c1fb099167cf48a714483163061062e3dcb7) + +### Added + +- `Column Families` implementation +- Implementation for `Generic Merge Operators` +- Built-In comparator types for `NSString`, `NSNumber`, and RocksDB's own native byte-wise comparator +- Built-In Key-Value encoders and decoders for `NSString` and `NSJSONSerializable` types +- `Write Batch` methods for `merge` operations +- Prefix-based seek iterations +- Tests + +## [0.1.0](https://github.com/iabudiab/ObjectiveRocks/releases/tag/0.1.0) + +Released on 2015.12.23 + +- RocksDB Version: `3.9`: [facebook/rocksdb@9cda7cb](https://github.com/facebook/rocksdb/commit/9cda7cb77b0c7208a63579c7e79252f23db92f67) + +First release of ObjectiveRocks featuring basic RocksDB functionality: + +- [x] Opening and closing RocksDB instances +- [x] Basic DB options +- [x] `Put`, `Get` and `Delete` operations +- [x] `Read` and `Write` options that are specific to single operations +- [x] `Atomic` updates via `Write Batches` +- [x] Key-Value encoders and decoders for converting arbitrary objects to and from `NSData` +- [x] Database iteration support +- [x] Database `Snapshots` - Read-only view over the entire DB +- [x] `Key Comparators` support - For custom key-ordering in the DB +- [x] `Associative Merge Operators` support - Atomic read-modify-write operations From 40bcff70712b8894d0b86b7bf1a81eb51d470d92 Mon Sep 17 00:00:00 2001 From: iska Date: Sun, 12 Jun 2016 01:53:14 +0200 Subject: [PATCH 68/76] Set version to 0.6.0 --- Framework/Info.plist | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Framework/Info.plist b/Framework/Info.plist index c8fa028..c30ab6d 100644 --- a/Framework/Info.plist +++ b/Framework/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 1.0 + 0.6.0 CFBundleSignature ???? CFBundleVersion From ed7491de5e1583185138a4eaf015dada35c18f5b Mon Sep 17 00:00:00 2001 From: iska Date: Sun, 12 Jun 2016 02:01:10 +0200 Subject: [PATCH 69/76] Update README --- README.md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index f08fe00..580dd47 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,14 @@ -# ObjectiveRocks [![Build Status](https://travis-ci.org/iabudiab/ObjectiveRocks.svg?branch=develop)](https://travis-ci.org/iabudiab/ObjectiveRocks) +# ObjectiveRocks ObjectiveRocks is an Objective-C wrapper of Facebook's [RocksDB](https://github.com/facebook/rocksdb) - A Persistent Key-Value Store for Flash and RAM Storage. +[![Build Status](https://travis-ci.org/iabudiab/ObjectiveRocks.svg?branch=release/0.9.0)](https://travis-ci.org/iabudiab/ObjectiveRocks) +[![Carthage Compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage) +[![CocoaPods Compatible](https://img.shields.io/cocoapods/v/ObjectiveRocks.svg?style=flat)](https://cocoapods.org/pods/ObjectiveRocks) +[![CocoaDocs](https://img.shields.io/cocoapods/metrics/doc-percent/HTMLKit.svg?style=flat)](http://cocoadocs.org/docsets/ObjectiveRocks) +[![Platform](https://img.shields.io/cocoapods/p/ObjectiveRocks.svg?style=flat)](http://cocoadocs.org/docsets/ObjectiveRocks) +[![License MIT](https://img.shields.io/badge/license-MIT-4481C7.svg?style=flat)](https://opensource.org/licenses/MIT) + #Quick Overview RocksDB is a key-value store, where the keys and values are arbitrarily-sized byte streams. The keys are ordered within the key value store according to a specified comparator function. RocksDB supports atomic reads and writes, snapshots, iteration and features many configuration options. @@ -44,6 +51,8 @@ ObjectiveRocks incldues two targets, for iOS and OSX. The iOS target builds the These features are only available in OSX: +* Column Family Metadata +* Write Batch with Index * Plain and Cuckoo Table Factories * Vector, HashSkipList, HashLinkList and HashCuckoo Memtable Rep Factories * Database Backups From da104a33f4f5ae7126097d0ab1521cb48e4afe70 Mon Sep 17 00:00:00 2001 From: iska Date: Sun, 12 Jun 2016 02:01:23 +0200 Subject: [PATCH 70/76] Prepare podspec for release --- ObjectiveRocks.podspec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ObjectiveRocks.podspec b/ObjectiveRocks.podspec index 6eac2dd..abf40c6 100644 --- a/ObjectiveRocks.podspec +++ b/ObjectiveRocks.podspec @@ -1,12 +1,12 @@ Pod::Spec.new do |s| s.name = 'ObjectiveRocks' - s.version = '0.5.0' + s.version = '0.6.0' s.summary = 'Objective-C wrapper of RocksDB - A Persistent Key-Value Store for Flash and RAM Storage.' s.license = 'MIT' s.homepage = 'https://github.com/iabudiab/ObjectiveRocks' s.author = 'iabudiab' s.social_media_url = 'https://twitter.com/_iabudiab' - s.source = { :git => 'https://github.com/iabudiab/ObjectiveRocks.git', :tag => s.version, :submodules => true } + s.source = { :git => 'https://github.com/iabudiab/ObjectiveRocks.git', :branch => 'release/0.6.0', :submodules => true } s.ios.deployment_target = '8.0' s.osx.deployment_target = '10.10' From a8bab8e3b12515b305795966834b8e2e2ae4914b Mon Sep 17 00:00:00 2001 From: iska Date: Sun, 12 Jun 2016 02:15:20 +0200 Subject: [PATCH 71/76] Update travis.yml to use Xcode 7.3 image --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 36968a1..f9a96c1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,5 @@ language: objective-c -osx_image: xcode7.1 +osx_image: xcode7.3 script: - xcodebuild -project ObjectiveRocks.xcodeproj -scheme ObjectiveRocks -sdk macosx ONLY_ACTIVE_ARCH=NO - xcodebuild test -project ObjectiveRocks.xcodeproj -scheme ObjectiveRocksTests -sdk macosx ONLY_ACTIVE_ARCH=NO From b8eab96c8d3f036a15b6ee399fec288bd6de7a17 Mon Sep 17 00:00:00 2001 From: iska Date: Sun, 12 Jun 2016 02:20:00 +0200 Subject: [PATCH 72/76] Fix private headers and excluded files in the podspec --- ObjectiveRocks.podspec | 44 +++++++++++++++++++++++++----------------- 1 file changed, 26 insertions(+), 18 deletions(-) diff --git a/ObjectiveRocks.podspec b/ObjectiveRocks.podspec index abf40c6..4c16635 100644 --- a/ObjectiveRocks.podspec +++ b/ObjectiveRocks.podspec @@ -43,14 +43,6 @@ Pod::Spec.new do |s| 'rocksdb/utilities/**/*.{h,cc}', 'Code/*.{h,mm,cpp}' - s.private_header_files = - 'rocksdb/**/*.h', - 'rocksdb/include/**/*.h', - 'Code/*Callback*.h', - 'Code/*Private*.h', - 'Code/RocksDBError.h', - 'Code/RocksDBSlice.h' - s.exclude_files = 'rocksdb/port/dirent.h', 'rocksdb/port/win/**', @@ -62,16 +54,32 @@ Pod::Spec.new do |s| 'rocksdb/**/*test*' s.ios.exclude_files = - 'Code/RocksDBBackupEngine.{h,mm}', - 'Code/RocksDBBackupInfo.{h,mm}', - 'Code/RocksDBCheckpoint.{h,mm}', - 'Code/RocksDBColumnFamilyMetadata.{h,mm}', - 'Code/RocksDBCuckooTableOptions.{h,mm}', - 'Code/RocksDBIndexedWriteBatch.{h,mm}', - 'Code/RocksDBPlainTableOptions.{h,mm}', - 'Code/RocksDBProperties.{h,mm}', - 'Code/RocksDBThreadStatus.{h,mm}', - 'Code/RocksDBWriteBatchIterator.{h,mm}' + 'Code/RocksDBBackupEngine*.{h,mm}', + 'Code/RocksDBBackupInfo*.{h,mm}', + 'Code/RocksDBCheckpoint*.{h,mm}', + 'Code/RocksDBColumnFamilyMetadata*.{h,mm}', + 'Code/RocksDBCuckooTableOptions*.{h,mm}', + 'Code/RocksDBIndexedWriteBatch*.{h,mm}', + 'Code/RocksDBPlainTableOptions*.{h,mm}', + 'Code/RocksDBProperties*.{h,mm}', + 'Code/RocksDBThreadStatus*.{h,mm}', + 'Code/RocksDBWriteBatchIterator*.{h,mm}' + + s.private_header_files = + 'rocksdb/db/*.h', + 'rocksdb/include/**/*.h', + 'rocksdb/memtable/*.h', + 'rocksdb/port/*.h', + 'rocksdb/table/*.h', + 'rocksdb/third-party/fbson/*.h', + 'rocksdb/third-party/flashcache/*.h', + 'rocksdb/util/*.h', + 'rocksdb/utilities/**/*.h', + 'rocksdb/include/**/*.h', + 'Code/*Callback*.h', + 'Code/*Private*.h', + 'Code/RocksDBError.h', + 'Code/RocksDBSlice.h' s.xcconfig = { 'GCC_PREPROCESSOR_DEFINITIONS' => 'NDEBUG=1 OS_MACOSX=1 ROCKSDB_PLATFORM_POSIX=1 ROCKSDB_LIB_IO_POSIX=1', From c51d6fdfd6d300c0b9d235a4a89f5562e507716a Mon Sep 17 00:00:00 2001 From: iska Date: Sun, 12 Jun 2016 03:43:24 +0200 Subject: [PATCH 73/76] Refactor private Write Batch with Index header into own separate file --- Code/RocksDB.mm | 1 + Code/RocksDBIndexedWriteBatch+Private.h | 39 ++++++++++++++++++++++++ Code/RocksDBWriteBatch+Private.h | 21 ------------- ObjectiveRocks.xcodeproj/project.pbxproj | 4 +++ 4 files changed, 44 insertions(+), 21 deletions(-) create mode 100644 Code/RocksDBIndexedWriteBatch+Private.h diff --git a/Code/RocksDB.mm b/Code/RocksDB.mm index 8c519fb..9136739 100644 --- a/Code/RocksDB.mm +++ b/Code/RocksDB.mm @@ -34,6 +34,7 @@ #if !(defined(ROCKSDB_LITE) && defined(TARGET_OS_IPHONE)) #import "RocksDBColumnFamilyMetaData+Private.h" +#import "RocksDBIndexedWriteBatch+Private.h" #import "RocksDBProperties.h" #endif diff --git a/Code/RocksDBIndexedWriteBatch+Private.h b/Code/RocksDBIndexedWriteBatch+Private.h new file mode 100644 index 0000000..a5ab8e6 --- /dev/null +++ b/Code/RocksDBIndexedWriteBatch+Private.h @@ -0,0 +1,39 @@ +// +// RocksDBIndexedWriteBatch+Private.h +// ObjectiveRocks +// +// Created by Iska on 12/06/16. +// Copyright © 2016 BrainCookie. All rights reserved. +// + +namespace rocksdb { + class DB; + class ColumnFamilyHandle; + class WriteBatchBase; +} + +@class RocksDBEncodingOptions; + +/** + This category is intended to hide all C++ types from the public interface in order to + maintain a pure Objective-C API for Swift compatibility. + */ +@interface RocksDBIndexedWriteBatch (Private) + +/** + Initializes a new instance of a simple `RocksDBIndexedWriteBatch` with the given DB instance, + rocksdb::ColumnFamilyHandle instance and encoding options. + + @param db The rocksdb::DB instance. + @param columnFamily The rocks::ColumnFamilyHandle instance. + @param options The Encoding options. + @return a newly-initialized instance of `RocksDBIndexedWriteBatch`. + + @see RocksDBEncodingOptions + */ +- (instancetype)initWithDBInstance:(rocksdb::DB *)db + columnFamily:(rocksdb::ColumnFamilyHandle *)columnFamily + readOptions:(RocksDBReadOptions *)readOptions + andEncodingOptions:(RocksDBEncodingOptions *)encodingOptions; + +@end diff --git a/Code/RocksDBWriteBatch+Private.h b/Code/RocksDBWriteBatch+Private.h index e2fb152..0332281 100644 --- a/Code/RocksDBWriteBatch+Private.h +++ b/Code/RocksDBWriteBatch+Private.h @@ -7,7 +7,6 @@ // #import "RocksDBWriteBatch.h" -#import "RocksDBIndexedWriteBatch.h" namespace rocksdb { class DB; @@ -63,23 +62,3 @@ namespace rocksdb { andEncodingOptions:(RocksDBEncodingOptions *)encodingOptions; @end - -@interface RocksDBIndexedWriteBatch (Private) - -/** - Initializes a new instance of a simple `RocksDBIndexedWriteBatch` with the given DB instance, - rocksdb::ColumnFamilyHandle instance and encoding options. - - @param db The rocksdb::DB instance. - @param columnFamily The rocks::ColumnFamilyHandle instance. - @param options The Encoding options. - @return a newly-initialized instance of `RocksDBIndexedWriteBatch`. - - @see RocksDBEncodingOptions - */ -- (instancetype)initWithDBInstance:(rocksdb::DB *)db - columnFamily:(rocksdb::ColumnFamilyHandle *)columnFamily - readOptions:(RocksDBReadOptions *)readOptions - andEncodingOptions:(RocksDBEncodingOptions *)encodingOptions; - -@end diff --git a/ObjectiveRocks.xcodeproj/project.pbxproj b/ObjectiveRocks.xcodeproj/project.pbxproj index 92337ca..b28bb47 100644 --- a/ObjectiveRocks.xcodeproj/project.pbxproj +++ b/ObjectiveRocks.xcodeproj/project.pbxproj @@ -996,6 +996,7 @@ 628B50E91D03125A00E2D828 /* write_batch_with_index_internal.cc in Sources */ = {isa = PBXBuildFile; fileRef = 628B4AA31D03125900E2D828 /* write_batch_with_index_internal.cc */; }; 628B50EA1D03125A00E2D828 /* write_batch_with_index_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4AA41D03125900E2D828 /* write_batch_with_index_internal.h */; }; 628B50EB1D03125A00E2D828 /* write_batch_with_index_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B4AA41D03125900E2D828 /* write_batch_with_index_internal.h */; }; + 628CEBBB1D0CF4630096AA64 /* RocksDBIndexedWriteBatch+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 628CEBB91D0CF4630096AA64 /* RocksDBIndexedWriteBatch+Private.h */; settings = {ATTRIBUTES = (Private, ); }; }; 629416631A69DFB000AA0498 /* RocksDBPrefixExtractorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 629416621A69DFB000AA0498 /* RocksDBPrefixExtractorTests.swift */; }; 629416641A69DFB000AA0498 /* RocksDBPrefixExtractorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 629416621A69DFB000AA0498 /* RocksDBPrefixExtractorTests.swift */; }; 6299F8561A17B7AD00123F56 /* RocksDBBasicTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6299F8551A17B7AD00123F56 /* RocksDBBasicTests.mm */; }; @@ -1523,6 +1524,7 @@ 628B4AA31D03125900E2D828 /* write_batch_with_index_internal.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = write_batch_with_index_internal.cc; sourceTree = ""; }; 628B4AA41D03125900E2D828 /* write_batch_with_index_internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = write_batch_with_index_internal.h; sourceTree = ""; }; 628C51C71A3BD08500B96F8F /* RocksDBSnapshotUnavailable.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RocksDBSnapshotUnavailable.h; sourceTree = ""; }; + 628CEBB91D0CF4630096AA64 /* RocksDBIndexedWriteBatch+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "RocksDBIndexedWriteBatch+Private.h"; sourceTree = ""; }; 629416621A69DFB000AA0498 /* RocksDBPrefixExtractorTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RocksDBPrefixExtractorTests.swift; sourceTree = ""; }; 6299F80C1A17B28200123F56 /* RocksDB.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RocksDB.h; sourceTree = ""; }; 6299F80E1A17B28200123F56 /* RocksDB.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = RocksDB.mm; sourceTree = ""; }; @@ -1682,6 +1684,7 @@ 6221B7921A62976F00D28BF5 /* RocksDBColumnFamilyMetaData+Private.h */, 6221B7961A6298AD00D28BF5 /* RocksDBIterator+Private.h */, 6221B79A1A6298F800D28BF5 /* RocksDBWriteBatch+Private.h */, + 628CEBB91D0CF4630096AA64 /* RocksDBIndexedWriteBatch+Private.h */, 62F9D8A11B86A74900C65860 /* RocksDBWriteBatchIterator+Private.h */, 6221B79E1A629A4F00D28BF5 /* RocksDBSnapshot+Private.h */, ); @@ -2643,6 +2646,7 @@ 628B509E1D03125A00E2D828 /* merge_operators.h in Headers */, 628B50521D03125A00E2D828 /* thread_status_updater.h in Headers */, 624203D31BED64F80043DD6F /* RocksDBPrefixExtractor.h in Headers */, + 628CEBBB1D0CF4630096AA64 /* RocksDBIndexedWriteBatch+Private.h in Headers */, 628B4E981D03125A00E2D828 /* cuckoo_table_reader.h in Headers */, 628B4CA41D03125900E2D828 /* document_db.h in Headers */, 624203D41BED64F80043DD6F /* RocksDBWriteBatch.h in Headers */, From 6ed2d708c049ed1207772083a4d4f3d786d61853 Mon Sep 17 00:00:00 2001 From: iska Date: Sun, 12 Jun 2016 04:08:22 +0200 Subject: [PATCH 74/76] Refactor compaction operation into own extension --- Code/RocksDB.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Code/RocksDB.h b/Code/RocksDB.h index ade8407..75788ab 100644 --- a/Code/RocksDB.h +++ b/Code/RocksDB.h @@ -643,6 +643,10 @@ NS_ASSUME_NONNULL_BEGIN */ - (RocksDBSnapshot *)snapshotWithReadOptions:(nullable void (^)(RocksDBReadOptions *readOptions))readOptions; +@end + +@interface RocksDB (Compaction) + #pragma mark - Compaction ///-------------------------------- /// @name Database Compaction @@ -650,7 +654,7 @@ NS_ASSUME_NONNULL_BEGIN /** Compacts the underlying storage for the specified key range [begin, end]. - + A `nil` start key is treated as a key before all keys, and a `nil` end key is treated as a key after all keys in the database. Thus, in order to compact the entire database, the `RocksDBOpenRange` can be used. From 7f052b7a7d84492fc16b1194c5d6f3b69e224dfd Mon Sep 17 00:00:00 2001 From: iska Date: Sun, 12 Jun 2016 04:11:18 +0200 Subject: [PATCH 75/76] Move pragmas from inside the interfaces in the main RocksDB header --- Code/RocksDB.h | 33 ++++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/Code/RocksDB.h b/Code/RocksDB.h index 75788ab..af6f018 100644 --- a/Code/RocksDB.h +++ b/Code/RocksDB.h @@ -29,9 +29,10 @@ NS_ASSUME_NONNULL_BEGIN @class RocksDBColumnFamily; @class RocksDBSnapshot; +#pragma mark - Initializing the database + @interface RocksDB : NSObject -#pragma mark - Initializing the database ///-------------------------------- /// @name Initializing the database ///-------------------------------- @@ -161,9 +162,10 @@ NS_ASSUME_NONNULL_BEGIN @end +#pragma mark - Column Family Management + @interface RocksDB (ColumnFamilies) -#pragma mark - Column Family Management ///-------------------------------- /// @name Column Family Management ///-------------------------------- @@ -212,9 +214,10 @@ NS_ASSUME_NONNULL_BEGIN #if !(defined(ROCKSDB_LITE) && defined(TARGET_OS_IPHONE)) +#pragma mark - Database properties + @interface RocksDB (Properties) -#pragma mark - Database properties ///-------------------------------- /// @name Database properties ///-------------------------------- @@ -247,9 +250,10 @@ NS_ASSUME_NONNULL_BEGIN #endif +#pragma mark - Write operations + @interface RocksDB (WriteOps) -#pragma mark - Write operations ///-------------------------------- /// @name Write operations ///-------------------------------- @@ -314,9 +318,10 @@ NS_ASSUME_NONNULL_BEGIN @end +#pragma mark - Merge operations + @interface RocksDB (MergeOps) -#pragma mark - Merge operations ///-------------------------------- /// @name Merge operations ///-------------------------------- @@ -393,9 +398,10 @@ NS_ASSUME_NONNULL_BEGIN @end +#pragma mark - Read operations + @interface RocksDB (ReadOps) -#pragma mark - Read operations ///-------------------------------- /// @name Read operations ///-------------------------------- @@ -453,9 +459,10 @@ NS_ASSUME_NONNULL_BEGIN @end +#pragma mark - Delete operations + @interface RocksDB (DeleteOps) -#pragma mark - Delete operations ///-------------------------------- /// @name Delete operations ///-------------------------------- @@ -513,9 +520,10 @@ NS_ASSUME_NONNULL_BEGIN @end +#pragma mark - Atomic Writes + @interface RocksDB (WriteBatch) -#pragma mark - Atomic Writes ///-------------------------------- /// @name Atomic Writes ///-------------------------------- @@ -590,9 +598,10 @@ NS_ASSUME_NONNULL_BEGIN @end +#pragma mark - Database Iterator + @interface RocksDB (Iterator) -#pragma mark - Database Iterator ///-------------------------------- /// @name Database Iterator ///-------------------------------- @@ -619,9 +628,10 @@ NS_ASSUME_NONNULL_BEGIN @end +#pragma mark - Database Snapshot + @interface RocksDB (Snapshot) -#pragma mark - Database Snapshot ///-------------------------------- /// @name Database Snapshot ///-------------------------------- @@ -645,9 +655,10 @@ NS_ASSUME_NONNULL_BEGIN @end +#pragma mark - Compaction + @interface RocksDB (Compaction) -#pragma mark - Compaction ///-------------------------------- /// @name Database Compaction ///-------------------------------- From 39897a409f81c186368884e7f69493c0447e5d52 Mon Sep 17 00:00:00 2001 From: iska Date: Sun, 12 Jun 2016 04:12:32 +0200 Subject: [PATCH 76/76] Set tag 0.6.0 for spec source in the podspec --- ObjectiveRocks.podspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ObjectiveRocks.podspec b/ObjectiveRocks.podspec index 4c16635..21fe4bb 100644 --- a/ObjectiveRocks.podspec +++ b/ObjectiveRocks.podspec @@ -6,7 +6,7 @@ Pod::Spec.new do |s| s.homepage = 'https://github.com/iabudiab/ObjectiveRocks' s.author = 'iabudiab' s.social_media_url = 'https://twitter.com/_iabudiab' - s.source = { :git => 'https://github.com/iabudiab/ObjectiveRocks.git', :branch => 'release/0.6.0', :submodules => true } + s.source = { :git => 'https://github.com/iabudiab/ObjectiveRocks.git', :tag => s.version, :submodules => true } s.ios.deployment_target = '8.0' s.osx.deployment_target = '10.10'