ISimpleNode.h
Go to the documentation of this file.
1 #ifndef __ISimpleNode_h__
2 #define __ISimpleNode_h__ 1
3 
4 // =================================================================================================
5 // ADOBE SYSTEMS INCORPORATED
6 // Copyright 2014 Adobe Systems Incorporated
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.
11 // =================================================================================================
12 
14 
15 namespace AdobeXMPCore {
16 
24  : public virtual INode_v1
25  {
26  public:
27 
33  virtual spcIUTF8String APICALL GetValue() const = 0;
34 
41  virtual void APICALL SetValue( const char * value, sizet valueLength ) = 0;
42 
47  virtual bool APICALL IsURIType() const = 0;
48 
53  virtual void APICALL SetURIType( bool isURI ) = 0;
54 
55  // Factories to create the simple node
56 
71  XMP_PRIVATE static spISimpleNode CreateSimpleNode( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength,
72  const char * value = NULL, sizet valueLength = AdobeXMPCommon::npos );
73 
74 
77 
83  virtual pISimpleNode APICALL GetActualISimpleNode() __NOTHROW__ = 0;
84  XMP_PRIVATE pcISimpleNode GetActualISimpleNode() const __NOTHROW__ {
85  return const_cast< ISimpleNode_v1 * >( this )->GetActualISimpleNode();
86  }
89 
95  virtual AdobeXMPCore_Int::pISimpleNode_I APICALL GetISimpleNode_I() __NOTHROW__ = 0;
96 
97  XMP_PRIVATE AdobeXMPCore_Int::pcISimpleNode_I GetISimpleNode_I() const __NOTHROW__ {
98  return const_cast< ISimpleNode_v1 * >( this )->GetISimpleNode_I();
99  }
102 
109  XMP_PRIVATE static spISimpleNode MakeShared( pISimpleNode_base ptr );
110  XMP_PRIVATE static spcISimpleNode MakeShared( pcISimpleNode_base ptr ) {
111  return MakeShared( const_cast< pISimpleNode_base >( ptr ) );
112  }
115 
120  XMP_PRIVATE static uint64 GetInterfaceID() { return kISimpleNodeID; }
121 
126  XMP_PRIVATE static uint32 GetInterfaceVersion() { return 1; }
128 
129  protected:
133  virtual ~ISimpleNode_v1() __NOTHROW__ {}
134 
136  virtual pcIUTF8String_base APICALL getValue( pcIError_base & error ) const __NOTHROW__ = 0;
137  virtual void APICALL setValue( const char * value, sizet valueLength, pcIError_base & error ) __NOTHROW__ = 0;
138  virtual uint32 APICALL isURIType( pcIError_base & error ) const __NOTHROW__ = 0;
139  virtual void APICALL setURIType( uint32 isURI, pcIError_base & error ) __NOTHROW__ = 0;
140 
141  #ifdef FRIEND_CLASS_DECLARATION
142  FRIEND_CLASS_DECLARATION();
143  #endif
146 
147  };
148 }
149 
150 #endif // __ISimpleNode_h__
const ISimpleNode_I * pcISimpleNode_I
Version1 of the interface that represents a Simple Property Node of XMP DOM.
Definition: ISimpleNode.h:23
const sizet npos(kMaxSize)
#define XMP_PUBLIC
ISimpleNode_I * pISimpleNode_I
#define __NOTHROW__
virtual ~ISimpleNode_v1() __NOTHROW__
Definition: ISimpleNode.h:133
shared_ptr< const IUTF8String > spcIUTF8String
shared_ptr< ISimpleNode > spISimpleNode
Version1 of the interface that serves as a base interface to all types of nodes in the XMP DOM...
Definition: INode.h:26
Version1 of the interface that represents an error/warning encountered during processing.
Definition: IError.h:26
static const uint64 kISimpleNodeID(0x63536d6c4e6f6465)
shared_ptr< const ISimpleNode > spcISimpleNode
const ISimpleNode * pcISimpleNode
#define REQ_FRIEND_CLASS_DECLARATION()
#define XMP_PRIVATE
Version1 of the interface that represents an UTF8String.
Definition: IUTF8String.h:23
ISimpleNode * pISimpleNode

XMPToolkit documentation generated by doxygen 1.8.11