Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(662)

Unified Diff: chrome/common/metrics/metrics_log_base.h

Issue 9232071: Upload UMA data using protocol buffers. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/chrome_tests.gypi ('k') | chrome/common/metrics/metrics_log_base.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/common/metrics/metrics_log_base.h
diff --git a/chrome/common/metrics/metrics_log_base.h b/chrome/common/metrics/metrics_log_base.h
index 62981beda92e8e553e653d9e5b8df4c17b6c966a..3c493dd70f8448f60c73306aa869bf51aa6b8f30 100644
--- a/chrome/common/metrics/metrics_log_base.h
+++ b/chrome/common/metrics/metrics_log_base.h
@@ -14,6 +14,7 @@
#include "base/basictypes.h"
#include "base/metrics/histogram.h"
#include "base/time.h"
+#include "chrome/common/metrics/proto/chrome_user_metrics_extension.pb.h"
#include "content/public/common/page_transition_types.h"
class GURL;
@@ -29,6 +30,24 @@ class MetricsLogBase {
const std::string& version_string);
virtual ~MetricsLogBase();
+ // Computes the MD5 hash of the given string.
+ // Fills |base64_encoded_hash| with the hash, encoded in base64.
+ // Fills |numeric_hash| with the first 8 bytes of the hash.
+ static void CreateHashes(const std::string& string,
+ std::string* base64_encoded_hash,
+ uint64* numeric_hash);
+
+ // Get the GMT buildtime for the current binary, expressed in seconds since
+ // Januray 1, 1970 GMT.
+ // The value is used to identify when a new build is run, so that previous
+ // reliability stats, from other builds, can be abandoned.
+ static int64 GetBuildTime();
+
+ // Convenience function to return the current time at a resolution in seconds.
+ // This wraps base::TimeTicks, and hence provides an abstract time that is
+ // always incrementing for use in measuring time durations.
+ static int64 GetCurrentTime();
+
// Records a user-initiated action.
void RecordUserAction(const char* key);
@@ -64,10 +83,12 @@ class MetricsLogBase {
// record. They can only be called after CloseLog() has been called.
// GetEncodedLog returns false if buffer_size is less than
// GetEncodedLogSize();
- int GetEncodedLogSize();
- bool GetEncodedLog(char* buffer, int buffer_size);
- // Returns an empty string on failure.
- std::string GetEncodedLogString();
+ int GetEncodedLogSizeXml();
+ bool GetEncodedLogXml(char* buffer, int buffer_size);
+
+ // Fills |encoded_log| with the protobuf representation of the record. Can
+ // only be called after CloseLog() has been called.
+ void GetEncodedLogProto(std::string* encoded_log);
// Returns the amount of time in seconds that this log has been in use.
int GetElapsedSeconds();
@@ -78,19 +99,6 @@ class MetricsLogBase {
hardware_class_ = hardware_class;
}
- // Creates an MD5 hash of the given value, and returns hash as a byte
- // buffer encoded as a std::string.
- static std::string CreateHash(const std::string& value);
-
- // Return a base64-encoded MD5 hash of the given string.
- static std::string CreateBase64Hash(const std::string& string);
-
- // Get the GMT buildtime for the current binary, expressed in seconds since
- // Januray 1, 1970 GMT.
- // The value is used to identify when a new build is run, so that previous
- // reliability stats, from other builds, can be abandoned.
- static int64 GetBuildTime();
-
protected:
class XmlWrapper;
@@ -156,6 +164,9 @@ class MetricsLogBase {
int num_events_; // the number of events recorded in this log
+ // Stores the protocol buffer representation for this log.
+ metrics::ChromeUserMetricsExtension uma_proto_;
+
private:
DISALLOW_COPY_AND_ASSIGN(MetricsLogBase);
};
« no previous file with comments | « chrome/chrome_tests.gypi ('k') | chrome/common/metrics/metrics_log_base.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698