Exiv2
Classes | Namespaces | Typedefs | Functions | Variables
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>

Go to the source code of this file.

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...
 

Namespaces

 Exiv2
 Provides classes and functions to encode and decode Exif and Iptc data. The libexiv2 API consists of the objects of this namespace.
 
 Exiv2::Internal
 Contains internal objects which are not published and are not part of the libexiv2 API.
 
 Exiv2::Internal::Tag
 

Typedefs

typedef uint16_t Exiv2::Internal::TiffType
 TIFF value type.
 
typedef int(* Exiv2::Internal::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(* Exiv2::Internal::CryptFct) (uint16_t, const byte *, uint32_t, TiffComponent *const)
 Function pointer type for a crypt function used for binary arrays.
 

Functions

TypeId Exiv2::Internal::toTypeId (TiffType tiffType, uint16_t tag, IfdId group)
 Convert the tiffType of a tag and group to an Exiv2 typeId.
 
TiffType Exiv2::Internal::toTiffType (TypeId typeId)
 Convert the Exiv2 typeId to a TIFF value type.
 
bool Exiv2::Internal::cmpTagLt (TiffComponent const *lhs, TiffComponent const *rhs)
 Compare two TIFF component pointers by tag. Return true if the tag of component lhs is less than that of rhs.
 
bool Exiv2::Internal::cmpGroupLt (TiffComponent const *lhs, TiffComponent const *rhs)
 Compare two TIFF component pointers by group. Return true if the group of component lhs is less than that of rhs.
 
TiffComponent::AutoPtr Exiv2::Internal::newTiffEntry (uint16_t tag, IfdId group)
 Function to create and initialize a new TIFF entry.
 
TiffComponent::AutoPtr Exiv2::Internal::newTiffMnEntry (uint16_t tag, IfdId group)
 Function to create and initialize a new TIFF makernote entry.
 
TiffComponent::AutoPtr Exiv2::Internal::newTiffBinaryElement (uint16_t tag, IfdId group)
 Function to create and initialize a new binary array element.
 
template<IfdId newGroup>
TiffComponent::AutoPtr Exiv2::Internal::newTiffDirectory (uint16_t tag, IfdId)
 Function to create and initialize a new TIFF directory.
 
template<IfdId newGroup>
TiffComponent::AutoPtr Exiv2::Internal::newTiffSubIfd (uint16_t tag, IfdId group)
 Function to create and initialize a new TIFF sub-directory.
 
template<const ArrayCfg * arrayCfg, int N, const ArrayDef(&) arrayDef>
TiffComponent::AutoPtr Exiv2::Internal::newTiffBinaryArray0 (uint16_t tag, IfdId group)
 Function to create and initialize a new binary array entry.
 
template<const ArrayCfg * arrayCfg>
TiffComponent::AutoPtr Exiv2::Internal::newTiffBinaryArray1 (uint16_t tag, IfdId group)
 Function to create and initialize a new simple binary array entry.
 
template<const ArraySet * arraySet, int N, CfgSelFct cfgSelFct>
TiffComponent::AutoPtr Exiv2::Internal::newTiffBinaryArray2 (uint16_t tag, IfdId group)
 Function to create and initialize a new complex binary array entry.
 
template<uint16_t szTag, IfdId szGroup>
TiffComponent::AutoPtr Exiv2::Internal::newTiffThumbData (uint16_t tag, IfdId group)
 Function to create and initialize a new TIFF entry for a thumbnail (data)
 
template<uint16_t dtTag, IfdId dtGroup>
TiffComponent::AutoPtr Exiv2::Internal::newTiffThumbSize (uint16_t tag, IfdId group)
 Function to create and initialize a new TIFF entry for a thumbnail (size)
 
template<uint16_t szTag, IfdId szGroup>
TiffComponent::AutoPtr Exiv2::Internal::newTiffImageData (uint16_t tag, IfdId group)
 Function to create and initialize a new TIFF entry for image data.
 
template<uint16_t dtTag, IfdId dtGroup>
TiffComponent::AutoPtr Exiv2::Internal::newTiffImageSize (uint16_t tag, IfdId group)
 Function to create and initialize a new TIFF entry for image data (size)
 

Variables

const TiffType Exiv2::Internal::ttUnsignedByte = 1
 Exif BYTE type.
 
const TiffType Exiv2::Internal::ttAsciiString = 2
 Exif ASCII type.
 
const TiffType Exiv2::Internal::ttUnsignedShort = 3
 Exif SHORT type.
 
const TiffType Exiv2::Internal::ttUnsignedLong = 4
 Exif LONG type.
 
const TiffType Exiv2::Internal::ttUnsignedRational = 5
 Exif RATIONAL type.
 
const TiffType Exiv2::Internal::ttSignedByte = 6
 Exif SBYTE type.
 
const TiffType Exiv2::Internal::ttUndefined = 7
 Exif UNDEFINED type.
 
const TiffType Exiv2::Internal::ttSignedShort = 8
 Exif SSHORT type.
 
const TiffType Exiv2::Internal::ttSignedLong = 9
 Exif SLONG type.
 
const TiffType Exiv2::Internal::ttSignedRational =10
 Exif SRATIONAL type.
 
const TiffType Exiv2::Internal::ttTiffFloat =11
 TIFF FLOAT type.
 
const TiffType Exiv2::Internal::ttTiffDouble =12
 TIFF DOUBLE type.
 
const TiffType Exiv2::Internal::ttTiffIfd =13
 TIFF IFD type.
 
const uint32_t Exiv2::Internal::Tag::none = 0x10000
 Dummy tag.
 
const uint32_t Exiv2::Internal::Tag::root = 0x20000
 Special tag: root IFD.
 
const uint32_t Exiv2::Internal::Tag::next = 0x30000
 Special tag: next IFD.
 
const uint32_t Exiv2::Internal::Tag::all = 0x40000
 Special tag: all tags in a group.
 
const uint32_t Exiv2::Internal::Tag::pana = 0x80000
 Special tag: root IFD of Panasonic RAW images.
 

Detailed Description

Internal classes used in a TIFF composite structure.

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