From c46e7f2928f9af3ad7767d072d6c9d4d8ad81012 Mon Sep 17 00:00:00 2001 From: Greg Soltis Date: Mon, 2 Apr 2018 16:01:03 -0700 Subject: Drop FSTRemoteDocumentChangeBuffer (#1013) --- Firestore/Source/Local/FSTLocalStore.mm | 44 +++++++++------------------------ 1 file changed, 12 insertions(+), 32 deletions(-) (limited to 'Firestore/Source/Local/FSTLocalStore.mm') 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 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 *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 *)batchResults - remoteDocuments:(FSTRemoteDocumentChangeBuffer *)remoteDocuments { +- (FSTDocumentKeySet *)releaseBatchResults:(NSArray *)batchResults { NSMutableArray *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]; } } }]; -- cgit v1.2.3