| XMP Toolkit SDK 6.0.0

IDOMImplementationRegistry.h
Go to the documentation of this file.
1 #ifndef IDOMImplementationRegistry_h__
2 #define IDOMImplementationRegistry_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
15 #include "XMPCore/XMPCoreFwdDeclarations.h"
16 #include "XMPCommon/Interfaces/BaseInterfaces/ISharedObject.h"
17 #include "XMPCommon/Interfaces/BaseInterfaces/IVersionable.h"
18
19 namespace AdobeXMPCore {
20
31 class XMP_PUBLIC IDOMImplementationRegistry_v1
32 : public virtual ISharedObject
33 , public virtual IVersionable
34 {
35 public:
36
44 virtual spIDOMParser APICALL GetParser( const char * key ) const = 0;
45
53 virtual spIDOMSerializer APICALL GetSerializer( const char * key ) const = 0;
54
61 virtual bool APICALL RegisterParser( const char * key, pIClientDOMParser_base parser ) = 0;
62
69 virtual bool APICALL RegisterSerializer( const char * key, pIClientDOMSerializer_base serializer ) = 0;
70
75 XMP_PRIVATE static spIDOMImplementationRegistry GetDOMImplementationRegistry();
76
79
85 virtual pIDOMImplementationRegistry APICALL GetActualIDOMImplementationRegistry() __NOTHROW__ = 0;
86 XMP_PRIVATE pcIDOMImplementationRegistry GetActualIDOMImplementationRegistry() const __NOTHROW__ {
87 return const_cast< IDOMImplementationRegistry_v1 * >( this )->GetActualIDOMImplementationRegistry();
88 }
91
97 virtual AdobeXMPCore_Int::pIDOMImplementationRegistry_I APICALL GetIDOMImplementationRegistry_I() __NOTHROW__ = 0;
98
99 XMP_PRIVATE AdobeXMPCore_Int::pcIDOMImplementationRegistry_I GetIDOMImplementationRegistry_I() const __NOTHROW__ {
100 return const_cast< IDOMImplementationRegistry_v1 * >( this )->GetIDOMImplementationRegistry_I();
101 }
104
111 XMP_PRIVATE static spIDOMImplementationRegistry MakeShared( pIDOMImplementationRegistry_base ptr );
112 XMP_PRIVATE static spcIDOMImplementationRegistry MakeShared( pcIDOMImplementationRegistry_base ptr ) {
113 return MakeShared( const_cast< pIDOMImplementationRegistry_base >( ptr ) );
114 }
117
122 XMP_PRIVATE static uint64 GetInterfaceID() { return kIDOMImplementationRegistryID; }
123
128 XMP_PRIVATE static uint32 GetInterfaceVersion() { return 1; }
130
131 protected:
135 virtual ~IDOMImplementationRegistry_v1() __NOTHROW__ {}
136
138 virtual pIDOMParser_base APICALL getParser( const char * key, pcIError_base & error ) const __NOTHROW__ = 0;
139 virtual pIDOMSerializer_base APICALL getSerializer( const char * key, pcIError_base & error ) const __NOTHROW__ = 0;
140 virtual uint32 APICALL registerParser( const char * key, pIClientDOMParser_base parser, pcIError_base & error ) __NOTHROW__ = 0;
141 virtual uint32 APICALL registerSerializer( const char * key, pIClientDOMSerializer_base serializer, pcIError_base & error ) __NOTHROW__= 0;
142
143 #ifdef FRIEND_CLASS_DECLARATION
144 FRIEND_CLASS_DECLARATION();
145 #endif
146 REQ_FRIEND_CLASS_DECLARATION();
148
149 };
150 }
151
152 #endif // IDOMImplementationRegistry_h__
XMP_PRIVATE
#define XMP_PRIVATE
Definition: XMP_Environment.h:222
__NOTHROW__
#define __NOTHROW__
Definition: XMPCommonDefines.h:147
XMP_PUBLIC
#define XMP_PUBLIC
Definition: XMP_Environment.h:221
AdobeXMPCore::IDOMSerializer_v1
Version1 of the interface that represents an object that can serialize an XMP Data Model to a buffer....
Definition: IDOMSerializer.h:25
AdobeXMPCore::spIDOMParser
shared_ptr< IDOMParser > spIDOMParser
Definition: XMPCoreFwdDeclarations.h:169
AdobeXMPCore::kIDOMImplementationRegistryID
static const uint64 kIDOMImplementationRegistryID(0x63444f4d52677374)
ISharedObject.h
AdobeXMPCore::IDOMImplementationRegistry_v1
Version1 of the interface that serves as a database/registry of all the parsers and serializers avail...
Definition: IDOMImplementationRegistry.h:31
AdobeXMPCore::IClientDOMSerializer_v1
Version 1 of the interface that supports serializing by the client supplied serializer of the XMP Dat...
Definition: IClientDOMSerializer.h:27
AdobeXMPCore_Int::pcIDOMImplementationRegistry_I
const typedef IDOMImplementationRegistry_I * pcIDOMImplementationRegistry_I
Definition: XMPCoreFwdDeclarations.h:308
AdobeXMPCore::IClientDOMParser_v1
Version 1 of the interface that supports parsing by the client supplied parser of the XMP Data Model.
Definition: IClientDOMParser.h:24
AdobeXMPCore
Definition: IArrayNode.h:18
AdobeXMPCore::spIDOMImplementationRegistry
shared_ptr< IDOMImplementationRegistry > spIDOMImplementationRegistry
Definition: XMPCoreFwdDeclarations.h:193
AdobeXMPCommon::uint32
XMP_Uns32 uint32
Definition: XMPCommonDefines.h:174
XMPCoreFwdDeclarations.h
AdobeXMPCore::pcIDOMImplementationRegistry
const typedef IDOMImplementationRegistry * pcIDOMImplementationRegistry
Definition: XMPCoreFwdDeclarations.h:192
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::IDOMParser_v1
Version 1 of the interface that supports parsing of the XMP Data Model.
Definition: IDOMParser.h:26
AdobeXMPCore::IDOMImplementationRegistry_v1::~IDOMImplementationRegistry_v1
virtual ~IDOMImplementationRegistry_v1() __NOTHROW__
Definition: IDOMImplementationRegistry.h:135
AdobeXMPCore::pIDOMImplementationRegistry
IDOMImplementationRegistry * pIDOMImplementationRegistry
Definition: XMPCoreFwdDeclarations.h:191
IVersionable.h
AdobeXMPCore::pcIDOMImplementationRegistry_base
const typedef IDOMImplementationRegistry_v1 * pcIDOMImplementationRegistry_base
Definition: XMPCoreFwdDeclarations.h:189
AdobeXMPCore::spcIDOMImplementationRegistry
shared_ptr< const IDOMImplementationRegistry > spcIDOMImplementationRegistry
Definition: XMPCoreFwdDeclarations.h:194
AdobeXMPCommon::pcIError_base
const typedef IError_v1 * pcIError_base
Definition: XMPCommonFwdDeclarations.h:64
AdobeXMPCore_Int::pIDOMImplementationRegistry_I
IDOMImplementationRegistry_I * pIDOMImplementationRegistry_I
Definition: XMPCoreFwdDeclarations.h:306
AdobeXMPCore::spIDOMSerializer
shared_ptr< IDOMSerializer > spIDOMSerializer
Definition: XMPCoreFwdDeclarations.h:181
AdobeXMPCommon::uint64
XMP_Uns64 uint64
Definition: XMPCommonDefines.h:172
AdobeXMPCommon::ISharedObject
Interface that serves as the base interface of all the externally exposed interfaces.
Definition: ISharedObject.h:29