diff options
| -rw-r--r-- | p2pvr/daemon/containerIterator.h | 2 | ||||
| -rw-r--r-- | p2pvr/daemon/maintenance/events.cpp | 16 | ||||
| -rw-r--r-- | p2pvr/daemon/maintenance/network.cpp | 11 | ||||
| -rw-r--r-- | p2pvr/daemon/maintenance/services.cpp | 5 | ||||
| -rw-r--r-- | p2pvr/daemon/privateExecContext.cpp | 14 | ||||
| -rw-r--r-- | p2pvr/daemon/privateExecContext.h | 13 | ||||
| -rw-r--r-- | p2pvr/daemon/schedules.cpp | 4 | ||||
| -rw-r--r-- | p2pvr/daemon/unittests/testErrorHandling.cpp | 3 | ||||
| -rw-r--r-- | p2pvr/daemon/unittests/testMaint.cpp | 3 | ||||
| -rw-r--r-- | p2pvr/daemon/unittests/testRecording.cpp | 4 | ||||
| -rw-r--r-- | p2pvr/daemon/unittests/testRecordings.cpp | 3 | ||||
| -rw-r--r-- | p2pvr/daemon/unittests/testSched.cpp | 3 | ||||
| -rw-r--r-- | p2pvr/daemon/unittests/testSi.cpp | 3 | ||||
| -rw-r--r-- | p2pvr/daemon/unittests/testSqlSelectDeserializer.cpp | 3 | ||||
| -rw-r--r-- | p2pvr/daemon/unittests/testStorage.cpp | 3 | ||||
| -rw-r--r-- | p2pvr/daemon/unittests/testp2ice.cpp | 3 | 
16 files changed, 70 insertions, 23 deletions
| diff --git a/p2pvr/daemon/containerIterator.h b/p2pvr/daemon/containerIterator.h index 14c339d..88976af 100644 --- a/p2pvr/daemon/containerIterator.h +++ b/p2pvr/daemon/containerIterator.h @@ -20,7 +20,7 @@ class ContainerIterator : public IHaveSubTasks {  			ObjectRowStateTmpl<typename T::value_type> rs;  			for (const auto & i : *container) {  				binder(rs, i); -				rs.process(boost::bind(&ContainerIterator::executeChildren, this, ec)); +				rs.process(ec, boost::bind(&ContainerIterator::executeChildren, this, ec));  			}  		} diff --git a/p2pvr/daemon/maintenance/events.cpp b/p2pvr/daemon/maintenance/events.cpp index 9a22cd9..7029398 100644 --- a/p2pvr/daemon/maintenance/events.cpp +++ b/p2pvr/daemon/maintenance/events.cpp @@ -8,21 +8,25 @@  #include <temporaryIceAdapterObject.h>  #include <commonHelpers.h>  #include <resources.h> +#include <privateExecContext.h>  ResourceString(Maint_pruneEvents, sql_Maint_pruneEvents);  class SiEventsHandler : public SiEpgParser {  	public: -		SiEventsHandler(const RowProcessorCallback & cb, const SelectedColumns & sc) : +		SiEventsHandler(const RowProcessorCallback & cb, ExecContext * e, const SelectedColumns & sc) :  			ecs(sc), -			callBack(cb) {} +			callBack(cb), +			ec(e) +		{ +		}  		bool HandleTable(DVBSI::EventPtr e)  		{  			Logger()->messagebf(LOG_DEBUG, "Service Id: %d Program Id: %d Title: %s Time: %s - %s",  					e->ServiceId, e->EventId, e->Title, e->StartTime, e->StopTime);  			BindColumns<DVBSI::EventPtr>(rowState, ecs, e); -			rowState.process(callBack); +			rowState.process(ec, callBack);  			return false;  		} @@ -30,6 +34,7 @@ class SiEventsHandler : public SiEpgParser {  		ObjectRowStateTmpl<DVBSI::EventPtr> rowState;  		const SelectedColumns & ecs;  		const RowProcessorCallback callBack; +		ExecContext * ec;  };  class SiEventsMerger : public IHaveSubTasks { @@ -51,7 +56,7 @@ class SiEventsMerger : public IHaveSubTasks {  			}  			TemporaryIceAdapterObject<P2PVR::RawDataClient> parser(ice.adapter, -					new SiEventsHandler(boost::bind(&SiEventsMerger::executeChildren, this, ec), ecs)); +					new SiEventsHandler(boost::bind(&SiEventsMerger::executeChildren, this, ec), ec, ecs));  			auto delivery = si->GetDeliveryForSi();  			if (!delivery) { @@ -81,13 +86,14 @@ void  Maintenance::UpdateEvents(const Ice::Current & ice)  {  	TxHelper tx(this); +	PrivateExecContext ec;  	SqlMergeTask mergeEvents("postgres", "events");  	auto ecs = CreateColumns<DVBSI::EventPtr>(boost::bind(SqlMergeColumnsInserter, &mergeEvents, _1, _2));  	mergeEvents.sources.insert(new SiEventsMerger(ice, ecs));  	mergeEvents.insteadOfDelete = new DynamicSql::SqlText("SET current = false");  	mergeEvents.updateWhere = new DynamicSql::SqlText("a.current");  	mergeEvents.loadComplete(this); -	mergeEvents.execute(NULL); +	mergeEvents.execute(&ec);  	Modify(Maint_pruneEvents).second->execute();  	tx.Commit();  	Logger()->messagebf(LOG_INFO, "%s: Updated events", __PRETTY_FUNCTION__); diff --git a/p2pvr/daemon/maintenance/network.cpp b/p2pvr/daemon/maintenance/network.cpp index 0152a29..fdf2c8e 100644 --- a/p2pvr/daemon/maintenance/network.cpp +++ b/p2pvr/daemon/maintenance/network.cpp @@ -6,8 +6,9 @@  #include <p2Helpers.h>  #include <containerIterator.h>  #include <temporaryIceAdapterObject.h> +#include <privateExecContext.h> -class SiNetworkInformationMerger : public SiNetworkInformationParser { +class SiNetworkInformationMerger : public SiNetworkInformationParser, public PrivateExecContext {  	public:  		SiNetworkInformationMerger(DatabaseClient * co) : commonObjects(co) { } @@ -30,13 +31,13 @@ class SiNetworkInformationMerger : public SiNetworkInformationParser {  			std::vector<DVBSI::NetworkPtr> networks = { n };  			mergeNetwork.sources.insert(new ContainerIterator<std::vector<DVBSI::NetworkPtr>>(&networks, ncs));  			mergeNetwork.loadComplete(commonObjects); -			mergeNetwork.execute(NULL); +			mergeNetwork.execute(this);  			SqlMergeTask mergeTransports("postgres", "transportstreams");  			auto tscs = CreateColumns<DVBSI::NetworkTransportStreamPtr>(boost::bind(&DatabaseClient::SqlMergeColumnsInserter, &mergeTransports, _1, _2));  			mergeTransports.sources.insert(new ContainerIterator<DVBSI::NetworkTransportStreams>(&n->TransportStreams, tscs));  			mergeTransports.loadComplete(commonObjects); -			mergeTransports.execute(NULL); +			mergeTransports.execute(this);  			mergeDelivery<DVBSI::TerrestrialDeliveryPtr, &DVBSI::NetworkTransportStream::Terrestrial>("delivery_dvbt", n);  			mergeDelivery<DVBSI::SatelliteDeliveryPtr, &DVBSI::NetworkTransportStream::Satellite>("delivery_dvbs", n); @@ -48,7 +49,7 @@ class SiNetworkInformationMerger : public SiNetworkInformationParser {  				mergeServices.sources.insert(new ContainerIterator<DVBSI::NetworkServiceList>(&s->Services, scs));  			}  			mergeServices.loadComplete(commonObjects); -			mergeServices.execute(NULL); +			mergeServices.execute(this);  			return false;  		}  	private: @@ -65,7 +66,7 @@ class SiNetworkInformationMerger : public SiNetworkInformationParser {  			}  			merge.sources.insert(new ContainerIterator<decltype(dels)>(&dels, dcs));  			merge.loadComplete(commonObjects); -			merge.execute(NULL); +			merge.execute(this);  		}  		DatabaseClient * commonObjects;  }; diff --git a/p2pvr/daemon/maintenance/services.cpp b/p2pvr/daemon/maintenance/services.cpp index 6619d42..e5edbc5 100644 --- a/p2pvr/daemon/maintenance/services.cpp +++ b/p2pvr/daemon/maintenance/services.cpp @@ -6,8 +6,9 @@  #include <p2Helpers.h>  #include <containerIterator.h>  #include <temporaryIceAdapterObject.h> +#include <privateExecContext.h> -class SiServicesMerger : public SiServicesParser { +class SiServicesMerger : public SiServicesParser, public PrivateExecContext {  	public:  		SiServicesMerger(DatabaseClient * co) : commonObjects(co) { } @@ -29,7 +30,7 @@ class SiServicesMerger : public SiServicesParser {  			mergeServices.doInsert = VariableType(false);  			mergeServices.sources.insert(new ContainerIterator<DVBSI::ServiceList>(&ts->Services, scs));  			mergeServices.loadComplete(commonObjects); -			mergeServices.execute(NULL); +			mergeServices.execute(this);  			return false;  		} diff --git a/p2pvr/daemon/privateExecContext.cpp b/p2pvr/daemon/privateExecContext.cpp new file mode 100644 index 0000000..47c5773 --- /dev/null +++ b/p2pvr/daemon/privateExecContext.cpp @@ -0,0 +1,14 @@ +#include "privateExecContext.h" + +VariableType +PrivateExecContext::getParameter(const VariableType &) const +{ +	throw NotSupported(__PRETTY_FUNCTION__); +} + +SessionPtr +PrivateExecContext::getSession() const +{ +	throw NotSupported(__PRETTY_FUNCTION__); +} + diff --git a/p2pvr/daemon/privateExecContext.h b/p2pvr/daemon/privateExecContext.h new file mode 100644 index 0000000..1d336b0 --- /dev/null +++ b/p2pvr/daemon/privateExecContext.h @@ -0,0 +1,13 @@ +#ifndef PRIVATEEXECCONTENT_H +#define PRIVATEEXECCONTENT_H + +#include <execContext.h> + +class PrivateExecContext : public ExecContext { +	public: +		VariableType getParameter(const VariableType & key) const; +		SessionPtr getSession() const; +}; + +#endif + diff --git a/p2pvr/daemon/schedules.cpp b/p2pvr/daemon/schedules.cpp index 674dd87..5e3881d 100644 --- a/p2pvr/daemon/schedules.cpp +++ b/p2pvr/daemon/schedules.cpp @@ -14,6 +14,7 @@  #include "sqlSelectDeserializer.h"  #include <slicer/slicer.h>  #include <p2pvr-int.h> +#include <privateExecContext.h>  ResourceString(Schedules_getCandidates, sql_Schedules_getCandidates);  ResourceString(Schedules_insert, sql_Schedules_insert); @@ -284,11 +285,12 @@ Schedules::DoReschedule(const Ice::Current & ice)  	}  	TxHelper tx(this); +	PrivateExecContext ec;  	SqlMergeTask mergeRecords("postgres", "record");  	auto rcs = CreateColumns<P2PVR::ScheduledToRecordPtr>(boost::bind(&DatabaseClient::SqlMergeColumnsInserter, &mergeRecords, _1, _2));  	mergeRecords.sources.insert(new ContainerIterator<P2PVR::ScheduledToRecordList>(&records, rcs));  	mergeRecords.loadComplete(this); -	mergeRecords.execute(NULL); +	mergeRecords.execute(&ec);  	tx.Commit();  	auto recorder = P2PVR::RecorderPrx::checkedCast(ice.adapter->createProxy(ice.adapter->getCommunicator()->stringToIdentity("Recorder"))); diff --git a/p2pvr/daemon/unittests/testErrorHandling.cpp b/p2pvr/daemon/unittests/testErrorHandling.cpp index ca5bd63..9c720a2 100644 --- a/p2pvr/daemon/unittests/testErrorHandling.cpp +++ b/p2pvr/daemon/unittests/testErrorHandling.cpp @@ -16,8 +16,9 @@  #include <siParsers/network.h>  #include <temporaryIceAdapterObject.h>  #include "mockDefs.h" +#include <testAppInstance.h> -class Core { +class Core : public TestAppInstance {  	public:  		Core()  		{ diff --git a/p2pvr/daemon/unittests/testMaint.cpp b/p2pvr/daemon/unittests/testMaint.cpp index f8340af..0d7d5a0 100644 --- a/p2pvr/daemon/unittests/testMaint.cpp +++ b/p2pvr/daemon/unittests/testMaint.cpp @@ -17,8 +17,9 @@  #include "sqlSelectDeserializer.h"  #include "commonHelpers.h"  #include <slicer/slicer.h> +#include <testAppInstance.h> -class Core : public CommonObjects { +class Core : public CommonObjects, public TestAppInstance {  	public:  		Core()  		{ diff --git a/p2pvr/daemon/unittests/testRecording.cpp b/p2pvr/daemon/unittests/testRecording.cpp index 4e49916..720b868 100644 --- a/p2pvr/daemon/unittests/testRecording.cpp +++ b/p2pvr/daemon/unittests/testRecording.cpp @@ -19,9 +19,9 @@  #include "serviceStreamer.h"  #include "temporaryIceAdapterObject.h"  #include <slicer/slicer.h> +#include <testAppInstance.h> - -class Core : public CommonObjects { +class Core : public CommonObjects, public TestAppInstance {  	public:  		Core()  		{ diff --git a/p2pvr/daemon/unittests/testRecordings.cpp b/p2pvr/daemon/unittests/testRecordings.cpp index c0496d3..eb3d5db 100644 --- a/p2pvr/daemon/unittests/testRecordings.cpp +++ b/p2pvr/daemon/unittests/testRecordings.cpp @@ -15,8 +15,9 @@  #include <boost/uuid/uuid_io.hpp>  #include <boost/lexical_cast.hpp>  #include "mockDefs.h" +#include <testAppInstance.h> -class Core { +class Core : public TestAppInstance {  	public:  		Core()  		{ diff --git a/p2pvr/daemon/unittests/testSched.cpp b/p2pvr/daemon/unittests/testSched.cpp index bfa8567..3a513d0 100644 --- a/p2pvr/daemon/unittests/testSched.cpp +++ b/p2pvr/daemon/unittests/testSched.cpp @@ -16,8 +16,9 @@  #include <boost/lexical_cast.hpp>  #include <commonHelpers.h>  #include "mockDefs.h" +#include <testAppInstance.h> -class Core { +class Core : public TestAppInstance {  	public:  		Core()  		{ diff --git a/p2pvr/daemon/unittests/testSi.cpp b/p2pvr/daemon/unittests/testSi.cpp index c0f3fdf..6cc810b 100644 --- a/p2pvr/daemon/unittests/testSi.cpp +++ b/p2pvr/daemon/unittests/testSi.cpp @@ -13,8 +13,9 @@  #include <boost/uuid/uuid_io.hpp>  #include <boost/lexical_cast.hpp>  #include "mockDefs.h" +#include <testAppInstance.h> -class Core { +class Core : public TestAppInstance {  	public:  		Core()  		{ diff --git a/p2pvr/daemon/unittests/testSqlSelectDeserializer.cpp b/p2pvr/daemon/unittests/testSqlSelectDeserializer.cpp index b109c04..2608fd8 100644 --- a/p2pvr/daemon/unittests/testSqlSelectDeserializer.cpp +++ b/p2pvr/daemon/unittests/testSqlSelectDeserializer.cpp @@ -11,10 +11,11 @@  #include <definedDirs.h>  #include <commonHelpers.h>  #include "mockDefs.h" +#include <testAppInstance.h>  typedef boost::shared_ptr<DB::SelectCommand> SelectPtr; -class TestCommonObjects : public CommonObjects { +class TestCommonObjects : public CommonObjects, public TestAppInstance {  	public:  		TestCommonObjects()  		{ diff --git a/p2pvr/daemon/unittests/testStorage.cpp b/p2pvr/daemon/unittests/testStorage.cpp index 5480566..973e93b 100644 --- a/p2pvr/daemon/unittests/testStorage.cpp +++ b/p2pvr/daemon/unittests/testStorage.cpp @@ -10,9 +10,10 @@  #include <storage.h>  #include <boost/lexical_cast.hpp>  #include <commonHelpers.h> +#include <testAppInstance.h>  const boost::filesystem::path rootDir = "/tmp/ut/p2pvr/recordings"; -class Core { +class Core : public TestAppInstance {  	public:  		Core()  		{ diff --git a/p2pvr/daemon/unittests/testp2ice.cpp b/p2pvr/daemon/unittests/testp2ice.cpp index 23fcbdc..4d29cc9 100644 --- a/p2pvr/daemon/unittests/testp2ice.cpp +++ b/p2pvr/daemon/unittests/testp2ice.cpp @@ -4,6 +4,7 @@  #include <testOptionsSource.h>  #include <definedDirs.h>  #include <sourceObject.h> +#include <testAppInstance.h>  const boost::filesystem::path variant = BinDir.leaf();  const boost::filesystem::path compiler = BinDir.parent_path().leaf(); @@ -29,6 +30,8 @@ unloadTests()  	BOOST_WARN_THROW(ElementLoader::getFor("p2pvrservicestream"), NotSupported);  } +BOOST_GLOBAL_FIXTURE( TestAppInstance ); +  BOOST_AUTO_TEST_CASE( compile_client_clientOnly )  {  	TestOptionsSource::LoadTestOptions({ }); | 
