28 #ifndef vtkSocketCommunicator_h
29 #define vtkSocketCommunicator_h
32 #include "vtkEndian.h"
33 #include "vtkParallelCoreModule.h"
37 #ifdef VTK_WORDS_BIGENDIAN
38 #define vtkSwap4 vtkByteSwap::Swap4LE
39 #define vtkSwap4Range vtkByteSwap::Swap4LERange
40 #define vtkSwap8 vtkByteSwap::Swap8LE
41 #define vtkSwap8Range vtkByteSwap::Swap8LERange
43 #define vtkSwap4 vtkByteSwap::Swap4BE
44 #define vtkSwap4Range vtkByteSwap::Swap4BERange
45 #define vtkSwap8 vtkByteSwap::Swap8BE
46 #define vtkSwap8Range vtkByteSwap::Swap8BERange
49 VTK_ABI_NAMESPACE_BEGIN
65 virtual int WaitForConnection(
int port);
66 virtual int WaitForConnection(
vtkServerSocket* socket,
unsigned long msec = 0);
72 virtual void CloseConnection();
77 virtual int ConnectTo(
const char* hostName,
int port);
83 vtkGetMacro(SwapBytesInReceivedData,
int);
122 int destProcessId)
override;
126 int srcProcessId)
override;
134 int operation,
int destProcessId)
override;
136 Operation* operation,
int destProcessId)
override;
138 const void* sendBuffer,
void* recvBuffer,
vtkIdType length,
int type,
int operation)
override;
149 vtkSetClampMacro(PerformHandshake,
vtkTypeBool, 0, 1);
159 virtual void SetLogStream(ostream* stream);
160 virtual ostream* GetLogStream();
170 virtual int LogToFile(
const char*
name);
171 virtual int LogToFile(
const char*
name,
int append);
178 vtkSetMacro(ReportErrors,
int);
179 vtkGetMacro(ReportErrors,
int);
201 int ServerSideHandshake();
208 int ClientSideHandshake();
215 vtkGetMacro(IsServer,
int);
222 static int GetVersion();
237 bool HasBufferredMessages();
256 int SendTagged(
const void*
data,
int wordSize,
int numWords,
int tag,
const char* logName);
257 int ReceiveTagged(
void*
data,
int wordSize,
int numWords,
int tag,
const char* logName);
258 int ReceivePartialTagged(
void*
data,
int wordSize,
int numWords,
int tag,
const char* logName);
260 int ReceivedTaggedFromBuffer(
261 void*
data,
int wordSize,
int numWords,
int tag,
const char* logName);
266 void FixByteOrder(
void*
data,
int wordSize,
int numWords);
270 const char*
name,
const void*
data,
int wordSize,
int numWords,
int tag,
const char* logName);
271 int CheckForErrorInternal(
int id);
278 int SelectSocket(
int socket,
unsigned long msec);
291 int TagMessageLength;
294 class vtkMessageBuffer;
295 vtkMessageBuffer* ReceivedMessageBuffer;
298 VTK_ABI_NAMESPACE_END
void BufferCurrentMessage()
This flag is cleared before vtkCommand::WrongTagEvent is fired when ever a message with mismatched ta...
A custom operation to use in a reduce command.
virtual int GatherVVoidArray(const void *sendBuffer, void *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets, int type, int destProcessId)
Subclasses should reimplement these if they have a more efficient implementation. ...
virtual int BroadcastVoidArray(void *data, vtkIdType length, int type, int srcProcessId)
Subclasses should reimplement these if they have a more efficient implementation. ...
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkTypeBool PerformHandshake
Process communication using Sockets.
Encapsulate a socket that accepts connections.
virtual int AllGatherVVoidArray(const void *sendBuffer, void *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets, int type)
Subclasses should reimplement these if they have a more efficient implementation. ...
virtual int ReceiveVoidArray(void *data, vtkIdType maxlength, int type, int remoteHandle, int tag)=0
Subclasses have to supply this method to receive various arrays of data.
virtual int ReduceVoidArray(const void *sendBuffer, void *recvBuffer, vtkIdType length, int type, int operation, int destProcessId)
Subclasses should reimplement these if they have a more efficient implementation. ...
a simple class to control print indentation
virtual int GatherVoidArray(const void *sendBuffer, void *recvBuffer, vtkIdType length, int type, int destProcessId)
Subclasses should reimplement these if they have a more efficient implementation. ...
virtual int ScatterVVoidArray(const void *sendBuffer, void *recvBuffer, vtkIdType *sendLengths, vtkIdType *offsets, vtkIdType recvLength, int type, int srcProcessId)
Subclasses should reimplement these if they have a more efficient implementation. ...
virtual int SendVoidArray(const void *data, vtkIdType length, int type, int remoteHandle, int tag)=0
Subclasses have to supply this method to send various arrays of data.
virtual void SetNumberOfProcesses(int num)
Set the number of processes you will be using.
virtual int AllGatherVoidArray(const void *sendBuffer, void *recvBuffer, vtkIdType length, int type)
Subclasses should reimplement these if they have a more efficient implementation. ...
virtual void Barrier()
Will block the processes until all other processes reach the Barrier function.
virtual int AllReduceVoidArray(const void *sendBuffer, void *recvBuffer, vtkIdType length, int type, int operation)
Subclasses should reimplement these if they have a more efficient implementation. ...
virtual int ScatterVoidArray(const void *sendBuffer, void *recvBuffer, vtkIdType length, int type, int srcProcessId)
Subclasses should reimplement these if they have a more efficient implementation. ...
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...
Used to send/receive messages in a multiprocess environment.
Encapsulates a client socket.
int SwapBytesInReceivedData