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