11ebd3d54Sopenharmony_ci/* 21ebd3d54Sopenharmony_ci * Copyright (c) 2022 Huawei Device Co., Ltd. 31ebd3d54Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 41ebd3d54Sopenharmony_ci * you may not use this file except in compliance with the License. 51ebd3d54Sopenharmony_ci * You may obtain a copy of the License at 61ebd3d54Sopenharmony_ci * 71ebd3d54Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 81ebd3d54Sopenharmony_ci * 91ebd3d54Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 101ebd3d54Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 111ebd3d54Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 121ebd3d54Sopenharmony_ci * See the License for the specific language governing permissions and 131ebd3d54Sopenharmony_ci * limitations under the License. 141ebd3d54Sopenharmony_ci */ 151ebd3d54Sopenharmony_ci 161ebd3d54Sopenharmony_ci#include "expired_callback.h" 171ebd3d54Sopenharmony_ci 181ebd3d54Sopenharmony_cinamespace OHOS { 191ebd3d54Sopenharmony_cinamespace BackgroundTaskMgr { 201ebd3d54Sopenharmony_ciExpiredCallback::ExpiredCallback() {} 211ebd3d54Sopenharmony_ci 221ebd3d54Sopenharmony_ciExpiredCallback::~ExpiredCallback() {} 231ebd3d54Sopenharmony_ci 241ebd3d54Sopenharmony_ci__attribute__((no_sanitize("cfi"))) void ExpiredCallback::Init() 251ebd3d54Sopenharmony_ci{ 261ebd3d54Sopenharmony_ci impl_ = new (std::nothrow) ExpiredCallbackImpl(shared_from_this()); 271ebd3d54Sopenharmony_ci} 281ebd3d54Sopenharmony_ci 291ebd3d54Sopenharmony_ciconst sptr<ExpiredCallback::ExpiredCallbackImpl> ExpiredCallback::GetImpl() const 301ebd3d54Sopenharmony_ci{ 311ebd3d54Sopenharmony_ci return impl_; 321ebd3d54Sopenharmony_ci} 331ebd3d54Sopenharmony_ci 341ebd3d54Sopenharmony_ciExpiredCallback::ExpiredCallbackImpl::ExpiredCallbackImpl(const std::shared_ptr<ExpiredCallback> &callback) 351ebd3d54Sopenharmony_ci : callback_(callback) {} 361ebd3d54Sopenharmony_ci 371ebd3d54Sopenharmony_civoid ExpiredCallback::ExpiredCallbackImpl::OnExpired() 381ebd3d54Sopenharmony_ci{ 391ebd3d54Sopenharmony_ci auto callback = callback_.lock(); 401ebd3d54Sopenharmony_ci if (callback != nullptr) { 411ebd3d54Sopenharmony_ci callback->OnExpired(); 421ebd3d54Sopenharmony_ci } 431ebd3d54Sopenharmony_ci} 441ebd3d54Sopenharmony_ci} // namespace BackgroundTaskMgr 451ebd3d54Sopenharmony_ci} // namespace OHOS