VTK  9.7.1
vtkExecutionAggregator.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
3 
17 #ifndef vtkExecutionAggregator_h
18 #define vtkExecutionAggregator_h
19 
20 #include "vtkObject.h"
21 
22 #include "vtkCommonExecutionModelModule.h" // for export macro
23 #include <vtkDataObject.h> // for smart pointer signature
24 #include <vtkSmartPointer.h> // for smart pointer signature
25 
26 VTK_ABI_NAMESPACE_BEGIN
27 
28 class VTKCOMMONEXECUTIONMODEL_EXPORT vtkExecutionAggregator : public vtkObject
29 {
30 public:
32  void PrintSelf(std::ostream& os, vtkIndent indent) override;
33 
38  virtual vtkSmartPointer<vtkDataObject> RequestDataObject(vtkDataObject* input);
39 
43  virtual bool Aggregate(vtkDataObject* input) = 0;
44 
49  virtual vtkSmartPointer<vtkDataObject> GetOutputDataObject() = 0;
50 
56  virtual void Clear() = 0;
57 
58 protected:
59  vtkExecutionAggregator() = default;
60  ~vtkExecutionAggregator() override = default;
61 
62 private:
64  void operator=(const vtkExecutionAggregator&) = delete;
65 };
66 
67 VTK_ABI_NAMESPACE_END
68 
69 #endif // vtkExecutionAggregator_h
abstract base class for most VTK objects
Definition: vtkObject.h:52
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
a simple class to control print indentation
Definition: vtkIndent.h:28
Aggregate the results of the sub-pipeline in vtkEndFor.
general representation of visualization data
Definition: vtkDataObject.h:55