199552fe9Sopenharmony_ci/* 299552fe9Sopenharmony_ci * Copyright (c) 2023 Huawei Device Co., Ltd. 399552fe9Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 499552fe9Sopenharmony_ci * you may not use this file except in compliance with the License. 599552fe9Sopenharmony_ci * You may obtain a copy of the License at 699552fe9Sopenharmony_ci * 799552fe9Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 899552fe9Sopenharmony_ci * 999552fe9Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 1099552fe9Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 1199552fe9Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1299552fe9Sopenharmony_ci * See the License for the specific language governing permissions and 1399552fe9Sopenharmony_ci * limitations under the License. 1499552fe9Sopenharmony_ci */ 1599552fe9Sopenharmony_ci#ifndef FOUNDATION_RESOURCESCHEDULE_STANDBY_SERVICE_SERVICES_CORE_INCLUDE_NAP_STATE_H 1699552fe9Sopenharmony_ci#define FOUNDATION_RESOURCESCHEDULE_STANDBY_SERVICE_SERVICES_CORE_INCLUDE_NAP_STATE_H 1799552fe9Sopenharmony_ci 1899552fe9Sopenharmony_ci#include "base_state.h" 1999552fe9Sopenharmony_ci 2099552fe9Sopenharmony_cinamespace OHOS { 2199552fe9Sopenharmony_cinamespace DevStandbyMgr { 2299552fe9Sopenharmony_ciclass IStateManagerAdapter; 2399552fe9Sopenharmony_ciclass NapState : public BaseState, public StateWithMaint, public std::enable_shared_from_this<NapState> { 2499552fe9Sopenharmony_cipublic: 2599552fe9Sopenharmony_ci NapState(uint32_t curState, uint32_t curPhase, const std::shared_ptr<IStateManagerAdapter>& 2699552fe9Sopenharmony_ci stateManager, std::shared_ptr<AppExecFwk::EventHandler>& handler); 2799552fe9Sopenharmony_ci ErrCode BeginState() override; 2899552fe9Sopenharmony_ci ErrCode EndState() override; 2999552fe9Sopenharmony_ci bool CheckTransitionValid(uint32_t nextState) override; 3099552fe9Sopenharmony_ci void EndEvalCurrentState(bool evalResult) override; 3199552fe9Sopenharmony_ci void OnStateBlocked() override; 3299552fe9Sopenharmony_ciprotected: 3399552fe9Sopenharmony_ci bool IsInFinalPhase() override; 3499552fe9Sopenharmony_ciprivate: 3599552fe9Sopenharmony_ci void SetPhaseTransitTask(bool evalResult); 3699552fe9Sopenharmony_ci void HandleEvalResToSleepState(bool evalResult); 3799552fe9Sopenharmony_ci}; 3899552fe9Sopenharmony_ci} // namespace DevStandbyMgr 3999552fe9Sopenharmony_ci} // namespace OHOS 4099552fe9Sopenharmony_ci#endif // FOUNDATION_RESOURCESCHEDULE_STANDBY_SERVICE_SERVICES_CORE_INCLUDE_NAP_STATE_H