plugin.c File Reference

#include "plugin_p.h"
#include <gwenhywfar/buffer.h>
#include <gwenhywfar/debug.h>
#include <gwenhywfar/directory.h>
#include <gwenhywfar/pathmanager.h>
#include <gwenhywfar/gwenhywfar.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <errno.h>
#include <string.h>
#include <ctype.h>

Go to the source code of this file.

Functions

void GWEN_Plugin_Attach (GWEN_PLUGIN *p)
void GWEN_Plugin_free (GWEN_PLUGIN *p)
const char * GWEN_Plugin_GetFileName (const GWEN_PLUGIN *p)
GWEN_LIBLOADERGWEN_Plugin_GetLibLoader (const GWEN_PLUGIN *p)
GWEN_PLUGIN_MANAGERGWEN_Plugin_GetManager (const GWEN_PLUGIN *p)
const char * GWEN_Plugin_GetName (const GWEN_PLUGIN *p)
int GWEN_Plugin_ModuleFini ()
int GWEN_Plugin_ModuleInit ()
GWEN_PLUGINGWEN_Plugin_new (GWEN_PLUGIN_MANAGER *pm, const char *name, const char *fileName)
void GWEN_Plugin_SetLibLoader (GWEN_PLUGIN *p, GWEN_LIBLOADER *ll)
GWEN_PLUGINGWEN_PluginManager__FindPlugin (GWEN_PLUGIN_MANAGER *pm, const char *s)
int GWEN_PluginManager_AddPath (GWEN_PLUGIN_MANAGER *pm, const char *callingLib, const char *s)
int GWEN_PluginManager_AddPathFromWinReg (GWEN_PLUGIN_MANAGER *pm, const char *callingLib, const char *keypath, const char *varname)
void GWEN_PluginManager_AddPlugin (GWEN_PLUGIN_MANAGER *pm, GWEN_PLUGIN *p)
int GWEN_PluginManager_AddRelPath (GWEN_PLUGIN_MANAGER *pm, const char *callingLib, const char *s, GWEN_PATHMANAGER_RELMODE rm)
GWEN_PLUGIN_MANAGERGWEN_PluginManager_FindPluginManager (const char *s)
void GWEN_PluginManager_free (GWEN_PLUGIN_MANAGER *pm)
const char * GWEN_PluginManager_GetName (const GWEN_PLUGIN_MANAGER *pm)
GWEN_STRINGLISTGWEN_PluginManager_GetPaths (const GWEN_PLUGIN_MANAGER *pm)
GWEN_PLUGINGWEN_PluginManager_GetPlugin (GWEN_PLUGIN_MANAGER *pm, const char *s)
GWEN_PLUGIN_DESCRIPTIONGWEN_PluginManager_GetPluginDescr (GWEN_PLUGIN_MANAGER *pm, const char *modName)
GWEN_PLUGIN_DESCRIPTION_LIST2GWEN_PluginManager_GetPluginDescrs (GWEN_PLUGIN_MANAGER *pm)
int GWEN_PluginManager_InsertPath (GWEN_PLUGIN_MANAGER *pm, const char *callingLib, const char *s)
GWEN_PLUGINGWEN_PluginManager_LoadPlugin (GWEN_PLUGIN_MANAGER *pm, const char *modname)
GWEN_PLUGINGWEN_PluginManager_LoadPluginFile (GWEN_PLUGIN_MANAGER *pm, const char *modname, const char *fname)
GWEN_PLUGIN_MANAGERGWEN_PluginManager_new (const char *name, const char *destLib)
int GWEN_PluginManager_Register (GWEN_PLUGIN_MANAGER *pm)
int GWEN_PluginManager_RemovePath (GWEN_PLUGIN_MANAGER *pm, const char *callingLib, const char *s)
int GWEN_PluginManager_Unregister (GWEN_PLUGIN_MANAGER *pm)

Variables

static GWEN_PLUGIN_MANAGER_LIST * gwen_plugin_manager__list = 0


Function Documentation

