summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Goodliffe <dan@randomdan.homeip.net>2018-04-10 20:55:15 +0100
committerDan Goodliffe <dan@randomdan.homeip.net>2018-04-12 18:37:13 +0100
commite84c4a8c75a0718b823606a6a78654786347fb9f (patch)
tree6ecca3427450cb5d12f962455035006dd904f6c9
parentC++17 and ICE 3.7 (diff)
downloadicetray-e84c4a8c75a0718b823606a6a78654786347fb9f.tar.bz2
icetray-e84c4a8c75a0718b823606a6a78654786347fb9f.tar.xz
icetray-e84c4a8c75a0718b823606a6a78654786347fb9f.zip
C++17 and ICE 3.7
Extend the standard DB::ConnectionPool now that it's been split into two more useful components.
-rw-r--r--icetray/dryice/mockPool.cpp2
-rw-r--r--icetray/dryice/mockPool.h4
-rw-r--r--icetray/icetray/abstractCachingDatabaseClient.cpp2
-rw-r--r--icetray/icetray/abstractCachingDatabaseClient.h2
-rw-r--r--icetray/icetray/abstractDatabaseClient.cpp2
-rw-r--r--icetray/icetray/abstractDatabaseClient.h6
-rw-r--r--icetray/icetray/database.h13
-rw-r--r--icetray/icetray/icetrayService.cpp8
-rw-r--r--icetray/icetray/icetrayService.h8
-rw-r--r--icetray/unittests/testIceTrayServiceI.cpp2
-rw-r--r--icetray/unittests/testIceTrayServiceI.h2
11 files changed, 20 insertions, 31 deletions
diff --git a/icetray/dryice/mockPool.cpp b/icetray/dryice/mockPool.cpp
index 4919cfb..ac73dad 100644
--- a/icetray/dryice/mockPool.cpp
+++ b/icetray/dryice/mockPool.cpp
@@ -4,7 +4,7 @@
namespace IceTray {
MockPool::MockPool(const std::string & name, const std::string &, const Ice::PropertiesPtr & p) :
- DatabasePool(
+ DB::BasicConnectionPool(
p->getPropertyAsIntWithDefault(name + ".Database.PoolMax", 10),
p->getPropertyAsIntWithDefault(name + ".Database.PoolKeep", 2)),
name(name)
diff --git a/icetray/dryice/mockPool.h b/icetray/dryice/mockPool.h
index fba168a..0e7b49b 100644
--- a/icetray/dryice/mockPool.h
+++ b/icetray/dryice/mockPool.h
@@ -1,12 +1,12 @@
#ifndef ICETRAY_MOCKPOOL_H
#define ICETRAY_MOCKPOOL_H
-#include "database.h"
+#include <connectionPool.h>
#include <mockDatabase.h>
#include <Ice/Properties.h>
namespace IceTray {
- class MockPool : public DatabasePool {
+ class MockPool : public DB::BasicConnectionPool {
public:
MockPool(const std::string & name, const std::string &, const Ice::PropertiesPtr & p);
diff --git a/icetray/icetray/abstractCachingDatabaseClient.cpp b/icetray/icetray/abstractCachingDatabaseClient.cpp
index 0a886db..7934596 100644
--- a/icetray/icetray/abstractCachingDatabaseClient.cpp
+++ b/icetray/icetray/abstractCachingDatabaseClient.cpp
@@ -5,7 +5,7 @@ template DLL_PUBLIC void AdHoc::Cache<IceTray::AbstractCachingDatabaseClient::Ca
template DLL_PUBLIC IceTray::AbstractCachingDatabaseClient::Cache::Value AdHoc::Cache<IceTray::AbstractCachingDatabaseClient::CacheItem, IceTray::AbstractCachingDatabaseClient::CacheKey>::get(const IceTray::AbstractCachingDatabaseClient::CacheKey &) const;
namespace IceTray {
- AbstractCachingDatabaseClient::AbstractCachingDatabaseClient(const DatabasePoolPtr & d) :
+ AbstractCachingDatabaseClient::AbstractCachingDatabaseClient(const DB::ConnectionPoolPtr & d) :
AbstractDatabaseClient(d)
{
}
diff --git a/icetray/icetray/abstractCachingDatabaseClient.h b/icetray/icetray/abstractCachingDatabaseClient.h
index 7858784..49718ff 100644
--- a/icetray/icetray/abstractCachingDatabaseClient.h
+++ b/icetray/icetray/abstractCachingDatabaseClient.h
@@ -13,7 +13,7 @@ namespace IceTray {
typedef boost::any CacheItem;
protected:
- AbstractCachingDatabaseClient(const DatabasePoolPtr & d);
+ AbstractCachingDatabaseClient(const DB::ConnectionPoolPtr & d);
template<typename Domain, typename ... Params>
inline
diff --git a/icetray/icetray/abstractDatabaseClient.cpp b/icetray/icetray/abstractDatabaseClient.cpp
index 5e4f566..bdef7ac 100644
--- a/icetray/icetray/abstractDatabaseClient.cpp
+++ b/icetray/icetray/abstractDatabaseClient.cpp
@@ -4,7 +4,7 @@
#include <Ice/BuiltinSequences.h>
namespace IceTray {
- AbstractDatabaseClient::AbstractDatabaseClient(const DatabasePoolPtr & d) :
+ AbstractDatabaseClient::AbstractDatabaseClient(const DB::ConnectionPoolPtr & d) :
db(d)
{
}
diff --git a/icetray/icetray/abstractDatabaseClient.h b/icetray/icetray/abstractDatabaseClient.h
index 80ccbcd..a7b3c6f 100644
--- a/icetray/icetray/abstractDatabaseClient.h
+++ b/icetray/icetray/abstractDatabaseClient.h
@@ -1,7 +1,7 @@
#ifndef ICETRAY_ABSTRACTDATABASECLIENT_H
#define ICETRAY_ABSTRACTDATABASECLIENT_H
-#include "database.h"
+#include <connectionPool.h>
#include "sqlSource.h"
#include <db/sqlSelectDeserializer.h>
#include <slicer/slicer.h>
@@ -10,7 +10,7 @@
namespace IceTray {
class DLL_PUBLIC AbstractDatabaseClient {
protected:
- AbstractDatabaseClient(const DatabasePoolPtr & d);
+ AbstractDatabaseClient(const DB::ConnectionPoolPtr & d);
template<typename Domain, typename ... Params>
inline
@@ -75,7 +75,7 @@ namespace IceTray {
BIND1OPTIONAL(std::optional);
#undef BIND1OPTIONAL
- DatabasePoolPtr db;
+ const DB::ConnectionPoolPtr db;
};
}
diff --git a/icetray/icetray/database.h b/icetray/icetray/database.h
deleted file mode 100644
index 46c5279..0000000
--- a/icetray/icetray/database.h
+++ /dev/null
@@ -1,13 +0,0 @@
-#ifndef ICETRAY_DATABASE_H
-#define ICETRAY_DATABASE_H
-
-#include <connectionPool.h>
-#include <memory>
-
-namespace IceTray {
- typedef AdHoc::ResourcePool<DB::Connection> DatabasePool;
- typedef std::shared_ptr<DatabasePool> DatabasePoolPtr;
-}
-
-#endif
-
diff --git a/icetray/icetray/icetrayService.cpp b/icetray/icetray/icetrayService.cpp
index fc25144..d53930e 100644
--- a/icetray/icetray/icetrayService.cpp
+++ b/icetray/icetray/icetrayService.cpp
@@ -66,14 +66,16 @@ namespace IceTray {
}
}
- void Service::stop()
+ void
+ Service::stop()
{
shutdownLoggers();
adp->deactivate();
adp->destroy();
}
- DatabasePoolPtr Service::getConnectionPool(const Ice::CommunicatorPtr & ic, const std::string & type, const std::string & name)
+ DB::ConnectionPoolPtr
+ Service::getConnectionPool(const Ice::CommunicatorPtr & ic, const std::string & type, const std::string & name)
{
auto p = ic->getProperties();
return PoolProvider::createNew(
@@ -92,5 +94,5 @@ extern "C" {
}
INSTANTIATEPLUGINOF(IceTray::ServiceFactory);
-INSTANTIATEFACTORY(IceTray::DatabasePool, const std::string &, const std::string &, const Ice::PropertiesPtr &);
+INSTANTIATEFACTORY(DB::BasicConnectionPool, const std::string &, const std::string &, const Ice::PropertiesPtr &);
diff --git a/icetray/icetray/icetrayService.h b/icetray/icetray/icetrayService.h
index 8973580..4bcd350 100644
--- a/icetray/icetray/icetrayService.h
+++ b/icetray/icetray/icetrayService.h
@@ -4,7 +4,7 @@
#include <IceBox/IceBox.h>
#include <factory.h>
#include <visibility.h>
-#include "database.h"
+#include <connectionPool.h>
#include "logger.h"
#include "options.h"
@@ -20,7 +20,7 @@ namespace IceTray {
void stop() override;
- DatabasePoolPtr getConnectionPool(const Ice::CommunicatorPtr & ic, const std::string & type, const std::string & prefix);
+ DB::ConnectionPoolPtr getConnectionPool(const Ice::CommunicatorPtr & ic, const std::string & type, const std::string & prefix);
static Service * getCurrent();
static Service * create(Ice::CommunicatorPtr);
@@ -43,7 +43,7 @@ namespace IceTray {
class ServiceFactory : public AdHoc::AbstractPluginImplementation {
public:
virtual Service * create() const = 0;
-
+
template<typename Impl>
class For;
};
@@ -57,7 +57,7 @@ namespace IceTray {
}
};
- typedef AdHoc::Factory<DatabasePool, const std::string &, const std::string &, const Ice::PropertiesPtr &> PoolProvider;
+ typedef AdHoc::Factory<DB::BasicConnectionPool, const std::string &, const std::string &, const Ice::PropertiesPtr &> PoolProvider;
}
#endif
diff --git a/icetray/unittests/testIceTrayServiceI.cpp b/icetray/unittests/testIceTrayServiceI.cpp
index 2f15649..1baa781 100644
--- a/icetray/unittests/testIceTrayServiceI.cpp
+++ b/icetray/unittests/testIceTrayServiceI.cpp
@@ -21,7 +21,7 @@ namespace IceTray {
}
namespace TestIceTray {
- TestIceTrayServiceI::TestIceTrayServiceI(const IceTray::DatabasePoolPtr & d) :
+ TestIceTrayServiceI::TestIceTrayServiceI(const DB::ConnectionPoolPtr & d) :
IceTray::AbstractCachingDatabaseClient(d)
{
}
diff --git a/icetray/unittests/testIceTrayServiceI.h b/icetray/unittests/testIceTrayServiceI.h
index 7a96688..d300668 100644
--- a/icetray/unittests/testIceTrayServiceI.h
+++ b/icetray/unittests/testIceTrayServiceI.h
@@ -8,7 +8,7 @@
namespace TestIceTray {
class TestIceTrayServiceI : IceTray::AbstractCachingDatabaseClient, public TestIceTrayService {
public:
- TestIceTrayServiceI(const IceTray::DatabasePoolPtr & db);
+ TestIceTrayServiceI(const DB::ConnectionPoolPtr & db);
void method1(const Ice::Current &) override;
void method2(Ice::Int id, std::string name, const Ice::Current &) override;