tree 9a4b341a481d6e7ff5f42aa0214cbe96d490ef97
parent 46c80d378c2dc024a565be38063396e94c9b6c63
author Nate Bosch <nbosch1@gmail.com> 1597075272 -0700
committer GitHub <noreply@github.com> 1597075272 -0700
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJfMW9ICRBK7hj4Ov3rIwAAdHIIAFg8EdtZvuqJfAKIHQDuRRUu
 YBXg95oUSI4Uegs9RnAUBmXR69NLDrZdADwjJ/4SNMSzrzU7eYRaZANmJvP0I7Nr
 mcVkAGmlU1bwki5sOgpUFtD89o6U906g3P6a8FDlj5LvaY3mKPhjO5LHhGp0tG/f
 CnH1AZ79tDelEXRWOlVY878NpMpWXE/3DAKFuWTIxKeGacHbyd+UpflFLcKeHugG
 CboPYR0S4WASmJAKfz0laH+YSRALqKFkwBTbA+fgiQAMPjZBznO9BnEkyZzT++iR
 pxMB7NIrM3oJ9tf7ALt0NNBgA0Gkrn3duoSYHR2g1yK68dEybfZ3yAGN5xj4iHA=
 =6Dis
 -----END PGP SIGNATURE-----
 

Remove ChannelManager class (#64)

Fixes #55

This class was intended to manage lifecycle around a `StreamChannel`,
but in the case of a `Peer` there is a conflict having 3 instances of a
`ChannelManager` attempting to manage lifecycle constraints which
results in completing the same `Completer` instance twice. Since `Peer`
needs a different behavior than `Server` or `Client` the
`ChannelManager` abstraction isn't helpful.

- Inline the important behavior around completing `done` appropriately
  for the end of the channel `stream`, or for errors, into `Peer`,
  `Server`, and `Client`.
- Inline the important behavior around closing the channel `sink` and
  completing `done` when a `Server` or `Client` is closed. `Peer` has
  different behavior and only forwards to it's `Server` and `Client`.
  The returned future from `channel.sink.close` is ignored, since this
  future does not complete in the case where a done even can't be
  delivered to listeners.