diff options
Diffstat (limited to 'zencore/stream.cpp')
| -rw-r--r-- | zencore/stream.cpp | 36 |
1 files changed, 7 insertions, 29 deletions
diff --git a/zencore/stream.cpp b/zencore/stream.cpp index b9a88de66..aa9705764 100644 --- a/zencore/stream.cpp +++ b/zencore/stream.cpp @@ -10,41 +10,19 @@ namespace zen { -MemoryInStream::MemoryInStream(const void* buffer, size_t size) -: m_Buffer(reinterpret_cast<const uint8_t*>(buffer), reinterpret_cast<const uint8_t*>(buffer) + size) -{ -} - void -MemoryInStream::Read(void* buffer, size_t byteCount, uint64_t offset) +BinaryWriter::Write(const void* data, size_t ByteCount, uint64_t Offset) { RwLock::ExclusiveLockScope _(m_Lock); - const size_t needEnd = offset + byteCount; - - if (needEnd > m_Buffer.size()) - throw std::runtime_error("read past end of file!"); // TODO: better exception + const size_t NeedEnd = Offset + ByteCount; - memcpy(buffer, m_Buffer.data() + offset, byteCount); -} + if (NeedEnd > m_Buffer.size()) + { + m_Buffer.resize(NeedEnd); + } -void -MemoryOutStream::Write(const void* data, size_t byteCount, uint64_t offset) -{ - RwLock::ExclusiveLockScope _(m_Lock); - - const size_t needEnd = offset + byteCount; - - if (needEnd > m_Buffer.size()) - m_Buffer.resize(needEnd); - - memcpy(m_Buffer.data() + offset, data, byteCount); -} - -void -MemoryOutStream::Flush() -{ - // No-op + memcpy(m_Buffer.data() + Offset, data, ByteCount); } ////////////////////////////////////////////////////////////////////////// |