public boolean removeQuote()

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;
    }