Loading...
Searching...
No Matches
Exiv2::ExifKey Class Reference

Concrete keys for Exif metadata and access to Exif tag reference data. More...

`#include <tags.hpp>`

Inheritance diagram for Exiv2::ExifKey:
[legend]

## Classes

struct | Impl
| Internal Pimpl structure with private members and data of class ExifKey. More...

## Public Types

using | UniquePtr = std::unique_ptr< ExifKey >
| Shortcut for an ExifKey auto pointer.
Public Types inherited from Exiv2::Key
using | UniquePtr = std::unique_ptr< Key >
| Shortcut for a Key auto pointer.

## Public Member Functions

Creators
| ExifKey (const std::string &key)
| Constructor to create an Exif key from a key string.
| ExifKey (uint16_t tag, const std::string &groupName)
| Constructor to create an Exif key from the tag number and group name.
| ExifKey (const TagInfo &ti)
| Constructor to create an Exif key from a TagInfo instance.
| ExifKey (const ExifKey &rhs)
| Copy constructor.
| ~ExifKey () override
| Destructor.
Manipulators
ExifKey & | operator= (const ExifKey &rhs)
| Assignment operator.
void | setIdx (int idx) const
| Set the index.
Public Member Functions inherited from Exiv2::Key
virtual | ~Key ()=default
| Destructor.
| Key (Key &&)=delete
Key & | operator= (Key &&)=delete
UniquePtr | clone () const
| Return an auto-pointer to a copy of itself (deep copy). The caller owns this copy and the auto-pointer ensures that it will be deleted.
std::ostream & | write (std::ostream &os) const
| Write the key to an output stream. You do not usually have to use this function; it is used for the implementation of the output operator for Key, operator<<(std::ostream &os, const Key &key).

## Accessors

std::string | key () const override
| Return the key of the metadatum as a string. The key is of the form 'familyName.groupName.tagName'. Note however that the key is not necessarily unique, e.g., an ExifData may contain multiple metadata with the same key.
const char * | familyName () const override
| Return an identifier for the type of metadata (the first part of the key)
std::string | groupName () const override
| Return the name of the group (the second part of the key)
IfdId | ifdId () const
| Return the IFD id. (Do not use, this is meant for library internal use.)
std::string | tagName () const override
| Return the name of the tag (which is also the third part of the key)
uint16_t | tag () const override
| Return the tag number.
std::string | tagLabel () const override
| Return a label for the tag.
std::string | tagDesc () const override
| Return a description for the tag.
TypeId | defaultTypeId () const
| Return the default type id for this tag.
UniquePtr | clone () const
int | idx () const
| Return the index (unique id of this key within the original Exif data, 0 if not set)

## Additional Inherited Members

Protected Member Functions inherited from Exiv2::Key
| Key (const Key &)=default
Key & | operator= (const Key &)=default
| Assignment operator. Protected so that it can only be used by subclasses but not directly.

## Detailed Description

Concrete keys for Exif metadata and access to Exif tag reference data.

Examples
  addmoddel.cpp, and mrwthumb.cpp.

## Constructor & Destructor Documentation

## ExifKey() [1/3]

Exiv2::ExifKey::ExifKey | ( | const std::string & | key | ) |

explicit

Constructor to create an Exif key from a key string.

Parameters

  key | The key string.

Exceptions

  Error | if the first part of the key is not 'Exif' or the remaining parts of the key cannot be parsed and converted to a group name and tag name.

References key().

## ExifKey() [2/3]

Exiv2::ExifKey::ExifKey | ( | uint16_t | tag,
|  | const std::string & | groupName
| ) |  |

Constructor to create an Exif key from the tag number and group name.

Parameters

  tag | The tag value
  groupName | The name of the group, i.e., the second part of the Exif key.

Exceptions

  Error | if the key cannot be constructed from the tag number and group name.

References Exiv2::Internal::groupId(), groupName(), ifdId(), Exiv2::Internal::isExifIfd(), Exiv2::Internal::isMakerIfd(), tag(), and Exiv2::Internal::tagInfo().

## ExifKey() [3/3]

Exiv2::ExifKey::ExifKey | ( | const TagInfo & | ti | ) |

explicit

Constructor to create an Exif key from a TagInfo instance.

Parameters

  ti | The TagInfo instance

Exceptions

  Error | if the key cannot be constructed from the tag number and group name.

References Exiv2::Internal::groupName(), ifdId(), Exiv2::TagInfo::ifdId_, Exiv2::Internal::isExifIfd(), Exiv2::Internal::isMakerIfd(), and Exiv2::TagInfo::tag_.

## Member Function Documentation

## familyName()

const char * Exiv2::ExifKey::familyName | ( |  | ) | const

override virtual

Return an identifier for the type of metadata (the first part of the key)

Implements Exiv2::Key.

References Exiv2::ExifKey::Impl::familyName_.

Referenced by Exiv2::ExifKey::Impl::decomposeKey().

## groupName()

std::string Exiv2::ExifKey::groupName | ( |  | ) | const

override virtual

Return the name of the group (the second part of the key)

Implements Exiv2::Key.

Referenced by Exiv2::ExifKey::Impl::decomposeKey(), ExifKey(), and Exiv2::operator<<().

## key()

std::string Exiv2::ExifKey::key | ( |  | ) | const

override virtual

Return the key of the metadatum as a string. The key is of the form 'familyName.groupName.tagName'. Note however that the key is not necessarily unique, e.g., an ExifData may contain multiple metadata with the same key.

Implements Exiv2::Key.

Referenced by Exiv2::ExifKey::Impl::decomposeKey(), Exiv2::Internal::TiffEncoder::encodeTiffComponent(), ExifKey(), Exiv2::ExifData::findKey(), Exiv2::ExifData::findKey(), and Exiv2::operator<<().

## tag()

uint16_t Exiv2::ExifKey::tag | ( |  | ) | const

override virtual

Return the tag number.

Implements Exiv2::Key.

Referenced by Exiv2::ExifKey::Impl::decomposeKey(), Exiv2::ExifTags::defaultCount(), ExifKey(), Exiv2::ExifKey::Impl::makeKey(), Exiv2::operator<<(), and Exiv2::ExifTags::sectionName().

## tagDesc()

std::string Exiv2::ExifKey::tagDesc | ( |  | ) | const

override virtual

Return a description for the tag.

Implements Exiv2::Key.

Referenced by Exiv2::operator<<().

## tagLabel()

std::string Exiv2::ExifKey::tagLabel | ( |  | ) | const

override virtual

Return a label for the tag.

Implements Exiv2::Key.

## tagName()

std::string Exiv2::ExifKey::tagName | ( |  | ) | const

override virtual

Return the name of the tag (which is also the third part of the key)

Implements Exiv2::Key.

Referenced by Exiv2::ExifKey::Impl::decomposeKey(), Exiv2::ExifKey::Impl::makeKey(), and Exiv2::operator<<().

The documentation for this class was generated from the following files:

- tags.hpp
- tags.cpp