void GWEN_Plugin_Attach ( GWEN_PLUGIN p  ) 

Definition at line 121 of file plugin.c.

References DBG_MEM_INC.

void GWEN_Plugin_free ( GWEN_PLUGIN p  ) 

const char* GWEN_Plugin_GetFileName ( const GWEN_PLUGIN p  ) 

Definition at line 144 of file plugin.c.

GWEN_LIBLOADER* GWEN_Plugin_GetLibLoader ( const GWEN_PLUGIN p  ) 

Definition at line 151 of file plugin.c.

GWEN_PLUGIN_MANAGER* GWEN_Plugin_GetManager ( const GWEN_PLUGIN p  ) 

Definition at line 130 of file plugin.c.

const char* GWEN_Plugin_GetName ( const GWEN_PLUGIN p  ) 

Definition at line 137 of file plugin.c.

Referenced by GWEN_Crypt_Token_PluginManager_CheckToken().

int GWEN_Plugin_ModuleFini (  ) 

Definition at line 72 of file plugin.c.

References gwen_plugin_manager__list.

Referenced by GWEN_Fini().

int GWEN_Plugin_ModuleInit (  ) 

Definition at line 65 of file plugin.c.

References gwen_plugin_manager__list.

Referenced by GWEN_Init().

GWEN_PLUGIN* GWEN_Plugin_new ( GWEN_PLUGIN_MANAGER pm,
const char *  name,
const char *  fileName 
)

void GWEN_Plugin_SetLibLoader ( GWEN_PLUGIN p,
GWEN_LIBLOADER ll 
)

Definition at line 158 of file plugin.c.

Referenced by GWEN_PluginManager_LoadPlugin(), and GWEN_PluginManager_LoadPluginFile().

GWEN_PLUGIN* GWEN_PluginManager__FindPlugin ( GWEN_PLUGIN_MANAGER pm,
const char *  s 
)

Definition at line 473 of file plugin.c.

Referenced by GWEN_PluginManager_GetPlugin().

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().

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.

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.

int GWEN_PluginManager_AddRelPath ( GWEN_PLUGIN_MANAGER pm,
const char *  callingLib,
const char *  s,
GWEN_PATHMANAGER_RELMODE  rm 
)

Definition at line 222 of file plugin.c.

References GWEN_PathManager_AddRelPath().

GWEN_PLUGIN_MANAGER* GWEN_PluginManager_FindPluginManager ( const char *  s  ) 

void GWEN_PluginManager_free ( GWEN_PLUGIN_MANAGER pm  ) 

const char* GWEN_PluginManager_GetName ( const GWEN_PLUGIN_MANAGER pm  ) 

Definition at line 203 of file plugin.c.

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().

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

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

GWEN_PLUGIN_DESCRIPTION_LIST2* GWEN_PluginManager_GetPluginDescrs ( GWEN_PLUGIN_MANAGER pm  ) 

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().

GWEN_PLUGIN* GWEN_PluginManager_LoadPlugin ( GWEN_PLUGIN_MANAGER pm,
const char *  modname 
)

GWEN_PLUGIN* GWEN_PluginManager_LoadPluginFile ( GWEN_PLUGIN_MANAGER pm,
const char *  modname,
const char *  fname 
)

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_ConfigMgr_ModuleInit(), GWEN_Crypt_Token_ModuleInit(), and GWEN_DBIO_ModuleInit().

int GWEN_PluginManager_Register ( GWEN_PLUGIN_MANAGER pm  ) 

int GWEN_PluginManager_RemovePath ( GWEN_PLUGIN_MANAGER pm,
const char *  callingLib,
const char *  s 
)

Definition at line 248 of file plugin.c.

References GWEN_PathManager_RemovePath().

int GWEN_PluginManager_Unregister ( GWEN_PLUGIN_MANAGER pm  ) 


Variable Documentation

GWEN_PLUGIN_MANAGER_LIST* gwen_plugin_manager__list = 0 [static]


Generated on Wed Sep 3 15:22:01 2008 for gwenhywfar by  doxygen 1.5.6