vtkSMPluginManager.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Kitware Inc.
2 // SPDX-License-Identifier: BSD-3-Clause
14 #ifndef vtkSMPluginManager_h
15 #define vtkSMPluginManager_h
16 
17 #include "vtkRemotingServerManagerModule.h" //needed for exports
18 #include "vtkSMObject.h"
19 
21 class vtkSMSession;
22 
24 {
25 public:
26  static vtkSMPluginManager* New();
28  void PrintSelf(ostream& os, vtkIndent indent) override;
29 
31 
37  void RegisterSession(vtkSMSession*);
38  void UnRegisterSession(vtkSMSession*);
40 
42 
49  vtkGetObjectMacro(LocalInformation, vtkPVPluginsInformation);
50  vtkPVPluginsInformation* GetRemoteInformation(vtkSMSession*);
52 
54 
59  const char* GetLocalPluginSearchPaths();
60  const char* GetRemotePluginSearchPaths(vtkSMSession*);
62 
64 
68  bool LoadRemotePlugin(const char* plugin, vtkSMSession*);
69  bool LoadLocalPlugin(const char* plugin);
71 
73 
84  void LoadPluginConfigurationXMLFromString(
85  const char* xmlcontents, vtkSMSession* session, bool remote);
86  void LoadPluginConfigurationXML(
87  const char* configurationFile, vtkSMSession* session, bool remote);
89 
97  bool FulfillPluginRequirements(vtkSMSession* session, bool onlyCheck = false);
98 
99  enum
100  {
101  PluginLoadedEvent = 100000,
103  RemotePluginLoadedEvent
104  };
105 
106 protected:
108  ~vtkSMPluginManager() override;
109 
111  void OnPluginRegistered();
112  void OnPluginAvailable();
113  void UpdateLocalPluginInformation();
114 
119  bool FulfillPluginClientServerRequirements(vtkSMSession* session,
120  const std::map<std::string, unsigned int>& inputMap, vtkPVPluginsInformation* inputPluginInfo,
121  const std::map<std::string, unsigned int>& outputMap, vtkPVPluginsInformation* outputPluginInfo,
122  bool inputClient, bool onlyCheck);
123 
125 
126 private:
127  vtkSMPluginManager(const vtkSMPluginManager&) = delete;
128  void operator=(const vtkSMPluginManager&) = delete;
129 
130  class vtkInternals;
131  vtkInternals* Internals;
132 };
133 
134 #endif
vtkPVPluginsInformation * LocalInformation
manages ParaView plugins.
#define VTKREMOTINGSERVERMANAGER_EXPORT
vtkSMSession is the default ParaView session.
Definition: vtkSMSession.h:22
information about plugins tracked by vtkPVPluginTracker.
superclass for most server manager classes
Definition: vtkSMObject.h:17
static vtkSMObject * New()
void PrintSelf(ostream &os, vtkIndent indent) override