public Quote processL2EntryNew()

in orderbook-core/src/main/java/com/epam/deltix/orderbook/core/impl/CompactL2SingleExchangeQuoteProcessor.java [65:93]


    public Quote processL2EntryNew(final PackageHeaderInfo pck, final L2EntryNewInfo msg) {
        final long exchangeId = msg.getExchangeId();
        final Option<MutableExchange<Quote, CompactL2Processor<Quote>>> exchange = getOrCreateExchange(exchangeId);
        if (!exchange.hasValue()) {
            return null;
        }

        if (exchange.get().getProcessor().isWaitingForSnapshot()) {
            return null;
        }

        final QuoteSide side = msg.getSide();
        final CompactL2MarketSide<Quote> marketSide = exchange.get().getProcessor().getMarketSide(side);
        final int level = msg.getLevel();

        if (marketSide.isInvalidInsert(level, msg.getPrice(), msg.getSize(), exchangeId)) {
            if (validationOptions.isQuoteInsert()) {
                clear();
                eventHandler.onBroken();
            }
            return null;
        }

        if (marketSide.isFull()) {
            marketSide.removeWorstQuote();
        }
        marketSide.add(level, msg.getPrice(), msg.getSize());
        return marketSide.getQuote(level);
    }