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

Unified Diff: sync/api/sync_data.cc

Issue 2130453004: [Sync] Move //sync to //components/sync. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase. Created 4 years, 5 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
« no previous file with comments | « sync/api/sync_data.h ('k') | sync/api/sync_data_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sync/api/sync_data.cc
diff --git a/sync/api/sync_data.cc b/sync/api/sync_data.cc
deleted file mode 100644
index 98c332459c06ca68fe3cefb5130bab13a7088b53..0000000000000000000000000000000000000000
--- a/sync/api/sync_data.cc
+++ /dev/null
@@ -1,238 +0,0 @@
-// Copyright (c) 2012 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 "sync/api/sync_data.h"
-
-#include <stdint.h>
-
-#include <algorithm>
-#include <ostream>
-
-#include "base/json/json_writer.h"
-#include "base/strings/string_number_conversions.h"
-#include "base/values.h"
-#include "sync/internal_api/public/attachments/attachment_service_proxy.h"
-#include "sync/internal_api/public/base/model_type.h"
-#include "sync/internal_api/public/base_node.h"
-#include "sync/protocol/proto_value_conversions.h"
-#include "sync/protocol/sync.pb.h"
-
-namespace {
-
-sync_pb::AttachmentIdProto IdToProto(
- const syncer::AttachmentId& attachment_id) {
- return attachment_id.GetProto();
-}
-
-syncer::AttachmentId ProtoToId(const sync_pb::AttachmentIdProto& proto) {
- return syncer::AttachmentId::CreateFromProto(proto);
-}
-
-// Return true iff |attachment_ids| contains duplicates.
-bool ContainsDuplicateAttachments(
- const syncer::AttachmentIdList& attachment_ids) {
- syncer::AttachmentIdSet id_set;
- id_set.insert(attachment_ids.begin(), attachment_ids.end());
- return id_set.size() != attachment_ids.size();
-}
-
-} // namespace
-
-namespace syncer {
-
-void SyncData::ImmutableSyncEntityTraits::InitializeWrapper(Wrapper* wrapper) {
- *wrapper = new sync_pb::SyncEntity();
-}
-
-void SyncData::ImmutableSyncEntityTraits::DestroyWrapper(Wrapper* wrapper) {
- delete *wrapper;
-}
-
-const sync_pb::SyncEntity& SyncData::ImmutableSyncEntityTraits::Unwrap(
- const Wrapper& wrapper) {
- return *wrapper;
-}
-
-sync_pb::SyncEntity* SyncData::ImmutableSyncEntityTraits::UnwrapMutable(
- Wrapper* wrapper) {
- return *wrapper;
-}
-
-void SyncData::ImmutableSyncEntityTraits::Swap(sync_pb::SyncEntity* t1,
- sync_pb::SyncEntity* t2) {
- t1->Swap(t2);
-}
-
-SyncData::SyncData() : id_(kInvalidId), is_valid_(false) {}
-
-SyncData::SyncData(int64_t id,
- sync_pb::SyncEntity* entity,
- const base::Time& remote_modification_time,
- const syncer::AttachmentServiceProxy& attachment_service)
- : id_(id),
- remote_modification_time_(remote_modification_time),
- immutable_entity_(entity),
- attachment_service_(attachment_service),
- is_valid_(true) {}
-
-SyncData::SyncData(const SyncData& other) = default;
-
-SyncData::~SyncData() {}
-
-// Static.
-SyncData SyncData::CreateLocalDelete(const std::string& sync_tag,
- ModelType datatype) {
- sync_pb::EntitySpecifics specifics;
- AddDefaultFieldValue(datatype, &specifics);
- return CreateLocalData(sync_tag, std::string(), specifics);
-}
-
-// Static.
-SyncData SyncData::CreateLocalData(const std::string& sync_tag,
- const std::string& non_unique_title,
- const sync_pb::EntitySpecifics& specifics) {
- syncer::AttachmentIdList attachment_ids;
- return CreateLocalDataWithAttachments(
- sync_tag, non_unique_title, specifics, attachment_ids);
-}
-
-// Static.
-SyncData SyncData::CreateLocalDataWithAttachments(
- const std::string& sync_tag,
- const std::string& non_unique_title,
- const sync_pb::EntitySpecifics& specifics,
- const AttachmentIdList& attachment_ids) {
- DCHECK(!ContainsDuplicateAttachments(attachment_ids));
- sync_pb::SyncEntity entity;
- entity.set_client_defined_unique_tag(sync_tag);
- entity.set_non_unique_name(non_unique_title);
- entity.mutable_specifics()->CopyFrom(specifics);
- std::transform(attachment_ids.begin(),
- attachment_ids.end(),
- RepeatedFieldBackInserter(entity.mutable_attachment_id()),
- IdToProto);
- return SyncData(kInvalidId,
- &entity,
- base::Time(),
- AttachmentServiceProxy());
-}
-
-// Static.
-SyncData SyncData::CreateRemoteData(
- int64_t id,
- const sync_pb::EntitySpecifics& specifics,
- const base::Time& modification_time,
- const AttachmentIdList& attachment_ids,
- const AttachmentServiceProxy& attachment_service,
- const std::string& client_tag_hash) {
- DCHECK_NE(id, kInvalidId);
- sync_pb::SyncEntity entity;
- entity.mutable_specifics()->CopyFrom(specifics);
- entity.set_client_defined_unique_tag(client_tag_hash);
- std::transform(attachment_ids.begin(),
- attachment_ids.end(),
- RepeatedFieldBackInserter(entity.mutable_attachment_id()),
- IdToProto);
- return SyncData(id, &entity, modification_time, attachment_service);
-}
-
-bool SyncData::IsValid() const { return is_valid_; }
-
-const sync_pb::EntitySpecifics& SyncData::GetSpecifics() const {
- return immutable_entity_.Get().specifics();
-}
-
-ModelType SyncData::GetDataType() const {
- return GetModelTypeFromSpecifics(GetSpecifics());
-}
-
-const std::string& SyncData::GetTitle() const {
- // TODO(zea): set this for data coming from the syncer too.
- DCHECK(immutable_entity_.Get().has_non_unique_name());
- return immutable_entity_.Get().non_unique_name();
-}
-
-bool SyncData::IsLocal() const { return id_ == kInvalidId; }
-
-std::string SyncData::ToString() const {
- if (!IsValid())
- return "<Invalid SyncData>";
-
- std::string type = ModelTypeToString(GetDataType());
- std::string specifics;
- base::JSONWriter::WriteWithOptions(*EntitySpecificsToValue(GetSpecifics()),
- base::JSONWriter::OPTIONS_PRETTY_PRINT,
- &specifics);
-
- if (IsLocal()) {
- SyncDataLocal sync_data_local(*this);
- return "{ isLocal: true, type: " + type + ", tag: " +
- sync_data_local.GetTag() + ", title: " + GetTitle() +
- ", specifics: " + specifics + "}";
- }
-
- SyncDataRemote sync_data_remote(*this);
- std::string id = base::Int64ToString(sync_data_remote.GetId());
- return "{ isLocal: false, type: " + type + ", specifics: " + specifics +
- ", id: " + id + "}";
-}
-
-void PrintTo(const SyncData& sync_data, std::ostream* os) {
- *os << sync_data.ToString();
-}
-
-AttachmentIdList SyncData::GetAttachmentIds() const {
- AttachmentIdList result;
- const sync_pb::SyncEntity& entity = immutable_entity_.Get();
- std::transform(entity.attachment_id().begin(),
- entity.attachment_id().end(),
- std::back_inserter(result),
- ProtoToId);
- return result;
-}
-
-SyncDataLocal::SyncDataLocal(const SyncData& sync_data) : SyncData(sync_data) {
- DCHECK(sync_data.IsLocal());
-}
-
-SyncDataLocal::~SyncDataLocal() {}
-
-const std::string& SyncDataLocal::GetTag() const {
- return immutable_entity_.Get().client_defined_unique_tag();
-}
-
-SyncDataRemote::SyncDataRemote(const SyncData& sync_data)
- : SyncData(sync_data) {
- DCHECK(!sync_data.IsLocal());
-}
-
-SyncDataRemote::~SyncDataRemote() {}
-
-const base::Time& SyncDataRemote::GetModifiedTime() const {
- return remote_modification_time_;
-}
-
-int64_t SyncDataRemote::GetId() const {
- return id_;
-}
-
-const std::string& SyncDataRemote::GetClientTagHash() const {
- // It seems that client_defined_unique_tag has a bit of an overloaded use,
- // holding onto the un-hashed tag while local, and then the hashed value when
- // communicating with the server. This usage is copying the latter of these
- // cases, where this is the hashed tag value. The original tag is not sent to
- // the server so we wouldn't be able to set this value anyways. The only way
- // to recreate an un-hashed tag is for the service to do so with a specifics.
- // Should only be used by sessions, see crbug.com/604657.
- DCHECK_EQ(syncer::SESSIONS, GetDataType());
- return immutable_entity_.Get().client_defined_unique_tag();
-}
-
-void SyncDataRemote::GetOrDownloadAttachments(
- const AttachmentIdList& attachment_ids,
- const AttachmentService::GetOrDownloadCallback& callback) {
- attachment_service_.GetOrDownloadAttachments(attachment_ids, callback);
-}
-
-} // namespace syncer
« no previous file with comments | « sync/api/sync_data.h ('k') | sync/api/sync_data_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698