Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

vtkSocketCommunicator Class Reference

#include <vtkSocketCommunicator.h>

Inheritance diagram for vtkSocketCommunicator:

Inheritance graph
[legend]
Collaboration diagram for vtkSocketCommunicator:

Collaboration graph
[legend]
List of all members.

Detailed Description

Process communication using Sockets.

Date
2002/11/08 18:15:14
Revision
1.28

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.

Warning:
Communication between 32 bit and 64 bit systems is not fully supported. If a type does not have the same length on both systems, this communicator can not be used to transfer data of that type.
See also:
vtkCommunicator vtkSharedMemoryCommunicator vtkSocketController
Tests:
vtkSocketCommunicator (Tests)

Definition at line 59 of file 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 int WaitForConnection (int port)
virtual void CloseConnection ()
virtual int ConnectTo (char *hostName, int port)
int ReceiveMessage (char *data, int *length, int maxlength)
int SendMessage (const char *data, int length)
virtual int GetSwapBytesInReceivedData ()
virtual int GetIsConnected ()
int Send (int *data, int length, int remoteProcessId, int tag)
int Send (unsigned long *data, int length, int remoteProcessId, int tag)
int Send (char *data, int length, int remoteProcessId, int tag)
int Send (unsigned char *data, int length, int remoteProcessId, int tag)
int Send (float *data, int length, int remoteProcessId, int tag)
int Send (double *data, int length, int remoteProcessId, int tag)
int Send (vtkDataObject *data, int remoteId, int tag)
int Send (vtkDataArray *data, int remoteId, int tag)
int Receive (int *data, int length, int remoteProcessId, int tag)
int Receive (unsigned long *data, int length, int remoteProcessId, int tag)
int Receive (char *data, int length, int remoteProcessId, int tag)
int Receive (unsigned char *data, int length, int remoteProcessId, int tag)
int Receive (float *data, int length, int remoteProcessId, int tag)
int Receive (double *data, int length, int remoteProcessId, int tag)
int Receive (vtkDataObject *data, int remoteId, int tag)
int Receive (vtkDataArray *data, int remoteId, int tag)
virtual void SetPerformHandshake (int)
virtual void PerformHandshakeOn ()
virtual void PerformHandshakeOff ()
virtual int GetPerformHandshake ()

Static Public Member Functions

vtkSocketCommunicatorNew ()
int IsTypeOf (const char *type)
vtkSocketCommunicatorSafeDownCast (vtkObject *o)

Protected Member Functions

 vtkSocketCommunicator ()
 ~vtkSocketCommunicator ()
int ReceiveMessage (char *data, int size, int length, int tag)

Protected Attributes

int Socket
int IsConnected
int NumberOfProcesses
int SwapBytesInReceivedData
int PerformHandshake
ofstream * TraceFile


Member Typedef Documentation

typedef vtkCommunicator vtkSocketCommunicator::Superclass
 

Reimplemented from vtkCommunicator.

Definition at line 63 of file vtkSocketCommunicator.h.


Constructor & Destructor Documentation

vtkSocketCommunicator::vtkSocketCommunicator  )  [protected]
 

vtkSocketCommunicator::~vtkSocketCommunicator  )  [protected]
 


Member Function Documentation

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.

int vtkSocketCommunicator::IsTypeOf const char *  type  )  [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 vtkTypeRevisionMacro found in vtkSetGet.h.

Reimplemented from vtkCommunicator.

virtual int vtkSocketCommunicator::IsA const char *  type  )  [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 vtkTypeRevisionMacro found in vtkSetGet.h.

Reimplemented from vtkCommunicator.

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.

virtual int vtkSocketCommunicator::WaitForConnection int  port  )  [virtual]
 

Wait for connection on a given port.

virtual void vtkSocketCommunicator::CloseConnection  )  [virtual]
 

Close a connection.

virtual int vtkSocketCommunicator::ConnectTo 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

virtual int vtkSocketCommunicator::GetIsConnected  )  [virtual]
 

Is the communicator connected?.

int vtkSocketCommunicator::Send int *  data,
int  length,
int  remoteProcessId,
int  tag
[virtual]
 

This method sends data to another process. Tag eliminates ambiguity when multiple sends or receives exist in the same process.

Implements vtkCommunicator.

int vtkSocketCommunicator::Send unsigned long *  data,
int  length,
int  remoteProcessId,
int  tag
[virtual]
 

This method sends data to another process. Tag eliminates ambiguity when multiple sends or receives exist in the same process.

Implements vtkCommunicator.

int vtkSocketCommunicator::Send char *  data,
int  length,
int  remoteProcessId,
int  tag
[virtual]
 

This method sends data to another process. Tag eliminates ambiguity when multiple sends or receives exist in the same process.

Implements vtkCommunicator.

int vtkSocketCommunicator::Send unsigned char *  data,
int  length,
int  remoteProcessId,
int  tag
[virtual]
 

This method sends data to another process. Tag eliminates ambiguity when multiple sends or receives exist in the same process.

