]> granicus.if.org Git - imagemagick/commitdiff
Added methods to ResourceLimits class for the new ResourceType's.
authordirk <dirk@git.imagemagick.org>
Wed, 24 Dec 2014 00:51:44 +0000 (00:51 +0000)
committerdirk <dirk@git.imagemagick.org>
Wed, 24 Dec 2014 00:51:44 +0000 (00:51 +0000)
Magick++/lib/Magick++/ResourceLimits.h
Magick++/lib/ResourceLimits.cpp

index 6f0c13767b8954e4fa1612203eb405132a6c6da1..b20691bad0ad3cbab956363e4dccda58bb7a159e 100644 (file)
@@ -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);
 
index 9c78116dcd16216da9ef8eec37b6c45facee90e1..0aa7ba1dbdf5f799c940a40bf8c3d9a4540d0f90 100644 (file)
@@ -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()