# BufferStream.hpp
This File On Github
Ask A Question
API: latest
module: oatpp
#include "oatpp/core/data/stream/BufferStream.hpp"
# BufferOutputStream
BufferOutputStream
namespace oatpp { namespace data { namespace stream {
class BufferOutputStream : public ConsistentOutputStream {}
}}}
# Methods
Return Type | Name | Summary |
---|---|---|
[none] | BufferOutputStream | Constructor. |
[none] | ~BufferOutputStream | Virtual destructor. |
v_io_size | write | Write count of bytes to stream. |
void | setOutputStreamIOMode | Set stream I/O mode. |
IOMode | getOutputStreamIOMode | Get stream I/O mode. |
Context& | getOutputStreamContext | Get stream context. |
void | reserveBytesUpfront | Reserve bytes for future writes. |
p_char8 | getData | Get pointer to data. |
v_buff_size | getCapacity | Get current capacity. |
v_buff_size | getCurrentPosition | Get current data write position. |
void | setCurrentPosition | Set current data write position. |
void | reset | Reset stream buffer and its capacity. Also reset write position. |
oatpp::String | toString | Copy data to oatpp::String. |
oatpp::String | getSubstring | Create oatpp::String from part of buffer. |
oatpp::v_io_size | flushToStream | Write all bytes from buffer to stream. |
oatpp::async::CoroutineStarter | flushToStreamAsync | Write all bytes from buffer to stream in async manner. |
# BufferOutputStream::BufferOutputStream
Constructor.
- @param growBytes
- @param captureData - capture auxiliary data to not get deleted until it's done with the stream.
BufferOutputStream(v_buff_size initialCapacity = 2048, const std::shared_ptr<void>& captureData = nullptr)
# BufferOutputStream::~BufferOutputStream
Virtual destructor.
~BufferOutputStream()
# BufferOutputStream::write
Write count
of bytes to stream.
- @param data - data to write.
- @param count - number of bytes to write.
- @param action - async specific action. If action is NOT oatpp::async::Action::TYPE_NONE, then caller MUST return this action on coroutine iteration.
- @return - actual number of bytes written. oatpp::v_io_size.
v_io_size write(const void *data, v_buff_size count, async::Action& action) override
# BufferOutputStream::setOutputStreamIOMode
Set stream I/O mode.
- @throws
void setOutputStreamIOMode(IOMode ioMode) override
# BufferOutputStream::getOutputStreamIOMode
Get stream I/O mode.
- @return
IOMode getOutputStreamIOMode() override
# BufferOutputStream::getOutputStreamContext
Get stream context.
- @return
Context& getOutputStreamContext() override
# BufferOutputStream::reserveBytesUpfront
Reserve bytes for future writes.
void reserveBytesUpfront(v_buff_size count)
# BufferOutputStream::getData
Get pointer to data.
- @return - pointer to data.
p_char8 getData()
# BufferOutputStream::getCapacity
Get current capacity. Capacity may change.
- @return
v_buff_size getCapacity()
# BufferOutputStream::getCurrentPosition
Get current data write position.
- @return - current data write position.
v_buff_size getCurrentPosition()
# BufferOutputStream::setCurrentPosition
Set current data write position.
- @param position - data write position.
void setCurrentPosition(v_buff_size position)
# BufferOutputStream::reset
Reset stream buffer and its capacity. Also reset write position.
- @param initialCapacity
void reset(v_buff_size initialCapacity = 2048)
# BufferOutputStream::toString
Copy data to oatpp::String.
- @return
oatpp::String toString()
# BufferOutputStream::getSubstring
Create oatpp::String from part of buffer.
- @param pos - starting position in buffer.
- @param count - size of bytes to write to substring.
- @return - oatpp::String
oatpp::String getSubstring(v_buff_size pos, v_buff_size count)
# BufferOutputStream::flushToStream
Write all bytes from buffer to stream.
- @param stream - stream to flush all data to.
- @return - actual amount of bytes flushed.
oatpp::v_io_size flushToStream(OutputStream* stream)
# BufferOutputStream::flushToStreamAsync
Write all bytes from buffer to stream in async manner.
- @param _this - pointer to
this
buffer. - @param stream - stream to flush all data to.
- @return - oatpp::async::CoroutineStarter.
static oatpp::async::CoroutineStarter flushToStreamAsync(const std::shared_ptr<BufferOutputStream>& _this, const std::shared_ptr<OutputStream>& stream)
# BufferInputStream
BufferInputStream
namespace oatpp { namespace data { namespace stream {
class BufferInputStream : public BufferedInputStream {}
}}}
# Methods
Return Type | Name | Summary |
---|---|---|
[none] | BufferInputStream | Multiple implementations:
|
void | reset | Multiple implementations:
|
v_io_size | read | Read data from stream. |
void | setInputStreamIOMode | Set stream I/O mode. |
IOMode | getInputStreamIOMode | Get stream I/O mode. |
Context& | getInputStreamContext | Get stream context. |
std::shared_ptr<std::string> | getDataMemoryHandle | Get data memory handle. |
p_char8 | getData | Get pointer to data. |
v_buff_size | getDataSize | Get data size. |
v_buff_size | getCurrentPosition | Get current data read position. |
void | setCurrentPosition | Set current data read position. |
v_io_size | peek | Peek up to count of bytes int he buffer |
v_io_size | availableToRead | Amount of bytes currently available to read from buffer. |
v_io_size | commitReadOffset | Commit read offset |
# BufferInputStream::BufferInputStream
- Constructor.
- @param memoryHandle - buffer memory handle. May be nullptr.
- @param data - pointer to buffer data.
- @param size - size of the buffer.
- @param captureData - capture auxiliary data to not get deleted until it's done with the stream.
BufferInputStream(const std::shared_ptr<std::string>& memoryHandle, const void* data, v_buff_size size, const std::shared_ptr<void>& captureData = nullptr)
- Constructor.
- @param data - buffer.
- @param captureData - capture auxiliary data to not get deleted until it's done with the stream.
BufferInputStream(const oatpp::String& data, const std::shared_ptr<void>& captureData = nullptr)
# BufferInputStream::reset
- Reset stream data and set position to
0
.- @param memoryHandle - buffer memory handle. May be nullptr.
- @param data - pointer to buffer data.
- @param size - size of the buffer.
- @param captureData - capture auxiliary data to not get deleted until it's done with the stream.
void reset(const std::shared_ptr<std::string>& memoryHandle, p_char8 data, v_buff_size size, const std::shared_ptr<void>& captureData = nullptr)
- Same as
reset(nullptr, nullptr, 0);.
void reset()
# BufferInputStream::read
Read data from stream.
It is a legal case if return result < count. Caller should handle this! Calls to this method are always NON-BLOCKING
- @param data - buffer to read data to.
- @param count - size of the buffer.
- @param action - async specific action. If action is NOT oatpp::async::Action::TYPE_NONE, then caller MUST return this action on coroutine iteration.
- @return - actual number of bytes read. 0 - designates end of the buffer.
v_io_size read(void *data, v_buff_size count, async::Action& action) override
# BufferInputStream::setInputStreamIOMode
Set stream I/O mode.
- @throws
void setInputStreamIOMode(IOMode ioMode) override
# BufferInputStream::getInputStreamIOMode
Get stream I/O mode.
- @return
IOMode getInputStreamIOMode() override
# BufferInputStream::getInputStreamContext
Get stream context.
- @return
Context& getInputStreamContext() override
# BufferInputStream::getDataMemoryHandle
Get data memory handle.
- @return - data memory handle.
std::shared_ptr<std::string> getDataMemoryHandle()
# BufferInputStream::getData
Get pointer to data.
- @return - pointer to data.
p_char8 getData()
# BufferInputStream::getDataSize
Get data size.
- @return - data size.
v_buff_size getDataSize()
# BufferInputStream::getCurrentPosition
Get current data read position.
- @return - current data read position.
v_buff_size getCurrentPosition()
# BufferInputStream::setCurrentPosition
Set current data read position.
- @param position - data read position.
void setCurrentPosition(v_buff_size position)
# BufferInputStream::peek
Peek up to count of bytes int he buffer
- @param data
- @param count
- @return [1..count], IOErrors.
v_io_size peek(void *data, v_buff_size count, async::Action& action) override
# BufferInputStream::availableToRead
Amount of bytes currently available to read from buffer.
- @return oatpp::v_io_size.
v_io_size availableToRead() const override
# BufferInputStream::commitReadOffset
Commit read offset
- @param count
- @return [1..count], IOErrors.
v_io_size commitReadOffset(v_buff_size count) override