<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def send(self, message_type, data, callback=None, one_way=False):
 """Sends a message of message_type Args: message_type (validator_pb2.Message):
 enum value data (bytes):
 serialized protobuf callback (function):
 a callback function to call when a response to this message is received Returns: future.Future """

        message = validator_pb2.Message(
            correlation_id=_generate_id(),
            content=data,
            message_type=message_type)

        fut = future.Future(message.correlation_id, message.content,
                            callback, timeout=self._connection_timeout)
        if not one_way:
            self._futures.put(fut)

        self._send_receive_thread.send_message(message)
        return fut