summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Goodliffe <dan@randomdan.homeip.net>2017-03-16 09:08:19 +0000
committerDan Goodliffe <dan@randomdan.homeip.net>2017-03-16 09:08:19 +0000
commita338d3c93426108a75a1e4277bf04d42dfeea5e8 (patch)
tree0ea4a8b15afb2da16bc8a2a83700cb5fdaa3ed95
parentAdd use group pages and update links on package page (diff)
downloadgentoobrowse-a338d3c93426108a75a1e4277bf04d42dfeea5e8.tar.bz2
gentoobrowse-a338d3c93426108a75a1e4277bf04d42dfeea5e8.tar.xz
gentoobrowse-a338d3c93426108a75a1e4277bf04d42dfeea5e8.zip
Serializers should be members to avoid memory leakgentoobrowse-2.0.0_beta7
-rw-r--r--gentoobrowse/src/packages.cpp28
-rw-r--r--gentoobrowse/src/search.cpp6
-rw-r--r--gentoobrowse/src/user.cpp28
3 files changed, 43 insertions, 19 deletions
diff --git a/gentoobrowse/src/packages.cpp b/gentoobrowse/src/packages.cpp
index c3e6d6c..ce07a11 100644
--- a/gentoobrowse/src/packages.cpp
+++ b/gentoobrowse/src/packages.cpp
@@ -35,10 +35,12 @@ namespace GentooBrowse {
common(core),
prx0(core->getProxy<Gentoo::Portage>()),
prx1(core->getProxy<Gentoo::Users>()),
- _pd_syncs(3)
+ _pd_syncs(3),
+ _serializer_text_html("xslt/home.xslt"),
+ _serializer_application_atom_xml("xslt/home-atom.xslt")
{
- addRouteSerializer({ "application", "atom+xml" }, new IceSpider::XsltStreamSerializer::IceSpiderFactory("xslt/home-atom.xslt"));
- addRouteSerializer({ "text", "html" }, new IceSpider::XsltStreamSerializer::IceSpiderFactory("xslt/home.xslt"));
+ addRouteSerializer({ "application", "atom+xml" }, &_serializer_application_atom_xml);
+ addRouteSerializer({ "text", "html" }, &_serializer_text_html );
}
~index()
@@ -81,6 +83,8 @@ namespace GentooBrowse {
const Gentoo::PortagePrx prx0;
const Gentoo::UsersPrx prx1;
const ::Ice::Int _pd_syncs;
+ IceSpider::XsltStreamSerializer::IceSpiderFactory _serializer_text_html;
+ IceSpider::XsltStreamSerializer::IceSpiderFactory _serializer_application_atom_xml;
};
// Route name: category
@@ -92,9 +96,10 @@ namespace GentooBrowse {
IceSpider::IRouteHandler(IceSpider::HttpMethod::GET, "/packages/{category}"),
common(core),
prx0(core->getProxy<Gentoo::Portage>()),
- _pi_category(1)
+ _pi_category(1),
+ _serializer_text_html("xslt/category.xslt")
{
- addRouteSerializer({ "text", "html" }, new IceSpider::XsltStreamSerializer::IceSpiderFactory("xslt/category.xslt"));
+ addRouteSerializer({ "text", "html" }, &_serializer_text_html);
}
~category()
@@ -117,6 +122,7 @@ namespace GentooBrowse {
private:
const Gentoo::PortagePrx prx0;
const ::Ice::Int _pi_category;
+ IceSpider::XsltStreamSerializer::IceSpiderFactory _serializer_text_html;
};
// Route name: package
@@ -130,9 +136,10 @@ namespace GentooBrowse {
prx0(core->getProxy<Gentoo::Portage>()),
prx1(core->getProxy<Gentoo::Users>()),
_pi_category(1),
- _pi_package(2)
+ _pi_package(2),
+ _serializer_text_html("xslt/package.xslt")
{
- addRouteSerializer({ "text", "html" }, new IceSpider::XsltStreamSerializer::IceSpiderFactory("xslt/package.xslt"));
+ addRouteSerializer({ "text", "html" }, &_serializer_text_html);
}
~package()
@@ -199,6 +206,7 @@ namespace GentooBrowse {
const Gentoo::UsersPrx prx1;
const ::Ice::Int _pi_category;
const ::Ice::Int _pi_package;
+ IceSpider::XsltStreamSerializer::IceSpiderFactory _serializer_text_html;
};
@@ -278,9 +286,10 @@ namespace GentooBrowse {
common(core),
prx0(core->getProxy<Gentoo::Portage>()),
prx1(core->getProxy<Gentoo::Users>()),
- _pi_username(1)
+ _pi_username(1),
+ _serializer_application_atom_xml("xslt/user-atom.xslt")
{
- addRouteSerializer({ "application", "atom+xml" }, new IceSpider::XsltStreamSerializer::IceSpiderFactory("xslt/user-atom.xslt"));
+ addRouteSerializer({ "application", "atom+xml" }, &_serializer_application_atom_xml);
removeRouteSerializer({ "application", "xml" });
removeRouteSerializer({ "application", "json" });
}
@@ -310,6 +319,7 @@ namespace GentooBrowse {
const Gentoo::PortagePrx prx0;
const Gentoo::UsersPrx prx1;
const ::Ice::Int _pi_username;
+ IceSpider::XsltStreamSerializer::IceSpiderFactory _serializer_application_atom_xml;
};
diff --git a/gentoobrowse/src/search.cpp b/gentoobrowse/src/search.cpp
index c435df1..64234ca 100644
--- a/gentoobrowse/src/search.cpp
+++ b/gentoobrowse/src/search.cpp
@@ -26,9 +26,10 @@ namespace GentooBrowse {
public:
sitemap(const IceSpider::Core * core) :
IceSpider::IRouteHandler(IceSpider::HttpMethod::GET, "/sitemap.xml"),
- prx0(core->getProxy<Gentoo::Portage>())
+ prx0(core->getProxy<Gentoo::Portage>()),
+ _serializer_text_html("xslt/sitemap.xslt")
{
- addRouteSerializer({ "application", "xml" }, new IceSpider::XsltStreamSerializer::IceSpiderFactory("xslt/sitemap.xslt"));
+ addRouteSerializer({ "application", "xml" }, &_serializer_text_html);
}
~sitemap()
@@ -58,6 +59,7 @@ namespace GentooBrowse {
private:
const Gentoo::PortagePrx prx0;
+ IceSpider::XsltStreamSerializer::IceSpiderFactory _serializer_text_html;
};
} // namespace GentooBrowse
diff --git a/gentoobrowse/src/user.cpp b/gentoobrowse/src/user.cpp
index 1bd5b88..27d49d4 100644
--- a/gentoobrowse/src/user.cpp
+++ b/gentoobrowse/src/user.cpp
@@ -47,9 +47,10 @@ namespace GentooBrowse {
class signup : public IceSpider::IRouteHandler {
public:
signup(const IceSpider::Core *) :
- IceSpider::IRouteHandler(IceSpider::HttpMethod::GET, "/user/signup")
+ IceSpider::IRouteHandler(IceSpider::HttpMethod::GET, "/user/signup"),
+ _serializer_text_html("xslt/user-signup.xslt")
{
- addRouteSerializer({ "text", "html" }, new IceSpider::XsltStreamSerializer::IceSpiderFactory("xslt/user-signup.xslt"));
+ addRouteSerializer({ "text", "html" }, &_serializer_text_html);
}
void execute(IceSpider::IHttpRequest * request) const
@@ -57,6 +58,9 @@ namespace GentooBrowse {
PageBasePtr p = new PageBase();
request->response(this, p);
}
+
+ private:
+ IceSpider::XsltStreamSerializer::IceSpiderFactory _serializer_text_html;
};
// Route name: signup post
@@ -85,9 +89,10 @@ namespace GentooBrowse {
class verification : public IceSpider::IRouteHandler {
public:
verification(const IceSpider::Core *) :
- IceSpider::IRouteHandler(IceSpider::HttpMethod::GET, "/user/verification")
+ IceSpider::IRouteHandler(IceSpider::HttpMethod::GET, "/user/verification"),
+ _serializer_text_html("xslt/user-verification.xslt")
{
- addRouteSerializer({ "text", "html" }, new IceSpider::XsltStreamSerializer::IceSpiderFactory("xslt/user-verification.xslt"));
+ addRouteSerializer({ "text", "html" }, &_serializer_text_html);
}
void execute(IceSpider::IHttpRequest * request) const
@@ -95,6 +100,9 @@ namespace GentooBrowse {
PageBasePtr p = new PageBase();
request->response(this, p);
}
+
+ private:
+ IceSpider::XsltStreamSerializer::IceSpiderFactory _serializer_text_html;
};
// Route name: verification post
@@ -141,9 +149,10 @@ namespace GentooBrowse {
IceSpider::IRouteHandler(IceSpider::HttpMethod::GET, "/user/home"),
common(core),
prx0(core->getProxy<IceSpider::SessionManager>()),
- prx1(core->getProxy<Gentoo::Users>())
+ prx1(core->getProxy<Gentoo::Users>()),
+ _serializer_text_html("xslt/user-home.xslt")
{
- addRouteSerializer({ "text", "html" }, new IceSpider::XsltStreamSerializer::IceSpiderFactory("xslt/user-home.xslt"));
+ addRouteSerializer({ "text", "html" }, &_serializer_text_html );
}
~home()
@@ -161,6 +170,7 @@ namespace GentooBrowse {
private:
const IceSpider::SessionManagerPrx prx0;
const Gentoo::UsersPrx prx1;
+ IceSpider::XsltStreamSerializer::IceSpiderFactory _serializer_text_html;
};
// Route name: tracked
@@ -173,9 +183,10 @@ namespace GentooBrowse {
common(core),
prx0(core->getProxy<IceSpider::SessionManager>()),
prx1(core->getProxy<Gentoo::Users>()),
- prx2(core->getProxy<Gentoo::Portage>())
+ prx2(core->getProxy<Gentoo::Portage>()),
+ _serializer_text_html("xslt/user-tracked.xslt")
{
- addRouteSerializer({ "text", "html" }, new IceSpider::XsltStreamSerializer::IceSpiderFactory("xslt/user-tracked.xslt"));
+ addRouteSerializer({ "text", "html" }, &_serializer_text_html);
}
~tracked()
@@ -198,6 +209,7 @@ namespace GentooBrowse {
const IceSpider::SessionManagerPrx prx0;
const Gentoo::UsersPrx prx1;
const Gentoo::PortagePrx prx2;
+ IceSpider::XsltStreamSerializer::IceSpiderFactory _serializer_text_html;
};
// Route name: logout