Go to the documentation of this file.
19 #ifndef GZ_COMMON_PLUGIN_HH_
20 #define GZ_COMMON_PLUGIN_HH_
26 #include <gz/common/Export.hh>
36 namespace detail {
template <
class,
class>
class ComposePlugin; }
55 public:
template <
class Interface>
56 Interface *QueryInterface();
59 public:
template <
class Interface>
60 const Interface *QueryInterface()
const;
81 public:
template <
class Interface>
82 Interface *QueryInterface(
const std::string &_interfaceName);
86 public:
template <
class Interface>
87 const Interface *QueryInterface(
95 public:
template <
class Interface>
100 public:
template <
class Interface>
122 public:
template <
class Interface>
128 public:
template <
class Interface>
137 public:
template <
class Interface>
138 bool HasInterface()
const;
145 public:
bool HasInterface(
const std::string &_interfaceName)
const;
152 template <
class,
class>
friend class detail::ComposePlugin;
159 private:
void *PrivateGetInterface(
163 private:
void PrivateCopyPluginInstance(
const Plugin &_other)
const;
166 private:
void PrivateSetPluginInstance(
const PluginInfo *_info)
const;
180 private: InterfaceMap::iterator PrivateGetOrCreateIterator(
189 public:
virtual ~
Plugin();
194 #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:151
Holds info required to construct a plugin.
Definition: gz/common/PluginInfo.hh:38
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:53
#define IGN_COMMON_WARN_RESUME__DLL_INTERFACE_MISSING
Definition: gz/common/SuppressWarning.hh:68
Definition: gz/common/Plugin.hh:38