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

Unified Diff: chrome/browser/sync/api/sync_data.cc

Issue 6995008: Implement new SyncAPI and convert Preferences to it. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase and fix compile Created 9 years, 7 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 | « chrome/browser/sync/api/sync_data.h ('k') | chrome/browser/sync/api/syncable_service.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/sync/api/sync_data.cc
diff --git a/chrome/browser/sync/api/sync_data.cc b/chrome/browser/sync/api/sync_data.cc
new file mode 100644
index 0000000000000000000000000000000000000000..3cdf340acf61c425cabdfcf974145651655967a0
--- /dev/null
+++ b/chrome/browser/sync/api/sync_data.cc
@@ -0,0 +1,90 @@
+// Copyright (c) 2011 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 "chrome/browser/sync/api/sync_data.h"
+
+#include "chrome/browser/sync/protocol/sync.pb.h"
+
+SyncData::SharedSyncEntity::SharedSyncEntity(
+ sync_pb::SyncEntity* sync_entity)
+ : sync_entity_(new sync_pb::SyncEntity()){
+ sync_entity_->Swap(sync_entity);
+}
+
+const sync_pb::SyncEntity& SyncData::SharedSyncEntity::sync_entity() const {
+ return *sync_entity_;
+}
+
+SyncData::SharedSyncEntity::~SharedSyncEntity() {}
+
+
+SyncData::SyncData()
+ : is_local_(true) {
+}
+
+SyncData::~SyncData() {
+}
+
+// Static.
+SyncData SyncData::CreateLocalData(const std::string& sync_tag) {
+ sync_pb::SyncEntity entity;
+ entity.set_client_defined_unique_tag(sync_tag);
+ SyncData a;
+ a.shared_entity_ = new SharedSyncEntity(&entity);
+ a.is_local_ = true;
+ return a;
+}
+
+// Static.
+SyncData SyncData::CreateLocalData(
+ const std::string& sync_tag,
+ const sync_pb::EntitySpecifics& specifics) {
+ sync_pb::SyncEntity entity;
+ entity.set_client_defined_unique_tag(sync_tag);
+ entity.mutable_specifics()->CopyFrom(specifics);
+ SyncData a;
+ a.shared_entity_ = new SharedSyncEntity(&entity);
+ a.is_local_ = true;
+ return a;
+}
+
+// Static.
+SyncData SyncData::CreateRemoteData(const sync_pb::SyncEntity& entity) {
+ // TODO(zea): eventually use this for building changes from the original sync
+ // entities if possible.
+ NOTIMPLEMENTED();
+ return SyncData();
+}
+
+// Static.
+SyncData SyncData::CreateRemoteData(
+ const sync_pb::EntitySpecifics& specifics) {
+ sync_pb::SyncEntity entity;
+ entity.mutable_specifics()->CopyFrom(specifics);
+ SyncData a;
+ a.shared_entity_ = new SharedSyncEntity(&entity);
+ a.is_local_ = false;
+ return a;
+}
+
+bool SyncData::IsValid() const {
+ return (shared_entity_.get() != NULL);
+}
+
+const sync_pb::EntitySpecifics& SyncData::GetSpecifics() const {
+ return shared_entity_->sync_entity().specifics();
+}
+
+syncable::ModelType SyncData::GetDataType() const {
+ return syncable::GetModelTypeFromSpecifics(GetSpecifics());
+}
+
+const std::string& SyncData::GetTag() const {
+ DCHECK(is_local_);
+ return shared_entity_->sync_entity().client_defined_unique_tag();
+}
+
+bool SyncData::IsLocal() const {
+ return is_local_;
+}
« no previous file with comments | « chrome/browser/sync/api/sync_data.h ('k') | chrome/browser/sync/api/syncable_service.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698