Index: ios/chrome/browser/reading_list/reading_list_store_delegate.h |
diff --git a/ios/chrome/browser/reading_list/reading_list_store_delegate.h b/ios/chrome/browser/reading_list/reading_list_store_delegate.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..99170341338f216eec0777676b2fecdc5b44031a |
--- /dev/null |
+++ b/ios/chrome/browser/reading_list/reading_list_store_delegate.h |
@@ -0,0 +1,34 @@ |
+// Copyright 2016 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 IOS_CHROME_BROWSER_READING_LIST_READING_LIST_STORE_DELEGATE_H_ |
+#define IOS_CHROME_BROWSER_READING_LIST_READING_LIST_STORE_DELEGATE_H_ |
+ |
+class ReadingListEntry; |
+ |
+// The delegate to handle callbacks from the ReadingListStore. |
+class ReadingListStoreDelegate { |
+ public: |
+ // These three mathods handle callbacks from a ReadingListStore. |
+ virtual void StoreLoaded(std::unique_ptr<ReadingListEntries> unread, |
+ std::unique_ptr<ReadingListEntries> read) = 0; |
+ // Handle sync events. |
+ // Called to add a new entry to the model. |
+ // |entry| must not already exist in the model. |
+ virtual void SyncAddEntry(std::unique_ptr<ReadingListEntry> entry, |
+ bool read) = 0; |
+ |
+ // Called to merge a sync entry with a local entry in the model. |
+ // A local entry with the same URL must exist in the local store and have an |
+ // older UpdateTime. |
+ // Return a pointer to the merged entry. |
+ virtual ReadingListEntry* SyncMergeEntry( |
+ std::unique_ptr<ReadingListEntry> entry, |
+ bool read) = 0; |
+ |
+ // Called to remove an entry to the model. |
+ virtual void SyncRemoveEntry(const GURL& url) = 0; |
+}; |
+ |
+#endif // IOS_CHROME_BROWSER_READING_LIST_READING_LIST_STORE_DELEGATE_H_ |