diff options
author | Matthias Schiffer <mschiffer@universe-factory.net> | 2015-02-01 03:21:57 +0100 |
---|---|---|
committer | Matthias Schiffer <mschiffer@universe-factory.net> | 2015-02-01 03:21:57 +0100 |
commit | fc1fc8fbbc9dd9534f40de348210ea66b6defe42 (patch) | |
tree | 3cfa5fae12050f49df5cc6bc0482d4e5a45711d1 /src/Buffer.hpp | |
parent | a6a2a6281218688de7a74a9cd2a426aad3fe2da2 (diff) | |
download | MinedMap-fc1fc8fbbc9dd9534f40de348210ea66b6defe42.tar MinedMap-fc1fc8fbbc9dd9534f40de348210ea66b6defe42.zip |
Use template argument for list subtype, extract further information from chunks
Diffstat (limited to 'src/Buffer.hpp')
-rw-r--r-- | src/Buffer.hpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/Buffer.hpp b/src/Buffer.hpp index 9af622d..c7fa9c7 100644 --- a/src/Buffer.hpp +++ b/src/Buffer.hpp @@ -27,6 +27,7 @@ #pragma once #include <cstdint> +#include <cstring> #include <stdexcept> #include <string> @@ -58,6 +59,15 @@ public: len -= n; return std::string(reinterpret_cast<const char *>(data - n), n); } + + void getData(void *buf, size_t n) { + if (n > len) + throw std::runtime_error("Buffer::get(): buffer underrun"); + + data += n; + len -= n; + std::memcpy(buf, data - n, n); + } }; } |