aboutsummaryrefslogtreecommitdiffhomepage
path: root/Firestore/Source/Local/FSTWriteGroup.h
diff options
context:
space:
mode:
authorGravatar Greg Soltis <gsoltis@google.com>2018-03-22 15:45:05 -0700
committerGravatar GitHub <noreply@github.com>2018-03-22 15:45:05 -0700
commit4afaafdc770612185c4e11d3f09226ce168462a5 (patch)
tree21c912e4c719a1b0a0961457017efce1f4b385c0 /Firestore/Source/Local/FSTWriteGroup.h
parent1e769d708459ff64ca3571ab562377cc56a9d637 (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/FSTWriteGroup.h')
-rw-r--r--Firestore/Source/Local/FSTWriteGroup.h11
1 files changed, 7 insertions, 4 deletions
diff --git a/Firestore/Source/Local/FSTWriteGroup.h b/Firestore/Source/Local/FSTWriteGroup.h
index c21ff72..a554597 100644
--- a/Firestore/Source/Local/FSTWriteGroup.h
+++ b/Firestore/Source/Local/FSTWriteGroup.h
@@ -19,6 +19,7 @@
#include <memory>
#include "Firestore/Source/Local/StringView.h"
+#include "Firestore/core/src/firebase/firestore/local/leveldb_transaction.h"
#include "leveldb/db.h"
NS_ASSUME_NONNULL_BEGIN
@@ -46,13 +47,15 @@ NS_ASSUME_NONNULL_BEGIN
*/
+ (instancetype)groupWithAction:(NSString *)action;
++ (instancetype)groupWithAction:(NSString *)action
+ transaction:(firebase::firestore::local::LevelDbTransaction *)transaction;
+
- (instancetype)init __attribute__((unavailable("Use a static constructor instead")));
/** The action description assigned to this write group. */
@property(nonatomic, copy, readonly) NSString *action;
-/** Returns YES if the write group has no messages in it. */
-- (BOOL)isEmpty;
+@property(nonatomic, readonly) firebase::firestore::local::LevelDbTransaction *transaction;
/**
* Marks the given key for deletion.
@@ -78,8 +81,8 @@ NS_ASSUME_NONNULL_BEGIN
*/
- (void)setData:(Firestore::StringView)data forKey:(Firestore::StringView)key;
-/** Writes the contents to the given LevelDB. */
-- (leveldb::Status)writeToDB:(std::shared_ptr<leveldb::DB>)db;
+/** Returns YES if the write group has no messages in it. */
+- (BOOL)isEmpty;
@end