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
00186 GWENHYWFAR_API
00187 int GWEN_PluginManager_Register(GWEN_PLUGIN_MANAGER *pm);
00188
00189 GWENHYWFAR_API
00190 int GWEN_PluginManager_Unregister(GWEN_PLUGIN_MANAGER *pm);
00191
00192 GWENHYWFAR_API
00193 GWEN_PLUGIN_MANAGER *GWEN_PluginManager_FindPluginManager(const char *s);
00194
00195
00196 GWENHYWFAR_API
00197 GWEN_PLUGIN_DESCRIPTION_LIST2*
00198 GWEN_PluginManager_GetPluginDescrs(GWEN_PLUGIN_MANAGER *pm);
00199
00200
00201 GWENHYWFAR_API
00202 GWEN_PLUGIN_DESCRIPTION*
00203 GWEN_PluginManager_GetPluginDescr(GWEN_PLUGIN_MANAGER *pm,
00204 const char *modName);
00205
00206
00207 #ifdef __cplusplus
00208 }
00209 #endif
00210
00211 #endif
00212
00213