diff --git a/Modules/Core/Streaming/include/otbStreamingManager.h b/Modules/Core/Streaming/include/otbStreamingManager.h index 2095e48e8f8199a9d8882a6fb2b690f7b9cbb012..5d94b191bae07170816de4f8c6e97e102589b4fc 100644 --- a/Modules/Core/Streaming/include/otbStreamingManager.h +++ b/Modules/Core/Streaming/include/otbStreamingManager.h @@ -88,6 +88,9 @@ public: * GetNumberOfSplits() returns. */ virtual RegionType GetSplit(unsigned int i); + itkSetMacro(DefaultRAM, MemoryPrintType); + itkGetMacro(DefaultRAM, MemoryPrintType); + protected: StreamingManager(); ~StreamingManager() ITK_OVERRIDE; @@ -111,11 +114,13 @@ private: StreamingManager(const StreamingManager &); //purposely not implemented void operator =(const StreamingManager&); //purposely not implemented - /* Compute the available RAM from configuration settings if the input parameter is 0, - * otherwise, simply returns the input parameter */ + /** Compute the available RAM in Bytes from an input value in MByte. + * If the input value is 0, it uses the m_DefaultRAM value. + * If m_DefaultRAM is also 0, it uses the configuration settings */ MemoryPrintType GetActualAvailableRAMInBytes(MemoryPrintType availableRAMInMB); - + /** Default available RAM in MB */ + MemoryPrintType m_DefaultRAM; }; } // End namespace otb diff --git a/Modules/Core/Streaming/include/otbStreamingManager.txx b/Modules/Core/Streaming/include/otbStreamingManager.txx index b0fdfced068fffe79695afedc671b6f7d3d22d67..e43dc86d75ae00a7266c134c1d9ed2040016c58e 100644 --- a/Modules/Core/Streaming/include/otbStreamingManager.txx +++ b/Modules/Core/Streaming/include/otbStreamingManager.txx @@ -31,6 +31,7 @@ namespace otb template <class TImage> StreamingManager<TImage>::StreamingManager() : m_ComputedNumberOfSplits(0) + , m_DefaultRAM(0) { } @@ -47,9 +48,16 @@ StreamingManager<TImage>::GetActualAvailableRAMInBytes(MemoryPrintType available if (availableRAMInBytes == 0) { - otbMsgDevMacro(<< "Retrieving available RAM size from configuration"); - // Retrieve it from the configuration - availableRAMInBytes = 1024*1024*ConfigurationManager::GetMaxRAMHint(); + if (m_DefaultRAM != 0) + { + availableRAMInBytes = 1024*1024*m_DefaultRAM; + } + else + { + otbMsgDevMacro(<< "Retrieving available RAM size from configuration"); + // Retrieve it from the configuration + availableRAMInBytes = 1024*1024*ConfigurationManager::GetMaxRAMHint(); + } } otbMsgDevMacro("RAM used to estimate memory footprint : " << availableRAMInBytes / 1024 / 1024 << " MB")