OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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_PAGES_BACKGROUND_REQUEST_QUEUE_H_ | 5 #ifndef COMPONENTS_OFFLINE_PAGES_BACKGROUND_REQUEST_QUEUE_H_ |
6 #define COMPONENTS_OFFLINE_PAGES_BACKGROUND_REQUEST_QUEUE_H_ | 6 #define COMPONENTS_OFFLINE_PAGES_BACKGROUND_REQUEST_QUEUE_H_ |
7 | 7 |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include <memory> | 10 #include <memory> |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
43 REQUEST_DOES_NOT_EXIST, // Failed to delete the request because it does not | 43 REQUEST_DOES_NOT_EXIST, // Failed to delete the request because it does not |
44 // exist. | 44 // exist. |
45 }; | 45 }; |
46 | 46 |
47 // Type for a pair of request_id and result. | 47 // Type for a pair of request_id and result. |
48 typedef std::vector<std::pair<int64_t, UpdateRequestResult>> | 48 typedef std::vector<std::pair<int64_t, UpdateRequestResult>> |
49 UpdateMultipleRequestResults; | 49 UpdateMultipleRequestResults; |
50 | 50 |
51 // Callback used for |GetRequests|. | 51 // Callback used for |GetRequests|. |
52 typedef base::Callback<void(GetRequestsResult, | 52 typedef base::Callback<void(GetRequestsResult, |
53 const std::vector<SavePageRequest>&)> | 53 std::vector<std::unique_ptr<SavePageRequest>>)> |
54 GetRequestsCallback; | 54 GetRequestsCallback; |
55 | 55 |
56 // Callback used for |AddRequest|. | 56 // Callback used for |AddRequest|. |
57 typedef base::Callback<void(AddRequestResult, const SavePageRequest& request)> | 57 typedef base::Callback<void(AddRequestResult, const SavePageRequest& request)> |
58 AddRequestCallback; | 58 AddRequestCallback; |
59 | 59 |
60 // Callback used by |UdpateRequest|. | 60 // Callback used by |UdpateRequest|. |
61 typedef base::Callback<void(UpdateRequestResult)> UpdateRequestCallback; | 61 typedef base::Callback<void(UpdateRequestResult)> UpdateRequestCallback; |
62 | 62 |
63 // Callback used by |ChangeState| for more than one update at a time. | 63 // Callback used by |ChangeState| for more than one update at a time. |
64 typedef base::Callback<void(const UpdateMultipleRequestResults& results, | 64 typedef base::Callback<void( |
65 const std::vector<SavePageRequest>& requests)> | 65 const UpdateMultipleRequestResults& results, |
| 66 std::vector<std::unique_ptr<SavePageRequest>> requests)> |
66 UpdateMultipleRequestsCallback; | 67 UpdateMultipleRequestsCallback; |
67 | 68 |
68 // Callback used by |RemoveRequests|. | 69 // Callback used by |RemoveRequests|. |
69 typedef base::Callback<void(const UpdateMultipleRequestResults& results, | 70 typedef base::Callback<void( |
70 const std::vector<SavePageRequest>& requests)> | 71 const UpdateMultipleRequestResults& results, |
| 72 std::vector<std::unique_ptr<SavePageRequest>> requests)> |
71 RemoveRequestsCallback; | 73 RemoveRequestsCallback; |
72 | 74 |
73 explicit RequestQueue(std::unique_ptr<RequestQueueStore> store); | 75 explicit RequestQueue(std::unique_ptr<RequestQueueStore> store); |
74 ~RequestQueue(); | 76 ~RequestQueue(); |
75 | 77 |
76 // Gets all of the active requests from the store. Calling this method may | 78 // Gets all of the active requests from the store. Calling this method may |
77 // schedule purging of the request queue. | 79 // schedule purging of the request queue. |
78 void GetRequests(const GetRequestsCallback& callback); | 80 void GetRequests(const GetRequestsCallback& callback); |
79 | 81 |
80 // Adds |request| to the request queue. Result is returned through |callback|. | 82 // Adds |request| to the request queue. Result is returned through |callback|. |
(...skipping 20 matching lines...) Expand all Loading... |
101 // modify this to have a single update function that updates an entire | 103 // modify this to have a single update function that updates an entire |
102 // request, and doesn't need to care what updates. | 104 // request, and doesn't need to care what updates. |
103 void ChangeRequestsState(const std::vector<int64_t>& request_ids, | 105 void ChangeRequestsState(const std::vector<int64_t>& request_ids, |
104 const SavePageRequest::RequestState new_state, | 106 const SavePageRequest::RequestState new_state, |
105 const UpdateMultipleRequestsCallback& callback); | 107 const UpdateMultipleRequestsCallback& callback); |
106 | 108 |
107 void GetForUpdateDone( | 109 void GetForUpdateDone( |
108 const RequestQueue::UpdateRequestCallback& update_callback, | 110 const RequestQueue::UpdateRequestCallback& update_callback, |
109 const SavePageRequest& update_request, | 111 const SavePageRequest& update_request, |
110 bool success, | 112 bool success, |
111 const std::vector<SavePageRequest>& requests); | 113 std::vector<std::unique_ptr<SavePageRequest>> requests); |
112 | 114 |
113 private: | 115 private: |
114 // Callback used by |PurgeRequests|. | 116 // Callback used by |PurgeRequests|. |
115 typedef base::Callback<void(UpdateRequestResult, | 117 typedef base::Callback<void(UpdateRequestResult, |
116 int /* removed requests count */)> | 118 int /* removed requests count */)> |
117 PurgeRequestsCallback; | 119 PurgeRequestsCallback; |
118 | 120 |
119 // Purges the queue, removing the requests that are no longer relevant, e.g. | 121 // Purges the queue, removing the requests that are no longer relevant, e.g. |
120 // expired request. Result is returned through |callback| carries the number | 122 // expired request. Result is returned through |callback| carries the number |
121 // of removed requests. | 123 // of removed requests. |
122 void PurgeRequests(const PurgeRequestsCallback& callback); | 124 void PurgeRequests(const PurgeRequestsCallback& callback); |
123 | 125 |
124 std::unique_ptr<RequestQueueStore> store_; | 126 std::unique_ptr<RequestQueueStore> store_; |
125 | 127 |
126 // Allows us to pass a weak pointer to callbacks. | 128 // Allows us to pass a weak pointer to callbacks. |
127 base::WeakPtrFactory<RequestQueue> weak_ptr_factory_; | 129 base::WeakPtrFactory<RequestQueue> weak_ptr_factory_; |
128 | 130 |
129 DISALLOW_COPY_AND_ASSIGN(RequestQueue); | 131 DISALLOW_COPY_AND_ASSIGN(RequestQueue); |
130 }; | 132 }; |
131 | 133 |
132 } // namespace offline_pages | 134 } // namespace offline_pages |
133 | 135 |
134 #endif // COMPONENTS_OFFLINE_PAGES_BACKGROUND_REQUEST_QUEUE_H_ | 136 #endif // COMPONENTS_OFFLINE_PAGES_BACKGROUND_REQUEST_QUEUE_H_ |
OLD | NEW |