Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(8)

Unified Diff: components/sync/engine_impl/loopback_server/persistent_tombstone_entity.cc

Issue 2360703002: [Sync] Implements the loopback sync server. (Closed)
Patch Set: Address comment. Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: components/sync/engine_impl/loopback_server/persistent_tombstone_entity.cc
diff --git a/components/sync/engine_impl/loopback_server/persistent_tombstone_entity.cc b/components/sync/engine_impl/loopback_server/persistent_tombstone_entity.cc
new file mode 100644
index 0000000000000000000000000000000000000000..0d5b88deeef451aaa54fccb041768796d517d192
--- /dev/null
+++ b/components/sync/engine_impl/loopback_server/persistent_tombstone_entity.cc
@@ -0,0 +1,64 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/sync/engine_impl/loopback_server/persistent_tombstone_entity.h"
+
+#include <memory>
+#include <string>
+
+#include "components/sync/base/model_type.h"
+#include "components/sync/engine_impl/loopback_server/loopback_server_entity.h"
+#include "components/sync/protocol/sync.pb.h"
+
+using std::string;
+
+using syncer::ModelType;
+
+namespace syncer {
+
+PersistentTombstoneEntity::~PersistentTombstoneEntity() {}
+
+// static
+std::unique_ptr<LoopbackServerEntity> PersistentTombstoneEntity::Create(
+ const sync_pb::SyncEntity& entity) {
+ const ModelType model_type = GetModelTypeFromId(entity.id_string());
+ CHECK_NE(model_type, syncer::UNSPECIFIED) << "Invalid ID was given: "
+ << entity.id_string();
+ return std::unique_ptr<LoopbackServerEntity>(new PersistentTombstoneEntity(
+ entity.id_string(), entity.version(), model_type));
+}
+
+PersistentTombstoneEntity::PersistentTombstoneEntity(
+ const string& id,
+ int64_t version,
+ const ModelType& model_type)
+ : LoopbackServerEntity(id, model_type, version, string()) {
+ sync_pb::EntitySpecifics specifics;
+ AddDefaultFieldValue(model_type, &specifics);
+ SetSpecifics(specifics);
+}
+
+bool PersistentTombstoneEntity::RequiresParentId() const {
+ return false;
+}
+
+string PersistentTombstoneEntity::GetParentId() const {
+ return string();
+}
+
+void PersistentTombstoneEntity::SerializeAsProto(
+ sync_pb::SyncEntity* proto) const {
+ LoopbackServerEntity::SerializeBaseProtoFields(proto);
+}
+
+bool PersistentTombstoneEntity::IsDeleted() const {
+ return true;
+}
+
+sync_pb::LoopbackServerEntity_Type
+PersistentTombstoneEntity::GetLoopbackServerEntityType() const {
+ return sync_pb::LoopbackServerEntity_Type_TOMBSTONE;
+}
+
+} // namespace syncer

Powered by Google App Engine
This is Rietveld 408576698