| // 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. |
| |
| // Keep this file in sync with the .proto files in this directory. |
| |
| #ifndef CHROME_BROWSER_SYNC_PROTOCOL_PROTO_VALUE_CONVERSIONS_H_ |
| #define CHROME_BROWSER_SYNC_PROTOCOL_PROTO_VALUE_CONVERSIONS_H_ |
| #pragma once |
| |
| class DictionaryValue; |
| |
| namespace sync_pb { |
| class AppSpecifics; |
| class AutofillCreditCardSpecifics; |
| class AutofillProfileSpecifics; |
| class AutofillSpecifics; |
| class BookmarkSpecifics; |
| class EncryptedData; |
| class EntitySpecifics; |
| class ExtensionSpecifics; |
| class NigoriSpecifics; |
| class PasswordSpecifics; |
| class PasswordSpecificsData; |
| class PreferenceSpecifics; |
| class SessionHeader; |
| class SessionSpecifics; |
| class SessionTab; |
| class SessionWindow; |
| class TabNavigation; |
| class ThemeSpecifics; |
| class TypedUrlSpecifics; |
| } // namespace sync_pb |
| |
| // Utility functions to convert sync protocol buffers to dictionaries. |
| // Each protocol field is mapped to a key of the same name. Repeated |
| // fields are mapped to array values and sub-messages are mapped to |
| // sub-dictionary values. |
| // |
| // TODO(akalin): Add has_* information. |
| // |
| // TODO(akalin): Improve enum support. |
| |
| namespace browser_sync { |
| |
| // Ownership of all returned DictionaryValues are transferred to the |
| // caller. |
| |
| // TODO(akalin): Perhaps extend this to decrypt? |
| DictionaryValue* EncryptedDataToValue( |
| const sync_pb::EncryptedData& encrypted_data); |
| |
| // Sub-protocols of SessionSpecifics. |
| |
| DictionaryValue* SessionHeaderToValue( |
| const sync_pb::SessionHeader& session_header); |
| |
| DictionaryValue* SessionTabToValue( |
| const sync_pb::SessionTab& session_tab); |
| |
| DictionaryValue* SessionWindowToValue( |
| const sync_pb::SessionWindow& session_window); |
| |
| DictionaryValue* TabNavigationToValue( |
| const sync_pb::TabNavigation& tab_navigation); |
| |
| // Sub-protocol of PasswordSpecifics. |
| |
| DictionaryValue* PasswordSpecificsDataToValue( |
| const sync_pb::PasswordSpecificsData& password_specifics_data); |
| |
| // Main *SpecificsToValue functions. |
| |
| DictionaryValue* AppSpecificsToValue( |
| const sync_pb::AppSpecifics& app_specifics); |
| |
| DictionaryValue* AutofillSpecificsToValue( |
| const sync_pb::AutofillSpecifics& autofill_specifics); |
| |
| DictionaryValue* AutofillCreditCardSpecificsToValue( |
| const sync_pb::AutofillCreditCardSpecifics& |
| autofill_credit_card_specifics); |
| |
| DictionaryValue* AutofillProfileSpecificsToValue( |
| const sync_pb::AutofillProfileSpecifics& autofill_profile_specifics); |
| |
| DictionaryValue* BookmarkSpecificsToValue( |
| const sync_pb::BookmarkSpecifics& bookmark_specifics); |
| |
| DictionaryValue* ExtensionSpecificsToValue( |
| const sync_pb::ExtensionSpecifics& extension_specifics); |
| |
| DictionaryValue* NigoriSpecificsToValue( |
| const sync_pb::NigoriSpecifics& nigori_specifics); |
| |
| DictionaryValue* PasswordSpecificsToValue( |
| const sync_pb::PasswordSpecifics& password_specifics); |
| |
| DictionaryValue* PreferenceSpecificsToValue( |
| const sync_pb::PreferenceSpecifics& password_specifics); |
| |
| DictionaryValue* SessionSpecificsToValue( |
| const sync_pb::SessionSpecifics& session_specifics); |
| |
| DictionaryValue* ThemeSpecificsToValue( |
| const sync_pb::ThemeSpecifics& theme_specifics); |
| |
| DictionaryValue* TypedUrlSpecificsToValue( |
| const sync_pb::TypedUrlSpecifics& typed_url_specifics); |
| |
| // Any present extensions are mapped to sub-dictionary values with the |
| // key equal to the extension name. |
| DictionaryValue* EntitySpecificsToValue( |
| const sync_pb::EntitySpecifics& entity_specifics); |
| |
| } // namespace browser_sync |
| |
| #endif // CHROME_BROWSER_SYNC_PROTOCOL_PROTO_VALUE_CONVERSIONS_H_ |