VTK
|
Process communication using Sockets. More...
#include <vtkSocketCommunicator.h>
Public Types | |
typedef vtkCommunicator | Superclass |
Public Member Functions | |
virtual const char * | GetClassName () |
virtual int | IsA (const char *type) |
void | PrintSelf (ostream &os, vtkIndent indent) |
virtual void | CloseConnection () |
virtual int | ConnectTo (const char *hostName, int port) |
int | GetIsConnected () |
virtual void | SetNumberOfProcesses (int num) |
virtual void | Barrier () |
int | Handshake () |
int | ServerSideHandshake () |
int | ClientSideHandshake () |
bool | HasBufferredMessages () |
virtual int | WaitForConnection (int port) |
virtual int | WaitForConnection (vtkServerSocket *socket, unsigned long msec=0) |
virtual int | GetSwapBytesInReceivedData () |
virtual int | SendVoidArray (const void *data, vtkIdType length, int type, int remoteHandle, int tag) |
virtual int | ReceiveVoidArray (void *data, vtkIdType length, int type, int remoteHandle, int tag) |
virtual int | BroadcastVoidArray (void *data, vtkIdType length, int type, int srcProcessId) |
virtual int | GatherVoidArray (const void *sendBuffer, void *recvBuffer, vtkIdType length, int type, int destProcessId) |
virtual int | GatherVVoidArray (const void *sendBuffer, void *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets, int type, int destProcessId) |
virtual int | ScatterVoidArray (const void *sendBuffer, void *recvBuffer, vtkIdType length, int type, int srcProcessId) |
virtual int | ScatterVVoidArray (const void *sendBuffer, void *recvBuffer, vtkIdType *sendLengths, vtkIdType *offsets, vtkIdType recvLength, int type, int srcProcessId) |
virtual int | AllGatherVoidArray (const void *sendBuffer, void *recvBuffer, vtkIdType length, int type) |
virtual int | AllGatherVVoidArray (const void *sendBuffer, void *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets, int type) |
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 | AllReduceVoidArray (const void *sendBuffer, void *recvBuffer, vtkIdType length, int type, int operation) |
virtual int | AllReduceVoidArray (const void *sendBuffer, void *recvBuffer, vtkIdType length, int type, Operation *operation) |
virtual void | SetPerformHandshake (int) |
virtual void | PerformHandshakeOn () |
virtual void | PerformHandshakeOff () |
virtual int | GetPerformHandshake () |
virtual void | SetLogStream (ostream *stream) |
virtual ostream * | GetLogStream () |
virtual int | LogToFile (const char *name) |
virtual int | LogToFile (const char *name, int append) |
virtual void | SetReportErrors (int) |
virtual int | GetReportErrors () |
virtual vtkClientSocket * | GetSocket () |
void | SetSocket (vtkClientSocket *) |
virtual int | GetIsServer () |
void | BufferCurrentMessage () |
Static Public Member Functions | |
static vtkSocketCommunicator * | New () |
static int | IsTypeOf (const char *type) |
static vtkSocketCommunicator * | SafeDownCast (vtkObject *o) |
static int | GetVersion () |
Protected Member Functions | |
vtkSocketCommunicator () | |
~vtkSocketCommunicator () | |
int | SendTagged (const void *data, int wordSize, int numWords, int tag, const char *logName) |
int | ReceiveTagged (void *data, int wordSize, int numWords, int tag, const char *logName) |
int | ReceivePartialTagged (void *data, int wordSize, int numWords, int tag, const char *logName) |
int | ReceivedTaggedFromBuffer (void *data, int wordSize, int numWords, int tag, const char *logName) |
void | FixByteOrder (void *data, int wordSize, int numWords) |
void | LogTagged (const char *name, const void *data, int wordSize, int numWords, int tag, const char *logName) |
int | CheckForErrorInternal (int id) |
Protected Attributes | |
vtkClientSocket * | Socket |
int | SwapBytesInReceivedData |
int | RemoteHas64BitIds |
int | PerformHandshake |
int | IsServer |
int | ReportErrors |
ofstream * | LogFile |
ostream * | LogStream |
bool | BufferMessage |
Process communication using Sockets.
This is a concrete implementation of vtkCommunicator which supports interprocess communication using BSD style sockets. It supports byte swapping for the communication of machines with different endianness.
Definition at line 61 of file vtkSocketCommunicator.h.
Reimplemented from vtkCommunicator.
Definition at line 65 of file vtkSocketCommunicator.h.
vtkSocketCommunicator::vtkSocketCommunicator | ( | ) | [protected] |
vtkSocketCommunicator::~vtkSocketCommunicator | ( | ) | [protected] |
static vtkSocketCommunicator* vtkSocketCommunicator::New | ( | ) | [static] |
Create an object with Debug turned off, modified time initialized to zero, and reference counting on.
Reimplemented from vtkObject.
virtual const char* vtkSocketCommunicator::GetClassName | ( | ) | [virtual] |
Reimplemented from vtkCommunicator.
static int vtkSocketCommunicator::IsTypeOf | ( | const char * | name | ) | [static] |
Return 1 if this class type is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeMacro found in vtkSetGet.h.
Reimplemented from vtkCommunicator.
virtual int vtkSocketCommunicator::IsA | ( | const char * | name | ) | [virtual] |
Return 1 if this class is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeMacro found in vtkSetGet.h.
Reimplemented from vtkCommunicator.
static vtkSocketCommunicator* vtkSocketCommunicator::SafeDownCast | ( | vtkObject * | o | ) | [static] |
Reimplemented from vtkCommunicator.
void vtkSocketCommunicator::PrintSelf | ( | ostream & | os, |
vtkIndent | indent | ||
) | [virtual] |
Methods invoked by print to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.
Reimplemented from vtkCommunicator.
Wait for connection on a given port. These methods return 1 on success, 0 on error.
virtual int vtkSocketCommunicator::WaitForConnection | ( | vtkServerSocket * | socket, |
unsigned long | msec = 0 |
||
) | [virtual] |
Wait for connection on a given port. These methods return 1 on success, 0 on error.
virtual void vtkSocketCommunicator::CloseConnection | ( | ) | [virtual] |
Close a connection.
Open a connection to host.
virtual int vtkSocketCommunicator::GetSwapBytesInReceivedData | ( | ) | [virtual] |
Returns 1 if bytes must be swapped in received ints, floats, etc
int vtkSocketCommunicator::GetIsConnected | ( | ) |
Is the communicator connected?.
virtual void vtkSocketCommunicator::SetNumberOfProcesses | ( | int | num | ) | [virtual] |
Set the number of processes you will be using.
Reimplemented from vtkCommunicator.
virtual int vtkSocketCommunicator::SendVoidArray | ( | const void * | data, |
vtkIdType | length, | ||
int | type, | ||
int | remoteHandle, | ||
int | tag | ||
) | [virtual] |
Performs the actual communication. You will usually use the convenience Send functions defined in the superclass.
Implements vtkCommunicator.
virtual int vtkSocketCommunicator::ReceiveVoidArray | ( | void * | data, |
vtkIdType | length, | ||
int | type, | ||
int | remoteHandle, | ||
int | tag | ||
) | [virtual] |
Performs the actual communication. You will usually use the convenience Send functions defined in the superclass.
Implements vtkCommunicator.
virtual void vtkSocketCommunicator::Barrier | ( | ) | [virtual] |
This class foolishly breaks the conventions of the superclass, so this overload fixes the method.
Reimplemented from vtkCommunicator.
virtual int vtkSocketCommunicator::BroadcastVoidArray | ( | void * | data, |
vtkIdType | length, | ||
int | type, | ||
int | srcProcessId | ||
) | [virtual] |
This class foolishly breaks the conventions of the superclass, so the default implementations of these methods do not work. These just give errors instead.
Reimplemented from vtkCommunicator.
virtual int vtkSocketCommunicator::GatherVoidArray | ( | const void * | sendBuffer, |
void * | recvBuffer, | ||
vtkIdType | length, | ||
int | type, | ||
int | destProcessId | ||
) | [virtual] |
This class foolishly breaks the conventions of the superclass, so the default implementations of these methods do not work. These just give errors instead.
Reimplemented from vtkCommunicator.
virtual int vtkSocketCommunicator::GatherVVoidArray | ( | const void * | sendBuffer, |
void * | recvBuffer, | ||
vtkIdType | sendLength, | ||
vtkIdType * | recvLengths, | ||
vtkIdType * | offsets, | ||
int | type, | ||
int | destProcessId | ||
) | [virtual] |
This class foolishly breaks the conventions of the superclass, so the default implementations of these methods do not work. These just give errors instead.
Reimplemented from vtkCommunicator.
virtual int vtkSocketCommunicator::ScatterVoidArray | ( | const void * | sendBuffer, |
void * | recvBuffer, | ||
vtkIdType | length, | ||
int | type, | ||
int | srcProcessId | ||
) | [virtual] |
This class foolishly breaks the conventions of the superclass, so the default implementations of these methods do not work. These just give errors instead.
Reimplemented from vtkCommunicator.
virtual int vtkSocketCommunicator::ScatterVVoidArray | ( | const void * | sendBuffer, |
void * | recvBuffer, | ||
vtkIdType * | sendLengths, | ||
vtkIdType * | offsets, | ||
vtkIdType | recvLength, | ||
int | type, | ||
int | srcProcessId | ||
) | [virtual] |
This class foolishly breaks the conventions of the superclass, so the default implementations of these methods do not work. These just give errors instead.
Reimplemented from vtkCommunicator.
virtual int vtkSocketCommunicator::AllGatherVoidArray | ( | const void * | sendBuffer, |
void * | recvBuffer, | ||
vtkIdType | length, | ||
int | type | ||
) | [virtual] |
This class foolishly breaks the conventions of the superclass, so the default implementations of these methods do not work. These just give errors instead.
Reimplemented from vtkCommunicator.
virtual int vtkSocketCommunicator::AllGatherVVoidArray | ( | const void * | sendBuffer, |
void * | recvBuffer, | ||
vtkIdType | sendLength, | ||
vtkIdType * | recvLengths, | ||
vtkIdType * | offsets, | ||
int | type | ||
) | [virtual] |
This class foolishly breaks the conventions of the superclass, so the default implementations of these methods do not work. These just give errors instead.
Reimplemented from vtkCommunicator.
virtual int vtkSocketCommunicator::ReduceVoidArray | ( | const void * | sendBuffer, |
void * | recvBuffer, | ||
vtkIdType | length, | ||
int | type, | ||
int | operation, | ||
int | destProcessId | ||
) | [virtual] |
This class foolishly breaks the conventions of the superclass, so the default implementations of these methods do not work. These just give errors instead.
Reimplemented from vtkCommunicator.
virtual int vtkSocketCommunicator::ReduceVoidArray | ( | const void * | sendBuffer, |
void * | recvBuffer, | ||
vtkIdType | length, | ||
int | type, | ||
Operation * | operation, | ||
int | destProcessId | ||
) | [virtual] |
This class foolishly breaks the conventions of the superclass, so the default implementations of these methods do not work. These just give errors instead.
Reimplemented from vtkCommunicator.
virtual int vtkSocketCommunicator::AllReduceVoidArray | ( | const void * | sendBuffer, |
void * | recvBuffer, | ||
vtkIdType | length, | ||
int | type, | ||
int | operation | ||
) | [virtual] |
This class foolishly breaks the conventions of the superclass, so the default implementations of these methods do not work. These just give errors instead.
Reimplemented from vtkCommunicator.
virtual int vtkSocketCommunicator::AllReduceVoidArray | ( | const void * | sendBuffer, |
void * | recvBuffer, | ||
vtkIdType | length, | ||
int | type, | ||
Operation * | operation | ||
) | [virtual] |
This class foolishly breaks the conventions of the superclass, so the default implementations of these methods do not work. These just give errors instead.
Reimplemented from vtkCommunicator.
virtual void vtkSocketCommunicator::SetPerformHandshake | ( | int | ) | [virtual] |
Set or get the PerformHandshake ivar. If it is on, the communicator will try to perform a handshake when connected. It is on by default.
virtual void vtkSocketCommunicator::PerformHandshakeOn | ( | ) | [virtual] |
Set or get the PerformHandshake ivar. If it is on, the communicator will try to perform a handshake when connected. It is on by default.
virtual void vtkSocketCommunicator::PerformHandshakeOff | ( | ) | [virtual] |
Set or get the PerformHandshake ivar. If it is on, the communicator will try to perform a handshake when connected. It is on by default.
virtual int vtkSocketCommunicator::GetPerformHandshake | ( | ) | [virtual] |
Set or get the PerformHandshake ivar. If it is on, the communicator will try to perform a handshake when connected. It is on by default.
virtual void vtkSocketCommunicator::SetLogStream | ( | ostream * | stream | ) | [virtual] |
Get/Set the output stream to which communications should be logged. This is intended as a debugging feature.
virtual ostream* vtkSocketCommunicator::GetLogStream | ( | ) | [virtual] |
Get/Set the output stream to which communications should be logged. This is intended as a debugging feature.
virtual int vtkSocketCommunicator::LogToFile | ( | const char * | name | ) | [virtual] |
Log messages to the given file. The file is truncated unless the second argument is non-zero (default is to truncate). If the file name is empty or NULL, logging is disabled. Returns 0 if the file failed to open, and 1 otherwise.
Log messages to the given file. The file is truncated unless the second argument is non-zero (default is to truncate). If the file name is empty or NULL, logging is disabled. Returns 0 if the file failed to open, and 1 otherwise.
virtual void vtkSocketCommunicator::SetReportErrors | ( | int | ) | [virtual] |
If ReportErrors if false, all vtkErrorMacros are suppressed.
virtual int vtkSocketCommunicator::GetReportErrors | ( | ) | [virtual] |
If ReportErrors if false, all vtkErrorMacros are suppressed.
virtual vtkClientSocket* vtkSocketCommunicator::GetSocket | ( | ) | [virtual] |
Get/Set the actual socket used for communication.
void vtkSocketCommunicator::SetSocket | ( | vtkClientSocket * | ) |
Get/Set the actual socket used for communication.
int vtkSocketCommunicator::Handshake | ( | ) |
Performs handshake. This uses vtkClientSocket::ConnectingSide to decide whether to perform ServerSideHandshake or ClientSideHandshake.
int vtkSocketCommunicator::ServerSideHandshake | ( | ) |
Performs ServerSide handshake. One should preferably use Handshake() which calls ServerSideHandshake or ClientSideHandshake as required.
int vtkSocketCommunicator::ClientSideHandshake | ( | ) |
Performs ClientSide handshake. One should preferably use Handshake() which calls ServerSideHandshake or ClientSideHandshake as required.
virtual int vtkSocketCommunicator::GetIsServer | ( | ) | [virtual] |
Returns true if this side of the socket is the server. The result is invalid if the socket is not connected.
static int vtkSocketCommunicator::GetVersion | ( | ) | [static] |
Uniquely identifies the version of this class. If the versions match, then the socket communicators should be compatible.
void vtkSocketCommunicator::BufferCurrentMessage | ( | ) | [inline] |
This flag is cleared before vtkCommand::WrongTagEvent is fired when ever a message with mismatched tag is received. If the handler wants the message to be buffered for later use, it should set this flag to true. In which case the vtkSocketCommunicator will buffer the messsage and it will be automatically processed the next time one does a ReceiveTagged() with a matching tag.
Definition at line 211 of file vtkSocketCommunicator.h.
bool vtkSocketCommunicator::HasBufferredMessages | ( | ) |
Returns true if there are any messages in the receive buffer.
int vtkSocketCommunicator::SendTagged | ( | const void * | data, |
int | wordSize, | ||
int | numWords, | ||
int | tag, | ||
const char * | logName | ||
) | [protected] |
int vtkSocketCommunicator::ReceiveTagged | ( | void * | data, |
int | wordSize, | ||
int | numWords, | ||
int | tag, | ||
const char * | logName | ||
) | [protected] |
int vtkSocketCommunicator::ReceivePartialTagged | ( | void * | data, |
int | wordSize, | ||
int | numWords, | ||
int | tag, | ||
const char * | logName | ||
) | [protected] |
int vtkSocketCommunicator::ReceivedTaggedFromBuffer | ( | void * | data, |
int | wordSize, | ||
int | numWords, | ||
int | tag, | ||
const char * | logName | ||
) | [protected] |
Fix byte order for received data.
void vtkSocketCommunicator::LogTagged | ( | const char * | name, |
const void * | data, | ||
int | wordSize, | ||
int | numWords, | ||
int | tag, | ||
const char * | logName | ||
) | [protected] |
vtkClientSocket* vtkSocketCommunicator::Socket [protected] |
Definition at line 221 of file vtkSocketCommunicator.h.
int vtkSocketCommunicator::SwapBytesInReceivedData [protected] |
Definition at line 222 of file vtkSocketCommunicator.h.
int vtkSocketCommunicator::RemoteHas64BitIds [protected] |
Definition at line 223 of file vtkSocketCommunicator.h.
int vtkSocketCommunicator::PerformHandshake [protected] |
Definition at line 224 of file vtkSocketCommunicator.h.
int vtkSocketCommunicator::IsServer [protected] |
Definition at line 225 of file vtkSocketCommunicator.h.
int vtkSocketCommunicator::ReportErrors [protected] |
Definition at line 227 of file vtkSocketCommunicator.h.
ofstream* vtkSocketCommunicator::LogFile [protected] |
Definition at line 229 of file vtkSocketCommunicator.h.
ostream* vtkSocketCommunicator::LogStream [protected] |
Definition at line 230 of file vtkSocketCommunicator.h.
bool vtkSocketCommunicator::BufferMessage [protected] |
Definition at line 254 of file vtkSocketCommunicator.h.