19 #ifndef IGNITION_PLUGIN_PLUGIN_HH_ 20 #define IGNITION_PLUGIN_PLUGIN_HH_ 26 #include <ignition/utilities/SuppressWarning.hh> 28 #include <ignition/plugin/Export.hh> 37 template <
class,
class>
class ComposePlugin;
38 template <
class>
class SelectSpecializers;
40 class EnablePluginFromThis;
62 public:
template <
class Interface>
63 Interface *QueryInterface();
66 public:
template <
class Interface>
67 const Interface *QueryInterface()
const;
71 public:
template <
class Interface>
77 public:
template <
class Interface>
79 const Interface *QueryInterface(
101 public:
template <
class Interface>
106 public:
template <
class Interface>
111 public:
template <
class Interface>
118 public:
template <
class Interface>
126 public:
template <
class Interface>
127 bool HasInterface()
const;
142 public:
bool HasInterface(
const std::string &_interfaceName,
143 const bool _demangled =
true)
const;
154 template <
class,
class>
friend class detail::ComposePlugin;
155 template <
class>
friend class detail::SelectSpecializers;
165 private:
void *PrivateQueryInterface(
169 private:
void PrivateCopyPluginInstance(
const Plugin &_other)
const;
176 private:
void PrivateCopyPluginInstance(
185 private:
void PrivateCreatePluginInstance(
205 private: InterfaceMap::iterator PrivateGetOrCreateIterator(
208 class Implementation;
209 IGN_UTILS_WARN_IGNORE__DLL_INTERFACE_MISSING
212 IGN_UTILS_WARN_RESUME__DLL_INTERFACE_MISSING
215 public:
virtual ~
Plugin();
220 #include "ignition/plugin/detail/Plugin.hh"
friend class WeakPluginPtr
Definition: Plugin.hh:157
friend class SpecializedPlugin
Definition: Plugin.hh:153
friend class EnablePluginFromThis
Definition: Plugin.hh:156
This class manages the lifecycle of a plugin instance. It can receive a plugin instance from the Load...
Definition: PluginPtr.hh:52
Definition: EnablePluginFromThis.hh:25