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 
19 
20 namespace AdobeXMPCommon {
21 
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 
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
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