diff options
author | randomdan <randomdan@localhost> | 2011-02-15 01:25:15 +0000 |
---|---|---|
committer | randomdan <randomdan@localhost> | 2011-02-15 01:25:15 +0000 |
commit | 3fc84507bf1da84a6cee2f73054bdfb19b2ea4f0 (patch) | |
tree | ad1d78078e525a5f7571ab8479018aa5ed8bbc96 | |
parent | Commit some changes I'd swear blind I'd done already (diff) | |
download | project2-3fc84507bf1da84a6cee2f73054bdfb19b2ea4f0.tar.bz2 project2-3fc84507bf1da84a6cee2f73054bdfb19b2ea4f0.tar.xz project2-3fc84507bf1da84a6cee2f73054bdfb19b2ea4f0.zip |
Add debug option for dumping the data document before sending it to the web server
-rw-r--r-- | project2/cgi/cgiAppEngine.cpp | 5 | ||||
-rw-r--r-- | project2/cgi/cgiEnvironment.cpp | 6 | ||||
-rw-r--r-- | project2/cgi/cgiEnvironment.h | 4 | ||||
-rw-r--r-- | project2/environment.cpp | 11 |
4 files changed, 25 insertions, 1 deletions
diff --git a/project2/cgi/cgiAppEngine.cpp b/project2/cgi/cgiAppEngine.cpp index 364d393..1d00c18 100644 --- a/project2/cgi/cgiAppEngine.cpp +++ b/project2/cgi/cgiAppEngine.cpp @@ -62,6 +62,11 @@ CgiApplicationEngine::process() const header->setCookie(cgicc::HTTPCookie(SESSIONID, sessionID.str(), "Session ID", _env->getServerName().substr(_env->getServerName().find(".")), 3600, "/", false)); } +#ifndef NDEBUG + if (!_env->dumpdatadoc.empty()) { + doc->write_to_file_formatted(_env->dumpdatadoc); + } +#endif } CgiApplicationEngine::Stage::Stage(const CgiApplicationEngine * e) : appEngine(e) diff --git a/project2/cgi/cgiEnvironment.cpp b/project2/cgi/cgiEnvironment.cpp index ae65183..aa9e57f 100644 --- a/project2/cgi/cgiEnvironment.cpp +++ b/project2/cgi/cgiEnvironment.cpp @@ -27,6 +27,12 @@ boost::program_options::options_description CgiEnvironment::addOptions(boost::program_options::positional_options_description &) { boost::program_options::options_description cgi("Project2 CGI options"); +#ifndef NDEBUG + cgi.add_options() + ("dumpdatadoc", boost::program_options::value<std::string>(&dumpdatadoc), + "Write a copy of the data document before sending it to the web server") + ; +#endif return cgi; } diff --git a/project2/cgi/cgiEnvironment.h b/project2/cgi/cgiEnvironment.h index 005a49b..1774417 100644 --- a/project2/cgi/cgiEnvironment.h +++ b/project2/cgi/cgiEnvironment.h @@ -26,6 +26,10 @@ class CgiEnvironment : public Environment, public cgicc::CgiEnvironment { private: boost::program_options::options_description addOptions(boost::program_options::positional_options_description &); void postinit(const boost::program_options::options_description &, const boost::program_options::variables_map &); +#ifndef NDEBUG + public: + std::string dumpdatadoc; +#endif }; #endif diff --git a/project2/environment.cpp b/project2/environment.cpp index 5c50517..5510b1a 100644 --- a/project2/environment.cpp +++ b/project2/environment.cpp @@ -36,7 +36,16 @@ Environment::init() po::store(po::parse_environment(all, "P2_"), settings); if (boost::filesystem::exists(".p2config")) { std::ifstream f(".p2config"); - po::store(po::parse_config_file(f, all), settings); + // Allow anything in release, but valid the config file in debug + // Some options only work in debug and you wouldn't want extra + // config entries to break an install + po::store(po::parse_config_file(f, all, +#if NDEBUG + true +#else + false +#endif + ), settings); } po::notify(settings); |