vtkPVSessionServer.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Kitware Inc.
2 // SPDX-License-Identifier: BSD-3-Clause
13 #ifndef vtkPVSessionServer_h
14 #define vtkPVSessionServer_h
15 
16 #include "vtkPVSessionBase.h"
17 #include "vtkRemotingServerManagerModule.h" //needed for exports
18 
21 
23 {
24 public:
25  static vtkPVSessionServer* New();
27  void PrintSelf(ostream& os, vtkIndent indent) override;
28 
35 
49  virtual bool Connect(const char* url);
50 
55  bool Connect();
56 
60  bool GetIsAlive() override;
61 
65  enum
66  {
67  PUSH = 12,
68  PULL = 13,
69  EXECUTE_STREAM = 14,
70  GATHER_INFORMATION = 15,
71  REGISTER_SI = 16,
72  UNREGISTER_SI = 17,
73  LAST_RESULT = 18,
74  SERVER_NOTIFICATION_MESSAGE_RMI = 55624,
75  CLIENT_SERVER_MESSAGE_RMI = 55625,
76  CLOSE_SESSION = 55626,
77  REPLY_GATHER_INFORMATION_TAG = 55627,
78  REPLY_PULL = 55628,
79  REPLY_LAST_RESULT = 55629,
80  EXECUTE_STREAM_TAG = 55630,
81  STREAM_EXECUTED = 55631
82  };
83 
85 
91  vtkBooleanMacro(MultipleConnection, bool);
92  vtkSetMacro(MultipleConnection, bool);
93  vtkGetMacro(MultipleConnection, bool);
95 
97 
101  vtkBooleanMacro(DisableFurtherConnections, bool);
102  vtkGetMacro(DisableFurtherConnections, bool);
103  void SetDisableFurtherConnections(bool disable);
105 
107 
111  void SetConnectID(int newConnectID);
112  int GetConnectID();
114 
115  void OnClientServerMessageRMI(void* message, int message_length);
116  void OnCloseSessionRMI();
117 
121  void NotifyAllClients(const vtkSMMessage*) override;
122 
126  void NotifyOtherClients(const vtkSMMessage*) override;
127 
128 protected:
130  ~vtkPVSessionServer() override;
131 
135  void GatherInformationInternal(
136  vtkTypeUInt32 location, const char* classname, vtkTypeUInt32 globalid, vtkMultiProcessStream&);
137 
141  void SendLastResultToClient();
142 
144 
147 
148  class vtkInternals;
149  vtkInternals* Internal;
150  friend class vtkInternals;
151 
152 private:
153  vtkPVSessionServer(const vtkPVSessionServer&) = delete;
154  void operator=(const vtkPVSessionServer&) = delete;
155 };
156 
157 #endif
#define VTKREMOTINGSERVERMANAGER_EXPORT
void PrintSelf(ostream &os, vtkIndent indent) override
vtkMPIMToNSocketConnection * MPIMToNSocketConnection
virtual void NotifyOtherClients(const vtkSMMessage *)=0
Sends the message to all but the active client-session.
Header class that setup every thing in order to use Protobuf messages in a transparent manner...
class to create socket connections between two servers
vtkInternals * Internal
virtual bool GetIsAlive()=0
Returns true is this session is active/alive/valid.
virtual void NotifyAllClients(const vtkSMMessage *)=0
Sends the message to all clients.
vtkSMSessionServer is a session used on data and/or render servers.
Abstract class used to provide the main implementation of the ParaView session methods for the follow...
static vtkObject * New()
virtual vtkMultiProcessController * GetController(ServerFlags processType)
Returns the controller used to communicate with the process.