37 class AbstractExtensionInterface;
44 #pragma clang diagnostic push
45 #pragma clang diagnostic ignored "-Wreturn-type-c-linkage"
47 class BasePluginInterface;
50 #pragma clang diagnostic pop
91 virtual std::string get_description()
const;
98 virtual std::set<std::string> get_dependencies()
const;
105 template<
typename... Args>
114 virtual void on_load();
119 virtual void on_unload();
125 virtual void initialize_logging();
131 virtual std::vector<AbstractExtensionInterface*> get_extensions()
const;
142 T* retval =
dynamic_cast<T*
>(aeif);
void log(const Args &... args) const
virtual std::string get_name() const =0
std::vector< AbstractExtensionInterface * > m_extensions
virtual std::string get_version() const =0
T * get_first_extension() const
BasePluginInterface()=default
#define log_info(channel,...)
std::unique_ptr< BasePluginInterface > create_plugin_instance()
std::unique_ptr< BasePluginInterface >(*)() instantiate_plugin_function