1 // This may look like C code, but it is really -*- C++ -*- 2 // 3 // Copyright Bob Friesenhahn, 2001, 2002 4 // Copyright Dirk Lemstra 2013-2015 5 // 6 // CoderInfo Definition 7 // 8 // Container for image format support information. 9 // 10 11 #if !defined (Magick_CoderInfo_header) 12 #define Magick_CoderInfo_header 1 13 14 #include "Magick++/Include.h" 15 #include <string> 16 17 namespace Magick 18 { 19 class MagickPPExport CoderInfo 20 { 21 public: 22 23 enum MatchType { 24 AnyMatch, // match any coder 25 TrueMatch, // match coder if true 26 FalseMatch // match coder if false 27 }; 28 29 // Default constructor 30 CoderInfo(void); 31 32 // Copy constructor 33 CoderInfo(const CoderInfo &coder_); 34 35 // Construct with coder name 36 CoderInfo(const std::string &name_); 37 38 // Destructor 39 ~CoderInfo(void); 40 41 // Assignment operator 42 CoderInfo& operator=(const CoderInfo &coder_); 43 44 // Format can read multi-threaded 45 bool canReadMultithreaded(void) const; 46 47 // Format can write multi-threaded 48 bool canWriteMultithreaded(void) const; 49 50 // Format description 51 std::string description(void) const; 52 53 // Format supports multiple frames 54 bool isMultiFrame(void) const; 55 56 // Format is readable 57 bool isReadable(void) const; 58 59 // Format is writeable 60 bool isWritable(void) const; 61 62 // Format mime type 63 std::string mimeType(void) const; 64 65 // Name of the module 66 std::string module(void) const; 67 68 // Format name 69 std::string name(void) const; 70 71 // Unregisters this coder 72 bool unregister(void) const; 73 74 private: 75 bool _decoderThreadSupport; 76 std::string _description; 77 bool _encoderThreadSupport; 78 bool _isMultiFrame; 79 bool _isReadable; 80 bool _isWritable; 81 std::string _mimeType; 82 std::string _module; 83 std::string _name; 84 }; 85 86 } // namespace Magick 87 88 #endif // Magick_CoderInfo_header 89