diff options
Diffstat (limited to 'p2pvr/carddaemon/carddaemon.cpp')
-rw-r--r-- | p2pvr/carddaemon/carddaemon.cpp | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/p2pvr/carddaemon/carddaemon.cpp b/p2pvr/carddaemon/carddaemon.cpp new file mode 100644 index 0000000..f75109e --- /dev/null +++ b/p2pvr/carddaemon/carddaemon.cpp @@ -0,0 +1,53 @@ +#include <daemon.h> +#include <options.h> +#include <logger.h> +#include <Ice/Ice.h> +#include "localDevices.h" + +class P2PvrCardDaemon : public Daemon { + public: + P2PvrCardDaemon(int argc, char ** argv) : + ic(Ice::initialize(argc, argv)) + { + } + + ~P2PvrCardDaemon() + { + ic->destroy(); + } + + void run() const + { + Logger()->messagebf(LOG_INFO, "Creating adapter (%s, %s)", Adapter, Endpoint); + auto adapter = ic->createObjectAdapterWithEndpoints(Adapter, Endpoint); + P2PVR::LocalDevicesPrx::checkedCast(adapter->add(new LocalDevices(), ic->stringToIdentity(Identity))); + adapter->activate(); + ic->waitForShutdown(); + } + + void shutdown() const + { + ic->shutdown(); + } + INITOPTIONS; + + private: + Ice::CommunicatorPtr ic; + + static std::string Adapter; + static std::string Endpoint; + static std::string Identity; +}; + +std::string P2PvrCardDaemon::Adapter; +std::string P2PvrCardDaemon::Endpoint; +std::string P2PvrCardDaemon::Identity; + +DECLARE_GENERIC_LOADER("p2pvrcarddaemon", DaemonLoader, P2PvrCardDaemon); + +DECLARE_OPTIONS(P2PvrCardDaemon, "P2PVR Card Daemon") +("p2pvr.carddaemon.iceadapter", Options::value(&Adapter, "DefaultAdapter"), "ICE Adapter name") +("p2pvr.carddaemon.iceendpoint", Options::value(&Endpoint, "default -p 10001"), "ICE Endpoint address") +("p2pvr.carddaemon.iceidentity", Options::value(&Identity, "Devices"), "ICE Interface identity") +END_OPTIONS(P2PvrCardDaemon); + |