tiffcomposite_int.hpp File Reference

Internal classes used in a TIFF composite structure. More...

#include "value.hpp"
#include "tifffwd_int.hpp"
#include "types.hpp"
#include <iosfwd>
#include <vector>
#include <string>
#include <cassert>

Include dependency graph for tiffcomposite_int.hpp:

Include dependency graph

Namespaces

namespace  Exiv2
namespace  Exiv2::Internal
namespace  Exiv2::Internal::Group
namespace  Exiv2::Internal::Tag

Classes

class  Exiv2::Internal::TiffPathItem
 A tupel consisting of extended Tag and group used as an item in TIFF paths. More...
class  Exiv2::Internal::IoWrapper
 Simple IO wrapper to ensure that the header is only written if there is any other data at all. More...
class  Exiv2::Internal::TiffComponent
 Interface class for components of a TIFF directory hierarchy (Composite pattern). Both TIFF directories as well as entries implement this interface. A component can be uniquely identified by a tag, group tupel. This class is implemented as a NVI (Non-Virtual Interface) and it has an interface for visitors (Visitor pattern) to perform operations on all components. More...
struct  Exiv2::Internal::TiffMappingInfo
 TIFF mapping table for functions to decode special cases. More...
struct  Exiv2::Internal::TiffMappingInfo::Key
 Search key for TIFF mapping structures. More...
class  Exiv2::Internal::TiffEntryBase
 This abstract base class provides the common functionality of an IFD directory entry and defines an extended interface for derived concrete entries, which allows access to the attributes of the entry. More...
class  Exiv2::Internal::TiffEntry
 A standard TIFF IFD entry. More...
class  Exiv2::Internal::TiffDataEntryBase
 Interface for a standard TIFF IFD entry consisting of a value which is a set of offsets to a data area. The sizes of these "strips" are provided in a related TiffSizeEntry, tag and group of which are set in the constructor. The implementations of this interface differ in whether the data areas are extracted to the higher level metadata (TiffDataEntry) or not (TiffImageEntry). More...
class  Exiv2::Internal::TiffDataEntry
 A standard TIFF IFD entry consisting of a value which is an offset to a data area and the data area. The size of the data area is provided in a related TiffSizeEntry, tag and group of which are set in the constructor. More...
class  Exiv2::Internal::TiffImageEntry
 A standard TIFF IFD entry consisting of a value which is an array of offsets to image data areas. The sizes of the image data areas are provided in a related TiffSizeEntry, tag and group of which are set in the constructor. More...
class  Exiv2::Internal::TiffSizeEntry
 A TIFF IFD entry containing the size of a data area of a related TiffDataEntry. This component is used, e.g. for Exif.Thumbnail.JPEGInterchangeFormatLength, which contains the size of Exif.Thumbnail.JPEGInterchangeFormat. More...
class  Exiv2::Internal::TiffDirectory
 This class models a TIFF directory (Ifd). It is a composite component of the TIFF tree. More...
class  Exiv2::Internal::TiffSubIfd
 This class models a TIFF sub-directory (sub-IFD). A sub-IFD is an entry with one or more values that are pointers to IFD structures containing an IFD. The TIFF standard defines some important tags to be sub-IFDs, including the Exif and GPS tags. More...
class  Exiv2::Internal::TiffMnEntry
 This class is the basis for Makernote support in TIFF. It contains a pointer to a concrete Makernote. The TiffReader visitor has the responsibility to create the correct Make/Model specific Makernote for a particular TIFF file. Calls to child management methods are forwarded to the concrete Makernote, if there is one. More...
class  Exiv2::Internal::TiffIfdMakernote
 Tiff IFD Makernote. This is a concrete class suitable for all IFD makernotes. More...
struct  Exiv2::Internal::ArrayDef
 Defines one tag in a binary array. More...
struct  Exiv2::Internal::ArrayCfg
 Additional configuration for a binary array. More...
struct  Exiv2::Internal::ArraySet
 Combination of array configuration and definition for arrays. More...
class  Exiv2::Internal::TiffBinaryArray
 Composite to model an array of different tags. The tag types as well as other aspects of the array are configurable. The elements of this component are of type TiffBinaryElement. More...
class  Exiv2::Internal::TiffBinaryElement
 Element of a TiffBinaryArray. More...

Typedefs

typedef uint16_t TiffType
 TIFF value type.
typedef int(* CfgSelFct )(uint16_t, const byte *, uint32_t, TiffComponent *const)
 Function pointer type for a function to determine which cfg + def of a corresponding array set to use.
