|
|
template<typename DescriptorType > |
| Result | init (AsyncBuffersPool &buffersPool, AsyncEventLoop &eventLoop, const DescriptorType &descriptor) |
| |
| void | setAutoCloseDescriptor (bool value) |
| | Automatically closes descriptor during write stream finish event.
|
| |
| Result | init (AsyncBuffersPool &buffersPool) |
| | Emitted when the underlying resource has been closed.
|
| |
| constexpr void | setWriteQueue (Span< Request > requests) |
| | Sets the write queue for this writable stream.
|
| |
| size_t | getWriteQueueSize () const |
| | Returns the size of write queue.
|
| |
| Result | write (AsyncBufferView::ID bufferID, Function< void(AsyncBufferView::ID)> cb={}) |
| | Writes a buffer (that must be allocated by the AsyncBuffersPool passed in AsyncWritableStream) When the buffer it will be actually written, AsyncWritableStream::eventWritten will be raised and its reference count will be decreased.
|
| |
| Result | write (AsyncBufferView &&bufferView, Function< void(AsyncBufferView::ID)> cb={}) |
| | Push a new buffer view to the queue, registering it with the allocator.
|
| |
| void | end () |
| | Ends the writable stream, waiting for all in-flight and queued writes to finish.
|
| |
| void | destroy () |
| | Forcefully destroys the writable stream before calling end event releasing all resources.
|
| |
| AsyncBuffersPool & | getBuffersPool () |
| | Obtains the buffers pool to access its data.
|
| |
| void | finishedWriting (AsyncBufferView::ID bufferID, Function< void(AsyncBufferView::ID)> &&cb, Result res) |
| | Signals that the given buffer (previously queued by write) has been fully written.
|
| |
| void | resumeWriting () |
| | Resumes writing queued requests for this stream.
|
| |
| Result | unshift (AsyncBufferView::ID bufferID, Function< void(AsyncBufferView::ID)> &&cb) |
| | Puts back a buffer at the top of the write queue.
|
| |
| void | emitError (Result error) |
| | Signals an async error received.
|
| |
| void | tryAsync (Result potentialError) |
| | Will emit error if the passed in Result is false.
|
| |
| bool | isStillWriting () const |
| | Returns true if this stream is writing something.
|
| |
| bool | hasBeenDestroyed () const |
| | Returns true if the stream has been already destroyed (asynchronously through destroy())
|
| |
| void | setAutoDestroy (bool value) |
| | If set to true will automatically call .destroy() when Ended state is reached.
|
| |
| bool | getAutoDestroy () const |
| | Returns true if stream will automatically call .destroy() when Ended state is reached.
|
| |
|
| virtual Result | asyncWrite (AsyncBufferView::ID bufferID, Function< void(AsyncBufferView::ID)> cb) override |
| | Function that every stream must define to implement its custom write operation.
|
| |
| virtual Result | asyncDestroyWritable () override |
| | Function that a writable stream can re-implement to release its internal resources.
|
| |
| virtual bool | canEndWritable () override |
| | Allows keeping a writable in ENDING state until it has finished flushing all pending data.
|
| |
|
void | afterWrite (typename AsyncRequestType::Result &result) |
| |
|
void | finalizeWritableDestruction () |
| |
| void | finishedDestroyingWritable () |
| | Function that MUST be called by re-implementations of asyncDestroyWritable once they're done.
|
| |
|
void | stop () |
| |