Index: third_party/libaddressinput/chromium/cpp/include/libaddressinput/address_validator.h |
diff --git a/third_party/libaddressinput/chromium/cpp/include/libaddressinput/address_validator.h b/third_party/libaddressinput/chromium/cpp/include/libaddressinput/address_validator.h |
index b7ceb7f960dd7626d252413781badb4de14250d7..ee6e99a896a18e1ab1feda61e4e4cd88f453318b 100644 |
--- a/third_party/libaddressinput/chromium/cpp/include/libaddressinput/address_validator.h |
+++ b/third_party/libaddressinput/chromium/cpp/include/libaddressinput/address_validator.h |
@@ -17,7 +17,6 @@ |
#include <libaddressinput/address_field.h> |
#include <libaddressinput/address_problem.h> |
-#include <libaddressinput/util/basictypes.h> |
#include <libaddressinput/util/scoped_ptr.h> |
#include <map> |
@@ -30,7 +29,6 @@ namespace addressinput { |
class Downloader; |
class LoadRulesDelegate; |
class Localization; |
-class Retriever; |
class Storage; |
struct AddressData; |
@@ -84,20 +82,28 @@ class AddressValidator { |
RULES_NOT_READY |
}; |
- // Does not take ownership of |load_rules_delegate|, which can be NULL. |
- AddressValidator(scoped_ptr<const Downloader> downloader, |
- scoped_ptr<Storage> storage, |
- LoadRulesDelegate* load_rules_delegate); |
- ~AddressValidator(); |
+ virtual ~AddressValidator(); |
+ |
+ // Builds an address validator. Takes ownership of |downloader| and |storage|, |
+ // which cannot be NULL. Does not take ownership of |load_rules_delegate|, |
+ // which can be NULL. The caller owns the result. |
+ static scoped_ptr<AddressValidator> Build( |
+ scoped_ptr<const Downloader> downloader, |
+ scoped_ptr<Storage> storage, |
+ LoadRulesDelegate* load_rules_delegate); |
// Loads the generic validation rules for |country_code| and specific rules |
// for the country's administrative areas, localities, and dependent |
// localities. A typical data size is 10KB. The largest is 250KB. If a country |
// has language-specific validation rules, then these are also loaded. |
// |
- // If the rules were loaded successfully before, then does nothing. Notifies |
- // |load_rules_delegate| when the loading finishes. |
- void LoadRules(const std::string& country_code); |
+ // Example rule: |
+ // https://i18napis.appspot.com/ssl-address/data/US |
+ // |
+ // If the rules were loaded successfully before or are still being loaded, |
+ // then does nothing. Notifies |load_rules_delegate| when the loading |
+ // finishes. |
+ virtual void LoadRules(const std::string& country_code) = 0; |
// Validates the |address| and populates |problems| with the validation |
// problems, filtered according to the |filter| parameter. |
@@ -108,15 +114,10 @@ class AddressValidator { |
// |
// If the |problems| parameter is NULL, then checks whether the validation |
// rules are available, but does not validate the |address|. |
- Status ValidateAddress(const AddressData& address, |
- const AddressProblemFilter& filter, |
- const Localization& localization, |
- AddressProblems* problems) const; |
- private: |
- scoped_ptr<Retriever> retriever_; |
- LoadRulesDelegate* load_rules_delegate_; |
- |
- DISALLOW_COPY_AND_ASSIGN(AddressValidator); |
+ virtual Status ValidateAddress(const AddressData& address, |
+ const AddressProblemFilter& filter, |
+ const Localization& localization, |
+ AddressProblems* problems) const = 0; |
}; |
} // namespace addressinput |