in src/protocol/RemotingCommand.cpp [216:263]
void RemotingCommand::SetExtHeader(int code) {
try {
Json::Value ext = m_parsedJson["extFields"];
if (!ext.isNull()) {
m_pExtHeader = NULL;
switch (code) {
case SEND_MESSAGE:
case SEND_MESSAGE_V2:
m_pExtHeader.reset(SendMessageResponseHeader::Decode(ext));
break;
case PULL_MESSAGE:
m_pExtHeader.reset(PullMessageResponseHeader::Decode(ext));
break;
case GET_MIN_OFFSET:
m_pExtHeader.reset(GetMinOffsetResponseHeader::Decode(ext));
break;
case GET_MAX_OFFSET:
m_pExtHeader.reset(GetMaxOffsetResponseHeader::Decode(ext));
break;
case SEARCH_OFFSET_BY_TIMESTAMP:
m_pExtHeader.reset(SearchOffsetResponseHeader::Decode(ext));
break;
case GET_EARLIEST_MSG_STORETIME:
m_pExtHeader.reset(GetEarliestMsgStoretimeResponseHeader::Decode(ext));
break;
case QUERY_CONSUMER_OFFSET:
m_pExtHeader.reset(QueryConsumerOffsetResponseHeader::Decode(ext));
break;
case RESET_CONSUMER_CLIENT_OFFSET:
m_pExtHeader.reset(ResetOffsetRequestHeader::Decode(ext));
break;
case GET_CONSUMER_RUNNING_INFO:
m_pExtHeader.reset(GetConsumerRunningInfoRequestHeader::Decode(ext));
break;
case NOTIFY_CONSUMER_IDS_CHANGED:
m_pExtHeader.reset(NotifyConsumerIdsChangedRequestHeader::Decode(ext));
break;
case CHECK_TRANSACTION_STATE:
m_pExtHeader.reset(CheckTransactionStateRequestHeader::Decode(ext));
break;
default:
break;
}
}
} catch (MQException& e) {
LOG_ERROR("set response head error");
}
}