Go to the documentation of this file.
19 #ifndef GZ_PLUGIN_PLUGIN_HH_
20 #define GZ_PLUGIN_PLUGIN_HH_
26 #include <gz/utilities/SuppressWarning.hh>
28 #include <gz/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 "gz/plugin/detail/Plugin.hh"
Plugin()
Default constructor. This is kept protected to discourage users from instantiating them directly....
virtual ~Plugin()
Virtual destructor.
Definition: gz/plugin/EnablePluginFromThis.hh:25
Definition: gz/plugin/Plugin.hh:43
bool HasInterface() const
Checks if this Plugin has the specified type of interface.
std::shared_ptr< Interface > QueryInterfaceSharedPtr()
Get the requested interface as a std::shared_ptr. The template argument Interface must exactly match ...
friend class EnablePluginFromThis
Definition: gz/plugin/Plugin.hh:154
friend class WeakPluginPtr
Definition: gz/plugin/Plugin.hh:155
friend class SpecializedPlugin
Definition: gz/plugin/Plugin.hh:151
const std::string * Name() const
Gets the name of this Plugin.
This class manages the lifecycle of a plugin instance. It can receive a plugin instance from the igni...
Definition: gz/plugin/PluginPtr.hh:52
Interface * QueryInterface()
Get an interface of the specified type, if it is provided by this plugin.