| Index: sync/internal_api/public/processor_entity_tracker.h
|
| diff --git a/sync/internal_api/public/processor_entity_tracker.h b/sync/internal_api/public/processor_entity_tracker.h
|
| deleted file mode 100644
|
| index 1bc0a36925a43749aab0f9d36359734a06108c93..0000000000000000000000000000000000000000
|
| --- a/sync/internal_api/public/processor_entity_tracker.h
|
| +++ /dev/null
|
| @@ -1,154 +0,0 @@
|
| -// Copyright 2014 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_PROCESSOR_ENTITY_TRACKER_H_
|
| -#define SYNC_INTERNAL_API_PUBLIC_PROCESSOR_ENTITY_TRACKER_H_
|
| -
|
| -#include <stdint.h>
|
| -
|
| -#include <memory>
|
| -#include <string>
|
| -
|
| -#include "base/time/time.h"
|
| -#include "sync/api/entity_data.h"
|
| -#include "sync/base/sync_export.h"
|
| -#include "sync/protocol/entity_metadata.pb.h"
|
| -
|
| -namespace syncer_v2 {
|
| -struct CommitRequestData;
|
| -struct CommitResponseData;
|
| -struct UpdateResponseData;
|
| -
|
| -// This class is used by the SharedModelTypeProcessor to track the state of each
|
| -// entity with its type. It can be considered a helper class internal to the
|
| -// processor. It manages the metadata for its entity and caches entity data
|
| -// upon a local change until commit confirmation is received.
|
| -class SYNC_EXPORT ProcessorEntityTracker {
|
| - public:
|
| - // Construct an instance representing a new locally-created item.
|
| - static std::unique_ptr<ProcessorEntityTracker> CreateNew(
|
| - const std::string& client_tag,
|
| - const std::string& client_tag_hash,
|
| - const std::string& id,
|
| - base::Time creation_time);
|
| -
|
| - // Construct an instance representing an item loaded from storage on init.
|
| - // This method swaps out the contents of |metadata|.
|
| - static std::unique_ptr<ProcessorEntityTracker> CreateFromMetadata(
|
| - const std::string& client_tag,
|
| - sync_pb::EntityMetadata* metadata);
|
| -
|
| - ~ProcessorEntityTracker();
|
| -
|
| - const std::string& client_tag() const { return client_tag_; }
|
| - const sync_pb::EntityMetadata& metadata() const { return metadata_; }
|
| - const EntityDataPtr& commit_data() const { return commit_data_; }
|
| -
|
| - // Returns true if this data is out of sync with the server.
|
| - // A commit may or may not be in progress at this time.
|
| - bool IsUnsynced() const;
|
| -
|
| - // Returns true if this data is out of sync with the sync thread.
|
| - //
|
| - // There may or may not be a commit in progress for this item, but there's
|
| - // definitely no commit in progress for this (most up to date) version of
|
| - // this item.
|
| - bool RequiresCommitRequest() const;
|
| -
|
| - // Whether commit data is needed to be cached before a commit request can be
|
| - // created. Note that deletions do not require cached data.
|
| - bool RequiresCommitData() const;
|
| -
|
| - // Whether it's safe to clear the metadata for this entity. This means that
|
| - // the entity is deleted and either knowledge of this entity has never left
|
| - // this client or it is up to date with the server.
|
| - bool CanClearMetadata() const;
|
| -
|
| - // Returns true if the specified update version does not contain new data.
|
| - bool UpdateIsReflection(int64_t update_version) const;
|
| -
|
| - // Records that an update from the server was received but ignores its data.
|
| - void RecordIgnoredUpdate(const UpdateResponseData& response_data);
|
| -
|
| - // Records an update from the server assuming its data is the new data for
|
| - // this entity.
|
| - void RecordAcceptedUpdate(const UpdateResponseData& response_data);
|
| -
|
| - // Squashes a pending commit with an update from the server.
|
| - void RecordForcedUpdate(const UpdateResponseData& response_data);
|
| -
|
| - // Applies a local change to this item.
|
| - void MakeLocalChange(std::unique_ptr<EntityData> data);
|
| -
|
| - // Applies a local deletion to this item.
|
| - void Delete();
|
| -
|
| - // Initializes a message representing this item's uncommitted state
|
| - // and assumes that it is forwarded to the sync engine for commiting.
|
| - void InitializeCommitRequestData(CommitRequestData* request);
|
| -
|
| - // Receives a successful commit response.
|
| - //
|
| - // Successful commit responses can overwrite an item's ID.
|
| - //
|
| - // Note that the receipt of a successful commit response does not necessarily
|
| - // unset IsUnsynced(). If many local changes occur in quick succession, it's
|
| - // possible that the committed item was already out of date by the time it
|
| - // reached the server.
|
| - void ReceiveCommitResponse(const CommitResponseData& data);
|
| -
|
| - // Clears any in-memory sync state associated with outstanding commits.
|
| - void ClearTransientSyncState();
|
| -
|
| - // Takes the passed commit data and caches it in the instance.
|
| - // The data is swapped from the input struct without copying.
|
| - void CacheCommitData(EntityData* data);
|
| -
|
| - // Caches the a copy of |data_ptr|, which doesn't copy the data itself.
|
| - void CacheCommitData(const EntityDataPtr& data_ptr);
|
| -
|
| - // Check if the instance has cached commit data.
|
| - bool HasCommitData() const;
|
| -
|
| - // Check whether |data| matches the stored specifics hash.
|
| - bool MatchesData(const EntityData& data) const;
|
| -
|
| - // Check whether |data| matches the stored base (shared between client and
|
| - // server) specifics hash.
|
| - bool MatchesBaseData(const EntityData& data) const;
|
| -
|
| - // Increment sequence number in the metadata. This will also update the
|
| - // base_specifics_hash if the entity was not already unsynced.
|
| - void IncrementSequenceNumber();
|
| -
|
| - private:
|
| - friend class ProcessorEntityTrackerTest;
|
| -
|
| - // The constructor swaps the data from the passed metadata.
|
| - ProcessorEntityTracker(const std::string& client_tag,
|
| - sync_pb::EntityMetadata* metadata);
|
| -
|
| - // Check whether |specifics| matches the stored specifics_hash.
|
| - bool MatchesSpecificsHash(const sync_pb::EntitySpecifics& specifics) const;
|
| -
|
| - // Update hash string for EntitySpecifics in the metadata.
|
| - void UpdateSpecificsHash(const sync_pb::EntitySpecifics& specifics);
|
| -
|
| - // Client tag. Should always be available.
|
| - std::string client_tag_;
|
| -
|
| - // Serializable Sync metadata.
|
| - sync_pb::EntityMetadata metadata_;
|
| -
|
| - // Sync data that exists for items being committed only.
|
| - // The data is reset once commit confirmation is received.
|
| - EntityDataPtr commit_data_;
|
| -
|
| - // The sequence number of the last item sent to the sync thread.
|
| - int64_t commit_requested_sequence_number_;
|
| -};
|
| -
|
| -} // namespace syncer_v2
|
| -
|
| -#endif // SYNC_INTERNAL_API_PUBLIC_PROCESSOR_ENTITY_TRACKER_H_
|
|
|