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

Side by Side Diff: components/offline_pages/background/request_queue.h

Issue 2262423002: Use a vector of smart pointers for callback return type. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Merge Created 4 years, 3 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 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
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
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_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698