ITK  6.0.0
Insight Toolkit
itkStreamingProcessObject.h
Go to the documentation of this file.
1/*=========================================================================
2 *
3 * Copyright NumFOCUS
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * https://www.apache.org/licenses/LICENSE-2.0.txt
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 *
17 *=========================================================================*/
18#ifndef itkStreamingProcessObject_h
19#define itkStreamingProcessObject_h
20
21#include "itkProcessObject.h"
22
23namespace itk
24{
25
40class ITKCommon_EXPORT StreamingProcessObject : public ProcessObject
41{
42public:
43 ITK_DISALLOW_COPY_AND_MOVE(StreamingProcessObject);
44
50
52 itkOverrideGetNameOfClassMacro(StreamingProcessObject);
53
58 void
60
61 void
62 GenerateData() override;
63
66 void
67 UpdateOutputData(DataObject * output) override;
68
71 virtual int
73
74 void
75 ResetPipeline() override;
76
77protected:
80
81 void
82 PrintSelf(std::ostream & os, Indent indent) const override;
83
89 virtual unsigned int
91
92
99 virtual void
100 GenerateNthInputRequestedRegion(unsigned int inputRequestedRegionNumber) = 0;
101
104 virtual void
105 StreamedGenerateData(unsigned int inputRequestedRegionNumber) = 0;
106
110 virtual void
112
115 virtual void
117
118private:
119 int m_CurrentRequestNumber{ -1 };
120};
121
122} // end namespace itk
123
124#endif // itkStreamingProcessObject_h
Base class for all data objects in ITK.
Control indentation during Print() invocation.
Definition: itkIndent.h:50
Light weight base class for most itk classes.
The base class for all process objects (source, filters, mappers) in the Insight data processing pipe...
Base class interface to process data on multiple requested input chunks.
virtual void GenerateNthInputRequestedRegion(unsigned int inputRequestedRegionNumber)=0
For each streamed region, propagate request to all inputs.
virtual unsigned int GetNumberOfInputRequestedRegions()=0
Return the actual number of regions to request upstream.
virtual void AfterStreamedGenerateData()
void PrintSelf(std::ostream &os, Indent indent) const override
virtual int GetCurrentRequestNumber() const
virtual void BeforeStreamedGenerateData()
void PropagateRequestedRegion(DataObject *output) override
void GenerateData() override
void ResetPipeline() override
Reset the pipeline.
virtual void StreamedGenerateData(unsigned int inputRequestedRegionNumber)=0
void UpdateOutputData(DataObject *output) override
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
class ITK_FORWARD_EXPORT ProcessObject
Definition: itkDataObject.h:41