19 #ifndef IGNITION_COMMON_PLUGIN_HH_ 20 #define IGNITION_COMMON_PLUGIN_HH_ 26 #include <ignition/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();
This class manages the lifecycle of a plugin instance. It can receive a plugin instance from the Plug...
Definition: PluginPtr.hh:53
#define IGN_COMMON_WARN_RESUME__DLL_INTERFACE_MISSING
Definition: SuppressWarning.hh:67
friend class SpecializedPlugin
Definition: Plugin.hh:151
Holds info required to construct a plugin.
Definition: PluginInfo.hh:38
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: SuppressWarning.hh:64