Exiv2
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:

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
ExifKeyoperator= (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
Keyoperator= (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
Keyoperator= (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
keyThe key string.
Exceptions
Errorif 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
tagThe tag value
groupNameThe name of the group, i.e., the second part of the Exif key.
Exceptions
Errorif 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
tiThe TagInfo instance
Exceptions
Errorif 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
nodiscardoverridevirtual

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
nodiscardoverridevirtual

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
nodiscardoverridevirtual

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
nodiscardoverridevirtual

◆ tagDesc()

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

Return a description for the tag.

Implements Exiv2::Key.

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

◆ tagLabel()

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

Return a label for the tag.

Implements Exiv2::Key.

Referenced by ~ExifKey().

◆ tagName()

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

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: