12dbe1d8526f8d057898bc02ed3185a84f82cbb9aphilip.liard@gmail.com// Copyright (C) 2012 The Libphonenumber Authors 22dbe1d8526f8d057898bc02ed3185a84f82cbb9aphilip.liard@gmail.com// 32dbe1d8526f8d057898bc02ed3185a84f82cbb9aphilip.liard@gmail.com// Licensed under the Apache License, Version 2.0 (the "License"); 42dbe1d8526f8d057898bc02ed3185a84f82cbb9aphilip.liard@gmail.com// you may not use this file except in compliance with the License. 52dbe1d8526f8d057898bc02ed3185a84f82cbb9aphilip.liard@gmail.com// You may obtain a copy of the License at 62dbe1d8526f8d057898bc02ed3185a84f82cbb9aphilip.liard@gmail.com// 72dbe1d8526f8d057898bc02ed3185a84f82cbb9aphilip.liard@gmail.com// http://www.apache.org/licenses/LICENSE-2.0 82dbe1d8526f8d057898bc02ed3185a84f82cbb9aphilip.liard@gmail.com// 92dbe1d8526f8d057898bc02ed3185a84f82cbb9aphilip.liard@gmail.com// Unless required by applicable law or agreed to in writing, software 102dbe1d8526f8d057898bc02ed3185a84f82cbb9aphilip.liard@gmail.com// distributed under the License is distributed on an "AS IS" BASIS, 112dbe1d8526f8d057898bc02ed3185a84f82cbb9aphilip.liard@gmail.com// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 122dbe1d8526f8d057898bc02ed3185a84f82cbb9aphilip.liard@gmail.com// See the License for the specific language governing permissions and 132dbe1d8526f8d057898bc02ed3185a84f82cbb9aphilip.liard@gmail.com// limitations under the License. 142dbe1d8526f8d057898bc02ed3185a84f82cbb9aphilip.liard@gmail.com// 152dbe1d8526f8d057898bc02ed3185a84f82cbb9aphilip.liard@gmail.com// Author: Patrick Mezard 162dbe1d8526f8d057898bc02ed3185a84f82cbb9aphilip.liard@gmail.com 172dbe1d8526f8d057898bc02ed3185a84f82cbb9aphilip.liard@gmail.com#include "phonenumbers/geocoding/default_map_storage.h" 182dbe1d8526f8d057898bc02ed3185a84f82cbb9aphilip.liard@gmail.com 19af4a2ce290b619b39c2cb2a682ea4d7746d3fb21philip.liard@gmail.com#include "phonenumbers/base/basictypes.h" 20af4a2ce290b619b39c2cb2a682ea4d7746d3fb21philip.liard@gmail.com#include "phonenumbers/base/logging.h" 21b32eeb5f079c0b91bc073455657cfc3003df2608jia.shao.peng#include "phonenumbers/geocoding/geocoding_data.h" 222dbe1d8526f8d057898bc02ed3185a84f82cbb9aphilip.liard@gmail.com 232dbe1d8526f8d057898bc02ed3185a84f82cbb9aphilip.liard@gmail.comnamespace i18n { 242dbe1d8526f8d057898bc02ed3185a84f82cbb9aphilip.liard@gmail.comnamespace phonenumbers { 252dbe1d8526f8d057898bc02ed3185a84f82cbb9aphilip.liard@gmail.com 262dbe1d8526f8d057898bc02ed3185a84f82cbb9aphilip.liard@gmail.comDefaultMapStorage::DefaultMapStorage() { 272dbe1d8526f8d057898bc02ed3185a84f82cbb9aphilip.liard@gmail.com} 282dbe1d8526f8d057898bc02ed3185a84f82cbb9aphilip.liard@gmail.com 292dbe1d8526f8d057898bc02ed3185a84f82cbb9aphilip.liard@gmail.comDefaultMapStorage::~DefaultMapStorage() { 302dbe1d8526f8d057898bc02ed3185a84f82cbb9aphilip.liard@gmail.com} 312dbe1d8526f8d057898bc02ed3185a84f82cbb9aphilip.liard@gmail.com 32b32eeb5f079c0b91bc073455657cfc3003df2608jia.shao.pengint32 DefaultMapStorage::GetPrefix(int index) const { 332dbe1d8526f8d057898bc02ed3185a84f82cbb9aphilip.liard@gmail.com DCHECK_GE(index, 0); 34b32eeb5f079c0b91bc073455657cfc3003df2608jia.shao.peng DCHECK_LT(index, prefixes_size_); 352dbe1d8526f8d057898bc02ed3185a84f82cbb9aphilip.liard@gmail.com return prefixes_[index]; 362dbe1d8526f8d057898bc02ed3185a84f82cbb9aphilip.liard@gmail.com} 372dbe1d8526f8d057898bc02ed3185a84f82cbb9aphilip.liard@gmail.com 38b32eeb5f079c0b91bc073455657cfc3003df2608jia.shao.pengconst char* DefaultMapStorage::GetDescription(int index) const { 392dbe1d8526f8d057898bc02ed3185a84f82cbb9aphilip.liard@gmail.com DCHECK_GE(index, 0); 40b32eeb5f079c0b91bc073455657cfc3003df2608jia.shao.peng DCHECK_LT(index, prefixes_size_); 412dbe1d8526f8d057898bc02ed3185a84f82cbb9aphilip.liard@gmail.com return descriptions_[index]; 422dbe1d8526f8d057898bc02ed3185a84f82cbb9aphilip.liard@gmail.com} 432dbe1d8526f8d057898bc02ed3185a84f82cbb9aphilip.liard@gmail.com 44b32eeb5f079c0b91bc073455657cfc3003df2608jia.shao.pengvoid DefaultMapStorage::ReadFromMap(const PrefixDescriptions* descriptions) { 45b32eeb5f079c0b91bc073455657cfc3003df2608jia.shao.peng prefixes_ = descriptions->prefixes; 46b32eeb5f079c0b91bc073455657cfc3003df2608jia.shao.peng prefixes_size_ = descriptions->prefixes_size; 47b32eeb5f079c0b91bc073455657cfc3003df2608jia.shao.peng descriptions_ = descriptions->descriptions; 48b32eeb5f079c0b91bc073455657cfc3003df2608jia.shao.peng possible_lengths_ = descriptions->possible_lengths; 49b32eeb5f079c0b91bc073455657cfc3003df2608jia.shao.peng possible_lengths_size_ = descriptions->possible_lengths_size; 502dbe1d8526f8d057898bc02ed3185a84f82cbb9aphilip.liard@gmail.com} 512dbe1d8526f8d057898bc02ed3185a84f82cbb9aphilip.liard@gmail.com 522dbe1d8526f8d057898bc02ed3185a84f82cbb9aphilip.liard@gmail.comint DefaultMapStorage::GetNumOfEntries() const { 53b32eeb5f079c0b91bc073455657cfc3003df2608jia.shao.peng return prefixes_size_; 542dbe1d8526f8d057898bc02ed3185a84f82cbb9aphilip.liard@gmail.com} 552dbe1d8526f8d057898bc02ed3185a84f82cbb9aphilip.liard@gmail.com 56b32eeb5f079c0b91bc073455657cfc3003df2608jia.shao.pengconst int* DefaultMapStorage::GetPossibleLengths() const { 572dbe1d8526f8d057898bc02ed3185a84f82cbb9aphilip.liard@gmail.com return possible_lengths_; 582dbe1d8526f8d057898bc02ed3185a84f82cbb9aphilip.liard@gmail.com} 592dbe1d8526f8d057898bc02ed3185a84f82cbb9aphilip.liard@gmail.com 60b32eeb5f079c0b91bc073455657cfc3003df2608jia.shao.pengint DefaultMapStorage::GetPossibleLengthsSize() const { 61b32eeb5f079c0b91bc073455657cfc3003df2608jia.shao.peng return possible_lengths_size_; 62b32eeb5f079c0b91bc073455657cfc3003df2608jia.shao.peng} 63b32eeb5f079c0b91bc073455657cfc3003df2608jia.shao.peng 642dbe1d8526f8d057898bc02ed3185a84f82cbb9aphilip.liard@gmail.com} // namespace phonenumbers 652dbe1d8526f8d057898bc02ed3185a84f82cbb9aphilip.liard@gmail.com} // namespace i18n 66