From 7bf3d9902efe7e6c55f9ae869fa318854b022225 Mon Sep 17 00:00:00 2001 From: randomdan Date: Mon, 14 May 2012 17:50:58 +0000 Subject: Move output encoding somewhere cacheable --- project2/cgi/cgiAppEngine.cpp | 2 +- project2/cgi/cgiEnvironment.cpp | 2 -- project2/cgi/cgiEnvironment.h | 1 - project2/cgi/cgiOutputOptions.cpp | 3 +++ project2/cgi/cgiOutputOptions.h | 4 +++- 5 files changed, 7 insertions(+), 5 deletions(-) diff --git a/project2/cgi/cgiAppEngine.cpp b/project2/cgi/cgiAppEngine.cpp index 566b979..cc7a3aa 100644 --- a/project2/cgi/cgiAppEngine.cpp +++ b/project2/cgi/cgiAppEngine.cpp @@ -140,7 +140,7 @@ CgiApplicationEngine::process() const TransformSourcePtr final = finalTransformSource(ts); ScopeObject emptyFinal([final] { final->clearTargets(); }); final->addTarget(new CgiResult(header, IO, - rs && rs->root ? rs->root->value("encoding", _env->outputEncoding) : VariableType(_env->outputEncoding)), NULL); + rs && rs->outputOptions ? rs->outputOptions->Encoding().as() : OutputOptions::encoding), NULL); BOOST_FOREACH(const PresenterCachePtr & p, rs->caches) { final->addTarget(p, NULL); } diff --git a/project2/cgi/cgiEnvironment.cpp b/project2/cgi/cgiEnvironment.cpp index 2e977b2..babeeea 100644 --- a/project2/cgi/cgiEnvironment.cpp +++ b/project2/cgi/cgiEnvironment.cpp @@ -52,8 +52,6 @@ CgiEnvironment::CgiEnvironment() : "The module with which to implement session management") ("cgi.hostRegex", hpi, "Regular expression used to define a hostname -> platform association") - ("cgi.outputEncoding", Options::value(&outputEncoding, "utf-8"), - "The encoding to use when outputing to the web server") ; } diff --git a/project2/cgi/cgiEnvironment.h b/project2/cgi/cgiEnvironment.h index 27b1694..a2867be 100644 --- a/project2/cgi/cgiEnvironment.h +++ b/project2/cgi/cgiEnvironment.h @@ -60,7 +60,6 @@ class CgiEnvironment : public Environment { std::string onErrorPresent; std::string defaultPresenter; std::string sessionModule; - std::string outputEncoding; }; #endif diff --git a/project2/cgi/cgiOutputOptions.cpp b/project2/cgi/cgiOutputOptions.cpp index ba4d621..59b034d 100644 --- a/project2/cgi/cgiOutputOptions.cpp +++ b/project2/cgi/cgiOutputOptions.cpp @@ -7,8 +7,10 @@ bool OutputOptions::timing; bool OutputOptions::environment; bool OutputOptions::url; bool OutputOptions::parameters; +std::string OutputOptions::encoding; OutputOptions::OutputOptions(ScriptNodePtr p) : + Encoding(p, "encoding", encoding), Core(p, "core", core), Session(p, "session", session), Timing(p, "timing", timing), @@ -22,6 +24,7 @@ OutputOptionsLoader::OutputOptionsLoader() : opts("CGI default output options") { opts + ("cgi.output.encoding", Options::value(&OutputOptions::encoding, "utf-8"), "Default out encoding") ("cgi.output.core", Options::value(&OutputOptions::core, true), "Core messages") ("cgi.output.session", Options::value(&OutputOptions::session, true), "Session values") ("cgi.output.timing", Options::value(&OutputOptions::timing, true), "Timing") diff --git a/project2/cgi/cgiOutputOptions.h b/project2/cgi/cgiOutputOptions.h index faace67..a975fa0 100644 --- a/project2/cgi/cgiOutputOptions.h +++ b/project2/cgi/cgiOutputOptions.h @@ -9,6 +9,7 @@ class OutputOptions : public IntrusivePtrBase { public: OutputOptions(ScriptNodePtr); + const Variable Encoding; const Variable Core; const Variable Session; const Variable Timing; @@ -16,9 +17,10 @@ class OutputOptions : public IntrusivePtrBase { const Variable URL; const Variable Parameters; - private: // defaults friend class OutputOptionsLoader; + static std::string encoding; + private: static bool core; static bool session; static bool timing; -- cgit v1.2.3