aboutsummaryrefslogtreecommitdiffhomepage
path: root/Firestore/Source/Local/FSTLocalStore.mm
diff options
context:
space:
mode:
authorGravatar Greg Soltis <gsoltis@google.com>2018-04-02 16:01:03 -0700
committerGravatar GitHub <noreply@github.com>2018-04-02 16:01:03 -0700
commitc46e7f2928f9af3ad7767d072d6c9d4d8ad81012 (patch)
tree03b7c9f55e13dc4757610e2e68461ffadc9df266 /Firestore/Source/Local/FSTLocalStore.mm
parent549822959d6e2737e522cbec6a24f8bda1759e47 (diff)
Drop FSTRemoteDocumentChangeBuffer (#1013)
Diffstat (limited to 'Firestore/Source/Local/FSTLocalStore.mm')
-rw-r--r--Firestore/Source/Local/FSTLocalStore.mm44
1 files changed, 12 insertions, 32 deletions
diff --git a/Firestore/Source/Local/FSTLocalStore.mm b/Firestore/Source/Local/FSTLocalStore.mm
index 412ade2..990e332 100644
--- a/Firestore/Source/Local/FSTLocalStore.mm
+++ b/Firestore/Source/Local/FSTLocalStore.mm
@@ -30,7 +30,6 @@
#import "Firestore/Source/Local/FSTQueryData.h"
#import "Firestore/Source/Local/FSTReferenceSet.h"
#import "Firestore/Source/Local/FSTRemoteDocumentCache.h"
-#import "Firestore/Source/Local/FSTRemoteDocumentChangeBuffer.h"
#import "Firestore/Source/Model/FSTDocument.h"
#import "Firestore/Source/Model/FSTDocumentDictionary.h"
#import "Firestore/Source/Model/FSTMutation.h"
@@ -221,12 +220,7 @@ NS_ASSUME_NONNULL_BEGIN
[self.heldBatchResults addObject:batchResult];
affected = [FSTDocumentKeySet keySet];
} else {
- FSTRemoteDocumentChangeBuffer *remoteDocuments =
- [FSTRemoteDocumentChangeBuffer changeBufferWithCache:self.remoteDocumentCache];
-
- affected = [self releaseBatchResults:@[ batchResult ] remoteDocuments:remoteDocuments];
-
- [remoteDocuments apply];
+ affected = [self releaseBatchResults:@[ batchResult ]];
}
[self.mutationQueue performConsistencyCheck];
@@ -268,9 +262,6 @@ NS_ASSUME_NONNULL_BEGIN
return self.persistence.run("Apply remote event", [&]() -> FSTMaybeDocumentDictionary * {
id<FSTQueryCache> queryCache = self.queryCache;
- FSTRemoteDocumentChangeBuffer *remoteDocuments =
- [FSTRemoteDocumentChangeBuffer changeBufferWithCache:self.remoteDocumentCache];
-
[remoteEvent.targetChanges enumerateKeysAndObjectsUsingBlock:^(
NSNumber *targetIDNumber, FSTTargetChange *change, BOOL *stop) {
FSTTargetID targetID = targetIDNumber.intValue;
@@ -315,13 +306,13 @@ NS_ASSUME_NONNULL_BEGIN
const DocumentKey &key = kv.first;
FSTMaybeDocument *doc = kv.second;
changedDocKeys = [changedDocKeys setByAddingObject:key];
- FSTMaybeDocument *existingDoc = [remoteDocuments entryForKey:key];
+ FSTMaybeDocument *existingDoc = [self.remoteDocumentCache entryForKey:key];
// Make sure we don't apply an old document version to the remote cache, though we
// make an exception for [SnapshotVersion noVersion] which can happen for manufactured
// events (e.g. in the case of a limbo document resolution failing).
if (!existingDoc || [doc.version isEqual:[FSTSnapshotVersion noVersion]] ||
[doc.version compare:existingDoc.version] != NSOrderedAscending) {
- [remoteDocuments addEntry:doc];
+ [self.remoteDocumentCache addEntry:doc];
} else {
FSTLog(
@"FSTLocalStore Ignoring outdated watch update for %s. "
@@ -346,10 +337,7 @@ NS_ASSUME_NONNULL_BEGIN
[self.queryCache setLastRemoteSnapshotVersion:remoteVersion];
}
- FSTDocumentKeySet *releasedWriteKeys =
- [self releaseHeldBatchResultsWithRemoteDocuments:remoteDocuments];
-
- [remoteDocuments apply];
+ FSTDocumentKeySet *releasedWriteKeys = [self releaseHeldBatchResults];
// Union the two key sets.
__block FSTDocumentKeySet *keysToRecalc = changedDocKeys;
@@ -423,12 +411,7 @@ NS_ASSUME_NONNULL_BEGIN
// If this was the last watch target, then we won't get any more watch snapshots, so we should
// release any held batch results.
if ([self.targetIDs count] == 0) {
- FSTRemoteDocumentChangeBuffer *remoteDocuments =
- [FSTRemoteDocumentChangeBuffer changeBufferWithCache:self.remoteDocumentCache];
-
- [self releaseHeldBatchResultsWithRemoteDocuments:remoteDocuments];
-
- [remoteDocuments apply];
+ [self releaseHeldBatchResults];
}
});
}
@@ -464,8 +447,7 @@ NS_ASSUME_NONNULL_BEGIN
*
* @return the set of keys of docs that were modified by those writes.
*/
-- (FSTDocumentKeySet *)releaseHeldBatchResultsWithRemoteDocuments:
- (FSTRemoteDocumentChangeBuffer *)remoteDocuments {
+- (FSTDocumentKeySet *)releaseHeldBatchResults {
NSMutableArray<FSTMutationBatchResult *> *toRelease = [NSMutableArray array];
for (FSTMutationBatchResult *batchResult in self.heldBatchResults) {
if (![self isRemoteUpToVersion:batchResult.commitVersion]) {
@@ -478,7 +460,7 @@ NS_ASSUME_NONNULL_BEGIN
return [FSTDocumentKeySet keySet];
} else {
[self.heldBatchResults removeObjectsInRange:NSMakeRange(0, toRelease.count)];
- return [self releaseBatchResults:toRelease remoteDocuments:remoteDocuments];
+ return [self releaseBatchResults:toRelease];
}
}
@@ -493,11 +475,10 @@ NS_ASSUME_NONNULL_BEGIN
return ![self isRemoteUpToVersion:version] || self.heldBatchResults.count > 0;
}
-- (FSTDocumentKeySet *)releaseBatchResults:(NSArray<FSTMutationBatchResult *> *)batchResults
- remoteDocuments:(FSTRemoteDocumentChangeBuffer *)remoteDocuments {
+- (FSTDocumentKeySet *)releaseBatchResults:(NSArray<FSTMutationBatchResult *> *)batchResults {
NSMutableArray<FSTMutationBatch *> *batches = [NSMutableArray array];
for (FSTMutationBatchResult *batchResult in batchResults) {
- [self applyBatchResult:batchResult toRemoteDocuments:remoteDocuments];
+ [self applyBatchResult:batchResult];
[batches addObject:batchResult.batch];
}
@@ -525,12 +506,11 @@ NS_ASSUME_NONNULL_BEGIN
return affectedDocs;
}
-- (void)applyBatchResult:(FSTMutationBatchResult *)batchResult
- toRemoteDocuments:(FSTRemoteDocumentChangeBuffer *)remoteDocuments {
+- (void)applyBatchResult:(FSTMutationBatchResult *)batchResult {
FSTMutationBatch *batch = batchResult.batch;
FSTDocumentKeySet *docKeys = batch.keys;
[docKeys enumerateObjectsUsingBlock:^(FSTDocumentKey *docKey, BOOL *stop) {
- FSTMaybeDocument *_Nullable remoteDoc = [remoteDocuments entryForKey:docKey];
+ FSTMaybeDocument *_Nullable remoteDoc = [self.remoteDocumentCache entryForKey:docKey];
FSTMaybeDocument *_Nullable doc = remoteDoc;
FSTSnapshotVersion *ackVersion = batchResult.docVersions[docKey];
FSTAssert(ackVersion, @"docVersions should contain every doc in the write.");
@@ -540,7 +520,7 @@ NS_ASSUME_NONNULL_BEGIN
FSTAssert(!remoteDoc, @"Mutation batch %@ applied to document %@ resulted in nil.", batch,
remoteDoc);
} else {
- [remoteDocuments addEntry:doc];
+ [self.remoteDocumentCache addEntry:doc];
}
}
}];