| XMP Toolkit SDK 6.0.0

IThreadSafe.h
Go to the documentation of this file.
1 #ifndef IThreadSafe_h__
3 #define IThreadSafe_h__ 1
4
5 //
6 // =================================================================================================
7 // Copyright Adobe
8 // Copyright 2015 Adobe
9 // All Rights Reserved
10 //
11 // NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
12 // of the Adobe license agreement accompanying it. If you have received this file from a source other
13 // than Adobe, then your use, modification, or distribution of it requires the prior written permission
14 // of Adobe.
15 // =================================================================================================
16 //
17
18 #include "XMPCommon/XMPCommonFwdDeclarations.h"
19
20 namespace AdobeXMPCommon {
21
29 class XMP_PUBLIC IThreadSafe
30 {
31 public:
32
37 virtual void APICALL EnableThreadSafety() const __NOTHROW__ = 0;
38
43 virtual void APICALL DisableThreadSafety() const __NOTHROW__ = 0;
44
50 virtual bool APICALL IsThreadSafe() const = 0;
51
56 virtual AdobeXMPCommon_Int::pIThreadSafe_I APICALL GetIThreadSafe_I() __NOTHROW__ = 0;
57
58 XMP_PRIVATE AdobeXMPCommon_Int::pcIThreadSafe_I GetIThreadSafe_I() const __NOTHROW__ {
59 return const_cast< IThreadSafe * >( this )->GetIThreadSafe_I();
60 }
61 virtual ~IThreadSafe(){}
64
65 protected:
68 virtual uint32 APICALL isThreadSafe() const __NOTHROW__ = 0;
70
71 #ifdef FRIEND_CLASS_DECLARATION
72 FRIEND_CLASS_DECLARATION();
73 #endif
74 REQ_FRIEND_CLASS_DECLARATION();
75 };
76
77 }
78 #endif // IThreadSafe_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
AdobeXMPCommon
Definition: IConfigurable.h:21
AdobeXMPCommon::IThreadSafe
Interface that serves as the base interface for all the externally exposed interfaces which needs to ...
Definition: IThreadSafe.h:29
XMPCommonFwdDeclarations.h
AdobeXMPCommon::uint32
XMP_Uns32 uint32
Definition: XMPCommonDefines.h:174
REQ_FRIEND_CLASS_DECLARATION
#define REQ_FRIEND_CLASS_DECLARATION()
Definition: XMPCommonDefines.h:137
AdobeXMPCommon_Int::pcIThreadSafe_I
const typedef IThreadSafe_I * pcIThreadSafe_I
Definition: XMPCommonFwdDeclarations.h:156
AdobeXMPCommon_Int::pIThreadSafe_I
IThreadSafe_I * pIThreadSafe_I
Definition: XMPCommonFwdDeclarations.h:154