00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00034 #ifndef __vtkCommunicator_h
00035 #define __vtkCommunicator_h
00036
00037 #include "vtkObject.h"
00038
00039 class vtkDataSet;
00040 class vtkImageData;
00041 class vtkDataObject;
00042 class vtkDataArray;
00043
00044 class VTK_PARALLEL_EXPORT vtkCommunicator : public vtkObject
00045 {
00046
00047 public:
00048
00049 vtkTypeRevisionMacro(vtkCommunicator, vtkObject);
00050 void PrintSelf(ostream& os, vtkIndent indent);
00051
00054 virtual int Send(vtkDataObject* data, int remoteHandle, int tag);
00055
00058 virtual int Send(vtkDataArray* data, int remoteHandle, int tag);
00059
00061
00062 virtual int Send(int* data, int length, int remoteHandle, int tag) = 0;
00063 virtual int Send(unsigned long* data, int length, int remoteHandle,
00064 int tag) = 0;
00065 virtual int Send(unsigned char* data, int length, int remoteHandle,
00066 int tag) = 0;
00067 virtual int Send(char* data, int length, int remoteHandle,
00068 int tag) = 0;
00069 virtual int Send(float* data, int length, int remoteHandle,
00070 int tag) = 0;
00071 virtual int Send(double* data, int length, int remoteHandle,
00072 int tag) = 0;
00073 #ifdef VTK_USE_64BIT_IDS
00074 virtual int Send(vtkIdType* data, int length, int remoteHandle,
00075 int tag) = 0;
00077 #endif
00078
00079
00082 virtual int Receive(vtkDataObject* data, int remoteHandle, int tag);
00083
00086 virtual int Receive(vtkDataArray* data, int remoteHandle, int tag);
00087
00089
00091 virtual int Receive(int* data, int length, int remoteHandle,
00092 int tag) = 0;
00093 virtual int Receive(unsigned long* data, int length, int remoteHandle,
00094 int tag) = 0;
00095 virtual int Receive(unsigned char* data, int length, int remoteHandle,
00096 int tag) = 0;
00097 virtual int Receive(char* data, int length, int remoteHandle,
00098 int tag) = 0;
00099 virtual int Receive(float* data, int length, int remoteHandle,
00100 int tag) = 0;
00101 virtual int Receive(double* data, int length, int remoteHandle,
00102 int tag) = 0;
00103 #ifdef VTK_USE_64BIT_IDS
00104 virtual int Receive(vtkIdType* data, int length, int remoteHandle,
00105 int tag) = 0;
00107 #endif
00108
00109 static void SetUseCopy(int useCopy);
00110
00111 protected:
00112
00113 void DeleteAndSetMarshalString(char *str, int strLength);
00114
00115
00116
00117 int WriteObject(vtkDataObject *object);
00118 int ReadObject(vtkDataObject *object);
00119
00120 int WriteDataSet(vtkDataSet *object);
00121 int ReadDataSet(vtkDataSet *object);
00122
00123 int WriteImageData(vtkImageData *object);
00124 int ReadImageData(vtkImageData *object);
00125
00126 int WriteDataArray(vtkDataArray *object);
00127 int ReadDataArray(vtkDataArray *object);
00128
00129 vtkCommunicator();
00130 ~vtkCommunicator();
00131
00132 char *MarshalString;
00133 int MarshalStringLength;
00134
00135 int MarshalDataLength;
00136
00137 static int UseCopy;
00138
00139 private:
00140 vtkCommunicator(const vtkCommunicator&);
00141 void operator=(const vtkCommunicator&);
00142 };
00143
00144 #endif // __vtkCommunicator_h
00145
00146