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

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

Issue 1932953002: [Offline pages] Empty RequestQueue and SavePageRequest (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Adding build files and fixing compilation issues 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
(Empty)
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
3 // found in the LICENSE file.
4
5 #ifndef COMPONENTS_OFFLINE_PAGES_BACKGROUND_REQUEST_QUEUE_H_
6 #define COMPONENTS_OFFLINE_PAGES_BACKGROUND_REQUEST_QUEUE_H_
7
8 #include <stdint.h>
9 #include <vector>
10
11 #include "base/callback.h"
12
13 namespace offline_pages {
14
15 struct SavePageRequest;
16
17 // Class responsible for managing save page requests.
18 class RequestQueue {
19 public:
20 enum class GetRequestsResult {
21 kSuccess,
22 kStoreFailure,
23 };
24
25 enum class AddRequestResult {
26 kSuccess,
27 kStoreFailure,
28 kRequestQuotaHit, // Cannot add a request with this namespace, as it has
29 // reached a quota of active requests.
30 };
31
32 enum class UpdateRequestResult {
33 kSuccess,
34 kStoreFailure,
35 kRequestDoesNotExist, // Failed to delete the request because it does not
36 // exist.
37 };
38
39 // Callback used for |GetRequests|.
40 typedef base::Callback<void(GetRequestsResult,
41 const std::vector<SavePageRequest>&)>
42 GetRequestsCallback;
43
44 // Callback used for |AddRequest|.
45 typedef base::Callback<void(AddRequestResult, const SavePageRequest& request)>
46 AddRequestCallback;
47
48 // Callback used by |UdpateRequest| and |RemoveRequest|.
49 typedef base::Callback<void(UpdateRequestResult)> UpdateRequestCallback;
50
51 // Gets all of the active requests from the store. Calling this method may
52 // schedule purging of the request queue.
53 void GetRequests(const GetRequestsCallback& callback);
54
55 // Adds |request| to the request queue. Result is returned through |callback|.
56 // In case adding the request violates policy, the result will fail with
dougarnett 2016/04/29 15:39:14 I see the QuotaHit result defined above - could yo
fgorski 2016/04/30 18:56:14 I think we should document that only once we have
57 // appropriate result. Callback will also return a copy of a request with all
58 // fields set.
59 void AddRequest(const SavePageRequest& request,
60 const AddRequestCallback& callback);
61
62 // Updates a request in the request queue if a request with matching ID
63 // exists. Does nothing otherwise. Result is returned through |callback|.
dougarnett 2016/04/29 15:39:14 Is this a simple overwrite?
fgorski 2016/04/30 18:56:14 Yes.
64 void UpdateRequest(const SavePageRequest& request,
65 const UpdateRequestCallback& callback);
66
67 // Removes the request matching the |request_id|. Result is returned through
68 // |callback|.
69 void RemoveRequest(int64_t request_id, const UpdateRequestCallback& callback);
70
71 private:
72 // Callback used by |PurgeRequests|.
73 typedef base::Callback<void(UpdateRequestResult,
74 int /* removed requests count */)>
75 PurgeRequestsCallback;
76
77 // Purges the queue, removing the requests that are no longer relevant, e.g.
78 // expired request. Result is returned through |callback| carries the number
79 // of removed requests.
80 void PurgeRequests(const PurgeRequestsCallback& callback);
81 };
82
83 } // namespace offline_pages
84
85 #endif // COMPONENTS_OFFLINE_PAGES_BACKGROUND_REQUEST_QUEUE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698