| Index: components/data_reduction_proxy/core/browser/data_reduction_proxy_service.cc
|
| diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_service.cc b/components/data_reduction_proxy/core/browser/data_reduction_proxy_service.cc
|
| index 1b28625c524404a37278654c276bc62f635c7c59..8180e1435684c8e51e0e993dde0564a4c98c47ac 100644
|
| --- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_service.cc
|
| +++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_service.cc
|
| @@ -5,17 +5,21 @@
|
| #include "components/data_reduction_proxy/core/browser/data_reduction_proxy_service.h"
|
|
|
| #include "base/bind.h"
|
| +#include "base/files/file_path.h"
|
| #include "base/location.h"
|
| #include "base/metrics/histogram_macros.h"
|
| #include "base/prefs/pref_service.h"
|
| #include "base/sequenced_task_runner.h"
|
| +#include "base/task_runner_util.h"
|
| #include "components/data_reduction_proxy/core/browser/data_reduction_proxy_compression_stats.h"
|
| #include "components/data_reduction_proxy/core/browser/data_reduction_proxy_io_data.h"
|
| #include "components/data_reduction_proxy/core/browser/data_reduction_proxy_service_observer.h"
|
| #include "components/data_reduction_proxy/core/browser/data_reduction_proxy_settings.h"
|
| +#include "components/data_reduction_proxy/core/browser/data_store.h"
|
| #include "components/data_reduction_proxy/core/common/data_reduction_proxy_event_store.h"
|
| #include "components/data_reduction_proxy/core/common/data_reduction_proxy_params.h"
|
| #include "components/data_reduction_proxy/core/common/data_reduction_proxy_pref_names.h"
|
| +#include "components/data_reduction_proxy/proto/data_store.pb.h"
|
|
|
| namespace data_reduction_proxy {
|
|
|
| @@ -24,19 +28,29 @@ DataReductionProxyService::DataReductionProxyService(
|
| DataReductionProxySettings* settings,
|
| PrefService* prefs,
|
| net::URLRequestContextGetter* request_context_getter,
|
| - scoped_refptr<base::SingleThreadTaskRunner> io_task_runner)
|
| + scoped_ptr<DataStore> store,
|
| + const scoped_refptr<base::SingleThreadTaskRunner>& io_task_runner,
|
| + const scoped_refptr<base::SequencedTaskRunner>& db_task_runner)
|
| : url_request_context_getter_(request_context_getter),
|
| settings_(settings),
|
| prefs_(prefs),
|
| + db_data_owner_(new DBDataOwner(store.Pass())),
|
| io_task_runner_(io_task_runner),
|
| + db_task_runner_(db_task_runner),
|
| initialized_(false),
|
| weak_factory_(this) {
|
| DCHECK(settings);
|
| compression_stats_ = compression_stats.Pass();
|
| + compression_stats_->set_data_reduction_proxy_service(this);
|
| event_store_.reset(new DataReductionProxyEventStore());
|
| + db_task_runner_->PostTask(FROM_HERE,
|
| + base::Bind(&DBDataOwner::InitializeOnDBThread,
|
| + db_data_owner_->GetWeakPtr()));
|
| }
|
|
|
| DataReductionProxyService::~DataReductionProxyService() {
|
| + DCHECK(CalledOnValidThread());
|
| + db_task_runner_->DeleteSoon(FROM_HERE, db_data_owner_.release());
|
| }
|
|
|
| void DataReductionProxyService::SetIOData(
|
| @@ -71,6 +85,7 @@ void DataReductionProxyService::Shutdown() {
|
| void DataReductionProxyService::EnableCompressionStatisticsLogging(
|
| PrefService* prefs,
|
| scoped_refptr<base::SequencedTaskRunner> ui_task_runner,
|
| + scoped_refptr<base::SequencedTaskRunner> db_task_runner,
|
| const base::TimeDelta& commit_delay) {
|
| DCHECK(CalledOnValidThread());
|
| DCHECK(!compression_stats_);
|
| @@ -241,6 +256,25 @@ void DataReductionProxyService::RetrieveConfig() {
|
| base::Bind(&DataReductionProxyIOData::RetrieveConfig, io_data_));
|
| }
|
|
|
| +void DataReductionProxyService::LoadCurrentDataUsageBucket(
|
| + const OnLoadDataUsageBucketCallback& onLoadDataUsageBucket) {
|
| + scoped_ptr<DataUsageBucket> bucket(new DataUsageBucket());
|
| + DataUsageBucket* bucket_ptr = bucket.get();
|
| + db_task_runner_->PostTaskAndReply(
|
| + FROM_HERE,
|
| + base::Bind(&DBDataOwner::LoadCurrentDataUsageBucket,
|
| + db_data_owner_->GetWeakPtr(), base::Unretained(bucket_ptr)),
|
| + base::Bind(onLoadDataUsageBucket, base::Passed(&bucket)));
|
| +}
|
| +
|
| +void DataReductionProxyService::StoreCurrentDataUsageBucket(
|
| + scoped_ptr<DataUsageBucket> current) {
|
| + db_task_runner_->PostTask(
|
| + FROM_HERE,
|
| + base::Bind(&DBDataOwner::StoreCurrentDataUsageBucket,
|
| + db_data_owner_->GetWeakPtr(), base::Passed(¤t)));
|
| +}
|
| +
|
| void DataReductionProxyService::AddObserver(
|
| DataReductionProxyServiceObserver* observer) {
|
| DCHECK(CalledOnValidThread());
|
|
|