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

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

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 #include "components/offline_pages/background/request_queue.h" 5 #include "components/offline_pages/background/request_queue.h"
6 6
7 #include "base/bind.h"
8 #include "base/location.h"
9 #include "base/thread_task_runner_handle.h"
10 #include "components/offline_pages/background/request_queue_store.h"
7 #include "components/offline_pages/background/save_page_request.h" 11 #include "components/offline_pages/background/save_page_request.h"
8 12
9 namespace offline_pages { 13 namespace offline_pages {
10 14
11 void RequestQueue::GetRequests(const GetRequestsCallback& callback) {} 15 namespace {
16 // Completes the get requests call.
17 void GetRequestsDone(const RequestQueue::GetRequestsCallback& callback,
18 bool success,
19 const std::vector<SavePageRequest>& requests) {
20 RequestQueue::GetRequestsResult result =
21 success ? RequestQueue::GetRequestsResult::kSuccess
22 : RequestQueue::GetRequestsResult::kStoreFailure;
23 // TODO(fgorski): Filter out expired requests based on policy.
24 // This may trigger the purging if necessary.
25 // Also this may be turned into a method on the request queue or add a policy
26 // parameter in the process.
27 callback.Run(result, requests);
28 }
29
30 // Completes the add request call.
31 void AddRequestDone(const RequestQueue::AddRequestCallback& callback,
32 const SavePageRequest& request,
33 RequestQueueStore::UpdateStatus status) {
34 RequestQueue::AddRequestResult result =
35 (status == RequestQueueStore::UpdateStatus::kAdded)
36 ? RequestQueue::AddRequestResult::kSuccess
37 : RequestQueue::AddRequestResult::kStoreFailure;
38 callback.Run(result, request);
39 }
40
41 // Completes the remove request call.
42 void RemoveRequestDone(const RequestQueue::UpdateRequestCallback& callback,
43 bool success,
44 int deleted_requests_count) {
45 DCHECK_EQ(1, deleted_requests_count);
46 RequestQueue::UpdateRequestResult result =
47 success ? RequestQueue::UpdateRequestResult::kSuccess
48 : RequestQueue::UpdateRequestResult::kStoreFailure;
49 callback.Run(result);
50 }
51 } // namespace
52
53 RequestQueue::RequestQueue(std::unique_ptr<RequestQueueStore> store)
54 : store_(std::move(store)) {}
55
56 RequestQueue::~RequestQueue() {}
57
58 void RequestQueue::GetRequests(const GetRequestsCallback& callback) {
59 store_->GetRequests(base::Bind(&GetRequestsDone, callback));
60 }
12 61
13 void RequestQueue::AddRequest(const SavePageRequest& request, 62 void RequestQueue::AddRequest(const SavePageRequest& request,
14 const AddRequestCallback& callback) {} 63 const AddRequestCallback& callback) {
64 // TODO(fgorski): check that request makes sense.
65 // TODO(fgorski): check that request does not violate policy.
66 store_->AddOrUpdateRequest(request,
67 base::Bind(&AddRequestDone, callback, request));
68 }
15 69
16 void RequestQueue::UpdateRequest(const SavePageRequest& request, 70 void RequestQueue::UpdateRequest(const SavePageRequest& request,
17 const UpdateRequestCallback& callback) {} 71 const UpdateRequestCallback& callback) {}
18 72
19 void RequestQueue::RemoveRequest(int64_t request_id, 73 void RequestQueue::RemoveRequest(int64_t request_id,
20 const UpdateRequestCallback& callback) {} 74 const UpdateRequestCallback& callback) {
75 std::vector<int64_t> request_ids{request_id};
76 store_->RemoveRequests(request_ids, base::Bind(RemoveRequestDone, callback));
77 }
21 78
22 void RequestQueue::PurgeRequests(const PurgeRequestsCallback& callback) {} 79 void RequestQueue::PurgeRequests(const PurgeRequestsCallback& callback) {}
23 80
24 } // namespace offline_pages 81 } // namespace offline_pages
OLDNEW
« no previous file with comments | « components/offline_pages/background/request_queue.h ('k') | components/offline_pages/background/request_queue_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698