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.