blob: a8f98d8dfd2336db678a6f932c34394e736b2ad3 [file] [log] [blame]
// Copyright 2018 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 COMPONENTS_SYNC_BOOKMARKS_BOOKMARK_LOCAL_CHANGES_BUILDER_H_
#define COMPONENTS_SYNC_BOOKMARKS_BOOKMARK_LOCAL_CHANGES_BUILDER_H_
#include "base/memory/raw_ptr.h"
#include "components/sync/engine/commit_and_get_updates_types.h"
namespace bookmarks {
class BookmarkModel;
}
namespace sync_bookmarks {
class SyncedBookmarkTracker;
class BookmarkLocalChangesBuilder {
public:
// |bookmark_tracker| and |bookmark_model| must not be null and must outlive
// this object.
BookmarkLocalChangesBuilder(SyncedBookmarkTracker* bookmark_tracker,
bookmarks::BookmarkModel* bookmark_model);
BookmarkLocalChangesBuilder(const BookmarkLocalChangesBuilder&) = delete;
BookmarkLocalChangesBuilder& operator=(const BookmarkLocalChangesBuilder&) =
delete;
// Builds the commit requests list.
syncer::CommitRequestDataList BuildCommitRequests(size_t max_entries) const;
private:
const raw_ptr<SyncedBookmarkTracker> bookmark_tracker_;
const raw_ptr<bookmarks::BookmarkModel> bookmark_model_;
};
} // namespace sync_bookmarks
#endif // COMPONENTS_SYNC_BOOKMARKS_BOOKMARK_LOCAL_CHANGES_BUILDER_H_