dox/Parallel/vtkMPIGroup.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00035 #ifndef __vtkMPIGroup_h
00036 #define __vtkMPIGroup_h
00037
00038 #include "vtkObject.h"
00039
00040 class vtkMPIController;
00041 class vtkMPICommunicator;
00042
00043 class VTK_PARALLEL_EXPORT vtkMPIGroup : public vtkObject
00044 {
00045
00046 public:
00047
00048 vtkTypeRevisionMacro( vtkMPIGroup,vtkObject);
00049
00052 static vtkMPIGroup* New();
00053
00054 virtual void PrintSelf(ostream& os, vtkIndent indent);
00055
00058 void Initialize(vtkMPIController* controller);
00059
00063 int AddProcessId(int processId);
00064
00067 void RemoveProcessId(int processId);
00068
00071 int FindProcessId(int processId);
00072
00075 int GetProcessId(int pos);
00076
00079 void CopyProcessIdsFrom(vtkMPIGroup* group);
00080
00082
00083 int GetNumberOfProcessIds()
00084 {
00085 return this->CurrentPosition;
00086 }
00088
00089
00090
00091 friend class vtkMPICommunicator;
00092
00093
00094
00095 protected:
00096
00099 void CopyFrom(vtkMPIGroup* group);
00100
00102 void Initialize(int numProcIds);
00103
00104 int* ProcessIds;
00105 int MaximumNumberOfProcessIds;
00106 int Initialized;
00107 int CurrentPosition;
00108
00109 vtkMPIGroup();
00110 ~vtkMPIGroup();
00111
00112 private:
00113 vtkMPIGroup(const vtkMPIGroup&);
00114 void operator=(const vtkMPIGroup&);
00115 };
00116
00117 #endif
00118
00119
00120
00121