AJA NTV2 SDK  17.0.1.1246
NTV2 SDK 17.0.1.1246
atomic.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: MIT */
8 #ifndef AJA_ATOMIC_H
9 #define AJA_ATOMIC_H
10 
11 #include "ajabase/common/public.h"
12 
18 {
19  // CLASS METHODS
20  public:
28  static void* Exchange(void* volatile* pTarget, void* pValue);
29 
37  static int32_t Exchange(int32_t volatile* pTarget, int32_t value);
38 
45  static int32_t Increment(int32_t volatile* pTarget);
46 
53  static int32_t Decrement(int32_t volatile* pTarget);
54 
62  static uint32_t Exchange(uint32_t volatile* pTarget, uint32_t value);
63 
70  static uint32_t Increment(uint32_t volatile* pTarget);
71 
78  static uint32_t Decrement(uint32_t volatile* pTarget);
79 
87  static int64_t Exchange(int64_t volatile* pTarget, int64_t value);
88 
95  static int64_t Increment(int64_t volatile* pTarget);
96 
103  static int64_t Decrement(int64_t volatile* pTarget);
104 
112  static uint64_t Exchange(uint64_t volatile* pTarget, uint64_t value);
113 
120  static uint64_t Increment(uint64_t volatile* pTarget);
121 
128  static uint64_t Decrement(uint64_t volatile* pTarget);
129 }; // AJAAtomic
130 
131 #endif // AJA_ATOMIC_H
AJA_EXPORT
#define AJA_EXPORT
Definition: export.h:34
public.h
Master header for the ajabase library.
AJAAtomic
Definition: atomic.h:17