Ignition Common

API Reference

3.0.0
detail/PluginMacros.hh File Reference
#include <string>
#include <typeinfo>
#include <type_traits>
#include <unordered_set>
#include <utility>
#include "ignition/common/PluginInfo.hh"
#include "ignition/common/SuppressWarning.hh"

Go to the source code of this file.

Macros

#define DETAIL_IGN_COMMON_ADD_PLUGIN(pluginName, interface)
 
#define DETAIL_IGN_COMMON_BEGIN_ADDING_PLUGINS
 
#define DETAIL_IGN_COMMON_FINISH_ADDING_PLUGINS
 
#define DETAIL_IGN_COMMON_REGISTER_PLUGININFO_META_DATA
 Register the PluginInfo meta data. More...
 
#define DETAIL_IGN_COMMON_SPECIALIZE_INTERFACE(interfaceName)
 
#define DETAIL_IGN_PLUGIN_VISIBLE
 

Macro Definition Documentation

◆ DETAIL_IGN_COMMON_ADD_PLUGIN

#define DETAIL_IGN_COMMON_ADD_PLUGIN (   pluginName,
  interface 
)

◆ DETAIL_IGN_COMMON_BEGIN_ADDING_PLUGINS

#define DETAIL_IGN_COMMON_BEGIN_ADDING_PLUGINS

◆ DETAIL_IGN_COMMON_FINISH_ADDING_PLUGINS

#define DETAIL_IGN_COMMON_FINISH_ADDING_PLUGINS
Value:
if (_pluginId >= visitedPlugins.size()) /* NOLINT(*) */ \
{ \
if (plugin) \
delete plugin; \
return 0u; \
} \
return visitedPlugins.size() - _pluginId; \
} \
IGN_COMMON_WARN_RESUME__DELETE_NON_VIRTUAL_DESTRUCTOR

◆ DETAIL_IGN_COMMON_REGISTER_PLUGININFO_META_DATA

#define DETAIL_IGN_COMMON_REGISTER_PLUGININFO_META_DATA
Value:
extern "C" { \
std::size_t DETAIL_IGN_PLUGIN_VISIBLE IGNCOMMONPluginInfoSize = \
sizeof(PluginInfo); \
\
std::size_t DETAIL_IGN_PLUGIN_VISIBLE IGNCOMMONPluginInfoAlignment = \
alignof(PluginInfo); \
\
int DETAIL_IGN_PLUGIN_VISIBLE IGNCOMMONPluginAPIVersion = \
PLUGIN_API_VERSION; \
}
#define DETAIL_IGN_PLUGIN_VISIBLE
Definition: detail/PluginMacros.hh:41

Register the PluginInfo meta data.

◆ DETAIL_IGN_COMMON_SPECIALIZE_INTERFACE

#define DETAIL_IGN_COMMON_SPECIALIZE_INTERFACE (   interfaceName)
Value:
#interfaceName " must be fully qualified like ::ns::MyClass"); \
static constexpr const char* IGNCOMMONInterfaceName = #interfaceName;

◆ DETAIL_IGN_PLUGIN_VISIBLE

#define DETAIL_IGN_PLUGIN_VISIBLE