in mbp-only/src/main/java/com/epam/cme/mdp3/core/control/ChannelController.java [163:196]
private void handleIncrementalMessages(final MdpFeedContext feedContext, final long msgSeqNum, final MdpPacket mdpPacket) {
final Iterator<MdpMessage> mdpMessageIterator = mdpPacket.iterator();
while (mdpMessageIterator.hasNext()) {
final MdpMessage mdpMessage = mdpMessageIterator.next();
final MdpMessageType messageType = mdpMessageTypes.getMessageType(mdpMessage.getSchemaId());
mdpMessage.setMessageType(messageType);
if (messageType.getSemanticMsgType() == SemanticMsgType.MarketDataIncrementalRefresh) {
final short matchEventIndicator = mdpMessage.getUInt8(SbeConstants.MATCHEVENTINDICATOR_TAG);
handleMarketDataIncrementalRefresh(feedContext, mdpMessage, msgSeqNum, matchEventIndicator);
if (channelContext.hasMdListeners() && MatchEventIndicator.hasEndOfEvent(matchEventIndicator)) {
this.eventController.commit(this.eventCommitFunction);
}
} else if (messageType.getSemanticMsgType() == SemanticMsgType.QuoteRequest) {
this.requestForQuoteHandler.handle(feedContext, mdpMessage);
} else if (messageType.getSemanticMsgType() == SemanticMsgType.SecurityStatus) {
final short matchEventIndicator = mdpMessage.getUInt8(SbeConstants.MATCHEVENTINDICATOR_TAG);
this.securityStatusHandler.handle(mdpMessage, matchEventIndicator);
if (channelContext.hasMdListeners() && MatchEventIndicator.hasEndOfEvent(matchEventIndicator)) {
this.eventController.commit(this.eventCommitFunction);
}
} else if (messageType.getSemanticMsgType() == SemanticMsgType.SecurityDefinition) {
this.channelContext.getInstruments().onMessage(feedContext, mdpMessage);
} else {
logger.trace("Message has been ignored due to its SemanticMsgType '{}'", messageType.getSemanticMsgType());
}
}
if (this.wasChannelResetInPrcdPacket) {
this.wasChannelResetInPrcdPacket = false;
} else {
this.prcdSeqNum = msgSeqNum;
}
}