plugin.h File Reference

#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

Functions

GWENHYWFAR_API void GWEN_Plugin_free (GWEN_PLUGIN *p)
GWENHYWFAR_API const char * GWEN_Plugin_GetFileName (const GWEN_PLUGIN *p)
GWENHYWFAR_API GWEN_LIBLOADERGWEN_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)
GWENHYWFAR_API GWEN_PLUGINGWEN_Plugin_new (GWEN_PLUGIN_MANAGER *pm, const char *name, const char *fileName)
GWENHYWFAR_API int GWEN_PluginManager_AddPath (GWEN_PLUGIN_MANAGER *pm, const char *callingLib, const char *path)
GWENHYWFAR_API int GWEN_PluginManager_AddPathFromWinReg (GWEN_PLUGIN_MANAGER *pm, const char *callingLib, const char *keypath, const char *varname)
GWENHYWFAR_API void GWEN_PluginManager_AddPlugin (GWEN_PLUGIN_MANAGER *pm, GWEN_PLUGIN *p)
GWENHYWFAR_API int GWEN_PluginManager_AddRelPath (GWEN_PLUGIN_MANAGER *pm, const char *callingLib, const char *relpath, GWEN_PATHMANAGER_RELMODE rm)
GWENHYWFAR_API
GWEN_PLUGIN_MANAGER
GWEN_PluginManager_FindPluginManager (const char *s)
GWENHYWFAR_API void GWEN_PluginManager_free (GWEN_PLUGIN_MANAGER *pm)
GWENHYWFAR_API const char * GWEN_PluginManager_GetName (const GWEN_PLUGIN_MANAGER *pm)
GWENHYWFAR_API GWEN_STRINGLISTGWEN_PluginManager_GetPaths (const GWEN_PLUGIN_MANAGER *pm)
GWENHYWFAR_API GWEN_PLUGINGWEN_PluginManager_GetPlugin (GWEN_PLUGIN_MANAGER *pm, const char *s)
GWENHYWFAR_API
GWEN_PLUGIN_DESCRIPTION
GWEN_PluginManager_GetPluginDescr (GWEN_PLUGIN_MANAGER *pm, const char *modName)
GWENHYWFAR_API
GWEN_PLUGIN_DESCRIPTION_LIST2
GWEN_PluginManager_GetPluginDescrs (GWEN_PLUGIN_MANAGER *pm)
GWENHYWFAR_API int GWEN_PluginManager_InsertPath (GWEN_PLUGIN_MANAGER *pm, const char *callingLib, const char *path)
GWENHYWFAR_API GWEN_PLUGINGWEN_PluginManager_LoadPlugin (GWEN_PLUGIN_MANAGER *pm, const char *modName)
GWENHYWFAR_API GWEN_PLUGINGWEN_PluginManager_LoadPluginFile (GWEN_PLUGIN_MANAGER *pm, const char *modName, const char *fname)
GWENHYWFAR_API
GWEN_PLUGIN_MANAGER
GWEN_PluginManager_new (const char *name, const char *destLib)
GWENHYWFAR_API int GWEN_PluginManager_Register (GWEN_PLUGIN_MANAGER *pm)
GWENHYWFAR_API int GWEN_PluginManager_RemovePath (GWEN_PLUGIN_MANAGER *pm, const char *callingLib, const char *path)
GWENHYWFAR_API int GWEN_PluginManager_Unregister (GWEN_PLUGIN_MANAGER *pm)


Typedef Documentation

typedef struct GWEN_PLUGIN GWEN_PLUGIN

Definition at line 39 of file plugin.h.

typedef GWEN_PLUGIN*(* GWEN_PLUGIN_FACTORYFN)(GWEN_PLUGIN_MANAGER *pm, const char *name, const char *fileName)

Definition at line 62 of file plugin.h.

Definition at line 40 of file plugin.h.


Function Documentation

GWENHYWFAR_API void GWEN_Plugin_free ( GWEN_PLUGIN p  ) 

GWENHYWFAR_API const char* GWEN_Plugin_GetFileName ( const GWEN_PLUGIN p  ) 

Definition at line 144 of file plugin.c.

GWENHYWFAR_API GWEN_LIBLOADER* GWEN_Plugin_GetLibLoader ( const GWEN_PLUGIN p  ) 

Definition at line 151 of file plugin.c.

GWENHYWFAR_API GWEN_PLUGIN_MANAGER* GWEN_Plugin_GetManager ( const GWEN_PLUGIN p  ) 

Definition at line 130 of file plugin.c.

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 
)

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_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.

Returns:
Zero on success, and non-zero on error.
Parameters:
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".

Definition at line 260 of file plugin.c.

References DBG_INFO, GWEN_LOGDOMAIN, GWEN_PathManager_AddPath(), and MAX_PATH.

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 671 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  ) 

GWENHYWFAR_API void GWEN_PluginManager_free ( GWEN_PLUGIN_MANAGER pm  ) 

GWENHYWFAR_API const char* GWEN_PluginManager_GetName ( const GWEN_PLUGIN_MANAGER pm  ) 

Definition at line 203 of file plugin.c.

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 627 of file plugin.c.

References GWEN_PathManager_GetPaths().

GWENHYWFAR_API GWEN_PLUGIN* GWEN_PluginManager_GetPlugin ( GWEN_PLUGIN_MANAGER pm,
const char *  s 
)

GWENHYWFAR_API GWEN_PLUGIN_DESCRIPTION* GWEN_PluginManager_GetPluginDescr ( GWEN_PLUGIN_MANAGER pm,
const char *  modName 
)

GWENHYWFAR_API GWEN_PLUGIN_DESCRIPTION_LIST2* GWEN_PluginManager_GetPluginDescrs ( GWEN_PLUGIN_MANAGER pm  ) 

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 
)

GWENHYWFAR_API GWEN_PLUGIN* GWEN_PluginManager_LoadPluginFile ( GWEN_PLUGIN_MANAGER pm,
const char *  modName,
const char *  fname 
)

GWENHYWFAR_API GWEN_PLUGIN_MANAGER* GWEN_PluginManager_new ( const char *  name,
const char *  destLib 
)

Parameters:
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_Crypt_Token_ModuleInit(), and GWEN_DBIO_ModuleInit().

GWENHYWFAR_API int GWEN_PluginManager_Register ( GWEN_PLUGIN_MANAGER pm  ) 

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  ) 


Generated on Wed Jul 9 13:12:30 2008 for gwenhywfar by  doxygen 1.5.6