summaryrefslogtreecommitdiff
path: root/chromium/components/data_reduction_proxy/core/common/data_savings_recorder.h
blob: a96cf5984bec230034cc60068667834cd3569bc6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// 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.

#ifndef COMPONENTS_DATA_REDUCTION_PROXY_CORE_COMMON_DATA_SAVINGS_RECORDER_H_
#define COMPONENTS_DATA_REDUCTION_PROXY_CORE_COMMON_DATA_SAVINGS_RECORDER_H_

#include <stdint.h>

#include <string>

namespace data_reduction_proxy {

// An interface that will record data savings based on the amount of data used,
// the original size of the data, and the request type.
class DataSavingsRecorder {
 public:
  // Records detailed data usage. Assumes |data_used| is recorded already by
  // previous handling of URLRequests. Also records daily data savings
  // statistics to prefs and reports data savings UMA. |data_used| and
  // |original_size| are measured in bytes.
  // Returns true if data savings was recorded.
  virtual bool UpdateDataSavings(const std::string& data_usage_host,
                                 int64_t data_used,
                                 int64_t original_size) = 0;
};

}  // namespace data_reduction_proxy

#endif  // COMPONENTS_DATA_REDUCTION_PROXY_CORE_COMMON_DATA_SAVINGS_RECORDER_H_