1 /* 2 * Copyright (C) 2022 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #include "locator.h" 17 #include "location_log.h" 18 19 namespace OHOS { 20 namespace Location { 21 std::shared_ptr<LocatorImpl> Locator::instance_ = nullptr; 22 std::mutex Locator::mutex_; ~Locator()23Locator::~Locator() 24 {} 25 GetInstance()26std::shared_ptr<LocatorImpl> Locator::GetInstance() 27 { 28 if (instance_ == nullptr) { 29 std::unique_lock<std::mutex> lock(mutex_); 30 if (instance_ == nullptr) { 31 std::shared_ptr<LocatorImpl> locator = std::make_shared<LocatorImpl>(); 32 instance_ = locator; 33 } 34 } 35 return instance_; 36 } 37 } // namespace Location 38 } // namespace OHOS 39