Home | History | Annotate | Download | only in Magick++
      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