@Override public boolean isConnected() { return javaChannel().isConnected(); }
@Override protected void doClose() throws Exception { javaChannel().close(); }
@Override protected void doDisconnect() throws Exception { javaChannel().disconnect(); }
@Override protected void doClose() throws Exception { javaChannel().close(); }
@Override protected void doDisconnect() throws Exception { javaChannel().disconnect(); }
@Override public boolean isConnected() { return javaChannel().isConnected(); }
private void doBind0(SocketAddress localAddress) throws Exception { if (PlatformDependent.javaVersion() >= 7) { SocketUtils.bind(javaChannel(), localAddress); } else { javaChannel().socket().bind(localAddress); } }
@Override protected SocketAddress localAddress0() { return javaChannel().socket().getLocalSocketAddress(); }
@Override protected SocketAddress remoteAddress0() { return javaChannel().socket().getRemoteSocketAddress(); }
@Override protected SocketAddress localAddress0() { return javaChannel().socket().getLocalSocketAddress(); }
private void doBind0(SocketAddress localAddress) throws Exception { if (PlatformDependent.javaVersion() >= 7) { SocketUtils.bind(javaChannel(), localAddress); } else { javaChannel().socket().bind(localAddress); } }
@Override protected SocketAddress remoteAddress0() { return javaChannel().socket().getRemoteSocketAddress(); }
MembershipKey key; if (source == null) { key = javaChannel().join(multicastAddress, networkInterface); } else { key = javaChannel().join(multicastAddress, networkInterface, source);
@Override protected boolean doWriteMessage(Object msg, ChannelOutboundBuffer in) throws Exception { final SocketAddress remoteAddress; final ByteBuf data; if (msg instanceof AddressedEnvelope) { @SuppressWarnings("unchecked") AddressedEnvelope<ByteBuf, SocketAddress> envelope = (AddressedEnvelope<ByteBuf, SocketAddress>) msg; remoteAddress = envelope.recipient(); data = envelope.content(); } else { data = (ByteBuf) msg; remoteAddress = null; } final int dataLen = data.readableBytes(); if (dataLen == 0) { return true; } final ByteBuffer nioData = data.nioBufferCount() == 1 ? data.internalNioBuffer(data.readerIndex(), dataLen) : data.nioBuffer(data.readerIndex(), dataLen); final int writtenBytes; if (remoteAddress != null) { writtenBytes = javaChannel().send(nioData, remoteAddress); } else { writtenBytes = javaChannel().write(nioData); } return writtenBytes > 0; }
@Override protected boolean doConnect(SocketAddress remoteAddress, SocketAddress localAddress) throws Exception { if (localAddress != null) { doBind0(localAddress); } boolean success = false; try { javaChannel().connect(remoteAddress); success = true; return true; } finally { if (!success) { doClose(); } } }
@Override protected boolean doConnect(SocketAddress remoteAddress, SocketAddress localAddress) throws Exception { if (localAddress != null) { doBind0(localAddress); } boolean success = false; try { javaChannel().connect(remoteAddress); success = true; return true; } finally { if (!success) { doClose(); } } }
@Override @SuppressWarnings("deprecation") public boolean isActive() { DatagramChannel ch = javaChannel(); return ch.isOpen() && ( config.getOption(ChannelOption.DATAGRAM_CHANNEL_ACTIVE_ON_REGISTRATION) && isRegistered() || ch.socket().isBound()); }
@Override @SuppressWarnings("deprecation") public boolean isActive() { DatagramChannel ch = javaChannel(); return ch.isOpen() && ( config.getOption(ChannelOption.DATAGRAM_CHANNEL_ACTIVE_ON_REGISTRATION) && isRegistered() || ch.socket().isBound()); }
@Override protected int doReadMessages(List<Object> buf) throws Exception { DatagramChannel ch = javaChannel(); DatagramChannelConfig config = config(); RecvByteBufAllocator.Handle allocHandle = unsafe().recvBufAllocHandle(); ByteBuf data = allocHandle.allocate(config.getAllocator()); allocHandle.attemptedBytesRead(data.writableBytes()); boolean free = true; try { ByteBuffer nioData = data.internalNioBuffer(data.writerIndex(), data.writableBytes()); int pos = nioData.position(); InetSocketAddress remoteAddress = (InetSocketAddress) ch.receive(nioData); if (remoteAddress == null) { return 0; } allocHandle.lastBytesRead(nioData.position() - pos); buf.add(new DatagramPacket(data.writerIndex(data.writerIndex() + allocHandle.lastBytesRead()), localAddress(), remoteAddress)); free = false; return 1; } catch (Throwable cause) { PlatformDependent.throwException(cause); return -1; } finally { if (free) { data.release(); } } }
@Override @SuppressWarnings("deprecation") public boolean isActive() { DatagramChannel ch = javaChannel(); return ch.isOpen() && ( config.getOption(ChannelOption.DATAGRAM_CHANNEL_ACTIVE_ON_REGISTRATION) && isRegistered() || ch.socket().isBound()); }