XMP Toolkit SDK  6.0.0
IMetadataConverterUtils.h
Go to the documentation of this file.
1 #ifndef __IMetadataConverterUtils_h__
2 #define __IMetadataConverterUtils_h__ 1
3 
4 // =================================================================================================
5 // Copyright Adobe
6 // Copyright 2014 Adobe
7 // All Rights Reserved
8 //
9 // NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
10 // of the Adobe license agreement accompanying it. If you have received this file from a source other
11 // than Adobe, then your use, modification, or distribution of it requires the prior written permission
12 // of Adobe.
13 // =================================================================================================
14 #include <string>
15 #define TXMP_STRING_TYPE std::string
16 #include "XMP.hpp"
17 
22 
23 
24 
25 namespace AdobeXMPCore {
26 
30 
32  : public virtual ISharedObject
33  , public virtual IVersionable
34  {
35  public:
36 
41  static spIMetadata ConvertXMPMetatoIMetadata(const SXMPMeta* inOldXMP);
42 
47  static SXMPMeta ConvertIMetadatatoXMPMeta(AdobeXMPCore::spIMetadata inNewXMP);
48 
50 
56  virtual pIMetadataConverterUtils APICALL GetActualIMetadataConverterUtils() __NOTHROW__ = 0;
57  XMP_PRIVATE pcIMetadataConverterUtils GetActualIMetadataConverterUtils() const __NOTHROW__ {
58  return const_cast< IMetadataConverterUtils_v1 * >( this )->GetActualIMetadataConverterUtils();}
61 
67  virtual AdobeXMPCore_Int::pIMetadataConverterUtils_I APICALL GetIMetadataConverterUtils_I() __NOTHROW__ = 0;
68 
69  XMP_PRIVATE AdobeXMPCore_Int::pcIMetadataConverterUtils_I GetIMetadataConverterUtils_I() const __NOTHROW__ {
70  return const_cast< IMetadataConverterUtils_v1 * >( this )->GetIMetadataConverterUtils_I();}
73 
82  return MakeShared( const_cast< pIMetadataConverterUtils_base >( ptr ) );
83  }
86 
91  XMP_PRIVATE static uint64 GetInterfaceID() { return kIMetadataConverterUtilsID; }
92 
97  XMP_PRIVATE static uint32 GetInterfaceVersion() { return 1; }
99 
100 
101 
102  protected:
107 
108 #ifdef FRIEND_CLASS_DECLARATION
109  FRIEND_CLASS_DECLARATION();
110 #endif
113 
114  };
115 }
116 
117 
118 #endif /*__IMetadataConverterUtils_h__*/
AdobeXMPCore::pcIMetadataConverterUtils_base
const typedef IMetadataConverterUtils_v1 * pcIMetadataConverterUtils_base
Definition: XMPCoreFwdDeclarations.h:223
XMP_PRIVATE
#define XMP_PRIVATE
Definition: XMP_Environment.h:222
__NOTHROW__
#define __NOTHROW__
Definition: XMPCommonDefines.h:147
AdobeXMPCore::IMetadataConverterUtils_v1::~IMetadataConverterUtils_v1
virtual ~IMetadataConverterUtils_v1() __NOTHROW__
Definition: IMetadataConverterUtils.h:106
AdobeXMPCore::kIMetadataConverterUtilsID
static const uint64 kIMetadataConverterUtilsID(0x63436F6E5574696C)
XMP_PUBLIC
#define XMP_PUBLIC
Definition: XMP_Environment.h:221
AdobeXMPCore::spIMetadata
shared_ptr< IMetadata > spIMetadata
Definition: XMPCoreFwdDeclarations.h:139
AdobeXMPCore::IMetadataConverterUtils_v1
Version1 of the interface that represents an utility functions that can convert old xmp object(SXMPMe...
Definition: IMetadataConverterUtils.h:31
ISharedObject.h
AdobeXMPCore
Definition: IArrayNode.h:18
AdobeXMPCommon::uint32
XMP_Uns32 uint32
Definition: XMPCommonDefines.h:174
XMPCoreFwdDeclarations.h
AdobeXMPCommon::IVersionable
Interface that serves as the base interface for all the externally exposed interfaces which needs to ...
Definition: IVersionable.h:30
REQ_FRIEND_CLASS_DECLARATION
#define REQ_FRIEND_CLASS_DECLARATION()
Definition: XMPCommonDefines.h:137
AdobeXMPCore::pcIMetadataConverterUtils
const typedef IMetadataConverterUtils * pcIMetadataConverterUtils
Definition: XMPCoreFwdDeclarations.h:226
IVersionable.h
AdobeXMPCore::spcIMetadataConverterUtils
shared_ptr< const IMetadataConverterUtils > spcIMetadataConverterUtils
Definition: XMPCoreFwdDeclarations.h:228
AdobeXMPCore::spIMetadataConverterUtils
shared_ptr< IMetadataConverterUtils > spIMetadataConverterUtils
Definition: XMPCoreFwdDeclarations.h:227
AdobeXMPCore_Int::pcIMetadataConverterUtils_I
const typedef IMetadataConverterUtils_I * pcIMetadataConverterUtils_I
Definition: XMPCoreFwdDeclarations.h:323
AdobeXMPCore::pIMetadataConverterUtils
IMetadataConverterUtils * pIMetadataConverterUtils
Definition: XMPCoreFwdDeclarations.h:225
XMP.hpp
Overall header file for the XMP Toolkit.
AdobeXMPCommon::uint64
XMP_Uns64 uint64
Definition: XMPCommonDefines.h:172
IConfigurable.h
AdobeXMPCore_Int::pIMetadataConverterUtils_I
IMetadataConverterUtils_I * pIMetadataConverterUtils_I
Definition: XMPCoreFwdDeclarations.h:321
AdobeXMPCommon::ISharedObject
Interface that serves as the base interface of all the externally exposed interfaces.
Definition: ISharedObject.h:29