diff options
author | Greg Soltis <gsoltis@google.com> | 2018-03-22 15:45:05 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-03-22 15:45:05 -0700 |
commit | 4afaafdc770612185c4e11d3f09226ce168462a5 (patch) | |
tree | 21c912e4c719a1b0a0961457017efce1f4b385c0 /Firestore/Source/Local/FSTWriteGroupTracker.mm | |
parent | 1e769d708459ff64ca3571ab562377cc56a9d637 (diff) |
Change write groups to use transactions (#912)
* 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
* Everything passing
* Drop unused function
* Style
* Renaming
* Style
* Add log line
* Style
* Add debug log line for commits, drop unused BatchDescription
Diffstat (limited to 'Firestore/Source/Local/FSTWriteGroupTracker.mm')
-rw-r--r-- | Firestore/Source/Local/FSTWriteGroupTracker.mm | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/Firestore/Source/Local/FSTWriteGroupTracker.mm b/Firestore/Source/Local/FSTWriteGroupTracker.mm index 7e3bf60..2cb10bd 100644 --- a/Firestore/Source/Local/FSTWriteGroupTracker.mm +++ b/Firestore/Source/Local/FSTWriteGroupTracker.mm @@ -40,6 +40,17 @@ NS_ASSUME_NONNULL_BEGIN return self.activeGroup; } +- (FSTWriteGroup *)startGroupWithAction:(NSString *)action + transaction: + (firebase::firestore::local::LevelDbTransaction *)transaction { + // NOTE: We can relax this to allow nesting if/when we find we need it. + FSTAssert(!self.activeGroup, + @"Attempt to create write group (%@) while existing write group (%@) still active.", + action, self.activeGroup.action); + self.activeGroup = [FSTWriteGroup groupWithAction:action transaction:transaction]; + return self.activeGroup; +} + - (void)endGroup:(FSTWriteGroup *)group { FSTAssert(self.activeGroup == group, @"Attempted to end write group (%@) which is different from active group (%@)", |