Minecraft Community Edition 0.1.0
Loading...
Searching...
No Matches
MemoryInputStream.hpp
1#pragma once
2#include "InputStream.hpp"
3
4namespace mce::io::stream {
13 class MemoryInputStream final : public InputStream {
14 public:
20 MemoryInputStream(const void* data, size_t size);
21
28 virtual size_t read(void* buffer, size_t size) override;
29
42 size_t readString(char*& buffer, size_t& size);
43
49 virtual size_t seek(size_t position) override;
50
55 virtual size_t tell() override;
56
61 virtual size_t getSize() override;
62
63 private:
67 const char* data = nullptr;
68
72 size_t size;
73
77 size_t offset; // the reading position
78 };
79}
Definition InputStream.hpp:6
virtual size_t tell() override
Get the current read position in the buffer.
Definition MemoryInputStream.cpp:41
virtual size_t getSize() override
Get the total size of the memory buffer.
Definition MemoryInputStream.cpp:47
virtual size_t read(void *buffer, size_t size) override
Read bytes from the memory buffer into the provided buffer.
Definition MemoryInputStream.cpp:12
MemoryInputStream(const void *data, size_t size)
Construct a memory input stream over existing data.
Definition MemoryInputStream.cpp:8
size_t readString(char *&buffer, size_t &size)
Read a NUL-terminated string from the stream.
Definition MemoryInputStream.cpp:24
virtual size_t seek(size_t position) override
Seek to an absolute position in the memory buffer.
Definition MemoryInputStream.cpp:34