| 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
14 #include "XMPCommon/XMPCommonFwdDeclarations.h"
15
16 namespace AdobeXMPCommon {
17
28
29 class XMP_PUBLIC ISharedObject {
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
49 XMP_PRIVATE AdobeXMPCommon_Int::pcISharedObject_I GetISharedObject_I() const __NOTHROW__ {
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
66 REQ_FRIEND_CLASS_DECLARATION();
67 };
68
69 inline ISharedObject::~ISharedObject() __NOTHROW__ { }
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