1 /* 2 * Copyright (c) 2022-2023 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #ifndef FOUNDATION_APPEXECFWK_SERVICES_BUNDLEMGR_INCLUDE_AGING_HANDLER_H 17 #define FOUNDATION_APPEXECFWK_SERVICES_BUNDLEMGR_INCLUDE_AGING_HANDLER_H 18 19 #include <cinttypes> 20 #include <string> 21 #include <vector> 22 23 #include "aging_request.h" 24 #include "bundle_util.h" 25 #include "status_receiver_host.h" 26 27 namespace OHOS { 28 namespace AppExecFwk { 29 class AgingHandler { 30 public: 31 AgingHandler() = default; 32 virtual ~AgingHandler() = default; 33 virtual bool Process(AgingRequest &request) const = 0; 34 }; 35 36 class RecentlyUnuseBundleAgingHandler : public AgingHandler { 37 public: 38 RecentlyUnuseBundleAgingHandler() = default; 39 virtual ~RecentlyUnuseBundleAgingHandler() = default; 40 virtual bool Process(AgingRequest &request) const override; 41 virtual bool NeedContinue(const AgingRequest &request) const; 42 43 private: 44 bool ProcessBundle(AgingRequest &request) const; 45 bool UpdateUsedTotalDataBytes(AgingRequest &request) const; 46 bool AgingClean( 47 const AgingBundleInfo &agingBundle, const AgingRequest &request) const; 48 bool CleanCache(const AgingBundleInfo &agingBundle) const; 49 bool GetCachePath( 50 const AgingBundleInfo &agingBundle, std::vector<std::string> &caches) const; 51 bool UnInstallBundle(const std::string &bundleName) const; 52 }; 53 } // namespace AppExecFwk 54 } // namespace OHOS 55 #endif // FOUNDATION_APPEXECFWK_SERVICES_BUNDLEMGR_INCLUDE_AGING_HANDLER_H 56