/usr/include/vtk-7.1/vtkPPainterCommunicator.h is in libvtk7-dev 7.1.1+dfsg1-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 | /*=========================================================================
Program: Visualization Toolkit
Module: vtkPPainterCommunicator.h
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
All rights reserved.
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notice for more information.
=========================================================================*/
/**
* @class vtkPainterCommunicator
* ranks that will execute a painter chain.
*
*
* A communicator that can safely be used inside a painter.
* A simple container holding an MPI communicator. The simple API
* is sufficient to allow serial code (no MPI available) to steer
* execution.
*/
#ifndef vtkPPainterCommunicator_h
#define vtkPPainterCommunicator_h
#include "vtkPainterCommunicator.h"
#include "vtkRenderingParallelLICModule.h" // for export macro
class vtkPPainterCommunicatorInternals;
class vtkMPICommunicatorOpaqueComm;
class VTKRENDERINGPARALLELLIC_EXPORT vtkPPainterCommunicator : public vtkPainterCommunicator
{
public:
vtkPPainterCommunicator();
virtual ~vtkPPainterCommunicator();
/**
* Copier and assignment operators.
*/
vtkPPainterCommunicator(const vtkPPainterCommunicator &other) : vtkPainterCommunicator(other)
{ this->Copy(&other, false); }
vtkPPainterCommunicator &operator=(const vtkPPainterCommunicator &other)
{ this->Copy(&other, false); return *this; }
/**
* Copy the communicator.
*/
virtual void Copy(const vtkPainterCommunicator *other, bool ownership);
/**
* Duplicate the communicator.
*/
virtual void Duplicate(const vtkPainterCommunicator *other);
//@{
/**
* Querry MPI for inforrmation about the communicator.
*/
virtual int GetRank();
virtual int GetSize();
virtual bool GetIsNull();
//@}
//@{
/**
* Querry MPI for information a bout the world communicator.
*/
virtual int GetWorldRank();
virtual int GetWorldSize();
//@}
/**
* Querry MPI state.
*/
virtual bool GetMPIInitialized(){ return this->MPIInitialized(); }
virtual bool GetMPIFinalized(){ return this->MPIFinalized(); }
static bool MPIInitialized();
static bool MPIFinalized();
//@{
/**
* Set/Get the communicator. Ownership is not assumed
* thus caller must keep the commuicator alive while
* this class is in use and free the communicator when
* finished.
*/
void SetCommunicator(vtkMPICommunicatorOpaqueComm *comm);
void GetCommunicator(vtkMPICommunicatorOpaqueComm *comm);
void *GetCommunicator();
//@}
/**
* Creates a new communicator with/without the calling processes
* as indicated by the passed in flag, if not 0 the calling process
* is included in the new communicator. The new communicator is
* accessed via GetCommunicator. In parallel this call is mpi
* collective on the world communicator. In serial this is a no-op.
*/
void SubsetCommunicator(vtkMPICommunicatorOpaqueComm *comm, int include);
/**
* Get VTK's world communicator. Return's a null communictor if
* MPI was not yet initialized.
*/
static vtkMPICommunicatorOpaqueComm *GetGlobalCommunicator();
private:
// PImpl for MPI datatypes
vtkPPainterCommunicatorInternals *Internals;
};
#endif
// VTK-HeaderTest-Exclude: vtkPPainterCommunicator.h
|