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); }
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; }