| Exiv2

Loading...
Searching...
No Matches
Classes | Public Types | List of all members
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
| 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().

Referenced by ExifKey(), operator=(), and ~ExifKey().

## ◆ 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
| nodiscard 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(), and ~ExifKey().

## ◆ groupName()

std::string Exiv2::ExifKey::groupName | ( |  | ) | const
| nodiscard override virtual

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

Implements Exiv2::Key.

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

## ◆ key()

std::string Exiv2::ExifKey::key | ( |  | ) | const
| nodiscard 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(), Exiv2::operator<<(), and ~ExifKey().

## ◆ tag()

uint16_t Exiv2::ExifKey::tag | ( |  | ) | const
| nodiscard 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<<(), Exiv2::ExifTags::sectionName(), and ~ExifKey().

## ◆ tagDesc()

std::string Exiv2::ExifKey::tagDesc | ( |  | ) | const
| nodiscard override virtual

Return a description for the tag.

Implements Exiv2::Key.

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

## ◆ tagLabel()

std::string Exiv2::ExifKey::tagLabel | ( |  | ) | const
| nodiscard override virtual

Return a label for the tag.

Implements Exiv2::Key.

Referenced by ~ExifKey().

## ◆ tagName()

std::string Exiv2::ExifKey::tagName | ( |  | ) | const
| nodiscard 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(), Exiv2::operator<<(), and ~ExifKey().

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

- tags.hpp
- tags.cpp