1// Copyright (c) 2011 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 "base/lazy_instance.h"
6#include "net/base/bandwidth_metrics.h"
7
8static base::LazyInstance<net::BandwidthMetrics> g_bandwidth_metrics =
9    LAZY_INSTANCE_INITIALIZER;
10
11namespace net {
12
13ScopedBandwidthMetrics::ScopedBandwidthMetrics()
14    : started_(false) {
15}
16
17ScopedBandwidthMetrics::~ScopedBandwidthMetrics() {
18  if (started_)
19    g_bandwidth_metrics.Get().StopStream();
20}
21
22void ScopedBandwidthMetrics::StartStream() {
23  started_ = true;
24  g_bandwidth_metrics.Get().StartStream();
25}
26
27void ScopedBandwidthMetrics::StopStream() {
28  started_ = false;
29  g_bandwidth_metrics.Get().StopStream();
30}
31
32void ScopedBandwidthMetrics::RecordBytes(int bytes) {
33  g_bandwidth_metrics.Get().RecordBytes(bytes);
34}
35
36}  // namespace net
37