14#elif defined(__unix__)
18 #error "Not supported operating system"
44 static std::shared_ptr<Plugin>
load(std::string file);
77 bool loadPlugin(
const std::string& pluginName);
81 std::shared_ptr<Plugin>
getPlugin(
const char* pluginName);
86 using PluginMap = std::map<std::string, std::shared_ptr<Plugin>>;
static std::shared_ptr< Plugin > load(std::string file)
std::string mFile
Shared library file name.
bool mIsLoaded
Flag to indicate whether plugin (shared library) is loaded into current process.
PluginEntry * mEntryPoint
Pointer to shared library factory class returned by the DLL entry-point function.
Plugin(Plugin const &)=delete
PluginEntry * getInfo() const
Plugin & operator=(const Plugin &)=delete
PluginEntry *(*)() PluginEntryFunc
Function pointer to DLL entry-point.
static constexpr const char * PluginEntryName
Name of DLL entry point that a Plugin should export.
void * mHnd
Shared library handle.
std::map< std::string, std::shared_ptr< Plugin > > PluginMap
static PluginManager * instance()
bool loadPlugin(const std::string &pluginName)
void loadPluginByPath(const std::string &pathName)
std::shared_ptr< Plugin > getPlugin(const char *pluginName)
static std::atomic< PluginManager * > pInstance
std::string getExtension() const
This is an implementation of AdditiveCCD based on peridyno.