1 // Copyright 2014 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 BASE_METRICS_USER_METRICS_ACTION_H_ 6 #define BASE_METRICS_USER_METRICS_ACTION_H_ 7 8 namespace base { 9 10 // UserMetricsAction exists purely to standardize on the parameters passed to 11 // UserMetrics. That way, our toolset can scan the source code reliable for 12 // constructors and extract the associated string constants. 13 // WARNING: When using UserMetricsAction you should use a string literal 14 // parameter e.g. 15 // RecordAction(UserMetricsAction("my action name")); 16 // This ensures that our processing scripts can associate this action's hash 17 // with its metric name. Therefore, it will be possible to retrieve the metric 18 // name from the hash later on. 19 // Please see tools/metrics/actions/extract_actions.py for details. 20 struct UserMetricsAction { 21 const char* str_; UserMetricsActionUserMetricsAction22 explicit constexpr UserMetricsAction(const char* str) noexcept : str_(str) {} 23 }; 24 25 } // namespace base 26 27 #endif // BASE_METRICS_USER_METRICS_ACTION_H_ 28