11767c5feSopenharmony_ci// Copyright (C) 2011 The Libphonenumber Authors 21767c5feSopenharmony_ci// 31767c5feSopenharmony_ci// Licensed under the Apache License, Version 2.0 (the "License"); 41767c5feSopenharmony_ci// you may not use this file except in compliance with the License. 51767c5feSopenharmony_ci// You may obtain a copy of the License at 61767c5feSopenharmony_ci// 71767c5feSopenharmony_ci// http://www.apache.org/licenses/LICENSE-2.0 81767c5feSopenharmony_ci// 91767c5feSopenharmony_ci// Unless required by applicable law or agreed to in writing, software 101767c5feSopenharmony_ci// distributed under the License is distributed on an "AS IS" BASIS, 111767c5feSopenharmony_ci// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 121767c5feSopenharmony_ci// See the License for the specific language governing permissions and 131767c5feSopenharmony_ci// limitations under the License. 141767c5feSopenharmony_ci 151767c5feSopenharmony_ci// Author: Philippe Liard 161767c5feSopenharmony_ci 171767c5feSopenharmony_ci#include <string> 181767c5feSopenharmony_ci#include <ostream> 191767c5feSopenharmony_ci#include <vector> 201767c5feSopenharmony_ci 211767c5feSopenharmony_ci#include "phonenumbers/phonenumber.h" 221767c5feSopenharmony_ci 231767c5feSopenharmony_cinamespace i18n { 241767c5feSopenharmony_cinamespace phonenumbers { 251767c5feSopenharmony_ci 261767c5feSopenharmony_ciusing std::string; 271767c5feSopenharmony_ciusing std::ostream; 281767c5feSopenharmony_ciusing std::vector; 291767c5feSopenharmony_ci 301767c5feSopenharmony_ciclass PhoneNumber; 311767c5feSopenharmony_ci 321767c5feSopenharmony_ci// Provides PhoneNumber comparison operators to support the use of EXPECT_EQ and 331767c5feSopenharmony_ci// EXPECT_NE in the unittests. 341767c5feSopenharmony_ciinline bool operator==(const PhoneNumber& number1, const PhoneNumber& number2) { 351767c5feSopenharmony_ci return ExactlySameAs(number1, number2); 361767c5feSopenharmony_ci} 371767c5feSopenharmony_ci 381767c5feSopenharmony_ciinline bool operator!=(const PhoneNumber& number1, const PhoneNumber& number2) { 391767c5feSopenharmony_ci return !(number1 == number2); 401767c5feSopenharmony_ci} 411767c5feSopenharmony_ci 421767c5feSopenharmony_ci// Needed by Google Test to display errors. 431767c5feSopenharmony_ciostream& operator<<(ostream& os, const PhoneNumber& number); 441767c5feSopenharmony_ci 451767c5feSopenharmony_ciostream& operator<<(ostream& os, const vector<PhoneNumber>& numbers); 461767c5feSopenharmony_ci 471767c5feSopenharmony_ci// Class containing string constants of region codes for easier testing. Note 481767c5feSopenharmony_ci// that another private RegionCode class is defined in 491767c5feSopenharmony_ci// cpp/src/phonenumbers/region_code.h. This one contains more constants. 501767c5feSopenharmony_ciclass RegionCode { 511767c5feSopenharmony_ci public: 521767c5feSopenharmony_ci static const char* AD() { 531767c5feSopenharmony_ci return "AD"; 541767c5feSopenharmony_ci } 551767c5feSopenharmony_ci 561767c5feSopenharmony_ci static const char* AE() { 571767c5feSopenharmony_ci return "AE"; 581767c5feSopenharmony_ci } 591767c5feSopenharmony_ci 601767c5feSopenharmony_ci static const char* AM() { 611767c5feSopenharmony_ci return "AM"; 621767c5feSopenharmony_ci } 631767c5feSopenharmony_ci 641767c5feSopenharmony_ci static const char* AO() { 651767c5feSopenharmony_ci return "AO"; 661767c5feSopenharmony_ci } 671767c5feSopenharmony_ci 681767c5feSopenharmony_ci static const char* AQ() { 691767c5feSopenharmony_ci return "AQ"; 701767c5feSopenharmony_ci } 711767c5feSopenharmony_ci 721767c5feSopenharmony_ci static const char* AR() { 731767c5feSopenharmony_ci return "AR"; 741767c5feSopenharmony_ci } 751767c5feSopenharmony_ci 761767c5feSopenharmony_ci static const char* AU() { 771767c5feSopenharmony_ci return "AU"; 781767c5feSopenharmony_ci } 791767c5feSopenharmony_ci 801767c5feSopenharmony_ci static const char* BB() { 811767c5feSopenharmony_ci return "BB"; 821767c5feSopenharmony_ci } 831767c5feSopenharmony_ci 841767c5feSopenharmony_ci static const char* BR() { 851767c5feSopenharmony_ci return "BR"; 861767c5feSopenharmony_ci } 871767c5feSopenharmony_ci 881767c5feSopenharmony_ci static const char* BS() { 891767c5feSopenharmony_ci return "BS"; 901767c5feSopenharmony_ci } 911767c5feSopenharmony_ci 921767c5feSopenharmony_ci static const char* BY() { 931767c5feSopenharmony_ci return "BY"; 941767c5feSopenharmony_ci } 951767c5feSopenharmony_ci 961767c5feSopenharmony_ci static const char* CA() { 971767c5feSopenharmony_ci return "CA"; 981767c5feSopenharmony_ci } 991767c5feSopenharmony_ci 1001767c5feSopenharmony_ci static const char* CH() { 1011767c5feSopenharmony_ci return "CH"; 1021767c5feSopenharmony_ci } 1031767c5feSopenharmony_ci 1041767c5feSopenharmony_ci static const char* CL() { 1051767c5feSopenharmony_ci return "CL"; 1061767c5feSopenharmony_ci } 1071767c5feSopenharmony_ci 1081767c5feSopenharmony_ci static const char* CN() { 1091767c5feSopenharmony_ci return "CN"; 1101767c5feSopenharmony_ci } 1111767c5feSopenharmony_ci 1121767c5feSopenharmony_ci static const char* CO() { 1131767c5feSopenharmony_ci return "CO"; 1141767c5feSopenharmony_ci } 1151767c5feSopenharmony_ci 1161767c5feSopenharmony_ci static const char* CS() { 1171767c5feSopenharmony_ci return "CS"; 1181767c5feSopenharmony_ci } 1191767c5feSopenharmony_ci 1201767c5feSopenharmony_ci static const char* CX() { 1211767c5feSopenharmony_ci return "CX"; 1221767c5feSopenharmony_ci } 1231767c5feSopenharmony_ci 1241767c5feSopenharmony_ci static const char* DE() { 1251767c5feSopenharmony_ci return "DE"; 1261767c5feSopenharmony_ci } 1271767c5feSopenharmony_ci 1281767c5feSopenharmony_ci static const char* FR() { 1291767c5feSopenharmony_ci return "FR"; 1301767c5feSopenharmony_ci } 1311767c5feSopenharmony_ci 1321767c5feSopenharmony_ci static const char* GB() { 1331767c5feSopenharmony_ci return "GB"; 1341767c5feSopenharmony_ci } 1351767c5feSopenharmony_ci 1361767c5feSopenharmony_ci static const char* HU() { 1371767c5feSopenharmony_ci return "HU"; 1381767c5feSopenharmony_ci } 1391767c5feSopenharmony_ci 1401767c5feSopenharmony_ci static const char* IT() { 1411767c5feSopenharmony_ci return "IT"; 1421767c5feSopenharmony_ci } 1431767c5feSopenharmony_ci 1441767c5feSopenharmony_ci static const char* JP() { 1451767c5feSopenharmony_ci return "JP"; 1461767c5feSopenharmony_ci } 1471767c5feSopenharmony_ci 1481767c5feSopenharmony_ci static const char* KR() { 1491767c5feSopenharmony_ci return "KR"; 1501767c5feSopenharmony_ci } 1511767c5feSopenharmony_ci 1521767c5feSopenharmony_ci static const char* MX() { 1531767c5feSopenharmony_ci return "MX"; 1541767c5feSopenharmony_ci } 1551767c5feSopenharmony_ci 1561767c5feSopenharmony_ci static const char* NZ() { 1571767c5feSopenharmony_ci return "NZ"; 1581767c5feSopenharmony_ci } 1591767c5feSopenharmony_ci 1601767c5feSopenharmony_ci static const char* PL() { 1611767c5feSopenharmony_ci return "PL"; 1621767c5feSopenharmony_ci } 1631767c5feSopenharmony_ci 1641767c5feSopenharmony_ci static const char* RE() { 1651767c5feSopenharmony_ci return "RE"; 1661767c5feSopenharmony_ci } 1671767c5feSopenharmony_ci 1681767c5feSopenharmony_ci static const char* RU() { 1691767c5feSopenharmony_ci return "RU"; 1701767c5feSopenharmony_ci } 1711767c5feSopenharmony_ci 1721767c5feSopenharmony_ci static const char* SE() { 1731767c5feSopenharmony_ci return "SE"; 1741767c5feSopenharmony_ci } 1751767c5feSopenharmony_ci 1761767c5feSopenharmony_ci static const char* SG() { 1771767c5feSopenharmony_ci return "SG"; 1781767c5feSopenharmony_ci } 1791767c5feSopenharmony_ci 1801767c5feSopenharmony_ci static const char* UN001() { 1811767c5feSopenharmony_ci return "001"; 1821767c5feSopenharmony_ci } 1831767c5feSopenharmony_ci 1841767c5feSopenharmony_ci static const char* US() { 1851767c5feSopenharmony_ci return "US"; 1861767c5feSopenharmony_ci } 1871767c5feSopenharmony_ci 1881767c5feSopenharmony_ci static const char* UZ() { 1891767c5feSopenharmony_ci return "UZ"; 1901767c5feSopenharmony_ci } 1911767c5feSopenharmony_ci 1921767c5feSopenharmony_ci static const char* YT() { 1931767c5feSopenharmony_ci return "YT"; 1941767c5feSopenharmony_ci } 1951767c5feSopenharmony_ci 1961767c5feSopenharmony_ci static const char* ZW() { 1971767c5feSopenharmony_ci return "ZW"; 1981767c5feSopenharmony_ci } 1991767c5feSopenharmony_ci 2001767c5feSopenharmony_ci // Returns a region code string representing the "unknown" region. 2011767c5feSopenharmony_ci static const char* GetUnknown() { 2021767c5feSopenharmony_ci return "ZZ"; 2031767c5feSopenharmony_ci } 2041767c5feSopenharmony_ci 2051767c5feSopenharmony_ci static const char* ZZ() { 2061767c5feSopenharmony_ci return GetUnknown(); 2071767c5feSopenharmony_ci } 2081767c5feSopenharmony_ci}; 2091767c5feSopenharmony_ci 2101767c5feSopenharmony_ci} // namespace phonenumbers 2111767c5feSopenharmony_ci} // namespace i18n 212