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:

Include dependency graph

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.


Generated on Mon Jan 2 12:25:55 2006 for Adobe XMP Toolkit by doxygen 1.3.3