NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
plugin_manager类 参考

插件管理器单例类 更多...

#include <plugin_manager.hpp>

Public 类型

using library_ptr = unique_ptr<dynamic_library>
 动态库指针类型

Public 成员函数

 ~plugin_manager ()
 析构函数,关闭所有插件
size_t load_plugins (const string &pth)
 从目录加载所有插件
void load_plugin (string_view pth)
 加载单个插件
bool unload_plugin (const string &name)
 卸载插件
NEFORCE_NODISCARD ipluginget_plugin (const string &name)
 获取插件实例
NEFORCE_NODISCARD vector< stringlist_plugins () const
 获取所有已加载插件名称
void initialize_all ()
 初始化所有插件
void shutdown_all () noexcept
 关闭所有插件

静态 Public 成员函数

static plugin_managerinstance ()
 获取单例实例

详细描述

插件管理器单例类

负责插件的加载、卸载和生命周期管理。 维护插件实例、动态库句柄和插件名称之间的映射关系。

在文件 plugin_manager.hpp31 行定义.

成员函数说明

◆ get_plugin()

NEFORCE_NODISCARD iplugin * plugin_manager::get_plugin ( const string & name)

获取插件实例

参数
name插件名称
返回
插件指针,如果插件不存在返回nullptr

引用了 name().

◆ initialize_all()

void plugin_manager::initialize_all ( )

初始化所有插件

调用所有已加载插件的 initialize 方法。

◆ instance()

plugin_manager & plugin_manager::instance ( )
inlinestatic

获取单例实例

返回
插件管理器实例引用

在文件 plugin_manager.hpp61 行定义.

◆ list_plugins()

NEFORCE_NODISCARD vector< string > plugin_manager::list_plugins ( ) const

获取所有已加载插件名称

返回
插件名称列表

◆ load_plugin()

void plugin_manager::load_plugin ( string_view pth)

加载单个插件

参数
pth插件库文件路径
异常
system_exception插件已加载或加载失败时抛出

加载指定的动态库,获取插件的创建和销毁函数, 创建插件实例并注册到管理器。

◆ load_plugins()

size_t plugin_manager::load_plugins ( const string & pth)

从目录加载所有插件

参数
pth插件目录路径
返回
成功加载的插件数量
异常
value_exception目录无效时抛出
system_exception插件已加载或加载失败时抛出

加载指定目录中所有符合条件的动态库文件。

◆ shutdown_all()

void plugin_manager::shutdown_all ( )
noexcept

关闭所有插件

调用所有已加载插件的 shutdown 方法, 并清理所有资源。

◆ unload_plugin()

bool plugin_manager::unload_plugin ( const string & name)

卸载插件

参数
name插件名称
返回
是否成功卸载

关闭指定的插件,释放相关资源。

引用了 name().


该类的文档由以下文件生成: