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