From 4e1ffe464900a45915a3a0a4f2a331b5824c24df Mon Sep 17 00:00:00 2001 From: zxu Date: Tue, 1 May 2018 13:37:53 -0400 Subject: Port `SnapshotVersion` for the rest Firestore modulo (#1185) * remove conversions in `Local` and `Remote` * replace `FSTSnapshotVersion` in `Model` * replace `FSTSnapshotVersion` in the rest * let test check equal with C++ equal * fix newly added code * address changes --- Firestore/Source/Local/FSTLocalSerializer.mm | 10 +++++----- Firestore/Source/Local/FSTLocalStore.mm | 8 ++++---- Firestore/Source/Local/FSTQueryData.mm | 2 +- 3 files changed, 10 insertions(+), 10 deletions(-) (limited to 'Firestore/Source/Local') diff --git a/Firestore/Source/Local/FSTLocalSerializer.mm b/Firestore/Source/Local/FSTLocalSerializer.mm index 652fa5f..8fa1278 100644 --- a/Firestore/Source/Local/FSTLocalSerializer.mm +++ b/Firestore/Source/Local/FSTLocalSerializer.mm @@ -103,8 +103,8 @@ using firebase::firestore::model::SnapshotVersion; FSTSerializerBeta *remoteSerializer = self.remoteSerializer; FSTObjectValue *data = [remoteSerializer decodedFields:document.fields]; - const DocumentKey key = [remoteSerializer decodedDocumentKey:document.name]; - const SnapshotVersion version = [remoteSerializer decodedVersion:document.updateTime]; + DocumentKey key = [remoteSerializer decodedDocumentKey:document.name]; + SnapshotVersion version = [remoteSerializer decodedVersion:document.updateTime]; return [FSTDocument documentWithData:data key:key version:version hasLocalMutations:NO]; } @@ -122,8 +122,8 @@ using firebase::firestore::model::SnapshotVersion; - (FSTDeletedDocument *)decodedDeletedDocument:(FSTPBNoDocument *)proto { FSTSerializerBeta *remoteSerializer = self.remoteSerializer; - const DocumentKey key = [remoteSerializer decodedDocumentKey:proto.name]; - const SnapshotVersion version = [remoteSerializer decodedVersion:proto.readTime]; + DocumentKey key = [remoteSerializer decodedDocumentKey:proto.name]; + SnapshotVersion version = [remoteSerializer decodedVersion:proto.readTime]; return [FSTDeletedDocument documentWithKey:key version:version]; } @@ -188,7 +188,7 @@ using firebase::firestore::model::SnapshotVersion; FSTTargetID targetID = target.targetId; FSTListenSequenceNumber sequenceNumber = target.lastListenSequenceNumber; - const SnapshotVersion version = [remoteSerializer decodedVersion:target.snapshotVersion]; + SnapshotVersion version = [remoteSerializer decodedVersion:target.snapshotVersion]; NSData *resumeToken = target.resumeToken; FSTQuery *query; diff --git a/Firestore/Source/Local/FSTLocalStore.mm b/Firestore/Source/Local/FSTLocalStore.mm index a3c447f..3a324cd 100644 --- a/Firestore/Source/Local/FSTLocalStore.mm +++ b/Firestore/Source/Local/FSTLocalStore.mm @@ -318,8 +318,9 @@ NS_ASSUME_NONNULL_BEGIN } else { FSTLog( @"FSTLocalStore Ignoring outdated watch update for %s. " - "Current version: %@ Watch version: %@", - key.ToString().c_str(), existingDoc.version, doc.version); + "Current version: %s Watch version: %s", + key.ToString().c_str(), existingDoc.version.timestamp().ToString().c_str(), + doc.version.timestamp().ToString().c_str()); } // The document might be garbage because it was unreferenced by everything. @@ -331,8 +332,7 @@ NS_ASSUME_NONNULL_BEGIN // events when we get permission denied errors while trying to resolve the state of a locally // cached document that is in limbo. const SnapshotVersion &lastRemoteVersion = [self.queryCache lastRemoteSnapshotVersion]; - // TODO(zxu): convert to reference once SnapshotVersion is used in RemoteEvent. - const SnapshotVersion remoteVersion = remoteEvent.snapshotVersion; + const SnapshotVersion &remoteVersion = remoteEvent.snapshotVersion; if (remoteVersion != SnapshotVersion::None()) { FSTAssert(remoteVersion >= lastRemoteVersion, @"Watch stream reverted to previous snapshot?? (%s < %s)", diff --git a/Firestore/Source/Local/FSTQueryData.mm b/Firestore/Source/Local/FSTQueryData.mm index 456d42a..e352101 100644 --- a/Firestore/Source/Local/FSTQueryData.mm +++ b/Firestore/Source/Local/FSTQueryData.mm @@ -74,7 +74,7 @@ NS_ASSUME_NONNULL_BEGIN FSTQueryData *other = (FSTQueryData *)object; return [self.query isEqual:other.query] && self.targetID == other.targetID && - self.purpose == other.purpose && [self.snapshotVersion isEqual:other.snapshotVersion] && + self.purpose == other.purpose && self.snapshotVersion == other.snapshotVersion && [self.resumeToken isEqual:other.resumeToken]; } -- cgit v1.2.3