summaryrefslogtreecommitdiffstats
path: root/src/Buffer.hpp
diff options
context:
space:
mode:
authorMatthias Schiffer <mschiffer@universe-factory.net>2015-02-01 03:21:57 +0100
committerMatthias Schiffer <mschiffer@universe-factory.net>2015-02-01 03:21:57 +0100
commitfc1fc8fbbc9dd9534f40de348210ea66b6defe42 (patch)
tree3cfa5fae12050f49df5cc6bc0482d4e5a45711d1 /src/Buffer.hpp
parenta6a2a6281218688de7a74a9cd2a426aad3fe2da2 (diff)
downloadMinedMap-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.hpp10
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);
+ }
};
}