@@ -65,7 +65,7 @@ public class TaskConfiguration
65
65
}
66
66
}
67
67
68
- public class Task < Progress, Value, Error>
68
+ public class Task < Progress, Value, Error> : Printable
69
69
{
70
70
public typealias ErrorInfo = ( error: Error ? , isCancelled: Bool )
71
71
@@ -103,6 +103,8 @@ public class Task<Progress, Value, Error>
103
103
/// rejected/cancelled tuple info
104
104
public internal( set) var errorInfo : ErrorInfo ?
105
105
106
+ public var name : String = " DefaultTask "
107
+
106
108
public var state : TaskState
107
109
{
108
110
// return .Cancelled if .Rejected & errorInfo.isCancelled=true
@@ -117,6 +119,11 @@ public class Task<Progress, Value, Error>
117
119
return self . machine. state
118
120
}
119
121
122
+ public var description : String
123
+ {
124
+ return self . name
125
+ }
126
+
120
127
///
121
128
/// Creates a new task.
122
129
///
@@ -343,6 +350,13 @@ public class Task<Progress, Value, Error>
343
350
self . _cancel ( error: nil )
344
351
}
345
352
353
+ /// Sets task name (method chainable)
354
+ public func name( name: String ) -> Self
355
+ {
356
+ self . name = name
357
+ return self
358
+ }
359
+
346
360
/// Returns new task that is retryable for `tryCount-1` times.
347
361
/// `task.try(n)` is conceptually equal to `task.failure(clonedTask1).failure(clonedTask2)...` with n-1 failure-able.
348
362
public func try( maxTryCount: Int ) -> Task
@@ -354,7 +368,7 @@ public class Task<Progress, Value, Error>
354
368
355
369
if initClosure == nil { return self }
356
370
357
- let newTask = Task { [ weak self] machine, progress, fulfill, _reject, configure in
371
+ return Task { [ weak self] machine, progress, fulfill, _reject, configure in
358
372
359
373
var chainedTasks = [ self !]
360
374
var nextTask : Task = self !
@@ -394,9 +408,7 @@ public class Task<Progress, Value, Error>
394
408
}
395
409
}
396
410
397
- }
398
-
399
- return newTask
411
+ } . name ( " \( self . name) -try( \( maxTryCount) ) " )
400
412
}
401
413
402
414
///
@@ -434,7 +446,7 @@ public class Task<Progress, Value, Error>
434
446
///
435
447
public func then< Progress2, Value2> ( thenClosure: ( Value ? , ErrorInfo ? ) -> Task < Progress2 , Value2 , Error > ) -> Task < Progress2 , Value2 , Error >
436
448
{
437
- let newTask = Task < Progress2 , Value2 , Error > { [ weak self] machine, progress, fulfill, _reject, configure in
449
+ return Task < Progress2 , Value2 , Error > { [ weak self] machine, progress, fulfill, _reject, configure in
438
450
439
451
let bind = { [ weak machine] ( value: Value ? , errorInfo: ErrorInfo ? ) -> Void in
440
452
let innerTask = thenClosure ( value, errorInfo)
@@ -503,9 +515,7 @@ public class Task<Progress, Value, Error>
503
515
}
504
516
}
505
517
506
- }
507
-
508
- return newTask
518
+ } . name ( " \( self . name) -then " )
509
519
}
510
520
511
521
///
@@ -527,7 +537,7 @@ public class Task<Progress, Value, Error>
527
537
///
528
538
public func success< Progress2, Value2> ( successClosure: Value -> Task < Progress2 , Value2 , Error > ) -> Task < Progress2 , Value2 , Error >
529
539
{
530
- let newTask = Task < Progress2 , Value2 , Error > { [ weak self] machine, progress, fulfill, _reject, configure in
540
+ return Task < Progress2 , Value2 , Error > { [ weak self] machine, progress, fulfill, _reject, configure in
531
541
532
542
let bind = { [ weak machine] ( value: Value ) -> Void in
533
543
let innerTask = successClosure ( value)
@@ -582,9 +592,7 @@ public class Task<Progress, Value, Error>
582
592
}
583
593
}
584
594
585
- }
586
-
587
- return newTask
595
+ } . name ( " \( self . name) -success " )
588
596
}
589
597
590
598
///
@@ -608,7 +616,7 @@ public class Task<Progress, Value, Error>
608
616
///
609
617
public func failure( failureClosure: ErrorInfo -> Task ) -> Task
610
618
{
611
- let newTask = Task { [ weak self] machine, progress, fulfill, _reject, configure in
619
+ return Task { [ weak self] machine, progress, fulfill, _reject, configure in
612
620
613
621
let bind = { [ weak machine] ( errorInfo: ErrorInfo ) -> Void in
614
622
let innerTask = failureClosure ( errorInfo)
@@ -664,9 +672,7 @@ public class Task<Progress, Value, Error>
664
672
}
665
673
}
666
674
667
- }
668
-
669
- return newTask
675
+ } . name ( " \( self . name) -failure " )
670
676
}
671
677
672
678
public func pause( ) -> Bool
@@ -740,7 +746,7 @@ extension Task
740
746
configure. resume = { self . resumeAll ( tasks) ; return }
741
747
configure. cancel = { self . cancelAll ( tasks) ; return }
742
748
743
- }
749
+ } . name ( " Task.all " )
744
750
}
745
751
746
752
public class func any( tasks: [ Task ] ) -> Task
@@ -783,7 +789,7 @@ extension Task
783
789
configure. resume = { self . resumeAll ( tasks) ; return }
784
790
configure. cancel = { self . cancelAll ( tasks) ; return }
785
791
786
- }
792
+ } . name ( " Task.any " )
787
793
}
788
794
789
795
/// Returns new task which performs all given tasks and stores only fulfilled values.
@@ -824,7 +830,7 @@ extension Task
824
830
configure. resume = { self . resumeAll ( tasks) ; return }
825
831
configure. cancel = { self . cancelAll ( tasks) ; return }
826
832
827
- }
833
+ } . name ( " Task.some " )
828
834
}
829
835
830
836
public class func cancelAll( tasks: [ Task ] )
0 commit comments