11ebd3d54Sopenharmony_ci/*
21ebd3d54Sopenharmony_ci * Copyright (c) 2024 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#ifndef CALLBACK
171ebd3d54Sopenharmony_ci#define CALLBACK
181ebd3d54Sopenharmony_ci
191ebd3d54Sopenharmony_ci#include <mutex>
201ebd3d54Sopenharmony_ci#include <string>
211ebd3d54Sopenharmony_ci
221ebd3d54Sopenharmony_ci#include "delay_suspend_info.h"
231ebd3d54Sopenharmony_ci#include "expired_callback.h"
241ebd3d54Sopenharmony_ci
251ebd3d54Sopenharmony_cinamespace OHOS {
261ebd3d54Sopenharmony_cinamespace BackgroundTaskMgr {
271ebd3d54Sopenharmony_ciclass Callback : public ExpiredCallback {
281ebd3d54Sopenharmony_cipublic:
291ebd3d54Sopenharmony_ci    Callback();
301ebd3d54Sopenharmony_ci
311ebd3d54Sopenharmony_ci    ~Callback() override;
321ebd3d54Sopenharmony_ci
331ebd3d54Sopenharmony_ci    void OnExpired() override;
341ebd3d54Sopenharmony_ci
351ebd3d54Sopenharmony_ci    void SetCallbackInfo(void (*callback)());
361ebd3d54Sopenharmony_ci
371ebd3d54Sopenharmony_ciprivate:
381ebd3d54Sopenharmony_ci    std::function<void()> ffiCallback_;
391ebd3d54Sopenharmony_ci};
401ebd3d54Sopenharmony_ci}  // namespace BackgroundTaskMgr
411ebd3d54Sopenharmony_ci}  // namespace OHOS
421ebd3d54Sopenharmony_ci#endif  // CALLBACK