Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(313)

Unified Diff: sync/engine/non_blocking_type_commit_contribution.h

Issue 299963002: sync: Implement NonBlockingTypeProcessorCore (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Unbreak some tests Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « sync/engine/non_blocking_sync_common.cc ('k') | sync/engine/non_blocking_type_commit_contribution.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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..4d415caf21e95fb2a643bb9108a6340c9a297b36
--- /dev/null
+++ b/sync/engine/non_blocking_type_commit_contribution.h
@@ -0,0 +1,66 @@
+// 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_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(
+ const sync_pb::DataTypeContext& context,
+ const google::protobuf::RepeatedPtrField<sync_pb::SyncEntity>& entities,
+ const std::vector<int64>& sequence_numbers,
+ NonBlockingTypeProcessorCore* processor_core);
+ 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_
« no previous file with comments | « sync/engine/non_blocking_sync_common.cc ('k') | sync/engine/non_blocking_type_commit_contribution.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698