Katana Plug-in APIs 0.1

FnPluginManagerSuite.h

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 
 All Classes Functions Variables Typedefs Enumerations Enumerator