• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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