summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Handle.cc12
-rw-r--r--src/SimpleMustache.cc2
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]) {