OTB  9.0.0
Orfeo Toolbox
otbRAMDrivenAdaptativeStreamingManager.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2005-2022 Centre National d'Etudes Spatiales (CNES)
3  *
4  * This file is part of Orfeo Toolbox
5  *
6  * https://www.orfeo-toolbox.org/
7  *
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  * http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  */
20 
21 #ifndef otbRAMDrivenAdaptativeStreamingManager_h
22 #define otbRAMDrivenAdaptativeStreamingManager_h
23 
24 #include "otbStreamingManager.h"
25 
26 namespace otb
27 {
28 
48 template <class TImage>
49 class ITK_EXPORT RAMDrivenAdaptativeStreamingManager : public StreamingManager<TImage>
50 {
51 public:
55  typedef itk::SmartPointer<Self> Pointer;
56  typedef itk::SmartPointer<const Self> ConstPointer;
57 
58  typedef TImage ImageType;
60 
62  itkNewMacro(Self);
63 
65  itkTypeMacro(RAMDrivenAdaptativeStreamingManager, itk::LightObject);
66 
68  itkStaticConstMacro(ImageDimension, unsigned int, ImageType::ImageDimension);
69 
72  itkSetMacro(AvailableRAMInMB, unsigned int);
73 
76  itkGetConstMacro(AvailableRAMInMB, unsigned int);
77 
79  itkSetMacro(Bias, double);
80 
82  itkGetConstMacro(Bias, double);
83 
86  void PrepareStreaming(itk::DataObject* input, const RegionType& region) override;
87 
88 protected:
91 
93  unsigned int m_AvailableRAMInMB;
94 
96  double m_Bias;
97 
98 private:
100  void operator=(const RAMDrivenAdaptativeStreamingManager&);
101 };
102 
103 } // End namespace otb
104 
105 #ifndef OTB_MANUAL_INSTANTIATION
107 #endif
108 
109 #endif
otbRAMDrivenAdaptativeStreamingManager.hxx
otb::StreamingManager
This class handles the streaming process used in the writers implementation.
Definition: otbStreamingManager.h:53
otb
The "otb" namespace contains all Orfeo Toolbox (OTB) classes.
Definition: otbJoinContainer.h:32
otb::RAMDrivenAdaptativeStreamingManager::RegionType
Superclass::RegionType RegionType
Definition: otbRAMDrivenAdaptativeStreamingManager.h:59
otb::RAMDrivenAdaptativeStreamingManager::m_AvailableRAMInMB
unsigned int m_AvailableRAMInMB
Definition: otbRAMDrivenAdaptativeStreamingManager.h:93
otb::RAMDrivenAdaptativeStreamingManager::Pointer
itk::SmartPointer< Self > Pointer
Definition: otbRAMDrivenAdaptativeStreamingManager.h:55
otb::RAMDrivenAdaptativeStreamingManager::Superclass
StreamingManager< TImage > Superclass
Definition: otbRAMDrivenAdaptativeStreamingManager.h:54
otb::RAMDrivenAdaptativeStreamingManager
This class computes the divisions needed to stream an image according to the input image tiling schem...
Definition: otbRAMDrivenAdaptativeStreamingManager.h:49
otbStreamingManager.h
otb::RAMDrivenAdaptativeStreamingManager::m_Bias
double m_Bias
Definition: otbRAMDrivenAdaptativeStreamingManager.h:96
otb::RAMDrivenAdaptativeStreamingManager::ImageType
TImage ImageType
Definition: otbRAMDrivenAdaptativeStreamingManager.h:58
otb::RAMDrivenAdaptativeStreamingManager::ConstPointer
itk::SmartPointer< const Self > ConstPointer
Definition: otbRAMDrivenAdaptativeStreamingManager.h:56
otb::RAMDrivenAdaptativeStreamingManager::Self
RAMDrivenAdaptativeStreamingManager Self
Definition: otbRAMDrivenAdaptativeStreamingManager.h:53
otb::StreamingManager::RegionType
ImageType::RegionType RegionType
Definition: otbStreamingManager.h:64