8. Plugin Manager, Plugin Settings - PluginManager , PluginSetting
8.1. Plugin Manager - PluginManager
The PluginManager module facilitates loading operations of plugin that will be used with the PluginLib object. Operation includes loading plugins, closing the loaded plugins, and setting the plugin log verbosity. Any plugin loaded with the PluginManager and not explicitly closed can be used through the PluginLib object and the LMan object.
The methods associated with a PluginManager object are the following.
Begin and end an instance of an object, return object error flag
vdm_PluginManagerBegin()
- create an instance of a PluginManager objectvdm_PluginManagerEnd()
- destroy an instance of a PluginManager objectvdm_PluginManagerError()
- return PluginManager object error flagvdm_PluginManagerSetErrorLevel()
- set the verbosity of the log
Load plugins
vdm_PluginManagerLoadPlugin()
- define the path to the plugin binary file to be loadedvdm_PluginManagerLoadPluginSettings()
- fill a pluginsettings object with the settings of a given plugin
Close plugins
vdm_PluginManagerShutdown()
- remove and close all loaded plugins
Instance a PluginManager object using vdm_PluginLibBegin()
.
Once instanced set pointers to abstract data functions using
vdm_PluginLibDataFun()
.
8.1.1. Function Descriptions
The currently available PluginManager functions are described in detail in this section.
-
vdm_PluginManager *vdm_PluginManagerBegin(void)
create an instance of a PluginManager object
Create an instance of a PluginManager object. Memory is allocated for the object private data and the pointer to the data is returned.
Destroy an instance of a PluginManager object using
void vdm_PluginManagerEnd (vdm_PluginManager *PluginManager)
Return the current value of a PluginManager object error flag using
Vint vdm_PluginManagerError (vdm_PluginManager *PluginManager)
- Returns:
The function returns a pointer to the newly created PluginManager object. If the object creation fails, NULL is returned.
-
void vdm_PluginManagerEnd(vdm_PluginManager *p)
end an instance of a PluginManager object
-
void vdm_PluginManagerShutdown(vdm_PluginManager *p)
clear the current instance of loaded plugins
-
void vdm_PluginManagerLoadPlugin(vdm_PluginManager *p, Vchar *pathToPluginLibraryWithoutExtension)
load a pluginlibrary
Load a pluginlibrary. The path to the plugin library to load must not include the library extension: .dll, .so or .dylib.
- Parameters:
p – Pointer to PluginManager object.
pathToPluginLibraryWithoutExtension – Path to the plugin to load.
-
void vdm_PluginManagerLoadPluginSettings(vdm_PluginManager *p, Vchar *fileMask, vdm_PluginSettings *pluginSettings)
load the plugin settings (initialization options)
Load the initialization options a given plugin can have. The plugin must have been already Loaded This initialization options can be used to specify the behavior of a given plugin if injected in the vdm_dataFunApplySettings using the vdm_Setting object.
- Parameters:
p – Pointer to PluginManager object.
fileMask – Vchar extension i.e (“.vtu”) to identify from the loaded plugins.
pluginSettings – Pointer to PluginSettings object.
-
Vint vdm_PluginManagerError(vdm_PluginManager *p)
return the current value of a PluginManager object error flag
Report total number of errors notified. This will reset the counter to zero after
- Parameters:
p – Pointer to PluginManager object.
- Returns:
Integer error count
-
void vdm_PluginManagerSetErrorLevel(vdm_PluginManager *p, Vint errorLevel)
set plugin manager error level
- Parameters:
p – Pointer to PluginManager object.
errorLevel – Error level for the plugin manager
=0 No log (default) =1 Error =2 Warning =3 Info =4 Debug
-
Vint vdm_PluginManagerGetErrorLevel(vdm_PluginManager *p)
return plugin manager error level
- Parameters:
p – Pointer to PluginManager object.
- Returns:
Integer error level
8.2. Plugin Settings - PluginSetting
The PluginSettings module facilitates loading dynamically the initialization options of a plugin previously loaded uisng the PluginManager. Those settings can be edited and injected to configure the opening behvior of the PluginLib object.
The methods associated with a PluginSettings object are the following.
Begin and end an instance of an object, return object error flag
vdm_PluginSettingsBegin()
- create an instance of a PluginSettings objectvdm_PluginSettingsEnd()
- destroy an instance of a PluginSettings objectvdm_PluginSettingsError()
- return PluginSettings object error flag
Plugin Settings Definitions
vdm_PluginSettingsDef()
- define string identifier for the settingsvdm_PluginSettingsPushString()
- place an string in the settings containervdm_PluginSettingsPushDouble()
- place an double in the settings containervdm_PluginSettingsPushInteger()
- place an integer in the settings container
Plugin Settings query methods
vdm_PluginSettingsInq()
- get the name identifiervdm_PluginSettingsCount()
- get number of contained keysvdm_PluginSettingsGetInteger()
- find the integer at a specified locationvdm_PluginSettingsGetDouble()
- find the double at a specified locationvdm_PluginSettingsGetString()
- find the string at a specified locationvdm_PluginSettingsPrint()
- print the content of the container
Instance a PluginSettings object using vdm_PluginSettingsBegin()
.
Once instanced set pointers to abstract data functions using
vdm_PluginMangagerLoadPluginSettings()
.
8.2.1. Function Descriptions
The currently available PluginSettings functions are described in detail in this section.
-
vdm_PluginSettings *vdm_PluginSettingsBegin(void)
create an instance of a PlugingSettings object
Create an instance of a PluginSettings object. Memory is allocated for the object private data and the pointer to the data is returned.
Destroy an instance of a PluginSettings object using
void vdm_PluginSettingsEnd (vdm_PlugingSettings *plugingsettings)
- Returns:
The function returns a pointer to the newly created PluginSettings object. If the object creation fails, NULL is returned.
-
void vdm_PluginSettingsEnd(vdm_PluginSettings *p)
destroy an instance of a PluginSettings object
-
Vint vdm_PluginSettingsError(vdm_PluginSettings *p)
return the current value of a PluginSettings object error flag
-
void vdm_PluginSettingsDef(vdm_PluginSettings *p, Vchar *idstring)
define string identifier for the settings
Suggest a name for the plugin settings. Usually the name used is the providerId
Find the idstring name which may be managed with the presently allocated storage using
void vdm_PluginSettingsInq (const vdm_PluginSettings *p, Vchar *idstring)
- Parameters:
p – Pointer to DblHash object.
idstring – name to identify the current plugin settings
-
void vdm_PluginSettingsInq(vdm_PluginSettings *p, Vchar *idstring)
get the name identifier storage
-
Vint vdm_PluginSettingsCount(vdm_PluginSettings *p, Vint *integerkeyCount, Vint *doublekeyCount, Vint *stringkeyCount)
get number of contained keys
Get the number of total keys as well as the number of integer, doubles and string keys which have been inserted using method Push.
- Parameters:
p – Pointer to PluginSettings object.
integerkeyCount – [out] Number of integer keys held the in PluginSettings object.
doublekeyCount – [out] Number of double keys held the in PluginSettings object.
stringkeyCount – [out] Number of string keys held the in PluginSettings object.
- Returns:
Number of total keys held the in PluginSettings object.
-
void vdm_PluginSettingsGetInteger(vdm_PluginSettings *p, Vint integerIndex, Vchar *key, Vchar *description, Vint *value)
find the integer at a specified location
Get the integer value associated the specified key. Returns a SYS_INT_UNDEFINED value if no data has been entered with this key.
- Parameters:
p – Pointer to PluginSettings object.
integerIndex – Integer index values.
key – [out] string value used as key.
description – [out] string description associated with key.
value – [out] Integer value associated with key.
-
void vdm_PluginSettingsPushInteger(vdm_PluginSettings *p, Vchar *key, Vchar *description, Vint value)
place an integer in the settings container
Place the integer value in the PluginSettings object. Associate the integer key value with this new integer, and replace any integer which may have been previously associated with this same key.
The only mandatory fields are the key and the value. The description is used to help the caller to understand better what the given key is suppose to do for the plugin.
- Parameters:
p – Pointer to PluginSettings object.
key – string value used as key .
description – string value used as description .
value – Integer, used as value
-
void vdm_PluginSettingsGetDouble(vdm_PluginSettings *p, Vint doubleIndex, Vchar *key, Vchar *description, Vdouble *value)
find the double at a specified location
Get the double value associated the specified key. Returns a SYS_DOUBLE_UNDEFINED value if no data has been entered with this key.
- Parameters:
p – Pointer to PluginSettings object.
doubleIndex – Double index values.
key – [out] string value used as key.
description – [out] string description associated with key.
value – [out] double value associated with key.
-
void vdm_PluginSettingsPushDouble(vdm_PluginSettings *p, Vchar *key, Vchar *description, double value)
place an double in the settings container
Place the double value in the PluginSettings object. Associate the double key value with this new double, and replace any double which may have been previously associated with this same key.
The only mandatory fields are the key and the value. The description is used to help the caller to understand better what the given key is suppose to do for the plugin.
- Parameters:
p – Pointer to PluginSettings object.
key – string value used as key .
description – string value used as description .
value – double, used as value
-
void vdm_PluginSettingsGetString(vdm_PluginSettings *p, Vint stringIndex, Vchar *key, Vchar *description, Vchar *value)
find the string at a specified location
Get the string value associated the specified key. Returns a null string value if no data has been entered with this key.
- Parameters:
p – Pointer to PluginSettings object.
stringIndex – String index values.
key – [out] string value used as key.
description – [out] string description associated with key.
value – [out] string value associated with key.
-
void vdm_PluginSettingsPushString(vdm_PluginSettings *p, Vchar *key, Vchar *description, Vchar *value)
place an string in the settings container
Place the string value in the PluginSettings object. Associate the string key value with this new string, and replace any string which may have been previously associated with this same key.
The only mandatory fields are the key and the value. The description is used to help the caller to understand better what the given key is suppose to do for the plugin.
- Parameters:
p – Pointer to PluginSettings object.
key – string value used as key .
description – string value used as description .
value – string, used as value
-
void vdm_PluginSettingsPrint(vdm_PluginSettings *p)
print the content of the settings container
Print using printf() the content of the plugin settings.
- Parameters:
p – Pointer to PluginSettings object.