示例#1
0
    def serialize(topic, engine_data, datatypes):
        """Builds a message by serializing passed data object using
        serialization routine defined in one of the data types objects

        Args:
             topic (xMsgTopic): the topic where data will be published
             engine_data (EngineData): the data to be serialized
             datatypes (set(<EngineDataType>)): the set of registered dataTypes

        Returns:
            xMsgMessage: Message with serialized data
        """
        assert isinstance(engine_data, EngineData)
        for dt in datatypes:
            if dt.mimetype == engine_data.mimetype:
                msg = xMsgMessage()
                msg.topic = str(topic)
                msg.metadata = engine_data.metadata
                msg.data = dt.serializer.write(engine_data.get_data())
                return msg

        if engine_data.mimetype == Mimetype.STRING:
            msg = xMsgMessage()
            msg.topic = str(topic)
            msg.metadata = engine_data.metadata
            msg.data = EngineDataType.STRING().serializer.write(
                engine_data.get_data())
            return msg
    def _create_request(topic, data, metadata=None):
        msg = xMsgMessage(topic=topic)
        msg.data = data

        if metadata:
            msg.metadata = metadata
        else:
            msg.mimetype = Mimetype.STRING
        return msg
    def exit_dpe(self, dpe_name):
        """Sends message to DPE and requesting to stop

        Args:
            dpe_name (String): name of the dpe to stop
        """
        if not ClaraUtils.is_dpe_name(dpe_name):
            raise MalformedCanonicalName("Malformed DPE name: %s" % dpe_name)

        topic = ClaraUtils.build_topic(CConstants.DPE, dpe_name)
        self.base.send(xMsgMessage(topic, CConstants.DPE_EXIT))
def runner(bind_to, message_size, message_count):
    pub_node_addr = xMsgAddress(bind_to)
    publisher = Publisher(bind_to, message_size, message_count)
    pub_connection = publisher.get_new_connection(pub_node_addr)
    topic = xMsgTopic.wrap("thr_topic")

    try:
        data = bytes(b'\x00' * message_size)
        for _ in range(message_count):
            t_msg = xMsgMessage()
            t_msg.set_topic(topic)
            t_msg.set_data(bytes(data), "data/binary")
            publisher.publish(pub_connection, t_msg)
        publisher.destroy()

    except Exception as e:
        print "Removing publisher..."
        publisher.destroy()
        return

    return
 def test_set_serialize_data(self):
     msg = xMsgMessage(self.topic, bytes([1, 2, 3]))
     self.assertEqual("a:b:c", self.message.topic)
     self.assertEqual(msg.data, bytes([1, 2, 3]))
     self.assertIsInstance(msg, xMsgMessage)
 def setUp(self):
     self.topic = xMsgTopic.wrap("a:b:c")
     self.message = xMsgMessage(self.topic, bytes([1, 2, 3]))
示例#7
0
def __create_message(topic, data):
    try:
        return xMsgMessage(topic, str(data))
    except Exception as e:
        raise ClaraException("Cannot create message: " + e)