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

Side by Side Diff: sync/api/sync_data.cc

Issue 11533008: Use delete journal to remove bookmarks that are already deleted in sync model (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "sync/api/sync_data.h" 5 #include "sync/api/sync_data.h"
6 6
7 #include <ostream> 7 #include <ostream>
8 8
9 #include "base/json/json_writer.h" 9 #include "base/json/json_writer.h"
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
49 SyncData::SyncData(int64 id, sync_pb::SyncEntity* entity) 49 SyncData::SyncData(int64 id, sync_pb::SyncEntity* entity)
50 : is_valid_(true), 50 : is_valid_(true),
51 id_(id), 51 id_(id),
52 immutable_entity_(entity) {} 52 immutable_entity_(entity) {}
53 53
54 SyncData::~SyncData() {} 54 SyncData::~SyncData() {}
55 55
56 // Static. 56 // Static.
57 SyncData SyncData::CreateLocalDelete( 57 SyncData SyncData::CreateLocalDelete(
58 const std::string& sync_tag, 58 const std::string& sync_tag,
59 ModelType datatype) { 59 ModelType datatype,
60 bool is_folder) {
60 sync_pb::EntitySpecifics specifics; 61 sync_pb::EntitySpecifics specifics;
61 AddDefaultFieldValue(datatype, &specifics); 62 AddDefaultFieldValue(datatype, &specifics);
62 return CreateLocalData(sync_tag, "", specifics); 63 return CreateLocalData(sync_tag, "", specifics, is_folder);
63 } 64 }
64 65
65 // Static. 66 // Static.
66 SyncData SyncData::CreateLocalData( 67 SyncData SyncData::CreateLocalData(
67 const std::string& sync_tag, 68 const std::string& sync_tag,
68 const std::string& non_unique_title, 69 const std::string& non_unique_title,
69 const sync_pb::EntitySpecifics& specifics) { 70 const sync_pb::EntitySpecifics& specifics,
71 bool is_folder) {
70 sync_pb::SyncEntity entity; 72 sync_pb::SyncEntity entity;
71 entity.set_client_defined_unique_tag(sync_tag); 73 entity.set_client_defined_unique_tag(sync_tag);
72 entity.set_non_unique_name(non_unique_title); 74 entity.set_non_unique_name(non_unique_title);
73 entity.mutable_specifics()->CopyFrom(specifics); 75 entity.mutable_specifics()->CopyFrom(specifics);
76 entity.set_folder(is_folder);
74 return SyncData(kInvalidId, &entity); 77 return SyncData(kInvalidId, &entity);
75 } 78 }
76 79
77 // Static. 80 // Static.
78 SyncData SyncData::CreateRemoteData( 81 SyncData SyncData::CreateRemoteData(
79 int64 id, const sync_pb::EntitySpecifics& specifics) { 82 int64 id, const sync_pb::EntitySpecifics& specifics, bool is_folder) {
80 DCHECK_NE(id, kInvalidId); 83 DCHECK_NE(id, kInvalidId);
81 sync_pb::SyncEntity entity; 84 sync_pb::SyncEntity entity;
82 entity.mutable_specifics()->CopyFrom(specifics); 85 entity.mutable_specifics()->CopyFrom(specifics);
86 entity.set_folder(is_folder);
83 return SyncData(id, &entity); 87 return SyncData(id, &entity);
84 } 88 }
85 89
86 bool SyncData::IsValid() const { 90 bool SyncData::IsValid() const {
87 return is_valid_; 91 return is_valid_;
88 } 92 }
89 93
90 const sync_pb::EntitySpecifics& SyncData::GetSpecifics() const { 94 const sync_pb::EntitySpecifics& SyncData::GetSpecifics() const {
91 return immutable_entity_.Get().specifics(); 95 return immutable_entity_.Get().specifics();
92 } 96 }
(...skipping 15 matching lines...) Expand all
108 112
109 int64 SyncData::GetRemoteId() const { 113 int64 SyncData::GetRemoteId() const {
110 DCHECK(!IsLocal()); 114 DCHECK(!IsLocal());
111 return id_; 115 return id_;
112 } 116 }
113 117
114 bool SyncData::IsLocal() const { 118 bool SyncData::IsLocal() const {
115 return id_ == kInvalidId; 119 return id_ == kInvalidId;
116 } 120 }
117 121
122 bool SyncData::IsFolder() const {
123 return immutable_entity_.Get().folder();
124 }
125
118 std::string SyncData::ToString() const { 126 std::string SyncData::ToString() const {
119 if (!IsValid()) 127 if (!IsValid())
120 return "<Invalid SyncData>"; 128 return "<Invalid SyncData>";
121 129
122 std::string type = ModelTypeToString(GetDataType()); 130 std::string type = ModelTypeToString(GetDataType());
123 std::string specifics; 131 std::string specifics;
124 scoped_ptr<DictionaryValue> value(EntitySpecificsToValue(GetSpecifics())); 132 scoped_ptr<DictionaryValue> value(EntitySpecificsToValue(GetSpecifics()));
125 base::JSONWriter::WriteWithOptions(value.get(), 133 base::JSONWriter::WriteWithOptions(value.get(),
126 base::JSONWriter::OPTIONS_PRETTY_PRINT, 134 base::JSONWriter::OPTIONS_PRETTY_PRINT,
127 &specifics); 135 &specifics);
128 136
129 if (IsLocal()) { 137 if (IsLocal()) {
130 return "{ isLocal: true, type: " + type + ", tag: " + GetTag() + 138 return "{ isLocal: true, type: " + type + ", tag: " + GetTag() +
131 ", title: " + GetTitle() + ", specifics: " + specifics + "}"; 139 ", title: " + GetTitle() + ", specifics: " + specifics + "}";
132 } 140 }
133 141
134 std::string id = base::Int64ToString(GetRemoteId()); 142 std::string id = base::Int64ToString(GetRemoteId());
135 return "{ isLocal: false, type: " + type + ", specifics: " + specifics + 143 return "{ isLocal: false, type: " + type + ", specifics: " + specifics +
136 ", id: " + id + "}"; 144 ", id: " + id + "}";
137 } 145 }
138 146
139 void PrintTo(const SyncData& sync_data, std::ostream* os) { 147 void PrintTo(const SyncData& sync_data, std::ostream* os) {
140 *os << sync_data.ToString(); 148 *os << sync_data.ToString();
141 } 149 }
142 150
143 } // namespace syncer 151 } // namespace syncer
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698