37#ifndef vtkSocketCommunicator_h
38#define vtkSocketCommunicator_h
40#include "vtkParallelCoreModule.h"
45#ifdef VTK_WORDS_BIGENDIAN
46# define vtkSwap4 vtkByteSwap::Swap4LE
47# define vtkSwap4Range vtkByteSwap::Swap4LERange
48# define vtkSwap8 vtkByteSwap::Swap8LE
49# define vtkSwap8Range vtkByteSwap::Swap8LERange
51# define vtkSwap4 vtkByteSwap::Swap4BE
52# define vtkSwap4Range vtkByteSwap::Swap4BERange
53# define vtkSwap8 vtkByteSwap::Swap8BE
54# define vtkSwap8Range vtkByteSwap::Swap8BERange
74 unsigned long msec = 0);
91 vtkGetMacro(SwapBytesInReceivedData,
int);
112 int remoteHandle,
int tag);
114 int remoteHandle,
int tag);
149 int operation,
int destProcessId);
152 Operation *operation,
int destProcessId);
167 vtkSetClampMacro(PerformHandshake,
int, 0, 1);
169 vtkGetMacro(PerformHandshake,
int);
197 vtkGetMacro(ReportErrors,
int);
233 vtkGetMacro(IsServer,
int);
251 { this->BufferMessage =
true; }
277 const char* logName);
279 const char* logName);
281 const char* logName);
284 void*
data,
int wordSize,
int numWords,
int tag,
const char* logName);
293 int tag,
const char* logName);
300 int SelectSocket(
int socket,
unsigned long msec);
312 int TagMessageLength;
315 class vtkMessageBuffer;
316 vtkMessageBuffer* ReceivedMessageBuffer;
Encapsulates a client socket.
A custom operation to use in a reduce command.
Used to send/receive messages in a multiprocess environment.
a simple class to control print indentation
Encapsulate a socket that accepts connections.
Process communication using Sockets.
virtual void SetNumberOfProcesses(int num)
Set the number of processes you will be using.
virtual int ReduceVoidArray(const void *sendBuffer, void *recvBuffer, vtkIdType length, int type, int operation, int destProcessId)
virtual int ReduceVoidArray(const void *sendBuffer, void *recvBuffer, vtkIdType length, int type, Operation *operation, int destProcessId)
virtual int AllGatherVoidArray(const void *sendBuffer, void *recvBuffer, vtkIdType length, int type)
int ClientSideHandshake()
Performs ClientSide handshake.
void PrintSelf(ostream &os, vtkIndent indent)
Methods invoked by print to print information about the object including superclasses.
virtual int BroadcastVoidArray(void *data, vtkIdType length, int type, int srcProcessId)
This class foolishly breaks the conventions of the superclass, so the default implementations of thes...
int Handshake()
Performs handshake.
virtual void Barrier()
This class foolishly breaks the conventions of the superclass, so this overload fixes the method.
virtual int LogToFile(const char *name, int append)
virtual int ConnectTo(const char *hostName, int port)
Open a connection to host.
int ServerSideHandshake()
Performs ServerSide handshake.
int GetIsConnected()
Is the communicator connected?.
int ReceivePartialTagged(void *data, int wordSize, int numWords, int tag, const char *logName)
virtual void CloseConnection()
Close a connection.
void FixByteOrder(void *data, int wordSize, int numWords)
Fix byte order for received data.
int SendTagged(const void *data, int wordSize, int numWords, int tag, const char *logName)
virtual int AllReduceVoidArray(const void *sendBuffer, void *recvBuffer, vtkIdType length, int type, Operation *operation)
void LogTagged(const char *name, const void *data, int wordSize, int numWords, int tag, const char *logName)
int ReceivedTaggedFromBuffer(void *data, int wordSize, int numWords, int tag, const char *logName)
virtual int WaitForConnection(vtkServerSocket *socket, unsigned long msec=0)
static int GetVersion()
Uniquely identifies the version of this class.
virtual int WaitForConnection(int port)
Wait for connection on a given port.
virtual int SendVoidArray(const void *data, vtkIdType length, int type, int remoteHandle, int tag)
Performs the actual communication.
virtual int GatherVVoidArray(const void *sendBuffer, void *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets, int type, int destProcessId)
virtual int ReceiveVoidArray(void *data, vtkIdType length, int type, int remoteHandle, int tag)
Subclasses have to supply this method to receive various arrays of data.
virtual int GatherVoidArray(const void *sendBuffer, void *recvBuffer, vtkIdType length, int type, int destProcessId)
virtual ostream * GetLogStream()
virtual int ScatterVVoidArray(const void *sendBuffer, void *recvBuffer, vtkIdType *sendLengths, vtkIdType *offsets, vtkIdType recvLength, int type, int srcProcessId)
int CheckForErrorInternal(int id)
virtual int LogToFile(const char *name)
Log messages to the given file.
static vtkSocketCommunicator * New()
virtual int AllReduceVoidArray(const void *sendBuffer, void *recvBuffer, vtkIdType length, int type, int operation)
bool HasBufferredMessages()
Returns true if there are any messages in the receive buffer.
int ReceiveTagged(void *data, int wordSize, int numWords, int tag, const char *logName)
void SetSocket(vtkClientSocket *)
virtual void SetLogStream(ostream *stream)
Get/Set the output stream to which communications should be logged.
virtual int ScatterVoidArray(const void *sendBuffer, void *recvBuffer, vtkIdType length, int type, int srcProcessId)
virtual int AllGatherVVoidArray(const void *sendBuffer, void *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets, int type)
int SwapBytesInReceivedData
void BufferCurrentMessage()
This flag is cleared before vtkCommand::WrongTagEvent is fired when ever a message with mismatched ta...
vtkSetMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
vtkBooleanMacro(IgnoreDriverBugs, bool)
Updates the extensions string.