.. index:: pair: class; rgpot::plugin::PluginRegistry .. _doxid-classrgpot_1_1plugin_1_1_plugin_registry: class rgpot::plugin::PluginRegistry =================================== .. toctree:: :hidden: Overview ~~~~~~~~ .. ref-code-block:: cpp :class: doxyrest-overview-code-block class PluginRegistry { public: // construction :target:`PluginRegistry`(const PluginRegistry&); // methods static PluginRegistry& :target:`instance`(); void :ref:`discover`(); bool :ref:`load_plugin`(const std::string& path); void :ref:`register_builtin`(const :ref:`rgpot_plugin_descriptor_t`* desc); std::vector :target:`list_plugins`() const; const :ref:`LoadedPlugin`* :ref:`find`(const std::string& name) const; std::shared_ptr :ref:`retain_library`(const :ref:`rgpot_plugin_descriptor_t`* desc) const; PluginRegistry& :target:`operator=`(const PluginRegistry&); private: // construction :target:`~PluginRegistry`(); }; .. _details-classrgpot_1_1plugin_1_1_plugin_registry: Detailed Documentation ~~~~~~~~~~~~~~~~~~~~~~ Methods ------- .. index:: pair: function; discover .. _doxid-classrgpot_1_1plugin_1_1_plugin_registry_1a226b693460d760b022367be5cedbe8d4: .. ref-code-block:: cpp :class: doxyrest-title-code-block void discover() Load descriptors from the directories named by RGPOT_PLUGIN_PATH. .. index:: pair: function; load_plugin .. _doxid-classrgpot_1_1plugin_1_1_plugin_registry_1a6103856eb6d4473ee6391d982358191e: .. ref-code-block:: cpp :class: doxyrest-title-code-block bool load_plugin(const std::string& path) Return false for an invalid library or an existing plugin name. .. index:: pair: function; register_builtin .. _doxid-classrgpot_1_1plugin_1_1_plugin_registry_1aa35f6bb477d255d55603b2211b080ad5: .. ref-code-block:: cpp :class: doxyrest-title-code-block void register_builtin(const :ref:`rgpot_plugin_descriptor_t`* desc) The descriptor and callbacks must have static lifetime. .. index:: pair: function; find .. _doxid-classrgpot_1_1plugin_1_1_plugin_registry_1a9d602d93fba0e95c9a94dd203cc87a74: .. ref-code-block:: cpp :class: doxyrest-title-code-block const :ref:`LoadedPlugin`* find(const std::string& name) const Returned entries remain valid across further registrations. .. index:: pair: function; retain_library .. _doxid-classrgpot_1_1plugin_1_1_plugin_registry_1aae4ed7fd011567b05580a79f248fcb06: .. ref-code-block:: cpp :class: doxyrest-title-code-block std::shared_ptr retain_library(const :ref:`rgpot_plugin_descriptor_t`* desc) const Keep a registered descriptor's library mapped for a live instance.