aboutsummaryrefslogtreecommitdiff
path: root/brep/module.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'brep/module.cxx')
-rw-r--r--brep/module.cxx39
1 files changed, 39 insertions, 0 deletions
diff --git a/brep/module.cxx b/brep/module.cxx
new file mode 100644
index 0000000..1837ccd
--- /dev/null
+++ b/brep/module.cxx
@@ -0,0 +1,39 @@
+// file : brep/module.cxx -*- C++ -*-
+// copyright : Copyright (c) 2014-2015 Code Synthesis Tools CC
+// license : MIT; see accompanying LICENSE file
+
+#include <brep/module>
+
+using namespace std;
+
+namespace brep
+{
+ void module::
+ handle (request& rq, response& rs, log& l)
+ {
+ log_ = &l;
+
+ try
+ {
+ handle (rq, rs);
+ }
+ catch (const invalid_request& e)
+ {
+ // @@ Format as HTML in proper style.
+ //
+ rs.content (e.status, "text/html;charset=utf-8") << e.description;
+ }
+ catch (const exception& e)
+ {
+ // @@ Exception: log e.what () & 505.
+ //
+ rs.status (505);
+ }
+ catch (...)
+ {
+ // @@ Unknown exception: log & 505.
+ //
+ rs.status (505);
+ }
+ }
+}