1020a203aSopenharmony_ci/* 2020a203aSopenharmony_ci * Copyright (c) 2021-2022 Huawei Device Co., Ltd. 3020a203aSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4020a203aSopenharmony_ci * you may not use this file except in compliance with the License. 5020a203aSopenharmony_ci * You may obtain a copy of the License at 6020a203aSopenharmony_ci * 7020a203aSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8020a203aSopenharmony_ci * 9020a203aSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10020a203aSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11020a203aSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12020a203aSopenharmony_ci * See the License for the specific language governing permissions and 13020a203aSopenharmony_ci * limitations under the License. 14020a203aSopenharmony_ci */ 15020a203aSopenharmony_ci#ifndef HIVIEW_PLUGIN_BUNDLE_H 16020a203aSopenharmony_ci#define HIVIEW_PLUGIN_BUNDLE_H 17020a203aSopenharmony_ci#include <string> 18020a203aSopenharmony_ci 19020a203aSopenharmony_ci#include "dynamic_module.h" 20020a203aSopenharmony_ci#include "plugin.h" 21020a203aSopenharmony_ci#include "plugin_config.h" 22020a203aSopenharmony_ci 23020a203aSopenharmony_cinamespace OHOS { 24020a203aSopenharmony_cinamespace HiviewDFX { 25020a203aSopenharmony_ciclass PluginBundle { 26020a203aSopenharmony_cipublic: 27020a203aSopenharmony_ci PluginBundle (const std::string& name, const PluginConfig& config, DynamicModule module) 28020a203aSopenharmony_ci : name_(name), config_(config), module_(module) {}; 29020a203aSopenharmony_ci ~PluginBundle (); 30020a203aSopenharmony_ci PluginBundle(const PluginBundle&) = delete; 31020a203aSopenharmony_ci PluginBundle& operator= (const PluginBundle&) = delete; 32020a203aSopenharmony_ci PluginBundle(PluginBundle&& bundle) = delete; 33020a203aSopenharmony_ci PluginBundle& operator=(PluginBundle&& bundle) = delete; 34020a203aSopenharmony_ci 35020a203aSopenharmony_ci PluginConfig GetBundleConfig() const 36020a203aSopenharmony_ci { 37020a203aSopenharmony_ci return config_; 38020a203aSopenharmony_ci } 39020a203aSopenharmony_ci 40020a203aSopenharmony_ci std::string GetName() const 41020a203aSopenharmony_ci { 42020a203aSopenharmony_ci return name_; 43020a203aSopenharmony_ci } 44020a203aSopenharmony_ci 45020a203aSopenharmony_ci void ReleaseDynamicModule(); 46020a203aSopenharmony_ciprivate: 47020a203aSopenharmony_ci std::string name_; 48020a203aSopenharmony_ci PluginConfig config_; 49020a203aSopenharmony_ci DynamicModule module_; 50020a203aSopenharmony_ci}; 51020a203aSopenharmony_ci} // namespace HiviewDFX 52020a203aSopenharmony_ci} // namespace OHOS 53020a203aSopenharmony_ci#endif // HIVIEW_BUNDLE_LIFECYCLE_MANAGER_H