| 289 | explicit SslWriteByteFlow(SslStreamImpl *stream) : stream_(stream) { |
| 290 | } |
| 291 | bool loop() final { |
| 292 | auto to_write = input_->prepare_read(); |
| 293 | auto r_size = stream_->write(to_write); |
| 294 | if (r_size.is_error()) { |
| 295 | finish(r_size.move_as_error()); |
| 296 | return false; |
| 297 | } |
| 298 | auto size = r_size.move_as_ok(); |
| 299 | if (size == 0) { |
| 300 | return false; |
| 301 | } |
| 302 | input_->confirm_read(size); |
| 303 | return true; |
| 304 | } |
| 305 | |
| 306 | size_t write(Slice data) { |
| 307 | output_.append(data); |