Exiv2
tifffwd_int.hpp
1 // SPDX-License-Identifier: GPL-2.0-or-later
2 
3 #ifndef TIFFFWD_INT_HPP_
4 #define TIFFFWD_INT_HPP_
5 
6 // *****************************************************************************
7 // included header files
8 #include "tags_int.hpp"
9 #include "types.hpp"
10 
11 // + standard includes
12 #include <stack>
13 
14 // *****************************************************************************
15 // Exiv2 namespace extensions
16 namespace Exiv2 {
17 class Exifdatum;
18 
19 namespace Internal {
20 class TiffHeaderBase;
21 class TiffComponent;
22 class TiffEntryBase;
23 class TiffEntry;
24 class TiffDataEntry;
25 class TiffSizeEntry;
26 class TiffDirectory;
27 class TiffSubIfd;
28 class TiffMnEntry;
29 class TiffBinaryArray;
30 class TiffBinaryElement;
31 
32 class TiffIfdMakernote;
33 class MnHeader;
34 
35 class TiffVisitor;
36 class TiffFinder;
37 class TiffDecoder;
38 class TiffEncoder;
39 class TiffReader;
40 
41 class TiffRwState;
42 class TiffPathItem;
43 struct TiffMappingInfo;
44 
45 class IoWrapper;
46 class OffsetWriter;
47 
48 // *****************************************************************************
49 // type definitions
50 
55 using DecoderFct = void (TiffDecoder::*)(const TiffEntryBase*);
60 using EncoderFct = void (TiffEncoder::*)(TiffEntryBase*, const Exifdatum*);
64 using FindDecoderFct = DecoderFct (*)(const std::string& make, uint32_t extendedTag, IfdId group);
68 using FindEncoderFct = EncoderFct (*)(const std::string& make, uint32_t extendedTag, IfdId group);
74 using NewTiffCompFct = std::unique_ptr<TiffComponent> (*)(uint16_t tag, IfdId group);
75 
77 using TiffPath = std::stack<TiffPathItem>;
78 
80 using PrimaryGroups = std::vector<IfdId>;
81 } // namespace Internal
82 } // namespace Exiv2
83 
84 #endif // #ifndef TIFFFWD_INT_HPP_
std::unique_ptr< TiffComponent >(*)(uint16_t tag, IfdId group) NewTiffCompFct
Type for a function pointer for a function to create a TIFF component. Use TiffComponent::UniquePtr, it is not used in this declaration only to reduce dependencies.
Definition: tifffwd_int.hpp:74
std::vector< IfdId > PrimaryGroups
Type for a list of primary image groups.
Definition: tifffwd_int.hpp:80
DecoderFct(*)(const std::string &make, uint32_t extendedTag, IfdId group) FindDecoderFct
Type for a function pointer for a function to decode a TIFF component.
Definition: tifffwd_int.hpp:64
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:251
This abstract base class provides the common functionality of an IFD directory entry and defines an e...
Definition: tiffcomposite_int.hpp:380
IfdId
Type to specify the IFD to which a metadata belongs.
Definition: tags.hpp:34
std::stack< TiffPathItem > TiffPath
Stack to hold a path from the TIFF root element to a TIFF entry.
Definition: tifffwd_int.hpp:77
EncoderFct(*)(const std::string &make, uint32_t extendedTag, IfdId group) FindEncoderFct
Type for a function pointer for a function to encode a TIFF component.
Definition: tifffwd_int.hpp:68
EXIV2API ExifData::const_iterator make(const ExifData &ed)
Return the camera make. Please keep in mind that this accessor is provided for convenience only and w...
Definition: easyaccess.cpp:333
Class CrwImage to access Canon CRW images. References: The Canon RAW (CRW) File Format by Phil Harv...
Definition: asfvideo.hpp:15
TIFF composite visitor to encode metadata from an image to the TIFF tree. The metadata containers and...
Definition: tiffvisitor_int.hpp:343
An Exif metadatum, consisting of an ExifKey and a Value and methods to manipulate these...
Definition: exif.hpp:41
void(TiffEncoder::*)(TiffEntryBase *, const Exifdatum *) EncoderFct
Function pointer type for a TiffDecoder member function to decode a TIFF component.
Definition: tifffwd_int.hpp:60
void(TiffDecoder::*)(const TiffEntryBase *) DecoderFct
Function pointer type for a TiffDecoder member function to decode a TIFF component.
Definition: tifffwd_int.hpp:55