diff options
Diffstat (limited to 'project2/cgi/cgiAppEngine.h')
-rw-r--r-- | project2/cgi/cgiAppEngine.h | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/project2/cgi/cgiAppEngine.h b/project2/cgi/cgiAppEngine.h index 5a21e98..25c6537 100644 --- a/project2/cgi/cgiAppEngine.h +++ b/project2/cgi/cgiAppEngine.h @@ -8,6 +8,7 @@ #include "../commonObjects.h" #include "../uuid.h" #include <boost/intrusive_ptr.hpp> +#include <boost/function.hpp> #include <libxml++/document.h> #include <libxml++/parsers/domparser.h> @@ -19,16 +20,15 @@ namespace cgicc { class CgiApplicationEngine : public ApplicationEngine { public: + typedef boost::shared_ptr<xmlpp::Document> XmlDocPtr; + typedef boost::function1<void, xmlDocPtr> XmlWriter; + CgiApplicationEngine(const CgiEnvironment *); virtual ~CgiApplicationEngine(); void process() const; const cgicc::HTTPContentHeader * getHeader() const { return header; } - template <class Writer> - void write(const Writer & w) const - { - w(doc->cobj()); - } + void write(const XmlWriter & w) const; const Environment * env() const; SessionPtr session() const; virtual Glib::ustring resolveCurrentConfig() const; @@ -45,7 +45,7 @@ class CgiApplicationEngine : public ApplicationEngine { bool checkDomain(const DomainPlatforms::value_type & i) const; void loadEngineSection(const xmlpp::Element *) const; - mutable boost::shared_ptr<xmlpp::Document> doc; + mutable XmlDocPtr doc; class Stage; typedef boost::intrusive_ptr<Stage> StagePtr; |