OLD | NEW |
---|---|
(Empty) | |
1 // Copyright 2017 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 #include "components/offline_pages/core/cached_offline_page_utils.h" | |
6 | |
7 #include <stdint.h> | |
8 | |
9 #include "base/bind.h" | |
10 #include "base/time/time.h" | |
11 #include "components/offline_pages/core/offline_page_item.h" | |
12 #include "components/offline_pages/core/offline_page_model.h" | |
13 #include "components/offline_pages/core/offline_page_types.h" | |
14 | |
15 namespace { | |
16 | |
17 void DoCalculateSizeBetween( | |
18 const offline_pages::SizeCalculatedCallback& callback, | |
19 const base::Time& begin_time, | |
20 const base::Time& end_time, | |
21 const offline_pages::MultipleOfflinePageItemResult& result) { | |
22 int64_t total_size = 0; | |
23 for (auto& page : result) { | |
24 if (begin_time <= page.creation_time && page.creation_time <= end_time) | |
carlosk
2017/05/03 18:13:52
nit: use < instead of <= to avoid overlapping rang
romax
2017/05/03 19:46:21
Done.
| |
25 total_size += page.file_size; | |
26 } | |
27 callback.Run(total_size); | |
28 } | |
29 | |
30 } // namespace | |
31 | |
32 namespace offline_pages { | |
33 | |
34 // static | |
35 void CachedOfflinePageUtils::GetCachedOfflinePageSizeBetween( | |
36 OfflinePageModel* model, | |
37 const SizeCalculatedCallback& callback, | |
38 const base::Time& begin_time, | |
39 const base::Time& end_time) { | |
40 if (!model) | |
41 callback.Run(0); | |
carlosk
2017/05/03 18:13:52
Change this to a DCHECK instead. It should be the
romax
2017/05/03 19:46:21
Done.
| |
42 OfflinePageModelQueryBuilder builder; | |
43 builder.RequireRemovedOnCacheReset( | |
44 OfflinePageModelQuery::Requirement::INCLUDE_MATCHING); | |
45 model->GetPagesMatchingQuery( | |
46 builder.Build(model->GetPolicyController()), | |
47 base::Bind(&DoCalculateSizeBetween, callback, begin_time, end_time)); | |
48 } | |
49 | |
50 // static | |
51 void CachedOfflinePageUtils::GetCachedOfflinePageSize( | |
52 OfflinePageModel* model, | |
53 const SizeCalculatedCallback& callback) { | |
54 GetCachedOfflinePageSizeBetween(model, callback, base::Time(), | |
55 base::Time::Now()); | |
carlosk
2017/05/03 18:13:52
Switch to base::Time::Max() for unbounded upper li
romax
2017/05/03 19:46:21
Done.
| |
56 } | |
57 | |
58 // static | |
59 void CachedOfflinePageUtils::DeleteCachedOfflinePage( | |
60 OfflinePageModel* model, | |
61 const DeletePageCallback& callback) { | |
62 if (!model) | |
63 callback.Run(DeletePageResult::STORE_FAILURE); | |
carlosk
2017/05/03 18:13:52
nit: should probably change this to a DCHECK too?
romax
2017/05/03 19:46:21
Removed the unused methods.
| |
64 OfflinePageModelQueryBuilder builder; | |
65 builder.RequireRemovedOnCacheReset( | |
66 OfflinePageModelQuery::Requirement::INCLUDE_MATCHING); | |
67 model->DeletePagesMatchingQuery(builder.Build(model->GetPolicyController()), | |
68 callback); | |
69 } | |
70 } // namespace offline_pages | |
OLD | NEW |