Exiv2
tifffwd_int.hpp
1 // ***************************************************************** -*- C++ -*-
2 /*
3  * Copyright (C) 2004-2021 Exiv2 authors
4  * This program is part of the Exiv2 distribution.
5  *
6  * This program is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU General Public License
8  * as published by the Free Software Foundation; either version 2
9  * of the License, or (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin Street, 5th Floor, Boston, MA 02110-1301 USA.
19  */
20 #ifndef TIFFFWD_INT_HPP_
21 #define TIFFFWD_INT_HPP_
22 
23 // *****************************************************************************
24 // included header files
25 #include "types.hpp"
26 #include "tags_int.hpp"
27 
28 // + standard includes
29 #include <memory>
30 #include <stack>
31 #include <vector>
32 
33 // *****************************************************************************
34 // Exiv2 namespace extensions
35 namespace Exiv2 {
36 
37  class Exifdatum;
38 
39  namespace Internal {
40 
41  class TiffHeaderBase;
42  class TiffComponent;
43  class TiffEntryBase;
44  class TiffEntry;
45  class TiffDataEntry;
46  class TiffSizeEntry;
47  class TiffDirectory;
48  class TiffSubIfd;
49  class TiffMnEntry;
50  class TiffBinaryArray;
51  class TiffBinaryElement;
52 
53  class TiffIfdMakernote;
54  class MnHeader;
55 
56  class TiffVisitor;
57  class TiffFinder;
58  class TiffDecoder;
59  class TiffEncoder;
60  class TiffReader;
61 
62  class TiffRwState;
63  class TiffPathItem;
64  struct TiffMappingInfo;
65 
66  class IoWrapper;
67  class OffsetWriter;
68 
69 // *****************************************************************************
70 // type definitions
71 
76  typedef void (TiffDecoder::*DecoderFct)(const TiffEntryBase*);
81  typedef void (TiffEncoder::*EncoderFct)(TiffEntryBase*, const Exifdatum*);
85  typedef DecoderFct (*FindDecoderFct)(const std::string& make,
86  uint32_t extendedTag,
87  IfdId group);
92  const std::string& make,
93  uint32_t extendedTag,
94  IfdId group
95  );
101  typedef std::auto_ptr<TiffComponent> (*NewTiffCompFct)(uint16_t tag, IfdId group);
102 
104  typedef std::stack<TiffPathItem> TiffPath;
105 
107  typedef std::vector<IfdId> PrimaryGroups;
108 
109 }} // namespace Internal, Exiv2
110 
111 #endif // #ifndef TIFFFWD_INT_HPP_
TIFF composite visitor to decode metadata from the TIFF tree and add it to an Image, which is supplied in the constructor (Visitor pattern). Used by TiffParser to decode the metadata from a TIFF composite.
Definition: tiffvisitor_int.hpp:276
This abstract base class provides the common functionality of an IFD directory entry and defines an e...
Definition: tiffcomposite_int.hpp:411
DecoderFct(* FindDecoderFct)(const std::string &make, uint32_t extendedTag, IfdId group)
Type for a function pointer for a function to decode a TIFF component.
Definition: tifffwd_int.hpp:85
std::stack< TiffPathItem > TiffPath
Stack to hold a path from the TIFF root element to a TIFF entry.
Definition: tifffwd_int.hpp:104
void(TiffEncoder::* EncoderFct)(TiffEntryBase *, const Exifdatum *)
Function pointer type for a TiffDecoder member function to decode a TIFF component.
Definition: tifffwd_int.hpp:81
EXIV2API ExifData::const_iterator make(const ExifData &ed)
Return the camera make.
Definition: easyaccess.cpp:437
Provides classes and functions to encode and decode Exif and Iptc data. The libexiv2 API consists of ...
Definition: asfvideo.hpp:36
TIFF composite visitor to encode metadata from an image to the TIFF tree. The metadata containers and...
Definition: tiffvisitor_int.hpp:376
void(TiffDecoder::* DecoderFct)(const TiffEntryBase *)
Function pointer type for a TiffDecoder member function to decode a TIFF component.
Definition: tifffwd_int.hpp:76
An Exif metadatum, consisting of an ExifKey and a Value and methods to manipulate these...
Definition: exif.hpp:59
std::vector< IfdId > PrimaryGroups
Type for a list of primary image groups.
Definition: tifffwd_int.hpp:107
EncoderFct(* FindEncoderFct)(const std::string &make, uint32_t extendedTag, IfdId group)
Type for a function pointer for a function to encode a TIFF component.
Definition: tifffwd_int.hpp:91
IfdId
Type to specify the IFD to which a metadata belongs.
Definition: tags_int.hpp:46