Files
softbus_daemon/src/core/plugin_system/PluginHost.h
2026-04-07 14:20:04 +08:00

40 lines
827 B
C++

#pragma once
#include <memory>
#include <QHash>
#include <QString>
#include "core/plugin_system/PluginManager.h"
namespace softbus::core::plugin_system
{
class PluginHost
{
public:
struct LoadedPlugin
{
QString path;
QString protocolPluginId;
QString framerPluginId;
int abiVersion{1};
void* handle{nullptr};
};
explicit PluginHost(std::shared_ptr<PluginManager> manager);
~PluginHost();
bool loadPlugin(const QString& path, QString* err = nullptr);
bool reloadPlugin(const QString& path, QString* err = nullptr);
bool unloadPlugin(const QString& path, QString* err = nullptr);
private:
void unloadAll();
std::shared_ptr<PluginManager> m_manager;
QHash<QString, LoadedPlugin> m_loaded;
};
} // namespace softbus::core::plugin_system