@Override public void addDeleteTask(final Action<? super Session_1_0> task) { // TODO: QPID-7951 is the closed guard important? if(!_closed.get()) { super.addDeleteTask(task); } }
@Override public ListenableFuture<Void> doOnIOThreadAsync(final Runnable task) { final ListenableFuture<Void> future = getAMQPConnection().doOnIOThreadAsync(task); return doAfter(MoreExecutors.directExecutor(), future, new Runnable() { @Override public void run() { getAMQPConnection().notifyWork(AbstractAMQPSession.this); } }); } }
@Override public boolean isProducerFlowBlocked() { return getBlocking(); }
@Override public boolean processPending() { if (!getAMQPConnection().isIOThread() || isClosing()) { return false; } updateBlockedStateIfNecessary(); if(!_consumersWithPendingWork.isEmpty() && !getAMQPConnection().isTransportBlockedForWriting()) { if (_processPendingIterator == null || !_processPendingIterator.hasNext()) { _processPendingIterator = _consumersWithPendingWork.iterator(); } if(_processPendingIterator.hasNext()) { AbstractConsumerTarget target = _processPendingIterator.next(); _processPendingIterator.remove(); if (target.processPending()) { _consumersWithPendingWork.add(target); } } } return !_consumersWithPendingWork.isEmpty() && !getAMQPConnection().isTransportBlockedForWriting(); }
protected AbstractAMQPSession(final Connection<?> parent, final int sessionId) super(parent, createAttributes(sessionId)); _connection = (AMQPConnection) parent; _sessionId = sessionId; _logSubject = new ChannelLogSubject(this); setState(State.ACTIVE);
@Override public void notifyWork(final X target) { if(_consumersWithPendingWork.add((AbstractConsumerTarget) target)) { getAMQPConnection().notifyWork(this); } }
@Override public void performAction(final S object) { removeDeleteTask(this); deleteNoChecks(); } };
@Override public long getUnacknowledgedMessages() { return getUnacknowledgedMessageCount(); }
@Override protected void logOperation(final String operation) { getEventLogger().message(ChannelMessages.OPERATION(operation)); }
@Override public void run() { getAMQPConnection().notifyWork(AbstractAMQPSession.this); } });
@Override protected ListenableFuture<Void> onDelete() { removeDeleteTask(_deleteModelTask); return super.onDelete(); }
@Override protected void onCreate() { super.onCreate(); addDeleteTask(_deleteModelTask); }
@Override public void addTicker(final Ticker ticker) { _connection.getAggregateTicker().addTicker(ticker); // trigger a wakeup to ensure the ticker will be taken into account getAMQPConnection().notifyWork(); }