XMP property reference, implemented as a static class.
More...
#include <properties.hpp>
|
using | NsRegistry = std::map< std::string, XmpNsInfo > |
| Type for the namespace registry.
|
|
|
static const char * | propertyTitle (const XmpKey &key) |
| Return the title (label) of the property.
|
|
static const char * | propertyDesc (const XmpKey &key) |
| Return the description of the property.
|
|
static TypeId | propertyType (const XmpKey &key) |
| Return the type for property key. The default for unknown keys is xmpText.
|
|
static const XmpPropertyInfo * | propertyInfo (const XmpKey &key) |
| Return information for the property for key.
|
|
static std::string | ns (const std::string &prefix) |
| Return the namespace name for the schema associated with prefix.
|
|
static const char * | nsDesc (const std::string &prefix) |
| Return the namespace description for the schema associated with prefix.
|
|
static const XmpPropertyInfo * | propertyList (const std::string &prefix) |
| Return read-only list of built-in properties for prefix.
|
|
static const XmpNsInfo * | nsInfo (const std::string &prefix) |
| Return information about a schema namespace for prefix. Always returns a valid pointer.
|
|
static std::string | prefix (const std::string &ns) |
| Return the (preferred) prefix for schema namespace ns.
|
|
static void | printProperties (std::ostream &os, const std::string &prefix) |
| Print a list of properties of a schema namespace to output stream os.
|
|
static std::ostream & | printProperty (std::ostream &os, const std::string &key, const Value &value) |
| Interpret and print the value of an XMP property.
|
|
static void | registerNs (const std::string &ns, const std::string &prefix) |
| Register namespace ns with preferred prefix prefix.
|
|
static void | unregisterNs (const std::string &ns) |
| Unregister a custom namespace ns.
|
|
static void | unregisterNs () |
| Unregister all custom namespaces.
|
|
static const XmpNsInfo * | lookupNsRegistry (const XmpNsInfo::Prefix &prefix) |
| Get the registered namespace for a specific prefix from the registry.
|
|
static void | registeredNamespaces (Exiv2::Dictionary &nsDict) |
| Get all registered namespaces (for both Exiv2 and XMPsdk)
|
|
|
static std::mutex | mutex_ |
| Lock to be used while modifying properties.
|
|
static NsRegistry | nsRegistry_ |
| Namespace registry.
|
|
XMP property reference, implemented as a static class.
◆ ns()
static std::string Exiv2::XmpProperties::ns |
( |
const std::string & |
prefix | ) |
|
|
static |
Return the namespace name for the schema associated with prefix.
- Parameters
-
- Returns
- The namespace name
- Exceptions
-
Error | if no namespace is registered with prefix. |
◆ nsDesc()
static const char * Exiv2::XmpProperties::nsDesc |
( |
const std::string & |
prefix | ) |
|
|
static |
Return the namespace description for the schema associated with prefix.
- Parameters
-
- Returns
- The namespace description
- Exceptions
-
Error | if no namespace is registered with prefix. |
◆ nsInfo()
static const XmpNsInfo * Exiv2::XmpProperties::nsInfo |
( |
const std::string & |
prefix | ) |
|
|
static |
Return information about a schema namespace for prefix. Always returns a valid pointer.
- Parameters
-
- Returns
- A pointer to the related information
- Exceptions
-
Error | if no namespace is registered with prefix. |
◆ prefix()
static std::string Exiv2::XmpProperties::prefix |
( |
const std::string & |
ns | ) |
|
|
static |
Return the (preferred) prefix for schema namespace ns.
- Parameters
-
- Returns
- The prefix or an empty string if namespace ns is not registered.
◆ propertyDesc()
static const char * Exiv2::XmpProperties::propertyDesc |
( |
const XmpKey & |
key | ) |
|
|
static |
Return the description of the property.
- Parameters
-
- Returns
- The description of the property, 0 if the key is of an unknown property.
◆ propertyInfo()
Return information for the property for key.
If the key is a path to a nested property (one which contains a slash, like Xmp.MP.RegionInfo/MPRI
:Regions), determines the innermost element (Xmp.MPRI.Regions
) and returns its property information.
- Parameters
-
- Returns
- A pointer to the property information, 0 if the key is of an unknown property.
◆ propertyList()
static const XmpPropertyInfo * Exiv2::XmpProperties::propertyList |
( |
const std::string & |
prefix | ) |
|
|
static |
Return read-only list of built-in properties for prefix.
- Parameters
-
- Returns
- Pointer to the built-in properties for prefix, may be 0 if none is configured in the namespace info.
- Exceptions
-
Error | if no namespace is registered with prefix. |
◆ propertyTitle()
static const char * Exiv2::XmpProperties::propertyTitle |
( |
const XmpKey & |
key | ) |
|
|
static |
Return the title (label) of the property.
- Parameters
-
- Returns
- The title (label) of the property, 0 if the key is of an unknown property.
◆ propertyType()
static TypeId Exiv2::XmpProperties::propertyType |
( |
const XmpKey & |
key | ) |
|
|
static |
Return the type for property key. The default for unknown keys is xmpText.
- Parameters
-
- Returns
- The type of the property
◆ registerNs()
static void Exiv2::XmpProperties::registerNs |
( |
const std::string & |
ns, |
|
|
const std::string & |
prefix |
|
) |
| |
|
static |
Register namespace ns with preferred prefix prefix.
If the prefix is a known or previously registered prefix, the corresponding namespace URI is overwritten.
- Note
- This invalidates XMP keys generated with the previous prefix.
- Examples
- xmpsample.cpp.
◆ unregisterNs() [1/2]
static void Exiv2::XmpProperties::unregisterNs |
( |
| ) |
|
|
static |
Unregister all custom namespaces.
The function only unregisters namespaces registered earlier, it does not unregister built-in namespaces.
- Note
- This invalidates XMP keys generated in any custom namespace.
◆ unregisterNs() [2/2]
static void Exiv2::XmpProperties::unregisterNs |
( |
const std::string & |
ns | ) |
|
|
static |
Unregister a custom namespace ns.
The function only has an effect if there is a namespace ns registered earlier, it does not unregister built-in namespaces.
- Note
- This invalidates XMP keys generated in this namespace.
◆ mutex_
std::mutex Exiv2::XmpProperties::mutex_ |
|
static |
Lock to be used while modifying properties.
- Todo:
- For a proper read-write lock, this shall be improved by a std::shared_timed_mutex (once C++14 is allowed) or std::shared_mutex (once C++17 is allowed). The read-access locks shall be updated to std::shared_lock then.
The documentation for this class was generated from the following file: