diff options
-rw-r--r-- | p2pvr/daemon/dbClient.h | 8 | ||||
-rw-r--r-- | p2pvr/daemon/recordings.cpp | 3 | ||||
-rw-r--r-- | p2pvr/daemon/schedules.cpp | 7 |
3 files changed, 11 insertions, 7 deletions
diff --git a/p2pvr/daemon/dbClient.h b/p2pvr/daemon/dbClient.h index cd846e5..1fc12e8 100644 --- a/p2pvr/daemon/dbClient.h +++ b/p2pvr/daemon/dbClient.h @@ -11,6 +11,7 @@ #include <sqlVariableBinder.h> #include <sqlHandleAsVariableType.h> #include "p2Helpers.h" +#include <slicer/slicer.h> class SqlMergeTask; @@ -40,6 +41,13 @@ class DatabaseClient : public virtual CommonObjects { return {db, cmd}; } + template <typename SerializerType, typename Obj, typename ... ExtraArgs> + void Store(const Obj & o, const ExtraArgs & ... ea) const + { + auto db = dataSource<RdbmsDataSource>("postgres")->getWritable(); + Slicer::SerializeAny<SerializerType>(o, db.get(), ea...); + } + template <typename... Args> std::pair<RdbmsDataSource::ConnectionRef, SelectPtr> Select(const std::string & sql, const Args & ... args) const { diff --git a/p2pvr/daemon/recordings.cpp b/p2pvr/daemon/recordings.cpp index 547b3bf..ac8f27a 100644 --- a/p2pvr/daemon/recordings.cpp +++ b/p2pvr/daemon/recordings.cpp @@ -16,8 +16,7 @@ Recordings::NewRecording(const P2PVR::RecordingPtr & r, const Ice::Current &) { Logger()->messagebf(LOG_INFO, "%s: Creating new recording %s at %s", __PRETTY_FUNCTION__, r->Guid, r->StorageAddress); TxHelper tx(this); - auto db = dataSource<RdbmsDataSource>("postgres")->getWritable(); - Slicer::SerializeAny<Slicer::SqlFetchIdInsertSerializer>(r, db.get(), "recordings"); + Store<Slicer::SqlFetchIdInsertSerializer>(r, "recordings"); Logger()->messagebf(LOG_INFO, "%s: Created recording Id: %d", __PRETTY_FUNCTION__, r->RecordingId); return r->RecordingId; } diff --git a/p2pvr/daemon/schedules.cpp b/p2pvr/daemon/schedules.cpp index 6a985c3..90a42a9 100644 --- a/p2pvr/daemon/schedules.cpp +++ b/p2pvr/daemon/schedules.cpp @@ -14,7 +14,6 @@ #include <slicer/db/sqlSelectDeserializer.h> #include <slicer/db/sqlInsertSerializer.h> #include <slicer/db/sqlUpdateSerializer.h> -#include <slicer/slicer.h> #include <p2pvr-int.h> #include <privateExecContext.h> @@ -334,8 +333,7 @@ Ice::Int Schedules::NewSchedule(const P2PVR::SchedulePtr & s, const Ice::Current & ice) { TxHelper tx(this); - auto db = dataSource<RdbmsDataSource>("postgres")->getWritable(); - Slicer::SerializeAny<Slicer::SqlFetchIdInsertSerializer>(s, db.get(), "schedules"); + Store<Slicer::SqlFetchIdInsertSerializer>(s, "schedules"); DoReschedule(ice); return s->ScheduleId; } @@ -344,8 +342,7 @@ void Schedules::UpdateSchedule(const P2PVR::SchedulePtr & s, const Ice::Current & ice) { TxHelper tx(this); - auto db = dataSource<RdbmsDataSource>("postgres")->getWritable(); - Slicer::SerializeAny<Slicer::SqlUpdateSerializer>(s, db.get(), "schedules"); + Store<Slicer::SqlUpdateSerializer>(s, "schedules"); DoReschedule(ice); } |