Chromium Code Reviews| 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..303891cc7e4c18738cd77906ca3a353c7818960c 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( |
|
jif
2016/11/07 12:30:51
|AsReadingListSpecifics| is "for sync."
what is |A
Olivier
2016/11/07 18:18:45
for local storage. Added to comment.
|
| + 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); |
|
jif
2016/11/07 12:30:51
with "ReadingListEntry&&" you wouldn't have to wri
Olivier
2016/11/07 18:18:45
This is more complicated than that :)
|
| + |
| 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,28 @@ 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, |
| + int failed_download_counter, |
| + 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); |
| }; |