| 685 | AsyncWritableStream::~AsyncWritableStream() {} |
| 686 | |
| 687 | Result AsyncWritableStream::write(AsyncBufferView::ID bufferID, Function<void(AsyncBufferView::ID)> cb) |
| 688 | { |
| 689 | if (state == State::Ended or state == State::Ending) |
| 690 | { |
| 691 | return Result::Error("AsyncWritableStream::write - failed (ending or ended state)"); |
| 692 | } |
| 693 | Request request; |
| 694 | request.bufferID = bufferID; |
| 695 | request.cb = move(cb); |
| 696 | if (not writeQueue.pushBack(request)) |
| 697 | { |
| 698 | return Result::Error("AsyncWritableStream::write - queue is full"); |
| 699 | } |
| 700 | buffers->refBuffer(bufferID); // 2a. unrefBuffer below or in finishedWriting |
| 701 | resumeWriting(); |
| 702 | return Result(true); |
| 703 | } |
| 704 | |
| 705 | Result AsyncWritableStream::write(AsyncBufferView&& bufferView, Function<void(AsyncBufferView::ID)> cb) |
| 706 | { |
no test coverage detected