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

Side by Side Diff: components/offline_items_collection/core/offline_content_provider.h

Issue 2811803006: Add support for pulling icons for OfflineItems (Closed)
Patch Set: Cleaned up the CL Created 3 years, 8 months 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 unified diff | Download patch
OLDNEW
1 // Copyright 2017 The Chromium Authors. All rights reserved. 1 // Copyright 2017 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef COMPONENTS_OFFLINE_ITEMS_COLLETION_CORE_OFFLINE_CONTENT_PROVIDER_H_ 5 #ifndef COMPONENTS_OFFLINE_ITEMS_COLLETION_CORE_OFFLINE_CONTENT_PROVIDER_H_
6 #define COMPONENTS_OFFLINE_ITEMS_COLLETION_CORE_OFFLINE_CONTENT_PROVIDER_H_ 6 #define COMPONENTS_OFFLINE_ITEMS_COLLETION_CORE_OFFLINE_CONTENT_PROVIDER_H_
7 7
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
11 #include "base/callback.h"
11 #include "base/macros.h" 12 #include "base/macros.h"
12 #include "url/gurl.h" 13 #include "url/gurl.h"
13 14
14 namespace offline_items_collection { 15 namespace offline_items_collection {
15 16
16 struct ContentId; 17 struct ContentId;
17 struct OfflineItem; 18 struct OfflineItem;
19 struct OfflineItemVisuals;
18 20
19 // A provider of a set of OfflineItems that are meant to be exposed to the UI. 21 // A provider of a set of OfflineItems that are meant to be exposed to the UI.
20 // The provider is required to notify all observers of OnItemsAvailable when the 22 // The provider is required to notify all observers of OnItemsAvailable when the
21 // underlying data set is initialized. Without that call it should not expect 23 // underlying data set is initialized. Without that call it should not expect
22 // nor have to support any other calls to this provider. 24 // nor have to support any other calls to this provider.
23 class OfflineContentProvider { 25 class OfflineContentProvider {
24 public: 26 public:
25 using OfflineItemList = std::vector<OfflineItem>; 27 using OfflineItemList = std::vector<OfflineItem>;
28 using VisualsCallback =
29 base::Callback<void(const ContentId&, const OfflineItemVisuals*)>;
26 30
27 // An observer class that should be notified of relevant changes to the 31 // An observer class that should be notified of relevant changes to the
28 // underlying data source. 32 // underlying data source.
29 class Observer { 33 class Observer {
30 public: 34 public:
31 // Called when the underlying data source for the provider has been 35 // Called when the underlying data source for the provider has been
32 // initialized and the contents are able to be queried and interacted with. 36 // initialized and the contents are able to be queried and interacted with.
33 // |provider| should be a reference to this OfflineContentProvider that is 37 // |provider| should be a reference to this OfflineContentProvider that is
34 // initialized. 38 // initialized.
35 virtual void OnItemsAvailable(OfflineContentProvider* provider) = 0; 39 virtual void OnItemsAvailable(OfflineContentProvider* provider) = 0;
36 40
37 // Called when one or more OfflineItems have been added and should be shown 41 // Called when one or more OfflineItems have been added and should be shown
38 // in the UI. 42 // in the UI.
39 virtual void OnItemsAdded(const OfflineItemList& items) = 0; 43 virtual void OnItemsAdded(const OfflineItemList& items) = 0;
40 44
41 // Called when the OfflineItem represented by |id| should be removed from 45 // Called when the OfflineItem represented by |id| should be removed from
42 // the UI. 46 // the UI.
43 virtual void OnItemRemoved(const ContentId& id) = 0; 47 virtual void OnItemRemoved(const ContentId& id) = 0;
44 48
45 // Called when the contents of |item| have been updated and the UI should be 49 // Called when the contents of |item| have been updated and the UI should be
46 // refreshed for that item. 50 // refreshed for that item.
51 // TODO(dtrainor): Make this take a list of OfflineItems.
47 virtual void OnItemUpdated(const OfflineItem& item) = 0; 52 virtual void OnItemUpdated(const OfflineItem& item) = 0;
48 53
49 protected: 54 protected:
50 virtual ~Observer() = default; 55 virtual ~Observer() = default;
51 }; 56 };
52 57
53 // Returns whether or not the underlying data source for this provider has 58 // Returns whether or not the underlying data source for this provider has
54 // been initialized and is ready to start returning content. This provider 59 // been initialized and is ready to start returning content. This provider
55 // should not need to support handling the other data query/manipulation 60 // should not need to support handling the other data query/manipulation
56 // methods if this returns false. 61 // methods if this returns false.
(...skipping 15 matching lines...) Expand all
72 virtual void ResumeDownload(const ContentId& id) = 0; 77 virtual void ResumeDownload(const ContentId& id) = 0;
73 78
74 // Returns an OfflineItem represented by |id| or |nullptr| if none exists. 79 // Returns an OfflineItem represented by |id| or |nullptr| if none exists.
75 // The caller should not hold ownership of the returned item beyond the scope 80 // The caller should not hold ownership of the returned item beyond the scope
76 // of the function call. 81 // of the function call.
77 virtual const OfflineItem* GetItemById(const ContentId& id) = 0; 82 virtual const OfflineItem* GetItemById(const ContentId& id) = 0;
78 83
79 // Returns all OfflineItems for this particular provider. 84 // Returns all OfflineItems for this particular provider.
80 virtual OfflineItemList GetAllItems() = 0; 85 virtual OfflineItemList GetAllItems() = 0;
81 86
87 // Asks for an OfflineItemVisuals struct for an OfflineItem represented by
88 // |id| or |nullptr| if one doesn't exist. The caller should post any
nyquist 2017/04/13 05:08:25 The "caller"? Do you mean the implementor of the i
David Trainor- moved to gerrit 2017/04/13 07:20:23 Ah yeah sorry thanks!
89 // replies even if the results are available immediately to prevent reentrancy
90 // and for consistent behavior.
91 virtual void GetVisualsForItem(const ContentId& id,
92 const VisualsCallback& callback) = 0;
93
82 // Adds an observer that should be notified of OfflineItem list modifications. 94 // Adds an observer that should be notified of OfflineItem list modifications.
83 // If the provider is already initialized OnItemsAvailable should be scheduled 95 // If the provider is already initialized OnItemsAvailable should be scheduled
84 // on this observer (suggested over calling the method directly to avoid 96 // on this observer (suggested over calling the method directly to avoid
85 // reentrancy). 97 // reentrancy).
86 virtual void AddObserver(Observer* observer) = 0; 98 virtual void AddObserver(Observer* observer) = 0;
87 99
88 // Removes an observer. No further notifications should be sent to it. 100 // Removes an observer. No further notifications should be sent to it.
89 virtual void RemoveObserver(Observer* observer) = 0; 101 virtual void RemoveObserver(Observer* observer) = 0;
90 102
91 protected: 103 protected:
92 virtual ~OfflineContentProvider() = default; 104 virtual ~OfflineContentProvider() = default;
93 }; 105 };
94 106
95 } // namespace offline_items_collection 107 } // namespace offline_items_collection
96 108
97 #endif // COMPONENTS_OFFLINE_ITEMS_COLLETION_CORE_OFFLINE_CONTENT_PROVIDER_H_ 109 #endif // COMPONENTS_OFFLINE_ITEMS_COLLETION_CORE_OFFLINE_CONTENT_PROVIDER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698