Sese Framework  x.y.z
A cross-platform framework
载入中...
搜索中...
未找到
sese::plugin::Module类 参考

插件模块对象 更多...

#include <Module.h>

Public 类型

using Ptr = std::unique_ptr<Module>
 
using LibraryObject = sese::system::LibraryObject
 

Public 成员函数

const char * getName () noexcept
 
const char * getVersion () noexcept
 
const char * getDescription () noexcept
 
BaseClass::Ptr createClass (const std::string &id) noexcept
 
template<typename TYPE >
std::shared_ptr< TYPE > createClassAs (const std::string &name)
 
const ClassFactory::RegisterInfoMapTypegetRegisterClassInfo () noexcept
 

静态 Public 成员函数

static Module::Ptr open (const std::string &path) noexcept
 
static Result< PtropenEx (const std::string &path) noexcept
 
static Module::Ptr openWithPath (const system::Path &path) noexcept
 

Private 成员函数

 Module ()=default
 

Private 属性

LibraryObject::Ptr object = nullptr
 
ModuleInfoinfo = nullptr
 
ClassFactoryfactory = nullptr
 

详细描述

插件模块对象

成员类型定义说明

◆ LibraryObject

◆ Ptr

using sese::plugin::Module::Ptr = std::unique_ptr<Module>

构造及析构函数说明

◆ Module()

sese::plugin::Module::Module ( )
privatedefault

成员函数说明

◆ createClass()

sese::plugin::BaseClass::Ptr sese::plugin::Module::createClass ( const std::string & id)
noexcept

使用模块的类工厂构建一个对象

参数
id对象标识符
返回值
nullptr实例化错误

被这些函数引用 createClassAs().

◆ createClassAs()

template<typename TYPE >
std::shared_ptr< TYPE > sese::plugin::Module::createClassAs ( const std::string & name)
inline

使用模块的类工厂构建一个对象并转换为指定类型

模板参数
TYPE指定类型
参数
name对象标识符
返回值
nullptr实例化错误

引用了 createClass().

◆ getDescription()

const char * sese::plugin::Module::getDescription ( )
noexcept

获取模块描述

返回
模块描述

◆ getName()

const char * sese::plugin::Module::getName ( )
noexcept

获取模块名称

返回
模块名称

引用了 info , 以及 sese::plugin::ModuleInfo::moduleName.

◆ getRegisterClassInfo()

const sese::plugin::ClassFactory::RegisterInfoMapType & sese::plugin::Module::getRegisterClassInfo ( )
noexcept

获取模块已注册类类型信息

返回
类型信息

◆ getVersion()

const char * sese::plugin::Module::getVersion ( )
noexcept

获取模块版本

返回
模块版本

◆ open()

sese::plugin::Module::Ptr sese::plugin::Module::open ( const std::string & path)
staticnoexcept

尝试从动态链接库中加载一个模块

参数
path动态链接库路径
返回值
nullptr加载错误

引用了 GET_CLASS_FACTORY_FUNC_NAME, GET_MODULE_INFO_FUNC_NAME, MAKE_UNIQUE_PRIVATE , 以及 STR2.

被这些函数引用 openWithPath().

◆ openEx()

sese::Result< sese::plugin::Module::Ptr > sese::plugin::Module::openEx ( const std::string & path)
staticnoexcept

引用了 open().

◆ openWithPath()

sese::plugin::Module::Ptr sese::plugin::Module::openWithPath ( const system::Path & path)
staticnoexcept

尝试从动态链接库中加载一个模块

参数
path动态链接库路径
返回值
nullptr加载错误

引用了 open().

类成员变量说明

◆ factory

ClassFactory* sese::plugin::Module::factory = nullptr
private

◆ info

ModuleInfo* sese::plugin::Module::info = nullptr
private

被这些函数引用 getName().

◆ object

LibraryObject::Ptr sese::plugin::Module::object = nullptr
private

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