#include "components/reading_list/core/dual_reading_list_model.h"
#include "base/auto_reset.h"
#include "base/location.h"
#include "base/memory/scoped_refptr.h"
#include "base/notreached.h"
#include "base/stl_util.h"
#include "base/strings/string_util.h"
#include "components/reading_list/core/reading_list_entry.h"
#include "components/reading_list/core/reading_list_model_impl.h"
#include "components/sync/base/features.h"
#include "google_apis/gaia/core_account_id.h"
#include "url/gurl.h"
namespace reading_list {
DualReadingListModel::ScopedReadingListBatchUpdateImpl::
ScopedReadingListBatchUpdateImpl(
std::unique_ptr<ScopedReadingListBatchUpdate>
local_or_syncable_model_batch,
std::unique_ptr<ScopedReadingListBatchUpdate> account_model_batch)
: … { … }
DualReadingListModel::ScopedReadingListBatchUpdateImpl::
~ScopedReadingListBatchUpdateImpl() = default;
DualReadingListModel::DualReadingListModel(
std::unique_ptr<ReadingListModelImpl> local_or_syncable_model,
std::unique_ptr<ReadingListModelImpl> account_model)
: … { … }
DualReadingListModel::~DualReadingListModel() { … }
void DualReadingListModel::Shutdown() { … }
bool DualReadingListModel::loaded() const { … }
base::WeakPtr<syncer::DataTypeControllerDelegate>
DualReadingListModel::GetSyncControllerDelegate() { … }
base::WeakPtr<syncer::DataTypeControllerDelegate>
DualReadingListModel::GetSyncControllerDelegateForTransportMode() { … }
bool DualReadingListModel::IsPerformingBatchUpdates() const { … }
std::unique_ptr<ReadingListModel::ScopedReadingListBatchUpdate>
DualReadingListModel::BeginBatchUpdates() { … }
base::flat_set<GURL> DualReadingListModel::GetKeys() const { … }
size_t DualReadingListModel::size() const { … }
size_t DualReadingListModel::unread_size() const { … }
size_t DualReadingListModel::unseen_size() const { … }
void DualReadingListModel::MarkAllSeen() { … }
bool DualReadingListModel::DeleteAllEntries(const base::Location& location) { … }
scoped_refptr<const ReadingListEntry> DualReadingListModel::GetEntryByURL(
const GURL& gurl) const { … }
bool DualReadingListModel::IsUrlSupported(const GURL& url) { … }
CoreAccountId DualReadingListModel::GetAccountWhereEntryIsSavedTo(
const GURL& url) { … }
bool DualReadingListModel::NeedsExplicitUploadToSyncServer(
const GURL& url) const { … }
void DualReadingListModel::MarkAllForUploadToSyncServerIfNeeded() { … }
const ReadingListEntry& DualReadingListModel::AddOrReplaceEntry(
const GURL& url,
const std::string& title,
reading_list::EntrySource source,
base::TimeDelta estimated_read_time) { … }
void DualReadingListModel::RemoveEntryByURL(const GURL& url,
const base::Location& location) { … }
void DualReadingListModel::SetReadStatusIfExists(const GURL& url, bool read) { … }
void DualReadingListModel::SetEntryTitleIfExists(const GURL& url,
const std::string& title) { … }
void DualReadingListModel::SetEstimatedReadTimeIfExists(
const GURL& url,
base::TimeDelta estimated_read_time) { … }
void DualReadingListModel::SetEntryDistilledStateIfExists(
const GURL& url,
ReadingListEntry::DistillationState state) { … }
void DualReadingListModel::SetEntryDistilledInfoIfExists(
const GURL& url,
const base::FilePath& distilled_path,
const GURL& distilled_url,
int64_t distilation_size,
base::Time distilation_time) { … }
void DualReadingListModel::AddObserver(ReadingListModelObserver* observer) { … }
void DualReadingListModel::RemoveObserver(ReadingListModelObserver* observer) { … }
void DualReadingListModel::RecordCountMetricsOnUMAUpload() const { … }
void DualReadingListModel::ReadingListModelBeganBatchUpdates(
const ReadingListModel* model) { … }
void DualReadingListModel::ReadingListModelCompletedBatchUpdates(
const ReadingListModel* model) { … }
void DualReadingListModel::ReadingListModelLoaded(
const ReadingListModel* model) { … }
void DualReadingListModel::ReadingListWillRemoveEntry(
const ReadingListModel* model,
const GURL& url) { … }
void DualReadingListModel::ReadingListDidRemoveEntry(
const ReadingListModel* model,
const GURL& url) { … }
void DualReadingListModel::ReadingListWillMoveEntry(
const ReadingListModel* model,
const GURL& url) { … }
void DualReadingListModel::ReadingListDidMoveEntry(
const ReadingListModel* model,
const GURL& url) { … }
void DualReadingListModel::ReadingListWillAddEntry(
const ReadingListModel* model,
const ReadingListEntry& entry) { … }
void DualReadingListModel::ReadingListDidAddEntry(
const ReadingListModel* model,
const GURL& url,
reading_list::EntrySource source) { … }
void DualReadingListModel::ReadingListWillUpdateEntry(
const ReadingListModel* model,
const GURL& url) { … }
void DualReadingListModel::ReadingListDidUpdateEntry(
const ReadingListModel* model,
const GURL& url) { … }
void DualReadingListModel::ReadingListDidApplyChanges(ReadingListModel* model) { … }
DualReadingListModel::StorageStateForTesting
DualReadingListModel::GetStorageStateForURLForTesting(const GURL& url) { … }
void DualReadingListModel::NotifyObserversWithWillRemoveEntry(const GURL& url) { … }
void DualReadingListModel::NotifyObserversWithDidRemoveEntry(const GURL& url) { … }
void DualReadingListModel::NotifyObserversWithWillMoveEntry(const GURL& url) { … }
void DualReadingListModel::NotifyObserversWithDidMoveEntry(const GURL& url) { … }
void DualReadingListModel::NotifyObserversWithWillUpdateEntry(const GURL& url) { … }
void DualReadingListModel::NotifyObserversWithDidUpdateEntry(const GURL& url) { … }
void DualReadingListModel::NotifyObserversWithDidApplyChanges() { … }
const ReadingListModelImpl* DualReadingListModel::ToReadingListModelImpl(
const ReadingListModel* model) { … }
void DualReadingListModel::UpdateEntryStateCountersOnEntryRemoval(
const ReadingListEntry& entry) { … }
void DualReadingListModel::UpdateEntryStateCountersOnEntryInsertion(
const ReadingListEntry& entry) { … }
base::flat_set<GURL> DualReadingListModel::GetKeysThatNeedUploadToSyncServer()
const { … }
ReadingListModel* DualReadingListModel::GetLocalOrSyncableModel() { … }
ReadingListModel* DualReadingListModel::GetAccountModelIfSyncing() { … }
}