Index: chrome/browser/performance_monitor/key_builder.cc |
diff --git a/chrome/browser/performance_monitor/key_builder.cc b/chrome/browser/performance_monitor/key_builder.cc |
deleted file mode 100644 |
index 64dc94e9adac5bc331ac44fb306f58d387228eac..0000000000000000000000000000000000000000 |
--- a/chrome/browser/performance_monitor/key_builder.cc |
+++ /dev/null |
@@ -1,247 +0,0 @@ |
-// 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. |
- |
-#include "chrome/browser/performance_monitor/key_builder.h" |
- |
-#include "base/format_macros.h" |
-#include "base/logging.h" |
-#include "base/strings/string_number_conversions.h" |
-#include "base/strings/string_split.h" |
-#include "base/strings/stringprintf.h" |
- |
-namespace performance_monitor { |
- |
-namespace { |
- |
-const char kDelimiter = '!'; |
- |
-// These values are used as the portion of the generated key which represents |
-// the event/metric type when inserting values in the database. We use an ASCII |
-// character as a mapping, rather than the enum of the metric or event itself, |
-// so that we can edit the MetricType and EventType enums as desired, without |
-// worrying about the integrity of the database. |
-// |
-// Once a character mapping has been set for a metric or event, do not change |
-// its value! New character mappings should be greater than 34 (ASCII characters |
-// below 32 have meaning, 33 is '!' - the database delimiter, and 34 is reserved |
-// for the 'Undefined' character mapping). Do not repeat values within the |
-// metric/event sets (repeated values between sets are okay). |
-// |
-// Deprecated keys: A key which is deprecated should be clearly marked as such, |
-// and its use discontinued. Do not remove the key from the listing! (Otherwise, |
-// a new metric may take its key and think the old data belongs to it.) |
- |
-enum MetricKeyChar { |
-METRIC_UNDEFINED_KEY_CHAR = 34, |
-METRIC_CPU_USAGE_KEY_CHAR = 35, |
-METRIC_PRIVATE_MEMORY_USAGE_KEY_CHAR = 36, |
-METRIC_SHARED_MEMORY_USAGE_KEY_CHAR = 37, |
-METRIC_STARTUP_TIME_KEY_CHAR = 38, |
-METRIC_TEST_STARTUP_TIME_KEY_CHAR = 39, |
-METRIC_SESSION_RESTORE_TIME_KEY_CHAR = 40, |
-METRIC_PAGE_LOAD_TIME_KEY_CHAR = 41, |
-METRIC_NETWORK_BYTES_READ_KEY_CHAR = 42, |
-METRIC_NUMBER_OF_METRICS_KEY_CHAR = 255, |
-}; |
- |
-enum EventKeyChar { |
-EVENT_UNDEFINED_KEY_CHAR = 34, |
-EVENT_EXTENSION_INSTALL_KEY_CHAR = 35, |
-EVENT_EXTENSION_UNINSTALL_KEY_CHAR = 36, |
-EVENT_EXTENSION_UPDATE_KEY_CHAR = 37, |
-EVENT_EXTENSION_ENABLE_KEY_CHAR = 38, |
-EVENT_EXTENSION_DISABLE_KEY_CHAR = 39, |
-EVENT_CHROME_UPDATE_KEY_CHAR = 40, |
-EVENT_RENDERER_HANG_KEY_CHAR = 41, |
-EVENT_RENDERER_CRASH_KEY_CHAR = 42, |
-EVENT_RENDERER_KILLED_KEY_CHAR = 43, |
-EVENT_UNCLEAN_EXIT_KEY_CHAR = 44, |
-EVENT_NUMBER_OF_EVENTS_KEY_CHAR = 255, |
-}; |
- |
-// The position of different elements in the key for the event db. |
-enum EventKeyPosition { |
- EVENT_TIME, // The time the event was generated. |
- EVENT_TYPE // The type of event. |
-}; |
- |
-// The position of different elements in the key for the recent db. |
-enum RecentKeyPosition { |
- RECENT_TIME, // The time the stat was gathered. |
- RECENT_TYPE, // The unique identifier for the type of metric gathered. |
- RECENT_ACTIVITY // The unique identifier for the activity. |
-}; |
- |
-// The position of different elements in the key for the max value db. |
-enum MaxValueKeyPosition { |
- MAX_VALUE_TYPE, // The unique identifier for the type of metric gathered. |
- MAX_VALUE_ACTIVITY // The unique identifier for the activity. |
-}; |
- |
-// The position of different elements in the key for a metric db. |
-enum MetricKeyPosition { |
- METRIC_TYPE, // The unique identifier for the metric. |
- METRIC_TIME, // The time the stat was gathered. |
- METRIC_ACTIVITY // The unique identifier for the activity. |
-}; |
- |
-} // namespace |
- |
-RecentKey::RecentKey(const std::string& recent_time, |
- MetricType recent_type, |
- const std::string& recent_activity) |
- : time(recent_time), type(recent_type), activity(recent_activity) { |
-} |
- |
-RecentKey::~RecentKey() { |
-} |
- |
-MetricKey::MetricKey(const std::string& metric_time, |
- MetricType metric_type, |
- const std::string& metric_activity) |
- : time(metric_time), type(metric_type), activity(metric_activity) { |
-} |
- |
-MetricKey::~MetricKey() { |
-} |
- |
-KeyBuilder::KeyBuilder() { |
- PopulateKeyMaps(); |
-} |
- |
-KeyBuilder::~KeyBuilder() { |
-} |
- |
-void KeyBuilder::PopulateKeyMaps() { |
- // Hard-code the generation of the map between event types and event key |
- // character mappings. |
- event_type_to_event_key_char_[EVENT_UNDEFINED] = EVENT_UNDEFINED_KEY_CHAR; |
- event_type_to_event_key_char_[EVENT_EXTENSION_INSTALL] = |
- EVENT_EXTENSION_INSTALL_KEY_CHAR; |
- event_type_to_event_key_char_[EVENT_EXTENSION_UNINSTALL] = |
- EVENT_EXTENSION_UNINSTALL_KEY_CHAR; |
- event_type_to_event_key_char_[EVENT_EXTENSION_UPDATE] = |
- EVENT_EXTENSION_UPDATE_KEY_CHAR; |
- event_type_to_event_key_char_[EVENT_EXTENSION_ENABLE] = |
- EVENT_EXTENSION_ENABLE_KEY_CHAR; |
- event_type_to_event_key_char_[EVENT_EXTENSION_DISABLE] = |
- EVENT_EXTENSION_DISABLE_KEY_CHAR; |
- event_type_to_event_key_char_[EVENT_RENDERER_HANG] = |
- EVENT_RENDERER_HANG_KEY_CHAR; |
- event_type_to_event_key_char_[EVENT_RENDERER_CRASH] = |
- EVENT_RENDERER_CRASH_KEY_CHAR; |
- event_type_to_event_key_char_[EVENT_RENDERER_KILLED] = |
- EVENT_RENDERER_KILLED_KEY_CHAR; |
- event_type_to_event_key_char_[EVENT_UNCLEAN_EXIT] = |
- EVENT_UNCLEAN_EXIT_KEY_CHAR; |
- event_type_to_event_key_char_[EVENT_NUMBER_OF_EVENTS] = |
- EVENT_NUMBER_OF_EVENTS_KEY_CHAR; |
- DCHECK(event_type_to_event_key_char_.size() == EVENT_NUMBER_OF_EVENTS); |
- |
- // Generate the reverse map for easy look-up between event character mappings |
- // and event types. |
- for (int i = static_cast<int>(EVENT_UNDEFINED); |
- i <= static_cast<int>(EVENT_NUMBER_OF_EVENTS); ++i) { |
- event_key_char_to_event_type_[event_type_to_event_key_char_[ |
- static_cast<EventType>(i)]] = static_cast<EventType>(i); |
- } |
- |
- // Repeat the process for metrics. |
- metric_type_to_metric_key_char_[METRIC_UNDEFINED] = METRIC_UNDEFINED_KEY_CHAR; |
- metric_type_to_metric_key_char_[METRIC_CPU_USAGE] = METRIC_CPU_USAGE_KEY_CHAR; |
- metric_type_to_metric_key_char_[METRIC_PRIVATE_MEMORY_USAGE] = |
- METRIC_PRIVATE_MEMORY_USAGE_KEY_CHAR; |
- metric_type_to_metric_key_char_[METRIC_SHARED_MEMORY_USAGE] = |
- METRIC_SHARED_MEMORY_USAGE_KEY_CHAR; |
- metric_type_to_metric_key_char_[METRIC_STARTUP_TIME] = |
- METRIC_STARTUP_TIME_KEY_CHAR; |
- metric_type_to_metric_key_char_[METRIC_TEST_STARTUP_TIME] = |
- METRIC_TEST_STARTUP_TIME_KEY_CHAR; |
- metric_type_to_metric_key_char_[METRIC_PAGE_LOAD_TIME] = |
- METRIC_PAGE_LOAD_TIME_KEY_CHAR; |
- metric_type_to_metric_key_char_[METRIC_NETWORK_BYTES_READ] = |
- METRIC_NETWORK_BYTES_READ_KEY_CHAR; |
- metric_type_to_metric_key_char_[METRIC_NUMBER_OF_METRICS] = |
- METRIC_NUMBER_OF_METRICS_KEY_CHAR; |
- DCHECK(metric_type_to_metric_key_char_.size() == METRIC_NUMBER_OF_METRICS); |
- |
- for (int i = static_cast<int>(METRIC_UNDEFINED); |
- i <= static_cast<int>(METRIC_NUMBER_OF_METRICS); ++i) { |
- metric_key_char_to_metric_type_[metric_type_to_metric_key_char_[ |
- static_cast<MetricType>(i)]] = static_cast<MetricType>(i); |
- } |
-} |
- |
-std::string KeyBuilder::CreateActiveIntervalKey(const base::Time& time) { |
- return base::StringPrintf("%016" PRId64, time.ToInternalValue()); |
-} |
- |
-std::string KeyBuilder::CreateMetricKey(const base::Time& time, |
- const MetricType type, |
- const std::string& activity) { |
- return base::StringPrintf("%c%c%016" PRId64 "%c%s", |
- metric_type_to_metric_key_char_[type], |
- kDelimiter, time.ToInternalValue(), |
- kDelimiter, activity.c_str()); |
-} |
- |
-std::string KeyBuilder::CreateEventKey(const base::Time& time, |
- const EventType type) { |
- return base::StringPrintf("%016" PRId64 "%c%c", |
- time.ToInternalValue(), kDelimiter, |
- event_type_to_event_key_char_[type]); |
-} |
- |
-std::string KeyBuilder::CreateRecentKey(const base::Time& time, |
- const MetricType type, |
- const std::string& activity) { |
- return base::StringPrintf("%016" PRId64 "%c%c%c%s", |
- time.ToInternalValue(), |
- kDelimiter, metric_type_to_metric_key_char_[type], |
- kDelimiter, activity.c_str()); |
-} |
- |
-std::string KeyBuilder::CreateRecentMapKey(const MetricType type, |
- const std::string& activity) { |
- return base::StringPrintf("%s%c%c", |
- activity.c_str(), |
- kDelimiter, metric_type_to_metric_key_char_[type]); |
-} |
- |
-std::string KeyBuilder::CreateMaxValueKey(const MetricType type, |
- const std::string& activity) { |
- return base::StringPrintf("%c%c%s", |
- metric_type_to_metric_key_char_[type], |
- kDelimiter, activity.c_str()); |
-} |
- |
-EventType KeyBuilder::EventKeyToEventType(const std::string& event_key) { |
- std::vector<std::string> split; |
- base::SplitString(event_key, kDelimiter, &split); |
- DCHECK(split[EVENT_TYPE].size() == 1); |
- return event_key_char_to_event_type_[ |
- static_cast<int>(split[EVENT_TYPE].at(0))]; |
-} |
- |
-RecentKey KeyBuilder::SplitRecentKey(const std::string& key) { |
- std::vector<std::string> split; |
- base::SplitString(key, kDelimiter, &split); |
- DCHECK(split[RECENT_TYPE].size() == 1); |
- return RecentKey(split[RECENT_TIME], |
- metric_key_char_to_metric_type_[ |
- static_cast<int>(split[RECENT_TYPE].at(0))], |
- split[RECENT_ACTIVITY]); |
-} |
- |
-MetricKey KeyBuilder::SplitMetricKey(const std::string& key) { |
- std::vector<std::string> split; |
- base::SplitString(key, kDelimiter, &split); |
- DCHECK(split[METRIC_TYPE].size() == 1); |
- return MetricKey(split[METRIC_TIME], |
- metric_key_char_to_metric_type_[ |
- static_cast<int>(split[METRIC_TYPE].at(0))], |
- split[METRIC_ACTIVITY]); |
-} |
- |
-} // namespace performance_monitor |