1a1db01bdSopenharmony_ci/* 2a1db01bdSopenharmony_ci * Copyright (c) 2020 Huawei Device Co., Ltd. 3a1db01bdSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4a1db01bdSopenharmony_ci * you may not use this file except in compliance with the License. 5a1db01bdSopenharmony_ci * You may obtain a copy of the License at 6a1db01bdSopenharmony_ci * 7a1db01bdSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8a1db01bdSopenharmony_ci * 9a1db01bdSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10a1db01bdSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11a1db01bdSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12a1db01bdSopenharmony_ci * See the License for the specific language governing permissions and 13a1db01bdSopenharmony_ci * limitations under the License. 14a1db01bdSopenharmony_ci */ 15a1db01bdSopenharmony_ci 16a1db01bdSopenharmony_ci#ifndef FOUNDATION_APP_MANAGER_H 17a1db01bdSopenharmony_ci#define FOUNDATION_APP_MANAGER_H 18a1db01bdSopenharmony_ci 19a1db01bdSopenharmony_ci#include <vector> 20a1db01bdSopenharmony_ci 21a1db01bdSopenharmony_ci#include "app_record.h" 22a1db01bdSopenharmony_ci#include "bundle_info.h" 23a1db01bdSopenharmony_ci#include "client/app_spawn_client.h" 24a1db01bdSopenharmony_ci#include "nocopyable.h" 25a1db01bdSopenharmony_ci 26a1db01bdSopenharmony_cinamespace OHOS { 27a1db01bdSopenharmony_ciclass AppManager : public NoCopyable { 28a1db01bdSopenharmony_cipublic: 29a1db01bdSopenharmony_ci static AppManager &GetInstance() 30a1db01bdSopenharmony_ci { 31a1db01bdSopenharmony_ci static AppManager instance; 32a1db01bdSopenharmony_ci return instance; 33a1db01bdSopenharmony_ci } 34a1db01bdSopenharmony_ci ~AppManager() = default; 35a1db01bdSopenharmony_ci AppRecord *StartAppProcess(const BundleInfo &bundleInfo); 36a1db01bdSopenharmony_ci AbilityMsStatus TerminateAppProcess(const char *bundleName); 37a1db01bdSopenharmony_ci const AppRecord *GetAppRecordByToken(uint64_t token, pid_t callingPid); 38a1db01bdSopenharmony_ci AppRecord *GetAppRecordByBundleName(const char *bundleName); 39a1db01bdSopenharmony_ci void RemoveAppRecord(const AppRecord &appRecord); 40a1db01bdSopenharmony_ci void RemoveAppRecord(const char *bundleName); 41a1db01bdSopenharmony_ciprivate: 42a1db01bdSopenharmony_ci AppManager() = default; 43a1db01bdSopenharmony_ci AppSpawnClient spawnClient_; 44a1db01bdSopenharmony_ci std::vector<AppRecord *> appRecords_; 45a1db01bdSopenharmony_ci}; 46a1db01bdSopenharmony_ci} // namespace OHOS 47a1db01bdSopenharmony_ci#endif // FOUNDATION_APP_MANAGER_H 48