summaryrefslogtreecommitdiff
path: root/src/Handle.cc
diff options
context:
space:
mode:
authorNicolas "Pixel" Noble <pixel@nobis-crew.org>2013-08-02 10:28:37 +0200
committerNicolas "Pixel" Noble <pixel@nobis-crew.org>2013-08-02 10:28:37 +0200
commit07f5a2245d7c15dfb6d716e307d2618a498886d9 (patch)
treeb68f8f80adb4e69f61d2ffb698e953311db1693c /src/Handle.cc
parent11e1cea6667467b2fa5b5791c86b64444420a16a (diff)
Switching Handle's readU8() to be a Future, and using it in SimpleMustache.
Diffstat (limited to 'src/Handle.cc')
-rw-r--r--src/Handle.cc12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/Handle.cc b/src/Handle.cc
index 67eb412..361561a 100644
--- a/src/Handle.cc
+++ b/src/Handle.cc
@@ -94,6 +94,18 @@ ssize_t Balau::Handle::forceWrite(const void * _buf, size_t count, Events::BaseE
return total;
}
+Balau::Future<uint8_t> Balau::Handle::readU8() {
+ IO<Handle> t(this);
+ auto func = [t]() mutable -> uint8_t {
+ uint8_t r;
+ t->read(&r, 1);
+ return r;
+ };
+ Future<uint8_t> r;
+ r.m_run = func;
+ return r;
+}
+
void Balau::Handle::rseek(off_t offset, int whence) throw (GeneralException) {
if (canSeek())
throw GeneralException(String("Handle ") + getName() + " can seek, but rseek() not implemented (missing in class " + ClassName(this).c_str() + ")");