Home | History | Annotate | Download | only in base
      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