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(
99 public:
template <
class Interface>
104 public:
template <
class Interface>
109 public:
template <
class Interface>
116 public:
template <
class Interface>
124 public:
template <
class Interface>
125 bool HasInterface()
const;
140 public:
bool HasInterface(
const std::string &_interfaceName,
141 const bool _demangled =
true)
const;
152 template <
class,
class>
friend class detail::ComposePlugin;
153 template <
class>
friend class detail::SelectSpecializers;
163 private:
void *PrivateQueryInterface(
167 private:
void PrivateCopyPluginInstance(
const Plugin &_other)
const;
174 private:
void PrivateCopyPluginInstance(
183 private:
void PrivateCreatePluginInstance(
203 private: InterfaceMap::iterator PrivateGetOrCreateIterator(
206 class Implementation;
207 IGN_UTILS_WARN_IGNORE__DLL_INTERFACE_MISSING
210 IGN_UTILS_WARN_RESUME__DLL_INTERFACE_MISSING
213 public:
virtual ~
Plugin();
218 #include "ignition/plugin/detail/Plugin.hh"
friend class WeakPluginPtr
Definition: Plugin.hh:155
friend class SpecializedPlugin
Definition: Plugin.hh:151
friend class EnablePluginFromThis
Definition: Plugin.hh:154
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