| Index: sync/sessions/session_state.h
|
| diff --git a/sync/sessions/session_state.h b/sync/sessions/session_state.h
|
| deleted file mode 100644
|
| index 290ecee05b4face314e2d2f6c0285fe5832a648d..0000000000000000000000000000000000000000
|
| --- a/sync/sessions/session_state.h
|
| +++ /dev/null
|
| @@ -1,133 +0,0 @@
|
| -// 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.
|
| -
|
| -// The 'sessions' namespace comprises all the pieces of state that are
|
| -// combined to form a SyncSession instance. In that way, it can be thought of
|
| -// as an extension of the SyncSession type itself. Session scoping gives
|
| -// context to things like "conflict progress", "update progress", etc, and the
|
| -// separation this file provides allows clients to only include the parts they
|
| -// need rather than the entire session stack.
|
| -
|
| -#ifndef SYNC_SESSIONS_SESSION_STATE_H_
|
| -#define SYNC_SESSIONS_SESSION_STATE_H_
|
| -
|
| -#include <set>
|
| -#include <vector>
|
| -
|
| -#include "sync/engine/syncer_types.h"
|
| -#include "sync/protocol/sync.pb.h"
|
| -#include "sync/syncable/syncable_id.h"
|
| -
|
| -namespace syncer {
|
| -namespace sessions {
|
| -
|
| -// Tracks progress of conflicts and their resolutions.
|
| -class ConflictProgress {
|
| - public:
|
| - explicit ConflictProgress();
|
| - ~ConflictProgress();
|
| -
|
| - bool HasSimpleConflictItem(const syncable::Id &id) const;
|
| -
|
| - // Various mutators for tracking commit conflicts.
|
| - void AddSimpleConflictingItemById(const syncable::Id& the_id);
|
| - void EraseSimpleConflictingItemById(const syncable::Id& the_id);
|
| - std::set<syncable::Id>::const_iterator SimpleConflictingItemsBegin() const;
|
| - std::set<syncable::Id>::const_iterator SimpleConflictingItemsEnd() const;
|
| - int SimpleConflictingItemsSize() const {
|
| - return simple_conflicting_item_ids_.size();
|
| - }
|
| -
|
| - // Mutators for unresolvable conflicting items (see description below).
|
| - void AddEncryptionConflictingItemById(const syncable::Id& the_id);
|
| - int EncryptionConflictingItemsSize() const {
|
| - return num_encryption_conflicting_items;
|
| - }
|
| -
|
| - void AddHierarchyConflictingItemById(const syncable::Id& id);
|
| - int HierarchyConflictingItemsSize() const {
|
| - return num_hierarchy_conflicting_items;
|
| - }
|
| -
|
| - void AddServerConflictingItemById(const syncable::Id& id);
|
| - int ServerConflictingItemsSize() const {
|
| - return num_server_conflicting_items;
|
| - }
|
| -
|
| - private:
|
| - // Conflicts that occur when local and server changes collide and can be
|
| - // resolved locally.
|
| - std::set<syncable::Id> simple_conflicting_item_ids_;
|
| -
|
| - // Unresolvable conflicts are not processed by the conflict resolver. We wait
|
| - // and hope the server will provide us with an update that resolves these
|
| - // conflicts.
|
| - std::set<syncable::Id> unresolvable_conflicting_item_ids_;
|
| -
|
| - size_t num_server_conflicting_items;
|
| - size_t num_hierarchy_conflicting_items;
|
| - size_t num_encryption_conflicting_items;
|
| -};
|
| -
|
| -typedef std::pair<VerifyResult, sync_pb::SyncEntity> VerifiedUpdate;
|
| -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);
|
| -
|
| - // Log a successful or failing update attempt.
|
| - void AddAppliedUpdate(const UpdateAttemptResponse& response,
|
| - const syncable::Id& id);
|
| -
|
| - // Various iterators.
|
| - std::vector<AppliedUpdate>::iterator AppliedUpdatesBegin();
|
| - std::vector<VerifiedUpdate>::const_iterator VerifiedUpdatesBegin() const;
|
| - std::vector<AppliedUpdate>::const_iterator AppliedUpdatesEnd() const;
|
| - std::vector<VerifiedUpdate>::const_iterator VerifiedUpdatesEnd() const;
|
| -
|
| - // Returns the number of update application attempts. This includes both
|
| - // failures and successes.
|
| - int AppliedUpdatesSize() const { return applied_updates_.size(); }
|
| - int VerifiedUpdatesSize() const { return verified_updates_.size(); }
|
| - bool HasVerifiedUpdates() const { return !verified_updates_.empty(); }
|
| - bool HasAppliedUpdates() const { return !applied_updates_.empty(); }
|
| - void ClearVerifiedUpdates() { verified_updates_.clear(); }
|
| -
|
| - // Count the number of successful update applications that have happend this
|
| - // cycle. Note that if an item is successfully applied twice, it will be
|
| - // double counted here.
|
| - int SuccessfullyAppliedUpdateCount() const;
|
| -
|
| - // Returns true if at least one update application failed due to a conflict
|
| - // during this sync cycle.
|
| - bool HasConflictingUpdates() const;
|
| -
|
| - private:
|
| - // Container for updates that passed verification.
|
| - std::vector<VerifiedUpdate> verified_updates_;
|
| -
|
| - // Stores the result of the various ApplyUpdate attempts we've made.
|
| - // May contain duplicate entries.
|
| - std::vector<AppliedUpdate> applied_updates_;
|
| -};
|
| -
|
| -// Grouping of all state that applies to a single ModelSafeGroup.
|
| -struct PerModelSafeGroupState {
|
| - explicit PerModelSafeGroupState();
|
| - ~PerModelSafeGroupState();
|
| -
|
| - UpdateProgress update_progress;
|
| - ConflictProgress conflict_progress;
|
| -};
|
| -
|
| -} // namespace sessions
|
| -} // namespace syncer
|
| -
|
| -#endif // SYNC_SESSIONS_SESSION_STATE_H_
|
|
|