VTK  9.3.1
vtkPPainterCommunicator.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-License-Identifier: BSD-3-Clause
14 #ifndef vtkPPainterCommunicator_h
15 #define vtkPPainterCommunicator_h
16 
17 #include "vtkPainterCommunicator.h"
18 #include "vtkRenderingParallelLICModule.h" // for export macro
19 
20 VTK_ABI_NAMESPACE_BEGIN
21 class vtkPPainterCommunicatorInternals;
22 class vtkMPICommunicatorOpaqueComm;
23 
24 class VTKRENDERINGPARALLELLIC_EXPORT vtkPPainterCommunicator : public vtkPainterCommunicator
25 {
26 public:
28  ~vtkPPainterCommunicator() override;
29 
34  : vtkPainterCommunicator(other)
35  {
36  this->Copy(&other, false);
37  }
38 
40  {
41  this->Copy(&other, false);
42  return *this;
43  }
44 
48  void Copy(const vtkPainterCommunicator* other, bool ownership) override;
49 
53  void Duplicate(const vtkPainterCommunicator* other) override;
54 
56 
59  int GetRank() override;
60  int GetSize() override;
61  bool GetIsNull() override;
63 
65 
68  int GetWorldRank() override;
69  int GetWorldSize() override;
71 
77 
78  static bool MPIInitialized();
79  static bool MPIFinalized();
80 
82 
88  void SetCommunicator(vtkMPICommunicatorOpaqueComm* comm);
89  void GetCommunicator(vtkMPICommunicatorOpaqueComm* comm);
90  void* GetCommunicator();
92 
100  void SubsetCommunicator(vtkMPICommunicatorOpaqueComm* comm, int include);
101 
106  static vtkMPICommunicatorOpaqueComm* GetGlobalCommunicator();
107 
108 private:
109  // PImpl for MPI datatypes
110  vtkPPainterCommunicatorInternals* Internals;
111 };
112 
113 VTK_ABI_NAMESPACE_END
114 #endif
115 // VTK-HeaderTest-Exclude: vtkPPainterCommunicator.h
virtual void Copy(const vtkPainterCommunicator *, bool)
Copy the communicator, the flag indicates if ownership should be assumed.
static bool MPIInitialized()
vtkPPainterCommunicator & operator=(const vtkPPainterCommunicator &other)
static bool MPIFinalized()
virtual int GetRank()
Query MPI about the communicator.
virtual void Duplicate(const vtkPainterCommunicator *)
Duplicate the communicator.
virtual int GetWorldRank()
Query MPI about the world communicator.
A communicator that can safely be used inside a painter.
vtkPPainterCommunicator(const vtkPPainterCommunicator &other)
Copier and assignment operators.
bool GetMPIInitialized() override
Query MPI state.