Home | History | Annotate | Download | only in engine
      1 // Copyright 2014 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef SYNC_ENGINE_COMMIT_CONTRIBUTOR_H_
      6 #define SYNC_ENGINE_COMMIT_CONTRIBUTOR_H_
      7 
      8 #include <cstddef>
      9 
     10 #include "base/memory/scoped_ptr.h"
     11 #include "sync/base/sync_export.h"
     12 
     13 namespace syncer {
     14 
     15 class CommitContribution;
     16 
     17 namespace syncable {
     18 class Directory;
     19 }
     20 
     21 // This class represents a source of items to commit to the sync server.
     22 //
     23 // When asked, it can return CommitContribution objects that contain a set of
     24 // items to be committed from this source.
     25 class SYNC_EXPORT_PRIVATE CommitContributor {
     26  public:
     27   CommitContributor();
     28   virtual ~CommitContributor() = 0;
     29 
     30   // Gathers up to |max_entries| unsynced items from this contributor into a
     31   // CommitContribution.  Returns NULL when the contributor has nothing to
     32   // contribute.
     33   virtual scoped_ptr<CommitContribution> GetContribution(
     34       size_t max_entries) = 0;
     35 };
     36 
     37 }  // namespace
     38 
     39 #endif  // SYNC_ENGINE_COMMIT_CONTRIBUTOR_H_
     40