1 // Copyright 2014 The Chromium Authors 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_METRICS_HASHES_H_ 6 #define BASE_METRICS_METRICS_HASHES_H_ 7 8 #include <stdint.h> 9 10 #include "base/base_export.h" 11 #include "base/strings/string_piece.h" 12 13 namespace base { 14 15 // Computes a uint64_t hash of a given string based on its MD5 hash. Suitable 16 // for metric names. 17 BASE_EXPORT uint64_t HashMetricName(base::StringPiece name); 18 19 // Computes a uint32_t hash of a given string based on its MD5 hash. This 20 // can be more suitable for contexts where memory use is a concern. 21 BASE_EXPORT uint32_t HashMetricNameAs32Bits(base::StringPiece name); 22 23 // Computes a uint32_t hash of a given string based on its SHA1 hash. Suitable 24 // for uniquely identifying field trial names and group names. 25 BASE_EXPORT uint32_t HashFieldTrialName(base::StringPiece name); 26 27 } // namespace base 28 29 #endif // BASE_METRICS_METRICS_HASHES_H_ 30