Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef GWENHYWFAR_PLUGIN_H
00030 #define GWENHYWFAR_PLUGIN_H
00031
00032 #include <gwenhywfar/inherit.h>
00033 #include <gwenhywfar/misc.h>
00034
00035 #ifdef __cplusplus
00036 extern "C" {
00037 #endif
00038
00039 typedef struct GWEN_PLUGIN GWEN_PLUGIN;
00040 typedef struct GWEN_PLUGIN_MANAGER GWEN_PLUGIN_MANAGER;
00041
00042 GWEN_INHERIT_FUNCTION_LIB_DEFS(GWEN_PLUGIN, GWENHYWFAR_API)
00043 GWEN_INHERIT_FUNCTION_LIB_DEFS(GWEN_PLUGIN_MANAGER, GWENHYWFAR_API)
00044
00045 #ifdef __cplusplus
00046 }
00047 #endif
00048
00049 #include <gwenhywfar/error.h>
00050 #include <gwenhywfar/libloader.h>
00051 #include <gwenhywfar/plugindescr.h>
00052 #include <gwenhywfar/stringlist.h>
00053 #include <gwenhywfar/pathmanager.h>
00054
00055 #ifdef __cplusplus
00056 extern "C" {
00057 #endif
00058
00059
00060
00061
00062 typedef GWEN_PLUGIN* (*GWEN_PLUGIN_FACTORYFN)(GWEN_PLUGIN_MANAGER *pm,
00063 const char *name,
00064 const char *fileName);
00065
00066
00067 GWENHYWFAR_API
00068 GWEN_PLUGIN *GWEN_Plugin_new(GWEN_PLUGIN_MANAGER *pm,
00069 const char *name,
00070 const char *fileName);
00071
00072 GWENHYWFAR_API
00073 void GWEN_Plugin_free(GWEN_PLUGIN *p);
00074
00075 GWENHYWFAR_API
00076 GWEN_PLUGIN_MANAGER *GWEN_Plugin_GetManager(const GWEN_PLUGIN *p);
00077
00078 GWENHYWFAR_API
00079 const char *GWEN_Plugin_GetName(const GWEN_PLUGIN *p);
00080
00081 GWENHYWFAR_API
00082 const char *GWEN_Plugin_GetFileName(const GWEN_PLUGIN *p);
00083
00084 GWENHYWFAR_API
00085 GWEN_LIBLOADER *GWEN_Plugin_GetLibLoader(const GWEN_PLUGIN *p);
00086
00087
00088
00089
00090
00091
00096 GWENHYWFAR_API
00097 GWEN_PLUGIN_MANAGER *GWEN_PluginManager_new(const char *name,
00098 const char *destLib);
00099
00100 GWENHYWFAR_API
00101 void GWEN_PluginManager_free(GWEN_PLUGIN_MANAGER *pm);
00102
00103
00104 GWENHYWFAR_API
00105 const char *GWEN_PluginManager_GetName(const GWEN_PLUGIN_MANAGER *pm);
00106
00112 GWENHYWFAR_API
00113 int GWEN_PluginManager_AddPath(GWEN_PLUGIN_MANAGER *pm,
00114 const char *callingLib,
00115 const char *path);
00116
00117 GWENHYWFAR_API
00118 int GWEN_PluginManager_AddRelPath(GWEN_PLUGIN_MANAGER *pm,
00119 const char *callingLib,
00120 const char *relpath,
00121 GWEN_PATHMANAGER_RELMODE rm);
00122
00128 GWENHYWFAR_API
00129 int GWEN_PluginManager_InsertPath(GWEN_PLUGIN_MANAGER *pm,
00130 const char *callingLib,
00131 const char *path);
00132
00133 GWENHYWFAR_API
00134 int GWEN_PluginManager_RemovePath(GWEN_PLUGIN_MANAGER *pm,
00135 const char *callingLib,
00136 const char *path);
00137
00161 GWENHYWFAR_API
00162 int GWEN_PluginManager_AddPathFromWinReg(GWEN_PLUGIN_MANAGER *pm,
00163 const char *callingLib,
00164 const char *keypath,
00165 const char *varname);
00166
00169 GWENHYWFAR_API
00170 GWEN_STRINGLIST *GWEN_PluginManager_GetPaths(const GWEN_PLUGIN_MANAGER *pm);
00171
00172 GWENHYWFAR_API
00173 GWEN_PLUGIN *GWEN_PluginManager_LoadPlugin(GWEN_PLUGIN_MANAGER *pm,
00174 const char *modName);
00175
00176 GWENHYWFAR_API
00177 GWEN_PLUGIN *GWEN_PluginManager_LoadPluginFile(GWEN_PLUGIN_MANAGER *pm,
00178 const char *modName,
00179 const char *fname);
00180
00181
00182 GWENHYWFAR_API
00183 GWEN_PLUGIN *GWEN_PluginManager_GetPlugin(GWEN_PLUGIN_MANAGER *pm,
00184 const char *s);
00185
00191 GWENHYWFAR_API
00192 void GWEN_PluginManager_AddPlugin(GWEN_PLUGIN_MANAGER *pm, GWEN_PLUGIN *p);
00193
00194
00195 GWENHYWFAR_API
00196 int GWEN_PluginManager_Register(GWEN_PLUGIN_MANAGER *pm);
00197
00198 GWENHYWFAR_API
00199 int GWEN_PluginManager_Unregister(GWEN_PLUGIN_MANAGER *pm);
00200
00201 GWENHYWFAR_API
00202 GWEN_PLUGIN_MANAGER *GWEN_PluginManager_FindPluginManager(const char *s);
00203
00204
00205 GWENHYWFAR_API
00206 GWEN_PLUGIN_DESCRIPTION_LIST2*
00207 GWEN_PluginManager_GetPluginDescrs(GWEN_PLUGIN_MANAGER *pm);
00208
00209
00210 GWENHYWFAR_API
00211 GWEN_PLUGIN_DESCRIPTION*
00212 GWEN_PluginManager_GetPluginDescr(GWEN_PLUGIN_MANAGER *pm,
00213 const char *modName);
00214
00215
00216 #ifdef __cplusplus
00217 }
00218 #endif
00219
00220 #endif
00221
00222