Blame xmpsdk/include/XMPSDK.hpp

Packit Service 21b5d1
#ifndef __XMP_hpp__
Packit Service 21b5d1
#define __XMP_hpp__ 1
Packit Service 21b5d1
Packit Service 21b5d1
// =================================================================================================
Packit Service 21b5d1
// Copyright 2002-2007 Adobe Systems Incorporated
Packit Service 21b5d1
// All Rights Reserved.
Packit Service 21b5d1
//
Packit Service 21b5d1
// NOTICE:  Adobe permits you to use, modify, and distribute this file in accordance with the terms
Packit Service 21b5d1
// of the Adobe license agreement accompanying it.
Packit Service 21b5d1
// =================================================================================================
Packit Service 21b5d1
Packit Service 21b5d1
//  ================================================================================================
Packit Service 21b5d1
/// \file XMPSDK.hpp
Packit Service 21b5d1
/// \brief Overall header file for the XMP Toolkit
Packit Service 21b5d1
///
Packit Service 21b5d1
/// This is an overall header file, the only one that C++ clients should include.
Packit Service 21b5d1
///
Packit Service 21b5d1
/// The full client API is in the \c TXMPMeta.hpp, \c TXMPIterator.hpp, \c TXMPUtils.hpp headers.
Packit Service 21b5d1
/// Read these for information, but do not include them directly. The \c TXMP... classes are C++
Packit Service 21b5d1
/// template classes that must be instantiated with a string class such as \c std::string. The
Packit Service 21b5d1
/// string class is used to return text strings for property values, serialized XMP, and so on.
Packit Service 21b5d1
/// Clients must also compile \c XMP.incl_cpp to ensure that all client-side glue code is generated.
Packit Service 21b5d1
/// This should be done by including it in exactly one client source file.
Packit Service 21b5d1
///
Packit Service 21b5d1
/// There are two C preprocessor macros that simplify use of the templates:
Packit Service 21b5d1
///
Packit Service 21b5d1
/// \li \c TXMP_STRING_TYPE - Define this as the string class to use with the template. You will get
Packit Service 21b5d1
/// the template headers included and typedefs (\c SXMPMeta, and so on) to use in your code.
Packit Service 21b5d1
///
Packit Service 21b5d1
/// \li \c TXMP_EXPAND_INLINE - Define this as 1 if you want to have the template functions expanded
Packit Service 21b5d1
/// inline in your code. Leave it undefined, or defined as 0, to use out-of-line instantiations of
Packit Service 21b5d1
/// the template functions. Compiling \c XMP.incl_cpp generates explicit out-of-line
Packit Service 21b5d1
/// instantiations if \c TXMP_EXPAND_INLINE is off.
Packit Service 21b5d1
///
Packit Service 21b5d1
/// The template parameter, class \c tStringObj, must have the following member functions (which
Packit Service 21b5d1
/// match those for \c std::string):
Packit Service 21b5d1
///
Packit Service 21b5d1
/// 
Packit Service 21b5d1
///  tStringObj& assign ( const char * str, size_t len )
Packit Service 21b5d1
///  size_t size() const
Packit Service 21b5d1
///  const char * c_str() const
Packit Service 21b5d1
/// 
Packit Service 21b5d1
///
Packit Service 21b5d1
/// The string class must be suitable for at least UTF-8. This is the encoding used for all general
Packit Service 21b5d1
/// values, and is the default encoding for serialized XMP. The string type must also be suitable
Packit Service 21b5d1
/// for UTF-16 or UTF-32 if those serialization encodings are used. This mainly means tolerating
Packit Service 21b5d1
/// embedded 0 bytes, which \c std::string does.
Packit Service 21b5d1
//  ================================================================================================
Packit Service 21b5d1
Packit Service 21b5d1
/// /c XMP_Environment.h must be the first included header.
Packit Service 21b5d1
#include "XMP_Environment.h"
Packit Service 21b5d1
Packit Service 21b5d1
#include "XMP_Version.h"
Packit Service 21b5d1
#include "XMP_Const.h"
Packit Service 21b5d1
Packit Service 21b5d1
#ifdef _MSC_VER
Packit Service 21b5d1
    #if XMP_DebugBuild
Packit Service 21b5d1
        #pragma warning ( push, 4 )
Packit Service 21b5d1
    #else
Packit Service 21b5d1
        #pragma warning ( push, 3 )
Packit Service 21b5d1
    #endif
Packit Service 21b5d1
    #pragma warning ( disable : 4702 ) // unreachable code
Packit Service 21b5d1
    #pragma warning ( disable : 4800 ) // forcing value to bool 'true' or 'false' (performance warning)
Packit Service 21b5d1
#endif
Packit Service 21b5d1
Packit Service 21b5d1
#if defined ( TXMP_STRING_TYPE )
Packit Service 21b5d1
Packit Service 21b5d1
    #include "TXMPMeta.hpp"
Packit Service 21b5d1
    #include "TXMPIterator.hpp"
Packit Service 21b5d1
    #include "TXMPUtils.hpp"
Packit Service 21b5d1
    typedef class TXMPMeta <TXMP_STRING_TYPE>     SXMPMeta;       // For client convenience.
Packit Service 21b5d1
    typedef class TXMPIterator <TXMP_STRING_TYPE> SXMPIterator;
Packit Service 21b5d1
    typedef class TXMPUtils <TXMP_STRING_TYPE>    SXMPUtils;
Packit Service 21b5d1
    #if TXMP_EXPAND_INLINE
Packit Service 21b5d1
    	#error "TXMP_EXPAND_INLINE is not working at present. Please don't use it."
Packit Service 21b5d1
        #include "client-glue/TXMPMeta.incl_cpp"
Packit Service 21b5d1
        #include "client-glue/TXMPIterator.incl_cpp"
Packit Service 21b5d1
        #include "client-glue/TXMPUtils.incl_cpp"
Packit Service 21b5d1
    #endif
Packit Service 21b5d1
Packit Service 21b5d1
#endif  // TXMP_STRING_TYPE
Packit Service 21b5d1
Packit Service 21b5d1
#ifdef _MSC_VER
Packit Service 21b5d1
    #pragma warning ( pop )
Packit Service 21b5d1
#endif
Packit Service 21b5d1
Packit Service 21b5d1
// =================================================================================================
Packit Service 21b5d1
Packit Service 21b5d1
#endif  // __XMP_hpp__