| Index: components/sync/protocol/proto_visitors.h
|
| diff --git a/components/sync/protocol/proto_visitors.h b/components/sync/protocol/proto_visitors.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..b2b57e20f3af469e5996bc2bdd050bec893e6f37
|
| --- /dev/null
|
| +++ b/components/sync/protocol/proto_visitors.h
|
| @@ -0,0 +1,890 @@
|
| +// Copyright 2016 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 COMPONENTS_SYNC_PROTOCOL_PROTO_VALUE_VISITOR_CONVERSIONS_H_
|
| +#define COMPONENTS_SYNC_PROTOCOL_PROTO_VALUE_VISITOR_CONVERSIONS_H_
|
| +
|
| +#include "components/sync/protocol/app_list_specifics.pb.h"
|
| +#include "components/sync/protocol/app_notification_specifics.pb.h"
|
| +#include "components/sync/protocol/app_setting_specifics.pb.h"
|
| +#include "components/sync/protocol/app_specifics.pb.h"
|
| +#include "components/sync/protocol/arc_package_specifics.pb.h"
|
| +#include "components/sync/protocol/autofill_specifics.pb.h"
|
| +#include "components/sync/protocol/bookmark_specifics.pb.h"
|
| +#include "components/sync/protocol/dictionary_specifics.pb.h"
|
| +#include "components/sync/protocol/encryption.pb.h"
|
| +#include "components/sync/protocol/entity_metadata.pb.h"
|
| +#include "components/sync/protocol/experiments_specifics.pb.h"
|
| +#include "components/sync/protocol/extension_setting_specifics.pb.h"
|
| +#include "components/sync/protocol/extension_specifics.pb.h"
|
| +#include "components/sync/protocol/favicon_image_specifics.pb.h"
|
| +#include "components/sync/protocol/favicon_tracking_specifics.pb.h"
|
| +#include "components/sync/protocol/history_delete_directive_specifics.pb.h"
|
| +#include "components/sync/protocol/nigori_specifics.pb.h"
|
| +#include "components/sync/protocol/password_specifics.pb.h"
|
| +#include "components/sync/protocol/preference_specifics.pb.h"
|
| +#include "components/sync/protocol/printer_specifics.pb.h"
|
| +#include "components/sync/protocol/priority_preference_specifics.pb.h"
|
| +#include "components/sync/protocol/proto_enum_conversions.h"
|
| +#include "components/sync/protocol/reading_list_specifics.pb.h"
|
| +#include "components/sync/protocol/search_engine_specifics.pb.h"
|
| +#include "components/sync/protocol/session_specifics.pb.h"
|
| +#include "components/sync/protocol/sync.pb.h"
|
| +#include "components/sync/protocol/theme_specifics.pb.h"
|
| +#include "components/sync/protocol/typed_url_specifics.pb.h"
|
| +#include "components/sync/protocol/unique_position.pb.h"
|
| +
|
| +#define VISIT_(Kind, field) \
|
| + if (proto.has_##field()) \
|
| + visitor.Visit##Kind(proto, #field, proto.field())
|
| +
|
| +#define VISIT_BYTES(field) VISIT_(Bytes, field)
|
| +#define VISIT_ENUM(field) VISIT_(Enum, field)
|
| +#define VISIT(field) VISIT_(, field)
|
| +
|
| +#define VISIT_REP(field) \
|
| + visitor.Visit(proto, #field, proto.field());
|
| +
|
| +// TODO(dskiba): undef VISIT_* at the end
|
| +
|
| +namespace syncer {
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::EncryptedData& proto) {
|
| + VISIT(key_name);
|
| + // TODO(akalin): Shouldn't blob be of type bytes instead of string?
|
| + VISIT_BYTES(blob);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::PasswordSpecificsMetadata& proto) {
|
| + VISIT(url);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::AppNotificationSettings& proto) {
|
| + VISIT(initial_setup_done);
|
| + VISIT(disabled);
|
| + VISIT(oauth_client_id);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::SessionHeader& proto) {
|
| + VISIT_REP(window);
|
| + VISIT(client_name);
|
| + VISIT_ENUM(device_type);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::SessionTab& proto) {
|
| + VISIT(tab_id);
|
| + VISIT(window_id);
|
| + VISIT(tab_visual_index);
|
| + VISIT(current_navigation_index);
|
| + VISIT(pinned);
|
| + VISIT(extension_app_id);
|
| + VISIT_REP(navigation);
|
| + VISIT_BYTES(favicon);
|
| + VISIT_ENUM(favicon_type);
|
| + VISIT(favicon_source);
|
| + VISIT_REP(variation_id);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::SessionWindow& proto) {
|
| + VISIT(window_id);
|
| + VISIT(selected_tab_index);
|
| + VISIT_REP(tab);
|
| + VISIT_ENUM(browser_type);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::TabNavigation& proto) {
|
| + VISIT(virtual_url);
|
| + VISIT(referrer);
|
| + VISIT(title);
|
| + VISIT_ENUM(page_transition);
|
| + VISIT_ENUM(redirect_type);
|
| + VISIT(unique_id);
|
| + VISIT(timestamp_msec);
|
| + VISIT(navigation_forward_back);
|
| + VISIT(navigation_from_address_bar);
|
| + VISIT(navigation_home_page);
|
| + VISIT(navigation_chain_start);
|
| + VISIT(navigation_chain_end);
|
| + VISIT(global_id);
|
| + VISIT(search_terms);
|
| + VISIT(favicon_url);
|
| + VISIT_ENUM(blocked_state);
|
| + VISIT_REP(content_pack_categories);
|
| + VISIT(http_status_code);
|
| + VISIT(obsolete_referrer_policy);
|
| + VISIT(is_restored);
|
| + VISIT_REP(navigation_redirect);
|
| + VISIT(last_navigation_redirect_url);
|
| + VISIT(correct_referrer_policy);
|
| + VISIT_ENUM(password_state);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::NavigationRedirect& proto) {
|
| + VISIT(url);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::PasswordSpecificsData& proto) {
|
| + VISIT(scheme);
|
| + VISIT(signon_realm);
|
| + VISIT(origin);
|
| + VISIT(action);
|
| + VISIT(username_element);
|
| + VISIT(username_value);
|
| + VISIT(password_element);
|
| + VISIT(preferred);
|
| + VISIT(date_created);
|
| + VISIT(blacklisted);
|
| + VISIT(type);
|
| + VISIT(times_used);
|
| + VISIT(display_name);
|
| + VISIT(avatar_url);
|
| + VISIT(federation_url);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::GlobalIdDirective& proto) {
|
| + VISIT_REP(global_id);
|
| + VISIT(start_time_usec);
|
| + VISIT(end_time_usec);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::TimeRangeDirective& proto) {
|
| + VISIT(start_time_usec);
|
| + VISIT(end_time_usec);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::AppListSpecifics& proto) {
|
| + VISIT(item_id);
|
| + VISIT_ENUM(item_type);
|
| + VISIT(item_name);
|
| + VISIT(parent_id);
|
| + VISIT(item_ordinal);
|
| + VISIT(item_pin_ordinal);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::ArcPackageSpecifics& proto) {
|
| + VISIT(package_name);
|
| + VISIT(package_version);
|
| + VISIT(last_backup_android_id);
|
| + VISIT(last_backup_time);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::PrinterPPDData& proto) {
|
| + VISIT(id);
|
| + VISIT(file_name);
|
| + VISIT(version_number);
|
| + VISIT(from_quirks_server);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::ReadingListSpecifics& proto) {
|
| + VISIT(entry_id);
|
| + VISIT(title);
|
| + VISIT(url);
|
| + VISIT(creation_time_us);
|
| + VISIT(update_time_us);
|
| + VISIT_ENUM(status);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::AppNotification& proto) {
|
| + VISIT(guid);
|
| + VISIT(app_id);
|
| + VISIT(creation_timestamp_ms);
|
| + VISIT(title);
|
| + VISIT(body_text);
|
| + VISIT(link_url);
|
| + VISIT(link_text);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::AppSettingSpecifics& proto) {
|
| + VISIT(extension_setting);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::LinkedAppIconInfo& proto) {
|
| + VISIT(url);
|
| + VISIT(size);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::AppSpecifics& proto) {
|
| + VISIT(extension);
|
| + VISIT(notification_settings);
|
| + VISIT(app_launch_ordinal);
|
| + VISIT(page_ordinal);
|
| + VISIT_ENUM(launch_type);
|
| + VISIT(bookmark_app_url);
|
| + VISIT(bookmark_app_description);
|
| + VISIT(bookmark_app_icon_color);
|
| + VISIT_REP(linked_app_icons);
|
| +
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::AutofillSpecifics& proto) {
|
| + VISIT(name);
|
| + VISIT(value);
|
| + VISIT_REP(usage_timestamp);
|
| + VISIT(profile);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::AutofillProfileSpecifics& proto) {
|
| + VISIT(guid);
|
| + VISIT(origin);
|
| + VISIT(use_count);
|
| + VISIT(use_date);
|
| +
|
| + VISIT_REP(name_first);
|
| + VISIT_REP(name_middle);
|
| + VISIT_REP(name_last);
|
| + VISIT_REP(name_full);
|
| + VISIT_REP(email_address);
|
| + VISIT(company_name);
|
| +
|
| + VISIT(address_home_line1);
|
| + VISIT(address_home_line2);
|
| + VISIT(address_home_city);
|
| + VISIT(address_home_state);
|
| + VISIT(address_home_zip);
|
| + VISIT(address_home_country);
|
| +
|
| + VISIT(address_home_street_address);
|
| + VISIT(address_home_sorting_code);
|
| + VISIT(address_home_dependent_locality);
|
| + VISIT(address_home_language_code);
|
| +
|
| + VISIT_REP(phone_home_whole_number);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::WalletMetadataSpecifics& proto) {
|
| + VISIT_ENUM(type);
|
| + VISIT(id);
|
| + VISIT(use_count);
|
| + VISIT(use_date);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::AutofillWalletSpecifics& proto) {
|
| + VISIT_ENUM(type);
|
| + VISIT(masked_card);
|
| + VISIT(address);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::MetaInfo& proto) {
|
| + VISIT(key);
|
| + VISIT(value);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::BookmarkSpecifics& proto) {
|
| + VISIT(url);
|
| + VISIT_BYTES(favicon);
|
| + VISIT(title);
|
| + VISIT(creation_time_us);
|
| + VISIT(icon_url);
|
| + VISIT_REP(meta_info);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::DeviceInfoSpecifics& proto) {
|
| + VISIT(cache_guid);
|
| + VISIT(client_name);
|
| + VISIT_ENUM(device_type);
|
| + VISIT(sync_user_agent);
|
| + VISIT(chrome_version);
|
| + VISIT(signin_scoped_device_id);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::DictionarySpecifics& proto) {
|
| + VISIT(word);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::FaviconSyncFlags& proto) {
|
| + VISIT(enabled);
|
| + VISIT(favicon_sync_limit);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::KeystoreEncryptionFlags& proto) {
|
| + VISIT(enabled);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::HistoryDeleteDirectives& proto) {
|
| + VISIT(enabled);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::AutofillCullingFlags& proto) {
|
| + VISIT(enabled);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::PreCommitUpdateAvoidanceFlags& proto) {
|
| + VISIT(enabled);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::GcmChannelFlags& proto) {
|
| + VISIT(enabled);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::GcmInvalidationsFlags& proto) {
|
| + VISIT(enabled);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::ExperimentsSpecifics& proto) {
|
| + VISIT(keystore_encryption);
|
| + VISIT(history_delete_directives);
|
| + VISIT(autofill_culling);
|
| + VISIT(pre_commit_update_avoidance);
|
| + VISIT(favicon_sync);
|
| + VISIT(gcm_channel);
|
| + VISIT(gcm_invalidations);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::ExtensionSettingSpecifics& proto) {
|
| + VISIT(extension_id);
|
| + VISIT(key);
|
| + VISIT(value);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::ExtensionSpecifics& proto) {
|
| + VISIT(id);
|
| + VISIT(version);
|
| + VISIT(update_url);
|
| + VISIT(enabled);
|
| + VISIT(incognito_enabled);
|
| + VISIT(name);
|
| + VISIT(remote_install);
|
| + VISIT(installed_by_custodian);
|
| + VISIT(all_urls_enabled);
|
| + VISIT(disable_reasons);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::FaviconData& proto) {
|
| + VISIT_BYTES(favicon);
|
| + VISIT(width);
|
| + VISIT(height);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::FaviconImageSpecifics& proto) {
|
| + VISIT(favicon_url);
|
| + VISIT(favicon_web);
|
| + VISIT(favicon_web_32);
|
| + VISIT(favicon_touch_64);
|
| + VISIT(favicon_touch_precomposed_64);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::FaviconTrackingSpecifics& proto) {
|
| + VISIT(favicon_url);
|
| + VISIT(last_visit_time_ms);
|
| + VISIT(is_bookmarked);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::HistoryDeleteDirectiveSpecifics& proto) {
|
| + VISIT(global_id_directive);
|
| + VISIT(time_range_directive);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::ManagedUserSettingSpecifics& proto) {
|
| + VISIT(name);
|
| + VISIT(value);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::ManagedUserSpecifics& proto) {
|
| + VISIT(id);
|
| + VISIT(name);
|
| + VISIT(acknowledged);
|
| + VISIT(master_key);
|
| + VISIT(chrome_avatar);
|
| + VISIT(chromeos_avatar);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::ManagedUserSharedSettingSpecifics& proto) {
|
| + VISIT(mu_id);
|
| + VISIT(key);
|
| + VISIT(value);
|
| + VISIT(acknowledged);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::ManagedUserWhitelistSpecifics& proto) {
|
| + VISIT(id);
|
| + VISIT(name);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::NigoriSpecifics& proto) {
|
| + VISIT(encryption_keybag);
|
| + VISIT(keybag_is_frozen);
|
| + VISIT(encrypt_bookmarks);
|
| + VISIT(encrypt_preferences);
|
| + VISIT(encrypt_autofill_profile);
|
| + VISIT(encrypt_autofill);
|
| + VISIT(encrypt_themes);
|
| + VISIT(encrypt_typed_urls);
|
| + VISIT(encrypt_extension_settings);
|
| + VISIT(encrypt_extensions);
|
| + VISIT(encrypt_sessions);
|
| + VISIT(encrypt_app_settings);
|
| + VISIT(encrypt_apps);
|
| + VISIT(encrypt_search_engines);
|
| + VISIT(encrypt_dictionary);
|
| + VISIT(encrypt_articles);
|
| + VISIT(encrypt_app_list);
|
| + VISIT(encrypt_arc_package);
|
| + VISIT(encrypt_reading_list);
|
| + VISIT(encrypt_everything);
|
| + VISIT(server_only_was_missing_keystore_migration_time);
|
| + VISIT(sync_tab_favicons);
|
| + VISIT_ENUM(passphrase_type);
|
| + VISIT(keystore_decryptor_token);
|
| + VISIT(keystore_migration_time);
|
| + VISIT(custom_passphrase_time);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::ArticlePage& proto) {
|
| + VISIT(url);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::ArticleSpecifics& proto) {
|
| + VISIT(entry_id);
|
| + VISIT(title);
|
| + VISIT_REP(pages);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::PasswordSpecifics& proto) {
|
| + VISIT(encrypted);
|
| + VISIT(unencrypted_metadata);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::PreferenceSpecifics& proto) {
|
| + VISIT(name);
|
| + VISIT(value);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::PrinterSpecifics& proto) {
|
| + VISIT(id);
|
| + VISIT(display_name);
|
| + VISIT(description);
|
| + VISIT(manufacturer);
|
| + VISIT(model);
|
| + VISIT(uri);
|
| + VISIT(uuid);
|
| + VISIT(ppd);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::PriorityPreferenceSpecifics& proto) {
|
| + VISIT(preference);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::SyncedNotificationAppInfoSpecifics& proto) {
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::SyncedNotificationSpecifics& proto) {
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::SearchEngineSpecifics& proto) {
|
| + VISIT(short_name);
|
| + VISIT(keyword);
|
| + VISIT(favicon_url);
|
| + VISIT(url);
|
| + VISIT(safe_for_autoreplace);
|
| + VISIT(originating_url);
|
| + VISIT(date_created);
|
| + VISIT(input_encodings);
|
| + VISIT(show_in_default_list);
|
| + VISIT(suggestions_url);
|
| + VISIT(prepopulate_id);
|
| + VISIT(autogenerate_keyword);
|
| + VISIT(instant_url);
|
| + VISIT(last_modified);
|
| + VISIT(sync_guid);
|
| + VISIT_REP(alternate_urls);
|
| + VISIT(search_terms_replacement_key);
|
| + VISIT(image_url);
|
| + VISIT(search_url_post_params);
|
| + VISIT(suggestions_url_post_params);
|
| + VISIT(instant_url_post_params);
|
| + VISIT(image_url_post_params);
|
| + VISIT(new_tab_url);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::SessionSpecifics& proto) {
|
| + VISIT(session_tag);
|
| + VISIT(header);
|
| + VISIT(tab);
|
| + VISIT(tab_node_id);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::ThemeSpecifics& proto) {
|
| + VISIT(use_custom_theme);
|
| + VISIT(use_system_theme_by_default);
|
| + VISIT(custom_theme_name);
|
| + VISIT(custom_theme_id);
|
| + VISIT(custom_theme_update_url);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::TypedUrlSpecifics& proto) {
|
| + VISIT(url);
|
| + VISIT(title);
|
| + VISIT(hidden);
|
| + VISIT_REP(visits);
|
| + VISIT_REP(visit_transitions);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::WalletMaskedCreditCard& proto) {
|
| + VISIT(id);
|
| + VISIT_ENUM(status);
|
| + VISIT(name_on_card);
|
| + VISIT_ENUM(type);
|
| + VISIT(last_four);
|
| + VISIT(exp_month);
|
| + VISIT(exp_year);
|
| + VISIT(billing_address_id);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::WalletPostalAddress& proto) {
|
| + VISIT(id);
|
| + VISIT(recipient_name);
|
| + VISIT(company_name);
|
| + VISIT_REP(street_address);
|
| + VISIT(address_1);
|
| + VISIT(address_2);
|
| + VISIT(address_3);
|
| + VISIT(address_4);
|
| + VISIT(postal_code);
|
| + VISIT(sorting_code);
|
| + VISIT(country_code);
|
| + VISIT(phone_number);
|
| + VISIT(language_code);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::WifiCredentialSpecifics& proto) {
|
| + VISIT_BYTES(ssid);
|
| + VISIT_ENUM(security_class);
|
| + VISIT_BYTES(passphrase);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::EntitySpecifics& proto) {
|
| + VISIT(app);
|
| + VISIT(app_list);
|
| + VISIT(app_notification);
|
| + VISIT(app_setting);
|
| + VISIT(arc_package);
|
| + VISIT(article);
|
| + VISIT(autofill);
|
| + VISIT(autofill_profile);
|
| + VISIT(autofill_wallet);
|
| + VISIT(wallet_metadata);
|
| + VISIT(bookmark);
|
| + VISIT(device_info);
|
| + VISIT(dictionary);
|
| + VISIT(experiments);
|
| + VISIT(extension);
|
| + VISIT(extension_setting);
|
| + VISIT(favicon_image);
|
| + VISIT(favicon_tracking);
|
| + VISIT(history_delete_directive);
|
| + VISIT(managed_user_setting);
|
| + VISIT(managed_user_shared_setting);
|
| + VISIT(managed_user);
|
| + VISIT(managed_user_whitelist);
|
| + VISIT(nigori);
|
| + VISIT(password);
|
| + VISIT(preference);
|
| + VISIT(printer);
|
| + VISIT(priority_preference);
|
| + VISIT(reading_list);
|
| + VISIT(search_engine);
|
| + VISIT(session);
|
| + VISIT(synced_notification);
|
| + VISIT(synced_notification_app_info);
|
| + VISIT(theme);
|
| + VISIT(typed_url);
|
| + VISIT(wifi_credential);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::SyncEntity& proto) {
|
| + VISIT(id_string);
|
| + VISIT(parent_id_string);
|
| + VISIT(old_parent_id);
|
| + VISIT(version);
|
| + VISIT(mtime);
|
| + VISIT(ctime);
|
| + VISIT(name);
|
| + VISIT(non_unique_name);
|
| + VISIT(sync_timestamp);
|
| + VISIT(server_defined_unique_tag);
|
| + VISIT(position_in_parent);
|
| + VISIT(unique_position);
|
| + VISIT(insert_after_item_id);
|
| + VISIT(deleted);
|
| + VISIT(originator_cache_guid);
|
| + VISIT(originator_client_item_id);
|
| + VISIT(specifics);
|
| + VISIT(folder);
|
| + VISIT(client_defined_unique_tag);
|
| + VISIT_REP(attachment_id);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::ChromiumExtensionsActivity& proto) {
|
| + VISIT(extension_id);
|
| + VISIT(bookmark_writes_since_last_commit);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::CommitMessage& proto) {
|
| + VISIT_REP(entries);
|
| + VISIT(cache_guid);
|
| + VISIT_REP(extensions_activity);
|
| + VISIT(config_params);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::GetUpdateTriggers& proto) {
|
| + VISIT_REP(notification_hint);
|
| + VISIT(client_dropped_hints);
|
| + VISIT(invalidations_out_of_sync);
|
| + VISIT(local_modification_nudges);
|
| + VISIT(datatype_refresh_nudges);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::DataTypeProgressMarker& proto) {
|
| + VISIT(data_type_id);
|
| + VISIT_BYTES(token);
|
| + VISIT(timestamp_token_for_migration);
|
| + VISIT(notification_hint);
|
| + VISIT(get_update_triggers);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::DataTypeContext& proto) {
|
| + VISIT(data_type_id);
|
| + VISIT(context);
|
| + VISIT(version);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::GetUpdatesCallerInfo& proto) {
|
| + VISIT_ENUM(source);
|
| + VISIT(notifications_enabled);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::GetUpdatesMessage& proto) {
|
| + VISIT(caller_info);
|
| + VISIT(fetch_folders);
|
| + VISIT(batch_size);
|
| + VISIT_REP(from_progress_marker);
|
| + VISIT(streaming);
|
| + VISIT(need_encryption_key);
|
| + VISIT(create_mobile_bookmarks_folder);
|
| + VISIT_ENUM(get_updates_origin);
|
| + VISIT_REP(client_contexts);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::ClientStatus& proto) {
|
| + VISIT(hierarchy_conflict_detected);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::CommitResponse::EntryResponse& proto) {
|
| + VISIT_ENUM(response_type);
|
| + VISIT(id_string);
|
| + VISIT(parent_id_string);
|
| + VISIT(position_in_parent);
|
| + VISIT(version);
|
| + VISIT(name);
|
| + VISIT(error_message);
|
| + VISIT(mtime);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::CommitResponse& proto) {
|
| + VISIT_REP(entryresponse);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::GetUpdatesResponse& proto) {
|
| + VISIT_REP(entries)
|
| + VISIT(changes_remaining);
|
| + VISIT_REP(new_progress_marker);
|
| + VISIT_REP(context_mutations);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::ClientCommand& proto) {
|
| + VISIT(set_sync_poll_interval);
|
| + VISIT(set_sync_long_poll_interval);
|
| + VISIT(max_commit_batch_size);
|
| + VISIT(sessions_commit_delay_seconds);
|
| + VISIT(throttle_delay_seconds);
|
| + VISIT(client_invalidation_hint_buffer_size);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::ClientToServerResponse::Error& proto) {
|
| + VISIT_ENUM(error_type);
|
| + VISIT(error_description);
|
| + VISIT(url);
|
| + VISIT_ENUM(action);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::ClientToServerResponse& proto) {
|
| + VISIT(commit);
|
| + VISIT(get_updates);
|
| + VISIT(error);
|
| + VISIT_ENUM(error_code);
|
| + VISIT(error_message);
|
| + VISIT(store_birthday);
|
| + VISIT(client_command);
|
| + VISIT_REP(migrated_data_type_id);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::ClientToServerMessage& proto) {
|
| + VISIT(share);
|
| + VISIT(protocol_version);
|
| + VISIT(commit);
|
| + VISIT(get_updates);
|
| + VISIT(store_birthday);
|
| + VISIT(sync_problem_detected);
|
| + VISIT(debug_info);
|
| + VISIT(client_status);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::DatatypeAssociationStats& proto) {
|
| + VISIT(data_type_id);
|
| + VISIT(num_local_items_before_association);
|
| + VISIT(num_sync_items_before_association);
|
| + VISIT(num_local_items_after_association);
|
| + VISIT(num_sync_items_after_association);
|
| + VISIT(num_local_items_added);
|
| + VISIT(num_local_items_deleted);
|
| + VISIT(num_local_items_modified);
|
| + VISIT(num_sync_items_added);
|
| + VISIT(num_sync_items_deleted);
|
| + VISIT(num_sync_items_modified);
|
| + VISIT(local_version_pre_association);
|
| + VISIT(sync_version_pre_association);
|
| + VISIT(had_error);
|
| + VISIT(download_wait_time_us);
|
| + VISIT(download_time_us);
|
| + VISIT(association_wait_time_for_high_priority_us);
|
| + VISIT(association_wait_time_for_same_priority_us);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::DebugEventInfo& proto) {
|
| + VISIT_ENUM(singleton_event);
|
| + VISIT(sync_cycle_completed_event_info);
|
| + VISIT(nudging_datatype);
|
| + VISIT_REP(datatypes_notified_from_server);
|
| + VISIT(datatype_association_stats);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::DebugInfo& proto) {
|
| + VISIT_REP(events);
|
| + VISIT(cryptographer_ready);
|
| + VISIT(cryptographer_has_pending_keys);
|
| + VISIT(events_dropped);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::SyncCycleCompletedEventInfo& proto) {
|
| + VISIT(num_encryption_conflicts);
|
| + VISIT(num_hierarchy_conflicts);
|
| + VISIT(num_server_conflicts);
|
| + VISIT(num_updates_downloaded);
|
| + VISIT(num_reflected_updates_downloaded);
|
| + VISIT(caller_info);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::ClientConfigParams& proto) {
|
| + VISIT_REP(enabled_type_ids);
|
| + VISIT(tabs_datatype_enabled);
|
| + VISIT(cookie_jar_mismatch);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::AttachmentIdProto& proto) {
|
| + VISIT(unique_id);
|
| +}
|
| +
|
| +template <class V>
|
| +void VisitProtoFields(V& visitor, const sync_pb::EntityMetadata& proto) {
|
| + VISIT(client_tag_hash);
|
| + VISIT(server_id);
|
| + VISIT(is_deleted);
|
| + VISIT(sequence_number);
|
| + VISIT(acked_sequence_number);
|
| + VISIT(server_version);
|
| + VISIT(creation_time);
|
| + VISIT(modification_time);
|
| + VISIT(specifics_hash);
|
| + VISIT(base_specifics_hash);
|
| +}
|
| +
|
| +} // namespace syncer
|
| +
|
| +#endif // COMPONENTS_SYNC_PROTOCOL_PROTO_VALUE_VISITOR_CONVERSIONS_H_
|
|
|