OLD | NEW |
---|---|
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/internal_api/public/base/model_type.h" | 5 #include "sync/internal_api/public/base/model_type.h" |
6 | 6 |
7 #include "base/string_split.h" | 7 #include "base/string_split.h" |
8 #include "base/values.h" | 8 #include "base/values.h" |
9 #include "sync/engine/syncproto.h" | |
10 #include "sync/protocol/app_notification_specifics.pb.h" | 9 #include "sync/protocol/app_notification_specifics.pb.h" |
11 #include "sync/protocol/app_setting_specifics.pb.h" | 10 #include "sync/protocol/app_setting_specifics.pb.h" |
12 #include "sync/protocol/app_specifics.pb.h" | 11 #include "sync/protocol/app_specifics.pb.h" |
13 #include "sync/protocol/autofill_specifics.pb.h" | 12 #include "sync/protocol/autofill_specifics.pb.h" |
14 #include "sync/protocol/bookmark_specifics.pb.h" | 13 #include "sync/protocol/bookmark_specifics.pb.h" |
15 #include "sync/protocol/extension_setting_specifics.pb.h" | 14 #include "sync/protocol/extension_setting_specifics.pb.h" |
16 #include "sync/protocol/extension_specifics.pb.h" | 15 #include "sync/protocol/extension_specifics.pb.h" |
17 #include "sync/protocol/nigori_specifics.pb.h" | 16 #include "sync/protocol/nigori_specifics.pb.h" |
18 #include "sync/protocol/password_specifics.pb.h" | 17 #include "sync/protocol/password_specifics.pb.h" |
19 #include "sync/protocol/preference_specifics.pb.h" | 18 #include "sync/protocol/preference_specifics.pb.h" |
20 #include "sync/protocol/search_engine_specifics.pb.h" | 19 #include "sync/protocol/search_engine_specifics.pb.h" |
21 #include "sync/protocol/session_specifics.pb.h" | 20 #include "sync/protocol/session_specifics.pb.h" |
22 #include "sync/protocol/sync.pb.h" | 21 #include "sync/protocol/sync.pb.h" |
23 #include "sync/protocol/theme_specifics.pb.h" | 22 #include "sync/protocol/theme_specifics.pb.h" |
24 #include "sync/protocol/typed_url_specifics.pb.h" | 23 #include "sync/protocol/typed_url_specifics.pb.h" |
24 #include "sync/syncable/syncable_proto_util.h" | |
25 | 25 |
26 namespace syncer { | 26 namespace syncer { |
27 | 27 |
28 void AddDefaultFieldValue(ModelType datatype, | 28 void AddDefaultFieldValue(ModelType datatype, |
29 sync_pb::EntitySpecifics* specifics) { | 29 sync_pb::EntitySpecifics* specifics) { |
30 switch (datatype) { | 30 switch (datatype) { |
31 case BOOKMARKS: | 31 case BOOKMARKS: |
32 specifics->mutable_bookmark(); | 32 specifics->mutable_bookmark(); |
33 break; | 33 break; |
34 case PASSWORDS: | 34 case PASSWORDS: |
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
139 NOTREACHED() << "No known extension for model type."; | 139 NOTREACHED() << "No known extension for model type."; |
140 return 0; | 140 return 0; |
141 } | 141 } |
142 NOTREACHED() << "Needed for linux_keep_shadow_stacks because of " | 142 NOTREACHED() << "Needed for linux_keep_shadow_stacks because of " |
143 << "http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20681"; | 143 << "http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20681"; |
144 return 0; | 144 return 0; |
145 } | 145 } |
146 | 146 |
147 // Note: keep this consistent with GetModelType in syncable.cc! | 147 // Note: keep this consistent with GetModelType in syncable.cc! |
148 ModelType GetModelType(const sync_pb::SyncEntity& sync_pb_entity) { | 148 ModelType GetModelType(const sync_pb::SyncEntity& sync_pb_entity) { |
149 const syncer::SyncEntity& sync_entity = | 149 const sync_pb::SyncEntity& sync_entity = |
150 static_cast<const syncer::SyncEntity&>(sync_pb_entity); | 150 static_cast<const sync_pb::SyncEntity&>(sync_pb_entity); |
akalin
2012/07/11 01:42:22
static cast
rlarocque
2012/07/11 19:22:16
Done.
| |
151 DCHECK(!sync_entity.id().IsRoot()); // Root shouldn't ever go over the wire. | 151 DCHECK(!IsRoot(sync_entity)); // Root shouldn't ever go over the wire. |
152 | 152 |
153 if (sync_entity.deleted()) | 153 if (sync_entity.deleted()) |
154 return UNSPECIFIED; | 154 return UNSPECIFIED; |
155 | 155 |
156 // Backwards compatibility with old (pre-specifics) protocol. | 156 // Backwards compatibility with old (pre-specifics) protocol. |
157 if (sync_entity.has_bookmarkdata()) | 157 if (sync_entity.has_bookmarkdata()) |
158 return BOOKMARKS; | 158 return BOOKMARKS; |
159 | 159 |
160 ModelType specifics_type = GetModelTypeFromSpecifics(sync_entity.specifics()); | 160 ModelType specifics_type = GetModelTypeFromSpecifics(sync_entity.specifics()); |
161 if (specifics_type != UNSPECIFIED) | 161 if (specifics_type != UNSPECIFIED) |
162 return specifics_type; | 162 return specifics_type; |
163 | 163 |
164 // Loose check for server-created top-level folders that aren't | 164 // Loose check for server-created top-level folders that aren't |
165 // bound to a particular model type. | 165 // bound to a particular model type. |
166 if (!sync_entity.server_defined_unique_tag().empty() && | 166 if (!sync_entity.server_defined_unique_tag().empty() && |
167 sync_entity.IsFolder()) { | 167 IsFolder(sync_entity)) { |
168 return TOP_LEVEL_FOLDER; | 168 return TOP_LEVEL_FOLDER; |
169 } | 169 } |
170 | 170 |
171 // This is an item of a datatype we can't understand. Maybe it's | 171 // This is an item of a datatype we can't understand. Maybe it's |
172 // from the future? Either we mis-encoded the object, or the | 172 // from the future? Either we mis-encoded the object, or the |
173 // server sent us entries it shouldn't have. | 173 // server sent us entries it shouldn't have. |
174 NOTREACHED() << "Unknown datatype in sync proto."; | 174 NOTREACHED() << "Unknown datatype in sync proto."; |
175 return UNSPECIFIED; | 175 return UNSPECIFIED; |
176 } | 176 } |
177 | 177 |
(...skipping 355 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
533 *model_type = UNSPECIFIED; | 533 *model_type = UNSPECIFIED; |
534 return false; | 534 return false; |
535 } | 535 } |
536 } | 536 } |
537 | 537 |
538 bool IsRealDataType(ModelType model_type) { | 538 bool IsRealDataType(ModelType model_type) { |
539 return model_type >= FIRST_REAL_MODEL_TYPE && model_type < MODEL_TYPE_COUNT; | 539 return model_type >= FIRST_REAL_MODEL_TYPE && model_type < MODEL_TYPE_COUNT; |
540 } | 540 } |
541 | 541 |
542 } // namespace syncer | 542 } // namespace syncer |
OLD | NEW |