summaryrefslogtreecommitdiff
path: root/p2pvr/daemon
diff options
context:
space:
mode:
authorDan Goodliffe <dan@randomdan.homeip.net>2018-04-29 19:41:12 +0100
committerDan Goodliffe <dan@randomdan.homeip.net>2018-04-29 19:41:12 +0100
commit7cce01c40746c3e9925c1ecb4474b025bf2f9c1c (patch)
tree01de3cb198f5df22a2aef1971a3dc306e29fa3a5 /p2pvr/daemon
parentRelease events update transaction before beginning reschedule (diff)
downloadp2pvr-7cce01c40746c3e9925c1ecb4474b025bf2f9c1c.tar.bz2
p2pvr-7cce01c40746c3e9925c1ecb4474b025bf2f9c1c.tar.xz
p2pvr-7cce01c40746c3e9925c1ecb4474b025bf2f9c1c.zip
C++17 and Ice 3.7p2pvr-0.3.0
Updates all components to be C++17 and Ice 3.7
Diffstat (limited to 'p2pvr/daemon')
-rw-r--r--p2pvr/daemon/Jamfile.jam2
-rw-r--r--p2pvr/daemon/daemon.cpp24
-rw-r--r--p2pvr/daemon/icetraySupport.cpp4
-rw-r--r--p2pvr/daemon/icetraySupport.h15
-rw-r--r--p2pvr/daemon/maintenance.cpp20
-rw-r--r--p2pvr/daemon/maintenance.h2
-rw-r--r--p2pvr/daemon/maintenance/events.cpp41
-rw-r--r--p2pvr/daemon/maintenance/network.cpp19
-rw-r--r--p2pvr/daemon/maintenance/services.cpp21
-rw-r--r--p2pvr/daemon/p2pvr-int.ice6
-rw-r--r--p2pvr/daemon/recorder.cpp51
-rw-r--r--p2pvr/daemon/recorder.h10
-rw-r--r--p2pvr/daemon/recordings.cpp17
-rw-r--r--p2pvr/daemon/recordings.h8
-rw-r--r--p2pvr/daemon/schedules.cpp53
-rw-r--r--p2pvr/daemon/schedules.h27
-rw-r--r--p2pvr/daemon/si.cpp52
-rw-r--r--p2pvr/daemon/si.h36
-rw-r--r--p2pvr/daemon/storage.cpp13
-rw-r--r--p2pvr/daemon/storage.h6
-rw-r--r--p2pvr/daemon/unittests/Jamfile.jam7
-rw-r--r--p2pvr/daemon/unittests/mockDefs.cpp15
-rw-r--r--p2pvr/daemon/unittests/mockDefs.h16
-rw-r--r--p2pvr/daemon/unittests/mockDevices.cpp2
-rw-r--r--p2pvr/daemon/unittests/mockScheduler.cpp4
-rw-r--r--p2pvr/daemon/unittests/mockScheduler.h4
-rw-r--r--p2pvr/daemon/unittests/testErrorHandling.cpp16
-rw-r--r--p2pvr/daemon/unittests/testMaint.cpp50
-rw-r--r--p2pvr/daemon/unittests/testRecording.cpp12
-rw-r--r--p2pvr/daemon/unittests/testSched.cpp13
-rw-r--r--p2pvr/daemon/unittests/testSi.cpp38
-rw-r--r--p2pvr/daemon/unittests/testStorage.cpp6
32 files changed, 337 insertions, 273 deletions
diff --git a/p2pvr/daemon/Jamfile.jam b/p2pvr/daemon/Jamfile.jam
index f276437..df1e310 100644
--- a/p2pvr/daemon/Jamfile.jam
+++ b/p2pvr/daemon/Jamfile.jam
@@ -1,7 +1,7 @@
import icetray ;
lib slicer : : <name>slicer : : <include>/usr/include/slicer ;
-lib slicer-db : : <name>slicer-db : : <include>/usr/include/slicer ;
+lib slicer-db : : <name>slicer-db : : <include>/usr/include/slicer/slicer ;
lib boost_program_options ;
lib dbppcore ;
diff --git a/p2pvr/daemon/daemon.cpp b/p2pvr/daemon/daemon.cpp
index fbaa380..902b18f 100644
--- a/p2pvr/daemon/daemon.cpp
+++ b/p2pvr/daemon/daemon.cpp
@@ -6,6 +6,7 @@
#include "recorder.h"
#include "recordings.h"
#include <Ice/ObjectAdapter.h>
+#include <Ice/Initialize.h>
#include <tmdb-proxy.h>
#include <icetrayService.h>
@@ -36,20 +37,21 @@ class P2PvrDaemon : public IceTray::Service {
IceUtil::TimerPtr timer = new IceUtil::Timer();
auto db = getConnectionPool(ic, "postgresql", "p2pvr");
- auto devices = add<Tuners>(ic, adapter, new DevicesI(), "Devices");
- auto maintenance = add<Maintenance>(ic, adapter, new MaintenanceI(db, adapter, timer), "Maintenance");
- auto si = add<SI>(ic, adapter, new SII(db), "SI");
- auto schedules = add<Schedules>(ic, adapter, new SchedulesI(db), "Schedules");
- auto storage = add<Storage>(ic, adapter, new StorageI(db), "Storage");
- auto recorder = add<Recorder>(ic, adapter, new RecorderI(adapter, timer), "Recorder");
- auto recordings = add<Recordings>(ic, adapter, new RecordingsI(db), "Recordings");
- auto tmdb = add<TMDb::Proxy>(ic, adapter, new TMDb::Proxy(tmdbOpts->baseUrl, tmdbOpts->apikey), "TMDb");
+ auto devices = add<DevicesI>(adapter, "Devices");
+ auto maintenance = add<MaintenanceI>(adapter, "Maintenance", db, adapter, timer);
+ auto si = add<SII>(adapter, "SI", db);
+ auto schedules = add<SchedulesI>(adapter, "Schedules", db);
+ auto storage = add<StorageI>(adapter, "Storage", db);
+ auto recorder = add<RecorderI>(adapter, "Recorder", adapter, timer);
+ auto recordings = add<RecordingsI>(adapter, "Recordings", db);
+ auto tmdb = add<TMDb::Proxy>(adapter, "TMDb", tmdbOpts->baseUrl, tmdbOpts->apikey);
}
- template<typename Object>
- typename Object::ProxyType add(const Ice::CommunicatorPtr & ic, const Ice::ObjectAdapterPtr & adapter, const IceUtil::Handle<Object> & object, const std::string & name) const
+ template<typename Object, typename ... Params>
+ std::shared_ptr<typename Object::ProxyType> add(const Ice::ObjectAdapterPtr & adapter,
+ const std::string & name, const Params & ... ps) const
{
- return Object::ProxyType::uncheckedCast(adapter->add(object, ic->stringToIdentity(name)));
+ return Ice::uncheckedCast<typename Object::ProxyType>(adapter->add(std::make_shared<Object>(ps...), Ice::stringToIdentity(name)));
}
};
diff --git a/p2pvr/daemon/icetraySupport.cpp b/p2pvr/daemon/icetraySupport.cpp
index 8f81ec4..646896f 100644
--- a/p2pvr/daemon/icetraySupport.cpp
+++ b/p2pvr/daemon/icetraySupport.cpp
@@ -1,9 +1,9 @@
#include "icetraySupport.h"
-#include "commonHelpers.h"
+#include "chronoHelpers.h"
template<>
void
-IceTray::AbstractDatabaseClient::bind1<Common::DateTime>(int x, DB::Command * cmd, const Common::DateTime & dt)
+IceTray::AbstractDatabaseClient::bind1<Chrono::DateTime>(int x, DB::Command * cmd, const Chrono::DateTime & dt)
{
cmd->bindParamT(x, *dt);
}
diff --git a/p2pvr/daemon/icetraySupport.h b/p2pvr/daemon/icetraySupport.h
index 4174665..c9b633b 100644
--- a/p2pvr/daemon/icetraySupport.h
+++ b/p2pvr/daemon/icetraySupport.h
@@ -2,12 +2,23 @@
#define P2PVR_ICETRAY_SUPPORT_H
#include <abstractDatabaseClient.h>
-#include <common.h>
+#include <chrono.h>
namespace IceTray {
template<>
void
- AbstractDatabaseClient::bind1<Common::DateTime>(int x, DB::Command * cmd, const Common::DateTime &);
+ AbstractDatabaseClient::bind1<Chrono::DateTime>(int x, DB::Command * cmd, const Chrono::DateTime &);
+}
+
+namespace std {
+ template<typename X>
+ ostream & operator<<(ostream & s, const Ice::optional<X> & x)
+ {
+ if (x) {
+ s << *x;
+ }
+ return s;
+ }
}
#endif
diff --git a/p2pvr/daemon/maintenance.cpp b/p2pvr/daemon/maintenance.cpp
index 6abad00..58d9dc2 100644
--- a/p2pvr/daemon/maintenance.cpp
+++ b/p2pvr/daemon/maintenance.cpp
@@ -6,8 +6,10 @@
#include <linux/dvb/frontend.h>
#include <cxxabi.h>
#include <scopeExit.h>
+#include <boost/bind.hpp>
namespace po = boost::program_options;
+using namespace IceTray::Logging;
namespace P2PVR {
MaintenanceI::Options::Options() : IceTray::Options("P2PVR Maintenance options") { }
@@ -24,11 +26,11 @@ ICETRAY_OPTIONS(MaintenanceI::Options,
IceTray::Logging::LoggerPtr MaintenanceI::logger(LOGMANAGER()->getLogger<MaintenanceI>());
-MaintenanceI::MaintenanceI(IceTray::DatabasePoolPtr db, Ice::ObjectAdapterPtr a, IceUtil::TimerPtr t) :
+MaintenanceI::MaintenanceI(DB::ConnectionPoolPtr db, Ice::ObjectAdapterPtr a, IceUtil::TimerPtr t) :
IceTray::AbstractDatabaseClient(db),
adapter(a),
timer(t),
- clientCheck(new BindTimerTask(boost::bind(&MaintenanceI::ScheduledUpdate, this))),
+ clientCheck(std::make_shared<BindTimerTask>(boost::bind(&MaintenanceI::ScheduledUpdate, this))),
lastUpdateNetwork(0),
lastUpdateServices(0),
lastUpdateEvents(0),
@@ -62,7 +64,7 @@ MaintenanceI::UpdateAll(short type, const Ice::Current & ice)
void
MaintenanceI::ScheduledUpdate()
{
- logger->messagebf(LOG::DEBUG, "%s: triggered", __PRETTY_FUNCTION__);
+ logger->messagebf(LogLevel::DEBUG, "%s: triggered", __PRETTY_FUNCTION__);
if (!updateRunning) {
std::thread update([this] {
try {
@@ -70,29 +72,29 @@ MaintenanceI::ScheduledUpdate()
updateRunning = true;
time_t now = time(NULL);
if (lastUpdateNetwork < now - options->periodUpdateNetwork) {
- logger->messagebf(LOG::INFO, "%s: updating network", __PRETTY_FUNCTION__);
+ logger->messagebf(LogLevel::INFO, "%s: updating network", __PRETTY_FUNCTION__);
this->UpdateNetwork(FE_OFDM, Ice::Current());
time(&lastUpdateNetwork);
}
if (lastUpdateServices < now - options->periodUpdateServices) {
- logger->messagebf(LOG::INFO, "%s: updating services", __PRETTY_FUNCTION__);
+ logger->messagebf(LogLevel::INFO, "%s: updating services", __PRETTY_FUNCTION__);
this->UpdateServices(Ice::Current());
time(&lastUpdateServices);
}
if (lastUpdateEvents < now - options->periodUpdateEvents) {
- logger->messagebf(LOG::INFO, "%s: updating events", __PRETTY_FUNCTION__);
+ logger->messagebf(LogLevel::INFO, "%s: updating events", __PRETTY_FUNCTION__);
this->UpdateEvents(Ice::Current());
time(&lastUpdateEvents);
}
- logger->messagebf(LOG::DEBUG, "%s: completed", __PRETTY_FUNCTION__);
+ logger->messagebf(LogLevel::DEBUG, "%s: completed", __PRETTY_FUNCTION__);
}
catch (const std::exception & ex) {
char * buf = __cxxabiv1::__cxa_demangle(typeid(ex).name(), NULL, NULL, NULL);
- logger->messagebf(LOG::ERR, "%s: failed %s: %s", __PRETTY_FUNCTION__, buf, ex.what());
+ logger->messagebf(LogLevel::ERR, "%s: failed %s: %s", __PRETTY_FUNCTION__, buf, ex.what());
free(buf);
}
catch (...) {
- logger->messagebf(LOG::ERR, "%s: failed (unknown exception)", __PRETTY_FUNCTION__);
+ logger->messagebf(LogLevel::ERR, "%s: failed (unknown exception)", __PRETTY_FUNCTION__);
}
});
update.detach();
diff --git a/p2pvr/daemon/maintenance.h b/p2pvr/daemon/maintenance.h
index ff53ca6..ccbafca 100644
--- a/p2pvr/daemon/maintenance.h
+++ b/p2pvr/daemon/maintenance.h
@@ -20,7 +20,7 @@ class MaintenanceI : public Maintenance, public IceTray::AbstractDatabaseClient
bool scanOnStart;
};
- MaintenanceI(IceTray::DatabasePoolPtr db, Ice::ObjectAdapterPtr, IceUtil::TimerPtr);
+ MaintenanceI(DB::ConnectionPoolPtr db, Ice::ObjectAdapterPtr, IceUtil::TimerPtr);
void UpdateAll(const Ice::Current &);
void UpdateAll(short type, const Ice::Current &);
diff --git a/p2pvr/daemon/maintenance/events.cpp b/p2pvr/daemon/maintenance/events.cpp
index 30e0a83..18538a4 100644
--- a/p2pvr/daemon/maintenance/events.cpp
+++ b/p2pvr/daemon/maintenance/events.cpp
@@ -1,8 +1,9 @@
#include "../maintenance.h"
#include <siParsers/event.h>
#include <Ice/Communicator.h>
+#include <Ice/Initialize.h>
#include <temporaryIceAdapterObject.h>
-#include <commonHelpers.h>
+#include <chronoHelpers.h>
#include <db/sqlTablePatchSerializer.h>
#include <tablepatch.h>
#include <sqlWriter.h>
@@ -10,6 +11,8 @@
#include "sql/maintenance/pruneEvents.sql.h"
#include "sql/si/serviceIdsWithEit.sql.h"
+using namespace IceTray::Logging;
+
namespace P2PVR {
class SiEventsStream : public Slicer::Stream<::DVBSI::EventPtr> {
private:
@@ -24,7 +27,7 @@ class SiEventsStream : public Slicer::Stream<::DVBSI::EventPtr> {
bool HandleTable(const ::DVBSI::EventPtr & e) override
{
- logger->messagebf(LOG::DEBUG, "Service Id: %d Program Id: %d Title: %s Time: %s - %s",
+ logger->messagebf(LogLevel::DEBUG, "Service Id: %d Program Id: %d Title: %s Time: %s - %s",
e->ServiceId, e->EventId, e->Title, e->StartTime, e->StopTime);
consumer(e);
return false;
@@ -33,7 +36,7 @@ class SiEventsStream : public Slicer::Stream<::DVBSI::EventPtr> {
static RequiredContentIds getIds(DB::Connection * db)
{
auto sel = sql::si::serviceIdsWithEit.select(db);
- auto ids = Slicer::DeserializeAny<Slicer::SqlSelectDeserializer, std::vector<Ice::Int>>(*sel);
+ auto ids = Slicer::DeserializeAny<Slicer::SqlSelectDeserializer, std::vector<Ice::Int>>(sel.get());
return {ids.begin(), ids.end()};
}
@@ -53,8 +56,8 @@ class SiEventsStream : public Slicer::Stream<::DVBSI::EventPtr> {
void Produce(const Consumer & ch) override
{
auto ic = ice.adapter->getCommunicator();
- auto devs = TunersPrx::checkedCast(ice.adapter->createProxy(ic->stringToIdentity("Devices")));
- auto si = SIPrx::checkedCast(ice.adapter->createProxy(ic->stringToIdentity("SI")));
+ auto devs = Ice::checkedCast<TunersPrx>(ice.adapter->createProxy(Ice::stringToIdentity("Devices")));
+ auto si = Ice::checkedCast<SIPrx>(ice.adapter->createProxy(Ice::stringToIdentity("SI")));
if (!devs || !si) {
throw std::runtime_error("bad proxy(s)");
}
@@ -63,9 +66,9 @@ class SiEventsStream : public Slicer::Stream<::DVBSI::EventPtr> {
if (!delivery) {
throw std::runtime_error("no delivery methods");
}
- logger->messagebf(LOG::DEBUG, "%s: Getting a tuner", __PRETTY_FUNCTION__);
- logger->messagebf(LOG::DEBUG, "%s: Fetching events", __PRETTY_FUNCTION__);
- TemporaryIceAdapterObject<RawDataClient> parser(ice.adapter, new SiEventsHandler(ch, db, logger));
+ logger->messagebf(LogLevel::DEBUG, "%s: Getting a tuner", __PRETTY_FUNCTION__);
+ logger->messagebf(LogLevel::DEBUG, "%s: Fetching events", __PRETTY_FUNCTION__);
+ TemporaryIceAdapterObject<RawDataClient> parser(ice.adapter, std::make_shared<SiEventsHandler>(ch, db, logger));
devs->SendEventInformation(delivery, parser);
}
@@ -84,19 +87,19 @@ MaintenanceI::UpdateEvents(const Ice::Current & ice)
SiEventsStream stream(ice, dbc.get(), logger);
- auto tx = std::make_unique<DB::TransactionScope>(dbc.get());
- DB::TablePatch tp;
- tp.dest = "events";
- tp.insteadOfDelete = new DB::StaticSqlWriter("current = false");
- tp.where = new DB::StaticSqlWriter("a.current");
- Slicer::SerializeAny<Slicer::SqlTablePatchSerializer>(stream, dbc.get(), tp);
-
+ {
+ DB::TransactionScope tx(*dbc.get());
+ DB::TablePatch tp;
+ tp.dest = "events";
+ tp.insteadOfDelete = new DB::StaticSqlWriter("current = false");
+ tp.where = new DB::StaticSqlWriter("a.current");
+ Slicer::SerializeAny<Slicer::SqlTablePatchSerializer>(stream, dbc.get(), tp);
- sql::maintenance::pruneEvents.modify(dbc.get())->execute();
- tx = nullptr;
- logger->messagebf(LOG::INFO, "%s: Updated events", __PRETTY_FUNCTION__);
+ sql::maintenance::pruneEvents.modify(dbc.get())->execute();
+ logger->messagebf(LogLevel::INFO, "%s: Updated events", __PRETTY_FUNCTION__);
+ }
- auto sch = SchedulesPrx::checkedCast(ice.adapter->createProxy(ic->stringToIdentity("Schedules")));
+ auto sch = Ice::checkedCast<SchedulesPrx>(ice.adapter->createProxy(Ice::stringToIdentity("Schedules")));
sch->DoReschedule();
}
}
diff --git a/p2pvr/daemon/maintenance/network.cpp b/p2pvr/daemon/maintenance/network.cpp
index 2f74050..f128eb8 100644
--- a/p2pvr/daemon/maintenance/network.cpp
+++ b/p2pvr/daemon/maintenance/network.cpp
@@ -1,11 +1,14 @@
#include "../maintenance.h"
#include <siParsers/network.h>
#include <Ice/Communicator.h>
+#include <Ice/Initialize.h>
#include <temporaryIceAdapterObject.h>
#include <tablepatch.h>
#include <db/sqlInsertSerializer.h>
#include <db/sqlTablePatchSerializer.h>
+using namespace IceTray::Logging;
+
namespace P2PVR {
class SiNetworkInformationMerger : public DVBSI::SiNetworkInformationParser {
public:
@@ -17,14 +20,14 @@ class SiNetworkInformationMerger : public DVBSI::SiNetworkInformationParser {
bool HandleTable(const ::DVBSI::NetworkPtr & n)
{
- logger->messagebf(LOG::DEBUG, "Network Id: %d Name: %s", n->NetworkId, *n->Name);
+ logger->messagebf(LogLevel::DEBUG, "Network Id: %d Name: %s", n->NetworkId, *n->Name);
for (const auto & ts : n->TransportStreams) {
- logger->messagebf(LOG::DEBUG, "\tTransport Stream Id: %d Original Network Id: %d", ts->TransportStreamId, ts->OriginalNetworkId);
+ logger->messagebf(LogLevel::DEBUG, "\tTransport Stream Id: %d Original Network Id: %d", ts->TransportStreamId, ts->OriginalNetworkId);
for (const auto & s : ts->Services) {
- logger->messagebf(LOG::DEBUG, "\t\tService Id: %d Service Type: %d", s.ServiceId, s.Type);
+ logger->messagebf(LogLevel::DEBUG, "\t\tService Id: %d Service Type: %d", s.ServiceId, s.Type);
}
if (ts->Terrestrial) {
- logger->messagebf(LOG::DEBUG, "\t\tDVB-T: Frequency: %d", ts->Terrestrial->Frequency);
+ logger->messagebf(LogLevel::DEBUG, "\t\tDVB-T: Frequency: %d", ts->Terrestrial->Frequency);
}
}
@@ -80,16 +83,16 @@ MaintenanceI::UpdateNetwork(short, const Ice::Current & ice)
{
auto dbc = db->get();
auto ic = ice.adapter->getCommunicator();
- auto devs = TunersPrx::checkedCast(ice.adapter->createProxy(ic->stringToIdentity("Devices")));
- auto si = SIPrx::checkedCast(ice.adapter->createProxy(ic->stringToIdentity("SI")));
- auto siparser = new SiNetworkInformationMerger(dbc.get(), logger);
+ auto devs = Ice::checkedCast<TunersPrx>(ice.adapter->createProxy(Ice::stringToIdentity("Devices")));
+ auto si = Ice::checkedCast<SIPrx>(ice.adapter->createProxy(Ice::stringToIdentity("SI")));
+ auto siparser = std::make_shared<SiNetworkInformationMerger>(dbc.get(), logger);
TemporaryIceAdapterObject<RawDataClient> parser(ice.adapter, siparser);
if (!devs) {
throw std::runtime_error("bad proxy(s)");
}
- DB::TransactionScope tx(dbc.get());
+ DB::TransactionScope tx(*dbc.get());
auto transport = si->GetDeliveryForSi();
if (transport) {
diff --git a/p2pvr/daemon/maintenance/services.cpp b/p2pvr/daemon/maintenance/services.cpp
index 288dd99..8a0ef52 100644
--- a/p2pvr/daemon/maintenance/services.cpp
+++ b/p2pvr/daemon/maintenance/services.cpp
@@ -2,12 +2,15 @@
#include <siParsers/service.h>
#include <tablepatch.h>
#include <Ice/Communicator.h>
+#include <Ice/Initialize.h>
#include <temporaryIceAdapterObject.h>
#include <slicer/slicer.h>
#include <db/sqlTablePatchSerializer.h>
#include <tablepatch.h>
#include <sql/si/allDeliveriesTransportStreamId.sql.h>
+using namespace IceTray::Logging;
+
namespace P2PVR {
class SiServicesMerger : public DVBSI::SiServicesParser {
public:
@@ -20,9 +23,9 @@ class SiServicesMerger : public DVBSI::SiServicesParser {
bool HandleTable(const ::DVBSI::TransportStreamPtr & ts)
{
- logger->messagebf(LOG::DEBUG, "Transport Stream Id: %d Original Network Id: %s", ts->TransportStreamId, ts->OriginalNetworkId);
+ logger->messagebf(LogLevel::DEBUG, "Transport Stream Id: %d Original Network Id: %s", ts->TransportStreamId, ts->OriginalNetworkId);
for (const auto & s : ts->Services) {
- logger->messagebf(LOG::DEBUG, "\tService Id: %d Name: %s Type: %d, Provider: %s, DefaultAuthority: %s, RunningStatus %d FreeCaMode %d",
+ logger->messagebf(LogLevel::DEBUG, "\tService Id: %d Name: %s Type: %d, Provider: %s, DefaultAuthority: %s, RunningStatus %d FreeCaMode %d",
s->ServiceId, (s->Name ? *s->Name : "?"), (s->Type ? *s->Type : -1),
(s->ProviderName ? *s->ProviderName : "?"), (s->DefaultAuthority ? *s->DefaultAuthority : "?"),
s->RunningStatus, s->FreeCaMode);
@@ -39,7 +42,7 @@ class SiServicesMerger : public DVBSI::SiServicesParser {
static RequiredContentIds getIds(DB::Connection * db)
{
auto sel = sql::si::allDeliveriesTransportStreamId.select(db);
- auto ids = Slicer::DeserializeAny<Slicer::SqlSelectDeserializer, std::vector<Ice::Int>>(*sel);
+ auto ids = Slicer::DeserializeAny<Slicer::SqlSelectDeserializer, std::vector<Ice::Int>>(sel.get());
return {ids.begin(), ids.end()};
}
@@ -52,15 +55,15 @@ void
MaintenanceI::UpdateServices(const Ice::Current & ice)
{
auto ic = ice.adapter->getCommunicator();
- auto devs = TunersPrx::checkedCast(ice.adapter->createProxy(ic->stringToIdentity("Devices")));
- auto si = SIPrx::checkedCast(ice.adapter->createProxy(ic->stringToIdentity("SI")));
+ auto devs = Ice::checkedCast<TunersPrx>(ice.adapter->createProxy(Ice::stringToIdentity("Devices")));
+ auto si = Ice::checkedCast<SIPrx>(ice.adapter->createProxy(Ice::stringToIdentity("SI")));
if (!devs || !si) {
throw std::runtime_error("bad proxy(s)");
}
auto dbc = db->get();
- auto siparser = new SiServicesMerger(logger, dbc.get());
+ auto siparser = std::make_shared<SiServicesMerger>(logger, dbc.get());
TemporaryIceAdapterObject<RawDataClient> parser(ice.adapter, siparser);
auto delivery = si->GetDeliveryForSi();
@@ -68,10 +71,10 @@ MaintenanceI::UpdateServices(const Ice::Current & ice)
throw std::runtime_error("no delivery methods");
}
- DB::TransactionScope tx(dbc.get());
- logger->messagebf(LOG::DEBUG, "%s: Fetching service list", __PRETTY_FUNCTION__);
+ DB::TransactionScope tx(*dbc.get());
+ logger->messagebf(LogLevel::DEBUG, "%s: Fetching service list", __PRETTY_FUNCTION__);
devs->SendServiceDescriptions(delivery, parser);
- logger->messagebf(LOG::INFO, "%s: Updated service list", __PRETTY_FUNCTION__);
+ logger->messagebf(LogLevel::INFO, "%s: Updated service list", __PRETTY_FUNCTION__);
}
}
diff --git a/p2pvr/daemon/p2pvr-int.ice b/p2pvr/daemon/p2pvr-int.ice
index 9a99239..8a6ae62 100644
--- a/p2pvr/daemon/p2pvr-int.ice
+++ b/p2pvr/daemon/p2pvr-int.ice
@@ -1,4 +1,4 @@
-#include <common.ice>
+#include <chrono.ice>
#include <dvbsi.ice>
module P2PVR {
@@ -6,8 +6,8 @@ module P2PVR {
string What;
int EventUid;
int TransportStreamId;
- Common::DateTime StartTime;
- Common::DateTime StopTime;
+ Chrono::DateTime StartTime;
+ Chrono::DateTime StopTime;
int Priority;
int ScheduleId;
};
diff --git a/p2pvr/daemon/recorder.cpp b/p2pvr/daemon/recorder.cpp
index f32eb73..25709c8 100644
--- a/p2pvr/daemon/recorder.cpp
+++ b/p2pvr/daemon/recorder.cpp
@@ -2,14 +2,16 @@
#include "bindTimerTask.h"
#include <boost/bind.hpp>
#include <logger.h>
-#include <commonHelpers.h>
+#include <chronoHelpers.h>
#include <scopeExit.h>
#include "serviceStreamer.h"
#include "storage.h"
#include "muxer.h"
#include <boost/lexical_cast.hpp>
+#include <Ice/Initialize.h>
namespace po = boost::program_options;
+using namespace IceTray::Logging;
namespace P2PVR {
IceTray::Logging::LoggerPtr RecorderI::logger(LOGMANAGER()->getLogger<RecorderI>());
@@ -18,10 +20,21 @@ RecorderI::RecorderI(Ice::ObjectAdapterPtr a, IceUtil::TimerPtr t) :
adapter(a),
timer(t)
{
- logger->message(LOG::DEBUG, __PRETTY_FUNCTION__);
+ logger->message(LogLevel::DEBUG, __PRETTY_FUNCTION__);
RefreshSchedules(Ice::Current());
}
+RecorderI::Current::Current(RawDataClientPrxPtr str, ServiceStreamerPtr strm,
+ SchedulePtr sch, ::DVBSI::ServicePtr srv, EventPtr e, IceUtil::TimerTaskPtr st) :
+ store(str),
+ stream(strm),
+ schedule(sch),
+ service(srv),
+ event(e),
+ stopTimer(st)
+{
+}
+
void
RecorderI::RefreshSchedules(const Ice::Current &)
{
@@ -30,8 +43,8 @@ RecorderI::RefreshSchedules(const Ice::Current &)
timer->cancel(t);
}
pendingRecordings.clear();
- auto schedules = SchedulesPrx::checkedCast(adapter->createProxy(adapter->getCommunicator()->stringToIdentity("Schedules")));
- auto si = SIPrx::checkedCast(adapter->createProxy(adapter->getCommunicator()->stringToIdentity("SI")));
+ auto schedules = Ice::checkedCast<SchedulesPrx>(adapter->createProxy(Ice::stringToIdentity("Schedules")));
+ auto si = Ice::checkedCast<SIPrx>(adapter->createProxy(Ice::stringToIdentity("SI")));
for (const auto & s : schedules->GetScheduledToRecord()) {
if (std::find_if(currentRecordings.begin(), currentRecordings.end(), [&s](const CurrentPtr & c) {
return s->ScheduleId == c->schedule->ScheduleId && s->EventUid == c->event->EventUid;
@@ -43,10 +56,10 @@ RecorderI::RefreshSchedules(const Ice::Current &)
auto service = si->GetService(event->ServiceId);
auto startIn = std::max<time_t>((*event->StartTime - *schedule->Early - boost::posix_time::second_clock::universal_time()).total_seconds(), 0);
- IceUtil::TimerTaskPtr startTimer = new BindTimerTask(boost::bind(&RecorderI::StartRecording, this, schedule, service, event));
+ IceUtil::TimerTaskPtr startTimer = std::make_shared<BindTimerTask>(boost::bind(&RecorderI::StartRecording, this, schedule, service, event));
timer->schedule(startTimer, IceUtil::Time::seconds(startIn));
pendingRecordings.push_back(startTimer);
- logger->messagebf(LOG::DEBUG, "Recording %s scheduled for %s seconds", event->Title, startIn);
+ logger->messagebf(LogLevel::DEBUG, "Recording %s scheduled for %s seconds", event->Title, startIn);
}
}
@@ -54,39 +67,39 @@ void
RecorderI::StartRecording(SchedulePtr schedule, ::DVBSI::ServicePtr service, EventPtr event)
{
std::lock_guard<std::mutex> g(lock);
- auto storage = StoragePrx::checkedCast(adapter->createProxy(adapter->getCommunicator()->stringToIdentity("Storage")));
- auto recordings = RecordingsPrx::checkedCast(adapter->createProxy(adapter->getCommunicator()->stringToIdentity("Recordings")));
- auto devices = TunersPrx::checkedCast(adapter->createProxy(adapter->getCommunicator()->stringToIdentity("Devices")));
- auto si = SIPrx::checkedCast(adapter->createProxy(adapter->getCommunicator()->stringToIdentity("SI")));
+ auto storage = Ice::checkedCast<StoragePrx>(adapter->createProxy(Ice::stringToIdentity("Storage")));
+ auto recordings = Ice::checkedCast<RecordingsPrx>(adapter->createProxy(Ice::stringToIdentity("Recordings")));
+ auto devices = Ice::checkedCast<TunersPrx>(adapter->createProxy(Ice::stringToIdentity("Devices")));
+ auto si = Ice::checkedCast<SIPrx>(adapter->createProxy(Ice::stringToIdentity("SI")));
- auto recordingId = recordings->NewRecording(new Recording(0, schedule->ScheduleId, event->EventUid));
+ auto recordingId = recordings->NewRecording(std::make_shared<Recording>(0, schedule->ScheduleId, event->EventUid));
auto target = storage->OpenForWrite(recordingId);
- auto ss = ServiceStreamerPtr(new ServiceStreamer(service->ServiceId, target, devices, si, adapter));
+ auto ss = ServiceStreamerPtr(std::make_shared<ServiceStreamer>(service->ServiceId, target, devices, si, adapter));
ss->Start();
- logger->messagebf(LOG::INFO, "Started recording %s (%s - %s) on %s (%d)",
+ logger->messagebf(LogLevel::INFO, "Started recording %s (%s - %s) on %s (%d)",
event->Title, event->StartTime, event->StopTime,
service->Name ? *service->Name : "<no name>", service->ServiceId);
- auto newCurrent = CurrentPtr(new Current({target, ss, schedule, service, event, IceUtil::TimerTaskPtr()}));
+ auto newCurrent = std::make_shared<Current>(target, ss, schedule, service, event, IceUtil::TimerTaskPtr());
currentRecordings.insert(newCurrent);
auto stopIn = (*event->StopTime + *schedule->Late - boost::posix_time::second_clock::universal_time()).total_seconds();
- newCurrent->stopTimer = new BindTimerTask(boost::bind(&RecorderI::StopRecording, this, newCurrent));
+ newCurrent->stopTimer = std::make_shared<BindTimerTask>(boost::bind(&RecorderI::StopRecording, this, newCurrent));
timer->schedule(newCurrent->stopTimer, IceUtil::Time::seconds(stopIn));
- logger->messagebf(LOG::DEBUG, "Recording %s scheduled stop in %s seconds", event->Title, stopIn);
+ logger->messagebf(LogLevel::DEBUG, "Recording %s scheduled stop in %s seconds", event->Title, stopIn);
}
void
RecorderI::StopRecording(CurrentPtr c)
{
std::lock_guard<std::mutex> g(lock);
- logger->messagebf(LOG::DEBUG, "Stopping %s", c->event->Title);
+ logger->messagebf(LogLevel::DEBUG, "Stopping %s", c->event->Title);
c->stream->Stop();
currentRecordings.erase(c);
- auto storage = StoragePrx::checkedCast(adapter->createProxy(adapter->getCommunicator()->stringToIdentity("Storage")));
+ auto storage = Ice::checkedCast<StoragePrx>(adapter->createProxy(Ice::stringToIdentity("Storage")));
storage->Close(c->store);
- logger->messagebf(LOG::DEBUG, "Stopped %s", c->event->Title);
+ logger->messagebf(LogLevel::DEBUG, "Stopped %s", c->event->Title);
}
}
diff --git a/p2pvr/daemon/recorder.h b/p2pvr/daemon/recorder.h
index b2d581c..8a4fd77 100644
--- a/p2pvr/daemon/recorder.h
+++ b/p2pvr/daemon/recorder.h
@@ -15,14 +15,20 @@ class RecorderI : public Recorder {
class Current {
public:
- RawDataClientPrx store;
+ Current(RawDataClientPrxPtr store,
+ ServiceStreamerPtr stream,
+ SchedulePtr schedule,
+ ::DVBSI::ServicePtr service,
+ EventPtr event,
+ IceUtil::TimerTaskPtr stopTimer);
+ RawDataClientPrxPtr store;
ServiceStreamerPtr stream;
SchedulePtr schedule;
::DVBSI::ServicePtr service;
EventPtr event;
IceUtil::TimerTaskPtr stopTimer;
};
- typedef boost::shared_ptr<Current> CurrentPtr;
+ typedef std::shared_ptr<Current> CurrentPtr;
typedef std::set<CurrentPtr> Currents;
RecorderI(Ice::ObjectAdapterPtr a, IceUtil::TimerPtr);
diff --git a/p2pvr/daemon/recordings.cpp b/p2pvr/daemon/recordings.cpp
index 0ab2e46..5bb0fd0 100644
--- a/p2pvr/daemon/recordings.cpp
+++ b/p2pvr/daemon/recordings.cpp
@@ -6,23 +6,26 @@
#include <slicer/db/sqlInsertSerializer.h>
#include <sql/recordings/deleteById.sql.h>
#include <sql/recordings/getAll.sql.h>
+#include <modifycommand.h>
+
+using namespace IceTray::Logging;
namespace P2PVR {
IceTray::Logging::LoggerPtr RecordingsI::logger(LOGMANAGER()->getLogger<RecordingsI>());
-RecordingsI::RecordingsI(IceTray::DatabasePoolPtr db) :
+RecordingsI::RecordingsI(DB::ConnectionPoolPtr db) :
IceTray::AbstractDatabaseClient(db)
{
}
Ice::Int
-RecordingsI::NewRecording(const RecordingPtr & r, const Ice::Current &)
+RecordingsI::NewRecording(const RecordingPtr r, const Ice::Current &)
{
auto dbc = db->get();
- logger->messagebf(LOG::INFO, "%s: Creating new recording for %d (EventUid %d)", __PRETTY_FUNCTION__, r->RecordingId, r->EventUid);
- DB::TransactionScope tx(dbc.get());
+ logger->messagebf(LogLevel::INFO, "%s: Creating new recording for %d (EventUid %d)", __PRETTY_FUNCTION__, r->RecordingId, r->EventUid);
+ DB::TransactionScope tx(*dbc.get());
Slicer::SerializeAny<Slicer::SqlFetchIdInsertSerializer>(r, dbc.get(), "recordings");
- logger->messagebf(LOG::INFO, "%s: Created recording Id: %d", __PRETTY_FUNCTION__, r->RecordingId);
+ logger->messagebf(LogLevel::INFO, "%s: Created recording Id: %d", __PRETTY_FUNCTION__, r->RecordingId);
return r->RecordingId;
}
@@ -30,7 +33,7 @@ void
RecordingsI::DeleteRecording(int id, const Ice::Current &)
{
auto dbc = db->get();
- logger->messagebf(LOG::INFO, "%s: Deleting recording Id: %d", __PRETTY_FUNCTION__, id);
+ logger->messagebf(LogLevel::INFO, "%s: Deleting recording Id: %d", __PRETTY_FUNCTION__, id);
auto del = sql::recordings::deleteById.modify(dbc.get());
del->bindParamI(0, id);
del->execute();
@@ -39,7 +42,7 @@ RecordingsI::DeleteRecording(int id, const Ice::Current &)
RecordingList
RecordingsI::GetRecordings(const Ice::Current &)
{
- logger->message(LOG::DEBUG, __PRETTY_FUNCTION__);
+ logger->message(LogLevel::DEBUG, __PRETTY_FUNCTION__);
return fetch<RecordingList>(sql::recordings::getAll);
}
}
diff --git a/p2pvr/daemon/recordings.h b/p2pvr/daemon/recordings.h
index e705e43..2246f03 100644
--- a/p2pvr/daemon/recordings.h
+++ b/p2pvr/daemon/recordings.h
@@ -9,11 +9,11 @@
namespace P2PVR {
class RecordingsI : public Recordings, public IceTray::AbstractDatabaseClient {
public:
- RecordingsI(IceTray::DatabasePoolPtr db);
+ RecordingsI(DB::ConnectionPoolPtr db);
- Ice::Int NewRecording(const RecordingPtr & rec, const Ice::Current &);
- void DeleteRecording(int recordingId, const Ice::Current &);
- RecordingList GetRecordings(const Ice::Current &);
+ Ice::Int NewRecording(const RecordingPtr rec, const Ice::Current &) override;
+ void DeleteRecording(int recordingId, const Ice::Current &) override;
+ RecordingList GetRecordings(const Ice::Current &) override;
private:
static IceTray::Logging::LoggerPtr logger;
diff --git a/p2pvr/daemon/schedules.cpp b/p2pvr/daemon/schedules.cpp
index d948603..273aa38 100644
--- a/p2pvr/daemon/schedules.cpp
+++ b/p2pvr/daemon/schedules.cpp
@@ -1,7 +1,7 @@
#include "schedules.h"
#include <logger.h>
#include <Ice/Ice.h>
-#include "commonHelpers.h"
+#include "chronoHelpers.h"
#include <boost/date_time/posix_time/posix_time.hpp>
#include <factory.impl.h>
#include <slicer/db/sqlSelectDeserializer.h>
@@ -18,6 +18,7 @@
#include "sql/schedules/scheduledToRecord.sql.h"
namespace po = boost::program_options;
+using namespace IceTray::Logging;
namespace P2PVR {
IceTray::Logging::LoggerPtr SchedulesI::logger(LOGMANAGER()->getLogger<SchedulesI>());
@@ -164,7 +165,7 @@ EpisodeGroup::SuggestWithFeedback(const Showings & showings)
}
}
-SchedulesI::SchedulesI(IceTray::DatabasePoolPtr db) :
+SchedulesI::SchedulesI(DB::ConnectionPoolPtr db) :
IceTray::AbstractDatabaseClient(db)
{
}
@@ -178,7 +179,7 @@ SchedulesI::GetEpisodeIntersects(Episodes & all, Episodes & grouped)
for (const auto & gs : ge->showings) {
for (const auto & as : ae->showings) {
if (gs->period.intersects(as->period)) {
- logger->messagebf(LOG::DEBUG, " added %s", ae->what);
+ logger->messagebf(LogLevel::DEBUG, " added %s", ae->what);
grouped.push_back(ae);
all.erase(aei);
GetEpisodeIntersects(all, grouped);
@@ -194,7 +195,7 @@ void
SchedulesI::DoReschedule(const Ice::Current & ice)
{
auto ic = ice.adapter->getCommunicator();
- auto devs = P2PVR::TunersPrx::checkedCast(ice.adapter->createProxy(ic->stringToIdentity("Devices")));
+ auto devs = Ice::checkedCast<P2PVR::TunersPrx>(ice.adapter->createProxy(Ice::stringToIdentity("Devices")));
unsigned int tunerCount = devs->TunerCount();
// Load list from database
@@ -206,18 +207,18 @@ SchedulesI::DoReschedule(const Ice::Current & ice)
int minPriority = 0;
for (const auto & c : episodes) {
if (!cur || cur->what != c->What) {
- cur = new Episode(c->What);
+ cur = std::make_shared<Episode>(c->What);
scheduleList.push_back(cur);
}
- ShowingPtr s = new Showing(c->EventUid, c->TransportStreamId, c->ScheduleId,
+ ShowingPtr s = std::make_shared<Showing>(c->EventUid, c->TransportStreamId, c->ScheduleId,
*c->StartTime, *c->StopTime, c->Priority, cur.get());
minPriority = std::min(minPriority, s->priority);
cur->showings.push_back(s);
allShowings.push_back(s);
}
- logger->messagebf(LOG::DEBUG, "%d episodes created, %s showings", scheduleList.size(), allShowings.size());
+ logger->messagebf(LogLevel::DEBUG, "%d episodes created, %s showings", scheduleList.size(), allShowings.size());
for (const auto & e : scheduleList) {
- logger->messagebf(LOG::DEBUG, " %s", e->what);
+ logger->messagebf(LogLevel::DEBUG, " %s", e->what);
for (const auto & s : e->showings) {
s->priority += 1 - minPriority;
e->priority += s->priority;
@@ -229,7 +230,7 @@ SchedulesI::DoReschedule(const Ice::Current & ice)
// Solve
while (!scheduleList.empty()) {
auto work = scheduleList.begin();
- logger->messagebf(LOG::DEBUG, "start %s", (*work)->what);
+ logger->messagebf(LogLevel::DEBUG, "start %s", (*work)->what);
Episodes group;
group.push_back(*work);
scheduleList.erase(work);
@@ -240,15 +241,15 @@ SchedulesI::DoReschedule(const Ice::Current & ice)
return a->what < b->what;
});
- logger->messagebf(LOG::DEBUG, "group created with %d episodes", group.size());
+ logger->messagebf(LogLevel::DEBUG, "group created with %d episodes", group.size());
double total = 1;
// Measure and add the optional to not record
for (const auto & e : group) {
- logger->messagebf(LOG::DEBUG, " %d * %d:%s", e->showings.size(), e->priority, e->what);
+ logger->messagebf(LogLevel::DEBUG, " %d * %d:%s", e->showings.size(), e->priority, e->what);
e->showings.push_back(NULL);
total *= e->showings.size();
}
- logger->messagebf(LOG::DEBUG, "group complexity of %d options", total);
+ logger->messagebf(LogLevel::DEBUG, "group complexity of %d options", total);
EpisodeGroupPtr sched = EpisodeGroupPtr(EpisodeGroupFactory::createNew(options->SchedulerAlgorithm, group));
sched->tuners = tunerCount;
@@ -258,17 +259,17 @@ SchedulesI::DoReschedule(const Ice::Current & ice)
}
for (const auto & c : group) {
- logger->messagebf(LOG::DEBUG, "Episode %s, %d options", c->what, c->showings.size());
+ logger->messagebf(LogLevel::DEBUG, "Episode %s, %d options", c->what, c->showings.size());
for (const auto & i : c->showings) {
if (selected.find(i) != selected.end()) {
- logger->messagebf(LOG::DEBUG, " %s - %s (%d) <-", i->startTime, i->stopTime, i->transportStreamId);
+ logger->messagebf(LogLevel::DEBUG, " %s - %s (%d) <-", i->startTime, i->stopTime, i->transportStreamId);
}
else if (i) {
- logger->messagebf(LOG::DEBUG, " %s - %s (%d)", i->startTime, i->stopTime, i->transportStreamId);
+ logger->messagebf(LogLevel::DEBUG, " %s - %s (%d)", i->startTime, i->stopTime, i->transportStreamId);
}
}
}
- logger->message(LOG::DEBUG, "----------");
+ logger->message(LogLevel::DEBUG, "----------");
for (const auto & c : group) {
bool found = false;
for (const auto & i : c->showings) {
@@ -279,22 +280,22 @@ SchedulesI::DoReschedule(const Ice::Current & ice)
}
for (const auto & i : c->showings) {
if (i) {
- records.push_back(new P2PVR::ScheduledToRecord(i->eventUid,
+ records.push_back(std::make_shared<P2PVR::ScheduledToRecord>(i->eventUid,
found ?
- selected.find(i) != selected.end() ? P2PVR::WillRecordThisShowing : P2PVR::WillRecordOtherShowing :
- P2PVR::CannotRecordAnyShowing, i->scheduleId));
+ selected.find(i) != selected.end() ? RecordStatuses::WillRecordThisShowing : RecordStatuses::WillRecordOtherShowing :
+ RecordStatuses::CannotRecordAnyShowing, i->scheduleId));
}
}
}
}
auto dbc = db->get();
- DB::TransactionScope tx(dbc.get());
+ DB::TransactionScope tx(*dbc.get());
DB::TablePatch mergeRecords;
mergeRecords.dest = "record";
Slicer::SerializeAny<Slicer::SqlTablePatchSerializer>(records, dbc.get(), mergeRecords);
- auto recorder = P2PVR::RecorderPrx::checkedCast(ice.adapter->createProxy(ice.adapter->getCommunicator()->stringToIdentity("Recorder")));
+ auto recorder = Ice::checkedCast<RecorderPrx>(ice.adapter->createProxy(Ice::stringToIdentity("Recorder")));
recorder->RefreshSchedules();
}
@@ -311,14 +312,14 @@ SchedulesI::DeleteSchedule(int id, const Ice::Current & ice)
P2PVR::ScheduleList
SchedulesI::GetSchedules(const Ice::Current &)
{
- logger->message(LOG::DEBUG, __PRETTY_FUNCTION__);
+ logger->message(LogLevel::DEBUG, __PRETTY_FUNCTION__);
return fetch<P2PVR::ScheduleList>(P2PVR::sql::schedules::selectAll);
}
P2PVR::SchedulePtr
SchedulesI::GetSchedule(int id, const Ice::Current &)
{
- logger->messagebf(LOG::DEBUG, "%s(%d)", __PRETTY_FUNCTION__, id);
+ logger->messagebf(LogLevel::DEBUG, "%s(%d)", __PRETTY_FUNCTION__, id);
auto schedules = fetch<P2PVR::ScheduleList>(P2PVR::sql::schedules::selectById, id);
if (schedules.empty()) throw P2PVR::NotFound();
return schedules.front();
@@ -327,12 +328,12 @@ SchedulesI::GetSchedule(int id, const Ice::Current &)
P2PVR::ScheduledToRecordList
SchedulesI::GetScheduledToRecord(const Ice::Current &)
{
- logger->message(LOG::DEBUG, __PRETTY_FUNCTION__);
+ logger->message(LogLevel::DEBUG, __PRETTY_FUNCTION__);
return fetch<P2PVR::ScheduledToRecordList>(P2PVR::sql::schedules::scheduledToRecord);
}
Ice::Int
-SchedulesI::NewSchedule(const P2PVR::SchedulePtr & s, const Ice::Current & ice)
+SchedulesI::NewSchedule(const P2PVR::SchedulePtr s, const Ice::Current & ice)
{
auto dbc = db->get();
Slicer::SerializeAny<Slicer::SqlFetchIdInsertSerializer>(s, dbc.get(), "schedules");
@@ -341,7 +342,7 @@ SchedulesI::NewSchedule(const P2PVR::SchedulePtr & s, const Ice::Current & ice)
}
void
-SchedulesI::UpdateSchedule(const P2PVR::SchedulePtr & s, const Ice::Current & ice)
+SchedulesI::UpdateSchedule(const P2PVR::SchedulePtr s, const Ice::Current & ice)
{
auto dbc = db->get();
Slicer::SerializeAny<Slicer::SqlUpdateSerializer>(s, dbc.get(), "schedules");
diff --git a/p2pvr/daemon/schedules.h b/p2pvr/daemon/schedules.h
index f1fcde2..7b235a9 100644
--- a/p2pvr/daemon/schedules.h
+++ b/p2pvr/daemon/schedules.h
@@ -5,14 +5,13 @@
#include <options.h>
#include <abstractDatabaseClient.h>
#include <factory.h>
-#include <intrusivePtrBase.h>
#include <logger.h>
namespace P2PVR {
typedef boost::posix_time::ptime datetime;
class Episode;
-class Showing : public IntrusivePtrBase {
+class Showing {
public:
Showing(unsigned int e, unsigned int t, unsigned int sc, datetime start, datetime stop, int p, const Episode * ep);
// Record what?
@@ -26,18 +25,18 @@ class Showing : public IntrusivePtrBase {
const datetime stopTime;
const boost::posix_time::time_period period;
};
-typedef boost::intrusive_ptr<Showing> ShowingPtr;
+typedef std::shared_ptr<Showing> ShowingPtr;
typedef std::vector<ShowingPtr> Showings;
typedef Showings::const_iterator ShowingsIter;
-class Episode : public IntrusivePtrBase {
+class Episode {
public:
Episode(const std::string & w);
int priority;
const std::string what;
Showings showings;
};
-typedef boost::intrusive_ptr<Episode> EpisodePtr;
+typedef std::shared_ptr<Episode> EpisodePtr;
typedef std::vector<EpisodePtr> Episodes;
typedef Episodes::const_iterator EpisodesIter;
@@ -75,15 +74,15 @@ class SchedulesI : public Schedules, public IceTray::AbstractDatabaseClient {
std::string SchedulerAlgorithm;
};
- SchedulesI(IceTray::DatabasePoolPtr);
+ SchedulesI(DB::ConnectionPoolPtr);
- void DeleteSchedule(int id, const Ice::Current &);
- SchedulePtr GetSchedule(int id, const Ice::Current &);
- ScheduleList GetSchedules(const Ice::Current &);
- ScheduledToRecordList GetScheduledToRecord(const Ice::Current &);
- Ice::Int NewSchedule(const SchedulePtr &, const Ice::Current &);
- void UpdateSchedule(const SchedulePtr &, const Ice::Current &);
- void DoReschedule(const Ice::Current &);
+ void DeleteSchedule(int id, const Ice::Current &) override;
+ SchedulePtr GetSchedule(int id, const Ice::Current &) override;
+ ScheduleList GetSchedules(const Ice::Current &) override;
+ ScheduledToRecordList GetScheduledToRecord(const Ice::Current &) override;
+ Ice::Int NewSchedule(const SchedulePtr, const Ice::Current &) override;
+ void UpdateSchedule(const SchedulePtr, const Ice::Current &) override;
+ void DoReschedule(const Ice::Current &) override;
protected:
static void GetEpisodeIntersects(Episodes &, Episodes &);
@@ -94,7 +93,7 @@ class SchedulesI : public Schedules, public IceTray::AbstractDatabaseClient {
};
typedef AdHoc::Factory<EpisodeGroup, const Episodes &> EpisodeGroupFactory;
-typedef boost::shared_ptr<EpisodeGroup> EpisodeGroupPtr;
+typedef std::shared_ptr<EpisodeGroup> EpisodeGroupPtr;
}
#endif
diff --git a/p2pvr/daemon/si.cpp b/p2pvr/daemon/si.cpp
index f8a49be..b87c127 100644
--- a/p2pvr/daemon/si.cpp
+++ b/p2pvr/daemon/si.cpp
@@ -2,7 +2,8 @@
#include <slicer/db/sqlSelectDeserializer.h>
#include <slicer/common.h>
#include <slicer/db/sqlExceptions.h>
-#include "commonHelpers.h"
+#include "chronoHelpers.h"
+#include "icetraySupport.h"
#include <slicer/slicer.h>
#include <logger.h>
@@ -21,10 +22,13 @@
#include "sql/si/eventsInRange.sql.h"
#include "sql/si/eventSearch.sql.h"
+using namespace std::literals;
+using namespace IceTray::Logging;
+
namespace P2PVR {
IceTray::Logging::LoggerPtr SII::logger(LOGMANAGER()->getLogger<SII>());
-SII::SII(IceTray::DatabasePoolPtr db) :
+SII::SII(DB::ConnectionPoolPtr db) :
IceTray::AbstractDatabaseClient(db)
{
}
@@ -32,16 +36,16 @@ SII::SII(IceTray::DatabasePoolPtr db) :
DVBSI::Networks
SII::GetNetworks(const Ice::Current &)
{
- logger->message(LOG::DEBUG, __PRETTY_FUNCTION__);
+ logger->message(LogLevel::DEBUG, __PRETTY_FUNCTION__);
return fetch<DVBSI::Networks>(sql::si::allNetworks);
}
Deliveries
SII::GetAllDeliveries(const Ice::Current &)
{
- logger->message(LOG::DEBUG, __PRETTY_FUNCTION__);
- auto rtn = fetch<Deliveries>("delivery_type", sql::si::allDeliveries);
- logger->messagebf(LOG::DEBUG, "%s: Found %d delivery methods", __PRETTY_FUNCTION__, rtn.size());
+ logger->message(LogLevel::DEBUG, __PRETTY_FUNCTION__);
+ auto rtn = fetch<Deliveries>("delivery_type"s, sql::si::allDeliveries);
+ logger->messagebf(LogLevel::DEBUG, "%s: Found %d delivery methods", __PRETTY_FUNCTION__, rtn.size());
return rtn;
}
@@ -49,8 +53,8 @@ DVBSI::DeliveryPtr
SII::GetDeliveryForTransport(int id, const Ice::Current&)
{
try {
- logger->messagef(LOG::DEBUG, "%s(%d)", __PRETTY_FUNCTION__, id);
- return fetch<DVBSI::DeliveryPtr>("delivery_type", sql::si::deliveryForTransport, id);
+ logger->messagef(LogLevel::DEBUG, "%s(%d)", __PRETTY_FUNCTION__, id);
+ return fetch<DVBSI::DeliveryPtr>("delivery_type"s, sql::si::deliveryForTransport, id);
}
catch (const Slicer::NoRowsReturned &) {
throw NotFound();
@@ -61,8 +65,8 @@ DVBSI::DeliveryPtr
SII::GetDeliveryForSi(const Ice::Current&)
{
try {
- logger->message(LOG::DEBUG, __PRETTY_FUNCTION__);
- return fetch<DVBSI::DeliveryPtr>("delivery_type", sql::si::serviceNextUsed);
+ logger->message(LogLevel::DEBUG, __PRETTY_FUNCTION__);
+ return fetch<DVBSI::DeliveryPtr>("delivery_type"s, sql::si::serviceNextUsed);
}
catch (const Slicer::NoRowsReturned &) {
return NULL;
@@ -73,8 +77,8 @@ DVBSI::DeliveryPtr
SII::GetDeliveryForService(int id, const Ice::Current&)
{
try {
- logger->messagef(LOG::DEBUG, "%s(%d)", __PRETTY_FUNCTION__, id);
- return fetch<DVBSI::DeliveryPtr>("delivery_type", sql::si::deliveryForService, id);
+ logger->messagef(LogLevel::DEBUG, "%s(%d)", __PRETTY_FUNCTION__, id);
+ return fetch<DVBSI::DeliveryPtr>("delivery_type"s, sql::si::deliveryForService, id);
}
catch (const Slicer::NoRowsReturned &) {
throw NotFound();
@@ -84,23 +88,23 @@ SII::GetDeliveryForService(int id, const Ice::Current&)
DVBSI::ServiceList
SII::GetServices(const Ice::Current&)
{
- logger->message(LOG::DEBUG, __PRETTY_FUNCTION__);
+ logger->message(LogLevel::DEBUG, __PRETTY_FUNCTION__);
return fetch<DVBSI::ServiceList>(sql::si::servicesSelectAll);
}
DVBSI::ServicePtr
SII::GetService(int id, const Ice::Current&)
{
- logger->messagef(LOG::DEBUG, "%s(%d)", __PRETTY_FUNCTION__, id);
+ logger->messagef(LogLevel::DEBUG, "%s(%d)", __PRETTY_FUNCTION__, id);
auto rtn = fetch<DVBSI::ServiceList>(sql::si::servicesSelectById, id);
if (rtn.empty()) throw NotFound();
return rtn.front();
}
Events
-SII::GetEvents(const IntSequence & eventUids, const Ice::Current &)
+SII::GetEvents(const IntSequence eventUids, const Ice::Current &)
{
- logger->message(LOG::DEBUG, __PRETTY_FUNCTION__);
+ logger->message(LogLevel::DEBUG, __PRETTY_FUNCTION__);
Events rtn;
for (const auto & uid : eventUids) {
auto list = fetch<Events>(sql::si::eventByUid, uid);
@@ -113,7 +117,7 @@ SII::GetEvents(const IntSequence & eventUids, const Ice::Current &)
EventPtr
SII::GetEvent(int serviceId, int eventId, const Ice::Current &)
{
- logger->messagef(LOG::DEBUG, "%s(s=%d, e=%d)", __PRETTY_FUNCTION__, serviceId, eventId);
+ logger->messagef(LogLevel::DEBUG, "%s(s=%d, e=%d)", __PRETTY_FUNCTION__, serviceId, eventId);
auto rtn = fetch<Events>(sql::si::eventById, serviceId, eventId);
if (rtn.empty()) throw NotFound();
return rtn.front();
@@ -122,21 +126,21 @@ SII::GetEvent(int serviceId, int eventId, const Ice::Current &)
Events
SII::EventsOnNow(const Ice::Current &)
{
- logger->message(LOG::DEBUG, __PRETTY_FUNCTION__);
+ logger->message(LogLevel::DEBUG, __PRETTY_FUNCTION__);
return fetch<Events>(sql::si::eventsOnNow);
}
Events
-SII::EventsInRange(const Common::DateTime & from, const Common::DateTime & to, const Ice::Current &)
+SII::EventsInRange(const Chrono::DateTime from, const Chrono::DateTime to, const Ice::Current &)
{
- logger->messagebf(LOG::DEBUG, "%s([%s]-[%s])", from, to, __PRETTY_FUNCTION__);
+ logger->messagebf(LogLevel::DEBUG, "%s([%s]-[%s])", from, to, __PRETTY_FUNCTION__);
return fetch<Events>(sql::si::eventsInRange, from, to);
}
Events
-SII::EventSearch(const IceUtil::Optional<std::string> & keywords, const IceUtil::Optional<Ice::Int> & serviceId, const IceUtil::Optional<Common::DateTime> & from, const IceUtil::Optional<Common::DateTime> & to, const Ice::Current &)
+SII::EventSearch(const IceUtil::Optional<std::string> keywords, const IceUtil::Optional<Ice::Int> serviceId, const IceUtil::Optional<Chrono::DateTime> from, const IceUtil::Optional<Chrono::DateTime> to, const Ice::Current &)
{
- logger->messagebf(LOG::DEBUG, "%s(keywords=%s,serviceId=%s,from=%s,to=%s)",
+ logger->messagebf(LogLevel::DEBUG, "%s(keywords=%s,serviceId=%s,from=%s,to=%s)",
keywords, serviceId, from, to, __PRETTY_FUNCTION__);
return fetch<Events>(sql::si::eventSearch, from, to, serviceId, serviceId, keywords, keywords, keywords, keywords);
}
@@ -144,14 +148,14 @@ SII::EventSearch(const IceUtil::Optional<std::string> & keywords, const IceUtil:
Events
SII::EventsInSchedules(const Ice::Current &)
{
- logger->message(LOG::DEBUG, __PRETTY_FUNCTION__);
+ logger->message(LogLevel::DEBUG, __PRETTY_FUNCTION__);
return fetch<Events>(sql::si::eventsInSchedules);
}
Events
SII::EventsInSchedule(int scheduleId, const Ice::Current &)
{
- logger->messagebf(LOG::DEBUG, "%s(%d)", scheduleId, __PRETTY_FUNCTION__);
+ logger->messagebf(LogLevel::DEBUG, "%s(%d)", scheduleId, __PRETTY_FUNCTION__);
return fetch<Events>(sql::si::eventsInSchedule, scheduleId);
}
}
diff --git a/p2pvr/daemon/si.h b/p2pvr/daemon/si.h
index 820118d..e184779 100644
--- a/p2pvr/daemon/si.h
+++ b/p2pvr/daemon/si.h
@@ -8,24 +8,24 @@
namespace P2PVR {
class SII : public SI, public IceTray::AbstractDatabaseClient {
public:
- SII(IceTray::DatabasePoolPtr);
-
- DVBSI::Networks GetNetworks(const Ice::Current &);
- Deliveries GetAllDeliveries(const Ice::Current &);
- DVBSI::DeliveryPtr GetDeliveryForService(int id, const Ice::Current &);
- DVBSI::DeliveryPtr GetDeliveryForTransport(int id, const Ice::Current &);
- DVBSI::DeliveryPtr GetDeliveryForSi(const Ice::Current &);
-
- DVBSI::ServiceList GetServices(const Ice::Current &);
- DVBSI::ServicePtr GetService(int id, const Ice::Current &);
-
- Events GetEvents(const IntSequence & eventUids, const Ice::Current &);
- EventPtr GetEvent(int serviceId, int eventId, const Ice::Current &);
- Events EventsOnNow(const Ice::Current &);
- Events EventsInSchedules(const Ice::Current &);
- Events EventsInSchedule(int scheduleId, const Ice::Current &);
- Events EventsInRange(const Common::DateTime &, const Common::DateTime &, const Ice::Current &);
- Events EventSearch(const IceUtil::Optional<std::string> & keywords, const IceUtil::Optional<Ice::Int> & serviceId, const IceUtil::Optional<Common::DateTime> & from, const IceUtil::Optional<Common::DateTime> & to, const Ice::Current &);
+ SII(DB::ConnectionPoolPtr);
+
+ DVBSI::Networks GetNetworks(const Ice::Current &) override;
+ Deliveries GetAllDeliveries(const Ice::Current &) override;
+ DVBSI::DeliveryPtr GetDeliveryForService(int id, const Ice::Current &) override;
+ DVBSI::DeliveryPtr GetDeliveryForTransport(int id, const Ice::Current &) override;
+ DVBSI::DeliveryPtr GetDeliveryForSi(const Ice::Current &) override;
+
+ DVBSI::ServiceList GetServices(const Ice::Current &) override;
+ DVBSI::ServicePtr GetService(int id, const Ice::Current &) override;
+
+ Events GetEvents(const IntSequence eventUids, const Ice::Current &) override;
+ EventPtr GetEvent(int serviceId, int eventId, const Ice::Current &) override;
+ Events EventsOnNow(const Ice::Current &) override;
+ Events EventsInSchedules(const Ice::Current &) override;
+ Events EventsInSchedule(int scheduleId, const Ice::Current &) override;
+ Events EventsInRange(const Chrono::DateTime, const Chrono::DateTime, const Ice::Current &) override;
+ Events EventSearch(const IceUtil::Optional<std::string> keywords, const IceUtil::Optional<Ice::Int> serviceId, const IceUtil::Optional<Chrono::DateTime> from, const IceUtil::Optional<Chrono::DateTime> to, const Ice::Current &) override;
static IceTray::Logging::LoggerPtr logger;
};
diff --git a/p2pvr/daemon/storage.cpp b/p2pvr/daemon/storage.cpp
index ba5d931..d53adf1 100644
--- a/p2pvr/daemon/storage.cpp
+++ b/p2pvr/daemon/storage.cpp
@@ -1,6 +1,7 @@
#include "storage.h"
#include "muxer.h"
#include <logger.h>
+#include <modifycommand.h>
#include <sql/storage/getVideoStats.sql.h>
#include <sql/storage/writeBlock.sql.h>
@@ -28,7 +29,7 @@ class RecordingSink : public RawDataClient {
ins->bindParamI(0, recordingId);
}
- bool NewData(const Data & data, const Ice::Current &) override
+ bool NewData(const Data data, const Ice::Current &) override
{
if (!data.empty()) {
ins->bindParamBLOB(1, data);
@@ -42,25 +43,25 @@ class RecordingSink : public RawDataClient {
DB::ModifyCommandPtr ins;
};
-StorageI::StorageI(IceTray::DatabasePoolPtr db) :
+StorageI::StorageI(DB::ConnectionPoolPtr db) :
IceTray::AbstractDatabaseClient(db)
{
}
-RawDataClientPrx
+RawDataClientPrxPtr
StorageI::OpenForWrite(Ice::Int recordingId, const Ice::Current & ice)
{
- auto target = RawDataClientPrx::uncheckedCast(ice.adapter->addWithUUID(new RecordingSink(db->get(), recordingId)));
+ auto target = Ice::uncheckedCast<RawDataClientPrx>(ice.adapter->addWithUUID(std::make_shared<RecordingSink>(db->get(), recordingId)));
if (!options->muxerCommand.empty()) {
auto storageId = target->ice_getIdentity();
- target = RawDataClientPrx::uncheckedCast(ice.adapter->addWithUUID(new Muxer(target, options->muxerCommand)));
+ target = Ice::uncheckedCast<RawDataClientPrx>(ice.adapter->addWithUUID(std::make_shared<Muxer>(target, options->muxerCommand)));
muxerStorageLink.insert({ target->ice_getIdentity(), storageId });
}
return target;
}
void
-StorageI::Close(const RawDataClientPrx & file, const Ice::Current & ice)
+StorageI::Close(const RawDataClientPrxPtr file, const Ice::Current & ice)
{
ice.adapter->remove(file->ice_getIdentity());
auto storageIdItr = muxerStorageLink.find(file->ice_getIdentity());
diff --git a/p2pvr/daemon/storage.h b/p2pvr/daemon/storage.h
index 3dae5d4..c9c984d 100644
--- a/p2pvr/daemon/storage.h
+++ b/p2pvr/daemon/storage.h
@@ -23,10 +23,10 @@ class StorageI : public Storage, IceTray::AbstractDatabaseClient {
std::string muxerCommand;
};
- StorageI(IceTray::DatabasePoolPtr db);
+ StorageI(DB::ConnectionPoolPtr db);
- RawDataClientPrx OpenForWrite(Ice::Int recordingId, const Ice::Current &) override;
- void Close(const RawDataClientPrx &, const Ice::Current &) override;
+ RawDataClientPrxPtr OpenForWrite(Ice::Int recordingId, const Ice::Current &) override;
+ void Close(const RawDataClientPrxPtr, const Ice::Current &) override;
VideoStats GetVideoStats(Ice::Int recordingId, const Ice::Current &) override;
protected:
diff --git a/p2pvr/daemon/unittests/Jamfile.jam b/p2pvr/daemon/unittests/Jamfile.jam
index 4426646..8c25c07 100644
--- a/p2pvr/daemon/unittests/Jamfile.jam
+++ b/p2pvr/daemon/unittests/Jamfile.jam
@@ -2,9 +2,8 @@ import testing ;
lib boost_system ;
lib boost_filesystem ;
-lib IceUtil ;
-lib Ice ;
-lib IceBox ;
+lib Ice : : <name>Ice++11 ;
+lib IceBox : : <name>IceBox++11 ;
lib dbppcore : : : : <include>/usr/include/dbpp ;
lib dbpp-postgresql : : : : <include>/usr/include/dbpp-postgresql ;
lib dryice : : : : <include>/usr/include/icetray ;
@@ -36,7 +35,6 @@ lib testCommon :
<library>dryice
<library>icetray
<library>Ice
- <library>IceUtil
<library>IceBox
<library>dbppcore
<library>dbpp-postgresql
@@ -56,7 +54,6 @@ lib testCommon :
<library>dbpp-postgresql
<library>Ice
<library>IceBox
- <library>IceUtil
<library>boost_system
<library>boost_filesystem
<library>../..//boost_utf
diff --git a/p2pvr/daemon/unittests/mockDefs.cpp b/p2pvr/daemon/unittests/mockDefs.cpp
index 6d180e5..adf2608 100644
--- a/p2pvr/daemon/unittests/mockDefs.cpp
+++ b/p2pvr/daemon/unittests/mockDefs.cpp
@@ -4,25 +4,28 @@
namespace P2PVR {
namespace Testing {
SchemaOnlyMockDatabase::SchemaOnlyMockDatabase(const Ice::StringSeq & opts) :
- PQ::Mock("user=postgres dbname=postgres", "p2pvr", {
- rootDir.parent_path().parent_path() / "datasources" / "schema.sql" }),
+ DB::PluginMock<PQ::Mock>("p2pvr", {
+ rootDir.parent_path().parent_path() / "datasources" / "schema.sql" },
+ "user=postgres dbname=postgres"),
IceTray::DryIce(opts)
{
}
StandardMockDatabase::StandardMockDatabase(const Ice::StringSeq & opts) :
- PQ::Mock("user=postgres dbname=postgres", "p2pvr", {
+ DB::PluginMock<PQ::Mock>("p2pvr", {
rootDir.parent_path().parent_path() / "datasources/schema.sql",
- rootDir / "datasources" / "data.sql" }),
+ rootDir / "datasources" / "data.sql" },
+ "user=postgres dbname=postgres"),
IceTray::DryIce(opts)
{
}
StandardMockDatabasePlusOffset::StandardMockDatabasePlusOffset(const Ice::StringSeq & opts) :
- PQ::Mock("user=postgres dbname=postgres", "p2pvr", {
+ DB::PluginMock<PQ::Mock>("p2pvr", {
rootDir.parent_path().parent_path() / "datasources" / "schema.sql",
rootDir / "datasources" / "data.sql",
- rootDir / "datasources" / "eventOffset.sql" }),
+ rootDir / "datasources" / "eventOffset.sql" },
+ "user=postgres dbname=postgres"),
IceTray::DryIce(opts)
{
}
diff --git a/p2pvr/daemon/unittests/mockDefs.h b/p2pvr/daemon/unittests/mockDefs.h
index 1589440..c226a42 100644
--- a/p2pvr/daemon/unittests/mockDefs.h
+++ b/p2pvr/daemon/unittests/mockDefs.h
@@ -8,7 +8,7 @@
namespace P2PVR {
namespace Testing {
-#define DECLAREMOCK(Name) class DLL_PUBLIC Name : public PQ::Mock, public IceTray::DryIce { public: Name(const Ice::StringSeq & opts = {}); }
+#define DECLAREMOCK(Name) class DLL_PUBLIC Name : public DB::PluginMock<PQ::Mock>, public IceTray::DryIce { public: Name(const Ice::StringSeq & opts = {}); }
DECLAREMOCK(SchemaOnlyMockDatabase);
DECLAREMOCK(StandardMockDatabase);
@@ -20,13 +20,13 @@ class DLL_PUBLIC TestClient : public IceTray::DryIceClient {
public:
TestClient();
- TunersPrx devices;
- MaintenancePrx maint;
- SIPrx si;
- SchedulesPrx schedules;
- StoragePrx storage;
- RecorderPrx recorder;
- RecordingsPrx recordings;
+ TunersPrxPtr devices;
+ MaintenancePrxPtr maint;
+ SIPrxPtr si;
+ SchedulesPrxPtr schedules;
+ StoragePrxPtr storage;
+ RecorderPrxPtr recorder;
+ RecordingsPrxPtr recordings;
};
}
}
diff --git a/p2pvr/daemon/unittests/mockDevices.cpp b/p2pvr/daemon/unittests/mockDevices.cpp
index e5ec6a4..135664f 100644
--- a/p2pvr/daemon/unittests/mockDevices.cpp
+++ b/p2pvr/daemon/unittests/mockDevices.cpp
@@ -13,7 +13,7 @@ namespace P2PVR {
TunerPtr
MockDevices::openTuner(const boost::filesystem::path & path) const
{
- return new P2PVR::DVB::Testing::MockTuner(path, ic);
+ return std::make_shared<P2PVR::DVB::Testing::MockTuner>(path, ic);
}
}
}
diff --git a/p2pvr/daemon/unittests/mockScheduler.cpp b/p2pvr/daemon/unittests/mockScheduler.cpp
index b19673c..3f5ee99 100644
--- a/p2pvr/daemon/unittests/mockScheduler.cpp
+++ b/p2pvr/daemon/unittests/mockScheduler.cpp
@@ -31,13 +31,13 @@ MockScheduler::GetScheduledToRecord(const::Ice::Current &)
}
Ice::Int
-MockScheduler::NewSchedule(const::P2PVR::SchedulePtr &, const::Ice::Current &)
+MockScheduler::NewSchedule(const::P2PVR::SchedulePtr, const::Ice::Current &)
{
return 1;
}
void
-MockScheduler::UpdateSchedule(const::P2PVR::SchedulePtr &, const::Ice::Current &)
+MockScheduler::UpdateSchedule(const::P2PVR::SchedulePtr, const::Ice::Current &)
{
}
}
diff --git a/p2pvr/daemon/unittests/mockScheduler.h b/p2pvr/daemon/unittests/mockScheduler.h
index f718363..d94f502 100644
--- a/p2pvr/daemon/unittests/mockScheduler.h
+++ b/p2pvr/daemon/unittests/mockScheduler.h
@@ -13,8 +13,8 @@ class DLL_PUBLIC MockScheduler : public Schedules {
SchedulePtr GetSchedule(::Ice::Int, const ::Ice::Current&) override;
ScheduleList GetSchedules(const ::Ice::Current&) override;
ScheduledToRecordList GetScheduledToRecord(const ::Ice::Current&) override;
- Ice::Int NewSchedule(const SchedulePtr&, const ::Ice::Current&) override;
- void UpdateSchedule(const SchedulePtr&, const ::Ice::Current&) override;
+ Ice::Int NewSchedule(const SchedulePtr, const ::Ice::Current&) override;
+ void UpdateSchedule(const SchedulePtr, const ::Ice::Current&) override;
};
}
}
diff --git a/p2pvr/daemon/unittests/testErrorHandling.cpp b/p2pvr/daemon/unittests/testErrorHandling.cpp
index be44ebc..e38ac8e 100644
--- a/p2pvr/daemon/unittests/testErrorHandling.cpp
+++ b/p2pvr/daemon/unittests/testErrorHandling.cpp
@@ -26,7 +26,7 @@ class Core : public StandardMockDatabase {
public:
Core()
{
- replace("Devices", new MockDevices(ic));
+ replace("Devices", std::make_shared<MockDevices>(ic));
}
};
@@ -36,7 +36,7 @@ class TestDataClient : public RawDataClient {
packets(3)
{
}
- virtual bool NewData(const Data &, const Ice::Current &) override
+ virtual bool NewData(const Data, const Ice::Current &) override
{
return !--packets;
}
@@ -45,7 +45,7 @@ class TestDataClient : public RawDataClient {
class FailingTestClient : public RawDataClient {
public:
- bool NewData(const Data &, const Ice::Current &) override
+ bool NewData(const Data, const Ice::Current &) override
{
throw DataHandlingException();
}
@@ -85,7 +85,7 @@ BOOST_AUTO_TEST_CASE(TestRawDataClient)
{
BOOST_TEST_CHECKPOINT("Setup");
auto del = si->GetDeliveryForSi();
- TemporaryIceAdapterObject<RawDataClient> a(getAdapter(), new TestDataClient());
+ TemporaryIceAdapterObject<RawDataClient> a(getAdapter(), std::make_shared<TestDataClient>());
BOOST_TEST_CHECKPOINT("Make successful call");
devices->SendNetworkInformation(del, a);
}
@@ -94,7 +94,7 @@ BOOST_AUTO_TEST_CASE(TestParser)
{
BOOST_TEST_CHECKPOINT("Setup");
auto del = si->GetDeliveryForSi();
- TemporaryIceAdapterObject<RawDataClient> a(getAdapter(), new TestNetworkParser());
+ TemporaryIceAdapterObject<RawDataClient> a(getAdapter(), std::make_shared<TestNetworkParser>());
BOOST_TEST_CHECKPOINT("Make successful call");
devices->SendNetworkInformation(del, a);
}
@@ -103,7 +103,7 @@ BOOST_AUTO_TEST_CASE(TestRawDataClientWithError)
{
BOOST_TEST_CHECKPOINT("Setup");
auto del = si->GetDeliveryForSi();
- TemporaryIceAdapterObject<RawDataClient> a(getAdapter(), new FailingTestClient());
+ TemporaryIceAdapterObject<RawDataClient> a(getAdapter(), std::make_shared<FailingTestClient>());
BOOST_TEST_CHECKPOINT("Make failing call");
BOOST_REQUIRE_THROW(devices->SendNetworkInformation(del, a), DataHandlingException);
}
@@ -112,7 +112,7 @@ BOOST_AUTO_TEST_CASE(TestParserWithError)
{
BOOST_TEST_CHECKPOINT("Setup");
auto del = si->GetDeliveryForSi();
- TemporaryIceAdapterObject<RawDataClient> a(getAdapter(), new FailingTestNetworkParser());
+ TemporaryIceAdapterObject<RawDataClient> a(getAdapter(), std::make_shared<FailingTestNetworkParser>());
BOOST_TEST_CHECKPOINT("Make failing call");
BOOST_REQUIRE_THROW(devices->SendNetworkInformation(del, a), DataHandlingException);
}
@@ -121,7 +121,7 @@ BOOST_AUTO_TEST_CASE(TestParserBroken)
{
BOOST_TEST_CHECKPOINT("Setup");
auto del = si->GetDeliveryForSi();
- TemporaryIceAdapterObject<RawDataClient> a(getAdapter(), new BrokenTestNetworkParser());
+ TemporaryIceAdapterObject<RawDataClient> a(getAdapter(), std::make_shared<BrokenTestNetworkParser>());
BOOST_TEST_CHECKPOINT("Make failing call");
BOOST_REQUIRE_THROW(devices->SendNetworkInformation(del, a), Ice::UnknownException);
}
diff --git a/p2pvr/daemon/unittests/testMaint.cpp b/p2pvr/daemon/unittests/testMaint.cpp
index c15dee3..feb5153 100644
--- a/p2pvr/daemon/unittests/testMaint.cpp
+++ b/p2pvr/daemon/unittests/testMaint.cpp
@@ -7,6 +7,7 @@
#include <Ice/Service.h>
#include <maintenance.h>
#include <mockTuner.h>
+#include <modifycommand.h>
#include "mockDevices.h"
#include "mockScheduler.h"
#include <si.h>
@@ -15,11 +16,13 @@
#include <definedDirs.h>
#include "mockDefs.h"
#include <slicer/db/sqlSelectDeserializer.h>
-#include "commonHelpers.h"
+#include "chronoHelpers.h"
+#include "icetraySupport.h"
#include <slicer/slicer.h>
using namespace P2PVR;
using namespace P2PVR::Testing;
+using namespace std::literals;
namespace P2PVR {
namespace Testing {
@@ -27,8 +30,8 @@ class TestService : public SchemaOnlyMockDatabase {
public:
TestService()
{
- replace("Devices", new MockDevices(ic));
- replace("Schedules", new MockScheduler());
+ replace("Devices", std::make_shared<MockDevices>(ic));
+ replace("Schedules", std::make_shared<MockScheduler>());
}
};
}
@@ -101,7 +104,8 @@ BOOST_AUTO_TEST_CASE( GetNetworks )
auto ns = si->GetNetworks();
BOOST_REQUIRE_EQUAL(ns.size(), 1);
BOOST_REQUIRE_EQUAL(ns[0]->NetworkId, 12333);
- BOOST_REQUIRE_EQUAL(ns[0]->Name, "Yorkshire");
+ BOOST_REQUIRE(ns[0]->Name);
+ BOOST_REQUIRE_EQUAL(*ns[0]->Name, "Yorkshire");
}
BOOST_AUTO_TEST_CASE( GetDeliveryForService )
@@ -167,8 +171,10 @@ BOOST_AUTO_TEST_CASE( GetServices )
BOOST_REQUIRE_EQUAL(services.size(), 180);
BOOST_REQUIRE_EQUAL(services[0]->ServiceId, 4170);
BOOST_REQUIRE_EQUAL(services[0]->TransportStreamId, 4170);
- BOOST_REQUIRE_EQUAL(services[0]->Name, "BBC ONE Yorks");
- BOOST_REQUIRE_EQUAL(services[0]->DefaultAuthority, "fp.bbc.co.uk");
+ BOOST_REQUIRE(services[0]->Name);
+ BOOST_REQUIRE_EQUAL(*services[0]->Name, "BBC ONE Yorks");
+ BOOST_REQUIRE(services[0]->DefaultAuthority);
+ BOOST_REQUIRE_EQUAL(*services[0]->DefaultAuthority, "fp.bbc.co.uk");
}
BOOST_AUTO_TEST_CASE( GetService )
@@ -176,8 +182,10 @@ BOOST_AUTO_TEST_CASE( GetService )
auto service = si->GetService(serviceId);
BOOST_REQUIRE_EQUAL(service->ServiceId, serviceId);
BOOST_REQUIRE_EQUAL(service->TransportStreamId, 4170);
- BOOST_REQUIRE_EQUAL(service->Name, "BBC ONE Yorks");
- BOOST_REQUIRE_EQUAL(service->DefaultAuthority, "fp.bbc.co.uk");
+ BOOST_REQUIRE(service->Name);
+ BOOST_REQUIRE_EQUAL(*service->Name, "BBC ONE Yorks");
+ BOOST_REQUIRE(service->DefaultAuthority);
+ BOOST_REQUIRE_EQUAL(*service->DefaultAuthority, "fp.bbc.co.uk");
}
BOOST_AUTO_TEST_CASE( update_events )
@@ -188,8 +196,8 @@ BOOST_AUTO_TEST_CASE( update_events )
BOOST_TEST_CHECKPOINT("Write first events");
P2PVR::DVB::Testing::MockTuner::SetEventsSet(0);
maint->UpdateEvents();
- auto dayOneEvents = si->EventSearch(IceUtil::Optional<std::string>(), IceUtil::Optional<int>(),
- Common::DateTime {2017, 8, 22, 3, 0}, Common::DateTime {2017, 8, 23, 3, 0});
+ auto dayOneEvents = si->EventSearch(Ice::optional<std::string>(), Ice::optional<int>(),
+ Chrono::DateTime {2017, 8, 22, 3, 0}, Chrono::DateTime {2017, 8, 23, 3, 0});
BOOST_REQUIRE_EQUAL(dayOneEvents.size(), 3023);
BOOST_REQUIRE(si->GetEvent(15048, 29747));
BOOST_REQUIRE_THROW(si->GetEvent(15856, 3591), P2PVR::NotFound);
@@ -198,34 +206,32 @@ BOOST_AUTO_TEST_CASE( update_events )
auto keyEvent1 = dayOneEvents[1000];
auto keyEvent2 = dayOneEvents[2000];
db->execute("INSERT INTO schedules(repeats) VALUES(false)");
- auto irecorded = boost::shared_ptr<DB::ModifyCommand>(
- db->newModifyCommand("INSERT INTO recorded(scheduleId, eventUid) VALUES(?, ?)"));
+ auto irecorded = db->modify("INSERT INTO recorded(scheduleId, eventUid) VALUES(?, ?)");
irecorded->bindParamI(0, 1);
irecorded->bindParamI(1, keyEvent1->EventUid);
irecorded->execute();
- auto irecordings = boost::shared_ptr<DB::ModifyCommand>(
- db->newModifyCommand("INSERT INTO recordings(scheduleId, eventUid) VALUES(?, ?)"));
+ auto irecordings = db->modify("INSERT INTO recordings(scheduleId, eventUid) VALUES(?, ?)");
irecordings->bindParamI(0, 1);
irecordings->bindParamI(1, keyEvent2->EventUid);
irecordings->execute();
BOOST_REQUIRE(keyEvent1);
BOOST_REQUIRE(keyEvent2);
BOOST_REQUIRE(keyEvent1->Current);
- BOOST_REQUIRE_EQUAL(keyEvent1->StartTime, Common::DateTime({2017, 8, 22, 5, 0}));
+ BOOST_REQUIRE_EQUAL(keyEvent1->StartTime, Chrono::DateTime({2017, 8, 22, 5, 0}));
BOOST_REQUIRE(keyEvent2->Current);
- BOOST_REQUIRE_EQUAL(keyEvent2->StartTime, Common::DateTime({2017, 8, 22, 6, 30}));
+ BOOST_REQUIRE_EQUAL(keyEvent2->StartTime, Chrono::DateTime({2017, 8, 22, 6, 30}));
BOOST_TEST_CHECKPOINT("Write second events");
P2PVR::DVB::Testing::MockTuner::SetEventsSet(1);
maint->UpdateEvents();
- auto dayTwoEvents = si->EventSearch(IceUtil::Optional<std::string>(), IceUtil::Optional<int>(),
- Common::DateTime {2017, 8, 23, 3, 0}, Common::DateTime {2017, 8, 24, 3, 0});
+ auto dayTwoEvents = si->EventSearch(Ice::optional<std::string>(), Ice::optional<int>(),
+ Chrono::DateTime {2017, 8, 23, 3, 0}, Chrono::DateTime {2017, 8, 24, 3, 0});
BOOST_REQUIRE_THROW(si->GetEvent(15064, 22), P2PVR::NotFound);
BOOST_REQUIRE(si->GetEvent(15048, 29791));
BOOST_TEST_CHECKPOINT("Check our faked stuff is still there and right");
- auto dayOneEventsOnDayTwo = si->EventSearch(IceUtil::Optional<std::string>(), IceUtil::Optional<int>(),
- Common::DateTime {2017, 8, 22, 3, 0}, Common::DateTime {2017, 8, 23, 3, 0});
+ auto dayOneEventsOnDayTwo = si->EventSearch(Ice::optional<std::string>(), Ice::optional<int>(),
+ Chrono::DateTime {2017, 8, 22, 3, 0}, Chrono::DateTime {2017, 8, 23, 3, 0});
// Some datetime range overlap, but most are gone
BOOST_REQUIRE_EQUAL(dayOneEventsOnDayTwo.size(), 316);
BOOST_REQUIRE_EQUAL(std::count_if(dayOneEventsOnDayTwo.begin(), dayOneEventsOnDayTwo.end(),
@@ -243,8 +249,8 @@ BOOST_AUTO_TEST_CASE( update_events )
BOOST_AUTO_TEST_CASE( test_titleFiltering )
{
- auto thingsWithNew = si->EventSearch("new", IceUtil::Optional<int>(),
- IceUtil::Optional<Common::DateTime>(), IceUtil::Optional<Common::DateTime>());
+ auto thingsWithNew = si->EventSearch("new"s, Ice::optional<int>(),
+ Ice::optional<Chrono::DateTime>(), Ice::optional<Chrono::DateTime>());
BOOST_REQUIRE_EQUAL(0, std::count_if(thingsWithNew.begin(), thingsWithNew.end(), [](auto e) {
return boost::algorithm::starts_with(e->Title, "New:");
}));
diff --git a/p2pvr/daemon/unittests/testRecording.cpp b/p2pvr/daemon/unittests/testRecording.cpp
index d875130..533859a 100644
--- a/p2pvr/daemon/unittests/testRecording.cpp
+++ b/p2pvr/daemon/unittests/testRecording.cpp
@@ -14,7 +14,7 @@
#include <definedDirs.h>
#include "mockDefs.h"
#include <slicer/db/sqlSelectDeserializer.h>
-#include "commonHelpers.h"
+#include "chronoHelpers.h"
#include "serviceStreamer.h"
#include "temporaryIceAdapterObject.h"
#include <slicer/slicer.h>
@@ -28,8 +28,8 @@ class TestService : public StandardMockDatabase {
public:
TestService()
{
- replace("Devices", new MockDevices(ic));
- replace("Schedules", new MockScheduler());
+ replace("Devices", std::make_shared<MockDevices>(ic));
+ replace("Schedules", std::make_shared<MockScheduler>());
}
};
@@ -37,7 +37,7 @@ class MockTarget : public RawDataClient {
public:
MockTarget() : bytesReceived(0) { }
- bool NewData(const Data & data, const Ice::Current &) override
+ bool NewData(const Data data, const Ice::Current &) override
{
bytesReceived += data.size();
return false;
@@ -55,11 +55,11 @@ BOOST_FIXTURE_TEST_SUITE( RecordingCore, TestClient );
BOOST_AUTO_TEST_CASE( streamServiceToTarget )
{
BOOST_TEST_CHECKPOINT("Create mock target");
- IceUtil::Handle<MockTarget> target = new MockTarget();
+ auto target = std::make_shared<MockTarget>();
TemporaryIceAdapterObject<RawDataClient> targetPrx(getAdapter(), target);
BOOST_TEST_CHECKPOINT("Create service streamer");
- auto ss = ServiceStreamerPtr(new ServiceStreamer(4170, targetPrx, devices, si, getAdapter()));
+ auto ss = std::make_shared<ServiceStreamer>(4170, targetPrx, devices, si, getAdapter());
BOOST_TEST_CHECKPOINT("Start");
ss->Start();
diff --git a/p2pvr/daemon/unittests/testSched.cpp b/p2pvr/daemon/unittests/testSched.cpp
index 18e375c..8450a4c 100644
--- a/p2pvr/daemon/unittests/testSched.cpp
+++ b/p2pvr/daemon/unittests/testSched.cpp
@@ -14,11 +14,12 @@
#include <boost/uuid/uuid_generators.hpp>
#include <boost/uuid/uuid_io.hpp>
#include <boost/lexical_cast.hpp>
-#include <commonHelpers.h>
+#include <chronoHelpers.h>
#include "mockDefs.h"
using namespace P2PVR;
using namespace P2PVR::Testing;
+using namespace std::literals;
namespace P2PVR {
namespace Testing {
@@ -26,8 +27,8 @@ class TestService : public StandardMockDatabasePlusOffset {
public:
TestService()
{
- replace("Devices", new MockDevices(ic));
- replace("Recorder", new MockRecorder());
+ replace("Devices", std::make_shared<MockDevices>(ic));
+ replace("Recorder", std::make_shared<MockRecorder>());
}
};
}
@@ -60,8 +61,8 @@ BOOST_AUTO_TEST_CASE( sc_getScheduled )
BOOST_AUTO_TEST_CASE( sc_crud )
{
- P2PVR::SchedulePtr schedule = new P2PVR::Schedule();
- schedule->Search = "Top Gear";
+ auto schedule = std::make_shared<P2PVR::Schedule>();
+ schedule->Search = "Top Gear"s;
schedule->ScheduleId = schedules->NewSchedule(schedule);
BOOST_REQUIRE_EQUAL(187, schedule->ScheduleId);
@@ -74,7 +75,7 @@ BOOST_AUTO_TEST_CASE( sc_crud )
BOOST_REQUIRE_EQUAL(schedule->Early, fetched->Early);
BOOST_REQUIRE_EQUAL(schedule->Late, fetched->Late);
- schedule->Search = "Top Gear Special";
+ schedule->Search = "Top Gear Special"s;
schedule->Early.Minutes = 5;
schedule->Late.Minutes = 15;
schedules->UpdateSchedule(schedule);
diff --git a/p2pvr/daemon/unittests/testSi.cpp b/p2pvr/daemon/unittests/testSi.cpp
index 73f92f3..a894155 100644
--- a/p2pvr/daemon/unittests/testSi.cpp
+++ b/p2pvr/daemon/unittests/testSi.cpp
@@ -13,9 +13,11 @@
#include <boost/uuid/uuid_io.hpp>
#include <boost/lexical_cast.hpp>
#include "mockDefs.h"
+#include "icetraySupport.h"
using namespace P2PVR;
using namespace P2PVR::Testing;
+using namespace std::literals;
BOOST_GLOBAL_FIXTURE( StandardMockDatabase );
@@ -68,19 +70,19 @@ BOOST_AUTO_TEST_CASE( si_getEventsInScheds )
BOOST_AUTO_TEST_CASE( si_getEventsInRange )
{
- si->EventsInRange(Common::DateTime {2014, 12, 19, 3, 0}, Common::DateTime {2014, 12, 20, 3, 0});
+ si->EventsInRange(Chrono::DateTime {2014, 12, 19, 3, 0}, Chrono::DateTime {2014, 12, 20, 3, 0});
}
BOOST_AUTO_TEST_CASE( si_getEventSearch )
{
- si->EventSearch("Top Gear", IceUtil::Optional< ::Ice::Int >(),
- IceUtil::Optional<Common::DateTime>(), IceUtil::Optional<Common::DateTime>());
- si->EventSearch("Top Gear", 22272,
- IceUtil::Optional<Common::DateTime>(), IceUtil::Optional<Common::DateTime>());
- si->EventSearch("Top Gear", 22272,
- Common::DateTime {2014, 12, 19, 3, 0}, IceUtil::Optional<Common::DateTime>());
- si->EventSearch("Top Gear", 22272,
- Common::DateTime {2014, 12, 19, 3, 0}, Common::DateTime {2014, 12, 20, 3, 0});
+ si->EventSearch("Top Gear"s, Ice::optional< ::Ice::Int >(),
+ Ice::optional<Chrono::DateTime>(), Ice::optional<Chrono::DateTime>());
+ si->EventSearch("Top Gear"s, 22272,
+ Ice::optional<Chrono::DateTime>(), Ice::optional<Chrono::DateTime>());
+ si->EventSearch("Top Gear"s, 22272,
+ Chrono::DateTime {2014, 12, 19, 3, 0}, Ice::optional<Chrono::DateTime>());
+ si->EventSearch("Top Gear"s, 22272,
+ Chrono::DateTime {2014, 12, 19, 3, 0}, Chrono::DateTime {2014, 12, 20, 3, 0});
}
BOOST_AUTO_TEST_CASE( si_getAllDeliveries )
@@ -93,7 +95,7 @@ BOOST_AUTO_TEST_CASE( si_getDeliveryForTransport )
{
auto del = si->GetDeliveryForTransport(4170);
BOOST_REQUIRE(del);
- auto dvbt = DVBSI::TerrestrialDeliveryPtr::dynamicCast(del);
+ auto dvbt = std::dynamic_pointer_cast<DVBSI::TerrestrialDelivery>(del);
BOOST_REQUIRE(dvbt);
BOOST_REQUIRE_EQUAL(dvbt->TransportStreamId, 4170);
}
@@ -102,7 +104,7 @@ BOOST_AUTO_TEST_CASE( si_getDeliveryForSI )
{
auto del = si->GetDeliveryForSi();
BOOST_REQUIRE(del);
- auto dvbt = DVBSI::TerrestrialDeliveryPtr::dynamicCast(del);
+ auto dvbt = std::dynamic_pointer_cast<DVBSI::TerrestrialDelivery>(del);
BOOST_REQUIRE(dvbt);
}
@@ -110,7 +112,7 @@ BOOST_AUTO_TEST_CASE( si_getDeliveryForService )
{
auto del = si->GetDeliveryForService(4170);
BOOST_REQUIRE(del);
- auto dvbt = DVBSI::TerrestrialDeliveryPtr::dynamicCast(del);
+ auto dvbt = std::dynamic_pointer_cast<DVBSI::TerrestrialDelivery>(del);
BOOST_REQUIRE(dvbt);
BOOST_REQUIRE_EQUAL(dvbt->TransportStreamId, 4170);
}
@@ -119,8 +121,10 @@ BOOST_AUTO_TEST_CASE( si_getServices )
{
auto services = si->GetServices();
BOOST_REQUIRE_EQUAL(services.size(), 145);
- BOOST_REQUIRE_EQUAL(services[0]->Name, "BBC ONE Yorks");
- BOOST_REQUIRE_EQUAL(services[0]->DefaultAuthority, "fp.bbc.co.uk");
+ BOOST_REQUIRE(services[0]->Name);
+ BOOST_REQUIRE_EQUAL(*services[0]->Name, "BBC ONE Yorks");
+ BOOST_REQUIRE(services[0]->DefaultAuthority);
+ BOOST_REQUIRE_EQUAL(*services[0]->DefaultAuthority, "fp.bbc.co.uk");
BOOST_REQUIRE_EQUAL(services[0]->EitSchedule, true);
BOOST_REQUIRE_EQUAL(services[0]->EitPresentFollowing, true);
}
@@ -128,8 +132,10 @@ BOOST_AUTO_TEST_CASE( si_getServices )
BOOST_AUTO_TEST_CASE( si_getService )
{
auto service = si->GetService(4170);
- BOOST_REQUIRE_EQUAL(service->Name, "BBC ONE Yorks");
- BOOST_REQUIRE_EQUAL(service->DefaultAuthority, "fp.bbc.co.uk");
+ BOOST_REQUIRE(service->Name);
+ BOOST_REQUIRE_EQUAL(*service->Name, "BBC ONE Yorks");
+ BOOST_REQUIRE(service->DefaultAuthority);
+ BOOST_REQUIRE_EQUAL(*service->DefaultAuthority, "fp.bbc.co.uk");
BOOST_REQUIRE_EQUAL(service->EitSchedule, true);
BOOST_REQUIRE_EQUAL(service->EitPresentFollowing, true);
}
diff --git a/p2pvr/daemon/unittests/testStorage.cpp b/p2pvr/daemon/unittests/testStorage.cpp
index e7eee95..f186f4f 100644
--- a/p2pvr/daemon/unittests/testStorage.cpp
+++ b/p2pvr/daemon/unittests/testStorage.cpp
@@ -9,7 +9,7 @@
#include <si.h>
#include <storage.h>
#include <boost/lexical_cast.hpp>
-#include <commonHelpers.h>
+#include <chronoHelpers.h>
#include <definedDirs.h>
#include "mockDefs.h"
@@ -37,9 +37,9 @@ BOOST_FIXTURE_TEST_SUITE( StCore, TestClient );
static
void
-runTest(RecordingsPrx recordings, StoragePrx storage)
+runTest(RecordingsPrxPtr recordings, StoragePrxPtr storage)
{
- auto id = recordings->NewRecording(new Recording(0, 8, 2556));
+ auto id = recordings->NewRecording(std::make_shared<Recording>(0, 8, 2556));
auto rdc = storage->OpenForWrite(id);
BOOST_REQUIRE(rdc);
auto stats1 = storage->GetVideoStats(id);