| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/metrics/statistics_recorder.h" | 5 #include "base/metrics/statistics_recorder.h" |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 | 8 |
| 9 #include "base/at_exit.h" | 9 #include "base/at_exit.h" |
| 10 #include "base/debug/leak_annotations.h" | 10 #include "base/debug/leak_annotations.h" |
| 11 #include "base/json/string_escape.h" | 11 #include "base/json/string_escape.h" |
| 12 #include "base/logging.h" | 12 #include "base/logging.h" |
| 13 #include "base/memory/ptr_util.h" |
| 13 #include "base/metrics/histogram.h" | 14 #include "base/metrics/histogram.h" |
| 14 #include "base/metrics/metrics_hashes.h" | 15 #include "base/metrics/metrics_hashes.h" |
| 15 #include "base/metrics/persistent_histogram_allocator.h" | 16 #include "base/metrics/persistent_histogram_allocator.h" |
| 16 #include "base/stl_util.h" | 17 #include "base/stl_util.h" |
| 17 #include "base/strings/stringprintf.h" | 18 #include "base/strings/stringprintf.h" |
| 18 #include "base/synchronization/lock.h" | 19 #include "base/synchronization/lock.h" |
| 19 #include "base/values.h" | 20 #include "base/values.h" |
| 20 | 21 |
| 21 namespace { | 22 namespace { |
| 22 | 23 |
| (...skipping 391 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 414 return histograms_->size(); | 415 return histograms_->size(); |
| 415 } | 416 } |
| 416 | 417 |
| 417 // static | 418 // static |
| 418 void StatisticsRecorder::ForgetHistogramForTesting(base::StringPiece name) { | 419 void StatisticsRecorder::ForgetHistogramForTesting(base::StringPiece name) { |
| 419 if (histograms_) | 420 if (histograms_) |
| 420 histograms_->erase(name); | 421 histograms_->erase(name); |
| 421 } | 422 } |
| 422 | 423 |
| 423 // static | 424 // static |
| 425 std::unique_ptr<StatisticsRecorder> |
| 426 StatisticsRecorder::CreateTemporaryForTesting() { |
| 427 return WrapUnique(new StatisticsRecorder()); |
| 428 } |
| 429 |
| 430 // static |
| 424 void StatisticsRecorder::UninitializeForTesting() { | 431 void StatisticsRecorder::UninitializeForTesting() { |
| 425 // Stop now if it's never been initialized. | 432 // Stop now if it's never been initialized. |
| 426 if (lock_ == NULL || histograms_ == NULL) | 433 if (lock_ == NULL || histograms_ == NULL) |
| 427 return; | 434 return; |
| 428 | 435 |
| 429 // Get the global instance and destruct it. It's held in static memory so | 436 // Get the global instance and destruct it. It's held in static memory so |
| 430 // can't "delete" it; call the destructor explicitly. | 437 // can't "delete" it; call the destructor explicitly. |
| 431 DCHECK(g_statistics_recorder_.private_instance_); | 438 DCHECK(g_statistics_recorder_.private_instance_); |
| 432 g_statistics_recorder_.Get().~StatisticsRecorder(); | 439 g_statistics_recorder_.Get().~StatisticsRecorder(); |
| 433 | 440 |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 513 // static | 520 // static |
| 514 StatisticsRecorder::HistogramMap* StatisticsRecorder::histograms_ = NULL; | 521 StatisticsRecorder::HistogramMap* StatisticsRecorder::histograms_ = NULL; |
| 515 // static | 522 // static |
| 516 StatisticsRecorder::CallbackMap* StatisticsRecorder::callbacks_ = NULL; | 523 StatisticsRecorder::CallbackMap* StatisticsRecorder::callbacks_ = NULL; |
| 517 // static | 524 // static |
| 518 StatisticsRecorder::RangesMap* StatisticsRecorder::ranges_ = NULL; | 525 StatisticsRecorder::RangesMap* StatisticsRecorder::ranges_ = NULL; |
| 519 // static | 526 // static |
| 520 base::Lock* StatisticsRecorder::lock_ = NULL; | 527 base::Lock* StatisticsRecorder::lock_ = NULL; |
| 521 | 528 |
| 522 } // namespace base | 529 } // namespace base |
| OLD | NEW |