VTK  9.2.6
vtkSocketController.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkSocketController.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
44 #ifndef vtkSocketController_h
45 #define vtkSocketController_h
46 
48 #include "vtkParallelCoreModule.h" // For export macro
49 
51 
52 class VTKPARALLELCORE_EXPORT vtkSocketController : public vtkMultiProcessController
53 {
54 public:
55  static vtkSocketController* New();
57  void PrintSelf(ostream& os, vtkIndent indent) override;
58 
63  void Initialize(int* argc, char*** argv, int) override { this->Initialize(argc, argv); }
64  void Initialize(int* argc, char*** argv) override;
65  virtual void Initialize() { this->Initialize(nullptr, nullptr); }
66 
70  void Finalize() override {}
71  void Finalize(int) override {}
72 
76  void SingleMethodExecute() override {}
77 
81  void MultipleMethodExecute() override {}
82 
86  void CreateOutputWindow() override {}
87 
92  virtual int WaitForConnection(int port);
93 
98  virtual void CloseConnection();
99 
104  virtual int ConnectTo(const char* hostName, int port);
105 
106  int GetSwapBytesInReceivedData();
107 
111  void SetCommunicator(vtkSocketCommunicator* comm);
112 
122  vtkMultiProcessController* CreateCompliantController();
123 
124  enum Consts
125  {
126  ENDIAN_TAG = 1010580540, // 0x3c3c3c3c
127  IDTYPESIZE_TAG = 1027423549, // 0x3d3d3d3d
128  VERSION_TAG = 1044266558, // 0x3e3e3e3e
129  HASH_TAG = 0x3f3f3f3f
130  };
131 
132 protected:
134  ~vtkSocketController() override;
135 
136  // Initialize only once, finialize on destruction.
137  static int Initialized;
138 
139 private:
140  vtkSocketController(const vtkSocketController&) = delete;
141  void operator=(const vtkSocketController&) = delete;
142 };
143 
144 #endif // vtkSocketController_h
Process communication using Sockets.
virtual void Initialize()
Process communication using Sockets.
void Finalize() override
Does not apply to sockets.
void CreateOutputWindow() override
Does not apply to sockets.
void SingleMethodExecute() override
Does not apply to sockets.
virtual void Initialize(int *vtkNotUsed(argc), char ***vtkNotUsed(argv))=0
This method is for setting up the processes.
void Initialize(int *argc, char ***argv, int) override
This method is for initialiazing sockets.
a simple class to control print indentation
Definition: vtkIndent.h:39
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void MultipleMethodExecute() override
Does not apply to sockets.
void Finalize(int) override
This method is for cleaning up.
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...
Multiprocessing communication superclass.