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
00054 #ifdef __cplusplus
00055 extern "C" {
00056 #endif
00057
00058
00059
00060
00061 typedef GWEN_PLUGIN* (*GWEN_PLUGIN_FACTORYFN)(GWEN_PLUGIN_MANAGER *pm,
00062 const char *name,
00063 const char *fileName);
00064
00065
00066 GWENHYWFAR_API
00067 GWEN_PLUGIN *GWEN_Plugin_new(GWEN_PLUGIN_MANAGER *pm,
00068 const char *name,
00069 const char *fileName);
00070
00071 GWENHYWFAR_API
00072 void GWEN_Plugin_free(GWEN_PLUGIN *p);
00073
00074 GWENHYWFAR_API
00075 GWEN_PLUGIN_MANAGER *GWEN_Plugin_GetManager(const GWEN_PLUGIN *p);
00076
00077 GWENHYWFAR_API
00078 const char *GWEN_Plugin_GetName(const GWEN_PLUGIN *p);
00079
00080 GWENHYWFAR_API
00081 const char *GWEN_Plugin_GetFileName(const GWEN_PLUGIN *p);
00082
00083 GWENHYWFAR_API
00084 GWEN_LIBLOADER *GWEN_Plugin_GetLibLoader(const GWEN_PLUGIN *p);
00085
00086
00087
00088
00089
00090
00091
00092 GWENHYWFAR_API
00093 GWEN_PLUGIN_MANAGER *GWEN_PluginManager_new(const char *name);
00094
00095 GWENHYWFAR_API
00096 void GWEN_PluginManager_free(GWEN_PLUGIN_MANAGER *pm);
00097
00098
00099 GWENHYWFAR_API
00100 const char *GWEN_PluginManager_GetName(const GWEN_PLUGIN_MANAGER *pm);
00101
00103 GWENHYWFAR_API
00104 int GWEN_PluginManager_AddPath(GWEN_PLUGIN_MANAGER *pm,
00105 const char *s);
00106 GWENHYWFAR_API
00107 int GWEN_PluginManager_InsertPath(GWEN_PLUGIN_MANAGER *pm,
00108 const char *s);
00109
00110 GWENHYWFAR_API
00111 int GWEN_PluginManager_RemovePath(GWEN_PLUGIN_MANAGER *pm,
00112 const char *s);
00113
00131 GWENHYWFAR_API
00132 int GWEN_PluginManager_AddPathFromWinReg(GWEN_PLUGIN_MANAGER *pm,
00133 const char *keypath,
00134 const char *varname);
00135
00138 GWENHYWFAR_API
00139 const GWEN_STRINGLIST *
00140 GWEN_PluginManager_GetPaths(const GWEN_PLUGIN_MANAGER *pm);
00141
00142 GWENHYWFAR_API
00143 GWEN_PLUGIN *GWEN_PluginManager_LoadPlugin(GWEN_PLUGIN_MANAGER *pm,
00144 const char *modName);
00145
00146 GWENHYWFAR_API
00147 GWEN_PLUGIN *GWEN_PluginManager_LoadPluginFile(GWEN_PLUGIN_MANAGER *pm,
00148 const char *modName,
00149 const char *fname);
00150
00151
00152 GWENHYWFAR_API
00153 GWEN_PLUGIN *GWEN_PluginManager_GetPlugin(GWEN_PLUGIN_MANAGER *pm,
00154 const char *s);
00155
00156 GWENHYWFAR_API
00157 int GWEN_PluginManager_Register(GWEN_PLUGIN_MANAGER *pm);
00158
00159 GWENHYWFAR_API
00160 int GWEN_PluginManager_Unregister(GWEN_PLUGIN_MANAGER *pm);
00161
00162 GWENHYWFAR_API
00163 GWEN_PLUGIN_MANAGER *GWEN_PluginManager_FindPluginManager(const char *s);
00164
00165
00166 GWENHYWFAR_API
00167 GWEN_PLUGIN_DESCRIPTION_LIST2*
00168 GWEN_PluginManager_GetPluginDescrs(GWEN_PLUGIN_MANAGER *pm);
00169
00170
00171 GWENHYWFAR_API
00172 GWEN_PLUGIN_DESCRIPTION*
00173 GWEN_PluginManager_GetPluginDescr(GWEN_PLUGIN_MANAGER *pm,
00174 const char *modName);
00175
00176
00177 #ifdef __cplusplus
00178 }
00179 #endif
00180
00181 #endif
00182
00183