Uses an SC::AsyncFileWrite to stream data to a file. More...
#include <AsyncRequestStreams.h>
Public Member Functions | |
| Result | init (AsyncBuffersPool &buffersPool, AsyncEventLoop &eventLoop, const FileDescriptor &descriptor) |
Public Member Functions inherited from SC::AsyncRequestWritableStream< AsyncFileWrite > | |
| Result | init (AsyncBuffersPool &buffersPool, AsyncEventLoop &eventLoop, const DescriptorType &descriptor) |
| void | setAutoCloseDescriptor (bool value) |
| Automatically closes descriptor during write stream finish event. | |
Public Member Functions inherited from SC::AsyncWritableStream | |
| 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. | |
Additional Inherited Members | |
Public Attributes inherited from SC::AsyncRequestWritableStream< AsyncFileWrite > | |
| AsyncFileWrite | request |
Public Attributes inherited from SC::AsyncWritableStream | |
| Event< MaxListeners, Result > | eventError |
| Event< MaxListeners > | eventDrain |
| Emitted when an error occurs. | |
| Event< MaxListeners > | eventFinish |
| Emitted when write queue is empty. | |
| Event< MaxListeners > | eventClose |
| Emitted when no more data can be written. | |
Static Public Attributes inherited from SC::AsyncWritableStream | |
| static constexpr int | MaxListeners = 8 |
Protected Member Functions inherited from SC::AsyncRequestWritableStream< AsyncFileWrite > | |
| 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 AsyncFileWrite::Result &result) |
| void | finalizeWritableDestruction () |
Protected Member Functions inherited from SC::AsyncWritableStream | |
| void | finishedDestroyingWritable () |
| Function that MUST be called by re-implementations of asyncDestroyWritable once they're done. | |
| void | stop () |
Static Protected Member Functions inherited from SC::AsyncRequestWritableStream< AsyncFileWrite > | |
| static void | stopWritableCallback (AsyncResult &) |
Protected Attributes inherited from SC::AsyncRequestWritableStream< AsyncFileWrite > | |
| AsyncEventLoop * | eventLoop |
| AsyncBufferView::ID | bufferID |
| bool | autoCloseDescriptor |
| Function< void(AsyncBufferView::ID)> | callback |
Static Protected Attributes inherited from SC::AsyncRequestWritableStream< AsyncFileWrite > | |
| static Function< void(AsyncResult &)> | onStopCallback |
Uses an SC::AsyncFileWrite to stream data to a file.