in orderbook-core/src/main/java/com/epam/deltix/orderbook/core/impl/L2ConsolidatedQuoteProcessor.java [56:92]
public boolean removeQuote(final Quote remove, final L2MarketSide<Quote> marketSide) {
final int level = marketSide.binarySearch(remove);
if (level != L2MarketSide.NOT_FOUND) {
if (remove.equals(marketSide.getQuote(level))) {
marketSide.remove(level);
return true;
} else {
final int depth = marketSide.depth();
for (int i = 0, k = level + i; i < depth; i++, k = level + i) {
if (marketSide.hasLevel(k)) {
final Quote quote = marketSide.getQuote(k);
if (Decimal64Utils.isNotEqual(remove.getPrice(), quote.getPrice())) {
break;
}
if (remove.equals(quote)) {
marketSide.remove(k);
return true;
}
}
}
for (int i = 0, k = level - i; i < depth; i++, k = level - i) {
if (marketSide.hasLevel(k)) {
final Quote quote = marketSide.getQuote(k);
if (Decimal64Utils.isNotEqual(remove.getPrice(), quote.getPrice())) {
break;
}
if (remove.equals(quote)) {
marketSide.remove(k);
return true;
}
}
}
}
}
return false;
}