aboutsummaryrefslogtreecommitdiffhomepage
path: root/Firestore/Example
diff options
context:
space:
mode:
authorGravatar zxu <zxu@google.com>2018-04-10 16:28:22 -0400
committerGravatar GitHub <noreply@github.com>2018-04-10 16:28:22 -0400
commit2ac778f312301a8dd10c3c6498a59ce536abd738 (patch)
tree68ac918167ec2e474c552f821297ade071e33a20 /Firestore/Example
parent59f9dcb72f46258ffefea3aaf93f51e927c1cc10 (diff)
Port FieldTransform to C++ (#1033)
* 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 * implement `FieldTransform` in C++ * port `FieldTransform` * make `fieldTransforms` shared inside `context` * address changes * fix lint * address changes
Diffstat (limited to 'Firestore/Example')
-rw-r--r--Firestore/Example/Tests/Remote/FSTSerializerBetaTests.mm6
-rw-r--r--Firestore/Example/Tests/Util/FSTHelpers.mm12
2 files changed, 11 insertions, 7 deletions
diff --git a/Firestore/Example/Tests/Remote/FSTSerializerBetaTests.mm b/Firestore/Example/Tests/Remote/FSTSerializerBetaTests.mm
index 17191f8..c0e9cad 100644
--- a/Firestore/Example/Tests/Remote/FSTSerializerBetaTests.mm
+++ b/Firestore/Example/Tests/Remote/FSTSerializerBetaTests.mm
@@ -23,6 +23,8 @@
#import <GRPCClient/GRPCCall.h>
#import <XCTest/XCTest.h>
+#include <vector>
+
#import "Firestore/Protos/objc/firestore/local/MaybeDocument.pbobjc.h"
#import "Firestore/Protos/objc/firestore/local/Mutation.pbobjc.h"
#import "Firestore/Protos/objc/google/firestore/v1beta1/Common.pbobjc.h"
@@ -47,6 +49,7 @@
#include "Firestore/core/src/firebase/firestore/model/database_id.h"
#include "Firestore/core/src/firebase/firestore/model/field_mask.h"
+#include "Firestore/core/src/firebase/firestore/model/field_transform.h"
#include "Firestore/core/src/firebase/firestore/util/string_apple.h"
#include "Firestore/core/test/firebase/firestore/testutil/testutil.h"
@@ -54,6 +57,7 @@ namespace testutil = firebase::firestore::testutil;
namespace util = firebase::firestore::util;
using firebase::firestore::model::DatabaseId;
using firebase::firestore::model::FieldMask;
+using firebase::firestore::model::FieldTransform;
NS_ASSUME_NONNULL_BEGIN
@@ -67,7 +71,7 @@ NS_ASSUME_NONNULL_BEGIN
- (GCFSDocumentMask *)encodedFieldMask:(const FieldMask &)fieldMask;
- (NSMutableArray<GCFSDocumentTransform_FieldTransform *> *)encodedFieldTransforms:
- (NSArray<FSTFieldTransform *> *)fieldTransforms;
+ (const std::vector<FieldTransform> &)fieldTransforms;
- (GCFSStructuredQuery_Filter *)encodedRelationFilter:(FSTRelationFilter *)filter;
@end
diff --git a/Firestore/Example/Tests/Util/FSTHelpers.mm b/Firestore/Example/Tests/Util/FSTHelpers.mm
index 8f170e6..2e1082e 100644
--- a/Firestore/Example/Tests/Util/FSTHelpers.mm
+++ b/Firestore/Example/Tests/Util/FSTHelpers.mm
@@ -46,6 +46,7 @@
#include "Firestore/core/src/firebase/firestore/model/database_id.h"
#include "Firestore/core/src/firebase/firestore/model/document_key.h"
#include "Firestore/core/src/firebase/firestore/model/field_mask.h"
+#include "Firestore/core/src/firebase/firestore/model/field_transform.h"
#include "Firestore/core/src/firebase/firestore/model/field_value.h"
#include "Firestore/core/src/firebase/firestore/model/resource_path.h"
#include "Firestore/core/src/firebase/firestore/model/transform_operations.h"
@@ -59,6 +60,7 @@ using firebase::firestore::model::DatabaseId;
using firebase::firestore::model::DocumentKey;
using firebase::firestore::model::FieldMask;
using firebase::firestore::model::FieldPath;
+using firebase::firestore::model::FieldTransform;
using firebase::firestore::model::FieldValue;
using firebase::firestore::model::ResourcePath;
using firebase::firestore::model::ServerTimestampTransform;
@@ -279,15 +281,13 @@ FSTPatchMutation *FSTTestPatchMutation(const absl::string_view path,
FSTTransformMutation *FSTTestTransformMutation(NSString *path,
NSArray<NSString *> *serverTimestampFields) {
FSTDocumentKey *key = [FSTDocumentKey keyWithPath:testutil::Resource(util::MakeStringView(path))];
- NSMutableArray<FSTFieldTransform *> *fieldTransforms = [NSMutableArray array];
+ std::vector<FieldTransform> fieldTransforms;
for (NSString *field in serverTimestampFields) {
- const FieldPath fieldPath = testutil::Field(util::MakeStringView(field));
+ FieldPath fieldPath = testutil::Field(util::MakeStringView(field));
auto transformOp = absl::make_unique<ServerTimestampTransform>(ServerTimestampTransform::Get());
- FSTFieldTransform *transform =
- [[FSTFieldTransform alloc] initWithPath:fieldPath transform:std::move(transformOp)];
- [fieldTransforms addObject:transform];
+ fieldTransforms.emplace_back(std::move(fieldPath), std::move(transformOp));
}
- return [[FSTTransformMutation alloc] initWithKey:key fieldTransforms:fieldTransforms];
+ return [[FSTTransformMutation alloc] initWithKey:key fieldTransforms:std::move(fieldTransforms)];
}
FSTDeleteMutation *FSTTestDeleteMutation(NSString *path) {