summaryrefslogtreecommitdiff
path: root/p2pvr/daemon
diff options
context:
space:
mode:
authorrandomdan <randomdan@localhost>2013-11-28 20:56:20 +0000
committerrandomdan <randomdan@localhost>2013-11-28 20:56:20 +0000
commit79eec1ed7f52b06395417bae225132be99f6b92e (patch)
treeab3f8706b07314bfe9ada95a3df8ea975eb8ea74 /p2pvr/daemon
parentCompat fixes for recent p2 updates (diff)
downloadp2pvr-79eec1ed7f52b06395417bae225132be99f6b92e.tar.bz2
p2pvr-79eec1ed7f52b06395417bae225132be99f6b92e.tar.xz
p2pvr-79eec1ed7f52b06395417bae225132be99f6b92e.zip
First commit for big refactor into a Project2 daemon, much still to do, but much core stuff in place
Diffstat (limited to 'p2pvr/daemon')
-rw-r--r--p2pvr/daemon/Jamfile.jam10
-rw-r--r--p2pvr/daemon/daemon.cpp64
2 files changed, 74 insertions, 0 deletions
diff --git a/p2pvr/daemon/Jamfile.jam b/p2pvr/daemon/Jamfile.jam
new file mode 100644
index 0000000..7379c7a
--- /dev/null
+++ b/p2pvr/daemon/Jamfile.jam
@@ -0,0 +1,10 @@
+lib Ice ;
+lib IceUtil ;
+
+lib p2pvrdaemon :
+ [ glob *.cpp ]
+ :
+ <library>..//p2daemonlib
+ <library>../ice//p2pvrice
+ <library>../lib//p2pvrlib
+ ;
diff --git a/p2pvr/daemon/daemon.cpp b/p2pvr/daemon/daemon.cpp
new file mode 100644
index 0000000..de470d3
--- /dev/null
+++ b/p2pvr/daemon/daemon.cpp
@@ -0,0 +1,64 @@
+#include <daemon.h>
+#include <options.h>
+#include <Ice/Ice.h>
+#include "localDevices.h"
+#include "globalDevices.h"
+#include "maintenance.h"
+#include "si.h"
+#include <logger.h>
+
+#include <linux/dvb/frontend.h>
+
+class P2PvrDaemon : public Daemon {
+ public:
+ P2PvrDaemon(int argc, char ** argv) :
+ ic(Ice::initialize(argc, argv))
+ {
+ }
+
+ ~P2PvrDaemon()
+ {
+ ic->destroy();
+ }
+
+ void run() const
+ {
+ Logger()->messagebf(LOG_INFO, "Creating adapter (%s, %s)", Adapter, Endpoint);
+ auto adapter = ic->createObjectAdapterWithEndpoints(Adapter, Endpoint);
+ adapter->add(new LocalDevices(), ic->stringToIdentity("Devices"));
+ adapter->add(new GlobalDevices(), ic->stringToIdentity("GlobalDevices"));
+ adapter->add(new Maintenance(), ic->stringToIdentity("Maintenance"));
+ adapter->add(new SI(), ic->stringToIdentity("SI"));
+ adapter->activate();
+
+ auto maint = P2PVR::MaintenancePrx::checkedCast(adapter->createProxy(ic->stringToIdentity("Maintenance")));
+ maint->UpdateTransports(FE_OFDM);
+ maint->UpdateServices(FE_OFDM);
+ maint->UpdateEvents(FE_OFDM);
+
+ //ic->waitForShutdown();
+ }
+
+ void shutdown() const
+ {
+ ic->shutdown();
+ }
+ INITOPTIONS;
+
+ private:
+ Ice::CommunicatorPtr ic;
+
+ static std::string Adapter;
+ static std::string Endpoint;
+};
+
+std::string P2PvrDaemon::Adapter;
+std::string P2PvrDaemon::Endpoint;
+
+DECLARE_GENERIC_LOADER("p2pvrdaemon", DaemonLoader, P2PvrDaemon);
+
+DECLARE_OPTIONS(P2PvrDaemon, "P2PVR Daemon")
+("p2pvr.daemon.iceadapter", Options::value(&Adapter, "DefaultAdapter"), "ICE Adapter name")
+("p2pvr.daemon.iceendpoint", Options::value(&Endpoint, "default -p 10000"), "ICE Endpoint address")
+END_OPTIONS(P2PvrDaemon);
+