Skip to content

Commit 8613283

Browse files
committed
🔪 ReadData.Aggregated
1 parent 567d058 commit 8613283

File tree

1 file changed

+12
-16
lines changed

1 file changed

+12
-16
lines changed

ReactiveTask/Task.swift

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -234,11 +234,6 @@ private final class Pipe {
234234
private enum ReadData {
235235
/// A chunk of data, sent as soon as it is received.
236236
case Chunk(NSData)
237-
238-
/// The aggregate of all data sent so far, sent right before completion.
239-
///
240-
/// No further chunks will occur after this has been sent.
241-
case Aggregated(NSData)
242237
}
243238

244239
/// Takes ownership of the read handle from the given pipe, then sends
@@ -257,7 +252,6 @@ private func aggregateDataReadFromPipe(pipe: Pipe) -> SignalProducer<ReadData, T
257252
buffer.appendData(data)
258253
}, failed: observer.sendFailed
259254
, completed: {
260-
observer.sendNext(.Aggregated(buffer))
261255
observer.sendCompleted()
262256
}, interrupted: observer.sendInterrupted
263257
))
@@ -464,38 +458,40 @@ public func launchTask(taskDescription: Task, standardInput: SignalProducer<NSDa
464458
stdoutProducer.startWithSignal { signal, signalDisposable in
465459
disposable += signalDisposable
466460

461+
let aggregate = NSMutableData()
467462
signal.observe(Observer(next: { readData in
468463
switch readData {
469464
case let .Chunk(data):
470465
observer.sendNext(.StandardOutput(data))
471-
472-
case let .Aggregated(data):
473-
stdoutAggregatedObserver.sendNext(data)
466+
aggregate.appendData(data)
474467
}
475468
}, failed: { error in
476469
observer.sendFailed(error)
477470
stdoutAggregatedObserver.sendFailed(error)
478-
}, completed: stdoutAggregatedObserver.sendCompleted
479-
, interrupted: stdoutAggregatedObserver.sendInterrupted
471+
}, completed: {
472+
stdoutAggregatedObserver.sendNext(aggregate)
473+
stdoutAggregatedObserver.sendCompleted()
474+
}, interrupted: stdoutAggregatedObserver.sendInterrupted
480475
))
481476
}
482477

483478
stderrProducer.startWithSignal { signal, signalDisposable in
484479
disposable += signalDisposable
485480

481+
let aggregate = NSMutableData()
486482
signal.observe(Observer(next: { readData in
487483
switch readData {
488484
case let .Chunk(data):
489485
observer.sendNext(.StandardError(data))
490-
491-
case let .Aggregated(data):
492-
stderrAggregatedObserver.sendNext(data)
486+
aggregate.appendData(data)
493487
}
494488
}, failed: { error in
495489
observer.sendFailed(error)
496490
stderrAggregatedObserver.sendFailed(error)
497-
}, completed: stderrAggregatedObserver.sendCompleted
498-
, interrupted: stderrAggregatedObserver.sendInterrupted
491+
}, completed: {
492+
stderrAggregatedObserver.sendNext(aggregate)
493+
stderrAggregatedObserver.sendCompleted()
494+
}, interrupted: stderrAggregatedObserver.sendInterrupted
499495
))
500496
}
501497

0 commit comments

Comments
 (0)