Index: sync/engine/commit_contributor.h |
diff --git a/sync/engine/commit_contributor.h b/sync/engine/commit_contributor.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..2d190af135f9f1cac548b20ddea5f30292a39d92 |
--- /dev/null |
+++ b/sync/engine/commit_contributor.h |
@@ -0,0 +1,38 @@ |
+// 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_COMMIT_CONTRIBUTOR_H_ |
+#define SYNC_ENGINE_COMMIT_CONTRIBUTOR_H_ |
+ |
+#include <cstddef> |
+ |
+#include "base/memory/scoped_ptr.h" |
+ |
+namespace syncer { |
+ |
+class CommitContribution; |
+ |
+namespace syncable { |
+class Directory; |
+} |
+ |
+// This class represents a source of items to commit to the sync server. |
+// |
+// When asked, it can return CommitContribution objects that contain a set of |
+// items to be committed from this source. |
+class CommitContributor { |
+ public: |
+ CommitContributor(); |
+ virtual ~CommitContributor() = 0; |
+ |
+ // Gathers up to |max_entries| unsynced items from this contributor into a |
+ // CommitContribution. Returns NULL when the contributor has nothing to |
+ // contribute. |
+ virtual scoped_ptr<CommitContribution> GetContribution( |
+ size_t max_entries) = 0; |
+}; |
+ |
+} // namespace |
+ |
+#endif // SYNC_ENGINE_COMMIT_CONTRIBUTOR_H_ |