31 SharedMemoryStream(std::shared_ptr<T>(buffer),
size_t size) : buffer(buffer), capacity(size * sizeof(buffer[0]))
42 return capacity - readPos;
52 size_t written = std::min(bufSize,
available());
53 auto bufptr =
reinterpret_cast<const uint8_t*
>(buffer.get()) + readPos;
54 memcpy(data, bufptr, written);
59 bool seek(
int len)
override
61 if(readPos + len > capacity) {
75 std::shared_ptr<T> buffer;
Base class for read-only stream.
Definition: DataSourceStream.h:46
Memory stream operating on fixed shared buffer.
Definition: SharedMemoryStream.h:25
bool seek(int len) override
Move read cursor.
Definition: SharedMemoryStream.h:59
StreamType getStreamType() const override
Get the stream type.
Definition: SharedMemoryStream.h:35
bool isFinished() override
Check if all data has been read.
Definition: SharedMemoryStream.h:69
int available() override
Return the total length of the stream.
Definition: SharedMemoryStream.h:40
SharedMemoryStream(std::shared_ptr< T >(buffer), size_t size)
Constructor for use with pre-existing buffer.
Definition: SharedMemoryStream.h:31
uint16_t readMemoryBlock(char *data, int bufSize) override
Read a block of memory.
Definition: SharedMemoryStream.h:50
size_t getCapacity() const
Definition: SharedMemoryStream.h:45
StreamType
Data stream type.
Definition: DataSourceStream.h:25
@ eSST_Memory
Memory stream.
Definition: DataSourceStream.h:27