def __init__(self, msg, port, interval): # mcgroup = None or '<broadcast>' is broadcast # mcgroup = MC_GROUP is default multicast group self._sender = MulticastSender(port, mcgroup=MC_GROUP) self._interval = interval self._message = msg self._do_run = False self._is_running = False self._thread = threading.Thread(target=self._run)
def __init__(self, msg, port, interval, designated_receivers=None): if designated_receivers: self._sender = DesignatedReceiversSender(port, designated_receivers) else: # mcgroup = None or '<broadcast>' is broadcast # mcgroup = MC_GROUP is default multicast group self._sender = MulticastSender(port, mcgroup=MC_GROUP) self._interval = interval self._message = msg self._do_run = False self._is_running = False self._thread = threading.Thread(target=self._run)
class MessageBroadcaster(object): """Class to broadcast stuff. If *interval* is 0 or negative, no broadcasting is done. """ def __init__(self, msg, port, interval): # mcgroup = None or '<broadcast>' is broadcast # mcgroup = MC_GROUP is default multicast group self._sender = MulticastSender(port, mcgroup=MC_GROUP) self._interval = interval self._message = msg self._do_run = False self._is_running = False self._thread = threading.Thread(target=self._run) def start(self): """Start the broadcasting. """ if self._interval > 0: if not self._is_running: self._do_run = True self._thread.start() return self def is_running(self): """Are we running. """ return self._is_running def stop(self): """Stop the broadcasting. """ self._do_run = False return self def _run(self): """Broadcasts forever. """ self._is_running = True try: while self._do_run: self._sender(self._message) time.sleep(self._interval) finally: self._is_running = False self._sender.close()
class MessageBroadcaster(object): """Class to broadcast stuff. """ def __init__(self, msg, port, interval): # mcgroup = None or '<broadcast>' is broadcast # mcgroup = MC_GROUP is default multicast group self._sender = MulticastSender(port, mcgroup=MC_GROUP) self._interval = interval self._message = msg self._do_run = False self._is_running = False self._thread = threading.Thread(target=self._run) def start(self): """Start the broadcasting. """ if not self._is_running: self._do_run = True self._thread.start() return self def is_running(self): """Are we running. """ return self._is_running def stop(self): """Stop the broadcasting. """ self._do_run = False return self def _run(self): """Broadcasts forever. """ self._is_running = True try: while self._do_run: if debug: print "Advertizing.", str(self._message) self._sender(self._message) time.sleep(self._interval) finally: self._is_running = False self._sender.close()
class MessageBroadcaster(object): """Class to broadcast stuff. If *interval* is 0 or negative, no broadcasting is done. """ def __init__(self, msg, port, interval, designated_receivers=None): if designated_receivers: self._sender = DesignatedReceiversSender(port, designated_receivers) else: # mcgroup = None or '<broadcast>' is broadcast # mcgroup = MC_GROUP is default multicast group self._sender = MulticastSender(port, mcgroup=MC_GROUP) self._interval = interval self._message = msg self._do_run = False self._is_running = False self._thread = threading.Thread(target=self._run) def start(self): """Start the broadcasting.""" if self._interval > 0: if not self._is_running: self._do_run = True self._thread.start() return self def is_running(self): """Are we running.""" return self._is_running def stop(self): """Stop the broadcasting.""" self._do_run = False return self def _run(self): """Broadcasts forever.""" self._is_running = True network_fail = False try: while self._do_run: try: if network_fail is True: LOGGER.info("Network connection re-established!") network_fail = False self._sender(self._message) except IOError as err: if err.errno == errno.ENETUNREACH: LOGGER.error("Network unreachable. " "Trying again in %d s.", self._interval) network_fail = True else: raise time.sleep(self._interval) finally: self._is_running = False self._sender.close()
class MessageBroadcaster(object): """Class to broadcast stuff. If *interval* is 0 or negative, no broadcasting is done. """ def __init__(self, msg, port, interval, designated_receivers=None): if designated_receivers: self._sender = DesignatedReceiversSender(port, designated_receivers) else: # mcgroup = None or '<broadcast>' is broadcast # mcgroup = MC_GROUP is default multicast group self._sender = MulticastSender(port, mcgroup=MC_GROUP) self._interval = interval self._message = msg self._do_run = False self._is_running = False self._thread = threading.Thread(target=self._run) def start(self): """Start the broadcasting. """ if self._interval > 0: if not self._is_running: self._do_run = True self._thread.start() return self def is_running(self): """Are we running. """ return self._is_running def stop(self): """Stop the broadcasting. """ self._do_run = False return self def _run(self): """Broadcasts forever. """ self._is_running = True network_fail = False try: while self._do_run: try: if network_fail is True: LOGGER.info("Network connection re-established!") network_fail = False self._sender(self._message) except IOError, err: if err.errno == errno.ENETUNREACH: LOGGER.error("Network unreachable. " "Trying again in %d s.", self._interval) network_fail = True else: raise time.sleep(self._interval) finally: self._is_running = False self._sender.close()