OLD | NEW |
(Empty) | |
| 1 // Copyright (c) 2009 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 #ifndef CHROME_FRAME_HISTOGRAM_SNAPSHOTS_H_ |
| 6 #define CHROME_FRAME_HISTOGRAM_SNAPSHOTS_H_ |
| 7 |
| 8 #include <map> |
| 9 #include <string> |
| 10 #include <vector> |
| 11 |
| 12 #include "base/basictypes.h" |
| 13 #include "base/histogram.h" |
| 14 #include "base/process.h" |
| 15 #include "base/scoped_ptr.h" |
| 16 #include "base/task.h" |
| 17 |
| 18 // This class gathers histogram data in the host browser process and |
| 19 // serializes the data into a vector of strings to be uploaded to the |
| 20 // Chrome browser process. It records the histogram data which has been |
| 21 // logged and only uploads the delta with the next log. |
| 22 // TODO(iyengar) |
| 23 // This class does not contain any ChromeFrame specific stuff. It should |
| 24 // be moved to base. |
| 25 class ChromeFrameHistogramSnapshots { |
| 26 public: |
| 27 // Maintain a map of histogram names to the sample stats we've sent. |
| 28 typedef std::map<std::string, Histogram::SampleSet> LoggedSampleMap; |
| 29 typedef std::vector<std::string> HistogramPickledList; |
| 30 |
| 31 ChromeFrameHistogramSnapshots(); |
| 32 ~ChromeFrameHistogramSnapshots() {} |
| 33 |
| 34 // Extract snapshot data and return it to be sent off to the Chrome browser |
| 35 // process. |
| 36 // Return only a delta to what we have already sent. |
| 37 HistogramPickledList GatherAllHistograms(); |
| 38 |
| 39 private: |
| 40 void GatherHistogram(const Histogram& histogram, |
| 41 HistogramPickledList* histograms); |
| 42 |
| 43 void GatherHistogramDelta(const Histogram& histogram, |
| 44 const Histogram::SampleSet& snapshot, |
| 45 HistogramPickledList* histograms); |
| 46 |
| 47 // For histograms, record what we've already logged (as a sample for each |
| 48 // histogram) so that we can send only the delta with the next log. |
| 49 LoggedSampleMap logged_samples_; |
| 50 |
| 51 DISALLOW_COPY_AND_ASSIGN(ChromeFrameHistogramSnapshots); |
| 52 }; |
| 53 |
| 54 #endif // CHROME_RENDERER_HISTOGRAM_SNAPSHOTS_H_ |
OLD | NEW |