summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Goodliffe <dan@randomdan.homeip.net>2018-04-12 20:20:14 +0100
committerDan Goodliffe <dan@randomdan.homeip.net>2018-04-12 20:20:14 +0100
commit9c7362153945275bb8f592e59319fcde7dbcb703 (patch)
tree1d2d8f5b05c789b584c557a18cb1038bb273837d
parentWhitespace only lines between package masks (diff)
downloadgentoobrowse-api-9c7362153945275bb8f592e59319fcde7dbcb703.tar.bz2
gentoobrowse-api-9c7362153945275bb8f592e59319fcde7dbcb703.tar.xz
gentoobrowse-api-9c7362153945275bb8f592e59319fcde7dbcb703.zip
C++17 and Ice 3.7
Updates all code to work with C++17 and Ice 3.7 and related updates in used libraries.
-rw-r--r--Jamroot.jam14
-rw-r--r--gentoobrowse-api/Jamfile.jam5
-rw-r--r--gentoobrowse-api/client/helpers.h13
-rw-r--r--gentoobrowse-api/client/main.cpp2
-rw-r--r--gentoobrowse-api/client/main.h2
-rw-r--r--gentoobrowse-api/client/search.cpp5
-rw-r--r--gentoobrowse-api/domain/Jamfile.jam2
-rw-r--r--gentoobrowse-api/service/depend.cpp16
-rw-r--r--gentoobrowse-api/service/mailserverimpl.cpp2
-rw-r--r--gentoobrowse-api/service/mailserverimpl.h2
-rw-r--r--gentoobrowse-api/service/main.cpp12
-rw-r--r--gentoobrowse-api/service/maintenance/abstractFileProcessor.h2
-rw-r--r--gentoobrowse-api/service/maintenanceBugs.cpp2
-rw-r--r--gentoobrowse-api/service/maintenanceCommon.cpp31
-rw-r--r--gentoobrowse-api/service/maintenanceGitOperations.cpp2
-rw-r--r--gentoobrowse-api/service/maintenanceimpl.h4
-rw-r--r--gentoobrowse-api/service/mask.h4
-rw-r--r--gentoobrowse-api/service/news.cpp16
-rw-r--r--gentoobrowse-api/service/notificationsimpl.cpp6
-rw-r--r--gentoobrowse-api/service/notificationsimpl.h4
-rw-r--r--gentoobrowse-api/service/portageimpl.cpp30
-rw-r--r--gentoobrowse-api/service/portageimpl.h30
-rw-r--r--gentoobrowse-api/service/usersimpl.cpp20
-rw-r--r--gentoobrowse-api/service/usersimpl.h14
-rw-r--r--gentoobrowse-api/service/xsltStreamSerializer.cpp4
-rw-r--r--gentoobrowse-api/unittests/Jamfile.jam2
-rw-r--r--gentoobrowse-api/unittests/mockDefs.cpp10
-rw-r--r--gentoobrowse-api/unittests/mockDefs.h16
-rw-r--r--gentoobrowse-api/unittests/testDepend.cpp8
-rw-r--r--gentoobrowse-api/unittests/testMaintenance.cpp18
-rw-r--r--gentoobrowse-api/unittests/testMasks.cpp4
-rw-r--r--gentoobrowse-api/unittests/testNotifications.cpp36
-rw-r--r--gentoobrowse-api/unittests/testPortage.cpp25
-rw-r--r--gentoobrowse-api/util/update.cpp15
34 files changed, 188 insertions, 190 deletions
diff --git a/Jamroot.jam b/Jamroot.jam
index 23e2bf7..d3bb409 100644
--- a/Jamroot.jam
+++ b/Jamroot.jam
@@ -7,12 +7,14 @@ variant coverage : debug ;
project
: requirements
- <variant>release:<cxxflags>"-std=c++1y -fvisibility=hidden -fvisibility-inlines-hidden -flto=2"
- <variant>release:<linkflags>"-Wl,-z,defs,--warn-once,--gc-sections -flto=2"
- <variant>debug:<cxxflags>"-W -Wall -Wextra -Werror -Wwrite-strings -std=c++1y -fvisibility=hidden"
- <variant>debug:<linkflags>"-Wl,-z,defs,--warn-once"
- <variant>coverage:<cxxflags>"-W -Wall -Werror -Wwrite-strings -std=c++1y --coverage -fvisibility=hidden"
- <variant>coverage:<linkflags>"-Wl,-z,defs,--warn-once --coverage"
+ <define>ICE_CPP11_MAPPING
+ <cxxflags>"-std=c++17 -fvisibility=hidden -fvisibility-inlines-hidden"
+ <linkflags>"-Wl,-z,defs,--warn-once,--gc-sections"
+ <variant>release:<cxxflags>"-flto=2"
+ <variant>release:<linkflags>"-flto=2"
+ <variant>debug:<cxxflags>"-W -Wall -Wextra -Werror -Wwrite-strings"
+ <variant>coverage:<cxxflags>"--coverage"
+ <variant>coverage:<linkflags>"--coverage"
;
build-project gentoobrowse-api ;
diff --git a/gentoobrowse-api/Jamfile.jam b/gentoobrowse-api/Jamfile.jam
index 5c407b2..2a35394 100644
--- a/gentoobrowse-api/Jamfile.jam
+++ b/gentoobrowse-api/Jamfile.jam
@@ -4,10 +4,9 @@ import package ;
lib adhocutil : : : : <include>/usr/include/adhocutil ;
lib slicer : : : : <include>/usr/include/slicer ;
lib slicer-db : : : : <include>/usr/include/slicer ;
-lib Ice ;
-lib IceUtil ;
+lib Ice : : <name>Ice++11 ;
lib pthread ;
-lib IceBox ;
+lib IceBox : : <name>IceBox++11 ;
lib boost_filesystem ;
lib boost_system ;
lib boost_thread ;
diff --git a/gentoobrowse-api/client/helpers.h b/gentoobrowse-api/client/helpers.h
index 859be3f..76f8148 100644
--- a/gentoobrowse-api/client/helpers.h
+++ b/gentoobrowse-api/client/helpers.h
@@ -7,21 +7,20 @@
template<typename Key, typename Target, typename Collection, typename Proxy>
std::map<Key, Target>
-asyncMapRelated(const Collection & collection, Proxy p,
+asyncMapRelated(const Collection & collection, const Proxy & p,
Key Collection::value_type::element_type::* member,
- Ice::AsyncResultPtr (Proxy::element_type::*b)(Key),
- Target (Proxy::element_type::*e)(const Ice::AsyncResultPtr &))
+ std::future<Target> (Proxy::element_type::*b)(Key, const ::Ice::Context &))
{
std::map<Key, Target> rtn;
- std::map<Key, Ice::AsyncResultPtr> jobs;
+ std::map<Key, std::future<Target>> jobs;
for (const auto & item : collection) {
Key v = item.get()->*member;
if (jobs.find(v) == jobs.end()) {
- jobs.insert({ v, (p.get()->*b)(v) });
+ jobs.insert({ v, (p.get()->*b)(v, Ice::noExplicitContext) });
}
}
- for (const auto & j : jobs) {
- rtn.insert({ j.first, (p.get()->*e)(j.second) });
+ for (auto & j : jobs) {
+ rtn.insert({ j.first, j.second.get() });
}
return rtn;
}
diff --git a/gentoobrowse-api/client/main.cpp b/gentoobrowse-api/client/main.cpp
index d2f70bb..d542188 100644
--- a/gentoobrowse-api/client/main.cpp
+++ b/gentoobrowse-api/client/main.cpp
@@ -33,7 +33,7 @@ main(int c, char ** v)
}
auto ic = Ice::initialize(c, v);
- auto p = Gentoo::PortagePrx::checkedCast(ic->stringToProxy("portage:" + endpoint));
+ auto p = Ice::checkedCast<Gentoo::PortagePrx>(ic->stringToProxy("portage:" + endpoint));
p->ice_ping();
AdHoc::PluginManager::getDefault()->get<Module>(module)->implementation()->run(p, args);
diff --git a/gentoobrowse-api/client/main.h b/gentoobrowse-api/client/main.h
index 9c7c9f7..1f88081 100644
--- a/gentoobrowse-api/client/main.h
+++ b/gentoobrowse-api/client/main.h
@@ -8,7 +8,7 @@
class Module : public AdHoc::AbstractPluginImplementation {
public:
- virtual void run(Gentoo::PortagePrx, const std::vector<std::string> &) const = 0;
+ virtual void run(const Gentoo::PortagePrxPtr &, const std::vector<std::string> &) const = 0;
};
#endif
diff --git a/gentoobrowse-api/client/search.cpp b/gentoobrowse-api/client/search.cpp
index 29d16e2..448643b 100644
--- a/gentoobrowse-api/client/search.cpp
+++ b/gentoobrowse-api/client/search.cpp
@@ -6,12 +6,11 @@
class search : public Module {
public:
- void run(Gentoo::PortagePrx p, const std::vector<std::string> & a) const override
+ void run(const Gentoo::PortagePrxPtr & p, const std::vector<std::string> & a) const override
{
auto pkgs = p->getPackagesSearch(boost::algorithm::join(a, " "));
auto cats = asyncMapRelated(pkgs, p, &Gentoo::Package::categoryid,
- &IceProxy::Gentoo::Portage::begin_getCategory,
- &IceProxy::Gentoo::Portage::end_getCategory);
+ (std::future<Gentoo::CategoryPtr> (Gentoo::PortagePrx::*)(Ice::Int, const ::Ice::Context &))&Gentoo::PortagePrx::getCategoryAsync);
fprintbf(stdout, "Found %d packages:\n", pkgs.size());
for (const auto & pkg : pkgs) {
fprintbf(stdout, "%s / %s\n\t%s\n", cats[pkg->categoryid]->name, pkg->name, pkg->description);
diff --git a/gentoobrowse-api/domain/Jamfile.jam b/gentoobrowse-api/domain/Jamfile.jam
index 3fc393b..92718b9 100644
--- a/gentoobrowse-api/domain/Jamfile.jam
+++ b/gentoobrowse-api/domain/Jamfile.jam
@@ -5,7 +5,6 @@ lib gentoobrowse-domain :
:
<slicer>yes
<library>..//Ice
- <library>..//IceUtil
<library>..//pthread
<library>..//slicer
<library>..//adhocutil
@@ -13,7 +12,6 @@ lib gentoobrowse-domain :
<include>.
: :
<library>..//Ice
- <library>..//IceUtil
<library>..//pthread
<library>..//slicer
<library>..//adhocutil
diff --git a/gentoobrowse-api/service/depend.cpp b/gentoobrowse-api/service/depend.cpp
index 86f9646..11244d9 100644
--- a/gentoobrowse-api/service/depend.cpp
+++ b/gentoobrowse-api/service/depend.cpp
@@ -20,15 +20,15 @@ const std::string InOr("InOr");
namespace Portage {
namespace Utils {
- template<typename T, typename Y> IceUtil::Optional<T> iuo(const boost::optional<Y> & x)
+ template<typename T, typename Y> Ice::optional<T> iuo(const std::optional<Y> & x)
{
if (x) {
- return *x;
+ return Ice::optional<T>(*x);
}
- return IceUtil::Optional<T>();
+ return Ice::optional<T>();
}
- template<typename T, typename Y> std::vector<T> split(const boost::optional<Y> & x)
+ template<typename T, typename Y> std::vector<T> split(const std::optional<Y> & x)
{
std::vector<T> rtn;
if (x) {
@@ -51,20 +51,20 @@ namespace Portage {
when.pop_back();
} },
// || (
- { { InitialState, InWhen, InOr }, Or_Begin, [this](auto es) {
+ { { InitialState, InWhen, InOr }, Or_Begin, [](auto es) {
es->pushState(InOr);
} },
// (
- { { InitialState, InWhen, InOr }, Or_Group, [this](auto es) {
+ { { InitialState, InWhen, InOr }, Or_Group, [](auto es) {
es->pushState(InOr);
} },
// )
- { { InOr }, Or_End, [this](auto es) {
+ { { InOr }, Or_End, [](auto es) {
es->popState();
} },
// [op]some-cat/package[-version][:slot][uses]
{ { InitialState, InWhen, InOr }, AtomSpec, [this](auto es) {
- ds.push_back(new Gentoo::Dependency(
+ ds.push_back(std::make_shared<Gentoo::Dependency>(
when,
iuo<std::string>(es->pattern()->match(1)), // op
*es->pattern()->match(2), // category
diff --git a/gentoobrowse-api/service/mailserverimpl.cpp b/gentoobrowse-api/service/mailserverimpl.cpp
index ccc7180..8965c47 100644
--- a/gentoobrowse-api/service/mailserverimpl.cpp
+++ b/gentoobrowse-api/service/mailserverimpl.cpp
@@ -9,7 +9,7 @@ namespace Gentoo {
typedef std::pair<Parts::iterator, Parts::const_iterator> PartsProgress;
void
- MailServer::sendEmail(const Gentoo::EmailPtr & msg, const Ice::Current & c)
+ MailServer::sendEmail(Gentoo::EmailPtr msg, const Ice::Current & c)
{
auto props = c.adapter->getCommunicator()->getProperties();
smtp_session_t session = smtp_create_session();
diff --git a/gentoobrowse-api/service/mailserverimpl.h b/gentoobrowse-api/service/mailserverimpl.h
index 23b17c2..d44d601 100644
--- a/gentoobrowse-api/service/mailserverimpl.h
+++ b/gentoobrowse-api/service/mailserverimpl.h
@@ -8,7 +8,7 @@ namespace Gentoo {
namespace Service {
class DLL_PUBLIC MailServer : public Gentoo::MailServer {
public:
- void sendEmail(const Gentoo::EmailPtr & msg, const Ice::Current &) override;
+ void sendEmail(Gentoo::EmailPtr msg, const Ice::Current &) override;
private:
static const char * writeBody(void ** buf, int * len, void * arg);
diff --git a/gentoobrowse-api/service/main.cpp b/gentoobrowse-api/service/main.cpp
index 3221e4c..e14c2a0 100644
--- a/gentoobrowse-api/service/main.cpp
+++ b/gentoobrowse-api/service/main.cpp
@@ -1,4 +1,4 @@
-#include <Ice/Communicator.h>
+#include <Ice/Initialize.h>
#include <Ice/ObjectAdapter.h>
#include <icetrayService.h>
#include "portageimpl.h"
@@ -32,11 +32,11 @@ class Api : public IceTray::Service {
void addObjects(const std::string &, const Ice::CommunicatorPtr & ic, const Ice::StringSeq &, const Ice::ObjectAdapterPtr & adp) override
{
auto db = getConnectionPool(ic, "postgresql", "GentooBrowseAPI");
- adp->add(new Portage(db), ic->stringToIdentity("portage"));
- adp->add(new Maintenance(db, ic, ic->getProperties()), ic->stringToIdentity("maintenance"));
- adp->add(new Users(db), ic->stringToIdentity("users"));
- adp->add(new Notifications(), ic->stringToIdentity("notifications"));
- adp->add(new MailServer(), ic->stringToIdentity("mailserver"));
+ adp->add(std::make_shared<Portage>(db), Ice::stringToIdentity("portage"));
+ adp->add(std::make_shared<Maintenance>(db, ic, ic->getProperties()), Ice::stringToIdentity("maintenance"));
+ adp->add(std::make_shared<Users>(db), Ice::stringToIdentity("users"));
+ adp->add(std::make_shared<Notifications>(), Ice::stringToIdentity("notifications"));
+ adp->add(std::make_shared<MailServer>(), Ice::stringToIdentity("mailserver"));
}
};
diff --git a/gentoobrowse-api/service/maintenance/abstractFileProcessor.h b/gentoobrowse-api/service/maintenance/abstractFileProcessor.h
index 4b9db3b..91e66ce 100644
--- a/gentoobrowse-api/service/maintenance/abstractFileProcessor.h
+++ b/gentoobrowse-api/service/maintenance/abstractFileProcessor.h
@@ -28,7 +28,7 @@ namespace Gentoo {
virtual void modified(DB::Connection * dbc, int64_t repoid, const Gentoo::StringList & fn, const boost::filesystem::path & path) = 0;
virtual void deleted(DB::Connection * dbc, int64_t repoid, const Gentoo::StringList & fn) = 0;
};
- typedef boost::shared_ptr<AbstractFileProcessor> FileProcessorPtr;
+ typedef std::shared_ptr<AbstractFileProcessor> FileProcessorPtr;
typedef AdHoc::Factory<AbstractFileProcessor> FileProcessorFactory;
}
}
diff --git a/gentoobrowse-api/service/maintenanceBugs.cpp b/gentoobrowse-api/service/maintenanceBugs.cpp
index 28c2f20..0b8e51a 100644
--- a/gentoobrowse-api/service/maintenanceBugs.cpp
+++ b/gentoobrowse-api/service/maintenanceBugs.cpp
@@ -79,7 +79,7 @@ namespace Gentoo {
UpdatingBugs::write(std::cerr, root);
auto dbc = db->get();
- DB::TransactionScope tx(dbc.get());
+ DB::TransactionScope tx(*dbc.get());
DB::TablePatch tp;
tp.pk = { "bugId" };
tp.cols = { "bugId", "severity", "status", "summary" };
diff --git a/gentoobrowse-api/service/maintenanceCommon.cpp b/gentoobrowse-api/service/maintenanceCommon.cpp
index ab8317f..3fa81a1 100644
--- a/gentoobrowse-api/service/maintenanceCommon.cpp
+++ b/gentoobrowse-api/service/maintenanceCommon.cpp
@@ -17,8 +17,9 @@ namespace Gentoo {
protected:
template<typename Proxy>
- Proxy getProxy(const std::string & n) const {
- auto p = Proxy::checkedCast(ic->stringToProxy(n));
+ auto
+ getProxy(const std::string & n) const {
+ auto p = Ice::checkedCast<Proxy>(ic->stringToProxy(n));
p->ice_ping();
return p;
}
@@ -33,11 +34,11 @@ namespace Gentoo {
void runTimerTask() override {
auto m = getProxy<MaintenancePrx>("maintenance");
- auto rb = m->begin_refreshBugs();
+ auto rb = m->refreshBugsAsync();
m->updateRepositories();
m->refreshPackageTree();
m->sendNotifications();
- m->end_refreshBugs(rb);
+ rb.get();
}
};
@@ -51,14 +52,14 @@ namespace Gentoo {
}
};
- Maintenance::Maintenance(IceTray::DatabasePoolPtr d, Ice::CommunicatorPtr ic, Ice::PropertiesPtr p) :
+ Maintenance::Maintenance(const DB::ConnectionPoolPtr & d, const Ice::CommunicatorPtr & ic, const Ice::PropertiesPtr & p) :
Maintenance::Maintenance(d)
{
addTask<AutoUpdatePackages>(ic, p, "SyncTime");
addTask<UserMaintenance>(ic, p, "UserMaintenanceTime");
}
- Maintenance::Maintenance(IceTray::DatabasePoolPtr d) :
+ Maintenance::Maintenance(const DB::ConnectionPoolPtr & d) :
IceTray::AbstractDatabaseClient(d)
{
}
@@ -78,7 +79,7 @@ namespace Gentoo {
if (!taskRunner) {
taskRunner = new IceUtil::Timer();
}
- taskRunner->scheduleRepeated(new Task(ic), IceUtil::Time::seconds(sync));
+ taskRunner->scheduleRepeated(std::make_shared<Task>(ic), IceUtil::Time::seconds(sync));
}
}
@@ -91,7 +92,7 @@ namespace Gentoo {
Gentoo::UserNews
Maintenance::getUserNews(const Ice::Current & current)
{
- auto portage = PortagePrx::checkedCast(current.adapter->getCommunicator()->stringToProxy("portage"));
+ auto portage = Ice::checkedCast<PortagePrx>(current.adapter->getCommunicator()->stringToProxy("portage"));
portage->ice_ping();
auto categories = portage->getAllCategories();
@@ -103,10 +104,10 @@ namespace Gentoo {
return AdHoc::containerContains(t.categoryids, c->categoryid);
});
for (auto pid : t.packageids) {
- auto par = portage->begin_getPackage(pid);
- auto vsar = portage->begin_getPackageVersions(pid);
- nc.packages.push_back(portage->end_getPackage(par));
- auto vs = portage->end_getPackageVersions(vsar);
+ auto par = portage->getPackageAsync(pid);
+ auto vsar = portage->getPackageVersionsAsync(pid);
+ nc.packages.push_back(par.get());
+ auto vs = vsar.get();
std::copy_if(vs.begin(), vs.end(), std::back_inserter(nc.ebuilds), [&t](const Gentoo::EbuildPtr & v) {
return AdHoc::containerContains(t.ebuildids, v->ebuildid);
});
@@ -119,11 +120,11 @@ namespace Gentoo {
void
Maintenance::sendNotifications(const Ice::Current & current)
{
- auto notifications = NotificationsPrx::checkedCast(current.adapter->getCommunicator()->stringToProxy("notifications"));
+ auto notifications = Ice::checkedCast<NotificationsPrx>(current.adapter->getCommunicator()->stringToProxy("notifications"));
notifications->ice_ping();
- auto mailServer = MailServerPrx::checkedCast(current.adapter->getCommunicator()->stringToProxy("mailserver"));
+ auto mailServer = Ice::checkedCast<MailServerPrx>(current.adapter->getCommunicator()->stringToProxy("mailserver"));
mailServer->ice_ping();
- auto users = UsersPrx::checkedCast(current.adapter->getCommunicator()->stringToProxy("users"));
+ auto users = Ice::checkedCast<UsersPrx>(current.adapter->getCommunicator()->stringToProxy("users"));
users->ice_ping();
for (const auto & trigger : getUserNews(current)) {
diff --git a/gentoobrowse-api/service/maintenanceGitOperations.cpp b/gentoobrowse-api/service/maintenanceGitOperations.cpp
index fd2df39..c68abd1 100644
--- a/gentoobrowse-api/service/maintenanceGitOperations.cpp
+++ b/gentoobrowse-api/service/maintenanceGitOperations.cpp
@@ -178,7 +178,7 @@ namespace Gentoo {
auto properties = c.adapter->getCommunicator()->getProperties();
auto repoRoot = boost::filesystem::path(properties->getPropertyWithDefault("GentooBrowseAPI.RepoRoot", "/"));
auto dbc = db->get();
- DB::TransactionScope tx(dbc.get());
+ DB::TransactionScope tx(*dbc.get());
for (auto & repo : fetch<Gentoo::Repositories>(dbc.get(), sql::maintenance::reposToGitRefresh)) {
auto changes = refreshRepository(dbc.get(), properties, repo);
this->applyFileChanges(dbc.get(), repoRoot, repo, changes);
diff --git a/gentoobrowse-api/service/maintenanceimpl.h b/gentoobrowse-api/service/maintenanceimpl.h
index d28b1e6..bb76106 100644
--- a/gentoobrowse-api/service/maintenanceimpl.h
+++ b/gentoobrowse-api/service/maintenanceimpl.h
@@ -16,7 +16,7 @@ namespace Gentoo {
namespace Service {
class DLL_PUBLIC Maintenance : public Gentoo::Maintenance, public IceTray::AbstractDatabaseClient {
public:
- Maintenance(IceTray::DatabasePoolPtr d, Ice::CommunicatorPtr ic, Ice::PropertiesPtr p);
+ Maintenance(const DB::ConnectionPoolPtr & d, const Ice::CommunicatorPtr & ic, const Ice::PropertiesPtr & p);
virtual ~Maintenance();
void refreshPackageTree(const Ice::Current &) override;
@@ -26,7 +26,7 @@ namespace Gentoo {
void sendNotifications(const Ice::Current &) override;
protected:
- Maintenance(IceTray::DatabasePoolPtr d);
+ Maintenance(const DB::ConnectionPoolPtr & d);
void applyFileChanges(DB::Connection *, const boost::filesystem::path &, const Repository &, ChangeSet &) const;
private:
diff --git a/gentoobrowse-api/service/mask.h b/gentoobrowse-api/service/mask.h
index f37b152..a739fe5 100644
--- a/gentoobrowse-api/service/mask.h
+++ b/gentoobrowse-api/service/mask.h
@@ -4,7 +4,7 @@
#include <lexer.h>
#include <list>
#include <glibmm/ustring.h>
-#include <boost/optional.hpp>
+#include <optional>
namespace Portage {
namespace Utils {
@@ -15,7 +15,7 @@ namespace Portage {
virtual void consume() const = 0;
Glib::ustring date;
- boost::optional<Glib::ustring> person, email;
+ std::optional<Glib::ustring> person, email;
std::set<std::string> atoms;
std::list<std::string> message;
int n;
diff --git a/gentoobrowse-api/service/news.cpp b/gentoobrowse-api/service/news.cpp
index 34b811a..be4d53e 100644
--- a/gentoobrowse-api/service/news.cpp
+++ b/gentoobrowse-api/service/news.cpp
@@ -15,15 +15,15 @@ const std::string Body("Body");
namespace Portage {
namespace Utils {
- template<typename T, typename Y> IceUtil::Optional<T> iuo(const boost::optional<Y> & x)
+ template<typename T, typename Y> Ice::optional<T> iuo(const std::optional<Y> & x)
{
if (x) {
- return *x;
+ return Ice::optional<T>(*x);
}
- return IceUtil::Optional<T>();
+ return Ice::optional<T>();
}
- template<typename T, typename Y> std::vector<T> split(const boost::optional<Y> & x)
+ template<typename T, typename Y> std::vector<T> split(const std::optional<Y> & x)
{
std::vector<T> rtn;
if (x) {
@@ -49,11 +49,11 @@ namespace Portage {
} },
// author: name <email>
{ { InitialState }, Author, [this](auto es) {
- news->authorname = *es->pattern()->match(1);
- news->authoremail = *es->pattern()->match(2);
+ news->authorname = es->pattern()->match(1)->raw();
+ news->authoremail = es->pattern()->match(2)->raw();
} },
// other headers
- { { InitialState }, IgnoredHeader, [this](auto) {
+ { { InitialState }, IgnoredHeader, [](auto) {
} },
// blank
{ { InitialState }, BlankLine, [this](auto es) {
@@ -76,7 +76,7 @@ namespace Portage {
news->body.back().append(*es->pattern()->match(1));
} }
}),
- news(new Gentoo::NewsItem())
+ news(std::make_shared<Gentoo::NewsItem>())
{
}
diff --git a/gentoobrowse-api/service/notificationsimpl.cpp b/gentoobrowse-api/service/notificationsimpl.cpp
index 270e264..64756bf 100644
--- a/gentoobrowse-api/service/notificationsimpl.cpp
+++ b/gentoobrowse-api/service/notificationsimpl.cpp
@@ -30,14 +30,14 @@ namespace Gentoo {
xsltSetLoaderFunc(NULL);
}
- Gentoo::EmailPtr Notifications::getSignup(const Gentoo::NewUserPtr & u, const Ice::Current &)
+ Gentoo::EmailPtr Notifications::getSignup(Gentoo::NewUserPtr u, const Ice::Current &)
{
auto e = basicMail("Welcome", u);
Slicer::SerializeAny<XsltStreamSerializer>(u, e, signup.get());
return e;
}
- Gentoo::EmailPtr Notifications::getNews(const Gentoo::UserPtr & u, const Gentoo::NewsContent & c, const Ice::Current &)
+ Gentoo::EmailPtr Notifications::getNews(Gentoo::UserPtr u, Gentoo::NewsContent c, const Ice::Current &)
{
auto e = basicMail("Latest updates", u);
Slicer::SerializeAny<XsltStreamSerializer>(c, e, news.get());
@@ -46,7 +46,7 @@ namespace Gentoo {
Gentoo::EmailPtr Notifications::basicMail(const std::string & subject, Gentoo::UserPtr u)
{
- Gentoo::EmailPtr e = new Gentoo::Email();
+ Gentoo::EmailPtr e = std::make_shared<Gentoo::Email>();
e->subject = "Gentoo Browse: " + subject;
e->from.name = "Gentoo Browse";
e->from.address = "noreply@gentoobrowse.randomdan.homeip.net";
diff --git a/gentoobrowse-api/service/notificationsimpl.h b/gentoobrowse-api/service/notificationsimpl.h
index 1d3b1fc..762aa4a 100644
--- a/gentoobrowse-api/service/notificationsimpl.h
+++ b/gentoobrowse-api/service/notificationsimpl.h
@@ -12,8 +12,8 @@ namespace Gentoo {
public:
Notifications();
- Gentoo::EmailPtr getSignup(const Gentoo::NewUserPtr &, const Ice::Current &) override;
- Gentoo::EmailPtr getNews(const Gentoo::UserPtr &, const Gentoo::NewsContent &, const Ice::Current &) override;
+ Gentoo::EmailPtr getSignup(Gentoo::NewUserPtr, const Ice::Current &) override;
+ Gentoo::EmailPtr getNews(Gentoo::UserPtr, Gentoo::NewsContent, const Ice::Current &) override;
private:
Gentoo::EmailPtr basicMail(const std::string &, Gentoo::UserPtr u);
diff --git a/gentoobrowse-api/service/portageimpl.cpp b/gentoobrowse-api/service/portageimpl.cpp
index 1885952..f779649 100644
--- a/gentoobrowse-api/service/portageimpl.cpp
+++ b/gentoobrowse-api/service/portageimpl.cpp
@@ -44,7 +44,7 @@
namespace Gentoo {
namespace Service {
-Portage::Portage(boost::shared_ptr<AdHoc::ResourcePool<DB::Connection>> d) :
+Portage::Portage(const DB::ConnectionPoolPtr & d) :
IceTray::AbstractCachingDatabaseClient(d)
{
}
@@ -56,7 +56,7 @@ Portage::getCategory(Ice::Int id, const Ice::Current &)
}
Gentoo::CategoryPtr
-Portage::findCategory(const std::string & name, const Ice::Current &)
+Portage::findCategory(const std::string name, const Ice::Current &)
{
return fetchCache<Gentoo::CategoryPtr>(sql::portage::findCategory, 30, name);
}
@@ -68,7 +68,7 @@ Portage::getAllCategories(const Ice::Current &)
}
Gentoo::Categories
-Portage::getCategoriesInSuper(const std::string & super, const Ice::Current &)
+Portage::getCategoriesInSuper(const std::string super, const Ice::Current &)
{
return fetchCache<Gentoo::Categories>(sql::portage::getCategoriesInSuper, 30, super);
}
@@ -86,7 +86,7 @@ Portage::getAllOverviewCategories(const Ice::Current &)
}
Gentoo::OverviewCategories
-Portage::getOverviewCategoriesInSuper(const std::string & super, const Ice::Current &)
+Portage::getOverviewCategoriesInSuper(const std::string super, const Ice::Current &)
{
return fetchCache<Gentoo::OverviewCategories>(sql::portage::getOverviewCategoriesInSuper, 30, super);
}
@@ -98,7 +98,7 @@ Portage::getPackage(Ice::Int id, const Ice::Current &)
}
Gentoo::PackagePtr
-Portage::findPackage(const std::string & cat, const std::string & pkg, const Ice::Current &)
+Portage::findPackage(const std::string cat, const std::string pkg, const Ice::Current &)
{
return fetchCache<Gentoo::PackagePtr>(sql::portage::findPackage, 30, cat, pkg);
}
@@ -116,7 +116,7 @@ Portage::getPackagesInCategory(Ice::Int id, const Ice::Current &)
}
Gentoo::SearchResultPackages
-Portage::getPackagesSearch(const std::string & query, const Ice::Current &)
+Portage::getPackagesSearch(const std::string query, const Ice::Current &)
{
return fetchCache<Gentoo::SearchResultPackages>(sql::portage::getPackagesSearch, 30, query, query);
}
@@ -176,7 +176,7 @@ Portage::getPackageUrls(Ice::Int id, const Ice::Current &)
}
Gentoo::Ebuilds
-Portage::getEbuildsByFilter(const std::string & filter, const Ice::Current &)
+Portage::getEbuildsByFilter(const std::string filter, const Ice::Current &)
{
return fetchCache<Gentoo::Ebuilds>(sql::portage::getEbuildsByFilter, 30, filter);
}
@@ -218,7 +218,7 @@ Portage::getPackageUses(Ice::Int id, const Ice::Current &)
}
Gentoo::UsePtr
-Portage::getUse(const std::string & use, const Ice::Current &)
+Portage::getUse(const std::string use, const Ice::Current &)
{
return fetchCache<Gentoo::UsePtr>(sql::portage::getUse, 30, use, use);
}
@@ -230,7 +230,7 @@ Portage::getGlobalUses(const Ice::Current &)
}
Gentoo::Uses
-Portage::getGroupUses(const std::string & group, const Ice::Current &)
+Portage::getGroupUses(const std::string group, const Ice::Current &)
{
return fetchCache<Gentoo::Uses>(sql::portage::getGroupUses, 30, group);
}
@@ -242,19 +242,19 @@ Portage::getUseGroups(const Ice::Current &)
}
Gentoo::Uses
-Portage::getUseUsage(const std::string & use, const Ice::Current &)
+Portage::getUseUsage(const std::string use, const Ice::Current &)
{
return fetchCache<Gentoo::Uses>(sql::portage::getUseUsage, 30, use, use, use, use);
}
Gentoo::Packages
-Portage::getUsePackages(const std::string & use, const Ice::Current &)
+Portage::getUsePackages(const std::string use, const Ice::Current &)
{
return fetchCache<Gentoo::Packages>(sql::portage::getUsePackages, 30, use, use);
}
Gentoo::Uses
-Portage::getUsesSearch(const std::string & query, const Ice::Current &)
+Portage::getUsesSearch(const std::string query, const Ice::Current &)
{
return fetchCache<Gentoo::Uses>(sql::portage::getUsesSearch, 30, query);
}
@@ -272,19 +272,19 @@ Portage::getPackageBugs(Ice::Int packageId, const Ice::Current &)
}
Gentoo::SearchResultBugs
-Portage::getBugsSearch(const std::string & query, const Ice::Current &)
+Portage::getBugsSearch(const std::string query, const Ice::Current &)
{
return fetchCache<Gentoo::SearchResultBugs>(sql::portage::getBugsSearch, 30, query, query);
}
Gentoo::NewsItemPtr
-Portage::getNewsItem(const std::string & id, const Ice::Current &)
+Portage::getNewsItem(const std::string id, const Ice::Current &)
{
return fetchCache<Gentoo::NewsItemPtr>(sql::portage::getNewsItem, 30, id);
}
Gentoo::News
-Portage::getNewsSearch(const std::string & query, const Ice::Current &)
+Portage::getNewsSearch(const std::string query, const Ice::Current &)
{
return fetchCache<Gentoo::News>(sql::portage::getNewsSearch, 30, query);
}
diff --git a/gentoobrowse-api/service/portageimpl.h b/gentoobrowse-api/service/portageimpl.h
index 42459c2..06721e8 100644
--- a/gentoobrowse-api/service/portageimpl.h
+++ b/gentoobrowse-api/service/portageimpl.h
@@ -9,20 +9,20 @@ namespace Gentoo {
namespace Service {
class DLL_PUBLIC Portage : public Gentoo::Portage, IceTray::AbstractCachingDatabaseClient {
public:
- Portage(boost::shared_ptr<AdHoc::ResourcePool<DB::Connection>> d);
+ Portage(const DB::ConnectionPoolPtr & d);
Gentoo::CategoryPtr getCategory(Ice::Int id, const Ice::Current &) override;
- Gentoo::CategoryPtr findCategory(const std::string & name, const Ice::Current &) override;
+ Gentoo::CategoryPtr findCategory(const std::string name, const Ice::Current &) override;
Gentoo::Categories getAllCategories(const Ice::Current &) override;
- Gentoo::Categories getCategoriesInSuper(const std::string &, const Ice::Current &) override;
+ Gentoo::Categories getCategoriesInSuper(const std::string, const Ice::Current &) override;
Gentoo::OverviewCategoriesBySuper getAllOverviewCategories(const Ice::Current &) override;
- Gentoo::OverviewCategories getOverviewCategoriesInSuper(const std::string &, const Ice::Current &) override;
+ Gentoo::OverviewCategories getOverviewCategoriesInSuper(const std::string, const Ice::Current &) override;
Gentoo::PackagePtr getPackage(Ice::Int id, const Ice::Current &) override;
- Gentoo::PackagePtr findPackage(const std::string &, const std::string &, const Ice::Current &) override;
+ Gentoo::PackagePtr findPackage(const std::string, const std::string, const Ice::Current &) override;
Gentoo::Packages getPackagesInCategory(Ice::Int id, const Ice::Current &) override;
Gentoo::Packages getAllPackages(const Ice::Current &) override;
- Gentoo::SearchResultPackages getPackagesSearch(const std::string & query, const Ice::Current &) override;
+ Gentoo::SearchResultPackages getPackagesSearch(const std::string query, const Ice::Current &) override;
Gentoo::Ebuilds getPackageVersions(Ice::Int id, const Ice::Current &) override;
Gentoo::EbuildDetails getPackageVersionDetails(Ice::Int id, const Ice::Current &) override;
Gentoo::ChangeLog getPackageChangeLog(Ice::Int id, const Ice::Current &) override;
@@ -38,22 +38,22 @@ class DLL_PUBLIC Portage : public Gentoo::Portage, IceTray::AbstractCachingDatab
Gentoo::Packages getUserTrackedPackages(Ice::Int userid, const Ice::Current &) override;
Gentoo::Ebuilds getUserTrackedRecentVersions(Ice::Int userid, Ice::Int limit, const Ice::Current &) override;
Gentoo::StringList getPackageUrls(Ice::Int id, const Ice::Current &) override;
- Gentoo::Ebuilds getEbuildsByFilter(const std::string &, const Ice::Current &) override;
+ Gentoo::Ebuilds getEbuildsByFilter(const std::string, const Ice::Current &) override;
- Gentoo::UsePtr getUse(const std::string &, const Ice::Current &) override;
+ Gentoo::UsePtr getUse(const std::string, const Ice::Current &) override;
Gentoo::Uses getGlobalUses(const Ice::Current &) override;
- Gentoo::Uses getGroupUses(const std::string &, const Ice::Current &) override;
+ Gentoo::Uses getGroupUses(const std::string, const Ice::Current &) override;
Gentoo::StringList getUseGroups(const Ice::Current &) override;
- Gentoo::Uses getUseUsage(const std::string &, const Ice::Current &) override;
- Gentoo::Packages getUsePackages(const std::string &, const Ice::Current &) override;
- Gentoo::Uses getUsesSearch(const std::string &, const Ice::Current &) override;
+ Gentoo::Uses getUseUsage(const std::string, const Ice::Current &) override;
+ Gentoo::Packages getUsePackages(const std::string, const Ice::Current &) override;
+ Gentoo::Uses getUsesSearch(const std::string, const Ice::Current &) override;
Gentoo::BugPtr getBug(Ice::Int id, const Ice::Current &) override;
Gentoo::Bugs getPackageBugs(Ice::Int packageId, const Ice::Current &) override;
- Gentoo::SearchResultBugs getBugsSearch(const std::string & query, const Ice::Current &) override;
+ Gentoo::SearchResultBugs getBugsSearch(const std::string query, const Ice::Current &) override;
- Gentoo::NewsItemPtr getNewsItem(const std::string &, const Ice::Current &) override;
- Gentoo::News getNewsSearch(const std::string &, const Ice::Current &) override;
+ Gentoo::NewsItemPtr getNewsItem(const std::string, const Ice::Current &) override;
+ Gentoo::News getNewsSearch(const std::string, const Ice::Current &) override;
Gentoo::News getNewsRecent(Ice::Int, const Ice::Current &) override;
Gentoo::Repository getRepository(Ice::Int, const Ice::Current &) override;
diff --git a/gentoobrowse-api/service/usersimpl.cpp b/gentoobrowse-api/service/usersimpl.cpp
index 13b5112..446d61c 100644
--- a/gentoobrowse-api/service/usersimpl.cpp
+++ b/gentoobrowse-api/service/usersimpl.cpp
@@ -18,19 +18,19 @@
namespace Gentoo {
namespace Service {
-Users::Users(boost::shared_ptr<AdHoc::ResourcePool<DB::Connection>> d) :
+Users::Users(const DB::ConnectionPoolPtr & d) :
IceTray::AbstractCachingDatabaseClient(d)
{
}
Gentoo::UserPtr
-Users::authenticate(const std::string & username, const std::string & password, const Ice::Current &)
+Users::authenticate(const std::string username, const std::string password, const Ice::Current &)
{
return fetchCache<Gentoo::UserPtr>(sql::users::authenticate, 30, username, password);
}
Gentoo::UserPtr
-Users::verify(const std::string & username, const std::string & verifyguid, const Ice::Current &)
+Users::verify(const std::string username, const std::string verifyguid, const Ice::Current &)
{
return fetch<Gentoo::UserPtr>(sql::users::verify, username, verifyguid);
}
@@ -42,13 +42,13 @@ Users::get(Ice::Int id, const Ice::Current &)
}
Gentoo::NewUserPtr
-Users::getNew(const std::string & username, const std::string & password, const Ice::Current &)
+Users::getNew(const std::string username, const std::string password, const Ice::Current &)
{
return fetch<Gentoo::NewUserPtr>(sql::users::getNew, username, password);
}
Gentoo::UserPtr
-Users::find(const std::string & username, const Ice::Current &)
+Users::find(const std::string username, const Ice::Current &)
{
return fetch<Gentoo::UserPtr>(sql::users::find, username);
}
@@ -64,17 +64,17 @@ Users::authOrCreate(const std::string & username, const std::string & password,
}
Gentoo::NewUserPtr
-Users::create(const std::string & username, const std::string & password, const std::string & realname, const std::string & email, const Ice::Current & current)
+Users::create(const std::string username, const std::string password, const std::string realname, const std::string email, const Ice::Current & current)
{
- auto notifications = NotificationsPrx::checkedCast(current.adapter->getCommunicator()->stringToProxy("notifications"));
+ auto notifications = Ice::checkedCast<NotificationsPrx>(current.adapter->getCommunicator()->stringToProxy("notifications"));
BOOST_ASSERT(notifications);
BOOST_ASSERT((notifications->ice_ping(), true));
- auto mailServer = MailServerPrx::checkedCast(current.adapter->getCommunicator()->stringToProxy("mailserver"));
+ auto mailServer = Ice::checkedCast<MailServerPrx>(current.adapter->getCommunicator()->stringToProxy("mailserver"));
BOOST_ASSERT(mailServer);
BOOST_ASSERT((mailServer->ice_ping(), true));
auto dbc = db->get();
- DB::TransactionScope tx(dbc.get());
+ DB::TransactionScope tx(*dbc.get());
auto newUser = authOrCreate(username, password, realname, email);
auto mail = notifications->getSignup(newUser);
@@ -93,7 +93,7 @@ Users::mailshotsent(Ice::Int id, const Ice::Current &)
}
void
-Users::remove(Ice::Int id, const std::string & password, const Ice::Current &)
+Users::remove(Ice::Int id, const std::string password, const Ice::Current &)
{
auto dbc = db->get();
auto del = sql::users::safeDelete.modify(dbc.get());
diff --git a/gentoobrowse-api/service/usersimpl.h b/gentoobrowse-api/service/usersimpl.h
index 57e0d79..5baec3b 100644
--- a/gentoobrowse-api/service/usersimpl.h
+++ b/gentoobrowse-api/service/usersimpl.h
@@ -9,17 +9,17 @@ namespace Gentoo {
namespace Service {
class DLL_PUBLIC Users : public Gentoo::Users, IceTray::AbstractCachingDatabaseClient {
public:
- Users(boost::shared_ptr<AdHoc::ResourcePool<DB::Connection>> d);
+ Users(const DB::ConnectionPoolPtr & d);
- Gentoo::UserPtr authenticate(const std::string &, const std::string &, const Ice::Current &) override;
- Gentoo::UserPtr verify(const std::string &, const std::string &, const Ice::Current &) override;
+ Gentoo::UserPtr authenticate(const std::string, const std::string, const Ice::Current &) override;
+ Gentoo::UserPtr verify(const std::string, const std::string, const Ice::Current &) override;
Gentoo::UserPtr get(Ice::Int id, const Ice::Current &) override;
- Gentoo::NewUserPtr getNew(const std::string &, const std::string &, const Ice::Current &) override;
- Gentoo::UserPtr find(const std::string & username, const Ice::Current &) override;
- Gentoo::NewUserPtr create(const std::string &, const std::string &, const std::string &, const std::string &, const Ice::Current &) override;
+ Gentoo::NewUserPtr getNew(const std::string, const std::string, const Ice::Current &) override;
+ Gentoo::UserPtr find(const std::string username, const Ice::Current &) override;
+ Gentoo::NewUserPtr create(const std::string, const std::string, const std::string, const std::string, const Ice::Current &) override;
void mailshotsent(Ice::Int id, const Ice::Current &) override;
- void remove(Ice::Int id, const std::string &, const Ice::Current &) override;
+ void remove(Ice::Int id, const std::string, const Ice::Current &) override;
void prune(const Ice::Current &) override;
void track(Ice::Int, Ice::Int, const Ice::Current &) override;
diff --git a/gentoobrowse-api/service/xsltStreamSerializer.cpp b/gentoobrowse-api/service/xsltStreamSerializer.cpp
index 5a71b35..ff73c2e 100644
--- a/gentoobrowse-api/service/xsltStreamSerializer.cpp
+++ b/gentoobrowse-api/service/xsltStreamSerializer.cpp
@@ -49,7 +49,7 @@ namespace Gentoo {
xmlOutputBufferPtr buf = xmlOutputBufferCreateIO(xmlstrmwritecallback, xmlstrmclosecallback, &strm, NULL);
htmlDocContentDumpFormatOutput(buf, result, "utf-8", 0);
xmlOutputBufferClose(buf);
- mail->body.push_back(new Gentoo::MimePart("text/html", strm.str()));
+ mail->body.push_back(std::make_shared<Gentoo::MimePart>("text/html", strm.str()));
}
void XsltStreamSerializer::appendText(xmlDoc * result) const
@@ -76,7 +76,7 @@ namespace Gentoo {
if (status != 0) {
throw std::runtime_error("Lynx failed");
}
- mail->body.push_back(new Gentoo::MimePart("text/plain", strm.str()));
+ mail->body.push_back(std::make_shared<Gentoo::MimePart>("text/plain", strm.str()));
}
}
diff --git a/gentoobrowse-api/unittests/Jamfile.jam b/gentoobrowse-api/unittests/Jamfile.jam
index ead573a..575d54a 100644
--- a/gentoobrowse-api/unittests/Jamfile.jam
+++ b/gentoobrowse-api/unittests/Jamfile.jam
@@ -26,7 +26,6 @@ lib testCommon :
<library>..//boost_system
<library>..//boost_filesystem
<library>..//Ice
- <library>..//IceUtil
<library>..//IceBox
<library>dryice
<library>../service//gentoobrowse-service
@@ -40,7 +39,6 @@ lib testCommon :
<library>dryice
<library>../service//gentoobrowse-service
<implicit-dependency>../service//gentoobrowse-service
- <library>..//IceUtil
<library>..//Ice
<library>..//boost_system
<library>..//boost_filesystem
diff --git a/gentoobrowse-api/unittests/mockDefs.cpp b/gentoobrowse-api/unittests/mockDefs.cpp
index a865c39..c06b81a 100644
--- a/gentoobrowse-api/unittests/mockDefs.cpp
+++ b/gentoobrowse-api/unittests/mockDefs.cpp
@@ -3,7 +3,7 @@
#include <notifications.h>
void
-MockMailServerImpl::sendEmail(const Gentoo::EmailPtr & e, const Ice::Current &)
+MockMailServerImpl::sendEmail(const Gentoo::EmailPtr e, const Ice::Current &)
{
sentEmails.push_back(e);
}
@@ -15,11 +15,11 @@ MockMailServerImpl::getSentEmails(const Ice::Current &)
}
Service::Service() :
- PQ::Mock("user=postgres dbname=postgres", "GentooBrowseAPI", {
+ DB::PluginMock<PQ::Mock>("user=postgres dbname=postgres", "GentooBrowseAPI", {
rootDir.parent_path() / "db" / "schema.sql",
rootDir / "data.sql" })
{
- replace("mailserver", new MockMailServerImpl());
+ replace("mailserver", std::make_shared<MockMailServerImpl>());
}
Maintenance::Maintenance() :
@@ -28,10 +28,10 @@ Maintenance::Maintenance() :
"--GentooBrowseAPI.RepoRoot=" + (rootDir / "fixtures" / "gitrepo").string(),
"--GentooBrowseAPI.BugRoot=file://" + (rootDir / "fixtures" / "bugs").string()
}),
- PQ::Mock("user=postgres dbname=postgres", "GentooBrowseAPI", {
+ DB::PluginMock<PQ::Mock>("user=postgres dbname=postgres", "GentooBrowseAPI", {
rootDir.parent_path() / "db" / "schema.sql" })
{
- replace("mailserver", new MockMailServerImpl());
+ replace("mailserver", std::make_shared<MockMailServerImpl>());
}
Mail::Mail() :
diff --git a/gentoobrowse-api/unittests/mockDefs.h b/gentoobrowse-api/unittests/mockDefs.h
index d69d3e1..7ea3535 100644
--- a/gentoobrowse-api/unittests/mockDefs.h
+++ b/gentoobrowse-api/unittests/mockDefs.h
@@ -14,19 +14,19 @@
class MockMailServerImpl : public Gentoo::MockMailServer {
public:
- void sendEmail(const Gentoo::EmailPtr & msg, const Ice::Current &) override;
+ void sendEmail(const Gentoo::EmailPtr msg, const Ice::Current &) override;
Gentoo::Emails getSentEmails(const Ice::Current &) override;
private:
Gentoo::Emails sentEmails;
};
-class DLL_PUBLIC Service : public IceTray::DryIce, PQ::Mock {
+class DLL_PUBLIC Service : public IceTray::DryIce, DB::PluginMock<PQ::Mock> {
public:
Service();
};
-class DLL_PUBLIC Maintenance : public IceTray::DryIce, PQ::Mock {
+class DLL_PUBLIC Maintenance : public IceTray::DryIce, DB::PluginMock<PQ::Mock> {
public:
Maintenance();
};
@@ -40,11 +40,11 @@ class DLL_PUBLIC TestClient : public IceTray::DryIceClient {
public:
TestClient();
- Gentoo::MaintenancePrx m;
- Gentoo::PortagePrx p;
- Gentoo::NotificationsPrx n;
- Gentoo::MailServerPrx ms;
- Gentoo::UsersPrx u;
+ Gentoo::MaintenancePrxPtr m;
+ Gentoo::PortagePrxPtr p;
+ Gentoo::NotificationsPrxPtr n;
+ Gentoo::MailServerPrxPtr ms;
+ Gentoo::UsersPrxPtr u;
};
#define SQL_REQUIRE_EQUAL(sql, type, expected) BOOST_TEST_CONTEXT(sql) { sqlRequireEqual<type>(db, sql, expected); }
diff --git a/gentoobrowse-api/unittests/testDepend.cpp b/gentoobrowse-api/unittests/testDepend.cpp
index 942dbaf..e7c232d 100644
--- a/gentoobrowse-api/unittests/testDepend.cpp
+++ b/gentoobrowse-api/unittests/testDepend.cpp
@@ -185,7 +185,7 @@ BOOST_AUTO_TEST_CASE( versionSlot )
BOOST_REQUIRE(ds[0]->version);
BOOST_REQUIRE_EQUAL(*ds[0]->version, "2.0.0");
BOOST_REQUIRE(ds[0]->slot);
- BOOST_REQUIRE_EQUAL(ds[0]->slot, "foo");
+ BOOST_REQUIRE_EQUAL(*ds[0]->slot, "foo");
BOOST_REQUIRE(ds[0]->use.empty());
}
@@ -194,7 +194,7 @@ BOOST_AUTO_TEST_CASE( slot )
auto ds = Portage::Utils::Depend::parse(" >x11-libs/Gtk+:foo");
BOOST_REQUIRE(!ds[0]->version);
BOOST_REQUIRE(ds[0]->slot);
- BOOST_REQUIRE_EQUAL(ds[0]->slot, "foo");
+ BOOST_REQUIRE_EQUAL(*ds[0]->slot, "foo");
BOOST_REQUIRE(ds[0]->use.empty());
}
@@ -204,7 +204,7 @@ BOOST_AUTO_TEST_CASE( versionSlotSubSlot )
BOOST_REQUIRE(ds[0]->version);
BOOST_REQUIRE_EQUAL(*ds[0]->version, "2.0.0");
BOOST_REQUIRE(ds[0]->slot);
- BOOST_REQUIRE_EQUAL(ds[0]->slot, "foo/bar");
+ BOOST_REQUIRE_EQUAL(*ds[0]->slot, "foo/bar");
BOOST_REQUIRE(ds[0]->use.empty());
}
@@ -213,7 +213,7 @@ BOOST_AUTO_TEST_CASE( slotUse )
auto ds = Portage::Utils::Depend::parse(" >x11-libs/Gtk+:foo[bar,baz]");
BOOST_REQUIRE(!ds[0]->version);
BOOST_REQUIRE(ds[0]->slot);
- BOOST_REQUIRE_EQUAL(ds[0]->slot, "foo");
+ BOOST_REQUIRE_EQUAL(*ds[0]->slot, "foo");
BOOST_REQUIRE_EQUAL(ds[0]->use.size(), 2);
BOOST_REQUIRE_EQUAL(ds[0]->use[0], "bar");
BOOST_REQUIRE_EQUAL(ds[0]->use[1], "baz");
diff --git a/gentoobrowse-api/unittests/testMaintenance.cpp b/gentoobrowse-api/unittests/testMaintenance.cpp
index b2f88cc..a23444a 100644
--- a/gentoobrowse-api/unittests/testMaintenance.cpp
+++ b/gentoobrowse-api/unittests/testMaintenance.cpp
@@ -9,6 +9,7 @@
#include <fstream>
#include <maintenanceimpl.h>
#include <portageimpl.h>
+#include <mockPool.h>
class MaintenanceClientCombined : public Maintenance, public TestClient { };
@@ -70,7 +71,7 @@ class M2 : public Gentoo::Service::Maintenance {
public:
typedef std::map<boost::filesystem::path, size_t> FileMap;
- M2(IceTray::DatabasePoolPtr d) :
+ M2(const DB::ConnectionPoolPtr & d) :
Gentoo::Service::Maintenance(d)
{
}
@@ -80,7 +81,7 @@ class M2 : public Gentoo::Service::Maintenance {
auto dbc = db->get();
auto fromFiles = fileSet(from);
auto toFiles = fileSet(to);
- DB::TransactionScope tx(dbc.get());
+ DB::TransactionScope tx(*dbc.get());
Gentoo::Service::ChangeSet changes;
newFiles(changes, fromFiles, toFiles);
removedFiles(changes, fromFiles, toFiles);
@@ -139,15 +140,6 @@ class M2 : public Gentoo::Service::Maintenance {
}
};
-class MockPool : public IceTray::DatabasePool {
- public:
- MockPool() : IceTray::DatabasePool(10, 2) {}
- DB::Connection * createResource() const override
- {
- return DB::MockDatabase::openConnectionTo("GentooBrowseAPI");
- }
-};
-
#define BOOST_TEST_CONTEXT_VAR(VAR, EXPR) \
BOOST_TEST_CONTEXT(#EXPR) \
for (auto VAR = EXPR, * __context__run = &VAR; __context__run; __context__run = NULL)
@@ -165,7 +157,7 @@ BOOST_AUTO_TEST_CASE( refreshPackageTree )
boost::filesystem::remove_all(binDir / "empty");
boost::filesystem::create_directory(binDir / "empty");
- auto p = IceTray::DatabasePoolPtr(new MockPool());
+ auto p = std::make_shared<IceTray::MockPool>("GentooBrowseAPI", 1, 1);
M2 m2(p);
BOOST_TEST_CONTEXT("4156eb45cf3b0ce1d7125b84efd8688c2d6e831d") {
@@ -173,7 +165,7 @@ BOOST_AUTO_TEST_CASE( refreshPackageTree )
doRefreshPackageTree(db,
5, 1, 482, 981, 3626, 4593, 501, 393, 238, 50, 1573, 2008, 1543, 81, 152, 7);
- Gentoo::PortagePtr portage = new Gentoo::Service::Portage(p);
+ Gentoo::PortagePtr portage = std::make_shared<Gentoo::Service::Portage>(p);
BOOST_TEST_CONTEXT_VAR(acjtr, portage->findPackage("app-crypt", "johntheripper", Ice::Current())) {
BOOST_TEST_CONTEXT_VAR(acjtrUses, portage->getPackageUses(acjtr->packageid, Ice::Current())) {
BOOST_REQUIRE_EQUAL(9, acjtrUses.size());
diff --git a/gentoobrowse-api/unittests/testMasks.cpp b/gentoobrowse-api/unittests/testMasks.cpp
index e80fe1c..ac29b97 100644
--- a/gentoobrowse-api/unittests/testMasks.cpp
+++ b/gentoobrowse-api/unittests/testMasks.cpp
@@ -13,12 +13,12 @@ class MaskTester : public Portage::Utils::Masks {
void consume() const override
{
if (email && person) {
- masks.push_back(new Gentoo::Mask(n, *person, *email, date,
+ masks.push_back(std::make_shared<Gentoo::Mask>(n, person->raw(), email->raw(), date,
boost::algorithm::join(message, " "),
Gentoo::StringList(atoms.begin(), atoms.end())));
}
}
-
+
public:
mutable Gentoo::Masks masks;
};
diff --git a/gentoobrowse-api/unittests/testNotifications.cpp b/gentoobrowse-api/unittests/testNotifications.cpp
index 9d8c806..700b3a6 100644
--- a/gentoobrowse-api/unittests/testNotifications.cpp
+++ b/gentoobrowse-api/unittests/testNotifications.cpp
@@ -6,6 +6,8 @@
#include <fstream>
#include <tidy.h>
+using namespace std::string_literals;
+
BOOST_GLOBAL_FIXTURE( Mail );
BOOST_FIXTURE_TEST_SUITE(tp, TestClient);
@@ -48,7 +50,7 @@ commonAssert(Gentoo::EmailPtr e)
BOOST_AUTO_TEST_CASE( testSend )
{
- Gentoo::NewUserPtr u = new Gentoo::NewUser(1, "testuser", "Test User", "noone@randomdan.homeip.net", "2017-10-01T12:34:56", IceUtil::None, "some-guid");
+ Gentoo::NewUserPtr u = std::make_shared<Gentoo::NewUser>(1, "testuser", "Test User", "noone@randomdan.homeip.net", "2017-10-01T12:34:56", IceUtil::None, "some-guid");
auto e = n->getSignup(u);
BOOST_REQUIRE(e);
ms->sendEmail(e);
@@ -56,7 +58,7 @@ BOOST_AUTO_TEST_CASE( testSend )
BOOST_AUTO_TEST_CASE( testSignup )
{
- Gentoo::NewUserPtr u = new Gentoo::NewUser(1, "testuser", "Test User", "test@user.com", "2017-10-01T12:34:56", IceUtil::None, "some-guid");
+ Gentoo::NewUserPtr u = std::make_shared<Gentoo::NewUser>(1, "testuser", "Test User", "test@user.com", "2017-10-01T12:34:56", IceUtil::None, "some-guid");
auto e = n->getSignup(u);
BOOST_REQUIRE(e);
BOOST_REQUIRE_EQUAL(e->subject, "Gentoo Browse: Welcome");
@@ -75,27 +77,27 @@ BOOST_AUTO_TEST_CASE( testSignup )
BOOST_AUTO_TEST_CASE( testNews )
{
- Gentoo::UserPtr u = new Gentoo::User(1, "testuser", "Test User", "test@user.com", "2017-10-01T12:34:56", IceUtil::None);
+ Gentoo::UserPtr u = std::make_shared<Gentoo::User>(1, "testuser", "Test User", "test@user.com", "2017-10-01T12:34:56", IceUtil::None);
Gentoo::NewsContent nc {
{
- new Gentoo::Category(1, "app-test", "Test cat1"),
- new Gentoo::Category(2, "sys-test", "Test cat2"),
- new Gentoo::Category(3, "no-show", "Unused cat")
+ std::make_shared<Gentoo::Category>(1, "app-test", "Test cat1"s),
+ std::make_shared<Gentoo::Category>(2, "sys-test", "Test cat2"s),
+ std::make_shared<Gentoo::Category>(3, "no-show", "Unused cat"s)
},
{
- new Gentoo::Package(1, 1, "app1", "first-seen", "Test app desc one", "Test summary 1", IceUtil::None, IceUtil::None, IceUtil::None, IceUtil::None),
- new Gentoo::Package(2, 1, "app2", "first-seen", "Test app desc two", "Test summary 1", IceUtil::None, IceUtil::None, IceUtil::None, IceUtil::None),
- new Gentoo::Package(3, 2, "app3", "first-seen", "Test app desc three", "Test summary 1", IceUtil::None, IceUtil::None, IceUtil::None, IceUtil::None),
- new Gentoo::Package(4, 2, "app4", "first-seen", "Test app no-show", "Test summary 1", IceUtil::None, IceUtil::None, IceUtil::None, IceUtil::None)
+ std::make_shared<Gentoo::Package>(1, 1, "app1", "first-seen", "Test app desc one", "Test summary 1"s, IceUtil::None, IceUtil::None, IceUtil::None, IceUtil::None),
+ std::make_shared<Gentoo::Package>(2, 1, "app2", "first-seen", "Test app desc two", "Test summary 1"s, IceUtil::None, IceUtil::None, IceUtil::None, IceUtil::None),
+ std::make_shared<Gentoo::Package>(3, 2, "app3", "first-seen", "Test app desc three", "Test summary 1"s, IceUtil::None, IceUtil::None, IceUtil::None, IceUtil::None),
+ std::make_shared<Gentoo::Package>(4, 2, "app4", "first-seen", "Test app no-show", "Test summary 1"s, IceUtil::None, IceUtil::None, IceUtil::None, IceUtil::None)
},
{
- new Gentoo::Ebuild(1, 1, 1, "1.0a", "slot", "first-seen", "last-mod", IceUtil::None),
- new Gentoo::Ebuild(2, 1, 1, "1.1a", "slot", "first-seen", "last-mod", IceUtil::None),
- new Gentoo::Ebuild(3, 1, 1, "1.2a", "slot", "first-seen", "last-mod", IceUtil::None),
- new Gentoo::Ebuild(4, 2, 1, "2.0a", "slot", "first-seen", "last-mod", IceUtil::None),
- new Gentoo::Ebuild(5, 3, 1, "3.0a", "slot", "first-seen", "last-mod", IceUtil::None),
- new Gentoo::Ebuild(6, 2, 1, "2.1a", "slot", "first-seen", "last-mod", IceUtil::None),
- new Gentoo::Ebuild(7, 3, 1, "3.1a", "slot", "first-seen", "last-mod", IceUtil::None)
+ std::make_shared<Gentoo::Ebuild>(1, 1, 1, "1.0a", "slot", "first-seen", "last-mod", IceUtil::None),
+ std::make_shared<Gentoo::Ebuild>(2, 1, 1, "1.1a", "slot", "first-seen", "last-mod", IceUtil::None),
+ std::make_shared<Gentoo::Ebuild>(3, 1, 1, "1.2a", "slot", "first-seen", "last-mod", IceUtil::None),
+ std::make_shared<Gentoo::Ebuild>(4, 2, 1, "2.0a", "slot", "first-seen", "last-mod", IceUtil::None),
+ std::make_shared<Gentoo::Ebuild>(5, 3, 1, "3.0a", "slot", "first-seen", "last-mod", IceUtil::None),
+ std::make_shared<Gentoo::Ebuild>(6, 2, 1, "2.1a", "slot", "first-seen", "last-mod", IceUtil::None),
+ std::make_shared<Gentoo::Ebuild>(7, 3, 1, "3.1a", "slot", "first-seen", "last-mod", IceUtil::None)
}
};
auto e = n->getNews(u, nc);
diff --git a/gentoobrowse-api/unittests/testPortage.cpp b/gentoobrowse-api/unittests/testPortage.cpp
index 81d7320..18b8114 100644
--- a/gentoobrowse-api/unittests/testPortage.cpp
+++ b/gentoobrowse-api/unittests/testPortage.cpp
@@ -5,6 +5,17 @@
BOOST_GLOBAL_FIXTURE( Service );
+namespace std {
+ template<typename T>
+ ostream &
+ operator<<(ostream & s, const Ice::optional<T> & o)
+ {
+ if (o) s << *o;
+ else s << "-empty optional-";
+ return s;
+ }
+}
+
BOOST_FIXTURE_TEST_SUITE(tp, TestClient)
BOOST_AUTO_TEST_CASE( getCategoryMissing )
@@ -111,8 +122,8 @@ BOOST_AUTO_TEST_CASE( getPackage )
BOOST_REQUIRE_EQUAL("2010-05-04T00:54:45.661860", pkg->firstseen);
BOOST_REQUIRE_EQUAL("A GUI for GNU Arch", pkg->description);
BOOST_REQUIRE(!pkg->summary);
- BOOST_REQUIRE_EQUAL("maintainer-needed@gentoo.org", pkg->maintainer);
- BOOST_REQUIRE_EQUAL("Default assignee for orphaned packages", pkg->maintainername);
+ BOOST_REQUIRE_EQUAL("maintainer-needed@gentoo.org", *pkg->maintainer);
+ BOOST_REQUIRE_EQUAL("Default assignee for orphaned packages", *pkg->maintainername);
}
BOOST_AUTO_TEST_CASE( findPackageMissing )
@@ -190,7 +201,7 @@ BOOST_AUTO_TEST_CASE( getPackageVersions )
BOOST_REQUIRE_EQUAL("0", es.front()->slot);
BOOST_REQUIRE_EQUAL("2015-08-10T18:11:55.489505", es.front()->firstseen);
BOOST_REQUIRE_EQUAL("2015-12-01T15:10:49", es.front()->moddate);
- BOOST_REQUIRE_EQUAL("GPL-3", es.front()->license);
+ BOOST_REQUIRE_EQUAL("GPL-3", *es.front()->license);
BOOST_REQUIRE_EQUAL(629067, es.back()->ebuildid);
}
@@ -234,7 +245,7 @@ BOOST_AUTO_TEST_CASE( getPackageVersionDetails )
BOOST_REQUIRE_EQUAL("0", es.front()->slot);
BOOST_REQUIRE_EQUAL("2015-08-10T18:11:55.489505", es.front()->firstseen);
BOOST_REQUIRE_EQUAL("2015-12-01T15:10:49", es.front()->moddate);
- BOOST_REQUIRE_EQUAL("GPL-3", es.front()->license);
+ BOOST_REQUIRE_EQUAL("GPL-3", *es.front()->license);
BOOST_REQUIRE_EQUAL(629067, es.back()->ebuildid);
BOOST_REQUIRE_EQUAL(21, es.front()->uses.size());
BOOST_REQUIRE_EQUAL(3, es.front()->archs.size());
@@ -269,7 +280,7 @@ BOOST_AUTO_TEST_CASE( getRecentAdditions )
BOOST_REQUIRE_EQUAL("0", es.front()->slot);
BOOST_REQUIRE_EQUAL("2015-12-02T19:12:42.627493", es.front()->firstseen);
BOOST_REQUIRE_EQUAL("2015-12-03T17:21:25", es.front()->moddate);
- BOOST_REQUIRE_EQUAL("GPL-2", es.front()->license);
+ BOOST_REQUIRE_EQUAL("GPL-2", *es.front()->license);
}
BOOST_AUTO_TEST_CASE( getPackageDependencies )
@@ -331,8 +342,8 @@ BOOST_AUTO_TEST_CASE( getPackageMasks )
auto ms = p->getPackageMasks(55923);
BOOST_REQUIRE_EQUAL(1, ms.size());
BOOST_REQUIRE_EQUAL(3, ms.front()->setno);
- BOOST_REQUIRE_EQUAL("robbat2@gentoo.org", ms.front()->email);
- BOOST_REQUIRE_EQUAL("Robin H. Johnson", ms.front()->person);
+ BOOST_REQUIRE_EQUAL("robbat2@gentoo.org", *ms.front()->email);
+ BOOST_REQUIRE_EQUAL("Robin H. Johnson", *ms.front()->person);
BOOST_REQUIRE_EQUAL("2006-02-11", ms.front()->dateadded);
BOOST_REQUIRE_EQUAL("zlib interaction is badly broken. See bug #124733.", ms.front()->message);
BOOST_REQUIRE_EQUAL(1, ms.front()->atomspec.size());
diff --git a/gentoobrowse-api/util/update.cpp b/gentoobrowse-api/util/update.cpp
index f14df6e..4c4b1dd 100644
--- a/gentoobrowse-api/util/update.cpp
+++ b/gentoobrowse-api/util/update.cpp
@@ -30,22 +30,19 @@ main(int c, char ** v)
}
auto ic = Ice::initialize(c, v);
- auto m = Gentoo::MaintenancePrx::checkedCast(ic->stringToProxy("maintenance:" + endpoint));
+ auto m = Ice::checkedCast<Gentoo::MaintenancePrx>(ic->stringToProxy("maintenance:" + endpoint));
m->ice_ping();
- std::set<Ice::AsyncResultPtr> jobs;
- if (bugs) jobs.insert(m->begin_refreshBugs());
+ std::vector<std::future<void>> jobs;
+ if (bugs) jobs.push_back(m->refreshBugsAsync());
if (pull) m->updateRepositories();
- if (tree) jobs.insert(m->begin_refreshPackageTree());
-
- std::for_each(jobs.begin(), jobs.end(), [](const auto & j) { j->waitForSent(); });
+ if (tree) jobs.push_back(m->refreshPackageTreeAsync());
int failures = 0;
if (!background) {
- std::for_each(jobs.begin(), jobs.end(), [&failures](const auto & j) {
+ std::for_each(jobs.begin(), jobs.end(), [&failures](auto & f) {
try {
- j->waitForCompleted();
- j->throwLocalException();
+ f.get();
}
catch (const std::exception & ex) {
failures += 1;