VTK  9.3.20240425
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
18#include "vtkRenderingParallelLICModule.h" // for export macro
19
20VTK_ABI_NAMESPACE_BEGIN
21class vtkPPainterCommunicatorInternals;
22class vtkMPICommunicatorOpaqueComm;
23
24class VTKRENDERINGPARALLELLIC_EXPORT vtkPPainterCommunicator : public vtkPainterCommunicator
25{
26public:
29
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);
92
100 void SubsetCommunicator(vtkMPICommunicatorOpaqueComm* comm, int include);
101
106 static vtkMPICommunicatorOpaqueComm* GetGlobalCommunicator();
107
108private:
109 // PImpl for MPI datatypes
110 vtkPPainterCommunicatorInternals* Internals;
111};
112
113VTK_ABI_NAMESPACE_END
114#endif
115// VTK-HeaderTest-Exclude: vtkPPainterCommunicator.h
static vtkMPICommunicatorOpaqueComm * GetGlobalCommunicator()
Get VTK's world communicator.
int GetSize() override
Query MPI for information about the communicator.
int GetWorldSize() override
Query MPI for information about the world communicator.
vtkPPainterCommunicator & operator=(const vtkPPainterCommunicator &other)
void Copy(const vtkPainterCommunicator *other, bool ownership) override
Copy the communicator.
vtkPPainterCommunicator(const vtkPPainterCommunicator &other)
Copier and assignment operators.
void Duplicate(const vtkPainterCommunicator *other) override
Duplicate the communicator.
void * GetCommunicator()
Set/Get the communicator.
static bool MPIFinalized()
void SubsetCommunicator(vtkMPICommunicatorOpaqueComm *comm, int include)
Creates a new communicator with/without the calling processes as indicated by the passed in flag,...
static bool MPIInitialized()
void SetCommunicator(vtkMPICommunicatorOpaqueComm *comm)
Set/Get the communicator.
int GetRank() override
Query MPI for information about the communicator.
void GetCommunicator(vtkMPICommunicatorOpaqueComm *comm)
Set/Get the communicator.
int GetWorldRank() override
Query MPI for information about the world communicator.
bool GetMPIInitialized() override
Query MPI state.
bool GetIsNull() override
Query MPI for information about the communicator.
~vtkPPainterCommunicator() override
A communicator that can safely be used inside a painter.
virtual void Copy(const vtkPainterCommunicator *, bool)
Copy the communicator, the flag indicates if ownership should be assumed.