VTK  9.4.20250311
vtkMultiProcessControllerHelper.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) Kitware Inc.
2// SPDX-License-Identifier: BSD-3-Clause
12#ifndef vtkMultiProcessControllerHelper_h
13#define vtkMultiProcessControllerHelper_h
14
15#include "vtkFiltersParallelModule.h" // For export macro
16#include "vtkObject.h"
17#include "vtkSmartPointer.h" // needed for vtkSmartPointer.
18
19#include <vector> // needed for std::vector
20
21VTK_ABI_NAMESPACE_BEGIN
22class vtkDataObject;
25
26class VTKFILTERSPARALLEL_EXPORT vtkMultiProcessControllerHelper : public vtkObject
27{
28public:
31 void PrintSelf(ostream& os, vtkIndent indent) override;
32
38 void (*operation)(vtkMultiProcessStream& A, vtkMultiProcessStream& B), int tag);
39
47 static vtkDataObject* MergePieces(vtkDataObject** pieces, unsigned int num_pieces);
48
52 static bool MergePieces(
53 std::vector<vtkSmartPointer<vtkDataObject>>& pieces, vtkDataObject* result);
54
55protected:
58
59private:
61 void operator=(const vtkMultiProcessControllerHelper&) = delete;
62};
63VTK_ABI_NAMESPACE_END
64#endif
general representation of visualization data
a simple class to control print indentation
Definition vtkIndent.h:108
collection of assorted helper routines dealing with communication.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
static int ReduceToAll(vtkMultiProcessController *controller, vtkMultiProcessStream &data, void(*operation)(vtkMultiProcessStream &A, vtkMultiProcessStream &B), int tag)
Reduce the stream to all processes calling the (*operation) for reduction.
static bool MergePieces(std::vector< vtkSmartPointer< vtkDataObject > > &pieces, vtkDataObject *result)
Overload where the merged pieces are combined into result.
static vtkDataObject * MergePieces(vtkDataObject **pieces, unsigned int num_pieces)
Utility method to merge pieces received from several processes.
static vtkMultiProcessControllerHelper * New()
Multiprocessing communication superclass.
stream used to pass data across processes using vtkMultiProcessController.
abstract base class for most VTK objects
Definition vtkObject.h:162
Hold a reference to a vtkObjectBase instance.