def __init__(self, ssdp, start=True, interval=DEFAULT_SEARCH_TIME, ssdp_addr=DEFAULT_SSDP_ADDR, ssdp_port=1900): """ Constructor for the MSearch class. @param ssdp: ssdp server instance that will receive new device events and subscriptions @param start: if True starts the search when constructed @param interval: interval between searchs @param ssdp_addr: ssdp address for listening (UDP) @param ssdp_port: ssdp port for listening (UDP) @type ssdp: SSDPServer @type start: boolean @type interval: float @type ssdp_addr: string @type ssdp_port integer """ self.ssdp = ssdp self.ssdp_addr = ssdp_addr self.ssdp_port = ssdp_port self.udp_transport = UDPTransport() self.listen_udp = UDPListener(ssdp_addr, data_callback=self._datagram_received, shared_socket=self.udp_transport.socket) self.loopcall = LoopingCall(self.double_discover) if start: self.start(interval)
def __init__(self, control_point, start=True): """ Constructor for the MulticastEventListener class. @param ssdp: ssdp server instance that will receive new device events and subscriptions @param start: if True starts the search when constructed @param ssdp_addr: ssdp address for listening (UDP) @param ssdp_port: ssdp port for listening (UDP) @type ssdp: SSDPServer @type start: boolean @type ssdp_addr: string @type ssdp_port integer """ self.udp_transport = UDPTransport() self.listen_udp = UDPListener(UPnPDefaults.MULTICAST_EVENT_ADDR, UPnPDefaults.MULTICAST_EVENT_PORT, data_callback=self._datagram_received, shared_socket=self.udp_transport.socket) self.control_point = control_point if start: self.start()
def __init__(self, parent_udn, service, event_reload_time, force_event_reload): self.service = service self.parent_udn = parent_udn self.udp_transport = UDPTransport() self.listen_udp = UDPListener(UPnPDefaults.MULTICAST_EVENT_ADDR, UPnPDefaults.MULTICAST_EVENT_PORT, data_callback=self._datagram_received, shared_socket=self.udp_transport.socket) self.eventing_variables = {} self.event_key = 0 self.event_reload_time = event_reload_time self.force_event_reload = force_event_reload if not self.force_event_reload: self.l_call = LoopingCall(self.send_variables) reactor.add_after_stop_func(self.stop) self._is_running = False
def __init__(self, server_name, xml_description_filename, max_age=1800, receive_notify=True, http_version="1.1", search_type="sspd:all", additional_headers={}): """ Constructor for the SSDPServer class. @param server_name: server name @param xml_description_filename: XML description filename @param max_age: max age parameter, default 1800. @param receive_notify: if False, ignores notify messages @type server_name: string @type xml_description_filename: @type max_age: integer @type receive_notify: boolean """ self.server_name = server_name self.xml_description_filename = xml_description_filename self.max_age = max_age self.receive_notify = receive_notify self.running = False self.http_version = http_version self.known_device = {} self.advertised = {} self._callbacks = {} self.additional_headers = additional_headers self.search_type = search_type self.udp_transport = UDPTransport() self.udp_listener = UDPListener(SSDP_ADDR, SSDP_PORT, data_callback=self._datagram_received) self.renew_loop = LoopingCall(self._renew_notifications) self.renew_loop.start(0.8 * self.max_age, now=True)
def __init__(self, server_name, xml_description_filename, max_age=1800, receive_notify=True, udp_listener=''): """ Constructor for the SSDPServer class. @param server_name: server name @param xml_description_filename: XML description filename @param max_age: max age parameter, default 1800. @param receive_notify: if False, ignores notify messages @type server_name: string @type xml_description_filename: @type max_age: integer @type receive_notify: boolean """ self.server_name = server_name self.xml_description_filename = xml_description_filename self.max_age = max_age log.debug("max_age: %s", max_age) self.receive_notify = receive_notify self.running = False self.known_device = {} self.advertised = {} self._callbacks = {} self.udp_transport = UDPTransport() if udp_listener == '': self.udp_listener = UDPListener( SSDP_ADDR, SSDP_PORT, data_callback=self._datagram_received) else: self.udp_listener = None udp_listener.subscribe(self) self.renew_loop = LoopingCall(self._renew_notifications) self.renew_loop.start(0.8 * self.max_age, now=True)