[SyncFS] Build indexes from FileTracker entries on disk.
[chromium-blink-merge.git] / sync / engine / directory_commit_contributor.h
bloba1c91047209f45e4002a2b203d980fffa092da7f
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.
5 #ifndef SYNC_ENGINE_DIRECTORY_COMMIT_CONTRIBUTOR_H_
6 #define SYNC_ENGINE_DIRECTORY_COMMIT_CONTRIBUTOR_H_
8 #include <map>
10 #include "base/memory/scoped_ptr.h"
11 #include "sync/engine/commit_contributor.h"
12 #include "sync/engine/directory_commit_contribution.h"
13 #include "sync/internal_api/public/base/model_type.h"
15 namespace syncer {
17 namespace syncable {
18 class Directory;
21 class DirectoryTypeDebugInfoEmitter;
23 // This class represents the syncable::Directory as a source of items to commit
24 // to the sync server.
26 // Each instance of this class represents a particular type within the
27 // syncable::Directory. When asked, it will iterate through the directory, grab
28 // any items of its type that are ready for commit, and return them in the form
29 // of a DirectoryCommitContribution.
30 class DirectoryCommitContributor : public CommitContributor {
31 public:
32 DirectoryCommitContributor(syncable::Directory* dir,
33 ModelType type,
34 DirectoryTypeDebugInfoEmitter* debug_info_emitter);
35 virtual ~DirectoryCommitContributor();
37 virtual scoped_ptr<CommitContribution> GetContribution(
38 size_t max_entries) OVERRIDE;
40 private:
41 syncable::Directory* dir_;
42 ModelType type_;
44 DirectoryTypeDebugInfoEmitter* debug_info_emitter_;
46 DISALLOW_COPY_AND_ASSIGN(DirectoryCommitContributor);
49 } // namespace
51 #endif // SYNC_ENGINE_DIRECTORY_COMMIT_CONTRIBUTOR_H_