typedef DataBuf(* CryptFct )(uint16_t, const byte *, uint32_t, TiffComponent *const)
 Function pointer type for a crypt function used for binary arrays.

Functions

template<uint16_t newGroup>
TiffComponent::AutoPtr newTiffDirectory (uint16_t tag, uint16_t)
 Function to create and initialize a new TIFF directory.
template<uint16_t newGroup>
TiffComponent::AutoPtr newTiffSubIfd (uint16_t tag, uint16_t group)
 Function to create and initialize a new TIFF sub-directory.
template<const ArrayCfg * arrayCfg, int N, const ArrayDef & arrayDef>
TiffComponent::AutoPtr newTiffBinaryArray0 (uint16_t tag, uint16_t group)
 Function to create and initialize a new binary array entry.
template<const ArrayCfg * arrayCfg>
TiffComponent::AutoPtr newTiffBinaryArray1 (uint16_t tag, uint16_t group)
 Function to create and initialize a new simple binary array entry.
template<const ArraySet * arraySet, int N, CfgSelFct cfgSelFct>
TiffComponent::AutoPtr newTiffBinaryArray2 (uint16_t tag, uint16_t group)
 Function to create and initialize a new complex binary array entry.
template<uint16_t szTag, uint16_t szGroup>
TiffComponent::AutoPtr newTiffThumbData (uint16_t tag, uint16_t group)
 Function to create and initialize a new TIFF entry for a thumbnail (data).
template<uint16_t dtTag, uint16_t dtGroup>
TiffComponent::AutoPtr newTiffThumbSize (uint16_t tag, uint16_t group)
 Function to create and initialize a new TIFF entry for a thumbnail (size).
template<uint16_t szTag, uint16_t szGroup>
TiffComponent::AutoPtr newTiffImageData (uint16_t tag, uint16_t group)
 Function to create and initialize a new TIFF entry for image data.
template<uint16_t dtTag, uint16_t dtGroup>
TiffComponent::AutoPtr newTiffImageSize (uint16_t tag, uint16_t group)
 Function to create and initialize a new TIFF entry for image data (size).

Variables

const TiffType ttUnsignedByte = 1
 Exif BYTE type.
const TiffType ttAsciiString = 2
 Exif ASCII type.
const TiffType ttUnsignedShort = 3
 Exif SHORT type.
const TiffType ttUnsignedLong = 4
 Exif LONG type.
const TiffType ttUnsignedRational = 5
 Exif RATIONAL type.
const TiffType ttSignedByte = 6
 Exif SBYTE type.
const TiffType ttUndefined = 7
 Exif UNDEFINED type.
const TiffType ttSignedShort = 8
 Exif SSHORT type.
const TiffType ttSignedLong = 9
 Exif SLONG type.
const TiffType ttSignedRational = 10
 Exif SRATIONAL type.
const TiffType ttTiffFloat = 11
 TIFF FLOAT type.
const TiffType ttTiffDouble = 12
 TIFF DOUBLE type.
const TiffType ttTiffIfd = 13
 TIFF IFD type.
const uint16_t none = 0
 Dummy group.
const uint16_t ifd0 = 1
 Exif IFD0.
const uint16_t ifd1 = 2
 Thumbnail IFD.
const uint16_t ifd2 = 3
 IFD2.
const uint16_t ifd3 = 4
 IFD3.
const uint16_t exif = 5
 Exif IFD.
const uint16_t gps = 6
 GPS IFD.
const uint16_t iop = 7
 Interoperability IFD.
const uint16_t subimg1 = 8
 1st TIFF SubIFD in IFD0
const uint16_t subimg2 = 9
 2nd TIFF SubIFD in IFD0
const uint16_t subimg3 = 10
 3rd TIFF SubIFD in IFD0
const uint16_t subimg4 = 11
 4th TIFF SubIFD in IFD0
const uint16_t panaraw = 64
 IFD0 of Panasonic RAW images.
const uint16_t mn = 256
 Makernote.
const uint16_t ignr = 511
 Read but do not decode.
const uint32_t none = 0x10000
 Dummy tag.
const uint32_t root = 0x20000
 Special tag: root IFD.
const uint32_t next = 0x30000
 Special tag: next IFD.
const uint32_t all = 0x40000
 Special tag: all tags in a group.
const uint32_t pana = 0x80000
 Special tag: root IFD of Panasonic RAW images.

Detailed Description

Internal classes used in a TIFF composite structure.

Version:
Rev
1986
Author:
Andreas Huggel (ahu) ahuggel@gmx.net
Date:
11-Apr-06, ahu: created

Generated on Thu Dec 31 03:57:50 2009 for Exiv2 by  doxygen 1.3.9.1