diff options
author | Zeno Albisser <zeno.albisser@digia.com> | 2013-08-15 21:46:11 +0200 |
---|---|---|
committer | Zeno Albisser <zeno.albisser@digia.com> | 2013-08-15 21:46:11 +0200 |
commit | 679147eead574d186ebf3069647b4c23e8ccace6 (patch) | |
tree | fc247a0ac8ff119f7c8550879ebb6d3dd8d1ff69 /chromium/base/metrics/histogram_flattener.h | |
download | qtwebengine-chromium-679147eead574d186ebf3069647b4c23e8ccace6.tar.gz |
Initial import.
Diffstat (limited to 'chromium/base/metrics/histogram_flattener.h')
-rw-r--r-- | chromium/base/metrics/histogram_flattener.h | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/chromium/base/metrics/histogram_flattener.h b/chromium/base/metrics/histogram_flattener.h new file mode 100644 index 00000000000..ca05a4f421f --- /dev/null +++ b/chromium/base/metrics/histogram_flattener.h @@ -0,0 +1,51 @@ +// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef BASE_METRICS_HISTOGRAM_FLATTENER_H_ +#define BASE_METRICS_HISTOGRAM_FLATTENER_H_ + +#include <map> +#include <string> + +#include "base/basictypes.h" +#include "base/metrics/histogram.h" + +namespace base { + +class HistogramSamples; + +// HistogramFlattener is an interface used by HistogramSnapshotManager, which +// handles the logistics of gathering up available histograms for recording. +// The implementors handle the exact lower level recording mechanism, or +// error report mechanism. +class BASE_EXPORT HistogramFlattener { + public: + virtual void RecordDelta(const HistogramBase& histogram, + const HistogramSamples& snapshot) = 0; + + // Will be called each time a type of Inconsistency is seen on a histogram, + // during inspections done internally in HistogramSnapshotManager class. + virtual void InconsistencyDetected(HistogramBase::Inconsistency problem) = 0; + + // Will be called when a type of Inconsistency is seen for the first time on + // a histogram. + virtual void UniqueInconsistencyDetected( + HistogramBase::Inconsistency problem) = 0; + + // Will be called when the total logged sample count of a histogram + // differs from the sum of logged sample count in all the buckets. The + // argument |amount| is the non-zero discrepancy. + virtual void InconsistencyDetectedInLoggedCount(int amount) = 0; + + protected: + HistogramFlattener() {} + virtual ~HistogramFlattener() {} + + private: + DISALLOW_COPY_AND_ASSIGN(HistogramFlattener); +}; + +} // namespace base + +#endif // BASE_METRICS_HISTOGRAM_FLATTENER_H_ |