VTK
|
Process communication using Sockets. More...
#include <vtkSocketCommunicator.h>
Public Types | |
typedef vtkCommunicator | Superclass |
Public Member Functions | |
virtual int | IsA (const char *type) |
vtkSocketCommunicator * | NewInstance () const |
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 (vtkObjectBase *o) |
static int | GetVersion () |
Protected Member Functions | |
virtual vtkObjectBase * | NewInstanceInternal () const |
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 62 of file vtkSocketCommunicator.h.
Reimplemented from vtkCommunicator.
Definition at line 66 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.
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 | ( | vtkObjectBase * | o | ) | [static] |
Reimplemented from vtkCommunicator.
virtual vtkObjectBase* vtkSocketCommunicator::NewInstanceInternal | ( | ) | const [protected, virtual] |
Reimplemented from vtkCommunicator.
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.
virtual int vtkSocketCommunicator::WaitForConnection | ( | int | port | ) | [virtual] |
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.
virtual int vtkSocketCommunicator::ConnectTo | ( | const char * | hostName, |
int | port | ||
) | [virtual] |
Open a connection to host.
virtual int vtkSocketCommunicator::GetSwapBytesInReceivedData | ( | ) | [virtual] |
Returns 1 if bytes must be swapped in received ints, floats, etc
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.
virtual int vtkSocketCommunicator::LogToFile | ( | const char * | name, |
int | append | ||
) | [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.
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.
Performs handshake. This uses vtkClientSocket::ConnectingSide to decide whether to perform ServerSideHandshake or ClientSideHandshake.
Performs ServerSide handshake. One should preferably use Handshake() which calls ServerSideHandshake or ClientSideHandshake as required.
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 212 of file vtkSocketCommunicator.h.
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] |
void vtkSocketCommunicator::FixByteOrder | ( | void * | data, |
int | wordSize, | ||
int | numWords | ||
) | [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] |
int vtkSocketCommunicator::CheckForErrorInternal | ( | int | id | ) | [protected] |
vtkClientSocket* vtkSocketCommunicator::Socket [protected] |
Definition at line 222 of file vtkSocketCommunicator.h.
int vtkSocketCommunicator::SwapBytesInReceivedData [protected] |
Definition at line 223 of file vtkSocketCommunicator.h.
int vtkSocketCommunicator::RemoteHas64BitIds [protected] |
Definition at line 224 of file vtkSocketCommunicator.h.
int vtkSocketCommunicator::PerformHandshake [protected] |
Definition at line 225 of file vtkSocketCommunicator.h.
int vtkSocketCommunicator::IsServer [protected] |
Definition at line 226 of file vtkSocketCommunicator.h.
int vtkSocketCommunicator::ReportErrors [protected] |
Definition at line 228 of file vtkSocketCommunicator.h.
ofstream* vtkSocketCommunicator::LogFile [protected] |
Definition at line 230 of file vtkSocketCommunicator.h.
ostream* vtkSocketCommunicator::LogStream [protected] |
Definition at line 231 of file vtkSocketCommunicator.h.
bool vtkSocketCommunicator::BufferMessage [protected] |
Definition at line 255 of file vtkSocketCommunicator.h.