in orderbook-core/src/main/java/com/epam/deltix/orderbook/core/impl/L1SingleExchangeQuoteProcessor.java [80:104]
public Quote processL1EntryNew(final PackageHeaderInfo pck, final L1EntryInfo msg) {
@Alphanumeric final long exchangeId = msg.getExchangeId();
final Option<MutableExchange<Quote, L1Processor<Quote>>> exchange = getOrCreateExchange(exchangeId);
if (!exchange.hasValue()) {
// TODO add null check
return null;
}
if (exchange.get().getProcessor().isWaitingForSnapshot()) {
return null;
}
final QuoteSide side = msg.getSide();
final L1MarketSide<Quote> marketSide = exchange.get().getProcessor().getMarketSide(side);
final Quote quote;
if (marketSide.isEmpty()) {
quote = pool.borrow();
marketSide.insert(quote);
} else {
quote = marketSide.getBestQuote();
}
quote.copyFrom(pck, msg);
return quote;
}