From d5a8c51d4010285be02f3252520300a737799872 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Fri, 10 Apr 2015 16:29:15 +0200 Subject: Add diagnostics support --- brep/search.cxx | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 brep/search.cxx (limited to 'brep/search.cxx') diff --git a/brep/search.cxx b/brep/search.cxx new file mode 100644 index 0000000..d8da134 --- /dev/null +++ b/brep/search.cxx @@ -0,0 +1,44 @@ +// file : brep/search.cxx -*- C++ -*- +// copyright : Copyright (c) 2014-2015 Code Synthesis Tools CC +// license : MIT; see accompanying LICENSE file + +#include + +#include + +using namespace std; + +namespace brep +{ + void search:: + handle (request& rq, response& rs) + { + //@@ Could probably have module name in which case this will + // then become: + // + // tracer trace (this, "handle"); + // + tracer trace (this, "search::handle"); + + const name_values& ps (rq.parameters ()); + + if (ps.empty ()) + throw invalid_request ("search parameters expected"); + + if (ps.size () > 100) + fail << "too many parameters: " < ps.size (); + + info << "handling search request from " << rq.client_ip (); + + level2 ([&]{trace << "search request with " << ps.size () << " params";}); + + ostream& o (rs.content (202, "text/html;charset=utf-8")); + + o << "Search page:" << endl; + + for (const name_value& p: ps) + { + o << p.name << "=" << p.value << endl; + } + } +} -- cgit v1.1