7#include "exiv2lib_export.h"
10#include "metadatum.hpp"
180 return os << static_cast<int>(
id);
185 using GroupName = std::string;
244 static void taglist(std::ostream& os);
323 [[nodiscard]] std::string
key()
const override;
324 [[nodiscard]]
const char*
familyName()
const override;
325 [[nodiscard]] std::string
groupName()
const override;
328 [[nodiscard]] std::string
tagName()
const override;
329 [[nodiscard]] uint16_t
tag()
const override;
330 [[nodiscard]] std::string
tagLabel()
const override;
331 [[nodiscard]] std::string
tagDesc()
const override;
337 [[nodiscard]]
int idx()
const;
342 [[nodiscard]]
ExifKey* clone_()
const override;
346 std::unique_ptr<Impl> p_;
A container for Exif data. This is a top-level class of the Exiv2 library. The container holds Exifda...
Definition exif.hpp:379
Concrete keys for Exif metadata and access to Exif tag reference data.
Definition tags.hpp:271
ExifKey(const std::string &key)
Constructor to create an Exif key from a key string.
Definition tags.cpp:258
ExifKey & operator=(const ExifKey &rhs)
Assignment operator.
Definition tags.cpp:267
std::string tagDesc() const override
Return a description for the tag.
Definition tags.cpp:301
int idx() const
Return the index (unique id of this key within the original Exif data, 0 if not set)
Definition tags.cpp:329
std::string tagName() const override
Return the name of the tag (which is also the third part of the key)
Definition tags.cpp:291
void setIdx(int idx) const
Set the index.
Definition tags.cpp:275
std::string key() const override
Return the key of the metadatum as a string. The key is of the form 'familyName.groupName....
Definition tags.cpp:279
std::string groupName() const override
Return the name of the group (the second part of the key)
Definition tags.cpp:287
TypeId defaultTypeId() const
Return the default type id for this tag.
Definition tags.cpp:307
~ExifKey() override
Destructor.
uint16_t tag() const override
Return the tag number.
Definition tags.cpp:313
std::string tagLabel() const override
Return a label for the tag.
Definition tags.cpp:295
std::unique_ptr< ExifKey > UniquePtr
Shortcut for an ExifKey auto pointer.
Definition tags.hpp:274
IfdId ifdId() const
Return the IFD id. (Do not use, this is meant for library internal use.)
Definition tags.cpp:325
const char * familyName() const override
Return an identifier for the type of metadata (the first part of the key)
Definition tags.cpp:283
Common interface for all types of values used with metadata.
Definition value.hpp:33
const char * groupName(IfdId ifdId)
Return the group name for a group id.
Definition tags_int.cpp:2477
Class CrwImage to access Canon CRW images. References: The Canon RAW (CRW) File Format by Phil Harv...
Definition asfvideo.hpp:15
EXIV2API std::ostream & operator<<(std::ostream &os, const DataSet &dataSet)
Output operator for dataSet.
Definition datasets.cpp:590
const TagInfo *(*)() TagListFct
A function returning a tag list.
Definition tags.hpp:28
IfdId
Type to specify the IFD to which a metadata belongs.
Definition tags.hpp:34
TypeId
Exiv2 value type identifiers.
Definition types.hpp:70
SectionId
Section identifiers to logically group tags. A section consists of nothing more than a name,...
Definition tags.hpp:198
std::ostream &(*)(std::ostream &, const Value &, const ExifData *pExifData) PrintFct
Type for a function pointer for functions interpreting the tag value.
Definition tags.hpp:26
Internal Pimpl structure with private members and data of class ExifKey.
Definition tags.cpp:144
The details of an Exif group. Groups include IFDs and binary arrays.
Definition tags.hpp:184
TagListFct tagList_
Tag list.
Definition tags.hpp:191
const char * ifdName_
IFD name.
Definition tags.hpp:189
const char * groupName_
Group name, unique for each group.
Definition tags.hpp:190
bool operator==(IfdId ifdId) const
Comparison operator for IFD id.
Definition tags.cpp:68
IfdId ifdId_
IFD id.
Definition tags.hpp:188
Tag information.
Definition tags.hpp:224
uint16_t tag_
Tag.
Definition tags.hpp:225
IfdId ifdId_
Link to the (preferred) IFD.
Definition tags.hpp:229
int16_t count_
The number of values (not bytes!), 0=any, -1=count not known.
Definition tags.hpp:232
TypeId typeId_
Type id.
Definition tags.hpp:231
SectionId sectionId_
Section id.
Definition tags.hpp:230
const char * desc_
Short tag description.
Definition tags.hpp:228
const char * title_
Tag title.
Definition tags.hpp:227
PrintFct printFct_
Pointer to tag print function.
Definition tags.hpp:233
const char * name_
One word tag label.
Definition tags.hpp:226