diff options
author | Nicolas "Pixel" Noble <pixel@nobis-crew.org> | 2013-08-02 10:28:37 +0200 |
---|---|---|
committer | Nicolas "Pixel" Noble <pixel@nobis-crew.org> | 2013-08-02 10:28:37 +0200 |
commit | 07f5a2245d7c15dfb6d716e307d2618a498886d9 (patch) | |
tree | b68f8f80adb4e69f61d2ffb698e953311db1693c | |
parent | 11e1cea6667467b2fa5b5791c86b64444420a16a (diff) |
Switching Handle's readU8() to be a Future, and using it in SimpleMustache.
-rw-r--r-- | src/Handle.cc | 12 | ||||
-rw-r--r-- | src/SimpleMustache.cc | 2 |
2 files changed, 13 insertions, 1 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() + ")"); diff --git a/src/SimpleMustache.cc b/src/SimpleMustache.cc index 6f7acdc..eef4b01 100644 --- a/src/SimpleMustache.cc +++ b/src/SimpleMustache.cc @@ -149,7 +149,7 @@ void Balau::SimpleMustache::setTemplate(IO<Handle> _h) { bool beginning = false; while (!h->isEOF()) { - uint8_t c = h->readU8(); + uint8_t c = h->readU8().get(); switch (state) { case PLAIN: if (c != srtMarker[0]) { |