diff options
author | Greg Soltis <gsoltis@google.com> | 2018-03-22 17:31:16 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-03-22 17:31:16 -0700 |
commit | 352b790b6e292c0d921ad0231352d767fde53758 (patch) | |
tree | 75a8c78fc35f846eb1f763ea3b664d6800850e2b /Firestore/Source/Local/FSTLevelDB.mm | |
parent | c1c9fecb6f7e057817afca9f1e32d2abba3ecfe8 (diff) |
Switch FSTLevelDBQueryCache to use transactions (#942)
* Start work on leveldb transactions
* Style
* Working API. Not plumbed in yet
* Move files into correct place
* Wrangling file locations and associations
* Tests pass
* Add some comments
* style
* Fix copyright
* Rewrite iterator internals to handle deletion-while-iterating. Also add tests for same
* Switch to strings instead of slices
* Style
* More style fixes
* Start switching writegroup over
* Swap out write group tracking for transaction usage
* Style
* Response to feedback before updating docs
* Style
* Add comment
* Initialize version_
* Satisfy the linter
* Start switching writegroup over
* Swap out write group tracking for transaction usage
* Style
* Checkpoint before implementing BatchDescription
* Style
* Initial plumbing for leveldb local parts
* Add model::BatchId
* Port leveldb_key.{h,cc}
* Add string StartsWith
* Add leveldb_key_test.cc to the project
* Revert back to using leveldb::Slice for read/describe
These operations universally operate on keys obtained from leveldb so
it's actually unhelpful to force all the callers to make
absl::string_views from them.
* Everything passing
* Drop unused function
* Style
* STart work on reads
* Swap reads in queryCache to use transactions
* Fix up tests of querycache
* Drop commented out code
* Cleanup
* Style
* Fix up for passing tests
* style
* Renaming
* Style
* Start work on ToString for transactions
* Add ToString() method to LevelDbTransaction
* Style
* lint
* Fix includes, drop runTransaction
* current_transaction -> currentTransaction
* LevelDbTransaction::NewIterator now returns a unique_ptr
* Style
* Revert addition of util::StartsWith
* Add log line
* Style
* Add log line
* Style
* Add debug log line for commits, drop unused BatchDescription
* Fix an include, but mostly try to trigger a travis build
Diffstat (limited to 'Firestore/Source/Local/FSTLevelDB.mm')
-rw-r--r-- | Firestore/Source/Local/FSTLevelDB.mm | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/Firestore/Source/Local/FSTLevelDB.mm b/Firestore/Source/Local/FSTLevelDB.mm index a7ee99d..6efbff1 100644 --- a/Firestore/Source/Local/FSTLevelDB.mm +++ b/Firestore/Source/Local/FSTLevelDB.mm @@ -203,6 +203,11 @@ using leveldb::WriteOptions; return database; } +- (LevelDbTransaction *)currentTransaction { + FSTAssert(_transaction != nullptr, @"Attempting to access transaction before one has started"); + return _transaction.get(); +} + #pragma mark - Persistence Factory methods - (id<FSTMutationQueue>)mutationQueueForUser:(const User &)user { @@ -210,7 +215,7 @@ using leveldb::WriteOptions; } - (id<FSTQueryCache>)queryCache { - return [[FSTLevelDBQueryCache alloc] initWithDB:_ptr serializer:self.serializer]; + return [[FSTLevelDBQueryCache alloc] initWithDB:self serializer:self.serializer]; } - (id<FSTRemoteDocumentCache>)remoteDocumentCache { |