@Override public void sent() { wrappee.sent(); }
@Override public void sent() { wait.run(); wrappee.sent(); }
@Override public void send(Address address, ByteBuffer buffer, final SendCallback callback) { if (socket == null) { throw new IllegalStateException("send() must be called after connect()"); } try { while (buffer.hasRemaining()) { int r = socket.write(address.ip, buffer.array(), buffer.arrayOffset() + buffer.position(), buffer.remaining()); if (r == 0) { throw new IOException("Error writing to: " + address); } buffer.position(buffer.position() + r); } callback.sent(); } catch (Exception e) { callback.failed(new IOException("Could not write", e)); } }
@Override public void send(Address address, ByteBuffer buffer, final SendCallback callback) { if (socket == null) { throw new IllegalStateException("send() must be called after connect()"); } LOGGER.trace("Sending datagram to: {}", address); if (buffer != null) { if (SUPERVISION != null) { SUPERVISION.incOut(buffer.remaining()); } } try { if (closed) { throw new IOException("Closed"); } if (buffer == null) { // socket.close(); } else { DatagramPacket packet = new DatagramPacket(buffer.array(), buffer.arrayOffset() + buffer.position(), buffer.remaining(), InetAddress.getByAddress(address.ip), address.port); socket.send(packet); } callback.sent(); } catch (Exception e) { callback.failed(new IOException("Could not write", e)); } }
wrappee.send(toSend, callback); } else { callback.sent();
@Override public HttpContentSender send(final ByteBuffer buffer, final SendCallback callback) { if (finished) { throw new IllegalStateException(); } if (!buffer.hasRemaining()) { callback.sent(); return this; } wrappee.send(LineReader.toBuffer(Integer.toHexString(buffer.remaining())), new Nop()); wrappee.send(buffer, new Nop()); wrappee.send(emptyLineByteBuffer.duplicate(), callback); return this; }