# StreamSink<S> class

A object that accepts stream events both synchronously and asynchronously.

A StreamSink combines the methods from StreamConsumer and EventSink.

The EventSink methods can't be used while the addStream is called. As soon as the addStream's Future completes with a value, the EventSink methods can be used again.

If addStream is called after any of the EventSink methods, it'll be delayed until the underlying system has consumed the data added by the EventSink methods.

When EventSink methods are used, the done Future can be used to catch any errors.

When close is called, it will return the done Future.

Implements
  - EventSink<S>
  - StreamConsumer<S>
Implemented by
  - IOSink
  - StreamController
  - WebSocket

## Constructors

StreamSink()

## Properties

done → Future
  Return a future which is completed when the StreamSink is finished. [...]
  read-only
hashCode → int
  The hash code for this object. [...]
  read-only, inherited
runtimeType → Type
  A representation of the runtime type of the object.
  read-only, inherited

## Methods

close() → Future
  Tells the stream sink that no further streams will be added. [...]
add(S event) → void
  Adds a data `event` to the sink. [...]
  inherited
addError(Object error, [ StackTrace stackTrace ]) → void
  Adds an `error` to the sink. [...]
  inherited
addStream(Stream<S> stream) → Future
  Consumes the elements of `stream`. [...]
  inherited
noSuchMethod(Invocation invocation) → dynamic
  Invoked when a non-existent method or property is accessed. [...]
  inherited
toString() → String
  Returns a string representation of this object.
  inherited

## Operators

operator ==(dynamic other) → bool
  The equality operator. [...]
  inherited