示例#1
0
    def send(self, message_type, content):
        LOGGER.debug("Client sending %s: %s", message_type, content)
        message = validator_pb2.Message(message_type=message_type,
                                        correlation_id=_generate_id(),
                                        content=content)
        my_future = future.Future(message.correlation_id)
        self._futures.put(my_future)

        self._send_receive_thread.send_message(message)
        return my_future
示例#2
0
    def send_txn(self, header, message):
        family_name = header.family_name
        family_version = header.family_version
        encoding = header.payload_encoding
        processor_type = processor_iterator.ProcessorType(
            family_name, family_version, encoding)
        if processor_type not in self._processors:
            raise Exception("internal error, no processor available")
        processor = self._processors[processor_type]
        message.sender = processor.sender

        fut = future.Future(message.correlation_id, message.content)
        self._futures.put(fut)

        self._send_receive_thread.send_message(message)

        return fut
示例#3
0
    def send_txn(self, header, message):
        print repr(header)
        family_name = header.family_name
        family_version = header.family_version
        encoding = header.payload_encoding
        key = (family_name, family_version, encoding)
        print repr(key)
        print repr(self._processors.keys())
        if key not in self._processors.keys():
            raise Exception("internal error, no processor available")

        # Choose a random processor of the type
        processor = random.choice(self._processors[key])
        peer = processor[0]

        if peer not in self._send_queues:
            raise Exception("internal error, no send queue available")

        self._send_queues[peer].put(message)
        fut = future.Future(message.correlation_id)
        self._futures.put(fut)
        return fut
示例#4
0
 def broadcast_message(self, message):
     self._send_receive_thread.broadcast_message(message)
     fut = future.Future(message.correlation_id)
     self._futures.put(fut)
     return fut
示例#5
0
 def send_message(self, message):
     LOGGER.debug("Client sending message %s", message)
     my_future = future.Future(message.correlation_id)
     self._futures.put(my_future)
     self._send_receive_thread.send_message(message)
     return my_future