From db717bf6704b444b093d46f53935402c83441854 Mon Sep 17 00:00:00 2001 From: zxu Date: Thu, 5 Apr 2018 11:52:07 -0400 Subject: Port transform operations to C++ (#1020) * port FieldMask to C++ * address changes * address changes * fix test * address change * Port transform operations (FSTTransformOperation, FSTServerTimestampTransform) to C++ * address changes * address changes * address changes * address change --- Firestore/Source/Remote/FSTSerializerBeta.mm | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) (limited to 'Firestore/Source/Remote') diff --git a/Firestore/Source/Remote/FSTSerializerBeta.mm b/Firestore/Source/Remote/FSTSerializerBeta.mm index 3b6f052..5433154 100644 --- a/Firestore/Source/Remote/FSTSerializerBeta.mm +++ b/Firestore/Source/Remote/FSTSerializerBeta.mm @@ -47,7 +47,9 @@ #include "Firestore/core/src/firebase/firestore/model/field_mask.h" #include "Firestore/core/src/firebase/firestore/model/field_path.h" #include "Firestore/core/src/firebase/firestore/model/resource_path.h" +#include "Firestore/core/src/firebase/firestore/model/transform_operations.h" #include "Firestore/core/src/firebase/firestore/util/string_apple.h" +#include "absl/memory/memory.h" namespace util = firebase::firestore::util; using firebase::firestore::model::DatabaseId; @@ -55,6 +57,8 @@ using firebase::firestore::model::DocumentKey; using firebase::firestore::model::FieldMask; using firebase::firestore::model::FieldPath; using firebase::firestore::model::ResourcePath; +using firebase::firestore::model::ServerTimestampTransform; +using firebase::firestore::model::TransformOperation; NS_ASSUME_NONNULL_BEGIN @@ -562,8 +566,8 @@ NS_ASSUME_NONNULL_BEGIN (NSArray *)fieldTransforms { NSMutableArray *protos = [NSMutableArray array]; for (FSTFieldTransform *fieldTransform in fieldTransforms) { - FSTAssert([fieldTransform.transform isKindOfClass:[FSTServerTimestampTransform class]], - @"Unknown transform: %@", fieldTransform.transform); + FSTAssert(fieldTransform.transform->type() == TransformOperation::Type::ServerTimestamp, + @"Unknown transform: %d type", fieldTransform.transform->type()); GCFSDocumentTransform_FieldTransform *proto = [GCFSDocumentTransform_FieldTransform message]; proto.fieldPath = util::WrapNSString(fieldTransform.path.CanonicalString()); proto.setToServerValue = GCFSDocumentTransform_FieldTransform_ServerValue_RequestTime; @@ -579,11 +583,11 @@ NS_ASSUME_NONNULL_BEGIN FSTAssert( proto.setToServerValue == GCFSDocumentTransform_FieldTransform_ServerValue_RequestTime, @"Unknown transform setToServerValue: %d", proto.setToServerValue); - [fieldTransforms - addObject:[[FSTFieldTransform alloc] - initWithPath:FieldPath::FromServerFormat( - util::MakeStringView(proto.fieldPath)) - transform:[FSTServerTimestampTransform serverTimestampTransform]]]; + [fieldTransforms addObject:[[FSTFieldTransform alloc] + initWithPath:FieldPath::FromServerFormat( + util::MakeStringView(proto.fieldPath)) + transform:absl::make_unique( + ServerTimestampTransform::Get())]]; } return fieldTransforms; } -- cgit v1.2.3