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

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

Issue 1947253002: [Offline pages] Implementation of RequestQueue: Add, Remove, Get (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: removing optional Created 4 years, 7 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
10 #include <memory>
9 #include <vector> 11 #include <vector>
10 12
11 #include "base/callback.h" 13 #include "base/callback.h"
14 #include "base/macros.h"
12 15
13 namespace offline_pages { 16 namespace offline_pages {
14 17
18 class RequestQueueStore;
15 class SavePageRequest; 19 class SavePageRequest;
16 20
17 // Class responsible for managing save page requests. 21 // Class responsible for managing save page requests.
18 class RequestQueue { 22 class RequestQueue {
19 public: 23 public:
20 enum class GetRequestsResult { 24 enum class GetRequestsResult {
21 kSuccess, 25 kSuccess,
22 kStoreFailure, 26 kStoreFailure,
23 }; 27 };
24 28
(...skipping 16 matching lines...) Expand all
41 const std::vector<SavePageRequest>&)> 45 const std::vector<SavePageRequest>&)>
42 GetRequestsCallback; 46 GetRequestsCallback;
43 47
44 // Callback used for |AddRequest|. 48 // Callback used for |AddRequest|.
45 typedef base::Callback<void(AddRequestResult, const SavePageRequest& request)> 49 typedef base::Callback<void(AddRequestResult, const SavePageRequest& request)>
46 AddRequestCallback; 50 AddRequestCallback;
47 51
48 // Callback used by |UdpateRequest| and |RemoveRequest|. 52 // Callback used by |UdpateRequest| and |RemoveRequest|.
49 typedef base::Callback<void(UpdateRequestResult)> UpdateRequestCallback; 53 typedef base::Callback<void(UpdateRequestResult)> UpdateRequestCallback;
50 54
55 explicit RequestQueue(std::unique_ptr<RequestQueueStore> store);
56 ~RequestQueue();
57
51 // Gets all of the active requests from the store. Calling this method may 58 // Gets all of the active requests from the store. Calling this method may
52 // schedule purging of the request queue. 59 // schedule purging of the request queue.
53 void GetRequests(const GetRequestsCallback& callback); 60 void GetRequests(const GetRequestsCallback& callback);
54 61
55 // Adds |request| to the request queue. Result is returned through |callback|. 62 // Adds |request| to the request queue. Result is returned through |callback|.
56 // In case adding the request violates policy, the result will fail with 63 // In case adding the request violates policy, the result will fail with
57 // appropriate result. Callback will also return a copy of a request with all 64 // appropriate result. Callback will also return a copy of a request with all
58 // fields set. 65 // fields set.
59 void AddRequest(const SavePageRequest& request, 66 void AddRequest(const SavePageRequest& request,
60 const AddRequestCallback& callback); 67 const AddRequestCallback& callback);
(...skipping 10 matching lines...) Expand all
71 private: 78 private:
72 // Callback used by |PurgeRequests|. 79 // Callback used by |PurgeRequests|.
73 typedef base::Callback<void(UpdateRequestResult, 80 typedef base::Callback<void(UpdateRequestResult,
74 int /* removed requests count */)> 81 int /* removed requests count */)>
75 PurgeRequestsCallback; 82 PurgeRequestsCallback;
76 83
77 // Purges the queue, removing the requests that are no longer relevant, e.g. 84 // Purges the queue, removing the requests that are no longer relevant, e.g.
78 // expired request. Result is returned through |callback| carries the number 85 // expired request. Result is returned through |callback| carries the number
79 // of removed requests. 86 // of removed requests.
80 void PurgeRequests(const PurgeRequestsCallback& callback); 87 void PurgeRequests(const PurgeRequestsCallback& callback);
88
89 std::unique_ptr<RequestQueueStore> store_;
90
91 DISALLOW_COPY_AND_ASSIGN(RequestQueue);
81 }; 92 };
82 93
83 } // namespace offline_pages 94 } // namespace offline_pages
84 95
85 #endif // COMPONENTS_OFFLINE_PAGES_BACKGROUND_REQUEST_QUEUE_H_ 96 #endif // COMPONENTS_OFFLINE_PAGES_BACKGROUND_REQUEST_QUEUE_H_
OLDNEW
« no previous file with comments | « components/offline_pages/background/BUILD.gn ('k') | components/offline_pages/background/request_queue.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698