public boolean test() { //do we have at least one pending message? if (_incomingStore.size() > 0) return true; for (Connector<?> c : _driver.connectors()) { Connection connection = c.getConnection(); Delivery delivery = connection.getWorkHead(); while (delivery != null) { if (delivery.isReadable() && !delivery.isPartial()) { return true; } else { delivery = delivery.getWorkNext(); } } } // if no connections, or not listening, exit as there won't ever be a message if (!_driver.listeners().iterator().hasNext() && !_driver.connectors().iterator().hasNext()) return true; return false; } }
public boolean test() { //do we have at least one pending message? if (_incomingStore.size() > 0) return true; for (Connector<?> c : _driver.connectors()) { Connection connection = c.getConnection(); Delivery delivery = connection.getWorkHead(); while (delivery != null) { if (delivery.isReadable() && !delivery.isPartial()) { return true; } else { delivery = delivery.getWorkNext(); } } } // if no connections, or not listening, exit as there won't ever be a message if (!_driver.listeners().iterator().hasNext() && !_driver.connectors().iterator().hasNext()) return true; return false; } }
public boolean test() { //do we have at least one message? for (Connector c : _driver.connectors()) { Connection connection = c.getConnection(); Delivery delivery = connection.getWorkHead(); while (delivery != null) { if (delivery.isReadable()) { //TODO: check for partial delivery? return true; } else { delivery = delivery.getWorkNext(); } } } return false; } }
public Message get() { for (Connector c : _driver.connectors()) { Connection connection = c.getConnection(); _logger.log(Level.FINE, "Attempting to get message from " + connection); Delivery delivery = connection.getWorkHead(); while (delivery != null) { if (delivery.isReadable()) { _logger.log(Level.FINE, "Readable delivery found: " + delivery); int size = read((Receiver) delivery.getLink()); Message message = new MessageImpl(); message.decode(_buffer, 0, size); _incoming.add(delivery); _distributed--; delivery.getLink().advance(); return message; } else { _logger.log(Level.FINE, "Delivery not readable: " + delivery); delivery = delivery.getWorkNext(); } } } return null; }
public void fireListenerEvents() { fireWatches(); if( sasl!=null ) { sasl = listener.processSaslEvent(sasl); if( sasl==null ) { // once sasl handshake is done.. we need to read the protocol header again. ((AmqpProtocolCodec)this.hawtdispatchTransport.getProtocolCodec()).readProtocolHeader(); } } context(connection).fireListenerEvents(listener); Session session = connection.sessionHead(ALL_SET, ALL_SET); while(session != null) { context(session).fireListenerEvents(listener); session = session.next(ALL_SET, ALL_SET); } Link link = connection.linkHead(ALL_SET, ALL_SET); while(link != null) { context(link).fireListenerEvents(listener); link = link.next(ALL_SET, ALL_SET); } Delivery delivery = connection.getWorkHead(); while(delivery != null) { listener.processDelivery(delivery); delivery = delivery.getWorkNext(); } listener.processRefill(); }
delivery = delivery.getWorkNext();
Delivery next = delivery.getWorkNext(); delivery.clear(); delivery = next;
Delivery next = delivery.getWorkNext(); delivery.clear(); delivery = next;