Go to the documentation of this file.
19 #ifndef IGNITION_COMMON_PLUGIN_HH_
20 #define IGNITION_COMMON_PLUGIN_HH_
26 #include <gz/common/config.hh>
27 #include <gz/common/Export.hh>
37 namespace detail {
template <
class,
class>
class ComposePlugin; }
56 public:
template <
class Interface>
57 Interface *QueryInterface();
60 public:
template <
class Interface>
61 const Interface *QueryInterface()
const;
82 public:
template <
class Interface>
83 Interface *QueryInterface(
const std::string &_interfaceName);
87 public:
template <
class Interface>
88 const Interface *QueryInterface(
96 public:
template <
class Interface>
101 public:
template <
class Interface>
123 public:
template <
class Interface>
129 public:
template <
class Interface>
138 public:
template <
class Interface>
139 bool HasInterface()
const;
146 public:
bool HasInterface(
const std::string &_interfaceName)
const;
153 template <
class,
class>
friend class detail::ComposePlugin;
160 private:
void *PrivateGetInterface(
164 private:
void PrivateCopyPluginInstance(
const Plugin &_other)
const;
167 private:
void PrivateSetPluginInstance(
const PluginInfo *_info)
const;
181 private: InterfaceMap::iterator PrivateGetOrCreateIterator(
190 public:
virtual ~
Plugin();
195 #include "gz/common/detail/Plugin.hh"
Forward declarations for the common classes.
#define IGN_COMMON_WARN_IGNORE__DLL_INTERFACE_MISSING
Microsoft Visual Studio does not automatically export the interface information for member variables ...
Definition: gz/common/SuppressWarning.hh:65
friend class SpecializedPlugin
Definition: gz/common/Plugin.hh:152
Holds info required to construct a plugin.
Definition: gz/common/PluginInfo.hh:40
virtual ~Plugin()
Virtual destructor.
bool HasInterface() const
Returns true if this Plugin has the specified type of interface. Note that this function only works w...
std::shared_ptr< Interface > QueryInterfaceSharedPtr()
Get the requested interface as a std::shared_ptr. Note that this function only works when the Interfa...
Interface * QueryInterface()
Get an interface of the specified type. Note that this function only works when the Interface type is...
This class manages the lifecycle of a plugin instance. It can receive a plugin instance from the igni...
Definition: gz/common/PluginPtr.hh:54
#define IGN_COMMON_WARN_RESUME__DLL_INTERFACE_MISSING
Definition: gz/common/SuppressWarning.hh:68
Definition: gz/common/Plugin.hh:39