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

vtkMPIController Class Reference

Process communication using MPI. More...

#include <vtkMPIController.h>

Inheritance diagram for vtkMPIController:

Inheritance graph
[legend]
Collaboration diagram for vtkMPIController:

Collaboration graph
[legend]
List of all members.

Public Methods

virtual const char * GetClassName ()
virtual int IsA (const char *type)
void PrintSelf (ostream &os, vtkIndent indent)
void Initialize (int argc, char *arcv[])
void SingleMethodExecute ()
void MultipleMethodExecute ()
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 (float *data, int length, int remoteProcessId, int tag)
int Send (vtkDataObject *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 (float *data, int length, int remoteProcessId, int tag)
int Receive (vtkDataObject *data, int remoteId, int tag)

Static Public Methods

vtkMPIController * New ()
int IsTypeOf (const char *type)
vtkMPIController * SafeDownCast (vtkObject *o)

Protected Methods

 vtkMPIController ()
 ~vtkMPIController ()
 vtkMPIController (const vtkMPIController &)
void operator= (const vtkMPIController &)

Protected Attributes

int Initialized

Detailed Description

Process communication using MPI.

Date:
2000/12/10 20:08:25
Revision:
1.16

vtkMPIController supplies a minimal set of communication methods as an abstract interface through a variety of multi-processing communication techniques. It accepts Sends and Receives as well as implements remove method invocations (RMI) The "RegisterAndGetGlobalController" ensures that at most one controller exists per process. In most cases, the controller will be created automatically by a higher level object. The intent is to generalize this class to have different multiprocessing options: Threads, forking processes with shared memory or pipes. The initialization is modeled after vtkMultiThreader, and may merge with vtkMultiThreader in the future.

See also:
vtkDownStreamPort vtkUpStreamPort vtkMultiThreader vtkMultiProcessController

Definition at line 68 of file vtkMPIController.h.


Constructor & Destructor Documentation

vtkMPIController::vtkMPIController   [protected]
 

vtkMPIController::~vtkMPIController   [protected]
 

vtkMPIController::vtkMPIController const vtkMPIController &    [inline, protected]
 

Definition at line 113 of file vtkMPIController.h.


Member Function Documentation

vtkMPIController* vtkMPIController::New   [static]
 

Create an object with Debug turned off, modified time initialized to zero, and reference counting on.

Reimplemented from vtkMultiProcessController.

virtual const char* vtkMPIController::GetClassName   [virtual]
 

Return the class name as a string. This method is defined in all subclasses of vtkObject with the vtkTypeMacro found in vtkSetGet.h.

Reimplemented from vtkMultiProcessController.

int vtkMPIController::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 vtkTypeMacro found in vtkSetGet.h.

Reimplemented from vtkMultiProcessController.

virtual int vtkMPIController::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 vtkTypeMacro found in vtkSetGet.h.

Reimplemented from vtkMultiProcessController.

vtkMPIController* vtkMPIController::SafeDownCast vtkObject   o [static]
 

Will cast the supplied object to vtkObject* is this is a safe operation (i.e., a safe downcast); otherwise NULL is returned. This method is defined in all subclasses of vtkObject with the vtkTypeMacro found in vtkSetGet.h.

Reimplemented from vtkMultiProcessController.

void vtkMPIController::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 vtkMultiProcessController.

void vtkMPIController::Initialize int    argc,
char *    arcv[]
 

This method is for setting up the processes.

void vtkMPIController::SingleMethodExecute   [virtual]
 

Execute the SingleMethod (as define by SetSingleMethod) using this->NumberOfProcesses processes. You should not expect this to return.

Reimplemented from vtkMultiProcessController.

void vtkMPIController::MultipleMethodExecute   [virtual]
 

Execute the MultipleMethods (as define by calling SetMultipleMethod for each of the required this->NumberOfProcesses methods) using this->NumberOfProcesses processes.

Reimplemented from vtkMultiProcessController.

int vtkMPIController::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.

Reimplemented from vtkMultiProcessController.

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

Reimplemented from vtkMultiProcessController.

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

Reimplemented from vtkMultiProcessController.

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

Reimplemented from vtkMultiProcessController.

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

This method sends an object to another process. Tag eliminates ambiguity and is used to match sends to receives.

Reimplemented from vtkMultiProcessController.

Definition at line 96 of file vtkMPIController.h.

int vtkMPIController::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.

Reimplemented from vtkMultiProcessController.

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

Reimplemented from vtkMultiProcessController.

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

Reimplemented from vtkMultiProcessController.

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

Reimplemented from vtkMultiProcessController.

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

This method receives a data object from a corresponding send. It blocks until the receive is finished.

Reimplemented from vtkMultiProcessController.

Definition at line 106 of file vtkMPIController.h.

void vtkMPIController::operator= const vtkMPIController &    [inline, protected]
 

Definition at line 114 of file vtkMPIController.h.


Member Data Documentation

int vtkMPIController::Initialized [protected]
 

Definition at line 117 of file vtkMPIController.h.


The documentation for this class was generated from the following file:
Generated on Wed Nov 21 12:55:03 2001 for VTK by doxygen1.2.11.1 written by Dimitri van Heesch, © 1997-2001