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, 7 insertions, 5 deletions
diff --git a/project2/cgi/cgiAppEngine.h b/project2/cgi/cgiAppEngine.h
index abd4b9e..532b74d 100644
--- a/project2/cgi/cgiAppEngine.h
+++ b/project2/cgi/cgiAppEngine.h
@@ -37,11 +37,13 @@ class CgiApplicationEngine : public ApplicationEngine {
mutable cgicc::HTTPContentHeader * header;
private:
mutable boost::shared_ptr<xmlpp::Document> doc;
- class Stage : public CommonObjects {
+ class Stage;
+ typedef boost::intrusive_ptr<Stage> StagePtr;
+ class Stage : public virtual CommonObjects {
public:
Stage(const CgiApplicationEngine *);
virtual ~Stage() = 0;
- virtual Stage * run() = 0;
+ virtual StagePtr run() = 0;
protected:
const CgiApplicationEngine * appEngine;
};
@@ -49,7 +51,7 @@ class CgiApplicationEngine : public ApplicationEngine {
public:
RequestStage(const CgiApplicationEngine *, const std::string & id);
virtual ~RequestStage();
- virtual Stage * run();
+ virtual StagePtr run();
std::string present;
protected:
OrderedParamCheckers parameterChecks;
@@ -60,9 +62,9 @@ class CgiApplicationEngine : public ApplicationEngine {
PresentStage(const CgiApplicationEngine *, const std::string & id);
PresentStage(const CgiApplicationEngine *, const std::string & group, const std::string & id);
virtual ~PresentStage();
- virtual Stage * run();
+ virtual StagePtr run();
};
- mutable Stage * currentStage;
+ mutable StagePtr currentStage;
mutable UUID sessionID;
};