Magick++/lib/Magick++/Include.h \
Magick++/lib/Magick++/Montage.h \
Magick++/lib/Magick++/Pixels.h \
+ Magick++/lib/Magick++/ResourceLimits.h \
Magick++/lib/Magick++/STL.h \
Magick++/lib/Magick++/TypeMetric.h
MagickCore::CloneString(destination_,source_.c_str());
}
-MagickPPExport void Magick::CacheThreshold(const MagickSizeType threshold_)
-{
- (void) SetMagickResourceLimit(MemoryResource,threshold_);
-}
-
-MagickPPExport MagickCore::MagickSizeType Magick::CacheThreshold(void)
-{
- return GetMagickResourceLimit(MemoryResource);
-}
-
MagickPPExport void Magick::DisableOpenCL(void)
{
GetPPException;
#include <Magick++/Functions.h>
#include <Magick++/Image.h>
#include <Magick++/Pixels.h>
+#include <Magick++/ResourceLimits.h>
#include <Magick++/STL.h>
#define MagickPlusPlus_Header
#endif // MagickPlusPlus_Header
namespace Magick
{
- // Pixel cache threshold in bytes. Once this memory threshold is exceeded,
- // all subsequent pixels cache operations are to/from disk
- MagickPPExport void CacheThreshold(const MagickSizeType threshold_);
- MagickPPExport MagickSizeType CacheThreshold(void);
-
// Clone C++ string as allocated C string, de-allocating any existing string
MagickPPExport void CloneString(char **destination_,
const std::string &source_);
using MagickCore::RelativeIntent;
// Resource types
+ using MagickCore::ResourceType;
+ using MagickCore::AreaResource;
+ using MagickCore::DiskResource;
+ using MagickCore::MapResource;
using MagickCore::MemoryResource;
+ using MagickCore::ThreadResource;
// Resolution units
using MagickCore::ResolutionType;
--- /dev/null
+// This may look like C code, but it is really -*- C++ -*-
+//
+// Copyright Dirk Lemstra, 2014
+//
+// Definition of resource limits.
+//
+
+#if !defined(Magick_ResourceLimits_header)
+#define Magick_ResourceLimits_header
+
+#include "Magick++/Include.h"
+
+namespace Magick
+{
+ class MagickPPExport ResourceLimits
+ {
+ public:
+
+ // Pixel cache limit in bytes. Requests for memory above this limit
+ // are automagically allocated on disk.
+ static void area(const MagickSizeType limit_);
+ static MagickSizeType area(void);
+
+ // Pixel cache limit in bytes. Requests for memory above this limit
+ // will fail.
+ static void disk(const MagickSizeType limit_);
+ static MagickSizeType disk(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_);
+ static MagickSizeType map(void);
+
+ // Pixel cache limit in bytes. Once this memory limit is exceeded,
+ // all subsequent pixels cache operations are to/from disk or to/from
+ // memory mapped files.
+ static void memory(const MagickSizeType limit_);
+ static MagickSizeType memory(void);
+
+ // Limits the number of threads used in multithreaded operations.
+ static void thread(const MagickSizeType limit_);
+ static MagickSizeType thread(void);
+
+ private:
+ ResourceLimits(void);
+
+ }; // class ResourceLimits
+
+} // Magick namespace
+
+#endif // Magick_ResourceLimits_header
--- /dev/null
+// This may look like C code, but it is really -*- C++ -*-
+//
+// Copyright Dirk Lemstra, 2014
+//
+// Implementation of ResourceLimits
+//
+
+#define MAGICKCORE_IMPLEMENTATION 1
+#define MAGICK_PLUSPLUS_IMPLEMENTATION 1
+
+#include "Magick++/ResourceLimits.h"
+
+void Magick::ResourceLimits::area(const MagickSizeType limit_)
+{
+ (void) SetMagickResourceLimit(AreaResource,limit_);
+}
+
+MagickCore::MagickSizeType Magick::ResourceLimits::area(void)
+{
+ return GetMagickResourceLimit(AreaResource);
+}
+
+void Magick::ResourceLimits::disk(const MagickSizeType limit_)
+{
+ (void) SetMagickResourceLimit(DiskResource,limit_);
+}
+
+MagickCore::MagickSizeType Magick::ResourceLimits::disk(void)
+{
+ return GetMagickResourceLimit(DiskResource);
+}
+
+void Magick::ResourceLimits::map(const MagickSizeType limit_)
+{
+ (void) SetMagickResourceLimit(MapResource,limit_);
+}
+
+MagickCore::MagickSizeType Magick::ResourceLimits::map(void)
+{
+ return GetMagickResourceLimit(MapResource);
+}
+
+void Magick::ResourceLimits::memory(const MagickSizeType limit_)
+{
+ (void) SetMagickResourceLimit(MemoryResource,limit_);
+}
+
+MagickCore::MagickSizeType Magick::ResourceLimits::memory(void)
+{
+ return GetMagickResourceLimit(MemoryResource);
+}
+
+void Magick::ResourceLimits::thread(const MagickSizeType limit_)
+{
+ (void) SetMagickResourceLimit(ThreadResource,limit_);
+}
+
+MagickCore::MagickSizeType Magick::ResourceLimits::thread(void)
+{
+ return GetMagickResourceLimit(ThreadResource);
+}
+
+Magick::ResourceLimits::ResourceLimits()
+{
+}