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

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

Issue 2514333003: Componentize Reading List (Closed)
Patch Set: rebase 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_impl.h
diff --git a/ios/chrome/browser/reading_list/reading_list_model_impl.h b/ios/chrome/browser/reading_list/reading_list_model_impl.h
index e755f34df44b1769c5c52baa49066433ae8737a6..a4ec9afeb1ae0bb348782bbe17907da85eb9cff6 100644
--- a/ios/chrome/browser/reading_list/reading_list_model_impl.h
+++ b/ios/chrome/browser/reading_list/reading_list_model_impl.h
@@ -5,135 +5,7 @@
#ifndef IOS_CHROME_BROWSER_READING_LIST_READING_LIST_MODEL_IMPL_H_
#define IOS_CHROME_BROWSER_READING_LIST_READING_LIST_MODEL_IMPL_H_
-#include <memory>
+// This is a temporary convenience file.
+#include "components/reading_list/reading_list_model_impl.h"
-#include "components/keyed_service/core/keyed_service.h"
-#include "ios/chrome/browser/reading_list/reading_list_entry.h"
-#include "ios/chrome/browser/reading_list/reading_list_model.h"
-#include "ios/chrome/browser/reading_list/reading_list_model_storage.h"
-#include "ios/chrome/browser/reading_list/reading_list_store_delegate.h"
-
-class PrefService;
-
-// Concrete implementation of a reading list model using in memory lists.
-class ReadingListModelImpl : public ReadingListModel,
- public ReadingListStoreDelegate,
- public KeyedService {
- public:
- // Initialize a ReadingListModelImpl to load and save data in
- // |persistence_layer|.
- ReadingListModelImpl(std::unique_ptr<ReadingListModelStorage> storage_layer,
- PrefService* pref_service);
-
- // Initialize a ReadingListModelImpl without persistence. Data will not be
- // persistent across sessions.
- ReadingListModelImpl();
-
- syncer::ModelTypeSyncBridge* GetModelTypeSyncBridge() override;
-
- ~ReadingListModelImpl() override;
-
- void StoreLoaded(std::unique_ptr<ReadingListEntries> unread,
- std::unique_ptr<ReadingListEntries> read) override;
-
- // KeyedService implementation.
- void Shutdown() override;
-
- // ReadingListModel implementation.
- bool loaded() const override;
-
- size_t unread_size() const override;
- size_t read_size() const override;
-
- bool HasUnseenEntries() const override;
- void ResetUnseenEntries() override;
-
- const ReadingListEntry& GetUnreadEntryAtIndex(size_t index) const override;
- const ReadingListEntry& GetReadEntryAtIndex(size_t index) const override;
-
- const ReadingListEntry* GetEntryFromURL(const GURL& gurl,
- bool* read) const override;
-
- bool CallbackEntryURL(
- const GURL& url,
- base::Callback<void(const ReadingListEntry&)> callback) const override;
-
- void RemoveEntryByURL(const GURL& url) override;
-
- const ReadingListEntry& AddEntry(const GURL& url,
- const std::string& title) override;
-
- void MarkReadByURL(const GURL& url) override;
- void MarkUnreadByURL(const GURL& url) override;
-
- void SetEntryTitle(const GURL& url, const std::string& title) override;
- void SetEntryDistilledPath(const GURL& url,
- const base::FilePath& distilled_path) override;
- void SetEntryDistilledState(
- const GURL& url,
- ReadingListEntry::DistillationState state) override;
-
- void SyncAddEntry(std::unique_ptr<ReadingListEntry> entry,
- bool read) override;
- ReadingListEntry* SyncMergeEntry(std::unique_ptr<ReadingListEntry> entry,
- bool read) override;
- void SyncRemoveEntry(const GURL& url) override;
-
- std::unique_ptr<ReadingListModel::ScopedReadingListBatchUpdate>
- CreateBatchToken() override;
-
- // Helper class that is used to scope batch updates.
- class ScopedReadingListBatchUpdate
- : public ReadingListModel::ScopedReadingListBatchUpdate {
- public:
- explicit ScopedReadingListBatchUpdate(ReadingListModelImpl* model);
-
- ~ScopedReadingListBatchUpdate() override;
-
- private:
- std::unique_ptr<ReadingListModelStorage::ScopedBatchUpdate> storage_token_;
-
- DISALLOW_COPY_AND_ASSIGN(ScopedReadingListBatchUpdate);
- };
-
- protected:
- void EnteringBatchUpdates() override;
- void LeavingBatchUpdates() override;
-
- private:
- // Sets/Loads the pref flag that indicate if some entries have never been seen
- // since being added to the store.
- void SetPersistentHasUnseen(bool has_unseen);
- bool GetPersistentHasUnseen();
-
- // Returns a mutable pointer to the entry with URL |gurl|. Return nullptr if
- // no entry is found. If an entry is found, |read| is set to the read status
- // of the entry.
- ReadingListEntry* GetMutableEntryFromURL(const GURL& gurl, bool* read) const;
-
- // Sorts the entries in |read_| and |unread_| according to their |UpdateTime|.
- void SortEntries();
-
- // Returns the |storage_layer_| of the model.
- ReadingListModelStorage* StorageLayer();
-
- // Remove |entry| from the |entries| vector and calls the Move notifications
- // on observers.
- void MoveEntryFrom(ReadingListEntries* entries,
- const ReadingListEntry& entry,
- bool read);
-
- // Remove entry |url| and propagate to store if |from_sync| is false.
- void RemoveEntryByURLImpl(const GURL& url, bool from_sync);
-
- std::unique_ptr<ReadingListEntries> unread_;
- std::unique_ptr<ReadingListEntries> read_;
- std::unique_ptr<ReadingListModelStorage> storage_layer_;
- PrefService* pref_service_;
- bool has_unseen_;
- bool loaded_;
- base::WeakPtrFactory<ReadingListModelImpl> weak_ptr_factory_;
- DISALLOW_COPY_AND_ASSIGN(ReadingListModelImpl);
-};
-
-#endif // IOS_CHROME_BROWSER_READING_LIST_READING_LIST_MODEL_MEMORY_H_
+#endif // IOS_CHROME_BROWSER_READING_LIST_READING_LIST_MODEL_IMPL_H_

Powered by Google App Engine
This is Rietveld 408576698