def __init__(self): self._task_runner = TaskRunner() self._server = UPnPServer(self._task_runner, SERVER_PRODUCT_NAME, SERVER_ROOT_DEVICE_CONFIG) self._client = UPnPClient(self._task_runner) # Add a couple of services self._server.add_service(SwitchPower("SwitchPower")) self._server.add_service(URLService("URLService")) self._server.add_service(BookmarkService()) # Console Namespace namespace = {} namespace['S'] = self._server namespace['C'] = self._client self._console = ObjectConsole(self, namespace, run="_run", stop="_stop", name="UPnP")
def get_upnp_server(self): """Get a referance to the UPnPServer instance.""" if self._upnp_server == None: task_runner = self._get_task_runner() from Tribler.UPnP.upnpserver import UPnPServer self._upnp_server = UPnPServer(task_runner, SERVER_PRODUCT_NAME, SERVER_ROOT_DEVICE_CONFIG, logger=_LOGGER) # Wrap close method self._real_server_close = self._upnp_server.close self._upnp_server.close = self._wrap_server_close return self._upnp_server
class UPnPConsole: """This class wraps ObjectConsole to implement a custom UPnP console.""" def __init__(self): self._task_runner = TaskRunner() self._server = UPnPServer(self._task_runner, SERVER_PRODUCT_NAME, SERVER_ROOT_DEVICE_CONFIG) self._client = UPnPClient(self._task_runner) # Add a couple of services self._server.add_service(SwitchPower("SwitchPower")) self._server.add_service(URLService("URLService")) self._server.add_service(BookmarkService()) # Console Namespace namespace = {} namespace['S'] = self._server namespace['C'] = self._client self._console = ObjectConsole(self, namespace, run="_run", stop="_stop", name="UPnP") def _run(self): """Run the TaskRunner.""" self._task_runner.run_forever() def _stop(self): """ Internal: Stop the UPnPClient, UPnPServer and the TaskRunner. """ self._client.close() self._server.close() self._task_runner.stop() def run(self): """Runs the UPnP Console.""" self._console.run()