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

Unified Diff: components/offline_pages/background/request_queue_in_memory_store.h

Issue 2221323003: Add an API to Pause and Resume background offlining requests. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Switch to request ID as key Created 4 years, 4 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 side-by-side diff with in-line comments
Download patch
Index: components/offline_pages/background/request_queue_in_memory_store.h
diff --git a/components/offline_pages/background/request_queue_in_memory_store.h b/components/offline_pages/background/request_queue_in_memory_store.h
index cc02921c6d94bb2b0d778e32c6bd691b92be432d..d914975aacd55abd31b4d73c7a93cf116346871e 100644
--- a/components/offline_pages/background/request_queue_in_memory_store.h
+++ b/components/offline_pages/background/request_queue_in_memory_store.h
@@ -11,11 +11,10 @@
#include "base/macros.h"
#include "components/offline_pages/background/request_queue_store.h"
+#include "components/offline_pages/background/save_page_request.h"
namespace offline_pages {
-class SavePageRequest;
-
// Interface for classes storing save page requests.
class RequestQueueInMemoryStore : public RequestQueueStore {
public:
@@ -24,6 +23,7 @@ class RequestQueueInMemoryStore : public RequestQueueStore {
// RequestQueueStore implementaiton.
void GetRequests(const GetRequestsCallback& callback) override;
+
void AddOrUpdateRequest(const SavePageRequest& request,
const UpdateCallback& callback) override;
// Remove requests by request ID. In case the |request_ids| is empty, the
@@ -34,9 +34,22 @@ class RequestQueueInMemoryStore : public RequestQueueStore {
// result will be true, but the count of deleted pages will be 0.
void RemoveRequestsByClientId(const std::vector<ClientId>& client_ids,
const RemoveCallback& callback) override;
+
+ // Set the state of associated requests to PAUSED.
+ void PauseRequests(const std::vector<int64_t>& request_ids,
+ const UpdateCallback& callback) override;
+
+ // Change the state of any requests that are PAUSED to AVAILABLE
+ void ResumeRequests(const std::vector<int64_t>& request_ids,
+ const UpdateCallback& callback) override;
+
void Reset(const ResetCallback& callback) override;
private:
+ RequestQueueStore::UpdateStatus SetStateForRequestIds(
+ const std::vector<int64_t>& request_ids,
+ SavePageRequest::RequestState newState);
+
typedef std::map<int64_t, SavePageRequest> RequestsMap;
RequestsMap requests_;

Powered by Google App Engine
This is Rietveld 408576698