Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1286)

Unified Diff: third_party/libaddressinput/chromium/cpp/src/rule_retriever.cc

Issue 109323011: [rac] Download all rules for a country code in libaddressinput. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Merge smaller patches. Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/libaddressinput/chromium/cpp/src/rule_retriever.cc
diff --git a/third_party/libaddressinput/chromium/cpp/src/rule_retriever.cc b/third_party/libaddressinput/chromium/cpp/src/rule_retriever.cc
index a77c93abd7169f676280f03510e6fec3faa2110e..cfe5a91a31e735889718620d530dd3a2f770ad56 100644
--- a/third_party/libaddressinput/chromium/cpp/src/rule_retriever.cc
+++ b/third_party/libaddressinput/chromium/cpp/src/rule_retriever.cc
@@ -14,6 +14,7 @@
#include "rule_retriever.h"
+#include <libaddressinput/address_field.h>
#include <libaddressinput/callback.h>
#include <libaddressinput/util/basictypes.h>
#include <libaddressinput/util/scoped_ptr.h>
@@ -22,6 +23,7 @@
#include <cstddef>
#include <string>
+#include "lookup_key.h"
#include "retriever.h"
#include "rule.h"
@@ -32,12 +34,13 @@ namespace {
class Helper {
public:
- Helper(const std::string& key,
+ Helper(const LookupKey& key,
const RuleRetriever::Callback& rule_ready,
const Retriever& data_retriever)
- : rule_ready_(rule_ready),
+ : key_(key),
+ rule_ready_(rule_ready),
data_retrieved_(BuildCallback(this, &Helper::OnDataRetrieved)) {
- data_retriever.Retrieve(key, *data_retrieved_);
+ data_retriever.Retrieve(key_.GetKeyValue(), *data_retrieved_);
}
private:
@@ -48,14 +51,18 @@ class Helper {
const std::string& data) {
Rule rule;
if (!success) {
- rule_ready_(false, key, rule);
+ rule_ready_(false, key_, rule);
} else {
+ if (key_.GetLevel() == COUNTRY) {
+ rule.CopyFrom(Rule::GetDefault());
+ }
success = rule.ParseSerializedRule(data);
- rule_ready_(success, key, rule);
+ rule_ready_(success, key_, rule);
}
delete this;
}
+ const LookupKey& key_;
const RuleRetriever::Callback& rule_ready_;
scoped_ptr<Retriever::Callback> data_retrieved_;
@@ -71,7 +78,7 @@ RuleRetriever::RuleRetriever(const Retriever* retriever)
RuleRetriever::~RuleRetriever() {}
-void RuleRetriever::RetrieveRule(const std::string& key,
+void RuleRetriever::RetrieveRule(const LookupKey& key,
const Callback& rule_ready) const {
new Helper(key, rule_ready, *data_retriever_);
}

Powered by Google App Engine
This is Rietveld 408576698