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_UNUSED GWEN_PLUGIN_MANAGER *pm, GWEN_UNUSED const char *callingLib, GWEN_UNUSED const char *keypath, GWEN_UNUSED 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 470 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_UNUSED GWEN_PLUGIN_MANAGER pm,
GWEN_UNUSED const char *  callingLib,
GWEN_UNUSED const char *  keypath,
GWEN_UNUSED const char *  varname 
)

Definition at line 316 of file plugin.c.

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.

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 624 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 by  doxygen 1.6.2