| Exiv2

Loading...
Searching...
No Matches
Public Types | List of all members
Exiv2::IptcKey Class Reference

Concrete keys for IPTC metadata. More...

`#include <datasets.hpp>`

Inheritance diagram for Exiv2::IptcKey:
[legend]

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

## Public Member Functions
Creators
| IptcKey (std::string key)
| Constructor to create an IPTC key from a key string.
| IptcKey (uint16_t tag, uint16_t record)
| Constructor to create an IPTC key from dataset and record ids.
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). For IPTC keys, the group name is the record name.
std::string | tagName () const override
| Return the name of the tag (which is also the third part of the key).
std::string | tagLabel () const override
| Return a label for the tag.
std::string | tagDesc () const override
| Return a description for the tag.
uint16_t | tag () const override
| Return the tag number.
UniquePtr | clone () const
std::string | recordName () const
| Return the name of the record.
uint16_t | record () const
| Return the record id.
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).

## Manipulators
void | makeKey ()
| Set the key corresponding to the dataset and record id. The key is of the form 'Iptc.recordName.dataSetName'.
void | decomposeKey ()
| Parse and convert the key string into dataset and record id. Updates data members if the string can be decomposed, or throws Error.

## 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 IPTC metadata.

## Constructor & Destructor Documentation

## ◆ IptcKey() [1/2]

Exiv2::IptcKey::IptcKey | ( | std::string | key | ) |
| explicit

Constructor to create an IPTC key from a key string.

Parameters

  key | The key string.

Exceptions

  Error | if the first part of the key is not 'Iptc' or the remaining parts of the key cannot be parsed and converted to a record name and a dataset name.

References decomposeKey(), and key().

## ◆ IptcKey() [2/2]

Exiv2::IptcKey::IptcKey | ( | uint16_t | tag,
|  | uint16_t | record )

Constructor to create an IPTC key from dataset and record ids.

Parameters

  tag | Dataset id
  record | Record id

References makeKey(), record(), and tag().

## Member Function Documentation

## ◆ decomposeKey()

void Exiv2::IptcKey::decomposeKey | ( |  | ) |
| protected

Parse and convert the key string into dataset and record id. Updates data members if the string can be decomposed, or throws Error.

Exceptions

  Error | if the key cannot be decomposed.

References Exiv2::IptcDataSets::dataSet(), Exiv2::IptcDataSets::dataSetName(), familyName(), Exiv2::IptcDataSets::recordId(), Exiv2::IptcDataSets::recordName(), and recordName().

Referenced by IptcKey().

## ◆ familyName()

const char * Exiv2::IptcKey::familyName | ( |  | ) | const
| nodiscard override virtual

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

Implements Exiv2::Key.

Referenced by decomposeKey().

## ◆ groupName()

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

Return the name of the group (the second part of the key). For IPTC keys, the group name is the record name.

Implements Exiv2::Key.

References recordName().

## ◆ key()

std::string Exiv2::IptcKey::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 IptcKey(), and Exiv2::operator<<().

## ◆ tag()

uint16_t Exiv2::IptcKey::tag | ( |  | ) | const
| nodiscard override virtual

Return the tag number.

Implements Exiv2::Key.

Referenced by Exiv2::IptcData::findKey(), Exiv2::IptcData::findKey(), and IptcKey().

## ◆ tagDesc()

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

Return a description for the tag.

Implements Exiv2::Key.

References Exiv2::IptcDataSets::dataSetDesc().

## ◆ tagLabel()

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

Return a label for the tag.

Implements Exiv2::Key.

References Exiv2::IptcDataSets::dataSetTitle().

## ◆ tagName()

std::string Exiv2::IptcKey::tagName | ( |  | ) | const
| nodiscard override virtual

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

Implements Exiv2::Key.

References Exiv2::IptcDataSets::dataSetName().

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

- datasets.hpp
- datasets.cpp