|
Katana Plug-in APIs 0.1
|
00001 #ifndef FnPluginManager_H 00002 #define FnPluginManager_H 00003 00004 #include <stdint.h> 00005 #include <stddef.h> 00006 00007 extern "C" { 00008 00009 struct FnPluginHost; 00010 00011 typedef struct FnPluginStruct * FnPluginHandle; 00012 typedef struct FnPluginNamesStruct * FnPluginNamesHandle; 00013 typedef struct FnPluginVersionsStruct * FnPluginVersionsHandle; 00014 00015 #define FnPluginManagerHostSuite_version 1 00016 00017 struct FnPluginManagerHostSuite_v1 00018 { 00019 FnPluginHandle (*getPlugin)(const char* pluginName, const char* apiName, int32_t apiVersion); 00020 FnPluginNamesHandle (*getApiNames)(); 00021 FnPluginNamesHandle (*getPluginNames)(const char* apiName, int32_t apiVersion); 00022 FnPluginVersionsHandle (*getPluginApiVersions)(const char* apiName); 00023 size_t (*getPluginApiVersionsListSize)(FnPluginVersionsHandle); 00024 int (*getPluginApiVersionFromList)(FnPluginVersionsHandle h, int32_t index); 00025 size_t (*getPluginListSize)(FnPluginNamesHandle); 00026 const char* (*getPluginNameFromList)(FnPluginNamesHandle h, int32_t index); 00027 const void* (*getPluginSuite)(FnPluginHandle h); 00028 const char* (*getPluginPath)(FnPluginHandle h); 00029 void (*addHostSuite)(void* suite, const char * apiName, uint32_t apiVersion); 00030 void (*addSearchPath)(const char ** searchPath, int32_t numPaths, 00031 bool replace); 00032 void (*findPlugins)(const char * cacheFilePath); 00033 void (*flushPluginCaches)(); 00034 void (*flushSpecificPluginCache)(FnPluginHandle pluginHandle); 00035 00036 const void* (*getSuite)(FnPluginHandle h); 00037 const void* (*getHostSuite)(const char * apiName, uint32_t apiVersion); 00038 FnPluginHost* (*getHost)(); 00039 00040 void (*releasePluginHandle)(FnPluginHandle h); 00041 void (*releasePluginNamesHandle)(FnPluginNamesHandle h); 00042 void (*releasePluginApiVersionsHandle)(FnPluginVersionsHandle h); 00043 00053 const char** (*getSearchPaths)(char* buf, size_t* bufSize); 00054 00056 void (*unload)(); 00057 }; 00058 00059 } 00060 00061 #endif // FnPluginManager_H 00062
1.7.3