81 #ifndef __evMultiProcessController_h 82 #define __evMultiProcessController_h 84 #include "vtkObject.h" 85 #include "vtkDataObject.h" 91 #define VTK_MP_CONTROLLER_MAX_PROCESSES 1024 92 #define VTK_MP_CONTROLLER_ANY_SOURCE -1 93 #define VTK_MP_CONTROLLER_INVALID_SOURCE -2 96 #define VTK_MP_CONTROLLER_RMI_TAG 315167 97 #define VTK_MP_CONTROLLER_RMI_ARG_TAG 315168 101 #define VTK_BREAK_RMI_TAG 239954 107 #define EVNONBLOCKING 1 117 void *remoteArg,
int remoteArgLength,
118 int remoteProcessId);
127 void PrintSelf(ostream& os, vtkIndent indent);
133 virtual void Initialize(
int vtkNotUsed(argc),
char *arcv[]) {arcv=arcv;}
139 virtual void SetNumberOfProcesses(
int num);
140 vtkGetMacro( NumberOfProcesses,
int );
155 virtual void SingleMethodExecute() = 0;
170 virtual void MultipleMethodExecute() = 0;
188 virtual int Send(vtkDataObject *data,
int remoteProcessId,
int tag);
192 virtual int Send(
int *data,
int length,
int remoteProcessId,
int tag) = 0;
193 virtual int Send(
unsigned long *data,
int length,
194 int remoteProcessId,
int tag) = 0;
195 virtual int Send(
char *data,
int length,
196 int remoteProcessId,
int tag) = 0;
197 virtual int Send(
double *data,
int length,
198 int remoteProcessId,
int tag) = 0;
200 virtual void Clear(
int remoteProcessId) = 0;
205 virtual int Receive(vtkDataObject *data,
int remoteProcessId,
int tag);
211 virtual int Receive(
int *data,
int length,
int remoteProcessId,
int tag) = 0;
212 virtual int Receive(
unsigned long *data,
int length,
213 int remoteProcessId,
int tag) = 0;
214 virtual int Receive(
char *data,
int length,
215 int remoteProcessId,
int tag) = 0;
216 virtual int Receive(
double *data,
int length,
217 int remoteProcessId,
int tag) = 0;
225 vtkSetMacro(ForceDeepCopy,
int);
226 vtkGetMacro(ForceDeepCopy,
int);
227 vtkBooleanMacro(ForceDeepCopy,
int);
229 vtkSetMacro(Blocking,
int);
230 vtkGetMacro(Blocking,
int);
245 {f = f; arg = arg; tag = tag; vtkErrorMacro(
"RemoveRMI Not Implemented Yet");};
250 void TriggerRMI(
int remoteProcessId,
void *arg,
int argLength,
int tag);
255 { this->TriggerRMI(remoteProcessId, (
void*)arg, strlen(arg)+1, tag); }
260 { this->TriggerRMI(remoteProcessId, NULL, 0, tag); }
271 vtkSetMacro(BreakFlag,
int);
272 vtkGetMacro(BreakFlag,
int);
278 vtkGetMacro(WriteTime,
float);
279 vtkGetMacro(ReadTime,
float);
280 vtkGetMacro(SendWaitTime,
float);
281 vtkGetMacro(SendTime,
float);
282 vtkGetMacro(ReceiveWaitTime,
float);
283 vtkGetMacro(ReceiveTime,
float);
291 int MaximumNumberOfProcesses;
314 void DeleteAndSetMarshalString(
char *str,
int strLength);
318 int WriteObject(vtkDataObject *
object);
319 int ReadObject(vtkDataObject *
object);
321 int WriteDataSet(vtkDataSet *
object);
322 int ReadDataSet(vtkDataSet *
object);
324 int WriteImageData(vtkImageData *
object);
325 int ReadImageData(vtkImageData *
object);
327 void ProcessRMI(
int remoteProcessId,
void *arg,
int argLength,
int rmiTag);
int ForceDeepCopy
Definition: evMultiProcessController.h:345
void(* evRMIFunctionType)(void *localArg, void *remoteArg, int remoteArgLength, int remoteProcessId)
Definition: evMultiProcessController.h:116
evProcessFunctionType SingleMethod
Definition: evMultiProcessController.h:297
int MarshalStringLength
Definition: evMultiProcessController.h:305
float ReceiveWaitTime
Definition: evMultiProcessController.h:341
int Blocking
Definition: evMultiProcessController.h:347
void TriggerRMI(int remoteProcessId, int tag)
Definition: evMultiProcessController.h:259
evMultiProcessController(const evMultiProcessController &)
Definition: evMultiProcessController.h:288
float ReceiveTime
Definition: evMultiProcessController.h:342
void * SingleData
Definition: evMultiProcessController.h:298
virtual int GetLocalProcessId()
Definition: evMultiProcessController.h:174
void operator=(const evMultiProcessController &)
Definition: evMultiProcessController.h:289
int LocalProcessId
Definition: evMultiProcessController.h:295
virtual void Initialize(int vtkNotUsed(argc), char *arcv[])
Definition: evMultiProcessController.h:133
void(* evProcessFunctionType)(evMultiProcessController *controller, void *userData)
Definition: evMultiProcessController.h:112
int BreakFlag
Definition: evMultiProcessController.h:311
#define VTK_MP_CONTROLLER_MAX_PROCESSES
Definition: evMultiProcessController.h:91
vtkCollection * RMIs
Definition: evMultiProcessController.h:302
Definition: evMultiProcessController.h:122
float SendWaitTime
Definition: evMultiProcessController.h:339
void TriggerRMI(int remoteProcessId, char *arg, int tag)
Definition: evMultiProcessController.h:254
float SendTime
Definition: evMultiProcessController.h:340
int NumberOfProcesses
Definition: evMultiProcessController.h:292
char * MarshalString
Definition: evMultiProcessController.h:304
float WriteTime
Definition: evMultiProcessController.h:337
void RemoveRMI(evRMIFunctionType f, void *arg, int tag)
Definition: evMultiProcessController.h:244
float ReadTime
Definition: evMultiProcessController.h:336
int MarshalDataLength
Definition: evMultiProcessController.h:307