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