OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "base/singleton.h" | 5 #include "base/lazy_instance.h" |
6 #include "net/base/bandwidth_metrics.h" | 6 #include "net/base/bandwidth_metrics.h" |
7 | 7 |
| 8 static base::LazyInstance<net::BandwidthMetrics> g_bandwidth_metrics( |
| 9 base::LINKER_INITIALIZED); |
| 10 |
8 namespace net { | 11 namespace net { |
9 | 12 |
10 ScopedBandwidthMetrics::ScopedBandwidthMetrics() | 13 ScopedBandwidthMetrics::ScopedBandwidthMetrics() |
11 : metrics_(Singleton<BandwidthMetrics>::get()), | 14 : started_(false) { |
12 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); |
13 } | 34 } |
14 | 35 |
15 } // namespace net | 36 } // namespace net |
OLD | NEW |