summaryrefslogtreecommitdiff
path: root/src/HttpServer.cc
diff options
context:
space:
mode:
authorNicolas "Pixel" Noble <pixel@nobis-crew.org>2013-08-02 10:27:19 +0200
committerNicolas "Pixel" Noble <pixel@nobis-crew.org>2013-08-02 10:27:19 +0200
commitc6dd17a1435db36eeaff24e40a7cc212ee7214a0 (patch)
tree15502debbc8827e3d917d6a498723abb40a3c73e /src/HttpServer.cc
parent9b6dc4d5d83f8acbd82459a0296eb256f632ea02 (diff)
Using SimpleContext in SimpleMustache's setTemplate, as it reads from a Handle using readU8. We'll switch readU8 to use a Future.
Diffstat (limited to 'src/HttpServer.cc')
-rw-r--r--src/HttpServer.cc21
1 files changed, 13 insertions, 8 deletions
diff --git a/src/HttpServer.cc b/src/HttpServer.cc
index 357bb26..2bc0710 100644
--- a/src/HttpServer.cc
+++ b/src/HttpServer.cc
@@ -83,16 +83,23 @@ class HttpWorker : public Task {
Balau::SimpleMustache Balau::HttpWorker::m_errorTemplate;
-class SetDefaultTemplate : public Balau::AtStart {
- public:
- SetDefaultTemplate() : AtStart(0) { }
- virtual void doStart();
+namespace {
+
+class SetDefaultTemplateTask : public Balau::Task {
static const Balau::String m_defaultErrorTemplate;
+ virtual const char * getName() const { return "SetDefaultTemplateTask"; }
+ virtual void Do() { Balau::HttpWorker::buildErrorTemplate(m_defaultErrorTemplate); }
+};
+
+class SetDefaultTemplate : public Balau::AtStartAsTask {
+ public:
+ SetDefaultTemplate() : AtStartAsTask(0) { }
+ virtual Balau::Task * createStartTask() { return new SetDefaultTemplateTask(); }
};
static SetDefaultTemplate setDefaultTemplate;
-const Balau::String SetDefaultTemplate::m_defaultErrorTemplate(
+const Balau::String SetDefaultTemplateTask::m_defaultErrorTemplate(
"<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n"
"\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n"
"<html xmlns=\"http://www.w3.org/1999/xhtml\">\n"
@@ -116,9 +123,7 @@ const Balau::String SetDefaultTemplate::m_defaultErrorTemplate(
"</html>\n"
);
-void SetDefaultTemplate::doStart() {
- Balau::HttpWorker::buildErrorTemplate(m_defaultErrorTemplate);
-}
+};
Balau::HttpWorker::HttpWorker(IO<Handle> io, void * _server) : m_socket(new WriteOnly(io)), m_strm(new BStream(io)) {
m_server = (HttpServer *) _server;