Index: chrome/browser/android/data_usage/external_data_use_observer.h |
diff --git a/chrome/browser/android/data_usage/external_data_use_observer.h b/chrome/browser/android/data_usage/external_data_use_observer.h |
index d9897c95e17de6f35c775789db1cb2151f6cc6f9..5caa6208526299d8cb02637e4a92c9e600e1ef46 100644 |
--- a/chrome/browser/android/data_usage/external_data_use_observer.h |
+++ b/chrome/browser/android/data_usage/external_data_use_observer.h |
@@ -73,7 +73,7 @@ class ExternalDataUseObserver : public data_usage::DataUseAggregator::Observer { |
// non-zero length. The three vectors should have equal length. The vectors |
// may be empty which implies that no matching rules are active. Must be |
// called on UI thread. |
- void FetchMatchingRulesCallback( |
+ void FetchMatchingRulesDone( |
JNIEnv* env, |
jobject obj, |
const base::android::JavaParamRef<jobjectArray>& app_package_name, |
@@ -113,16 +113,9 @@ class ExternalDataUseObserver : public data_usage::DataUseAggregator::Observer { |
struct DataUseReportKey { |
DataUseReportKey(const std::string& label, |
net::NetworkChangeNotifier::ConnectionType connection_type, |
- const std::string& mcc_mnc) |
- : label(label), connection_type(connection_type), mcc_mnc(mcc_mnc) {} |
+ const std::string& mcc_mnc); |
- bool operator==(const DataUseReportKey& other) const { |
- return (label == other.label && |
- connection_type == other.connection_type && |
- mcc_mnc == other.mcc_mnc); |
- } |
- |
- virtual ~DataUseReportKey() {} |
+ bool operator==(const DataUseReportKey& other) const; |
// Label provided by the matching rules. |
const std::string label; |
@@ -148,13 +141,7 @@ class ExternalDataUseObserver : public data_usage::DataUseAggregator::Observer { |
DataUseReport(const base::Time& start_time, |
const base::Time& end_time, |
int64_t bytes_downloaded, |
- int64_t bytes_uploaded) |
- : start_time(start_time), |
- end_time(end_time), |
- bytes_downloaded(bytes_downloaded), |
- bytes_uploaded(bytes_uploaded) {} |
- |
- virtual ~DataUseReport() {} |
+ int64_t bytes_uploaded); |
// Start time of |this| data report (in UTC since the standard Java epoch of |
// 1970-01-01 00:00:00). |
@@ -174,22 +161,8 @@ class ExternalDataUseObserver : public data_usage::DataUseAggregator::Observer { |
class DataUseReportKeyHash { |
public: |
// A simple heuristical hash function that satisifes the property that two |
- // equal data structures have the same hash value. The hash is computed by |
- // hashing individual variables and combining them using prime numbers. |
- // Prime numbers are used for multiplication because the number of buckets |
- // used by map is always an even number. Using a prime number ensures that |
- // for two different DataUseReportKey objects (say |j| and |k|), if the |
- // hash value of |k.label| is equal to hash value of |j.mcc_mnc|, then |j| |
- // and |k| map to different buckets. Large prime numbers are used so that |
- // hash value is spread over a larger range. |
- size_t operator()(const DataUseReportKey& k) const { |
- std::hash<std::string> hash_function; |
- size_t hash = 1; |
- hash = hash * 23 + hash_function(k.label); |
- hash = hash * 43 + k.connection_type; |
- hash = hash * 83 + hash_function(k.mcc_mnc); |
- return hash; |
- } |
+ // equal data structures have the same hash value. |
+ size_t operator()(const DataUseReportKey& k) const; |
}; |
typedef base::hash_map<DataUseReportKey, DataUseReport, DataUseReportKeyHash> |
@@ -231,10 +204,10 @@ class ExternalDataUseObserver : public data_usage::DataUseAggregator::Observer { |
data_use_sequence) override; |
// Fetches matching rules from Java. Must be called on the UI thread. Returns |
- // result asynchronously on UI thread via FetchMatchingRulesCallback. |
+ // result asynchronously on UI thread via FetchMatchingRulesDone. |
void FetchMatchingRulesOnUIThread() const; |
- // Called by FetchMatchingRulesCallback on IO thread when new matching rules |
+ // Called by FetchMatchingRulesDone on IO thread when new matching rules |
// Adds |data_use| to buffered reports. |data_use| is the data use report |
// received from DataUseAggregator. |data_use| should not be null. |label| is |
// a non-empty label that applies to |data_use|. |start_time| and |end_time| |
@@ -252,9 +225,9 @@ class ExternalDataUseObserver : public data_usage::DataUseAggregator::Observer { |
// submitted is the oldest one buffered. |
void SubmitBufferedDataUseReport(); |
- // Called by |FetchMatchingRulesCallback| on IO thread when new matching rules |
- // have been fetched. |
- void FetchMatchingRulesCallbackOnIOThread( |
+ // Called by FetchMatchingRulesDone on IO thread when new matching rules have |
+ // been fetched. |
+ void FetchMatchingRulesDoneOnIOThread( |
const std::vector<std::string>& app_package_name, |
const std::vector<std::string>& domain_path_regex, |
const std::vector<std::string>& label); |
@@ -268,7 +241,7 @@ class ExternalDataUseObserver : public data_usage::DataUseAggregator::Observer { |
// been submitted. |
void OnReportDataUseDoneOnIOThread(bool success); |
- // Called by FetchMatchingRulesCallbackIO to register multiple |
+ // Called by FetchMatchingRulesDoneOnIOThread to register multiple |
// case-insensitive regular expressions. If the url of the data use request |
// matches any of the regular expression, the observation is passed to the |
// Java listener. |
@@ -292,7 +265,7 @@ class ExternalDataUseObserver : public data_usage::DataUseAggregator::Observer { |
// Maintains tab sessions. |
scoped_ptr<DataUseTabModel> data_use_tab_model_; |
- // True if callback from |FetchMatchingRulesCallback| is currently pending. |
+ // True if callback from |FetchMatchingRulesDone| is currently pending. |
bool matching_rules_fetch_pending_; |
// True if callback from |SubmitDataUseReportCallback| is currently pending. |