1209bc2fbSopenharmony_ci/* 2209bc2fbSopenharmony_ci * Copyright (c) 2021-2022 Huawei Device Co., Ltd. 3209bc2fbSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4209bc2fbSopenharmony_ci * you may not use this file except in compliance with the License. 5209bc2fbSopenharmony_ci * You may obtain a copy of the License at 6209bc2fbSopenharmony_ci * 7209bc2fbSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8209bc2fbSopenharmony_ci * 9209bc2fbSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10209bc2fbSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11209bc2fbSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12209bc2fbSopenharmony_ci * See the License for the specific language governing permissions and 13209bc2fbSopenharmony_ci * limitations under the License. 14209bc2fbSopenharmony_ci */ 15209bc2fbSopenharmony_ci 16209bc2fbSopenharmony_ci#include "watchdog.h" 17209bc2fbSopenharmony_ci 18209bc2fbSopenharmony_ci#include "watchdog_inner.h" 19209bc2fbSopenharmony_ci 20209bc2fbSopenharmony_cinamespace OHOS { 21209bc2fbSopenharmony_cinamespace HiviewDFX { 22209bc2fbSopenharmony_ciWatchdog::Watchdog() 23209bc2fbSopenharmony_ci{ 24209bc2fbSopenharmony_ci} 25209bc2fbSopenharmony_ci 26209bc2fbSopenharmony_ciWatchdog::~Watchdog() 27209bc2fbSopenharmony_ci{ 28209bc2fbSopenharmony_ci} 29209bc2fbSopenharmony_ci 30209bc2fbSopenharmony_ciint Watchdog::AddThread(const std::string &name, std::shared_ptr<AppExecFwk::EventHandler> handler, 31209bc2fbSopenharmony_ci TimeOutCallback timeOutCallback, uint64_t interval) 32209bc2fbSopenharmony_ci{ 33209bc2fbSopenharmony_ci return WatchdogInner::GetInstance().AddThread(name, handler, timeOutCallback, interval); 34209bc2fbSopenharmony_ci} 35209bc2fbSopenharmony_ci 36209bc2fbSopenharmony_ciint Watchdog::AddThread(const std::string &name, std::shared_ptr<AppExecFwk::EventHandler> handler, uint64_t interval) 37209bc2fbSopenharmony_ci{ 38209bc2fbSopenharmony_ci return WatchdogInner::GetInstance().AddThread(name, handler, nullptr, interval); 39209bc2fbSopenharmony_ci} 40209bc2fbSopenharmony_ci 41209bc2fbSopenharmony_civoid Watchdog::RunOneShotTask(const std::string& name, Task&& task, uint64_t delay) 42209bc2fbSopenharmony_ci{ 43209bc2fbSopenharmony_ci return WatchdogInner::GetInstance().RunOneShotTask(name, std::move(task), delay); 44209bc2fbSopenharmony_ci} 45209bc2fbSopenharmony_ci 46209bc2fbSopenharmony_civoid Watchdog::RunPeriodicalTask(const std::string& name, Task&& task, uint64_t interval, uint64_t delay) 47209bc2fbSopenharmony_ci{ 48209bc2fbSopenharmony_ci return WatchdogInner::GetInstance().RunPeriodicalTask(name, std::move(task), interval, delay); 49209bc2fbSopenharmony_ci} 50209bc2fbSopenharmony_ci 51209bc2fbSopenharmony_civoid Watchdog::StopWatchdog() 52209bc2fbSopenharmony_ci{ 53209bc2fbSopenharmony_ci return WatchdogInner::GetInstance().StopWatchdog(); 54209bc2fbSopenharmony_ci} 55209bc2fbSopenharmony_ci 56209bc2fbSopenharmony_civoid Watchdog::InitFfrtWatchdog() 57209bc2fbSopenharmony_ci{ 58209bc2fbSopenharmony_ci return WatchdogInner::GetInstance().InitFfrtWatchdog(); 59209bc2fbSopenharmony_ci} 60209bc2fbSopenharmony_ci 61209bc2fbSopenharmony_civoid Watchdog::SetBundleInfo(const std::string& bundleName, const std::string& bundleVersion) 62209bc2fbSopenharmony_ci{ 63209bc2fbSopenharmony_ci return WatchdogInner::GetInstance().SetBundleInfo(bundleName, bundleVersion); 64209bc2fbSopenharmony_ci} 65209bc2fbSopenharmony_ci 66209bc2fbSopenharmony_civoid Watchdog::SetForeground(const bool& isForeground) 67209bc2fbSopenharmony_ci{ 68209bc2fbSopenharmony_ci return WatchdogInner::GetInstance().SetForeground(isForeground); 69209bc2fbSopenharmony_ci} 70209bc2fbSopenharmony_ci 71209bc2fbSopenharmony_civoid Watchdog::RemovePeriodicalTask(const std::string& name) 72209bc2fbSopenharmony_ci{ 73209bc2fbSopenharmony_ci WatchdogInner::GetInstance().RemoveInnerTask(name); 74209bc2fbSopenharmony_ci} 75209bc2fbSopenharmony_ci 76209bc2fbSopenharmony_civoid Watchdog::RemoveThread(const std::string& name) 77209bc2fbSopenharmony_ci{ 78209bc2fbSopenharmony_ci WatchdogInner::GetInstance().RemoveInnerTask(name); 79209bc2fbSopenharmony_ci} 80209bc2fbSopenharmony_ci 81209bc2fbSopenharmony_civoid Watchdog::InitMainLooperWatcher(WatchdogBeginFunc* beginFunc, WatchdogEndFunc* endFunc) 82209bc2fbSopenharmony_ci{ 83209bc2fbSopenharmony_ci WatchdogInner::GetInstance().InitMainLooperWatcher(beginFunc, endFunc); 84209bc2fbSopenharmony_ci} 85209bc2fbSopenharmony_ci 86209bc2fbSopenharmony_civoid Watchdog::SetAppDebug(bool isAppDebug) 87209bc2fbSopenharmony_ci{ 88209bc2fbSopenharmony_ci WatchdogInner::GetInstance().SetAppDebug(isAppDebug); 89209bc2fbSopenharmony_ci} 90209bc2fbSopenharmony_ci 91209bc2fbSopenharmony_cibool Watchdog::GetAppDebug() 92209bc2fbSopenharmony_ci{ 93209bc2fbSopenharmony_ci return WatchdogInner::GetInstance().GetAppDebug(); 94209bc2fbSopenharmony_ci} 95209bc2fbSopenharmony_ci} // end of namespace HiviewDFX 96209bc2fbSopenharmony_ci} // end of namespace OHOS 97