Implements vtkCommunicator.

int vtkSocketCommunicator::Send float *  data,
int  length,
int  remoteProcessId,
int  tag
[virtual]
 

This method sends data to another process. Tag eliminates ambiguity when multiple sends or receives exist in the same process.

Implements vtkCommunicator.

int vtkSocketCommunicator::Send double *  data,
int  length,
int  remoteProcessId,
int  tag
[virtual]
 

This method sends data to another process. Tag eliminates ambiguity when multiple sends or receives exist in the same process.

Implements vtkCommunicator.

int vtkSocketCommunicator::Send vtkDataObject data,
int  remoteId,
int  tag
[inline, virtual]
 

This method sends data to another process. Tag eliminates ambiguity when multiple sends or receives exist in the same process.

Reimplemented from vtkCommunicator.

Definition at line 100 of file vtkSocketCommunicator.h.

References vtkCommunicator::Send().

int vtkSocketCommunicator::Send vtkDataArray data,
int  remoteId,
int  tag
[inline, virtual]
 

This method sends data to another process. Tag eliminates ambiguity when multiple sends or receives exist in the same process.

Reimplemented from vtkCommunicator.

Definition at line 102 of file vtkSocketCommunicator.h.

References vtkCommunicator::Send().

int vtkSocketCommunicator::Receive int *  data,
int  length,
int  remoteProcessId,
int  tag
[virtual]
 

This method receives data from a corresponding send. It blocks until the receive is finished. It calls methods in "data" to communicate the sending data.

Implements vtkCommunicator.

int vtkSocketCommunicator::Receive unsigned long *  data,
int  length,
int  remoteProcessId,
int  tag
[virtual]
 

This method receives data from a corresponding send. It blocks until the receive is finished. It calls methods in "data" to communicate the sending data.

Implements vtkCommunicator.

int vtkSocketCommunicator::Receive char *  data,
int  length,
int  remoteProcessId,
int  tag
[virtual]
 

This method receives data from a corresponding send. It blocks until the receive is finished. It calls methods in "data" to communicate the sending data.

Implements vtkCommunicator.

int vtkSocketCommunicator::Receive unsigned char *  data,
int  length,
int  remoteProcessId,
int  tag
[virtual]
 

This method receives data from a corresponding send. It blocks until the receive is finished. It calls methods in "data" to communicate the sending data.

Implements vtkCommunicator.

int vtkSocketCommunicator::Receive float *  data,
int  length,
int  remoteProcessId,
int  tag
[virtual]
 

This method receives data from a corresponding send. It blocks until the receive is finished. It calls methods in "data" to communicate the sending data.

Implements vtkCommunicator.

int vtkSocketCommunicator::Receive double *  data,
int  length,
int  remoteProcessId,
int  tag
[virtual]
 

This method receives data from a corresponding send. It blocks until the receive is finished. It calls methods in "data" to communicate the sending data.

Implements vtkCommunicator.

int vtkSocketCommunicator::Receive vtkDataObject data,
int  remoteId,
int  tag
[inline, virtual]
 

This method receives data from a corresponding send. It blocks until the receive is finished. It calls methods in "data" to communicate the sending data.

Reimplemented from vtkCommunicator.

Definition at line 119 of file vtkSocketCommunicator.h.

References vtkCommunicator::Receive().

int vtkSocketCommunicator::Receive vtkDataArray data,
int  remoteId,
int  tag
[inline, virtual]
 

This method receives data from a corresponding send. It blocks until the receive is finished. It calls methods in "data" to communicate the sending data.

Reimplemented from vtkCommunicator.

Definition at line 121 of file vtkSocketCommunicator.h.

References vtkCommunicator::Receive().

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.

int vtkSocketCommunicator::ReceiveMessage char *  data,
int *  length,
int  maxlength
 

Wait for message and store it in the data. The message has maximum length of maxlength. It's actual length is stored in length.

int vtkSocketCommunicator::SendMessage const char *  data,
int  length
 

Send message.

int vtkSocketCommunicator::ReceiveMessage char *  data,
int  size,
int  length,
int  tag
[protected]
 


Member Data Documentation

int vtkSocketCommunicator::Socket [protected]
 

Definition at line 141 of file vtkSocketCommunicator.h.

int vtkSocketCommunicator::IsConnected [protected]
 

Definition at line 142 of file vtkSocketCommunicator.h.

int vtkSocketCommunicator::NumberOfProcesses [protected]
 

Definition at line 143 of file vtkSocketCommunicator.h.

int vtkSocketCommunicator::SwapBytesInReceivedData [protected]
 

Definition at line 144 of file vtkSocketCommunicator.h.

int vtkSocketCommunicator::PerformHandshake [protected]
 

Definition at line 145 of file vtkSocketCommunicator.h.

ofstream* vtkSocketCommunicator::TraceFile [protected]
 

Definition at line 152 of file vtkSocketCommunicator.h.


The documentation for this class was generated from the following file: