Parallel/vtkCommunicator.h Source File

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

# Parallel/vtkCommunicator.h

Go to the documentation of this file.

    00001 /*=========================================================================
    00002
    00003   Program:   Visualization Toolkit
    00004   Module:    $RCSfile: vtkCommunicator.h,v $
    00005   Language:  C++
    00006
    00007   Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen
    00008   All rights reserved.
    00009   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
    00010
    00011      This software is distributed WITHOUT ANY WARRANTY; without even
    00012      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
    00013      PURPOSE.  See the above copyright notice for more information.
    00014
    00015 =========================================================================*/
    00050 #ifndef __vtkCommunicator_h
    00051 #define __vtkCommunicator_h
    00052
    00053 #include "vtkObject.h"
    00054
    00055 class vtkDataSet;
    00056 class vtkImageData;
    00057 class vtkDataObject;
    00058 class vtkDataArray;
    00059
    00060 class VTK_PARALLEL_EXPORT vtkCommunicator : public vtkObject
    00061 {
    00062
    00063 public:
    00064
    00065   vtkTypeRevisionMacro(vtkCommunicator, vtkObject);
    00066   void PrintSelf(ostream& os, vtkIndent indent);
    00067
    00070   virtual int Send(vtkDataObject* data, int remoteHandle, int tag);
    00071
    00074   virtual int Send(vtkDataArray* data, int remoteHandle, int tag);
    00075
    00077
    00078   virtual int Send(int* data, int length, int remoteHandle, int tag) = 0;
    00079   virtual int Send(unsigned long* data, int length, int remoteHandle,
    00080                    int tag) = 0;
    00081   virtual int Send(unsigned char* data, int length, int remoteHandle,
    00082                    int tag) = 0;
    00083   virtual int Send(char* data, int length, int remoteHandle,
    00084                    int tag) = 0;
    00085   virtual int Send(float* data, int length, int remoteHandle,
    00086                    int tag) = 0;
    00087   virtual int Send(double* data, int length, int remoteHandle,
    00088                    int tag) = 0;
    00089 #ifdef VTK_USE_64BIT_IDS
    00090   virtual int Send(vtkIdType* data, int length, int remoteHandle,
    00091                    int tag) = 0;
    00093 #endif
    00094
    00095
    00098   virtual int Receive(vtkDataObject* data, int remoteHandle, int tag);
    00099
    00102   virtual int Receive(vtkDataArray* data, int remoteHandle, int tag);
    00103
    00105
    00107   virtual int Receive(int* data, int length, int remoteHandle,
    00108                       int tag) = 0;
    00109   virtual int Receive(unsigned long* data, int length, int remoteHandle,
    00110                       int tag) = 0;
    00111   virtual int Receive(unsigned char* data, int length, int remoteHandle,
    00112                       int tag) = 0;
    00113   virtual int Receive(char* data, int length, int remoteHandle,
    00114                       int tag) = 0;
    00115   virtual int Receive(float* data, int length, int remoteHandle,
    00116                       int tag) = 0;
    00117   virtual int Receive(double* data, int length, int remoteHandle,
    00118                       int tag) = 0;
    00119 #ifdef VTK_USE_64BIT_IDS
    00120   virtual int Receive(vtkIdType* data, int length, int remoteHandle,
    00121                       int tag) = 0;
    00123 #endif
    00124
    00125   static void SetUseCopy(int useCopy);
    00126
    00127 protected:
    00128
    00129   void DeleteAndSetMarshalString(char *str, int strLength);
    00130
    00131   // Write and read from marshal string
    00132   // return 1 success, 0 fail
    00133   int WriteObject(vtkDataObject *object);
    00134   int ReadObject(vtkDataObject *object);
    00135
    00136   int WriteDataSet(vtkDataSet *object);
    00137   int ReadDataSet(vtkDataSet *object);
    00138
    00139   int WriteImageData(vtkImageData *object);
    00140   int ReadImageData(vtkImageData *object);
    00141
    00142   int WriteDataArray(vtkDataArray *object);
    00143   int ReadDataArray(vtkDataArray *object);
    00144
    00145   vtkCommunicator();
    00146   ~vtkCommunicator();
    00147
    00148   char *MarshalString;
    00149   int MarshalStringLength;
    00150   // The data may not take up all of the string.
    00151   int MarshalDataLength;
    00152
    00153   static int UseCopy;
    00154
    00155 private:
    00156   vtkCommunicator(const vtkCommunicator&);  // Not implemented.
    00157   void operator=(const vtkCommunicator&);  // Not implemented.
    00158 };
    00159
    00160 #endif // __vtkCommunicator_h
    00161
    00162