diff options
author | rtenneti@chromium.org <rtenneti@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-07-19 19:17:32 +0000 |
---|---|---|
committer | rtenneti@chromium.org <rtenneti@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-07-19 19:17:32 +0000 |
commit | fce44c1937c994e3b05a26a6d93331f804ac7d15 (patch) | |
tree | 00f009d419190f657ad928cec76f7a3f1feeb3c4 /base/metrics/statistics_recorder.h | |
parent | 7e1df2f66eee586d5800c9e56c6b434be5915dab (diff) | |
download | chromium_src-fce44c1937c994e3b05a26a6d93331f804ac7d15.zip chromium_src-fce44c1937c994e3b05a26a6d93331f804ac7d15.tar.gz chromium_src-fce44c1937c994e3b05a26a6d93331f804ac7d15.tar.bz2 |
Initialize StatisticsRecorder in Child Process to hold
all histograms in child processes.
Made StatisticsRecorder a leaky lazy singleton.
R=jar@chromium.org, jam@chromium.org
BUG=114013
TEST=renderer histograms should still work.
Review URL: https://chromiumcodereview.appspot.com/10779040
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@147501 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/metrics/statistics_recorder.h')
-rw-r--r-- | base/metrics/statistics_recorder.h | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/base/metrics/statistics_recorder.h b/base/metrics/statistics_recorder.h index ee03f24..625488f 100644 --- a/base/metrics/statistics_recorder.h +++ b/base/metrics/statistics_recorder.h @@ -16,6 +16,8 @@ #include "base/base_export.h" #include "base/basictypes.h" +#include "base/gtest_prod_util.h" +#include "base/lazy_instance.h" namespace base { @@ -27,9 +29,8 @@ class BASE_EXPORT StatisticsRecorder { public: typedef std::vector<Histogram*> Histograms; - StatisticsRecorder(); - - ~StatisticsRecorder(); + // Initializes the StatisticsRecorder system. + static void Initialize(); // Find out if histograms can now be registered into our list. static bool IsActive(); @@ -76,7 +77,6 @@ class BASE_EXPORT StatisticsRecorder { // pointer to be copied. static void GetSnapshot(const std::string& query, Histograms* snapshot); - private: // We keep all registered histograms in a map, from name to histogram. typedef std::map<std::string, Histogram*> HistogramMap; @@ -86,6 +86,19 @@ class BASE_EXPORT StatisticsRecorder { // |cached_ranges_|. typedef std::map<uint32, std::list<CachedRanges*>*> RangesMap; + friend struct DefaultLazyInstanceTraits<StatisticsRecorder>; + + // Allow tests to access our innards for testing purposes. + FRIEND_TEST_ALL_PREFIXES(HistogramTest, StartupShutdownTest); + FRIEND_TEST_ALL_PREFIXES(HistogramTest, RecordedStartupTest); + FRIEND_TEST_ALL_PREFIXES(HistogramTest, RangeTest); + FRIEND_TEST_ALL_PREFIXES(HistogramTest, CustomRangeTest); + FRIEND_TEST_ALL_PREFIXES(HistogramTest, CachedRangesTest); + + StatisticsRecorder(); + + ~StatisticsRecorder(); + static HistogramMap* histograms_; static RangesMap* ranges_; |