|
CeresEngine 0.2.0
A game development framework
|
A stream that provides write-only stream functionality. More...
#include <CeresEngine/Foundation/IO/Stream.hpp>
Public Member Functions | |
| virtual bool | isWritable () const noexcept |
| Checks if the stream is writable. | |
| virtual size_t | write (const void *data, size_t n) |
Writes data to the data stream from a buffer of raw memory data with length n. | |
| template<typename T > | |
| size_t | write (const MemoryView< const T > &memoryView) |
| Writes data from a memory view to the stream. | |
| template<typename T > | |
| size_t | write (const StridedMemoryView< const T > &memoryView) |
| Writes data from a strided memory view to the stream. | |
| size_t | writeString (const StringView string) |
| Writes a string to the data stream. | |
| template<typename T > requires std::is_trivially_copyable_v<T> | |
| bool | write (T value) |
| Writes a trivially copyable object to the stream. | |
| virtual bool | flush () |
| In the stream is buffered, invalidates any buffered write data from to stream. | |
Public Member Functions inherited from CeresEngine::IStream | |
| IStream ()=default | |
| IStream (const IStream &) noexcept=delete | |
| IStream & | operator= (const IStream &) noexcept=delete |
| IStream (IStream &&) noexcept=default | |
| IStream & | operator= (IStream &&) noexcept=default |
| virtual | ~IStream () noexcept=default |
| virtual bool | isSeekable (Seek mode=Seek::Start) const noexcept |
| Checks if the stream is seekable. | |
| virtual void | seek (std::streamsize position, Seek mode=Seek::Start) |
| Changes the position of the data stream. | |
| void | skip (const size_t n) |
Skips n bytes from the data stream. | |
| virtual bool | isTellable () const noexcept |
| Checks if the stream knows it's current absolute position. | |
| virtual size_t | tell () |
| Gets the absolute stream position, in bytes. | |
| virtual bool | isSizeKnown () const noexcept |
| Checks if the stream knows the size of the data. | |
| virtual size_t | size () |
| Gets the number of bytes available on the stream. | |
Additional Inherited Members | |
Public Types inherited from CeresEngine::IStream | |
| enum class | Seek { Start = SEEK_SET , Current = SEEK_CUR , End = SEEK_END } |
| An enumeration that describes how a data stream should be seeked. More... | |
A stream that provides write-only stream functionality.
In the stream is buffered, invalidates any buffered write data from to stream.
Non-buffered streams are free to ignore this method.
Reimplemented in CeresEngine::BufferedOutputStream, CeresEngine::BufferedDataStream, CeresEngine::FilteredOutputStream, CeresEngine::FilteredDataStream, and CeresEngine::WrappedResourceOutputStream.
Checks if the stream is writable.
If this method returns true, write() is safe to be called on this stream.
Reimplemented in CeresEngine::AsyncDataStreamAdapter, CeresEngine::FileDataStream, CeresEngine::MemoryDataStream, CeresEngine::PipeOutputStream, CeresEngine::FilteredOutputStream, CeresEngine::FilteredDataStream, and CeresEngine::WrappedResourceOutputStream.
|
inline |
Writes data from a memory view to the stream.
| memoryView | The memory view to read data to. |
n. If 0, indicates that the stream has ended.
|
inline |
Writes data from a strided memory view to the stream.
Data is written sequentially from the stream, but is read respecting the striding requirements of the view.
| memoryView | The memory view to read data to. |
n. If 0, indicates that the stream has ended. Writes data to the data stream from a buffer of raw memory data with length n.
isWritable() returns true.| data | The memory location to which written data should be copied from. |
| n | The maximum number of bytes to be write to the data stream. |
n, in that case the write operation must be repeated to ensure that all data was written. If 0, indicates that the stream has ended. Reimplemented in CeresEngine::FilteredOutputStream, CeresEngine::FilteredDataStream, CeresEngine::WrappedResourceOutputStream, CeresEngine::FilteredOutputStream, CeresEngine::BufferedOutputStream, CeresEngine::BufferedDataStream, CeresEngine::AsyncDataStreamAdapter, CeresEngine::FileDataStream, CeresEngine::MemoryDataStream, and CeresEngine::PipeOutputStream.
Writes a trivially copyable object to the stream.
| T | The trivially copyable object type to be written. |
| value | The trivially copyable object value to be written. |
|
inline |
Writes a string to the data stream.
| string | The string to be written. |