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.h14
1 files changed, 11 insertions, 3 deletions
diff --git a/project2/cgi/cgiAppEngine.h b/project2/cgi/cgiAppEngine.h
index 6e202e4..88419fb 100644
--- a/project2/cgi/cgiAppEngine.h
+++ b/project2/cgi/cgiAppEngine.h
@@ -18,6 +18,7 @@ class CgiEnvironment;
class Session;
namespace cgicc {
class HTTPHeader;
+ class CgiEnvironment;
}
namespace xmlpp {
class Document;
@@ -35,8 +36,8 @@ class CgiApplicationEngine : public ApplicationEngine, public TransformChainLink
const Environment * env() const;
SessionPtr session() const;
virtual Glib::ustring resolveCurrentConfig() const;
- void addAppData(const Presenter * p) const;
- void addEnvData(const Presenter * p) const;
+ void addAppData(const MultiRowSetPresenter * p) const;
+ void addEnvData(const MultiRowSetPresenter * p) const;
const CgiEnvironment * _env;
private:
@@ -48,13 +49,20 @@ class CgiApplicationEngine : public ApplicationEngine, public TransformChainLink
bool checkDomain(const DomainPlatforms::value_type & i) const;
void loadEngineSection(const xmlpp::Element *) const;
SessionContainerPtr sessionsContainer;
+ // Helpers
+ void addVarToPresenter(const MultiRowSetPresenter * p, const Glib::ustring & name, const VariableType &) const;
+ typedef std::string (cgicc::CgiEnvironment::*StrEnvGetter)() const;
+ template <class X>
+ void addEnvToPresenter(const MultiRowSetPresenter * p, const char * name, X (cgicc::CgiEnvironment::*getter)() const) const {
+ addVarToPresenter(p, name, (_env->*getter)());
+ }
public:
class Stage;
class ResponseStage;
typedef boost::intrusive_ptr<Stage> StagePtr;
typedef boost::intrusive_ptr<ResponseStage> ResponseStagePtr;
- typedef boost::tuple<StagePtr, ResponseStagePtr, TransformSourcePtr, PresenterPtr> NextStage;
+ typedef boost::tuple<StagePtr, ResponseStagePtr, TransformSourcePtr, MultiRowSetPresenterPtr> NextStage;
/// Base class for a stage iteration that should eventually produce a response for the client
class Stage : public virtual IntrusivePtrBase {
public: