Example #1
0
 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)
Example #2
0
    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)
Example #3
0
    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)
Example #4
0
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()
Example #5
0
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()
Example #6
0
 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)
Example #7
0
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()
Example #8
0
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()