| OLD | NEW |
| (Empty) |
| 1 // Copyright 2012 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 // Keep this file in sync with the .proto files in this directory. | |
| 6 | |
| 7 #ifndef SYNC_PROTOCOL_PROTO_VALUE_CONVERSIONS_H_ | |
| 8 #define SYNC_PROTOCOL_PROTO_VALUE_CONVERSIONS_H_ | |
| 9 | |
| 10 #include <memory> | |
| 11 | |
| 12 #include "sync/base/sync_export.h" | |
| 13 | |
| 14 namespace base { | |
| 15 class DictionaryValue; | |
| 16 } | |
| 17 | |
| 18 namespace sync_pb { | |
| 19 class AppListSpecifics; | |
| 20 class AppNotification; | |
| 21 class AppNotificationSettings; | |
| 22 class AppSettingSpecifics; | |
| 23 class AppSpecifics; | |
| 24 class ArcPackageSpecifics; | |
| 25 class ArticleSpecifics; | |
| 26 class AttachmentIdProto; | |
| 27 class AutofillProfileSpecifics; | |
| 28 class AutofillSpecifics; | |
| 29 class AutofillWalletSpecifics; | |
| 30 class BookmarkSpecifics; | |
| 31 class ClientConfigParams; | |
| 32 class ClientToServerMessage; | |
| 33 class ClientToServerResponse; | |
| 34 class CollapsedInfo; | |
| 35 class DatatypeAssociationStats; | |
| 36 class DebugEventInfo; | |
| 37 class DebugInfo; | |
| 38 class DeviceInfoSpecifics; | |
| 39 class DeviceInformation; | |
| 40 class DictionarySpecifics; | |
| 41 class EncryptedData; | |
| 42 class EntitySpecifics; | |
| 43 class EverythingDirective; | |
| 44 class ExperimentsSpecifics; | |
| 45 class ExtensionSettingSpecifics; | |
| 46 class ExtensionSpecifics; | |
| 47 class FaviconImageSpecifics; | |
| 48 class FaviconTrackingSpecifics; | |
| 49 class GlobalIdDirective; | |
| 50 class HistoryDeleteDirectiveSpecifics; | |
| 51 class KeystoreEncryptionFlagsSpecifics; | |
| 52 class LinkedAppIconInfo; | |
| 53 class ManagedUserSettingSpecifics; | |
| 54 class ManagedUserSharedSettingSpecifics; | |
| 55 class ManagedUserSpecifics; | |
| 56 class ManagedUserWhitelistSpecifics; | |
| 57 class Media; | |
| 58 class NavigationRedirect; | |
| 59 class NigoriSpecifics; | |
| 60 class PasswordSpecifics; | |
| 61 class PasswordSpecificsData; | |
| 62 class PreferenceSpecifics; | |
| 63 class PriorityPreferenceSpecifics; | |
| 64 class SearchEngineSpecifics; | |
| 65 class SessionHeader; | |
| 66 class SessionSpecifics; | |
| 67 class SessionTab; | |
| 68 class SessionWindow; | |
| 69 class SimpleCollapsedLayout; | |
| 70 class SyncCycleCompletedEventInfo; | |
| 71 class SyncEntity; | |
| 72 class SyncedNotificationAppInfoSpecifics; | |
| 73 class SyncedNotificationSpecifics; | |
| 74 class TabNavigation; | |
| 75 class Target; | |
| 76 class ThemeSpecifics; | |
| 77 class TimeRangeDirective; | |
| 78 class TypedUrlSpecifics; | |
| 79 class WalletMaskedCreditCard; | |
| 80 class WalletMetadataSpecifics; | |
| 81 class WalletPostalAddress; | |
| 82 class WifiCredentialSpecifics; | |
| 83 } // namespace sync_pb | |
| 84 | |
| 85 // Utility functions to convert sync protocol buffers to dictionaries. | |
| 86 // Each protocol field is mapped to a key of the same name. Repeated | |
| 87 // fields are mapped to array values and sub-messages are mapped to | |
| 88 // sub-dictionary values. | |
| 89 // | |
| 90 // TODO(akalin): Add has_* information. | |
| 91 // | |
| 92 // TODO(akalin): Improve enum support. | |
| 93 | |
| 94 namespace syncer { | |
| 95 | |
| 96 // Ownership of all returned DictionaryValues are transferred to the | |
| 97 // caller. | |
| 98 | |
| 99 // TODO(akalin): Perhaps extend this to decrypt? | |
| 100 SYNC_EXPORT std::unique_ptr<base::DictionaryValue> EncryptedDataToValue( | |
| 101 const sync_pb::EncryptedData& encrypted_data); | |
| 102 | |
| 103 // Sub-protocol of AppListSpecifics. | |
| 104 SYNC_EXPORT std::unique_ptr<base::DictionaryValue> AppListSpecificsToValue( | |
| 105 const sync_pb::AppListSpecifics& proto); | |
| 106 | |
| 107 // Sub-protocols of AppSpecifics. | |
| 108 SYNC_EXPORT std::unique_ptr<base::DictionaryValue> AppSettingsToValue( | |
| 109 const sync_pb::AppNotificationSettings& app_notification_settings); | |
| 110 | |
| 111 SYNC_EXPORT std::unique_ptr<base::DictionaryValue> LinkedAppIconInfoToValue( | |
| 112 const sync_pb::LinkedAppIconInfo& linked_app_icon_info); | |
| 113 | |
| 114 // Sub-protocol of ArcPackageSpecifics. | |
| 115 SYNC_EXPORT std::unique_ptr<base::DictionaryValue> ArcPackageSpecificsToValue( | |
| 116 const sync_pb::ArcPackageSpecifics& proto); | |
| 117 | |
| 118 // Sub-protocols of SessionSpecifics. | |
| 119 | |
| 120 SYNC_EXPORT std::unique_ptr<base::DictionaryValue> SessionHeaderToValue( | |
| 121 const sync_pb::SessionHeader& session_header); | |
| 122 | |
| 123 SYNC_EXPORT std::unique_ptr<base::DictionaryValue> SessionTabToValue( | |
| 124 const sync_pb::SessionTab& session_tab); | |
| 125 | |
| 126 SYNC_EXPORT std::unique_ptr<base::DictionaryValue> SessionWindowToValue( | |
| 127 const sync_pb::SessionWindow& session_window); | |
| 128 | |
| 129 SYNC_EXPORT std::unique_ptr<base::DictionaryValue> TabNavigationToValue( | |
| 130 const sync_pb::TabNavigation& tab_navigation); | |
| 131 | |
| 132 SYNC_EXPORT std::unique_ptr<base::DictionaryValue> NavigationRedirectToValue( | |
| 133 const sync_pb::NavigationRedirect& navigation_redirect); | |
| 134 | |
| 135 // Sub-protocol of PasswordSpecifics. | |
| 136 | |
| 137 SYNC_EXPORT std::unique_ptr<base::DictionaryValue> PasswordSpecificsDataToValue( | |
| 138 const sync_pb::PasswordSpecificsData& password_specifics_data); | |
| 139 | |
| 140 // Sub-protocol of NigoriSpecifics. | |
| 141 | |
| 142 std::unique_ptr<base::DictionaryValue> DeviceInformationToValue( | |
| 143 const sync_pb::DeviceInformation& device_information); | |
| 144 | |
| 145 // Sub-protocol of HistoryDeleteDirectiveSpecifics. | |
| 146 | |
| 147 std::unique_ptr<base::DictionaryValue> GlobalIdDirectiveToValue( | |
| 148 const sync_pb::GlobalIdDirective& global_id_directive); | |
| 149 | |
| 150 std::unique_ptr<base::DictionaryValue> TimeRangeDirectiveToValue( | |
| 151 const sync_pb::TimeRangeDirective& time_range_directive); | |
| 152 | |
| 153 // Sub-protocol of Experiments. | |
| 154 | |
| 155 std::unique_ptr<base::DictionaryValue> KeystoreEncryptionToValue( | |
| 156 const sync_pb::KeystoreEncryptionFlagsSpecifics& proto); | |
| 157 | |
| 158 SYNC_EXPORT std::unique_ptr<base::DictionaryValue> SessionSpecificsToValue( | |
| 159 const sync_pb::SessionSpecifics& session_specifics); | |
| 160 | |
| 161 // Main *SpecificsToValue functions. | |
| 162 | |
| 163 SYNC_EXPORT std::unique_ptr<base::DictionaryValue> AppNotificationToValue( | |
| 164 const sync_pb::AppNotification& app_notification_specifics); | |
| 165 | |
| 166 std::unique_ptr<base::DictionaryValue> AppSettingSpecificsToValue( | |
| 167 const sync_pb::AppSettingSpecifics& app_setting_specifics); | |
| 168 | |
| 169 SYNC_EXPORT std::unique_ptr<base::DictionaryValue> AppSpecificsToValue( | |
| 170 const sync_pb::AppSpecifics& app_specifics); | |
| 171 | |
| 172 SYNC_EXPORT std::unique_ptr<base::DictionaryValue> ArticleSpecificsToValue( | |
| 173 const sync_pb::ArticleSpecifics& article_specifics); | |
| 174 | |
| 175 SYNC_EXPORT std::unique_ptr<base::DictionaryValue> AutofillSpecificsToValue( | |
| 176 const sync_pb::AutofillSpecifics& autofill_specifics); | |
| 177 | |
| 178 SYNC_EXPORT std::unique_ptr<base::DictionaryValue> | |
| 179 AutofillProfileSpecificsToValue( | |
| 180 const sync_pb::AutofillProfileSpecifics& autofill_profile_specifics); | |
| 181 | |
| 182 SYNC_EXPORT std::unique_ptr<base::DictionaryValue> | |
| 183 WalletMetadataSpecificsToValue( | |
| 184 const sync_pb::WalletMetadataSpecifics& wallet_metadata_specifics); | |
| 185 | |
| 186 SYNC_EXPORT std::unique_ptr<base::DictionaryValue> | |
| 187 AutofillWalletSpecificsToValue( | |
| 188 const sync_pb::AutofillWalletSpecifics& autofill_wallet_specifics); | |
| 189 | |
| 190 SYNC_EXPORT std::unique_ptr<base::DictionaryValue> BookmarkSpecificsToValue( | |
| 191 const sync_pb::BookmarkSpecifics& bookmark_specifics); | |
| 192 | |
| 193 SYNC_EXPORT std::unique_ptr<base::DictionaryValue> DeviceInfoSpecificsToValue( | |
| 194 const sync_pb::DeviceInfoSpecifics& device_info_specifics); | |
| 195 | |
| 196 SYNC_EXPORT std::unique_ptr<base::DictionaryValue> DictionarySpecificsToValue( | |
| 197 const sync_pb::DictionarySpecifics& dictionary_specifics); | |
| 198 | |
| 199 SYNC_EXPORT std::unique_ptr<base::DictionaryValue> ExperimentsSpecificsToValue( | |
| 200 const sync_pb::ExperimentsSpecifics& proto); | |
| 201 | |
| 202 SYNC_EXPORT std::unique_ptr<base::DictionaryValue> | |
| 203 PriorityPreferenceSpecificsToValue( | |
| 204 const sync_pb::PriorityPreferenceSpecifics& proto); | |
| 205 | |
| 206 SYNC_EXPORT std::unique_ptr<base::DictionaryValue> | |
| 207 ExtensionSettingSpecificsToValue( | |
| 208 const sync_pb::ExtensionSettingSpecifics& extension_setting_specifics); | |
| 209 | |
| 210 SYNC_EXPORT std::unique_ptr<base::DictionaryValue> ExtensionSpecificsToValue( | |
| 211 const sync_pb::ExtensionSpecifics& extension_specifics); | |
| 212 | |
| 213 SYNC_EXPORT std::unique_ptr<base::DictionaryValue> FaviconImageSpecificsToValue( | |
| 214 const sync_pb::FaviconImageSpecifics& favicon_image_specifics); | |
| 215 | |
| 216 SYNC_EXPORT std::unique_ptr<base::DictionaryValue> | |
| 217 FaviconTrackingSpecificsToValue( | |
| 218 const sync_pb::FaviconTrackingSpecifics& favicon_tracking_specifics); | |
| 219 | |
| 220 SYNC_EXPORT std::unique_ptr<base::DictionaryValue> | |
| 221 HistoryDeleteDirectiveSpecificsToValue( | |
| 222 const sync_pb::HistoryDeleteDirectiveSpecifics& | |
| 223 history_delete_directive_specifics); | |
| 224 | |
| 225 SYNC_EXPORT std::unique_ptr<base::DictionaryValue> | |
| 226 ManagedUserSettingSpecificsToValue( | |
| 227 const sync_pb::ManagedUserSettingSpecifics& managed_user_setting_specifics); | |
| 228 | |
| 229 SYNC_EXPORT std::unique_ptr<base::DictionaryValue> ManagedUserSpecificsToValue( | |
| 230 const sync_pb::ManagedUserSpecifics& managed_user_specifics); | |
| 231 | |
| 232 SYNC_EXPORT std::unique_ptr<base::DictionaryValue> | |
| 233 ManagedUserSharedSettingSpecificsToValue( | |
| 234 const sync_pb::ManagedUserSharedSettingSpecifics& | |
| 235 managed_user_shared_setting_specifics); | |
| 236 | |
| 237 SYNC_EXPORT std::unique_ptr<base::DictionaryValue> | |
| 238 ManagedUserWhitelistSpecificsToValue( | |
| 239 const sync_pb::ManagedUserWhitelistSpecifics& | |
| 240 managed_user_whitelist_specifics); | |
| 241 | |
| 242 SYNC_EXPORT std::unique_ptr<base::DictionaryValue> MediaToValue( | |
| 243 const sync_pb::Media& media); | |
| 244 | |
| 245 SYNC_EXPORT std::unique_ptr<base::DictionaryValue> NigoriSpecificsToValue( | |
| 246 const sync_pb::NigoriSpecifics& nigori_specifics); | |
| 247 | |
| 248 SYNC_EXPORT std::unique_ptr<base::DictionaryValue> PasswordSpecificsToValue( | |
| 249 const sync_pb::PasswordSpecifics& password_specifics); | |
| 250 | |
| 251 SYNC_EXPORT std::unique_ptr<base::DictionaryValue> PreferenceSpecificsToValue( | |
| 252 const sync_pb::PreferenceSpecifics& password_specifics); | |
| 253 | |
| 254 SYNC_EXPORT std::unique_ptr<base::DictionaryValue> | |
| 255 SyncedNotificationAppInfoSpecificsToValue( | |
| 256 const sync_pb::SyncedNotificationAppInfoSpecifics& | |
| 257 synced_notification_specifics); | |
| 258 | |
| 259 SYNC_EXPORT std::unique_ptr<base::DictionaryValue> | |
| 260 SyncedNotificationSpecificsToValue( | |
| 261 const sync_pb::SyncedNotificationSpecifics& synced_notification_specifics); | |
| 262 | |
| 263 SYNC_EXPORT std::unique_ptr<base::DictionaryValue> SearchEngineSpecificsToValue( | |
| 264 const sync_pb::SearchEngineSpecifics& search_engine_specifics); | |
| 265 | |
| 266 SYNC_EXPORT std::unique_ptr<base::DictionaryValue> ThemeSpecificsToValue( | |
| 267 const sync_pb::ThemeSpecifics& theme_specifics); | |
| 268 | |
| 269 SYNC_EXPORT std::unique_ptr<base::DictionaryValue> TypedUrlSpecificsToValue( | |
| 270 const sync_pb::TypedUrlSpecifics& typed_url_specifics); | |
| 271 | |
| 272 SYNC_EXPORT std::unique_ptr<base::DictionaryValue> | |
| 273 WalletMaskedCreditCardToValue( | |
| 274 const sync_pb::WalletMaskedCreditCard& wallet_masked_card); | |
| 275 | |
| 276 SYNC_EXPORT std::unique_ptr<base::DictionaryValue> WalletPostalAddressToValue( | |
| 277 const sync_pb::WalletPostalAddress& wallet_postal_address); | |
| 278 | |
| 279 SYNC_EXPORT std::unique_ptr<base::DictionaryValue> | |
| 280 WifiCredentialSpecificsToValue( | |
| 281 const sync_pb::WifiCredentialSpecifics& wifi_credential_specifics); | |
| 282 | |
| 283 // Any present extensions are mapped to sub-dictionary values with the | |
| 284 // key equal to the extension name. | |
| 285 SYNC_EXPORT std::unique_ptr<base::DictionaryValue> EntitySpecificsToValue( | |
| 286 const sync_pb::EntitySpecifics& specifics); | |
| 287 | |
| 288 SYNC_EXPORT std::unique_ptr<base::DictionaryValue> SyncEntityToValue( | |
| 289 const sync_pb::SyncEntity& entity, | |
| 290 bool include_specifics); | |
| 291 | |
| 292 SYNC_EXPORT std::unique_ptr<base::DictionaryValue> ClientToServerMessageToValue( | |
| 293 const sync_pb::ClientToServerMessage& proto, | |
| 294 bool include_specifics); | |
| 295 | |
| 296 SYNC_EXPORT std::unique_ptr<base::DictionaryValue> | |
| 297 ClientToServerResponseToValue(const sync_pb::ClientToServerResponse& proto, | |
| 298 bool include_specifics); | |
| 299 | |
| 300 std::unique_ptr<base::DictionaryValue> DatatypeAssociationStatsToValue( | |
| 301 const sync_pb::DatatypeAssociationStats& proto); | |
| 302 | |
| 303 std::unique_ptr<base::DictionaryValue> DebugEventInfoToValue( | |
| 304 const sync_pb::DebugEventInfo& proto); | |
| 305 | |
| 306 std::unique_ptr<base::DictionaryValue> DebugInfoToValue( | |
| 307 const sync_pb::DebugInfo& proto); | |
| 308 | |
| 309 std::unique_ptr<base::DictionaryValue> SyncCycleCompletedEventInfoToValue( | |
| 310 const sync_pb::SyncCycleCompletedEventInfo& proto); | |
| 311 | |
| 312 std::unique_ptr<base::DictionaryValue> ClientConfigParamsToValue( | |
| 313 const sync_pb::ClientConfigParams& proto); | |
| 314 | |
| 315 SYNC_EXPORT std::unique_ptr<base::DictionaryValue> AttachmentIdProtoToValue( | |
| 316 const sync_pb::AttachmentIdProto& proto); | |
| 317 | |
| 318 } // namespace syncer | |
| 319 | |
| 320 #endif // SYNC_PROTOCOL_PROTO_VALUE_CONVERSIONS_H_ | |
| OLD | NEW |