22 #include "vtkPVVersion.h"
23 #include "vtkRemotingCoreModule.h"
29 #define C_DECL __cdecl
30 #define C_EXPORT extern "C" __declspec(dllexport)
31 #elif defined(__GNUC__)
33 #define C_EXPORT extern "C" __attribute__((visibility("default")))
36 #define C_EXPORT extern "C"
50 virtual const char* GetPluginName() = 0;
55 virtual const char* GetPluginVersionString() = 0;
60 virtual bool GetRequiredOnServer() = 0;
65 virtual bool GetRequiredOnClient() = 0;
70 virtual const char* GetRequiredPlugins() = 0;
75 virtual const char* GetDescription() = 0;
80 virtual const char* GetEULA() = 0;
87 virtual void GetBinaryResources(std::vector<std::string>& resources);
114 static void SetEULAConfirmationCallback(EULAConfirmationCallback callback);
115 static EULAConfirmationCallback GetEULAConfirmationCallback();
124 void SetFileName(
const char* filename);
137 static EULAConfirmationCallback EULAConfirmationCallbackPtr;
149 #ifdef PARAVIEW_BUILDING_PLUGIN
157 #if PARAVIEW_PLUGIN_BUILT_SHARED
158 #define _PV_PLUGIN_GLOBAL_FUNCTIONS(PLUGIN) \
159 C_EXPORT vtkPVPlugin* C_DECL pv_plugin_instance() { return pv_plugin_instance_##PLUGIN(); }
163 #define _PV_PLUGIN_GLOBAL_FUNCTIONS(PLUGIN)
170 #define PV_PLUGIN_EXPORT(PLUGIN, PLUGINCLASS) \
171 C_EXPORT vtkPVPlugin* C_DECL pv_plugin_instance_##PLUGIN() \
173 static PLUGINCLASS instance; \
176 _PV_PLUGIN_GLOBAL_FUNCTIONS(PLUGIN);
185 #define PV_PLUGIN_IMPORT_INIT(PLUGIN) extern "C" vtkPVPlugin* pv_plugin_instance_##PLUGIN();
187 #define PV_PLUGIN_IMPORT(PLUGIN) vtkPVPlugin::ImportPlugin(pv_plugin_instance_##PLUGIN());
191 #endif // vtkPVPlugin_h