2222
2323import Foundation
2424
25- internal final class SqOperation : Operation {
25+ public final class SqOperation : Operation {
2626
27- let handler : Job
27+ public let info : JobInfo
28+ public let logger : SwiftQueueLogger
29+ public let dispatchQueue : DispatchQueue
2830
29- var info : JobInfo
31+ public var nextRunSchedule : Date ? = nil
3032
31- let constraints : [ JobConstraint ]
33+ internal let handler : Job
34+ internal var lastError : Error ?
3235
33- var lastError : Error ?
34-
35- let logger : SwiftQueueLogger
36-
37- let listener : JobListener ?
38-
39- let dispatchQueue : DispatchQueue
40-
41- var nextRunSchedule : Date ?
36+ private let constraints : [ JobConstraint ]
37+ private let listener : JobListener ?
4238
4339 /// Current number of repetition. Transient value
4440 internal var currentRepetition : Int = 0
4541
46- override var name : String ? { get { return info. uuid } set { } }
47- override var queuePriority : QueuePriority { get { return info. priority } set { } }
48- override var qualityOfService : QualityOfService { get { return info. qualityOfService } set { } }
42+ public override var name : String ? { get { info. uuid } set { } }
43+ public override var queuePriority : QueuePriority { get { info. priority } set { } }
44+
45+ @available ( iOS 8 . 0 , macCatalyst 13 . 0 , * )
46+ public override var qualityOfService : QualityOfService { get { info. qualityOfService } set { } }
4947
5048 private var jobIsExecuting : Bool = false
51- override var isExecuting : Bool {
52- get { return jobIsExecuting }
49+ public override var isExecuting : Bool {
50+ get { jobIsExecuting }
5351 set {
5452 willChangeValue ( forKey: " isExecuting " )
5553 jobIsExecuting = newValue
@@ -58,34 +56,40 @@ internal final class SqOperation: Operation {
5856 }
5957
6058 private var jobIsFinished : Bool = false
61- override var isFinished : Bool {
62- get { return jobIsFinished }
59+ public override var isFinished : Bool {
60+ get { jobIsFinished }
6361 set {
6462 willChangeValue ( forKey: " isFinished " )
6563 jobIsFinished = newValue
6664 didChangeValue ( forKey: " isFinished " )
6765 }
6866 }
6967
70- internal init ( job: Job , info: JobInfo , logger: SwiftQueueLogger , listener: JobListener ? , dispatchQueue: DispatchQueue ) {
68+ internal init ( _ job: Job ,
69+ _ info: JobInfo ,
70+ _ logger: SwiftQueueLogger ,
71+ _ listener: JobListener ? ,
72+ _ dispatchQueue: DispatchQueue ,
73+ _ constraints: [ JobConstraint ]
74+ ) {
7175 self . handler = job
7276 self . info = info
7377 self . logger = logger
7478 self . listener = listener
7579 self . dispatchQueue = dispatchQueue
76- self . constraints = self . info . buildConstraints ( )
80+ self . constraints = constraints
7781
7882 super. init ( )
7983 }
8084
81- override func start( ) {
85+ public override func start( ) {
8286 super. start ( )
8387 logger. log ( . verbose, jobId: name, message: " Job has been started by the system " )
8488 isExecuting = true
8589 run ( )
8690 }
8791
88- override func cancel( ) {
92+ public override func cancel( ) {
8993 self . cancel ( with: SwiftQueueError . canceled)
9094 }
9195
@@ -112,7 +116,7 @@ internal final class SqOperation: Operation {
112116 listener? . onTerminated ( job: info, result: . fail( error) )
113117 }
114118
115- internal func run( ) {
119+ public func run( ) {
116120 if isCancelled && !isFinished {
117121 isFinished = true
118122 }
@@ -152,7 +156,7 @@ internal final class SqOperation: Operation {
152156
153157extension SqOperation : JobResult {
154158
155- func done( _ result: JobCompletion ) {
159+ public func done( _ result: JobCompletion ) {
156160 guard !isFinished else { return }
157161
158162 listener? . onAfterRun ( job: info, result: result)
0 commit comments