| Index: ios/chrome/browser/reading_list/reading_list_entry.h
|
| diff --git a/ios/chrome/browser/reading_list/reading_list_entry.h b/ios/chrome/browser/reading_list/reading_list_entry.h
|
| index 3ed4903e8e6226a817acd367e997cb5fc1a8fa0b..5d2f1a7f9304ba0980e4d743358dbc82f48bbe26 100644
|
| --- a/ios/chrome/browser/reading_list/reading_list_entry.h
|
| +++ b/ios/chrome/browser/reading_list/reading_list_entry.h
|
| @@ -6,11 +6,22 @@
|
| #define IOS_CHROME_BROWSER_READING_LIST_READING_LIST_ENTRY_H_
|
|
|
| #include <string>
|
| +#include <vector>
|
|
|
| #include "base/macros.h"
|
| +#include "base/time/default_tick_clock.h"
|
| +#include "base/time/time.h"
|
| #include "net/base/backoff_entry.h"
|
| #include "url/gurl.h"
|
|
|
| +namespace reading_list {
|
| +class ReadingListLocal;
|
| +}
|
| +
|
| +namespace sync_pb {
|
| +class ReadingListSpecifics;
|
| +}
|
| +
|
| // An entry in the reading list. The URL is a unique identifier for an entry, as
|
| // such it should not be empty and is the only thing considered when comparing
|
| // entries.
|
| @@ -48,9 +59,41 @@ class ReadingListEntry {
|
| // non-error state.
|
| int FailedDownloadCounter() const;
|
|
|
| + // The last update time of the entry. This value may be used to sort the
|
| + // entries. The value is in microseconds since Jan 1st 1970.
|
| + int64_t UpdateTime() const;
|
| +
|
| + // Set the update time to now.
|
| + void MarkEntryUpdated();
|
| +
|
| + // Returns a protobuf encoding the content of this ReadingListEntry.
|
| + std::unique_ptr<reading_list::ReadingListLocal> AsReadingListLocal(
|
| + bool read) const;
|
| +
|
| + // Returns a protobuf encoding the content of this ReadingListEntry for sync.
|
| + std::unique_ptr<sync_pb::ReadingListSpecifics> AsReadingListSpecifics(
|
| + bool read) const;
|
| +
|
| + // Created a ReadingListEntry from the protobuf format.
|
| + static std::unique_ptr<ReadingListEntry> FromReadingListLocal(
|
| + const reading_list::ReadingListLocal& pb_entry);
|
| +
|
| + // Created a ReadingListEntry from the protobuf format.
|
| + static std::unique_ptr<ReadingListEntry> FromReadingListSpecifics(
|
| + const sync_pb::ReadingListSpecifics& pb_entry);
|
| +
|
| + // Merge the local data from |other| to this.
|
| + // |other| must not be used after this point.
|
| + void MergeLocalStateFrom(ReadingListEntry& other);
|
| +
|
| ReadingListEntry& operator=(ReadingListEntry&& other);
|
| +
|
| bool operator==(const ReadingListEntry& other) const;
|
|
|
| + // returns whether |lhs| is more recent than |rhs|.
|
| + static bool CompareEntryUpdateTime(const ReadingListEntry& lhs,
|
| + const ReadingListEntry& rhs);
|
| +
|
| // Sets the title.
|
| void SetTitle(const std::string& title);
|
| // Sets the distilled URL and switch the state to PROCESSED and reset the time
|
| @@ -60,13 +103,27 @@ class ReadingListEntry {
|
| void SetDistilledState(DistillationState distilled_state);
|
|
|
| private:
|
| + ReadingListEntry(const GURL& url,
|
| + const std::string& title,
|
| + int64_t creation_time,
|
| + int64_t update_time,
|
| + DistillationState distilled_state,
|
| + const GURL& distilled_url,
|
| + std::unique_ptr<net::BackoffEntry> backoff);
|
| GURL url_;
|
| std::string title_;
|
| GURL distilled_url_;
|
| DistillationState distilled_state_;
|
| +
|
| std::unique_ptr<net::BackoffEntry> backoff_;
|
| int failed_download_counter_;
|
|
|
| + // These value are in microseconds since Jan 1st 1970. They are used for
|
| + // sorting the entries from the database. They are kept in int64_t to avoid
|
| + // conversion on each save/read event.
|
| + int64_t creation_time_us_;
|
| + int64_t update_time_us_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(ReadingListEntry);
|
| };
|
|
|
|
|