gwenhywfar
4.8.0beta
|
#include <gwenhywfar/inherit.h>
#include <gwenhywfar/misc.h>
#include <gwenhywfar/error.h>
#include <gwenhywfar/libloader.h>
#include <gwenhywfar/plugindescr.h>
#include <gwenhywfar/stringlist.h>
#include <gwenhywfar/pathmanager.h>
Go to the source code of this file.
Typedefs | |
typedef struct GWEN_PLUGIN | GWEN_PLUGIN |
typedef GWEN_PLUGIN *(* | GWEN_PLUGIN_FACTORYFN )(GWEN_PLUGIN_MANAGER *pm, const char *name, const char *fileName) |
typedef struct GWEN_PLUGIN_MANAGER | GWEN_PLUGIN_MANAGER |
typedef struct GWEN_PLUGIN GWEN_PLUGIN |
typedef GWEN_PLUGIN*(* GWEN_PLUGIN_FACTORYFN)(GWEN_PLUGIN_MANAGER *pm, const char *name, const char *fileName) |
typedef struct GWEN_PLUGIN_MANAGER GWEN_PLUGIN_MANAGER |
GWENHYWFAR_API void GWEN_Plugin_free | ( | GWEN_PLUGIN * | p | ) |
Definition at line 101 of file plugin.c.
References DBG_MEM_DEC, GWEN_FREE_OBJECT, GWEN_INHERIT_FINI, GWEN_LibLoader_CloseLibrary(), GWEN_LibLoader_free(), and GWEN_LIST_FINI.
GWENHYWFAR_API const char* GWEN_Plugin_GetFileName | ( | const GWEN_PLUGIN * | p | ) |
GWENHYWFAR_API GWEN_LIBLOADER* GWEN_Plugin_GetLibLoader | ( | const GWEN_PLUGIN * | p | ) |
GWENHYWFAR_API GWEN_PLUGIN_MANAGER* GWEN_Plugin_GetManager | ( | const GWEN_PLUGIN * | p | ) |
GWENHYWFAR_API const char* GWEN_Plugin_GetName | ( | const GWEN_PLUGIN * | p | ) |
Definition at line 137 of file plugin.c.
Referenced by GWEN_Crypt_Token_PluginManager_CheckToken().
GWENHYWFAR_API GWEN_PLUGIN* GWEN_Plugin_new | ( | GWEN_PLUGIN_MANAGER * | pm, |
const char * | name, | ||
const char * | fileName | ||
) |
Definition at line 79 of file plugin.c.
References DBG_MEM_INC, GWEN_INHERIT_INIT, GWEN_LIST_INIT, and GWEN_NEW_OBJECT.
Referenced by GWEN_ConfigMgr_Plugin_new(), GWEN_Crypt_Token_Plugin_new(), and GWEN_DBIO_Plugin_new().
GWENHYWFAR_API int GWEN_PluginManager_AddPath | ( | GWEN_PLUGIN_MANAGER * | pm, |
const char * | callingLib, | ||
const char * | path | ||
) |
Add a directory path to lookup plugins from. The plugin manager must already be registered with Gwen (using GWEN_PluginManager_Register) otherwise the path can not be added
Definition at line 210 of file plugin.c.
References GWEN_PathManager_AddPath().
Referenced by GWEN_ConfigMgr_ModuleInit(), GWEN_Crypt_Token_ModuleInit(), and GWEN_DBIO_ModuleInit().
GWENHYWFAR_API int GWEN_PluginManager_AddPathFromWinReg | ( | GWEN_PLUGIN_MANAGER * | pm, |
const char * | callingLib, | ||
const char * | keypath, | ||
const char * | varname | ||
) |
Add a directory path from the windows registry HKEY_LOCAL_MACHINE, to lookup plugins from. On Non-Windows systems, this function does nothing and returns zero.
Note: Gwenhywfar-2.6.0 and older used to lookup the paths under HKEY_CURRENT_USER, but with gwen-2.6.1 this was changed to HKEY_LOCAL_MACHINE because we're talking about installation paths as opposed to per-user configuration settings.
The plugin manager must already be registered with Gwen (using GWEN_PluginManager_Register) otherwise the path can not be added.
pm | The PluginManager |
keypath | The path to the registry key, e.g. "Software\\MySoftware\\Whatever" |
varname | The key name (variable name?) inside the given registry key, e.g. "myvariable". |
GWENHYWFAR_API void GWEN_PluginManager_AddPlugin | ( | GWEN_PLUGIN_MANAGER * | pm, |
GWEN_PLUGIN * | p | ||
) |
Add a plugin to this plugin manager. Normally plugins are loaded upon GWEN_PluginManager_GetPlugin. This function allows for plugins that are created by other means (e.g. by static linking)
Definition at line 668 of file plugin.c.
References DBG_ERROR.
GWENHYWFAR_API int GWEN_PluginManager_AddRelPath | ( | GWEN_PLUGIN_MANAGER * | pm, |
const char * | callingLib, | ||
const char * | relpath, | ||
GWEN_PATHMANAGER_RELMODE | rm | ||
) |
Definition at line 222 of file plugin.c.
References GWEN_PathManager_AddRelPath().
GWENHYWFAR_API GWEN_PLUGIN_MANAGER* GWEN_PluginManager_FindPluginManager | ( | const char * | s | ) |
Definition at line 505 of file plugin.c.
References gwen_plugin_manager__list.
Referenced by GWEN_ConfigMgr_Factory(), GWEN_ConfigMgr_ModuleFini(), GWEN_Crypt_Token_ModuleFini(), GWEN_DBIO_GetPlugin(), GWEN_DBIO_ModuleFini(), GWEN_PluginManager_Register(), and GWEN_PluginManager_Unregister().
GWENHYWFAR_API void GWEN_PluginManager_free | ( | GWEN_PLUGIN_MANAGER * | pm | ) |
Definition at line 189 of file plugin.c.
References DBG_MEM_DEC, GWEN_FREE_OBJECT, GWEN_INHERIT_FINI, and GWEN_LIST_FINI.
Referenced by GWEN_ConfigMgr_ModuleFini(), GWEN_Crypt_Token_ModuleFini(), and GWEN_DBIO_ModuleFini().
GWENHYWFAR_API const char* GWEN_PluginManager_GetName | ( | const GWEN_PLUGIN_MANAGER * | pm | ) |
GWENHYWFAR_API GWEN_STRINGLIST* GWEN_PluginManager_GetPaths | ( | const GWEN_PLUGIN_MANAGER * | pm | ) |
Returns the list of all search paths of the given PluginManager.
Definition at line 624 of file plugin.c.
References GWEN_PathManager_GetPaths().
GWENHYWFAR_API GWEN_PLUGIN* GWEN_PluginManager_GetPlugin | ( | GWEN_PLUGIN_MANAGER * | pm, |
const char * | s | ||
) |
Definition at line 487 of file plugin.c.
References DBG_INFO, GWEN_LOGDOMAIN, GWEN_PluginManager__FindPlugin(), and GWEN_PluginManager_LoadPlugin().
Referenced by GWEN_ConfigMgr_Factory(), GWEN_Crypt_Token_PluginManager_CheckToken(), and GWEN_DBIO_GetPlugin().
GWENHYWFAR_API GWEN_PLUGIN_DESCRIPTION* GWEN_PluginManager_GetPluginDescr | ( | GWEN_PLUGIN_MANAGER * | pm, |
const char * | modName | ||
) |
Definition at line 632 of file plugin.c.
References GWEN_PluginDescription_dup(), GWEN_PluginDescription_GetName(), GWEN_PluginDescription_List2_freeAll(), and GWEN_PluginManager_GetPluginDescrs().
GWENHYWFAR_API GWEN_PLUGIN_DESCRIPTION_LIST2* GWEN_PluginManager_GetPluginDescrs | ( | GWEN_PLUGIN_MANAGER * | pm | ) |
Definition at line 581 of file plugin.c.
References DBG_ERROR, DBG_INFO, GWEN_LoadPluginDescrsByType(), GWEN_LOGDOMAIN, GWEN_PathManager_GetPaths(), GWEN_StringList_FirstEntry(), GWEN_StringList_free(), GWEN_StringListEntry_Data(), GWEN_StringListEntry_Next(), and NULL.
Referenced by GWEN_Crypt_Token_PluginManager_GetPluginDescrs(), and GWEN_PluginManager_GetPluginDescr().
GWENHYWFAR_API int GWEN_PluginManager_InsertPath | ( | GWEN_PLUGIN_MANAGER * | pm, |
const char * | callingLib, | ||
const char * | path | ||
) |
Insert a directory path to lookup plugins from. The plugin manager must already be registered with Gwen (using GWEN_PluginManager_Register) otherwise the path can not be added.
Definition at line 236 of file plugin.c.
References GWEN_PathManager_InsertPath().
GWENHYWFAR_API GWEN_PLUGIN* GWEN_PluginManager_LoadPlugin | ( | GWEN_PLUGIN_MANAGER * | pm, |
const char * | modName | ||
) |
Definition at line 326 of file plugin.c.
References DBG_DEBUG, DBG_ERROR, DBG_ERROR_ERR, GWEN_Buffer_AppendByte(), GWEN_Buffer_AppendString(), GWEN_Buffer_free(), GWEN_Buffer_GetStart(), GWEN_Buffer_new(), GWEN_LibLoader_CloseLibrary(), GWEN_LibLoader_free(), GWEN_LibLoader_new(), GWEN_LibLoader_OpenLibraryWithPath(), GWEN_LibLoader_Resolve(), GWEN_LOGDOMAIN, GWEN_PathManager_GetPaths(), GWEN_Plugin_SetLibLoader(), GWEN_StringList_FirstEntry(), GWEN_StringList_free(), GWEN_StringListEntry_Data(), GWEN_StringListEntry_Next(), and NULL.
Referenced by GWEN_PluginManager_GetPlugin().
GWENHYWFAR_API GWEN_PLUGIN* GWEN_PluginManager_LoadPluginFile | ( | GWEN_PLUGIN_MANAGER * | pm, |
const char * | modName, | ||
const char * | fname | ||
) |
Definition at line 413 of file plugin.c.
References DBG_INFO, DBG_INFO_ERR, GWEN_Buffer_AppendByte(), GWEN_Buffer_AppendString(), GWEN_Buffer_free(), GWEN_Buffer_GetStart(), GWEN_Buffer_new(), GWEN_LibLoader_CloseLibrary(), GWEN_LibLoader_free(), GWEN_LibLoader_new(), GWEN_LibLoader_OpenLibrary(), GWEN_LibLoader_Resolve(), GWEN_LOGDOMAIN, and GWEN_Plugin_SetLibLoader().
GWENHYWFAR_API GWEN_PLUGIN_MANAGER* GWEN_PluginManager_new | ( | const char * | name, |
const char * | destLib | ||
) |
destLib | The name of the library that this plugin is supposed to belong to. |
Definition at line 170 of file plugin.c.
References DBG_MEM_INC, GWEN_INHERIT_INIT, GWEN_LIST_INIT, and GWEN_NEW_OBJECT.
Referenced by GWEN_ConfigMgr_ModuleInit(), GWEN_Crypt_Token_ModuleInit(), and GWEN_DBIO_ModuleInit().
GWENHYWFAR_API int GWEN_PluginManager_Register | ( | GWEN_PLUGIN_MANAGER * | pm | ) |
Definition at line 520 of file plugin.c.
References DBG_ERROR, DBG_INFO, GWEN_LOGDOMAIN, GWEN_PathManager_DefinePath(), gwen_plugin_manager__list, and GWEN_PluginManager_FindPluginManager().
Referenced by GWEN_ConfigMgr_ModuleInit(), GWEN_Crypt_Token_ModuleInit(), and GWEN_DBIO_ModuleInit().
GWENHYWFAR_API int GWEN_PluginManager_RemovePath | ( | GWEN_PLUGIN_MANAGER * | pm, |
const char * | callingLib, | ||
const char * | path | ||
) |
Definition at line 248 of file plugin.c.
References GWEN_PathManager_RemovePath().
GWENHYWFAR_API int GWEN_PluginManager_Unregister | ( | GWEN_PLUGIN_MANAGER * | pm | ) |
Definition at line 550 of file plugin.c.
References DBG_ERROR, DBG_INFO, GWEN_LOGDOMAIN, GWEN_PathManager_UndefinePath(), gwen_plugin_manager__list, and GWEN_PluginManager_FindPluginManager().
Referenced by GWEN_ConfigMgr_ModuleFini(), GWEN_Crypt_Token_ModuleFini(), and GWEN_DBIO_ModuleFini().