void handlePacket(io.vertx.core.datagram.DatagramPacket packet) { Handler<io.vertx.core.datagram.DatagramPacket> handler; synchronized (DatagramSocketImpl.this) { if (metrics != null) { metrics.bytesRead(null, packet.sender(), packet.data().length()); } if (demand > 0L) { if (demand != Long.MAX_VALUE) { demand--; } handler = packetHandler; } else { handler = null; } } if (handler != null) { handler.handle(packet); } } }
@Override @SuppressWarnings("unchecked") public DatagramSocket send(Buffer packet, int port, String host, Handler<AsyncResult<DatagramSocket>> handler) { Objects.requireNonNull(packet, "no null packet accepted"); Objects.requireNonNull(host, "no null host accepted"); if (port < 0 || port > 65535) { throw new IllegalArgumentException("port out of range:" + port); } context.owner().resolveAddress(host, res -> { if (res.succeeded()) { doSend(packet, new InetSocketAddress(res.result(), port), handler); } else { handler.handle(Future.failedFuture(res.cause())); } }); if (metrics != null) { metrics.bytesWritten(null, new SocketAddressImpl(port, host), packet.length()); } return this; }
@Override protected void handleClosed() { super.handleClosed(); Handler<Void> handler; DatagramSocketMetrics metrics; synchronized (DatagramSocketImpl.this) { handler = endHandler; metrics = DatagramSocketImpl.this.metrics; } if (metrics != null) { metrics.close(); } if (handler != null) { handler.handle(null); } }
private DatagramSocket listen(SocketAddress local, Handler<AsyncResult<DatagramSocket>> handler) { Objects.requireNonNull(handler, "no null handler accepted"); context.owner().resolveAddress(local.host(), res -> { if (res.succeeded()) { ChannelFuture future = channel.bind(new InetSocketAddress(res.result(), local.port())); addListener(future, ar -> { if (metrics != null && ar.succeeded()) { metrics.listening(local.host(), localAddress()); } handler.handle(ar); }); } else { handler.handle(Future.failedFuture(res.cause())); } }); return this; }
private DatagramSocket listen(SocketAddress local, Handler<AsyncResult<DatagramSocket>> handler) { Objects.requireNonNull(handler, "no null handler accepted"); context.owner().resolveAddress(local.host(), res -> { if (res.succeeded()) { ChannelFuture future = channel.bind(new InetSocketAddress(res.result(), local.port())); addListener(future, ar -> { if (metrics != null && ar.succeeded()) { metrics.listening(local.host(), localAddress()); } handler.handle(ar); }); } else { handler.handle(Future.failedFuture(res.cause())); } }); return this; }
@Override protected void handleClosed() { super.handleClosed(); Handler<Void> handler; DatagramSocketMetrics metrics; synchronized (DatagramSocketImpl.this) { handler = endHandler; metrics = DatagramSocketImpl.this.metrics; } if (metrics != null) { metrics.close(); } if (handler != null) { handler.handle(null); } }
void handlePacket(io.vertx.core.datagram.DatagramPacket packet) { Handler<io.vertx.core.datagram.DatagramPacket> handler; synchronized (DatagramSocketImpl.this) { if (metrics != null) { metrics.bytesRead(null, packet.sender(), packet.data().length()); } if (demand > 0L) { if (demand != Long.MAX_VALUE) { demand--; } handler = packetHandler; } else { handler = null; } } if (handler != null) { handler.handle(packet); } } }
@Override @SuppressWarnings("unchecked") public DatagramSocket send(Buffer packet, int port, String host, Handler<AsyncResult<DatagramSocket>> handler) { Objects.requireNonNull(packet, "no null packet accepted"); Objects.requireNonNull(host, "no null host accepted"); if (port < 0 || port > 65535) { throw new IllegalArgumentException("port out of range:" + port); } context.owner().resolveAddress(host, res -> { if (res.succeeded()) { doSend(packet, new InetSocketAddress(res.result(), port), handler); } else { handler.handle(Future.failedFuture(res.cause())); } }); if (metrics != null) { metrics.bytesWritten(null, new SocketAddressImpl(port, host), packet.length()); } return this; }