| Index: sync/engine/update_applicator.h
|
| diff --git a/sync/engine/update_applicator.h b/sync/engine/update_applicator.h
|
| index 487b41d16c93d3dec7fd1e1ce406e8e61e98fdd6..d996471ae20a7df7b3515df069855913e76075d7 100644
|
| --- a/sync/engine/update_applicator.h
|
| +++ b/sync/engine/update_applicator.h
|
| @@ -17,12 +17,12 @@
|
| #include "base/port.h"
|
| #include "sync/internal_api/public/engine/model_safe_worker.h"
|
| #include "sync/syncable/syncable_id.h"
|
| +#include "sync/sessions/status_controller.h"
|
|
|
| namespace syncer {
|
|
|
| namespace sessions {
|
| -class ConflictProgress;
|
| -class UpdateProgress;
|
| +class StatusController;
|
| }
|
|
|
| namespace syncable {
|
| @@ -37,75 +37,35 @@ class UpdateApplicator {
|
| public:
|
| typedef std::vector<int64>::iterator UpdateIterator;
|
|
|
| - UpdateApplicator(ConflictResolver* resolver,
|
| - Cryptographer* cryptographer,
|
| - const UpdateIterator& begin,
|
| - const UpdateIterator& end,
|
| + UpdateApplicator(Cryptographer* cryptographer,
|
| const ModelSafeRoutingInfo& routes,
|
| ModelSafeGroup group_filter);
|
| ~UpdateApplicator();
|
|
|
| - // returns true if there's more we can do.
|
| - bool AttemptOneApplication(syncable::WriteTransaction* trans);
|
| - // return true if we've applied all updates.
|
| - bool AllUpdatesApplied() const;
|
| + // Attempt to apply the specified updates.
|
| + void AttemptApplications(syncable::WriteTransaction* trans,
|
| + std::vector<int64> to_apply,
|
| + std::set<syncable::Id>* simple_conflict_ids);
|
|
|
| - // This class does not automatically save its progress into the
|
| - // SyncSession -- to get that to happen, call this method after update
|
| - // application is finished (i.e., when AttemptOneAllocation stops returning
|
| - // true).
|
| - void SaveProgressIntoSessionState(
|
| - sessions::ConflictProgress* conflict_progress,
|
| - sessions::UpdateProgress* update_progress);
|
| + // Save our internal stat counters to the StatusController.
|
| + void SaveStats(sessions::StatusController* status);
|
|
|
| private:
|
| - // Track the status of all applications.
|
| - class ResultTracker {
|
| - public:
|
| - explicit ResultTracker(size_t num_results);
|
| - virtual ~ResultTracker();
|
| - void AddSimpleConflict(syncable::Id);
|
| - void AddEncryptionConflict(syncable::Id);
|
| - void AddHierarchyConflict(syncable::Id);
|
| - void AddSuccess(syncable::Id);
|
| - void SaveProgress(sessions::ConflictProgress* conflict_progress,
|
| - sessions::UpdateProgress* update_progress);
|
| - void ClearConflicts();
|
| -
|
| - // Returns true iff conflicting_ids_ is empty. Does not check
|
| - // encryption_conflict_ids_.
|
| - bool no_conflicts() const;
|
| - private:
|
| - std::vector<syncable::Id> conflicting_ids_;
|
| - std::vector<syncable::Id> successful_ids_;
|
| - std::vector<syncable::Id> encryption_conflict_ids_;
|
| - std::vector<syncable::Id> hierarchy_conflict_ids_;
|
| - };
|
| -
|
| // If true, AttemptOneApplication will skip over |entry| and return true.
|
| bool SkipUpdate(const syncable::Entry& entry);
|
|
|
| - // Adjusts the UpdateIterator members to move ahead by one update.
|
| - void Advance();
|
| -
|
| - // Used to resolve conflicts when trying to apply updates.
|
| - ConflictResolver* const resolver_;
|
| -
|
| // Used to decrypt sensitive sync nodes.
|
| Cryptographer* cryptographer_;
|
|
|
| - UpdateIterator const begin_;
|
| - UpdateIterator end_;
|
| - UpdateIterator pointer_;
|
| ModelSafeGroup group_filter_;
|
| - bool progress_;
|
|
|
| const ModelSafeRoutingInfo routing_info_;
|
|
|
| - // Track the result of the attempts to update applications.
|
| - ResultTracker application_results_;
|
| -
|
| DISALLOW_COPY_AND_ASSIGN(UpdateApplicator);
|
| +
|
| + int updates_applied_;
|
| + int encryption_conflicts_;
|
| + int hierarchy_conflicts_;
|
| };
|
|
|
| } // namespace syncer
|
|
|