1ba5c3796Sopenharmony_ci/* 2ba5c3796Sopenharmony_ci * Copyright (c) 2022 Huawei Device Co., Ltd. 3ba5c3796Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4ba5c3796Sopenharmony_ci * you may not use this file except in compliance with the License. 5ba5c3796Sopenharmony_ci * You may obtain a copy of the License at 6ba5c3796Sopenharmony_ci * 7ba5c3796Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8ba5c3796Sopenharmony_ci * 9ba5c3796Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10ba5c3796Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11ba5c3796Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12ba5c3796Sopenharmony_ci * See the License for the specific language governing permissions and 13ba5c3796Sopenharmony_ci * limitations under the License. 14ba5c3796Sopenharmony_ci */ 15ba5c3796Sopenharmony_ci 16ba5c3796Sopenharmony_ci#ifndef OHOS_MEMORY_MEMMGR_APP_STATE_OBSERVER_H 17ba5c3796Sopenharmony_ci#define OHOS_MEMORY_MEMMGR_APP_STATE_OBSERVER_H 18ba5c3796Sopenharmony_ci 19ba5c3796Sopenharmony_ci#include "application_state_observer_stub.h" 20ba5c3796Sopenharmony_ci#include "reclaim_priority_manager.h" 21ba5c3796Sopenharmony_ci 22ba5c3796Sopenharmony_cinamespace OHOS { 23ba5c3796Sopenharmony_cinamespace Memory { 24ba5c3796Sopenharmony_ciclass AppStateObserver : public AppExecFwk::ApplicationStateObserverStub { 25ba5c3796Sopenharmony_cipublic: 26ba5c3796Sopenharmony_ci /** 27ba5c3796Sopenharmony_ci * Application foreground state changed callback. 28ba5c3796Sopenharmony_ci * 29ba5c3796Sopenharmony_ci * @param appStateData Application Process data. 30ba5c3796Sopenharmony_ci */ 31ba5c3796Sopenharmony_ci virtual void OnForegroundApplicationChanged(const AppExecFwk::AppStateData &appStateData) override; 32ba5c3796Sopenharmony_ci 33ba5c3796Sopenharmony_ci /** 34ba5c3796Sopenharmony_ci * Will be called when the ability state changes. 35ba5c3796Sopenharmony_ci * 36ba5c3796Sopenharmony_ci * @param abilityStateData Ability state data. 37ba5c3796Sopenharmony_ci */ 38ba5c3796Sopenharmony_ci virtual void OnAbilityStateChanged(const AppExecFwk::AbilityStateData &abilityStateData) override; 39ba5c3796Sopenharmony_ci 40ba5c3796Sopenharmony_ci /** 41ba5c3796Sopenharmony_ci * Will be called when the extension state changes. 42ba5c3796Sopenharmony_ci * 43ba5c3796Sopenharmony_ci * @param abilityStateData Extension state data. 44ba5c3796Sopenharmony_ci */ 45ba5c3796Sopenharmony_ci virtual void OnExtensionStateChanged(const AppExecFwk::AbilityStateData &abilityStateData) override; 46ba5c3796Sopenharmony_ci 47ba5c3796Sopenharmony_ci /** 48ba5c3796Sopenharmony_ci * Will be called when the process start. 49ba5c3796Sopenharmony_ci * 50ba5c3796Sopenharmony_ci * @param processData Process data. 51ba5c3796Sopenharmony_ci */ 52ba5c3796Sopenharmony_ci virtual void OnProcessCreated(const AppExecFwk::ProcessData &processData) override; 53ba5c3796Sopenharmony_ci 54ba5c3796Sopenharmony_ci /** 55ba5c3796Sopenharmony_ci * Will be called when the process die. 56ba5c3796Sopenharmony_ci * 57ba5c3796Sopenharmony_ci * @param processData Process data. 58ba5c3796Sopenharmony_ci */ 59ba5c3796Sopenharmony_ci virtual void OnProcessDied(const AppExecFwk::ProcessData &processData) override; 60ba5c3796Sopenharmony_ci 61ba5c3796Sopenharmony_ciprivate: 62ba5c3796Sopenharmony_ci const std::map<int, AppStateUpdateReason> stateReasonMap_ = { 63ba5c3796Sopenharmony_ci { static_cast<int32_t>(AppExecFwk::AbilityState::ABILITY_STATE_READY), AppStateUpdateReason::PROCESS_READY }, 64ba5c3796Sopenharmony_ci { static_cast<int32_t>(AppExecFwk::AbilityState::ABILITY_STATE_FOREGROUND), AppStateUpdateReason::FOREGROUND }, 65ba5c3796Sopenharmony_ci { static_cast<int32_t>(AppExecFwk::AbilityState::ABILITY_STATE_BACKGROUND), AppStateUpdateReason::BACKGROUND }, 66ba5c3796Sopenharmony_ci }; 67ba5c3796Sopenharmony_ci 68ba5c3796Sopenharmony_ci const std::map<int, std::string> stateReasonStrMap_ = { 69ba5c3796Sopenharmony_ci { static_cast<int32_t>(AppExecFwk::AbilityState::ABILITY_STATE_READY), "PROCESS_READY" }, 70ba5c3796Sopenharmony_ci { static_cast<int32_t>(AppExecFwk::AbilityState::ABILITY_STATE_FOREGROUND), "FOREGROUND" }, 71ba5c3796Sopenharmony_ci { static_cast<int32_t>(AppExecFwk::AbilityState::ABILITY_STATE_BACKGROUND), "BACKGROUND" }, 72ba5c3796Sopenharmony_ci }; 73ba5c3796Sopenharmony_ci}; 74ba5c3796Sopenharmony_ci} // namespace Memory 75ba5c3796Sopenharmony_ci} // namespace OHOS 76ba5c3796Sopenharmony_ci#endif // OHOS_MEMORY_MEMMGR_APP_STATE_OBSERVER_H 77