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

vtkCommunicator.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    $RCSfile: vtkCommunicator.h,v $
00005 
00006   Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
00007   All rights reserved.
00008   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
00009 
00010      This software is distributed WITHOUT ANY WARRANTY; without even
00011      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00012      PURPOSE.  See the above copyright notice for more information.
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   // Write and read from marshal string
00116   // return 1 success, 0 fail
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   // The data may not take up all of the string.
00135   int MarshalDataLength;
00136 
00137   static int UseCopy;
00138 
00139 private:
00140   vtkCommunicator(const vtkCommunicator&);  // Not implemented.
00141   void operator=(const vtkCommunicator&);  // Not implemented.
00142 };
00143 
00144 #endif // __vtkCommunicator_h
00145 
00146 

Generated on Mon Jan 21 23:07:33 2008 for VTK by  doxygen 1.4.3-20050530