+ LOG.debug("Queue {} transmitted {} requests", this, maxTransmit);
+ }
+
+ private void transmitEntry(final ConnectionEntry entry, final long now) {
+ LOG.debug("Queue {} transmitting entry {}", this, entry);
+ // We are not thread-safe and are supposed to be externally-guarded,
+ // hence send-before-record should be fine.
+ // This needs to be revisited if the external guards are lowered.
+ inflight.addLast(transmit(entry, now));
+ }
+
+ final long enqueueOrForward(final ConnectionEntry entry, final long now) {
+ if (successor != null) {
+ // This call will pay the enqueuing price, hence the caller does not have to
+ successor.forwardEntry(entry, now);
+ return 0;
+ }
+
+ return enqueue(entry, now);
+ }
+
+ final void enqueueOrReplay(final ConnectionEntry entry, final long now) {
+ if (successor != null) {
+ successor.replayEntry(entry, now);
+ } else {
+ enqueue(entry, now);
+ }