HDwallpaper/target/FW/AppLovinSDK.xcframework/ios-arm64/AppLovinSDK.framework/Headers/ALAtomicReference.h
2024-07-23 17:20:05 +08:00

48 lines
1.0 KiB
Objective-C

//
// ALAtomicReference.h
// AppLovinSDK
//
// Created by Alan Cao on 1/5/24.
//
NS_ASSUME_NONNULL_BEGIN
/**
* An object reference that may be updated atomically.
*/
@interface ALAtomicReference <ObjectType> : NSObject
/**
* Returns the current value.
*/
- (nullable ObjectType)get;
/**
* Unconditionally sets to the given value.
*/
- (void)set:(nullable ObjectType)newValue;
/**
* Atomically sets to the given value and returns the previous value.
*/
- (nullable ObjectType)getAndSet:(nullable ObjectType)newValue;
/**
* Atomically sets the value to the given updated value if the current value == the expected value.
*
* @param expect The expected value.
* @param update The new value.
*
* @return @c YES if successful. @c NO return indicates that the actual value was not equal to the expected value.
*/
- (BOOL)compareAndSet:(nullable ObjectType)expect update:(nullable ObjectType)update;
/**
* Creates an instance with the given initial value.
*/
- (instancetype)initWithValue:(nullable ObjectType)initialValue;
@end
NS_ASSUME_NONNULL_END