Core/MemoryStream: Add default constructor and getters
Former-commit-id: dde0bbc7e697512d94275a807e18299eb271197e
This commit is contained in:
parent
1c8a09f90c
commit
11f85ab9bb
|
|
@ -8,24 +8,29 @@
|
|||
#define NAZARA_MEMORYSTREAM_HPP
|
||||
|
||||
#include <Nazara/Prerequesites.hpp>
|
||||
#include <Nazara/Core/ByteArray.hpp>
|
||||
#include <Nazara/Core/InputStream.hpp>
|
||||
#include <Nazara/Core/OutputStream.hpp>
|
||||
#include <vector>
|
||||
|
||||
namespace Nz
|
||||
{
|
||||
class NAZARA_CORE_API MemoryStream : public InputStream, public OutputStream
|
||||
{
|
||||
public:
|
||||
MemoryStream();
|
||||
MemoryStream(const void* ptr, unsigned int size);
|
||||
MemoryStream(const MemoryStream&) = default;
|
||||
MemoryStream(MemoryStream&&) = default;
|
||||
~MemoryStream() = default;
|
||||
|
||||
void Clear();
|
||||
|
||||
bool EndOfStream() const override;
|
||||
|
||||
void Flush() override;
|
||||
|
||||
const ByteArray& GetBuffer() const;
|
||||
const UInt8* GetData() const;
|
||||
UInt64 GetCursorPos() const override;
|
||||
UInt64 GetSize() const override;
|
||||
|
||||
|
|
@ -39,7 +44,7 @@ namespace Nz
|
|||
MemoryStream& operator=(MemoryStream&&) = default;
|
||||
|
||||
private:
|
||||
std::vector<UInt8> m_buffer;
|
||||
ByteArray m_buffer;
|
||||
UInt64 m_pos;
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,12 +9,23 @@
|
|||
|
||||
namespace Nz
|
||||
{
|
||||
MemoryStream::MemoryStream(const void* ptr, unsigned int size) :
|
||||
MemoryStream::MemoryStream() :
|
||||
Stream(OpenMode_ReadWrite),
|
||||
m_pos(0)
|
||||
{
|
||||
m_buffer.resize(size);
|
||||
std::memcpy(m_buffer.data(), ptr, size);
|
||||
}
|
||||
|
||||
MemoryStream::MemoryStream(const void* ptr, unsigned int size) :
|
||||
MemoryStream()
|
||||
{
|
||||
m_buffer.Resize(size);
|
||||
std::memcpy(m_buffer.GetBuffer(), ptr, size);
|
||||
}
|
||||
|
||||
void MemoryStream::Clear()
|
||||
{
|
||||
m_buffer.Clear();
|
||||
m_pos = 0;
|
||||
}
|
||||
|
||||
bool MemoryStream::EndOfStream() const
|
||||
|
|
@ -27,11 +38,21 @@ namespace Nz
|
|||
// Nothing to flush
|
||||
}
|
||||
|
||||
const ByteArray& MemoryStream::GetBuffer() const
|
||||
{
|
||||
return m_buffer;
|
||||
}
|
||||
|
||||
UInt64 MemoryStream::GetCursorPos() const
|
||||
{
|
||||
return m_pos;
|
||||
}
|
||||
|
||||
const UInt8* MemoryStream::GetData() const
|
||||
{
|
||||
return m_buffer.GetConstBuffer();
|
||||
}
|
||||
|
||||
UInt64 MemoryStream::GetSize() const
|
||||
{
|
||||
return m_buffer.size();
|
||||
|
|
@ -42,7 +63,7 @@ namespace Nz
|
|||
std::size_t readSize = std::min<std::size_t>(size, static_cast<std::size_t>(m_buffer.size() - m_pos));
|
||||
|
||||
if (buffer)
|
||||
std::memcpy(buffer, m_buffer.data() + m_pos, readSize);
|
||||
std::memcpy(buffer, m_buffer.GetBuffer() + m_pos, readSize);
|
||||
|
||||
m_pos += readSize;
|
||||
return readSize;
|
||||
|
|
@ -59,9 +80,9 @@ namespace Nz
|
|||
{
|
||||
std::size_t endPos = static_cast<std::size_t>(m_pos + size);
|
||||
if (endPos > m_buffer.size())
|
||||
m_buffer.resize(endPos);
|
||||
m_buffer.Resize(endPos);
|
||||
|
||||
std::memcpy(m_buffer.data(), buffer, size);
|
||||
std::memcpy(m_buffer.GetBuffer(), buffer, size);
|
||||
|
||||
m_pos = endPos;
|
||||
return size;
|
||||
|
|
|
|||
Loading…
Reference in New Issue