diff options
author | randomdan <randomdan@localhost> | 2013-11-28 20:56:20 +0000 |
---|---|---|
committer | randomdan <randomdan@localhost> | 2013-11-28 20:56:20 +0000 |
commit | 79eec1ed7f52b06395417bae225132be99f6b92e (patch) | |
tree | ab3f8706b07314bfe9ada95a3df8ea975eb8ea74 /p2pvr/daemon | |
parent | Compat fixes for recent p2 updates (diff) | |
download | p2pvr-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.jam | 10 | ||||
-rw-r--r-- | p2pvr/daemon/daemon.cpp | 64 |
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); + |