13ceed64fSopenharmony_ci/* 23ceed64fSopenharmony_ci * Copyright (c) 2021-2022 Huawei Device Co., Ltd. 33ceed64fSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 43ceed64fSopenharmony_ci * you may not use this file except in compliance with the License. 53ceed64fSopenharmony_ci * You may obtain a copy of the License at 63ceed64fSopenharmony_ci * 73ceed64fSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 83ceed64fSopenharmony_ci * 93ceed64fSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 103ceed64fSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 113ceed64fSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 123ceed64fSopenharmony_ci * See the License for the specific language governing permissions and 133ceed64fSopenharmony_ci * limitations under the License. 143ceed64fSopenharmony_ci */ 153ceed64fSopenharmony_ci#ifndef OHOS_FORM_FWK_FORM_TIMER_H 163ceed64fSopenharmony_ci#define OHOS_FORM_FWK_FORM_TIMER_H 173ceed64fSopenharmony_ci 183ceed64fSopenharmony_ci#include "form_constants.h" 193ceed64fSopenharmony_ci#include "form_util.h" 203ceed64fSopenharmony_ci 213ceed64fSopenharmony_cinamespace OHOS { 223ceed64fSopenharmony_cinamespace AppExecFwk { 233ceed64fSopenharmony_ci/** 243ceed64fSopenharmony_ci * @enum UpdateType 253ceed64fSopenharmony_ci * Update type. 263ceed64fSopenharmony_ci */ 273ceed64fSopenharmony_cienum UpdateType { 283ceed64fSopenharmony_ci TYPE_INTERVAL_CHANGE, 293ceed64fSopenharmony_ci TYPE_ATTIME_CHANGE, 303ceed64fSopenharmony_ci TYPE_INTERVAL_TO_ATTIME, 313ceed64fSopenharmony_ci TYPE_ATTIME_TO_INTERVAL, 323ceed64fSopenharmony_ci TYPE_INTERVAL_ONCE, 333ceed64fSopenharmony_ci TYPE_NO_CHANGE, 343ceed64fSopenharmony_ci}; 353ceed64fSopenharmony_ci/** 363ceed64fSopenharmony_ci * @class FormTimer 373ceed64fSopenharmony_ci * form timer task. 383ceed64fSopenharmony_ci */ 393ceed64fSopenharmony_ciclass FormTimer { 403ceed64fSopenharmony_cipublic: 413ceed64fSopenharmony_ci int64_t formId; 423ceed64fSopenharmony_ci int32_t userId; 433ceed64fSopenharmony_ci int64_t period; 443ceed64fSopenharmony_ci int hour; 453ceed64fSopenharmony_ci int min; 463ceed64fSopenharmony_ci bool isUpdateAt; 473ceed64fSopenharmony_ci int64_t refreshTime; 483ceed64fSopenharmony_ci bool isEnable = true; 493ceed64fSopenharmony_ci bool isCountTimer; 503ceed64fSopenharmony_ci UpdateType type = UpdateType::TYPE_INTERVAL_CHANGE; 513ceed64fSopenharmony_ci 523ceed64fSopenharmony_ci FormTimer() 533ceed64fSopenharmony_ci { 543ceed64fSopenharmony_ci formId = -1; 553ceed64fSopenharmony_ci userId = -1; 563ceed64fSopenharmony_ci period = -1; 573ceed64fSopenharmony_ci hour = -1; 583ceed64fSopenharmony_ci min = -1; 593ceed64fSopenharmony_ci isUpdateAt = false; 603ceed64fSopenharmony_ci isCountTimer = false; 613ceed64fSopenharmony_ci refreshTime = FormUtil::GetCurrentMillisecond(); 623ceed64fSopenharmony_ci type = UpdateType::TYPE_INTERVAL_CHANGE; 633ceed64fSopenharmony_ci } 643ceed64fSopenharmony_ci 653ceed64fSopenharmony_ci FormTimer(int64_t id, bool countTimer, int32_t uId = 0) 663ceed64fSopenharmony_ci { 673ceed64fSopenharmony_ci formId = id; 683ceed64fSopenharmony_ci userId = uId; 693ceed64fSopenharmony_ci period = -1; 703ceed64fSopenharmony_ci hour = -1; 713ceed64fSopenharmony_ci min = -1; 723ceed64fSopenharmony_ci isUpdateAt = false; 733ceed64fSopenharmony_ci isCountTimer = countTimer; 743ceed64fSopenharmony_ci refreshTime = FormUtil::GetCurrentMillisecond(); 753ceed64fSopenharmony_ci type = UpdateType::TYPE_INTERVAL_CHANGE; 763ceed64fSopenharmony_ci } 773ceed64fSopenharmony_ci 783ceed64fSopenharmony_ci FormTimer(int64_t id, long repeatTime, int32_t uId = 0) 793ceed64fSopenharmony_ci { 803ceed64fSopenharmony_ci formId = id; 813ceed64fSopenharmony_ci userId = uId; 823ceed64fSopenharmony_ci period = repeatTime; 833ceed64fSopenharmony_ci hour = -1; 843ceed64fSopenharmony_ci min = -1; 853ceed64fSopenharmony_ci isUpdateAt = false; 863ceed64fSopenharmony_ci isCountTimer = true; 873ceed64fSopenharmony_ci refreshTime = FormUtil::GetCurrentMillisecond(); 883ceed64fSopenharmony_ci type = UpdateType::TYPE_INTERVAL_CHANGE; 893ceed64fSopenharmony_ci } 903ceed64fSopenharmony_ci 913ceed64fSopenharmony_ci FormTimer(int64_t id, int hourTime, int minTime, int32_t uId = 0) 923ceed64fSopenharmony_ci { 933ceed64fSopenharmony_ci formId = id; 943ceed64fSopenharmony_ci userId = uId; 953ceed64fSopenharmony_ci hour = hourTime; 963ceed64fSopenharmony_ci min = minTime; 973ceed64fSopenharmony_ci period = -1; 983ceed64fSopenharmony_ci isUpdateAt = true; 993ceed64fSopenharmony_ci isCountTimer = false; 1003ceed64fSopenharmony_ci refreshTime = FormUtil::GetCurrentMillisecond(); 1013ceed64fSopenharmony_ci type = UpdateType::TYPE_INTERVAL_CHANGE; 1023ceed64fSopenharmony_ci } 1033ceed64fSopenharmony_ci 1043ceed64fSopenharmony_ci ~FormTimer(void) {} 1053ceed64fSopenharmony_ci}; 1063ceed64fSopenharmony_ci/** 1073ceed64fSopenharmony_ci * @class UpdateAtItem 1083ceed64fSopenharmony_ci * Update item at time. 1093ceed64fSopenharmony_ci */ 1103ceed64fSopenharmony_ciclass UpdateAtItem { 1113ceed64fSopenharmony_cipublic: 1123ceed64fSopenharmony_ci long updateAtTime = -1; 1133ceed64fSopenharmony_ci FormTimer refreshTask; 1143ceed64fSopenharmony_ci}; 1153ceed64fSopenharmony_ci/** 1163ceed64fSopenharmony_ci * @class DynamicRefreshItem 1173ceed64fSopenharmony_ci * Dynamic refresh item. 1183ceed64fSopenharmony_ci */ 1193ceed64fSopenharmony_ciclass DynamicRefreshItem { 1203ceed64fSopenharmony_cipublic: 1213ceed64fSopenharmony_ci int64_t formId = 0L; 1223ceed64fSopenharmony_ci int64_t settedTime = INT64_MAX; 1233ceed64fSopenharmony_ci int32_t userId = -1; 1243ceed64fSopenharmony_ci 1253ceed64fSopenharmony_ci DynamicRefreshItem() {} 1263ceed64fSopenharmony_ci 1273ceed64fSopenharmony_ci DynamicRefreshItem(int64_t id, int64_t time, int32_t uId = 0) 1283ceed64fSopenharmony_ci { 1293ceed64fSopenharmony_ci formId = id; 1303ceed64fSopenharmony_ci settedTime = time; 1313ceed64fSopenharmony_ci userId = uId; 1323ceed64fSopenharmony_ci } 1333ceed64fSopenharmony_ci 1343ceed64fSopenharmony_ci ~DynamicRefreshItem(void) {} 1353ceed64fSopenharmony_ci}; 1363ceed64fSopenharmony_ci/** 1373ceed64fSopenharmony_ci * @struct LimitInfo 1383ceed64fSopenharmony_ci * Limit info about a form. 1393ceed64fSopenharmony_ci */ 1403ceed64fSopenharmony_cistruct LimitInfo { 1413ceed64fSopenharmony_ci int refreshCount = 0; 1423ceed64fSopenharmony_ci bool isReported = false; 1433ceed64fSopenharmony_ci bool remindFlag = false; 1443ceed64fSopenharmony_ci}; 1453ceed64fSopenharmony_ci 1463ceed64fSopenharmony_ci/** 1473ceed64fSopenharmony_ci * @struct FormTimerCfg 1483ceed64fSopenharmony_ci * Form timer config info. 1493ceed64fSopenharmony_ci */ 1503ceed64fSopenharmony_cistruct FormTimerCfg { 1513ceed64fSopenharmony_ci bool enableUpdate = false; 1523ceed64fSopenharmony_ci int64_t updateDuration = 0L; 1533ceed64fSopenharmony_ci int updateAtHour = -1; 1543ceed64fSopenharmony_ci int updateAtMin = -1; 1553ceed64fSopenharmony_ci}; 1563ceed64fSopenharmony_ci} // namespace AppExecFwk 1573ceed64fSopenharmony_ci} // namespace OHOS 1583ceed64fSopenharmony_ci#endif // OHOS_FORM_FWK_FORM_TIMER_H 159