Index: chrome/browser/autofill/phone_number_i18n.h |
=================================================================== |
--- chrome/browser/autofill/phone_number_i18n.h (revision 88362) |
+++ 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 { |
dhollowa
2011/06/10 15:13:27
nit: namespaces don't indent when nested.
GeorgeY
2011/06/10 22:36:35
Done.
|
+ 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,38 @@ |
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_; } |
+ |
+ string16 GetWholeNumber() const; |
+ |
+ PhoneMatch ComparePhones(const string16& phone) const; |
+ PhoneMatch ComparePhones(const PhoneObject& phone) const; |
+ |
+ PhoneObject& operator=(const PhoneObject& other); |
+ |
+ bool ValidNumber() const { return i18n_number_ != NULL; } |
+ private: |
Ilya Sherman
2011/06/10 07:17:33
nit: Please leave a blank line above "private:"
GeorgeY
2011/06/10 22:36:35
Done.
|
+ void Clear(); |
+ |
+ string16 city_code_; |
+ string16 country_code_; |
+ string16 number_; |
+ mutable string16 whole_number_; // Set on first request. |
+ std::string locale_; |
+ i18n::phonenumbers::PhoneNumber* i18n_number_; |
+}; |
+ |
} // namespace autofill_i18n |
#endif // CHROME_BROWSER_AUTOFILL_PHONE_NUMBER_I18N_H_ |