# tiffcomposite.hpp File Reference

`#include "image.hpp"`
`#include "types.hpp"`
`#include <iosfwd>`
`#include <vector>`
`#include <string>`
`#include <cassert>`

Include dependency graph for tiffcomposite.hpp:

This graph shows which files directly or indirectly include this file:

## Namespaces

namespace | Exiv2
namespace | Exiv2::Group
namespace | Exiv2::Tag

## Classes

class | Exiv2::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). More...
struct | Exiv2::TiffStructure
| Data structure used as a row (element) of a table (array) describing the TIFF structure of an image format for reading and writing. Different tables can be used to support different TIFF based image formats. More...
struct | Exiv2::TiffStructure::Key
| Search key for TIFF structure. More...
class | Exiv2::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::TiffEntry
| A standard TIFF IFD entry. More...
class | Exiv2::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. This component is used, e.g., for Exif.Thumbnail.JPEGInterchangeFormat for which the size is provided in Exif.Thumbnail.JPEGInterchangeFormatLength. More...
class | Exiv2::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::TiffDirectory
| This class models a TIFF directory (Ifd). It is a composite component of the TIFF tree. More...
class | Exiv2::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::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::TiffArrayEntry
| Composite to model an array of tags, each consisting of one unsigned short value. Canon and Minolta makernotes use such tags. The elements of this component are usually of type TiffArrayElement. More...
class | Exiv2::TiffArrayElement
| Element of a TiffArrayEntry. The value is exactly one unsigned short component. Canon and Minolta makernotes use arrays of such elements. More...

## Typedefs

typedef TiffComponent::AutoPtr(* | Exiv2::NewTiffCompFct )(uint16_t tag, const TiffStructure *ts)
typedef TiffComponent::AutoPtr(* | Exiv2::TiffCompFactoryFct )(uint32_t extendedTag, uint16_t group)
typedef std::vector< TiffDirectory * > | Exiv2::Ifds
| A collection of TIFF directories (IFDs).

## Functions

const char * | Exiv2::tiffGroupName (uint16_t group)
| Return the group name for a group.
TiffComponent::AutoPtr | Exiv2::newTiffDirectory (uint16_t tag, const TiffStructure *ts)
| Function to create and initialize a new TIFF directory.
TiffComponent::AutoPtr | Exiv2::newTiffSubIfd (uint16_t tag, const TiffStructure *ts)
| Function to create and initialize a new TIFF sub-directory.
TiffComponent::AutoPtr | Exiv2::newTiffMnEntry (uint16_t tag, const TiffStructure *ts)
| Function to create and initialize a new TIFF makernote entry.
template<uint16_t elSize>
TiffComponent::AutoPtr | Exiv2::newTiffArrayEntry (uint16_t tag, const TiffStructure *ts)
| Function to create and initialize a new array entry.
template<TypeId typeId, ByteOrder byteOrder>
TiffComponent::AutoPtr | Exiv2::newTiffArrayElement (uint16_t tag, const TiffStructure *ts)
| Function to create and initialize a new array element.
TiffComponent::AutoPtr | Exiv2::newTiffThumbData (uint16_t tag, const TiffStructure *ts)
| Function to create and initialize a new TIFF entry for a Jpeg thumbnail (data).
TiffComponent::AutoPtr | Exiv2::newTiffThumbSize (uint16_t tag, const TiffStructure *ts)
| Function to create and initialize a new TIFF entry for a Jpeg thumbnail (size).

## Variables

const uint16_t | Exiv2::Group::none = 0
| Dummy group.
const uint16_t | Exiv2::Group::ifd0 = 1
| Exif IFD0.
const uint16_t | Exiv2::Group::ifd1 = 2
| Thumbnail IFD.
const uint16_t | Exiv2::Group::exif = 3
| Exif IFD.
const uint16_t | Exiv2::Group::gps = 4
| GPS IFD.
const uint16_t | Exiv2::Group::iop = 5
| Interoperability IFD.
const uint16_t | Exiv2::Group::sub0_0 = 6
| Tiff SubIFD 0 in IFD0.
const uint16_t | Exiv2::Group::sub0_1 = 7
| Tiff SubIFD 1 in IFD0.
const uint16_t | Exiv2::Group::sub0_2 = 8
| Tiff SubIFD 2 in IFD0.
const uint16_t | Exiv2::Group::sub0_3 = 9
| Tiff SubIFD 3 in IFD0.
const uint16_t | Exiv2::Group::mn = 256
| Makernote.
const uint16_t | Exiv2::Group::ignr = 511
| Read but do not decode.
const uint32_t | Exiv2::Tag::none = 0x10000
| Dummy tag.
const uint32_t | Exiv2::Tag::root = 0x20000
| Special tag: root IFD.
const uint32_t | Exiv2::Tag::next = 0x30000
| Special tag: next IFD.
const uint32_t | Exiv2::Tag::all = 0x40000
| Special tag: all tags in a group.

## Detailed Description

Version:
  Rev
    808

Author:
  Andreas Huggel (ahu) ahuggel@gmx.net

Date:
  11-Apr-06, ahu: created