Chromium Code Reviews| Index: components/data_usage/core/data_use_amortizer.h |
| diff --git a/components/data_usage/core/data_use_amortizer.h b/components/data_usage/core/data_use_amortizer.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..ceed2bbdc902dd5bc64df5f89958525f4389ddb6 |
| --- /dev/null |
| +++ b/components/data_usage/core/data_use_amortizer.h |
| @@ -0,0 +1,39 @@ |
| +// Copyright 2015 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_USAGE_CORE_DATA_USE_AMORTIZER_H_ |
| +#define COMPONENTS_DATA_USAGE_CORE_DATA_USE_AMORTIZER_H_ |
| + |
| +#include <stdint.h> |
| + |
| +#include "base/callback.h" |
| +#include "base/memory/scoped_ptr.h" |
| + |
| +namespace data_usage { |
| + |
| +struct DataUse; |
| + |
| +// Class that takes in DataUse and amortizes any extra data usage overhead |
| +// across DataUse objects. |
| +class DataUseAmortizer { |
| + public: |
| + typedef base::Callback<void(scoped_ptr<DataUse>)> DataUseConsumerCallback; |
| + |
| + virtual ~DataUseAmortizer() {} |
| + |
| + // Amortizes overhead into |data_use|, then passes the it to |callback| once |
| + // amortization is complete. Amortizers that perform buffering may combine |
| + // together |data_use| objects with the same |callback| if the |data_use| |
| + // objects are identical in all ways but their byte counts. |
| + virtual void AmortizeDataUse(scoped_ptr<DataUse> data_use, |
| + const DataUseConsumerCallback& callback) = 0; |
| + |
| + // Notifies the DataUseAmortizer that some extra bytes have happened that |
|
bengr
2015/11/10 18:12:51
Be clearer than "have happened."
sclittle
2015/11/11 02:10:08
Done.
|
| + // aren't associated with any DataUse objects (e.g. off-the-record traffic). |
| + virtual void OnExtraBytes(int64_t extra_tx_bytes, int64_t extra_rx_bytes) = 0; |
| +}; |
| + |
| +} // namespace data_usage |
| + |
| +#endif // COMPONENTS_DATA_USAGE_CORE_DATA_USE_AMORTIZER_H_ |