1 // This may look like C code, but it is really -*- C++ -*- 2 // 3 // Copyright Dirk Lemstra 2018 4 // 5 // Definition of the security policy. 6 // 7 8 #if !defined(Magick_SecurityPolicy_header) 9 #define Magick_SecurityPolicy_header 10 11 #include "Magick++/Include.h" 12 #include <string> 13 14 namespace Magick 15 { 16 class MagickPPExport SecurityPolicy 17 { 18 public: 19 20 // The maximum number of significant digits to be printed. 21 static bool precision(const int precision_); 22 23 // Enables anonymous mapping for pixel cache. 24 static bool anonymousCacheMemoryMap(); 25 26 // Enables anonymous virtual memory. 27 static bool anonymousSystemMemoryMap(); 28 29 // The memory request limit in bytes. 30 static bool maxMemoryRequest(const MagickSizeType limit_); 31 32 // The number of passes to use when shredding files. 33 static bool shred(const int passes_); 34 35 private: 36 SecurityPolicy(void); 37 38 static bool setValue(const PolicyDomain domain_, const std::string name_, 39 const std::string value_); 40 41 template <typename T> 42 static std::string toString(const T& value); 43 44 }; // class SecurityPolicy 45 46 } // Magick namespace 47 48 #endif // Magick_SecurityPolicy_header 49