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_
An Exif metadatum, consisting of an ExifKey and a Value and methods to manipulate these.
Definition: exif.hpp:41
TIFF composite visitor to decode metadata from the TIFF tree and add it to an Image,...
Definition: tiffvisitor_int.hpp:251
TIFF composite visitor to encode metadata from an image to the TIFF tree. The metadata containers and...
Definition: tiffvisitor_int.hpp:343
This abstract base class provides the common functionality of an IFD directory entry and defines an e...
Definition: tiffcomposite_int.hpp:380
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
void(TiffEncoder::*)(TiffEntryBase *, const Exifdatum *) EncoderFct
Function pointer type for a TiffDecoder member function to decode a TIFF component.
Definition: tifffwd_int.hpp:60
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
std::stack< TiffPathItem > TiffPath
Stack to hold a path from the TIFF root element to a TIFF entry.
Definition: tifffwd_int.hpp:77
std::vector< IfdId > PrimaryGroups
Type for a list of primary image groups.
Definition: tifffwd_int.hpp:80
void(TiffDecoder::*)(const TiffEntryBase *) DecoderFct
Function pointer type for a TiffDecoder member function to decode a TIFF component.
Definition: tifffwd_int.hpp:55
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,...
Definition: tifffwd_int.hpp:74
Class CrwImage to access Canon CRW images. References: The Canon RAW (CRW) File Format by Phil Harv...
Definition: asfvideo.hpp:15
IfdId
Type to specify the IFD to which a metadata belongs.
Definition: tags.hpp:34
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:342