ICoreObjectFactory.h
Go to the documentation of this file.
1 #ifndef ICoreObjectFactory_h__
2 #define ICoreObjectFactory_h__ 1
3 
4 // =================================================================================================
5 // Copyright 2014 Adobe Systems Incorporated
6 // All Rights Reserved.
7 //
8 // NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
9 // of the Adobe license agreement accompanying it.
10 // =================================================================================================
11 
14 
15 namespace AdobeXMPCore {
16 
24 
26  : public virtual IObjectFactory_v1
27  {
28  public:
29 
35  virtual pINameSpacePrefixMap_base APICALL CreateNameSpacePrefixMap( pcIError_base & error ) __NOTHROW__ = 0;
36 
42  virtual pcINameSpacePrefixMap_base APICALL GetDefaultNameSpacePrefixMap( pcIError_base & error ) __NOTHROW__ = 0;
43 
53  virtual pcIPathSegment_base APICALL CreatePropertyPathSegment( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength, pcIError_base & error ) __NOTHROW__ = 0;
54 
67  virtual pcIPathSegment_base APICALL CreateArrayIndexPathSegment( const char * nameSpace, sizet nameSpaceLength, sizet index, pcIError_base & error ) __NOTHROW__ = 0;
68 
78  virtual pcIPathSegment_base APICALL CreateQualifierPathSegment( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength, pcIError_base & error ) __NOTHROW__ = 0;
79 
92  virtual pcIPathSegment_base APICALL CreateQualifierSelectorPathSegment( const char * nameSpace, sizet nameSpaceLength, const char * name,
93  sizet nameLength, const char * value, sizet valueLength, pcIError_base & error ) __NOTHROW__ = 0;
94 
100  virtual pIPath_base APICALL CreatePath( pcIError_base & error ) __NOTHROW__ = 0;
101 
110  virtual pIPath_base APICALL ParsePath( const char * path, sizet pathLength, pcINameSpacePrefixMap_base map, pcIError_base & error ) __NOTHROW__ = 0;
111 
123  virtual pISimpleNode_base APICALL CreateSimpleNode( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength,
124  const char * value, sizet valueLength, pcIError_base & error ) __NOTHROW__ = 0;
125 
136  virtual pIArrayNode_base APICALL CreateArrayNode( uint32 arrayForm, const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength, pcIError_base & error ) __NOTHROW__ = 0;
137 
146  virtual pIStructureNode_base APICALL CreateStructureNode( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength, pcIError_base & error ) __NOTHROW__ = 0;
147 
153  virtual pIMetadata_base APICALL CreateMetadata( pcIError_base & error ) __NOTHROW__ = 0;
154 
160  virtual pIDOMImplementationRegistry_base APICALL GetDOMImplementationRegistry( pcIError_base & error ) __NOTHROW__ = 0;
161 
167  virtual pICoreConfigurationManager_base APICALL GetCoreConfigurationManager( pcIError_base & error ) __NOTHROW__ = 0;
168 
171 
177  virtual pICoreObjectFactory APICALL GetActualICoreObjectFactory() __NOTHROW__ = 0;
178  XMP_PRIVATE pcICoreObjectFactory GetActualICoreObjectFactory() const __NOTHROW__ {
179  return const_cast< ICoreObjectFactory_v1 * >( this )->GetActualICoreObjectFactory();
180  }
183 
189  virtual AdobeXMPCore_Int::pICoreObjectFactory_I APICALL GetICoreObjectFactory_I() __NOTHROW__ = 0;
190 
191  XMP_PRIVATE AdobeXMPCore_Int::pcICoreObjectFactory_I GetICoreObjectFactory_I() const __NOTHROW__ {
192  return const_cast< ICoreObjectFactory_v1 * >( this )->GetICoreObjectFactory_I();
193  }
196 
203  XMP_PRIVATE static pICoreObjectFactory MakeCoreObjectFactory( pICoreObjectFactory_base ptr );
204  XMP_PRIVATE static pcICoreObjectFactory MakeCoreObjectFactory( pcICoreObjectFactory_base ptr ) {
205  return MakeCoreObjectFactory( const_cast< pcICoreObjectFactory_base >( ptr ) );
206  }
209 
214  XMP_PRIVATE static uint64 GetInterfaceID() { return kICoreObjectFactoryID; }
215 
220  XMP_PRIVATE static uint32 GetInterfaceVersion() { return 1; }
222 
227  XMP_PRIVATE static pICoreObjectFactory GetCoreObjectFactory();
228 
236  #if LINKING_XMPCORE_LIB
237  XMP_PRIVATE static void SetupCoreObjectFactory();
238  #else
239  XMP_PRIVATE static void SetupCoreObjectFactory( pICoreObjectFactory_base coreObjectFactory );
240  #endif
241 
246  XMP_PRIVATE static void DestroyCoreObjectFactory();
247 
248  protected:
252  virtual ~ICoreObjectFactory_v1() __NOTHROW__ {}
253 
255 
256  #ifdef FRIEND_CLASS_DECLARATION
257  FRIEND_CLASS_DECLARATION();
258  #endif
261 
262  };
263 }
264 #endif // ICoreObjectFactory_h__
Version1 of the interface that represents a Simple Property Node of XMP DOM.
Definition: ISimpleNode.h:23
const ICoreObjectFactory_I * pcICoreObjectFactory_I
#define XMP_PUBLIC
#define __NOTHROW__
Version1 of the interface that represents configuration settings controllable by the client...
Version1 of the interface that represents the whole xmp metadata for an asset.
Definition: IMetadata.h:24
Version1 of the interface that represents map where each entry consists of prefix string as the key a...
ICoreObjectFactory * pICoreObjectFactory
Version1 of a interface that represents a factory to create various artifacts defined within AdobeXMP...
Version1 of the interface that represents an Array Node of XMP DOM.
Definition: IArrayNode.h:25
Version1 of the interface that represents an error/warning encountered during processing.
Definition: IError.h:26
const ICoreObjectFactory * pcICoreObjectFactory
#define REQ_FRIEND_CLASS_DECLARATION()
Version1 of the interface that provides an easy iterative description of a specific path into the XMP...
Definition: IPath.h:26
Version1 of the interface that represents a structure Node of XMP DOM.
static const uint64 kICoreObjectFactoryID(0x634f626a46616374)
Version1 of the interface that serves as a database/registry of all the parsers and serializers avail...
Version1 of a interface that represents a factory to create various artifacts of XMP DOM like array...
ICoreObjectFactory_I * pICoreObjectFactory_I
virtual ~ICoreObjectFactory_v1() __NOTHROW__
#define XMP_PRIVATE
Version1 of the interface that represents one segment in a path to a node into the XMP tree...
Definition: IPathSegment.h:24

XMPToolkit documentation generated by doxygen 1.8.11