aboutsummaryrefslogtreecommitdiffhomepage
path: root/Firestore/core/src/firebase/firestore/local
diff options
context:
space:
mode:
authorGravatar Greg Soltis <gsoltis@google.com>2018-03-22 17:31:16 -0700
committerGravatar GitHub <noreply@github.com>2018-03-22 17:31:16 -0700
commit352b790b6e292c0d921ad0231352d767fde53758 (patch)
tree75a8c78fc35f846eb1f763ea3b664d6800850e2b /Firestore/core/src/firebase/firestore/local
parentc1c9fecb6f7e057817afca9f1e32d2abba3ecfe8 (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/core/src/firebase/firestore/local')
-rw-r--r--Firestore/core/src/firebase/firestore/local/leveldb_transaction.cc5
-rw-r--r--Firestore/core/src/firebase/firestore/local/leveldb_transaction.h2
2 files changed, 4 insertions, 3 deletions
diff --git a/Firestore/core/src/firebase/firestore/local/leveldb_transaction.cc b/Firestore/core/src/firebase/firestore/local/leveldb_transaction.cc
index d6c9799..f7d39b2 100644
--- a/Firestore/core/src/firebase/firestore/local/leveldb_transaction.cc
+++ b/Firestore/core/src/firebase/firestore/local/leveldb_transaction.cc
@@ -166,8 +166,9 @@ void LevelDbTransaction::Put(const absl::string_view& key,
version_++;
}
-LevelDbTransaction::Iterator* LevelDbTransaction::NewIterator() {
- return new LevelDbTransaction::Iterator(this);
+std::unique_ptr<LevelDbTransaction::Iterator>
+LevelDbTransaction::NewIterator() {
+ return std::make_unique<LevelDbTransaction::Iterator>(this);
}
Status LevelDbTransaction::Get(const absl::string_view& key,
diff --git a/Firestore/core/src/firebase/firestore/local/leveldb_transaction.h b/Firestore/core/src/firebase/firestore/local/leveldb_transaction.h
index b219a69..bcc7c91 100644
--- a/Firestore/core/src/firebase/firestore/local/leveldb_transaction.h
+++ b/Firestore/core/src/firebase/firestore/local/leveldb_transaction.h
@@ -180,7 +180,7 @@ class LevelDbTransaction {
* Returns a new Iterator over the pending changes in this transaction, merged
* with the existing values already in leveldb.
*/
- Iterator* NewIterator();
+ std::unique_ptr<Iterator> NewIterator();
/**
* Commits the transaction. All pending changes are written. The transaction