Main Page | Modules | Compound List | File List | Compound Members | File Members

# XMP_Const.h File Reference

Common C/C++ types and constants for the XMP toolkit. More...

`#include "XMP_Environment.h"`
`#include <stddef.h>`

Include dependency graph for XMP_Const.h:

Go to the source code of this file.

## Compounds
struct | XMP_DateTime
| The expanded type for a date and time. Dates and time in the serialized XMP are ISO 8601 strings. The `XMP_DateTime` struct allows easy conversion with other formats. More...
## General scalar types and constants
#define | kXMP_TrueStr "True"
| The canonical true string value for Booleans in serialized XMP. Code that converts from the string to a bool should be case insensitive, and even allow "1".
#define | kXMP_FalseStr "False"
| The canonical false string value for Booleans in serialized XMP. Code that converts from the string to a bool should be case insensitive, and even allow "0".
typedef const char * | XMP_StringPtr
| The type for input string parameters. A `const char *`, a null-terminated UTF-8 string.
typedef XMP_Uns32 | XMP_StringLen
| The type for string length parameters. A 32-bit unsigned integer, as big as will be practically needed.
typedef XMP_Int32 | XMP_Index
| The type for offsets and indices. A 32-bit signed integer. It is signed because that often makes loop termination tests safer.
typedef XMP_Uns32 | XMP_OptionBits
| The type for a collection of 32 flag bits. Individual flags are defined as enum value bit masks. A number of macros provide common set or set operations, e.g. `XMP_PropIsSimple`. For other tests use an expression like "options & kXMP_<theOption>". When passing multiple option flags use the bitwise-or operator. '|', not the arithmatic plus, '+'.
## XML namespace constants for standard XMP schema.
#define | kXMP_NS_XMP "http://ns.adobe.com/xap/1.0/"
| The XML namespace for the XMP "basic" schema.
#define | kXMP_NS_XMP_Rights "http://ns.adobe.com/xap/1.0/rights/"
| The XML namespace for the XMP copyright schema.
#define | kXMP_NS_XMP_MM "http://ns.adobe.com/xap/1.0/mm/"
| The XML namespace for the XMP digital asset management schema.
#define | kXMP_NS_XMP_BJ "http://ns.adobe.com/xap/1.0/bj/"
| The XML namespace for the job management schema.
#define | kXMP_NS_PDF "http://ns.adobe.com/pdf/1.3/"
| The XML namespace for the PDF schema.
#define | kXMP_NS_Photoshop "http://ns.adobe.com/photoshop/1.0/"
| The XML namespace for the Photoshop custom schema.
#define | kXMP_NS_EXIF "http://ns.adobe.com/exif/1.0/"
| The XML namespace for Adobe's EXIF schema.
#define | kXMP_NS_TIFF "http://ns.adobe.com/tiff/1.0/"
| The XML namespace for Adobe's TIFF schema.
#define | kXMP_NS_XMP_T "http://ns.adobe.com/xap/1.0/t/"
| The XML namespace for the XMP text document schema.
#define | kXMP_NS_XMP_T_PG "http://ns.adobe.com/xap/1.0/t/pg/"
| The XML namespace for the XMP paged document schema.
## XML namespace constants for qualifiers and structured property fields.
#define | kXMP_NS_XMP_IdentifierQual "http://ns.adobe.com/xmp/Identifier/qual/1.0/"
| The XML namespace for qualifiers of the xmp:Identifier property.
#define | kXMP_NS_XMP_Dimensions "http://ns.adobe.com/xap/1.0/sType/Dimensions#"
| The XML namespace for fields of the Dimensions type.
#define | kXMP_NS_XMP_Image "http://ns.adobe.com/xap/1.0/g/img/"
| The XML namespace for fields of a graphical image. Used for the Thumbnail type.
#define | kXMP_NS_XMP_ResourceEvent "http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
| The XML namespace for fields of the ResourceEvent type.
#define | kXMP_NS_XMP_ResourceRef "http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
| The XML namespace for fields of the ResourceRef type.
#define | kXMP_NS_XMP_ST_Version "http://ns.adobe.com/xap/1.0/sType/Version#"
| The XML namespace for fields of the Version type.
#define | kXMP_NS_XMP_ST_Job "http://ns.adobe.com/xap/1.0/sType/Job#"
| The XML namespace for fields of the JobRef type.
## XML namespace constants from outside Adobe.
#define | kXMP_NS_DC "http://purl.org/dc/elements/1.1/"
| The XML namespace for the Dublin Core schema.
#define | kXMP_NS_IPTCCore "http://iptc.org/std/Iptc4xmpCore/1.0/xmlns/"
| The XML namespace for the IPTC Core schema.
#define | kXMP_NS_RDF "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
| The XML namespace for RDF.
#define | kXMP_NS_XML "http://www.w3.org/XML/1998/namespace"
| The XML namespace for XML.
## Exception codes.
XMP tookit errors result in throwing an `XMP_Error` exception. Any exception thrown within the XMP toolkit is caught in the toolkit and rethrown as an `XMP_Error`. The `XMP_Error` struct contains a numeric code and an English explanation. New numeric codes may be added at any time. There are typically many possible explanations for each numeric code. The explanations try to be precise about the specific circumstances causing the error. Note: The explanation string is for debugging use only. It must not be shown to users in a final product. It is written for developers not users, and never localized.
typedef XMP_Error | XMP_Error
enum |
## Special purpose callback functions
typedef void(* | XMP_AssertNotifyProc )(void *refCon, XMP_StringPtr message)
| Clients can register a callback function to provide user notification of debugging assertion failures.
typedef XMP_Int32 | XMP_Status
| A signed 32 bit integer used as a status result for the output callback routine. Zero means no error, all other values except -1 are private to the callback. The callback is wrapped to prevent exceptions being thrown across DLL boundaries. Any exceptions thrown out of the callback cause a return status of -1.
typedef XMP_Status(* | XMP_TextOutputProc )(void *refCon, XMP_StringPtr buffer, XMP_StringLen bufferSize)
| Direct text output from the XMP toolkit, such as debugging dumps, is done using client supplied callbacks. The callback is invoked one or more times for each line of output. The end of a line is signaled by a ' ' character at the end of the buffer. Formatting newlines are never present in the middle of a buffer, but values of properties might contain any UTF-8 characters. A success/fail status is returned by the callback. Any failure result aborts the output.
typedef void *(* | XMP_AllocateProc )(size_t size)
| By default the XMP Toolkit uses the built-in C++ implementations for memory allocation and deallocation. Replacements may be provided when calling `SXMPMeta::Initialize`. The allocation function should return null (0) if memory is not available. It should never throw an exception.
## Typedefs
typedef __XMPMeta__ * | XMPMetaRef
| An "ABI safe" pointer to the internal part of an XMP object.

## Detailed Description

Common C/C++ types and constants for the XMP toolkit.

================================================================================================

## Typedef Documentation

XMP_AssertNotifyProc

| Clients can register a callback function to provide user notification of debugging assertion failures. If the client does not register a callback, asserts use the standard C assert macro. If the client does register a callback, it is first called with the message string containing at least the check expression, source file name, and line number. The message might also contain an explanation of the check. The callback should display the message in an alert so that the user will know of the failure. If the callback function returns (as it should), a C++ exception is thrown with the `kXMPErr_AssertFailure` code. There can be only 1 callback per process, so the first one registered is used. This lets an application register its callback first, while still allowing intermediaries like FileInfo to register a callback in case the application does not.

XMPMetaRef

| An "ABI safe" pointer to the internal part of an XMP object. `XMPMetaRef` is an "ABI safe" pointer to the internal part of an XMP object. It should be used for passing an XMP object across client DLL boundaries. See the discussion in `TXMPMeta.hpp`.