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

Unified Diff: ios/chrome/browser/reading_list/reading_list_model_storage.h

Issue 2451843002: Add Store+Sync to reading list. (Closed)
Patch Set: fix xcode clang Created 4 years, 1 month 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
Index: ios/chrome/browser/reading_list/reading_list_model_storage.h
diff --git a/ios/chrome/browser/reading_list/reading_list_model_storage.h b/ios/chrome/browser/reading_list/reading_list_model_storage.h
index e55b1d5cba13798e76c92619590b5b8bfe073f1b..9fe680d84fd2324671129501501dc35a8a4945ec 100644
--- a/ios/chrome/browser/reading_list/reading_list_model_storage.h
+++ b/ios/chrome/browser/reading_list/reading_list_model_storage.h
@@ -10,18 +10,46 @@
#include "ios/chrome/browser/reading_list/reading_list_entry.h"
class ReadingListModel;
+class ReadingListStoreDelegate;
+
+namespace syncer {
+class ModelTypeSyncBridge;
+}
// Interface for a persistence layer for reading list.
// All interface methods have to be called on main thread.
class ReadingListModelStorage {
public:
- virtual std::vector<ReadingListEntry> LoadPersistentReadList() = 0;
- virtual std::vector<ReadingListEntry> LoadPersistentUnreadList() = 0;
+ class ScopedBatchUpdate;
+
+ // Sets the model the Storage is backing.
+ // This will trigger store initalization and load persistent entries.
+ virtual void SetReadingListModel(ReadingListModel* model,
+ ReadingListStoreDelegate* delegate) = 0;
+
+ // Returns the class responsible for handling sync messages.
+ virtual syncer::ModelTypeSyncBridge* GetModelTypeSyncBridge() = 0;
+
+ // Starts a transaction. All Save/Remove entry will be delayed until the
+ // transaction is commited.
+ // Multiple transaction can be started at the same time. Commit will happen
+ // when the last transaction is commited.
+ // Returns a scoped batch update object that should be retained while the
+ // batch update is performed. Deallocating this object will inform model that
+ // the batch update has completed.
+ virtual std::unique_ptr<ScopedBatchUpdate> EnsureBatchCreated() = 0;
+
+ // Saves or updates an entry. If the entry is not yet in the database, it is
+ // created.
+ virtual void SaveEntry(const ReadingListEntry& entry, bool read) = 0;
+
+ // Removed an entry from the storage.
+ virtual void RemoveEntry(const ReadingListEntry& entry) = 0;
- virtual void SavePersistentReadList(
- const std::vector<ReadingListEntry>& read) = 0;
- virtual void SavePersistentUnreadList(
- const std::vector<ReadingListEntry>& unread) = 0;
+ class ScopedBatchUpdate {
+ public:
+ virtual ~ScopedBatchUpdate() {}
+ };
};
#endif // IOS_CHROME_BROWSER_READING_LIST_READING_LIST_MODEL_STORAGE_H_

Powered by Google App Engine
This is Rietveld 408576698