Uses an SC::AsyncFileWrite to stream data to a socket. More...
#include <AsyncRequestStreams.h>
Public Member Functions | |
| Result | init (AsyncBuffersPool &buffersPool, Span< Request > requests, AsyncEventLoop &eventLoop, const SocketDescriptor &descriptor) |
Public Member Functions inherited from SC::AsyncRequestWritableStream< AsyncSocketSend > | |
| Result | init (AsyncBuffersPool &buffersPool, Span< Request > requests, AsyncEventLoop &eventLoop, const DescriptorType &descriptor) |
| Result | registerAutoCloseDescriptor (bool value) |
| Registers or unregisters a listener to AsyncWritableStream::eventFinish to close descriptor. | |
Public Member Functions inherited from SC::AsyncWritableStream | |
| Result | init (AsyncBuffersPool &buffersPool, Span< Request > requests) |
| Emitted when no more data can be written. | |
| 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 (Span< const char > data, Function< void(AsyncBufferView::ID)> cb={}) |
| Try requesting a buffer big enough and copy data into it. | |
| template<size_t N> | |
| Result | write (const char(&str)[N]) |
| Write a C-string literal in the stream. | |
| void | end () |
| Ends the writable stream, waiting for all in-flight and queued writes to finish. | |
| 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. | |
| void | stop () |
Additional Inherited Members | |
Public Attributes inherited from SC::AsyncRequestWritableStream< AsyncSocketSend > | |
| AsyncSocketSend | request |
Public Attributes inherited from SC::AsyncWritableStream | |
| Function< Result(AsyncBufferView::ID, Function< void(AsyncBufferView::ID)>)> | asyncWrite |
| Function that every stream must define to implement its custom write operation. | |
| Event< MaxListeners, Result > | eventError |
| Event< MaxListeners > | eventDrain |
| Emitted when an error occurs. | |
| Event< MaxListeners > | eventFinish |
| Emitted when write queue is empty. | |
| Function< bool()> | canEndWritable |
| Allows keeping a writable in ENDING state until it has finished flushing all pending data. | |
Static Public Attributes inherited from SC::AsyncWritableStream | |
| static constexpr int | MaxListeners = 8 |
Protected Member Functions inherited from SC::AsyncRequestWritableStream< AsyncSocketSend > | |
| Result | write (AsyncBufferView::ID bufferID, Function< void(AsyncBufferView::ID)> cb) |
| void | onEndCloseDescriptor () |
Protected Attributes inherited from SC::AsyncRequestWritableStream< AsyncSocketSend > | |
| AsyncEventLoop * | eventLoop |
| AsyncFileRead / AsyncFileWrite / AsyncSocketReceive / AsyncSocketSend. | |
| Function< void(AsyncBufferView::ID)> | callback |
Uses an SC::AsyncFileWrite to stream data to a socket.