1cb69b360Sopenharmony_ci/* 2cb69b360Sopenharmony_ci * Copyright (c) 2021 Huawei Device Co., Ltd. 3cb69b360Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4cb69b360Sopenharmony_ci * you may not use this file except in compliance with the License. 5cb69b360Sopenharmony_ci * You may obtain a copy of the License at 6cb69b360Sopenharmony_ci * 7cb69b360Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8cb69b360Sopenharmony_ci * 9cb69b360Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10cb69b360Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11cb69b360Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12cb69b360Sopenharmony_ci * See the License for the specific language governing permissions and 13cb69b360Sopenharmony_ci * limitations under the License. 14cb69b360Sopenharmony_ci */ 15cb69b360Sopenharmony_ci#ifndef POWERMGR_POWER_MGR_TIMER_UTIL_H 16cb69b360Sopenharmony_ci#define POWERMGR_POWER_MGR_TIMER_UTIL_H 17cb69b360Sopenharmony_ci 18cb69b360Sopenharmony_ci#include <stdint.h> 19cb69b360Sopenharmony_ci 20cb69b360Sopenharmony_ci#include <ohos_types.h> 21cb69b360Sopenharmony_ci#include <time.h> 22cb69b360Sopenharmony_ci 23cb69b360Sopenharmony_ci#ifdef __cplusplus 24cb69b360Sopenharmony_ciextern "C" { 25cb69b360Sopenharmony_ci#endif // __cplusplus 26cb69b360Sopenharmony_ci 27cb69b360Sopenharmony_citypedef timer_t PowerTimer; 28cb69b360Sopenharmony_citypedef void (*PowerTimerCallback)(void *privateData); 29cb69b360Sopenharmony_ci 30cb69b360Sopenharmony_ci/* 31cb69b360Sopenharmony_ci * Create timer. Must call PowerMgrDestroyTimer to release memory after timer is not needed 32cb69b360Sopenharmony_ci */ 33cb69b360Sopenharmony_ciPowerTimer *PowerMgrCreateTimer(int64_t whenMsec, int64_t intervalMsec, PowerTimerCallback cb); 34cb69b360Sopenharmony_ci 35cb69b360Sopenharmony_ci/* 36cb69b360Sopenharmony_ci * Reset timer attributes and stop timer 37cb69b360Sopenharmony_ci */ 38cb69b360Sopenharmony_ciBOOL PowerMgrResetTimer(PowerTimer *timer, int64_t whenMsec, int64_t intervalMsec); 39cb69b360Sopenharmony_ci 40cb69b360Sopenharmony_ci/* 41cb69b360Sopenharmony_ci * Start timer. The privateData will set to PowerTimerCallback function when timer timeout 42cb69b360Sopenharmony_ci */ 43cb69b360Sopenharmony_ciBOOL PowerMgrStartTimer(PowerTimer *timer, void *privateData); 44cb69b360Sopenharmony_ci 45cb69b360Sopenharmony_ci/* 46cb69b360Sopenharmony_ci * Restart timer. The privateData will set to PowerTimerCallback function when timer timeout 47cb69b360Sopenharmony_ci */ 48cb69b360Sopenharmony_ciBOOL PowerMgrRestartTimer(PowerTimer *timer, void *privateData); 49cb69b360Sopenharmony_ci 50cb69b360Sopenharmony_ci/* 51cb69b360Sopenharmony_ci * Stop timer 52cb69b360Sopenharmony_ci */ 53cb69b360Sopenharmony_ciBOOL PowerMgrStopTimer(PowerTimer *timer); 54cb69b360Sopenharmony_ci 55cb69b360Sopenharmony_ci/* 56cb69b360Sopenharmony_ci * Destory timer 57cb69b360Sopenharmony_ci */ 58cb69b360Sopenharmony_civoid PowerMgrDestroyTimer(PowerTimer *timer); 59cb69b360Sopenharmony_ci 60cb69b360Sopenharmony_ci#ifdef __cplusplus 61cb69b360Sopenharmony_ci} 62cb69b360Sopenharmony_ci#endif // __cplusplus 63cb69b360Sopenharmony_ci#endif // POWERMGR_POWER_MGR_TIMER_UTIL_H 64