Chromium Code Reviews| Index: sync/engine/non_blocking_type_commit_contribution.h |
| diff --git a/sync/engine/non_blocking_type_commit_contribution.h b/sync/engine/non_blocking_type_commit_contribution.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..bb1e7d62b2896e0fa1b236b5cec65a9398ef61e8 |
| --- /dev/null |
| +++ b/sync/engine/non_blocking_type_commit_contribution.h |
| @@ -0,0 +1,62 @@ |
| +#ifndef SYNC_ENGINE_NON_BLOCKING_TYPE_COMMIT_CONTRIBUTION_H_ |
| +#define SYNC_ENGINE_NON_BLOCKING_TYPE_COMMIT_CONTRIBUTION_H_ |
| + |
| +#include <vector> |
| + |
| +#include "base/basictypes.h" |
| +#include "sync/engine/commit_contribution.h" |
| +#include "sync/protocol/sync.pb.h" |
| + |
| +namespace syncer { |
| + |
| +class NonBlockingTypeProcessorCore; |
| + |
| +// A non-blocking sync type's contribution to an outgoing commit message. |
| +// |
| +// Helps build a commit message and process its response. It collaborates |
| +// closely with the NonBlockingTypeProcessorCore. |
| +class NonBlockingTypeCommitContribution : public CommitContribution { |
| + public: |
| + NonBlockingTypeCommitContribution( |
| + NonBlockingTypeProcessorCore* processor_core, |
|
Nicolas Zea
2014/06/02 20:27:17
nit: processor_core should probably be the last pa
rlarocque
2014/06/02 21:39:14
Done.
|
| + const sync_pb::DataTypeContext& context, |
| + const google::protobuf::RepeatedPtrField<sync_pb::SyncEntity>& entities, |
| + const std::vector<int64> sequence_numbers); |
|
Nicolas Zea
2014/06/02 20:27:17
const ref
rlarocque
2014/06/02 21:39:14
Done.
|
| + virtual ~NonBlockingTypeCommitContribution(); |
| + |
| + // Implementation of CommitContribution |
| + virtual void AddToCommitMessage(sync_pb::ClientToServerMessage* msg) OVERRIDE; |
| + virtual SyncerError ProcessCommitResponse( |
| + const sync_pb::ClientToServerResponse& response, |
| + sessions::StatusController* status) OVERRIDE; |
| + virtual void CleanUp() OVERRIDE; |
| + virtual size_t GetNumEntries() const OVERRIDE; |
| + |
| + private: |
| + // A non-owned pointer back to the object that created this contribution. |
| + NonBlockingTypeProcessorCore* const processor_core_; |
| + |
| + // The type-global context information. |
| + const sync_pb::DataTypeContext context_; |
| + |
| + // The set of entities to be committed, serialized as SyncEntities. |
| + const google::protobuf::RepeatedPtrField<sync_pb::SyncEntity> entities_; |
| + |
| + // The sequence numbers associated with the pending commits. These match up |
| + // with the entities_ vector. |
| + const std::vector<int64> sequence_numbers_; |
| + |
| + // The index in the commit message where this contribution's entities are |
| + // added. Used to correlate per-item requests with per-item responses. |
| + size_t entries_start_index_; |
| + |
| + // A flag used to ensure this object's contract is respected. Helps to check |
| + // that CleanUp() is called before the object is destructed. |
| + bool cleaned_up_; |
| + |
| + DISALLOW_COPY_AND_ASSIGN(NonBlockingTypeCommitContribution); |
| +}; |
| + |
| +} // namespace syncer |
| + |
| +#endif // SYNC_ENGINE_NON_BLOCKING_TYPE_COMMIT_CONTRIBUTION_H_ |