class rgpot::plugin::PluginRegistry¶
Overview¶
class PluginRegistry {
public:
// construction
PluginRegistry(const PluginRegistry&);
// methods
static PluginRegistry& instance();
void discover();
bool load_plugin(const std::string& path);
void register_builtin(const rgpot_plugin_descriptor_t* desc);
std::vector<std::string> list_plugins() const;
const LoadedPlugin* find(const std::string& name) const;
std::shared_ptr<void> retain_library(const rgpot_plugin_descriptor_t* desc) const;
PluginRegistry& operator=(const PluginRegistry&);
private:
// construction
~PluginRegistry();
};
Detailed Documentation¶
Methods¶
void discover()
Load descriptors from the directories named by RGPOT_PLUGIN_PATH.
bool load_plugin(const std::string& path)
Return false for an invalid library or an existing plugin name.
void register_builtin(const rgpot_plugin_descriptor_t* desc)
The descriptor and callbacks must have static lifetime.
const LoadedPlugin* find(const std::string& name) const
Returned entries remain valid across further registrations.
std::shared_ptr<void> retain_library(const rgpot_plugin_descriptor_t* desc) const
Keep a registered descriptor’s library mapped for a live instance.