// Copyright (c) 2012 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. #ifndef SYNC_INTERNAL_API_PUBLIC_ENGINE_STATUS_SUMMARY_H_ #define SYNC_INTERNAL_API_PUBLIC_ENGINE_STATUS_SUMMARY_H_ #include <string> #include "base/time/time.h" #include "sync/base/sync_export.h" #include "sync/internal_api/public/base/model_type.h" #include "sync/internal_api/public/sync_encryption_handler.h" #include "sync/protocol/sync_protocol_error.h" namespace syncer { // Status encapsulates detailed state about the internals of the SyncManager. // // This struct is closely tied to the AllStatus object which uses instances of // it to track and report on the sync engine's internal state, and the functions // in sync_ui_util.cc which convert the contents of this struct into a // DictionaryValue used to populate the about:sync summary tab. struct SYNC_EXPORT SyncStatus { SyncStatus(); ~SyncStatus(); // TODO(akalin): Replace this with a NotificationsDisabledReason // variable. bool notifications_enabled; // True only if subscribed for notifications. // Notifications counters updated by the actions in synapi. int notifications_received; SyncProtocolError sync_protocol_error; // Number of encryption conflicts counted during most recent sync cycle. int encryption_conflicts; // Number of hierarchy conflicts counted during most recent sync cycle. int hierarchy_conflicts; // Number of items the server refused to commit due to conflict during most // recent sync cycle. int server_conflicts; // Number of items successfully committed during most recent sync cycle. int committed_count; bool syncing; // Total updates available. If zero, nothing left to download. int64 updates_available; // Total updates received by the syncer since browser start. int updates_received; // Total updates received that are echoes of our own changes. int reflected_updates_received; // Of updates_received, how many were tombstones. int tombstone_updates_received; // Total successful commits. int num_commits_total; // Total number of overwrites due to conflict resolver since browser start. int num_local_overwrites_total; int num_server_overwrites_total; // Count of empty and non empty getupdates; int nonempty_get_updates; int empty_get_updates; // Count of sync cycles that successfully committed items; int sync_cycles_with_commits; int sync_cycles_without_commits; // Count of useless and useful syncs we perform. int useless_sync_cycles; int useful_sync_cycles; // Nudge counts for each possible source int nudge_source_notification; int nudge_source_local; int nudge_source_local_refresh; // Encryption related. ModelTypeSet encrypted_types; bool cryptographer_ready; bool crypto_has_pending_keys; bool has_keystore_key; base::Time keystore_migration_time; PassphraseType passphrase_type; // Per-datatype throttled status. ModelTypeSet throttled_types; // The unique identifer for the sync store. std::string sync_id; // The unique identifier for the invalidation client. std::string invalidator_client_id; // Counters grouped by model type std::vector<int> num_entries_by_type; std::vector<int> num_to_delete_entries_by_type; // Time of next retry if sync scheduler is throttled or in backoff. base::Time retry_time; }; } // namespace syncer #endif // SYNC_INTERNAL_API_PUBLIC_ENGINE_STATUS_SUMMARY_H_