summaryrefslogtreecommitdiff
path: root/project2/cgi/cgiAppEngine.h
diff options
context:
space:
mode:
Diffstat (limited to 'project2/cgi/cgiAppEngine.h')
-rw-r--r--project2/cgi/cgiAppEngine.h12
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;