session-ios/SessionMessagingKit/Utilities/SSKJobRecord.h
nielsandriesse 5dfd4b1965 Restructure
2020-11-25 16:15:16 +11:00

58 lines
2 KiB
Objective-C

//
// Copyright (c) 2018 Open Whisper Systems. All rights reserved.
//
#import <SessionUtilitiesKit/TSYapDatabaseObject.h>
NS_ASSUME_NONNULL_BEGIN
extern NSErrorDomain const SSKJobRecordErrorDomain;
typedef NS_ERROR_ENUM(SSKJobRecordErrorDomain, JobRecordError){
JobRecordError_AssertionError = 100,
JobRecordError_IllegalStateTransition,
};
typedef NS_ENUM(NSUInteger, SSKJobRecordStatus) {
SSKJobRecordStatus_Unknown,
SSKJobRecordStatus_Ready,
SSKJobRecordStatus_Running,
SSKJobRecordStatus_PermanentlyFailed,
SSKJobRecordStatus_Obsolete
};
#pragma mark -
@interface SSKJobRecord : TSYapDatabaseObject
@property (nonatomic) NSUInteger failureCount;
@property (nonatomic) NSString *label;
- (instancetype)initWithLabel:(NSString *)label NS_DESIGNATED_INITIALIZER;
- (nullable instancetype)initWithCoder:(NSCoder *)coder NS_DESIGNATED_INITIALIZER;
- (instancetype)initWithUniqueId:(NSString *_Nullable)uniqueId NS_UNAVAILABLE;
- (instancetype)init NS_UNAVAILABLE;
@property (readonly, nonatomic) SSKJobRecordStatus status;
@property (nonatomic, readonly) UInt64 sortId;
- (BOOL)saveAsStartedWithTransaction:(YapDatabaseReadWriteTransaction *)transaction
error:(NSError **)outError NS_SWIFT_NAME(saveAsStarted(transaction:));
- (void)saveAsPermanentlyFailedWithTransaction:(YapDatabaseReadWriteTransaction *)transaction
NS_SWIFT_NAME(saveAsPermanentlyFailed(transaction:));
- (void)saveAsObsoleteWithTransaction:(YapDatabaseReadWriteTransaction *)transaction
NS_SWIFT_NAME(saveAsObsolete(transaction:));
- (BOOL)saveRunningAsReadyWithTransaction:(YapDatabaseReadWriteTransaction *)transaction
error:(NSError **)outError NS_SWIFT_NAME(saveRunningAsReady(transaction:));
- (BOOL)addFailureWithWithTransaction:(YapDatabaseReadWriteTransaction *)transaction
error:(NSError **)outError NS_SWIFT_NAME(addFailure(transaction:));
@end
NS_ASSUME_NONNULL_END