/*
|
* Copyright (c) 2014, Facebook, Inc.
|
* All rights reserved.
|
*
|
* This source code is licensed under the BSD-style license found in the
|
* LICENSE file in the root directory of this source tree. An additional grant
|
* of patent rights can be found in the PATENTS file in the same directory.
|
*
|
*/
|
|
#import "OSSCancellationTokenSource.h"
|
|
#import "OSSCancellationToken.h"
|
|
NS_ASSUME_NONNULL_BEGIN
|
|
@interface OSSCancellationToken (OSSCancellationTokenSource)
|
|
- (void)cancel;
|
- (void)cancelAfterDelay:(int)millis;
|
|
- (void)dispose;
|
- (void)throwIfDisposed;
|
|
@end
|
|
@implementation OSSCancellationTokenSource
|
|
#pragma mark - Initializer
|
|
- (instancetype)init {
|
self = [super init];
|
if (!self) return self;
|
|
_token = [OSSCancellationToken new];
|
|
return self;
|
}
|
|
+ (instancetype)cancellationTokenSource {
|
return [OSSCancellationTokenSource new];
|
}
|
|
#pragma mark - Custom Setters/Getters
|
|
- (BOOL)isCancellationRequested {
|
return _token.isCancellationRequested;
|
}
|
|
- (void)cancel {
|
[_token cancel];
|
}
|
|
- (void)cancelAfterDelay:(int)millis {
|
[_token cancelAfterDelay:millis];
|
}
|
|
- (void)dispose {
|
[_token dispose];
|
}
|
|
@end
|
|
NS_ASSUME_NONNULL_END
|