summaryrefslogtreecommitdiff
path: root/src/Buffer.cc
diff options
context:
space:
mode:
authorNicolas "Pixel" Noble <pixel@nobis-crew.org>2014-06-03 02:14:32 -0700
committerNicolas "Pixel" Noble <pixel@nobis-crew.org>2014-06-03 02:14:32 -0700
commit0243f128ddc7ee44db1a8b95f76eb726122ee1d5 (patch)
tree849119ab62379a31ef28f6fb8303b8824d0bb142 /src/Buffer.cc
parent185dc2e4a06c52937a3f260b2469cda7d62f6112 (diff)
Added MMap Handle object.
Diffstat (limited to 'src/Buffer.cc')
-rw-r--r--src/Buffer.cc21
1 files changed, 18 insertions, 3 deletions
diff --git a/src/Buffer.cc b/src/Buffer.cc
index 42dbd52..b4dfbec 100644
--- a/src/Buffer.cc
+++ b/src/Buffer.cc
@@ -60,14 +60,29 @@ ssize_t Balau::Buffer::write(const void * buf, size_t count) throw (GeneralExcep
}
void Balau::Buffer::reset() {
- if (!m_fromConst)
- m_buffer = (uint8_t *) realloc(m_buffer, 0);
- m_bufSize = 0;
+ if (!m_fromConst) {
+ m_buffer = (uint8_t *)realloc(m_buffer, 0);
+ m_bufSize = 0;
+ }
m_numBlocks = 0;
wseek(0);
rseek(0);
}
+void Balau::Buffer::clear() {
+ reset();
+ m_fromConst = false;
+ m_buffer = NULL;
+ m_bufSize = 0;
+}
+
+void Balau::Buffer::borrow(const uint8_t * buffer, size_t s) {
+ clear();
+ m_fromConst = true;
+ m_buffer = const_cast<uint8_t *>(buffer);
+ m_bufSize = s;
+}
+
bool Balau::Buffer::isClosed() { return false; }
bool Balau::Buffer::isEOF() { return rtell() == m_bufSize; }
const char * Balau::Buffer::getName() { return "Buffer"; }