Beispiel #1
0
rd_kafka_message_t *rd_kafka_message_get (rd_kafka_op_t *rko) {
	rd_kafka_message_t *rkmessage;

	if (!rko)
		return rd_kafka_message_new(); /* empty */

	switch (rko->rko_type)
	{
	case RD_KAFKA_OP_FETCH:
		/* Use embedded rkmessage */
		rkmessage = &rko->rko_u.fetch.rkm.rkm_rkmessage;
		break;

	case RD_KAFKA_OP_ERR:
	case RD_KAFKA_OP_CONSUMER_ERR:
		rkmessage = &rko->rko_u.err.rkm.rkm_rkmessage;
		rkmessage->payload = rko->rko_u.err.errstr;
		rkmessage->offset  = rko->rko_u.err.offset;
		break;

	default:
		rd_kafka_assert(NULL, !*"unhandled optype");
		RD_NOTREACHED();
		return NULL;
	}

	return rd_kafka_message_setup(rko, rkmessage);
}
Beispiel #2
0
rd_kafka_message_t *rd_kafka_message_get (rd_kafka_op_t *rko) {
	rd_kafka_message_t *rkmessage;

	if (rko) {
		rkmessage = &rko->rko_rkmessage;
		rkmessage->_private = rko;

		if (!rkmessage->rkt && rko->rko_rktp)
			rkmessage->rkt =
				rd_kafka_topic_keep_a(
					rd_kafka_toppar_s2i(rko->rko_rktp)->
					rktp_rkt);
	} else
                rkmessage = rd_kafka_message_new();

	return rkmessage;
}