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 COMPONENTS_RAPPOR_RAPPOR_PARAMETERS_H_ 6 #define COMPONENTS_RAPPOR_RAPPOR_PARAMETERS_H_ 7 8 #include <string> 9 10 namespace rappor { 11 12 enum Probability { 13 PROBABILITY_75, // 75% 14 PROBABILITY_50, // 50% 15 PROBABILITY_25, // 25% 16 }; 17 18 // An object describing a rappor metric and the parameters used to generate it. 19 // 20 // For a full description of the rappor metrics, see 21 // http://www.chromium.org/developers/design-documents/rappor 22 struct RapporParameters { 23 // Get a string representing the parameters, for DCHECK_EQ. 24 std::string ToString() const; 25 26 // The maximum number of cohorts we divide clients into. 27 static const int kMaxCohorts; 28 29 // The number of cohorts to divide the reports for this metric into. 30 int num_cohorts; 31 32 // The number of bytes stored in the Bloom filter. 33 int bloom_filter_size_bytes; 34 // The number of hash functions used in the Bloom filter. 35 int bloom_filter_hash_function_count; 36 37 // The probability that a bit will be redacted with fake data. 38 Probability fake_prob; 39 // The probability that a fake bit will be a one. 40 Probability fake_one_prob; 41 42 // The probability that a one bit in the redacted data reports as one. 43 Probability one_coin_prob; 44 // The probability that a zero bit in the redacted data reports as one. 45 Probability zero_coin_prob; 46 }; 47 48 } // namespace rappor 49 50 #endif // COMPONENTS_RAPPOR_RAPPOR_PARAMETERS_H_ 51