XMP Toolkit SDK  6.0.0
ISharedObject.h
Go to the documentation of this file.
1 #ifndef __ISharedObject_h__
2 #define __ISharedObject_h__ 1
3 
4 // =================================================================================================
5 // Copyright 2014 Adobe
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. If you have received this file from a source other
10 // than Adobe, then your use, modification, or distribution of it requires the prior written permission
11 // of Adobe.
12 // =================================================================================================
13 
15 
16 namespace AdobeXMPCommon {
17 
28 
30  public:
31 
35  virtual void APICALL Acquire() const __NOTHROW__ = 0;
36 
41  virtual void APICALL Release() const __NOTHROW__ = 0;
42 
47  virtual AdobeXMPCommon_Int::pISharedObject_I APICALL GetISharedObject_I() __NOTHROW__ = 0;
48 
50  return const_cast< ISharedObject * >( this )->GetISharedObject_I();
51  }
54 
55  protected:
56 
60  virtual ~ISharedObject() __NOTHROW__ = 0;
61 
62  #ifdef FRIEND_CLASS_DECLARATION
63  FRIEND_CLASS_DECLARATION();
64  #endif
65 
67  };
68 
70 
71 };
72 
73 #endif // __ISharedObject_h__
AdobeXMPCommon_Int::pISharedObject_I
ISharedObject_I * pISharedObject_I
Definition: XMPCommonFwdDeclarations.h:149
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
AdobeXMPCommon
Definition: IConfigurable.h:21
XMPCommonFwdDeclarations.h
REQ_FRIEND_CLASS_DECLARATION
#define REQ_FRIEND_CLASS_DECLARATION()
Definition: XMPCommonDefines.h:137
AdobeXMPCommon_Int::pcISharedObject_I
const typedef ISharedObject_I * pcISharedObject_I
Definition: XMPCommonFwdDeclarations.h:151
AdobeXMPCommon::ISharedObject::~ISharedObject
virtual ~ISharedObject() __NOTHROW__=0
Definition: ISharedObject.h:69
AdobeXMPCommon::ISharedObject
Interface that serves as the base interface of all the externally exposed interfaces.
Definition: ISharedObject.h:29