diff options
author | randomdan <randomdan@localhost> | 2011-11-25 18:59:27 +0000 |
---|---|---|
committer | randomdan <randomdan@localhost> | 2011-11-25 18:59:27 +0000 |
commit | 32ac0ea4cceda81de49cc9a8ec1b85546745e068 (patch) | |
tree | b4add212bcaed76600a562e5cda562718f3a2294 /project2/cgi | |
parent | Transactional caches (diff) | |
download | project2-32ac0ea4cceda81de49cc9a8ec1b85546745e068.tar.bz2 project2-32ac0ea4cceda81de49cc9a8ec1b85546745e068.tar.xz project2-32ac0ea4cceda81de49cc9a8ec1b85546745e068.zip |
Remove the need to implement loadComplete which is empty in most cases
Restructure presenters in layers based on features allowing for simpler cache implementations
Minor XSLT changes to support new layout from presentation which is more consistent
Diffstat (limited to 'project2/cgi')
-rw-r--r-- | project2/cgi/cgiAppEngine.cpp | 52 | ||||
-rw-r--r-- | project2/cgi/cgiStageDefaultError.cpp | 4 | ||||
-rw-r--r-- | project2/cgi/cgiStageDefaultNotFound.cpp | 2 | ||||
-rw-r--r-- | project2/cgi/cgiStageFail.cpp | 2 | ||||
-rw-r--r-- | project2/cgi/cgiStageRedirect.cpp | 2 |
5 files changed, 30 insertions, 32 deletions
diff --git a/project2/cgi/cgiAppEngine.cpp b/project2/cgi/cgiAppEngine.cpp index ceac940..37ae19c 100644 --- a/project2/cgi/cgiAppEngine.cpp +++ b/project2/cgi/cgiAppEngine.cpp @@ -117,35 +117,37 @@ void CgiApplicationEngine::addEnvData(const Presenter * p) const { // These were for debug... but why not pass them on? - p->addField("servername", env()->xmlPrefix, env()->getServerName()); - p->addField("scriptname", env()->xmlPrefix, env()->getScriptName()); + p->addNamedValue("servername", env()->xmlPrefix, env()->getServerName()); + p->addNamedValue("scriptname", env()->xmlPrefix, env()->getScriptName()); // URL elements - p->pushSub("uriElems", env()->xmlPrefix); + p->addNewRowSet("uriElems", env()->xmlPrefix); BOOST_FOREACH(std::string s, _env->elems) { - p->addField("uriElem", env()->xmlPrefix, s); + p->addNewRow("uriElem"); + p->addAttribute("text", s); + p->finishRow(); } - p->popSub(); + p->finishRow(); // Parameters - p->pushSub("params", env()->xmlPrefix); + p->addNewRowSet("params", env()->xmlPrefix); BOOST_FOREACH(cgicc::FormEntry fe, _env->cgi->getElements()) { - p->pushSub("param", env()->xmlPrefix); - p->addAttr("name", fe.getName()); - p->addAttr("value", fe.getValue()); - p->popSub(); + p->addNewRow("param"); + p->addAttribute("name", fe.getName()); + p->addAttribute("value", fe.getValue()); + p->finishRow(); } - p->popSub(); + p->finishRowSet(); } static void -addToPresenter(const Environment * env, const Presenter * p, const Glib::ustring & name, const VariableType & value) +addToPresenter(const Presenter * p, const Glib::ustring & name, const VariableType & value) { - p->pushSub("var", env->xmlPrefix); - p->addAttr("value", value); - p->addAttr("name", name); - p->popSub(); + p->addNewRow("var"); + p->addAttribute("value", value); + p->addAttribute("name", name); + p->finishRow(); } void @@ -153,19 +155,19 @@ CgiApplicationEngine::addAppData(const Presenter * p) const { addCoreAppData(p); // Sessions variables - p->pushSub("session", env()->xmlPrefix); - p->addAttr("id", cursession->ID.str()); - cursession->ForeachValue(boost::bind(addToPresenter, env(), p, _1, _2)); - p->popSub(); + p->addNewRowSet("session", env()->xmlPrefix); + p->addAttribute("id", cursession->ID.str()); + cursession->ForeachValue(boost::bind(addToPresenter, p, _1, _2)); + p->finishRowSet(); // Timing info - p->pushSub("timing", env()->xmlPrefix); - p->addAttr("start", startTime); + p->addNewRowSet("timing", env()->xmlPrefix); + p->addAttribute("start", startTime); if (!endTime.is_not_a_date_time()) { - p->addAttr("end", endTime); - p->addAttr("duration", (endTime - startTime).total_milliseconds()); + p->addAttribute("end", endTime); + p->addAttribute("duration", (endTime - startTime).total_milliseconds()); } - p->popSub(); + p->finishRowSet(); } SessionPtr diff --git a/project2/cgi/cgiStageDefaultError.cpp b/project2/cgi/cgiStageDefaultError.cpp index 5ba371f..82d7b2e 100644 --- a/project2/cgi/cgiStageDefaultError.cpp +++ b/project2/cgi/cgiStageDefaultError.cpp @@ -29,8 +29,8 @@ CgiApplicationEngine::DefaultErrorStage::getHeader() const CgiApplicationEngine::NextStage CgiApplicationEngine::DefaultErrorStage::run() { - pres->addField("error-type", e->xmlPrefix, buf); - pres->addField("error-what", e->xmlPrefix, what.c_str()); + pres->addNamedValue("error-type", e->xmlPrefix, buf); + pres->addNamedValue("error-what", e->xmlPrefix, what.c_str()); return NextStage(NULL, this, pres.get(), pres.get()); } diff --git a/project2/cgi/cgiStageDefaultNotFound.cpp b/project2/cgi/cgiStageDefaultNotFound.cpp index d67d892..38cc395 100644 --- a/project2/cgi/cgiStageDefaultNotFound.cpp +++ b/project2/cgi/cgiStageDefaultNotFound.cpp @@ -23,7 +23,7 @@ CgiApplicationEngine::DefaultNotFoundStage::getHeader() const CgiApplicationEngine::NextStage CgiApplicationEngine::DefaultNotFoundStage::run() { - pres->addField("missing-resource", e->xmlPrefix, nf.what()); + pres->addNamedValue("missing-resource", e->xmlPrefix, nf.what()); return NextStage(NULL, this, pres.get(), pres.get()); } diff --git a/project2/cgi/cgiStageFail.cpp b/project2/cgi/cgiStageFail.cpp index 04e131b..6a60700 100644 --- a/project2/cgi/cgiStageFail.cpp +++ b/project2/cgi/cgiStageFail.cpp @@ -35,8 +35,6 @@ namespace CgiApplicationExtras { View(e), code(e, "code", false, 500), message(e, "message", false, "Application error") { - } - void loadComplete(const CommonObjects *) { } void execute(const Presenter *) const { throw CgiApplicationEngine::ResponseStagePtr( diff --git a/project2/cgi/cgiStageRedirect.cpp b/project2/cgi/cgiStageRedirect.cpp index af938c0..c2e498f 100644 --- a/project2/cgi/cgiStageRedirect.cpp +++ b/project2/cgi/cgiStageRedirect.cpp @@ -33,8 +33,6 @@ namespace CgiApplicationExtras { SourceObject(e), View(e), url(e, "url", true) { - } - void loadComplete(const CommonObjects *) { } void execute(const Presenter *) const { throw CgiApplicationEngine::ResponseStagePtr( |