From a6eef5b333aac0ca9c1c5b8628ee238e876ce174 Mon Sep 17 00:00:00 2001 From: dirk Date: Wed, 24 Dec 2014 00:51:44 +0000 Subject: [PATCH] Added methods to ResourceLimits class for the new ResourceType's. --- Magick++/lib/Magick++/ResourceLimits.h | 21 +++++++++++ Magick++/lib/ResourceLimits.cpp | 50 +++++++++++++++++++++++--- 2 files changed, 66 insertions(+), 5 deletions(-) diff --git a/Magick++/lib/Magick++/ResourceLimits.h b/Magick++/lib/Magick++/ResourceLimits.h index 6f0c13767..b20691bad 100644 --- a/Magick++/lib/Magick++/ResourceLimits.h +++ b/Magick++/lib/Magick++/ResourceLimits.h @@ -26,6 +26,18 @@ namespace Magick static void disk(const MagickSizeType limit_); static MagickSizeType disk(void); + // The maximum number of open pixel cache files. When this limit is + // exceeded, any subsequent pixels cached to disk are closed and reopened + // on demand. This behavior permits a large number of images to be accessed + // simultaneously on disk, but with a speed penalty due to repeated + // open/close calls. + static void file(const MagickSizeType limit_); + static MagickSizeType file(void); + + // The maximum height of an image. + static void height(const MagickSizeType limit_); + static MagickSizeType height(void); + // Pixel cache limit in bytes. Once this memory limit is exceeded, // all subsequent pixels cache operations are to/from disk. static void map(const MagickSizeType limit_); @@ -41,6 +53,15 @@ namespace Magick static void thread(const MagickSizeType limit_); static MagickSizeType thread(void); + // Periodically yield the CPU for at least the time specified in + // milliseconds. + static void throttle(const MagickSizeType limit_); + static MagickSizeType throttle(void); + + // The maximum width of an image. + static void width(const MagickSizeType limit_); + static MagickSizeType width(void); + private: ResourceLimits(void); diff --git a/Magick++/lib/ResourceLimits.cpp b/Magick++/lib/ResourceLimits.cpp index 9c78116dc..0aa7ba1db 100644 --- a/Magick++/lib/ResourceLimits.cpp +++ b/Magick++/lib/ResourceLimits.cpp @@ -17,7 +17,7 @@ void Magick::ResourceLimits::area(const MagickSizeType limit_) MagickCore::MagickSizeType Magick::ResourceLimits::area(void) { - return GetMagickResourceLimit(AreaResource); + return(GetMagickResourceLimit(AreaResource)); } void Magick::ResourceLimits::disk(const MagickSizeType limit_) @@ -27,7 +27,27 @@ void Magick::ResourceLimits::disk(const MagickSizeType limit_) MagickCore::MagickSizeType Magick::ResourceLimits::disk(void) { - return GetMagickResourceLimit(DiskResource); + return(GetMagickResourceLimit(DiskResource)); +} + +void Magick::ResourceLimits::file(const MagickSizeType limit_) +{ + (void) SetMagickResourceLimit(FileResource,limit_); +} + +MagickCore::MagickSizeType Magick::ResourceLimits::file(void) +{ + return(GetMagickResourceLimit(FileResource)); +} + +void Magick::ResourceLimits::height(const MagickSizeType limit_) +{ + (void) SetMagickResourceLimit(HeightResource,limit_); +} + +MagickCore::MagickSizeType Magick::ResourceLimits::height(void) +{ + return(GetMagickResourceLimit(HeightResource)); } void Magick::ResourceLimits::map(const MagickSizeType limit_) @@ -37,7 +57,7 @@ void Magick::ResourceLimits::map(const MagickSizeType limit_) MagickCore::MagickSizeType Magick::ResourceLimits::map(void) { - return GetMagickResourceLimit(MapResource); + return(GetMagickResourceLimit(MapResource)); } void Magick::ResourceLimits::memory(const MagickSizeType limit_) @@ -47,7 +67,7 @@ void Magick::ResourceLimits::memory(const MagickSizeType limit_) MagickCore::MagickSizeType Magick::ResourceLimits::memory(void) { - return GetMagickResourceLimit(MemoryResource); + return(GetMagickResourceLimit(MemoryResource)); } void Magick::ResourceLimits::thread(const MagickSizeType limit_) @@ -57,7 +77,27 @@ void Magick::ResourceLimits::thread(const MagickSizeType limit_) MagickCore::MagickSizeType Magick::ResourceLimits::thread(void) { - return GetMagickResourceLimit(ThreadResource); + return(GetMagickResourceLimit(ThreadResource)); +} + +void Magick::ResourceLimits::throttle(const MagickSizeType limit_) +{ + (void) SetMagickResourceLimit(ThrottleResource,limit_); +} + +MagickCore::MagickSizeType Magick::ResourceLimits::throttle(void) +{ + return(GetMagickResourceLimit(ThrottleResource)); +} + +void Magick::ResourceLimits::width(const MagickSizeType limit_) +{ + (void) SetMagickResourceLimit(WidthResource,limit_); +} + +MagickCore::MagickSizeType Magick::ResourceLimits::width(void) +{ + return(GetMagickResourceLimit(WidthResource)); } Magick::ResourceLimits::ResourceLimits() -- 2.40.0