def from_station_url(cls, url): inet_address = InetAddress(url["address"], url["port"]) station_address = StationAddress(inet_address, 0) return cls( station_address, url["PID"], url["CID"], url["RVCID"], url.get_type_id(), url["sid"], url["stream"], url["natm"], url["natf"], url["type"], url["probeinit"] )
def set_station_url(self, url): self.address = StationAddress() self.address.address = InetAddress(url["address"], url["port"]) self.address.extension_id = 0 self.pid = url["PID"] self.cid = url["CID"] self.rvcid = url["RVCID"] self.url_type = url.get_type_id() self.sid = url["sid"] self.stream_type = url["stream"] self.natm = url["natm"] self.natf = url["natf"] self.type = url["type"] self.probeinit = url["probeinit"]
def handle_destroy_mesh(self, station, message): logger.info("Received destroy request") station_address = StationAddress.deserialize(message[4:]) station_index = message[1] self.on_destroy_request(station, station_index, station_address)
def handle_join_request(self, station, message): logger.info("Received join request") station_address = StationAddress.deserialize(message[4:]) station_index = message[1] self.station_protocol.send_ack(station, message) self.on_join_request(station, station_index, station_address)
def sizeof(): return StationAddress.sizeof() + 19 class StationConnectionInfo(collections.namedtuple("StationConnectionInfo", "public_station local_station")):
def deserialize(cls, data): address = StationAddress.deserialize(data) args = struct.unpack_from(cls.fmt, data, address.sizeof()) return cls(address, *args)
def station_address(self): return StationAddress(self.inet_address(), 0)
def handle_destroy_mesh(self, station, message): station_address = StationAddress.deserialize(message[4:]) station_index = message[1] self.on_destroy_request(station, station_index, station_address)
def handle_leave_response(self, station, message): station_address = StationAddress.deserialize(message[4:]) station_index = message[1] self.on_leave_response(station, station_index, station_address)
def sizeof(): return StationAddress.sizeof() + 19