#include <PluginLoader.h>
Public Member Functions | |
| virtual void | add_config_paths (const std::string &colon_paths)=0 |
| Inject search paths from the eOn config file. | |
| virtual bool | lib_present (const char *lib_base) const =0 |
| Filesystem probe: a matching library file is on the configured search path. | |
| virtual const std::vector< std::string > & | search_paths () const noexcept=0 |
| Get the current search paths (for diagnostics). | |
| virtual void | throw_not_found (const char *lib_base, const char *description) const =0 |
| Throw a descriptive error for a missing potential library. | |
| template<typename Fn> | |
| Fn | load_sym (const char *lib_base, const char *sym_name) |
| Load a symbol from a named potential library. | |
| virtual | ~IPluginLoader ()=default |
| IPluginLoader (const IPluginLoader &)=delete | |
| IPluginLoader & | operator= (const IPluginLoader &)=delete |
Protected Member Functions | |
| IPluginLoader ()=default | |
| virtual dynlib::Handle | open_lib (const char *lib_base)=0 |
Definition at line 44 of file PluginLoader.h.
|
virtualdefault |
|
delete |
|
protecteddefault |
|
pure virtual |
Inject search paths from the eOn config file.
| colon_paths | colon-separated directory list (may be empty) These paths are inserted before the EON_POTENTIALS_PATH paths. |
Implemented in eonc::PluginLoader.
|
nodiscardpure virtual |
Filesystem probe: a matching library file is on the configured search path.
Does not dlopen, so plugin static initializers (banners) do not run.
Implemented in eonc::PluginLoader.
|
inline |
Load a symbol from a named potential library.
| lib_base | Base name without platform prefix/suffix (e.g. "eon_sw") |
| sym_name | Symbol to load (e.g. "sw_") |
Definition at line 69 of file PluginLoader.h.
|
protectedpure virtual |
Implemented in eonc::PluginLoader.
|
delete |
|
nodiscardpure virtualnoexcept |
Get the current search paths (for diagnostics).
Implemented in eonc::PluginLoader.
|
pure virtual |
Throw a descriptive error for a missing potential library.
Implemented in eonc::PluginLoader.