Make CachingPermutedEntropyProvider a subclass of PermutedEntropyProvider.
This is a pre-cursor to moving CachingPermutedEntropyProvider
to a separate file. Done in a separate CL to make it easier
to review.
BUG=266007
TEST=Existing unit tests.
Review URL: https://chromiumcodereview.appspot.com/21248003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@214708 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/chrome/common/metrics/entropy_provider.cc b/chrome/common/metrics/entropy_provider.cc
index 1c19cd2..8eab21e 100644
--- a/chrome/common/metrics/entropy_provider.cc
+++ b/chrome/common/metrics/entropy_provider.cc
@@ -109,22 +109,23 @@
if (randomization_seed == 0)
randomization_seed = HashName(trial_name);
+ return GetPermutedValue(randomization_seed) /
+ static_cast<double>(low_entropy_source_max_);
+}
+
+uint16 PermutedEntropyProvider::GetPermutedValue(
+ uint32 randomization_seed) const {
std::vector<uint16> mapping(low_entropy_source_max_);
internal::PermuteMappingUsingRandomizationSeed(randomization_seed, &mapping);
-
- return mapping[low_entropy_source_] /
- static_cast<double>(low_entropy_source_max_);
+ return mapping[low_entropy_source_];
}
CachingPermutedEntropyProvider::CachingPermutedEntropyProvider(
PrefService* local_state,
uint16 low_entropy_source,
size_t low_entropy_source_max)
- : local_state_(local_state),
- low_entropy_source_(low_entropy_source),
- low_entropy_source_max_(low_entropy_source_max) {
- DCHECK_LT(low_entropy_source, low_entropy_source_max);
- DCHECK_LE(low_entropy_source_max, std::numeric_limits<uint16>::max());
+ : PermutedEntropyProvider(low_entropy_source, low_entropy_source_max),
+ local_state_(local_state) {
ReadFromLocalState();
}
@@ -143,24 +144,16 @@
local_state->ClearPref(prefs::kMetricsPermutedEntropyCache);
}
-double CachingPermutedEntropyProvider::GetEntropyForTrial(
- const std::string& trial_name,
+uint16 CachingPermutedEntropyProvider::GetPermutedValue(
uint32 randomization_seed) const {
DCHECK(thread_checker_.CalledOnValidThread());
- if (randomization_seed == 0)
- randomization_seed = HashName(trial_name);
-
uint16 value = 0;
if (!FindValue(randomization_seed, &value)) {
- std::vector<uint16> mapping(low_entropy_source_max_);
- internal::PermuteMappingUsingRandomizationSeed(randomization_seed,
- &mapping);
- value = mapping[low_entropy_source_];
+ value = PermutedEntropyProvider::GetPermutedValue(randomization_seed);
AddToCache(randomization_seed, value);
}
-
- return value / static_cast<double>(low_entropy_source_max_);
+ return value;
}
void CachingPermutedEntropyProvider::ReadFromLocalState() const {