/** * Returns a {@link ChannelOption} for the given {@link java.net.SocketOption}. */ public static <T> ChannelOption<T> of(java.net.SocketOption<T> option) { return new NioChannelOption<T>(option); }
@Override public <T> T getOption(ChannelOption<T> option) { if (PlatformDependent.javaVersion() >= 7 && option instanceof NioChannelOption) { return NioChannelOption.getOption(javaChannel, (NioChannelOption<T>) option); } return super.getOption(option); }
@Override public <T> boolean setOption(ChannelOption<T> option, T value) { if (PlatformDependent.javaVersion() >= 7 && option instanceof NioChannelOption) { return NioChannelOption.setOption(javaChannel, (NioChannelOption<T>) option, value); } return super.setOption(option, value); }
@SuppressWarnings("unchecked") @Override public Map<ChannelOption<?>, Object> getOptions() { if (PlatformDependent.javaVersion() >= 7) { return getOptions(super.getOptions(), NioChannelOption.getOptions(javaChannel)); } return super.getOptions(); } }
@SuppressWarnings("unchecked") @Override public Map<ChannelOption<?>, Object> getOptions() { if (PlatformDependent.javaVersion() >= 7) { return getOptions(super.getOptions(), NioChannelOption.getOptions(javaChannel)); } return super.getOptions(); } }
@Override public <T> boolean setOption(ChannelOption<T> option, T value) { if (PlatformDependent.javaVersion() >= 7 && option instanceof NioChannelOption) { return NioChannelOption.setOption(javaChannel, (NioChannelOption<T>) option, value); } return super.setOption(option, value); }
@Override public <T> T getOption(ChannelOption<T> option) { if (PlatformDependent.javaVersion() >= 7 && option instanceof NioChannelOption) { return NioChannelOption.getOption(javaChannel, (NioChannelOption<T>) option); } return super.getOption(option); }
@SuppressWarnings("unchecked") @Override public Map<ChannelOption<?>, Object> getOptions() { if (PlatformDependent.javaVersion() >= 7) { return getOptions(super.getOptions(), NioChannelOption.getOptions(jdkChannel())); } return super.getOptions(); }
/** * Returns a {@link ChannelOption} for the given {@link java.net.SocketOption}. */ public static <T> ChannelOption<T> of(java.net.SocketOption<T> option) { return new NioChannelOption<T>(option); }
@Override public <T> boolean setOption(ChannelOption<T> option, T value) { if (PlatformDependent.javaVersion() >= 7 && option instanceof NioChannelOption) { return NioChannelOption.setOption(jdkChannel(), (NioChannelOption<T>) option, value); } return super.setOption(option, value); }
@Override public <T> T getOption(ChannelOption<T> option) { if (PlatformDependent.javaVersion() >= 7 && option instanceof NioChannelOption) { return NioChannelOption.getOption(jdkChannel(), (NioChannelOption<T>) option); } return super.getOption(option); }
@SuppressWarnings("unchecked") @Override public Map<ChannelOption<?>, Object> getOptions() { if (PlatformDependent.javaVersion() >= 7) { return getOptions(super.getOptions(), NioChannelOption.getOptions(jdkChannel())); } return super.getOptions(); }
/** * Returns a {@link ChannelOption} for the given {@link java.net.SocketOption}. */ public static <T> ChannelOption<T> of(java.net.SocketOption<T> option) { return new NioChannelOption<T>(option); }
@Override public <T> boolean setOption(ChannelOption<T> option, T value) { if (PlatformDependent.javaVersion() >= 7 && option instanceof NioChannelOption) { return NioChannelOption.setOption(jdkChannel(), (NioChannelOption<T>) option, value); } return super.setOption(option, value); }
@Override public <T> T getOption(ChannelOption<T> option) { if (PlatformDependent.javaVersion() >= 7 && option instanceof NioChannelOption) { return NioChannelOption.getOption(jdkChannel(), (NioChannelOption<T>) option); } return super.getOption(option); }
@SuppressWarnings("unchecked") @Override public Map<ChannelOption<?>, Object> getOptions() { if (PlatformDependent.javaVersion() >= 7) { return getOptions(super.getOptions(), NioChannelOption.getOptions(jdkChannel())); } return super.getOptions(); }
@SuppressWarnings("unchecked") static ChannelOption[] getOptions(Channel jdkChannel) { java.nio.channels.NetworkChannel channel = (java.nio.channels.NetworkChannel) jdkChannel; Set<java.net.SocketOption<?>> supportedOpts = channel.supportedOptions(); if (channel instanceof ServerSocketChannel) { List<ChannelOption<?>> extraOpts = new ArrayList<ChannelOption<?>>(supportedOpts.size()); for (java.net.SocketOption<?> opt : supportedOpts) { if (opt == java.net.StandardSocketOptions.IP_TOS) { // Skip IP_TOS as a workaround for a JDK bug: // See http://mail.openjdk.java.net/pipermail/nio-dev/2018-August/005365.html continue; } extraOpts.add(new NioChannelOption(opt)); } return extraOpts.toArray(new ChannelOption[0]); } else { ChannelOption<?>[] extraOpts = new ChannelOption[supportedOpts.size()]; int i = 0; for (java.net.SocketOption<?> opt : supportedOpts) { extraOpts[i++] = new NioChannelOption(opt); } return extraOpts; } } }
@Override public <T> boolean setOption(ChannelOption<T> option, T value) { if (PlatformDependent.javaVersion() >= 7 && option instanceof NioChannelOption) { return NioChannelOption.setOption(javaChannel, (NioChannelOption<T>) option, value); } return super.setOption(option, value); }
@Override public <T> T getOption(ChannelOption<T> option) { if (PlatformDependent.javaVersion() >= 7 && option instanceof NioChannelOption) { return NioChannelOption.getOption(javaChannel, (NioChannelOption<T>) option); } return super.getOption(option); }
@SuppressWarnings("unchecked") @Override public Map<ChannelOption<?>, Object> getOptions() { if (PlatformDependent.javaVersion() >= 7) { return getOptions(super.getOptions(), NioChannelOption.getOptions(jdkChannel())); } return super.getOptions(); }