26 std::vector<uint8_t>&
m_v;
32 size_t write(
const void* d,
size_t n)
override 34 const size_t idx = m_v.size();
39 size_t read(
void* d,
size_t n)
override 41 const int avail =
static_cast<int>(m_v.size()) - m_pos_read;
42 if (avail < static_cast<int>(
n))
43 throw std::runtime_error(
44 "CArchiveStreamBase: EOF reading from std::vector!");
54 const std::vector<uint8_t>&
m_v;
60 size_t write(
const void* d,
size_t n)
override 62 throw std::runtime_error(
63 "CArchiveStreamBase: Attempt to write to read-only vector.");
65 size_t read(
void* d,
size_t n)
override 67 const int avail =
static_cast<int>(m_v.size()) - m_pos_read;
68 if (avail < static_cast<int>(
n))
69 throw std::runtime_error(
70 "CArchiveStreamBase: EOF reading from std::vector!");
CArchiveStreamBase(std::vector< uint8_t > &v)
const std::vector< uint8_t > & m_v
size_t read(void *d, size_t n) override
Reads a block of bytes.
size_t read(void *d, size_t n) override
Reads a block of bytes.
CArchive for mrpt::io::CStream classes (use as template argument).
Virtual base class for "archives": classes abstracting I/O streams.
size_t write(const void *d, size_t n) override
Writes a block of bytes.
std::vector< uint8_t > & m_v
size_t write(const void *d, size_t n) override
Writes a block of bytes.
void memcpy(void *dest, size_t destSize, const void *src, size_t copyCount) noexcept
An OS and compiler independent version of "memcpy".
CArchiveStreamBase(const std::vector< uint8_t > &v)