public void onMessage()

in mbp-only/src/main/java/com/epam/cme/mdp3/core/channel/ChannelInstruments.java [60:81]


    public void onMessage(final MdpFeedContext feedContext, final MdpMessage secDefMsg) {
        final int subscriptionFlags = this.channelContext.notifySecurityDefinitionListeners(secDefMsg);
        final byte depth = extractMaxDepthFromSecDef(secDefMsg);
        if (!MdEventFlags.isNothing(subscriptionFlags)) {
            registerSecurity(secDefMsg, subscriptionFlags, depth);
        } else {
            final int securityId = secDefMsg.getInt32(SEC_ID_TAG);
            final SbeString strValObj = feedContext.getStrValObj();
            boolean hasValue = secDefMsg.getString(SEC_DESC_TAG, strValObj);
            if (hasValue) {
                updateSecDesc(securityId, secDescString.getString());
            }
        }
        if (this.msgCountDown.get() == PRCD_MSG_COUNT_NULL) {
            final int totalNumReports = getTotalReportNum(secDefMsg) * INSTRUMENT_CYCLES_MAX;
            this.msgCountDown.compareAndSet(PRCD_MSG_COUNT_NULL, totalNumReports);
        }
        final int msgLeft = this.msgCountDown.decrementAndGet();
        if (canStopInstrumentListening(msgLeft)) {
            channelContext.stopInstrumentFeeds();
        }
    }