Chromium Code Reviews| Index: chrome/browser/autofill/phone_number_i18n.h |
| =================================================================== |
| --- chrome/browser/autofill/phone_number_i18n.h (revision 89739) |
| +++ chrome/browser/autofill/phone_number_i18n.h (working copy) |
| @@ -10,10 +10,16 @@ |
| #include <vector> |
| #include "base/compiler_specific.h" |
| +#include "base/memory/scoped_ptr.h" |
| #include "base/string16.h" |
| +namespace i18n { |
| +namespace phonenumbers { |
| +class PhoneNumber; |
| +} |
| +} |
| + |
| // Utilities to process, normalize and compare international phone numbers. |
| - |
| namespace autofill_i18n { |
| // Most of the following functions require |locale| to operate. The |locale| is |
| @@ -88,6 +94,36 @@ |
| const string16& number_b, |
| const std::string& country_code); |
| +// The cached phone number, does parsing only once, improves performance. |
| +class PhoneObject { |
| + public: |
| + PhoneObject(const string16& number, const std::string& locale); |
| + PhoneObject(const PhoneObject&); |
| + PhoneObject(); |
| + ~PhoneObject(); |
| + |
| + string16 GetCountryCode() const; |
| + string16 GetCityCode() const; |
| + string16 GetNumber() const; |
| + std::string GetLocale() const { return locale_; } |
|
Ilya Sherman
2011/06/21 23:46:12
nit: Why did you inline just one of these four? ;)
GeorgeY
2011/06/22 23:43:45
Initially I had lazy initialization of the other m
|
| + |
| + string16 GetWholeNumber() const; |
| + |
| + PhoneMatch ComparePhones(const string16& phone) const; |
| + |
| + PhoneObject& operator=(const PhoneObject& other); |
| + |
| + bool ValidNumber() const { return i18n_number_ != NULL; } |
|
Ilya Sherman
2011/06/21 23:46:12
nit: Perhaps "IsValidNumber" rather than "ValidNum
GeorgeY
2011/06/22 23:43:45
Sure
|
| + |
| + private: |
| + string16 city_code_; |
| + string16 country_code_; |
| + string16 number_; |
| + mutable string16 whole_number_; // Set on first request. |
| + std::string locale_; |
| + scoped_ptr<i18n::phonenumbers::PhoneNumber> i18n_number_; |
| +}; |
| + |
| } // namespace autofill_i18n |
| #endif // CHROME_BROWSER_AUTOFILL_PHONE_NUMBER_I18N_H_ |