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

vtkPVClientServerModule Class Reference

Encapsulate all of the process initialization. More...

#include <vtkPVClientServerModule.h>

Inheritance diagram for vtkPVClientServerModule:

Inheritance graph
[legend]
Collaboration diagram for vtkPVClientServerModule:

Collaboration graph
[legend]
List of all members.

Public Types

enum  { SINGLE_PROCESS_MODE = 0, MPI_MODE }

Public Member Functions

 vtkTypeRevisionMacro (vtkPVClientServerModule, vtkPVProcessModule)
void PrintSelf (ostream &os, vtkIndent indent)
virtual int Start (int argc, char **argv)
void Initialize ()
virtual void Exit ()
virtual int GetPartitionId ()
vtkSocketController * GetRenderServerSocketController ()
void ProcessMessage (unsigned char *arg, size_t len)
virtual int LoadModuleInternal (const char *name, const char *directory)
virtual void SetProcessEnvironmentVariable (int processId, const char *var)
virtual int GetNumberOfPartitions ()
virtual int GetNumberOfProcesses ()
virtual void SetNumberOfProcesses (int)
virtual int GetMultiProcessMode ()
virtual void SetMultiProcessMode (int)
virtual int GetNumberOfServerProcesses ()
virtual void SetNumberOfServerProcesses (int)
virtual vtkSocketController * GetSocketController ()
virtual void GatherInformation (vtkPVInformation *info, vtkClientServerID id)
virtual void GatherInformationRenderServer (vtkPVInformation *info, vtkClientServerID id)
virtual void GatherInformationInternal (const char *infoClassName, vtkObject *object)
virtual int GetDirectoryListing (const char *dir, vtkStringList *dirs, vtkStringList *files, int save)
virtual int GetEnabled ()

Static Public Member Functions

vtkPVClientServerModuleNew ()
void ErrorCallback (vtkObject *caller, unsigned long eid, void *clientdata, void *calldata)

Protected Member Functions

 vtkPVClientServerModule ()
 ~vtkPVClientServerModule ()
void SendLastClientServerResult ()
void Connect ()
void ConnectToRemote ()
void SetupWaitForConnection ()
int ShouldWaitForConnection ()
int OpenConnectionDialog (int *start)
void InitializeRenderServer ()
virtual const char * DetermineLogFilePrefix ()
int WaitForConnectionOnSocket (vtkSocketCommunicator *comm, int sock)
virtual vtkTypeUInt32 CreateSendFlag (vtkTypeUInt32 servers)
virtual int SendStreamToClient (vtkClientServerStream &)
virtual int SendStreamToDataServer (vtkClientServerStream &)
virtual int SendStreamToDataServerRoot (vtkClientServerStream &)
virtual int SendStreamToRenderServer (vtkClientServerStream &)
virtual int SendStreamToRenderServerRoot (vtkClientServerStream &)
virtual const vtkClientServerStream & GetLastDataServerResult ()
virtual const vtkClientServerStream & GetLastRenderServerResult ()

Protected Attributes

int NumberOfServerProcesses
vtkSocketController * SocketController
vtkSocketController * RenderServerSocket
int NumberOfRenderServerProcesses
int ArgumentCount
char ** Arguments
int ReturnValue
int MultiProcessMode
int NumberOfProcesses
int GatherRenderServer
vtkClientServerStream * LastServerResultStream
int Enabled

Friends

void vtkPVClientServerLastResultRMI (void *, void *, int,int)

Detailed Description

Encapsulate all of the process initialization.

A class to encapsulate all of the process initialization, distributed data model and duplication of the pipeline. Filters and compositers will still need a controller, but everything else should be handled here. This class sets up the default MPI processes with the user interface running on process 0. I plan to make an alternative module for client server mode, where the client running the UI is not in the MPI group but links to the MPI group through a socket connection.

Definition at line 43 of file vtkPVClientServerModule.h.


Member Enumeration Documentation

anonymous enum
 

Enumeration values:
SINGLE_PROCESS_MODE 
MPI_MODE 

Definition at line 107 of file vtkPVClientServerModule.h.


Constructor & Destructor Documentation

vtkPVClientServerModule::vtkPVClientServerModule  )  [protected]
 

vtkPVClientServerModule::~vtkPVClientServerModule  )  [protected]
 


Member Function Documentation

vtkPVClientServerModule* vtkPVClientServerModule::New  )  [static]
 

Reimplemented from vtkPVProcessModule.

vtkPVClientServerModule::vtkTypeRevisionMacro vtkPVClientServerModule  ,
vtkPVProcessModule 
 

void vtkPVClientServerModule::PrintSelf ostream &  os,
vtkIndent  indent
 

Reimplemented from vtkPVProcessModule.

virtual int vtkPVClientServerModule::Start int  argc,
char **  argv
[virtual]
 

