| 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 |