29 #ifndef ABSTRACTPLUGINLOADER_H_
30 #define ABSTRACTPLUGINLOADER_H_
77 INVALID_PLUGIN_FORMAT = 3,
82 PLUGIN_NOT_LOADED = 5,
86 DUPLICATE_INSTANCE_NAME = 7,
88 INCOMPATIBLE_BUILD_TYPE = 8,
91 VERSION_INFORMATION_MISSING = 9,
94 VERSION_MISSMATCH = 10,
105 const std::string & pluginName =
"", ErrorCode err = OTHER);
109 const std::string & getPluginName()
const;
113 ErrorCode getErrorCode()
const;
120 std::
string _nameOfPlugin;
137 std::vector<std::
string> &plpaths, std::
string& lSuffix,
154 virtual
void unload() throw (PluginException) = 0;
158 virtual const std::
string& getName() const;
174 throw (PluginException);
182 throw (PluginException);
Interface for a plugin manager.
forstatement_DECLDIR ParameteredObject::build_type getBuildType()
Report build configuration to prevent linking of incompatibel runtime libs.
forstatement_DECLDIR void destroy(ParameteredObject *b)
Deletes an instance of the plugin.
build_type
defined build type
template_type
Integer which represents a template type.
Base class for serializable objects.
Convenience file to iclude all ParameteredObject dependencies and Template functions.
std::vector< std::string > & pluginPaths
Paths where the plugins are stored.
std::string pluginName
The name of the Plugin (without prefix "lib" and without extension)
charon_DEPRECATED typedef ParameteredObject::template_type template_type
for transition to ParameteredObject::template_type
std::string & libSuffix
Lib suffix e.g. _d for debug builds.
PluginVersionCheckLevel
info how to handle version information
PluginManagerInterface::PluginVersionCheckLevel _versionCheck
should the Loader ignore embedded charon-core version strings?
ErrorCode
Error Reason Enum.
#define charon_plugins_DLL_PUBLIC
Preprocessor macro to define this class/function as public visible, i.e.
Abstract base class for a plugin loader.