2 * Copyright (C) 2014 The Libphonenumber Authors
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 #ifndef I18N_PHONENUMBERS_MATCHER_API_H_
18 #define I18N_PHONENUMBERS_MATCHER_API_H_
23 namespace phonenumbers {
27 class PhoneNumberDesc;
29 // Internal phonenumber matching API used to isolate the underlying
30 // implementation of the matcher and allow different implementations to be
34 virtual ~MatcherApi() {}
36 // Returns whether the given national number (a string containing only decimal
37 // digits) matches the national number pattern defined in the given
38 // PhoneNumberDesc message.
39 virtual bool MatchesNationalNumber(const string& national_number,
40 const PhoneNumberDesc& number_desc,
41 bool allow_prefix_match) const = 0;
43 // Returns whether the given national number (a string containing only decimal
44 // digits) matches the possible number pattern defined in the given
45 // PhoneNumberDesc message.
46 virtual bool MatchesPossibleNumber(
47 const string& national_number,
48 const PhoneNumberDesc& number_desc) const = 0;
51 } // namespace phonenumbers
54 #endif // I18N_PHONENUMBERS_MATCHER_API_H_