diff options
author | erg@google.com <erg@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-10-04 23:11:19 +0000 |
---|---|---|
committer | erg@google.com <erg@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-10-04 23:11:19 +0000 |
commit | 9b2331d912b0a15c3eef290eaa617c54a87dc68e (patch) | |
tree | 6ca5f0248ce754b74b39112c17c2d9726c004e79 /chrome/browser/sync/sessions | |
parent | 9f1e5d235d5bdb3a0fe626fe47f5468cddaf75e4 (diff) | |
download | chromium_src-9b2331d912b0a15c3eef290eaa617c54a87dc68e.zip chromium_src-9b2331d912b0a15c3eef290eaa617c54a87dc68e.tar.gz chromium_src-9b2331d912b0a15c3eef290eaa617c54a87dc68e.tar.bz2 |
Reapply r61237: FBTF: Another big ctor/dtor cleanup found by automated tools.
Removes changes to code in webkit/ that broke chrome_frame. Will debug that portion later.
(Shaves ~2MB off Linux Debug .a files)
BUG=none
TEST=compiles
First Review URL: http://codereview.chromium.org/3563004
Review URL: http://codereview.chromium.org/3621003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@61435 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/sync/sessions')
-rw-r--r-- | chrome/browser/sync/sessions/ordered_commit_set.cc | 7 | ||||
-rw-r--r-- | chrome/browser/sync/sessions/ordered_commit_set.h | 6 | ||||
-rw-r--r-- | chrome/browser/sync/sessions/session_state.cc | 61 | ||||
-rw-r--r-- | chrome/browser/sync/sessions/session_state.h | 41 | ||||
-rw-r--r-- | chrome/browser/sync/sessions/status_controller.cc | 2 | ||||
-rw-r--r-- | chrome/browser/sync/sessions/status_controller.h | 1 | ||||
-rw-r--r-- | chrome/browser/sync/sessions/sync_session.cc | 2 | ||||
-rw-r--r-- | chrome/browser/sync/sessions/sync_session.h | 1 | ||||
-rw-r--r-- | chrome/browser/sync/sessions/sync_session_context.cc | 41 | ||||
-rw-r--r-- | chrome/browser/sync/sessions/sync_session_context.h | 29 |
10 files changed, 141 insertions, 50 deletions
diff --git a/chrome/browser/sync/sessions/ordered_commit_set.cc b/chrome/browser/sync/sessions/ordered_commit_set.cc index 104bafb..d700494 100644 --- a/chrome/browser/sync/sessions/ordered_commit_set.cc +++ b/chrome/browser/sync/sessions/ordered_commit_set.cc @@ -11,6 +11,13 @@ namespace browser_sync { namespace sessions { +OrderedCommitSet::OrderedCommitSet( + const browser_sync::ModelSafeRoutingInfo& routes) + : routes_(routes) { +} + +OrderedCommitSet::~OrderedCommitSet() {} + void OrderedCommitSet::AddCommitItem(const int64 metahandle, const syncable::Id& commit_id, syncable::ModelType type) { diff --git a/chrome/browser/sync/sessions/ordered_commit_set.h b/chrome/browser/sync/sessions/ordered_commit_set.h index 50f3e97..bce2246 100644 --- a/chrome/browser/sync/sessions/ordered_commit_set.h +++ b/chrome/browser/sync/sessions/ordered_commit_set.h @@ -30,10 +30,8 @@ class OrderedCommitSet { typedef std::vector<size_t> Projection; // TODO(chron): Reserve space according to batch size? - explicit OrderedCommitSet(const browser_sync::ModelSafeRoutingInfo& routes) - : routes_(routes) {} - - ~OrderedCommitSet() {} + explicit OrderedCommitSet(const browser_sync::ModelSafeRoutingInfo& routes); + ~OrderedCommitSet(); bool HaveCommitItem(const int64 metahandle) const { return inserted_metahandles_.count(metahandle) > 0; diff --git a/chrome/browser/sync/sessions/session_state.cc b/chrome/browser/sync/sessions/session_state.cc index f28a7dc..644d2f6 100644 --- a/chrome/browser/sync/sessions/session_state.cc +++ b/chrome/browser/sync/sessions/session_state.cc @@ -13,6 +13,39 @@ using std::vector; namespace browser_sync { namespace sessions { +SyncSessionSnapshot::SyncSessionSnapshot( + const SyncerStatus& syncer_status, + const ErrorCounters& errors, + int64 num_server_changes_remaining, + int64 max_local_timestamp, + bool is_share_usable, + const syncable::ModelTypeBitSet& initial_sync_ended, + bool more_to_sync, + bool is_silenced, + int64 unsynced_count, + int num_conflicting_updates, + bool did_commit_items) + : syncer_status(syncer_status), + errors(errors), + num_server_changes_remaining(num_server_changes_remaining), + max_local_timestamp(max_local_timestamp), + is_share_usable(is_share_usable), + initial_sync_ended(initial_sync_ended), + has_more_to_sync(more_to_sync), + is_silenced(is_silenced), + unsynced_count(unsynced_count), + num_conflicting_updates(num_conflicting_updates), + did_commit_items(did_commit_items) { +} + +SyncSessionSnapshot::~SyncSessionSnapshot() {} + +ConflictProgress::ConflictProgress(bool* dirty_flag) : dirty_(dirty_flag) {} + +ConflictProgress::~ConflictProgress() { + CleanupSets(); +} + IdToConflictSetMap::const_iterator ConflictProgress::IdToConflictSetFind( const syncable::Id& the_id) const { return id_to_conflict_set_.find(the_id); @@ -131,6 +164,10 @@ void ConflictProgress::CleanupSets() { id_to_conflict_set_.clear(); } +UpdateProgress::UpdateProgress() {} + +UpdateProgress::~UpdateProgress() {} + void UpdateProgress::AddVerifyResult(const VerifyResult& verify_result, const sync_pb::SyncEntity& entity) { verified_updates_.push_back(std::make_pair(verify_result, entity)); @@ -184,5 +221,29 @@ bool UpdateProgress::HasConflictingUpdates() const { return false; } +AllModelTypeState::AllModelTypeState(bool* dirty_flag) + : unsynced_handles(dirty_flag), + syncer_status(dirty_flag), + error_counters(dirty_flag), + num_server_changes_remaining(dirty_flag, 0), + commit_set(ModelSafeRoutingInfo()) { +} + +AllModelTypeState::~AllModelTypeState() {} + +PerModelSafeGroupState::PerModelSafeGroupState(bool* dirty_flag) + : conflict_progress(dirty_flag) { +} + +PerModelSafeGroupState::~PerModelSafeGroupState() { +} + +PerModelTypeState::PerModelTypeState(bool* dirty_flag) + : current_download_timestamp(dirty_flag, 0) { +} + +PerModelTypeState::~PerModelTypeState() { +} + } // namespace sessions } // namespace browser_sync diff --git a/chrome/browser/sync/sessions/session_state.h b/chrome/browser/sync/sessions/session_state.h index 3f1e721..c345fb4 100644 --- a/chrome/browser/sync/sessions/session_state.h +++ b/chrome/browser/sync/sessions/session_state.h @@ -80,18 +80,9 @@ struct SyncSessionSnapshot { bool is_silenced, int64 unsynced_count, int num_conflicting_updates, - bool did_commit_items) - : syncer_status(syncer_status), - errors(errors), - num_server_changes_remaining(num_server_changes_remaining), - max_local_timestamp(max_local_timestamp), - is_share_usable(is_share_usable), - initial_sync_ended(initial_sync_ended), - has_more_to_sync(more_to_sync), - is_silenced(is_silenced), - unsynced_count(unsynced_count), - num_conflicting_updates(num_conflicting_updates), - did_commit_items(did_commit_items) {} + bool did_commit_items); + ~SyncSessionSnapshot(); + const SyncerStatus syncer_status; const ErrorCounters errors; const int64 num_server_changes_remaining; @@ -108,8 +99,8 @@ struct SyncSessionSnapshot { // Tracks progress of conflicts and their resolution using conflict sets. class ConflictProgress { public: - explicit ConflictProgress(bool* dirty_flag) : dirty_(dirty_flag) {} - ~ConflictProgress() { CleanupSets(); } + explicit ConflictProgress(bool* dirty_flag); + ~ConflictProgress(); // Various iterators, size, and retrieval functions for conflict sets. IdToConflictSetMap::const_iterator IdToConflictSetBegin() const; IdToConflictSetMap::const_iterator IdToConflictSetEnd() const; @@ -150,6 +141,9 @@ typedef std::pair<UpdateAttemptResponse, syncable::Id> AppliedUpdate; // Tracks update application and verification. class UpdateProgress { public: + UpdateProgress(); + ~UpdateProgress(); + void AddVerifyResult(const VerifyResult& verify_result, const sync_pb::SyncEntity& entity); @@ -232,12 +226,9 @@ class DirtyOnWrite { // scope control (such as OrderedCommitSet), but the top level entity is still // a singleton with respect to model types. struct AllModelTypeState { - explicit AllModelTypeState(bool* dirty_flag) - : unsynced_handles(dirty_flag), - syncer_status(dirty_flag), - error_counters(dirty_flag), - num_server_changes_remaining(dirty_flag, 0), - commit_set(ModelSafeRoutingInfo()) {} + explicit AllModelTypeState(bool* dirty_flag); + ~AllModelTypeState(); + // Commits for all model types are bundled together into a single message. ClientToServerMessage commit_message; ClientToServerResponse commit_response; @@ -256,16 +247,18 @@ struct AllModelTypeState { // Grouping of all state that applies to a single ModelSafeGroup. struct PerModelSafeGroupState { - explicit PerModelSafeGroupState(bool* dirty_flag) - : conflict_progress(dirty_flag) {} + explicit PerModelSafeGroupState(bool* dirty_flag); + ~PerModelSafeGroupState(); + UpdateProgress update_progress; ConflictProgress conflict_progress; }; // Grouping of all state that applies to a single ModelType. struct PerModelTypeState { - explicit PerModelTypeState(bool* dirty_flag) - : current_download_timestamp(dirty_flag, 0) {} + explicit PerModelTypeState(bool* dirty_flag); + ~PerModelTypeState(); + DirtyOnWrite<int64> current_download_timestamp; }; diff --git a/chrome/browser/sync/sessions/status_controller.cc b/chrome/browser/sync/sessions/status_controller.cc index 21159d8..f7e159c 100644 --- a/chrome/browser/sync/sessions/status_controller.cc +++ b/chrome/browser/sync/sessions/status_controller.cc @@ -23,6 +23,8 @@ StatusController::StatusController(const ModelSafeRoutingInfo& routes) routing_info_(routes) { } +StatusController::~StatusController() {} + bool StatusController::TestAndClearIsDirty() { bool is_dirty = is_dirty_; is_dirty_ = false; diff --git a/chrome/browser/sync/sessions/status_controller.h b/chrome/browser/sync/sessions/status_controller.h index f367b50..d038ed5 100644 --- a/chrome/browser/sync/sessions/status_controller.h +++ b/chrome/browser/sync/sessions/status_controller.h @@ -45,6 +45,7 @@ namespace sessions { class StatusController { public: explicit StatusController(const ModelSafeRoutingInfo& routes); + ~StatusController(); // Returns true if some portion of the session state has changed (is dirty) // since it was created or was last reset. diff --git a/chrome/browser/sync/sessions/sync_session.cc b/chrome/browser/sync/sessions/sync_session.cc index 8e5064c..a861b2c 100644 --- a/chrome/browser/sync/sessions/sync_session.cc +++ b/chrome/browser/sync/sessions/sync_session.cc @@ -22,6 +22,8 @@ SyncSession::SyncSession(SyncSessionContext* context, Delegate* delegate) status_controller_.reset(new StatusController(routing_info_)); } +SyncSession::~SyncSession() {} + SyncSessionSnapshot SyncSession::TakeSnapshot() const { syncable::ScopedDirLookup dir(context_->directory_manager(), context_->account_name()); diff --git a/chrome/browser/sync/sessions/sync_session.h b/chrome/browser/sync/sessions/sync_session.h index d3320ca..568c1f4 100644 --- a/chrome/browser/sync/sessions/sync_session.h +++ b/chrome/browser/sync/sessions/sync_session.h @@ -77,6 +77,7 @@ class SyncSession { // Creates a new SyncSession with mandatory context and delegate. SyncSession(SyncSessionContext* context, Delegate* delegate); + ~SyncSession(); // Builds a thread-safe and read-only copy of the current session state. SyncSessionSnapshot TakeSnapshot() const; diff --git a/chrome/browser/sync/sessions/sync_session_context.cc b/chrome/browser/sync/sessions/sync_session_context.cc new file mode 100644 index 0000000..7b69568 --- /dev/null +++ b/chrome/browser/sync/sessions/sync_session_context.cc @@ -0,0 +1,41 @@ +// Copyright (c) 2010 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. + +#include "chrome/browser/sync/sessions/sync_session_context.h" + +#include "chrome/browser/chrome_thread.h" +#include "chrome/browser/sync/util/extensions_activity_monitor.h" +#include "chrome/browser/sync/sessions/session_state.h" + +namespace browser_sync { +namespace sessions { + +SyncSessionContext::SyncSessionContext( + ServerConnectionManager* connection_manager, + syncable::DirectoryManager* directory_manager, + ModelSafeWorkerRegistrar* model_safe_worker_registrar) + : resolver_(NULL), + syncer_event_channel_(NULL), + connection_manager_(connection_manager), + directory_manager_(directory_manager), + registrar_(model_safe_worker_registrar), + extensions_activity_monitor_(new ExtensionsActivityMonitor()), + notifications_enabled_(false) { +} + +SyncSessionContext::~SyncSessionContext() { + // In unittests, there may be no UI thread, so the above will fail. + if (!ChromeThread::DeleteSoon(ChromeThread::UI, FROM_HERE, + extensions_activity_monitor_)) { + delete extensions_activity_monitor_; + } +} + +void SyncSessionContext::set_last_snapshot( + const SyncSessionSnapshot& snapshot) { + previous_session_snapshot_.reset(new SyncSessionSnapshot(snapshot)); +} + +} // namespace sessions +} // namespace browser_sync diff --git a/chrome/browser/sync/sessions/sync_session_context.h b/chrome/browser/sync/sessions/sync_session_context.h index 4c6b63f..b782876 100644 --- a/chrome/browser/sync/sessions/sync_session_context.h +++ b/chrome/browser/sync/sessions/sync_session_context.h @@ -20,10 +20,10 @@ #pragma once #include <string> -#include "chrome/browser/chrome_thread.h" + +#include "base/scoped_ptr.h" #include "chrome/browser/sync/engine/model_safe_worker.h" #include "chrome/browser/sync/engine/syncer_types.h" -#include "chrome/browser/sync/util/extensions_activity_monitor.h" namespace syncable { class DirectoryManager; @@ -32,34 +32,21 @@ class DirectoryManager; namespace browser_sync { class ConflictResolver; +class ExtensionsActivityMonitor; class ModelSafeWorkerRegistrar; class ServerConnectionManager; namespace sessions { class ScopedSessionContextConflictResolver; class ScopedSessionContextSyncerEventChannel; +struct SyncSessionSnapshot; class SyncSessionContext { public: SyncSessionContext(ServerConnectionManager* connection_manager, syncable::DirectoryManager* directory_manager, - ModelSafeWorkerRegistrar* model_safe_worker_registrar) - : resolver_(NULL), - syncer_event_channel_(NULL), - connection_manager_(connection_manager), - directory_manager_(directory_manager), - registrar_(model_safe_worker_registrar), - extensions_activity_monitor_(new ExtensionsActivityMonitor()), - notifications_enabled_(false) { - } - - ~SyncSessionContext() { - // In unittests, there may be no UI thread, so the above will fail. - if (!ChromeThread::DeleteSoon(ChromeThread::UI, FROM_HERE, - extensions_activity_monitor_)) { - delete extensions_activity_monitor_; - } - } + ModelSafeWorkerRegistrar* model_safe_worker_registrar); + ~SyncSessionContext(); ConflictResolver* resolver() { return resolver_; } ServerConnectionManager* connection_manager() { @@ -103,9 +90,7 @@ class SyncSessionContext { return previous_session_snapshot_.get(); } - void set_last_snapshot(const SyncSessionSnapshot& snapshot) { - previous_session_snapshot_.reset(new SyncSessionSnapshot(snapshot)); - } + void set_last_snapshot(const SyncSessionSnapshot& snapshot); private: // Rather than force clients to set and null-out various context members, we |