88 #ifndef __evThreadedController_h 89 #define __evThreadedController_h 91 #include "vtkObject.h" 93 #include "vtkMultiThreader.h" 95 class evThreadedControllerMessage;
99 #define EVNONBLOCKING 1 107 void PrintSelf(ostream& os, vtkIndent indent);
138 int Send(vtkDataObject *data,
int remoteProcessId,
int tag);
139 int Send(
int *data,
int length,
int remoteProcessId,
int tag);
140 int Send(
unsigned long *data,
int length,
int remoteProcessId,
int tag);
141 int Send(
char *data,
int length,
int remoteProcessId,
int tag);
142 int Send(
double *data,
int length,
int remoteProcessId,
int tag);
143 int Send(
void **data,
int remoteProcessId,
int tag);
145 void Clear(
int remoteProcessId);
150 int Receive(vtkDataObject *data,
int remoteProcessId,
int tag);
151 int Receive(
int *data,
int length,
int remoteProcessId,
int tag);
152 int Receive(
unsigned long *data,
int length,
int remoteProcessId,
int tag);
153 int Receive(
char *data,
int length,
int remoteProcessId,
int tag);
154 int Receive(
double *data,
int length,
int remoteProcessId,
int tag);
155 int Receive(
void **data,
int remoteProcessId,
int tag);
161 void Start(
int threadIdx);
169 void CreateProcessControllers();
170 evThreadedControllerMessage *NewMessage(vtkDataObject *
object,
171 void *data,
int dataLength);
172 void DeleteMessage(evThreadedControllerMessage *message);
173 void AddMessage(evThreadedControllerMessage *message);
174 evThreadedControllerMessage *FindMessage(
int sendId,
int tag);
175 void ClearMessages(
int sendId);
176 void RemoveMessage(evThreadedControllerMessage *message);
182 #ifdef VTK_USE_PTHREADS 214 int Send(vtkDataObject *
object,
void *data,
int dataLength,
215 int remoteProcessId,
int tag);
216 int Receive(vtkDataObject *
object,
void *data,
int dataLength,
217 int remoteProcessId,
int tag);
void PrintSelf(ostream &os, vtkIndent indent)
void operator=(const evThreadedController &)
Definition: evThreadedController.h:167
FILE * LogFile
Definition: evThreadedController.h:211
virtual int Receive(vtkDataObject *data, int remoteProcessId, int tag)
Definition: evThreadedController.h:102
virtual void SingleMethodExecute()=0
evThreadedControllerMessage * MessageListEnd
Definition: evThreadedController.h:208
vtkMutexLock * MessageListLock
Definition: evThreadedController.h:200
virtual void Initialize(int vtkNotUsed(argc), char *arcv[])
Definition: evMultiProcessController.h:133
vtkTypeMacro(evMultiProcessController, vtkObject)
vtkMutexLock * Gate
Definition: evThreadedController.h:204
int WaitingForId
Definition: evThreadedController.h:191
static evMultiProcessController * New()
int MultipleMethodFlag
Definition: evThreadedController.h:195
#define VTK_MP_CONTROLLER_MAX_PROCESSES
Definition: evMultiProcessController.h:91
evThreadedController(const evThreadedController &)
Definition: evThreadedController.h:166
virtual void MultipleMethodExecute()=0
vtkGetMacro(NumberOfProcesses, int)
Definition: evMultiProcessController.h:122
virtual int Send(vtkDataObject *data, int remoteProcessId, int tag)
vtkMultiThreader * MultiThreader
Definition: evThreadedController.h:193
int LocalProcessId
Definition: evThreadedController.h:190
virtual void Clear(int remoteProcessId)=0
evThreadedControllerMessage * MessageListStart
Definition: evThreadedController.h:207
virtual evMultiProcessController * GetLocalController()