Chromium Code Reviews| Index: ios/chrome/browser/browsing_data/browsing_data_counter_wrapper.cc |
| diff --git a/ios/chrome/browser/browsing_data/browsing_data_counter_wrapper.cc b/ios/chrome/browser/browsing_data/browsing_data_counter_wrapper.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..13ecccf69f7468fa8ba49ac5b95f3b0cdb9e495c |
| --- /dev/null |
| +++ b/ios/chrome/browser/browsing_data/browsing_data_counter_wrapper.cc |
| @@ -0,0 +1,45 @@ |
| +// Copyright 2016 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#include "ios/chrome/browser/browsing_data/browsing_data_counter_wrapper.h" |
| + |
| +#include "components/prefs/pref_service.h" |
| +#include "ios/chrome/browser/browser_state/chrome_browser_state.h" |
| +#include "ios/chrome/browser/browsing_data/ios_browsing_data_counter_factory.h" |
| + |
| +// static |
| +BrowsingDataCounterWrapper* BrowsingDataCounterWrapper::CreateCounterWrapper( |
| + const char* pref_name, |
| + ios::ChromeBrowserState* browser_state, |
| + PrefService* pref_service, |
| + const UpdateUICallback update_ui_callback) { |
| + std::unique_ptr<browsing_data::BrowsingDataCounter> counter = |
| + IOSBrowsingDataCounterFactory::GetForBrowserStateAndPref(browser_state, |
| + pref_name); |
| + if (!counter) |
| + return nullptr; |
| + return new BrowsingDataCounterWrapper(std::move(counter), pref_service, |
| + update_ui_callback); |
| +} |
| + |
| +BrowsingDataCounterWrapper::BrowsingDataCounterWrapper( |
| + std::unique_ptr<browsing_data::BrowsingDataCounter> counter, |
| + PrefService* pref_service, |
| + const UpdateUICallback& update_ui_callback) |
| + : counter_(std::move(counter)), update_ui_callback_(update_ui_callback) { |
| + counter_->Init(pref_service, |
| + base::Bind(&BrowsingDataCounterWrapper::UpdateWithResult, |
| + base::Unretained(this))); |
| +} |
| + |
| +void BrowsingDataCounterWrapper::RestartCounter() { |
| + counter_->Restart(); |
| +} |
| + |
| +void BrowsingDataCounterWrapper::UpdateWithResult( |
| + std::unique_ptr<browsing_data::BrowsingDataCounter::Result> result) { |
| + update_ui_callback_.Run(*result.get()); |
| +} |
| + |
| +BrowsingDataCounterWrapper::~BrowsingDataCounterWrapper() {} |
|
sdefresne
2016/09/19 17:07:52
nit: Can you put method implementation in the same
ioanap
2016/09/20 09:36:48
Done.
|