Example #1
0
class Network(Module):

    def __init__(self, address, backlog, buffer_size):
        self._data_handler = EmptyDataHandler()
        self._sender = Sender(logger, buffer_size)
        self._receiver = Receiver(logger, address, backlog, buffer_size)
        self._receive_queue = self._receiver.get_queue()

    def register_data_handler(self, data_handler):
        self._data_handler = data_handler

    def send(self, address, data):
        self._sender.send(address, data)

    def start(self):
        thread = threading.Thread(target = self._schedule)
        thread.setDaemon(True)
        thread.start()

    def _schedule(self):
        while 1:
            data = self._receive_queue.get()
            self._data_handler.handle(data)

    def terminate(self):
        self._sender.terminate()
        self._receiver.terminate()
Example #2
0
 def __init__(self, address, backlog, buffer_size):
     self._data_handler = EmptyDataHandler()
     self._sender = Sender(logger, buffer_size)
     self._receiver = Receiver(logger, address, backlog, buffer_size)
     self._receive_queue = self._receiver.get_queue()