18 #ifndef IGNITION_COMMON_PLUGINLOADER_HH_
19 #define IGNITION_COMMON_PLUGINLOADER_HH_
24 #include <unordered_set>
27 #include <gz/common/Export.hh>
29 #include <gz/utils/SuppressWarning.hh>
36 class PluginLoaderPrivate;
50 public:
std::
string PrettyStr() const;
54 public:
std::unordered_set<
std::
string> InterfacesImplemented() const;
59 public:
std::unordered_set<
std::
string> PluginsImplementing(
60 const
std::
string &_interface) const;
65 public:
std::unordered_set<
std::
string> LoadLibrary(
66 const
std::
string &_pathToLibrary);
72 public:
PluginPtr Instantiate(const
std::
string &_pluginName) const;
82 public: template <typename PluginPtrType>
83 PluginPtrType Instantiate(
84 const
std::
string &_pluginName) const;
91 private: const
PluginInfo *PrivateGetPluginInfo(
92 const
std::
string &_pluginName) const;
94 GZ_UTILS_WARN_IGNORE__DLL_INTERFACE_MISSING
96 private:
std::unique_ptr<PluginLoaderPrivate> dataPtr;
97 GZ_UTILS_WARN_RESUME__DLL_INTERFACE_MISSING
102 #include "ignition/common/detail/PluginLoader.hh"