This starts the whole application. This method initializes the MPI controller, then passes control onto the init method.

Reimplemented from vtkPVProcessModule.

void vtkPVClientServerModule::Initialize  ) 
 

Start calls this method to continue initialization. This method initializes the sockets and then calls

Reimplemented from vtkProcessModule.

virtual void vtkPVClientServerModule::Exit  )  [virtual]
 

This breaks rmi loops and cleans up processes.`

Reimplemented from vtkPVProcessModule.

virtual int vtkPVClientServerModule::GetPartitionId  )  [virtual]
 

Get the Partition piece. -1 means no partition assigned to this process.

Reimplemented from vtkProcessModule.

virtual int vtkPVClientServerModule::GetNumberOfPartitions  )  [virtual]
 

Get the number of processes participating in sharing the data.

Reimplemented from vtkProcessModule.

virtual int vtkPVClientServerModule::GetNumberOfProcesses  )  [virtual]
 

Get the number of processes participating in sharing the data.

virtual void vtkPVClientServerModule::SetNumberOfProcesses int   )  [virtual]
 

Get the number of processes participating in sharing the data.

virtual int vtkPVClientServerModule::GetMultiProcessMode  )  [virtual]
 

Get the number of processes participating in sharing the data.

virtual void vtkPVClientServerModule::SetMultiProcessMode int   )  [virtual]
 

Get the number of processes participating in sharing the data.

virtual int vtkPVClientServerModule::GetNumberOfServerProcesses  )  [virtual]
 

Get the number of processes participating in sharing the data.

virtual void vtkPVClientServerModule::SetNumberOfServerProcesses int   )  [virtual]
 

Get the number of processes participating in sharing the data.

virtual vtkSocketController* vtkPVClientServerModule::GetSocketController  )  [virtual]
 

This is a socket controller used to communicate between the client and process 0 of the server.

Reimplemented from vtkPVProcessModule.

vtkSocketController* vtkPVClientServerModule::GetRenderServerSocketController  ) 
 

Return the socket to the RenderServer, if this is not set, return the SocketController.

virtual void vtkPVClientServerModule::GatherInformation vtkPVInformation info,
vtkClientServerID  id
[virtual]
 

Module dependant method for collecting data information from all procs.

Reimplemented from vtkProcessModule.

virtual void vtkPVClientServerModule::GatherInformationRenderServer vtkPVInformation info,
vtkClientServerID  id
[virtual]
 

Module dependant method for collecting data information from all procs.

Reimplemented from vtkProcessModule.

virtual void vtkPVClientServerModule::GatherInformationInternal const char *  infoClassName,
vtkObject *  object
[virtual]
 

Module dependant method for collecting data information from all procs.

Reimplemented from vtkProcessModule.

virtual int vtkPVClientServerModule::GetDirectoryListing const char *  dir,
vtkStringList dirs,
vtkStringList files,
int  save
[virtual]
 

Get a directory listing for the given directory. This implementation will always give a listing on the server side.

Reimplemented from vtkPVProcessModule.

void vtkPVClientServerModule::ErrorCallback vtkObject *  caller,
unsigned long  eid,
void *  clientdata,
void *  calldata
[static]
 

void vtkPVClientServerModule::ProcessMessage unsigned char *  arg,
size_t  len
 

Process a client server message on the server.

virtual int vtkPVClientServerModule::LoadModuleInternal const char *  name,
const char *  directory
[virtual]
 

Used internally. Do not call. Use LoadModule instead.

Reimplemented from vtkPVProcessModule.

virtual void vtkPVClientServerModule::SetProcessEnvironmentVariable int  processId,
const char *  var
[virtual]
 

This method leaks memory. It is a quick and dirty way to set different DISPLAY environment variables on the render server. I think the string cannot be deleted until paraview exits. The var should have the form: "DISPLAY=amber1"

Reimplemented from vtkPVProcessModule.

virtual int vtkPVClientServerModule::GetEnabled  )  [virtual]
 

Internal use. Made public to allow callbacks access.

virtual vtkTypeUInt32 vtkPVClientServerModule::CreateSendFlag vtkTypeUInt32  servers  )  [protected, virtual]
 

Given the servers that need to receive the stream, create a flag that will send it to the correct places for this process module and make sure it only gets sent to each server once.

Reimplemented from vtkProcessModule.

virtual int vtkPVClientServerModule::SendStreamToClient vtkClientServerStream &   )  [protected, virtual]
 

Given the servers that need to receive the stream, create a flag that will send it to the correct places for this process module and make sure it only gets sent to each server once.

Reimplemented from vtkProcessModule.

virtual int vtkPVClientServerModule::SendStreamToDataServer vtkClientServerStream &   )  [protected, virtual]
 

Given the servers that need to receive the stream, create a flag that will send it to the correct places for this process module and make sure it only gets sent to each server once.

Reimplemented from vtkProcessModule.

virtual int vtkPVClientServerModule::SendStreamToDataServerRoot vtkClientServerStream &   )  [protected, virtual]
 

Given the servers that need to receive the stream, create a flag that will send it to the correct places for this process module and make sure it only gets sent to each server once.

Reimplemented from vtkProcessModule.

virtual int vtkPVClientServerModule::SendStreamToRenderServer vtkClientServerStream &   )  [protected, virtual]
 

Given the servers that need to receive the stream, create a flag that will send it to the correct places for this process module and make sure it only gets sent to each server once.

Reimplemented from vtkProcessModule.

virtual int vtkPVClientServerModule::SendStreamToRenderServerRoot vtkClientServerStream &   )  [protected, virtual]
 

Given the servers that need to receive the stream, create a flag that will send it to the correct places for this process module and make sure it only gets sent to each server once.

Reimplemented from vtkProcessModule.

virtual const vtkClientServerStream& vtkPVClientServerModule::GetLastDataServerResult  )  [protected, virtual]
 

Get the last result from the DataServer, RenderServer or Client. If these are MPI processes, only the root last result is returned.

Reimplemented from vtkProcessModule.

virtual const vtkClientServerStream& vtkPVClientServerModule::GetLastRenderServerResult  )  [protected, virtual]
 

Get the last result from the DataServer, RenderServer or Client. If these are MPI processes, only the root last result is returned.

Reimplemented from vtkProcessModule.

void vtkPVClientServerModule::SendLastClientServerResult  )  [protected]
 

Send the last client server result to the client called from an RMI

void vtkPVClientServerModule::Connect  )  [protected]
 

Connect to servers or clients, this will either set up a wait loop waiting for a connection, or it will create a

void vtkPVClientServerModule::ConnectToRemote  )  [protected]
 

Connect to a remote server or client already waiting for us.

void vtkPVClientServerModule::SetupWaitForConnection  )  [protected]
 

Setup a wait connection that is waiting for a remote process to connect to it. This can be either the client or the server.

int vtkPVClientServerModule::ShouldWaitForConnection  )  [protected]
 

Return 1 if the connection should wait, and 0 if the connet

int vtkPVClientServerModule::OpenConnectionDialog int *  start  )  [protected]
 

Open a dialog to enter server information, if the start variable is set to 1 in this function, then a remote paraview should be started with StartRemoteParaView.

void vtkPVClientServerModule::InitializeRenderServer  )  [protected]
 

Create connection between render server and data server

virtual const char* vtkPVClientServerModule::DetermineLogFilePrefix  )  [protected, virtual]
 

Reimplemented from vtkProcessModule.

int vtkPVClientServerModule::WaitForConnectionOnSocket vtkSocketCommunicator *  comm,
int  sock
[protected]
 


Friends And Related Function Documentation

void vtkPVClientServerLastResultRMI void *  ,
void *  ,
int  ,
int 
[friend]
 


Member Data Documentation

int vtkPVClientServerModule::NumberOfServerProcesses [protected]
 

Definition at line 193 of file vtkPVClientServerModule.h.

vtkSocketController* vtkPVClientServerModule::SocketController [protected]
 

Definition at line 194 of file vtkPVClientServerModule.h.

vtkSocketController* vtkPVClientServerModule::RenderServerSocket [protected]
 

Definition at line 195 of file vtkPVClientServerModule.h.

int vtkPVClientServerModule::NumberOfRenderServerProcesses [protected]
 

Definition at line 196 of file vtkPVClientServerModule.h.

int vtkPVClientServerModule::ArgumentCount [protected]
 

Definition at line 198 of file vtkPVClientServerModule.h.

char** vtkPVClientServerModule::Arguments [protected]
 

Definition at line 199 of file vtkPVClientServerModule.h.

int vtkPVClientServerModule::ReturnValue [protected]
 

Definition at line 200 of file vtkPVClientServerModule.h.

int vtkPVClientServerModule::MultiProcessMode [protected]
 

Definition at line 202 of file vtkPVClientServerModule.h.

int vtkPVClientServerModule::NumberOfProcesses [protected]
 

Definition at line 203 of file vtkPVClientServerModule.h.

int vtkPVClientServerModule::GatherRenderServer [protected]
 

Definition at line 204 of file vtkPVClientServerModule.h.

vtkClientServerStream* vtkPVClientServerModule::LastServerResultStream [protected]
 

Definition at line 205 of file vtkPVClientServerModule.h.

int vtkPVClientServerModule::Enabled [protected]
 

Definition at line 207 of file vtkPVClientServerModule.h.


The documentation for this class was generated from the following file:
Generated on Tue May 30 12:36:18 2006 for ParaView by doxygen 1.3.5