diff --git a/src/com/barchart/udt/nio/SelectorProviderUDT.java b/src/com/barchart/udt/nio/SelectorProviderUDT.java
index f36c6998..d1bfaf99 100644
--- a/src/com/barchart/udt/nio/SelectorProviderUDT.java
+++ b/src/com/barchart/udt/nio/SelectorProviderUDT.java
@@ -7,14 +7,15 @@
*/
package com.barchart.udt.nio;
-import com.barchart.udt.SocketUDT;
-import com.barchart.udt.TypeUDT;
-
import java.io.IOException;
+import java.net.ProtocolFamily;
import java.nio.channels.DatagramChannel;
import java.nio.channels.Pipe;
import java.nio.channels.spi.SelectorProvider;
+import com.barchart.udt.SocketUDT;
+import com.barchart.udt.TypeUDT;
+
/**
* selection provider for UDT
*
@@ -26,14 +27,12 @@ public class SelectorProviderUDT extends SelectorProvider {
/**
* system-wide provider instance, for {@link TypeUDT#DATAGRAM} UDT sockets
*/
- public static final SelectorProviderUDT DATAGRAM = //
- new SelectorProviderUDT(TypeUDT.DATAGRAM);
+ public static final SelectorProviderUDT DATAGRAM = new SelectorProviderUDT(TypeUDT.DATAGRAM);
/**
* system-wide provider instance, for {@link TypeUDT#STREAM} UDT sockets
*/
- public static final SelectorProviderUDT STREAM = //
- new SelectorProviderUDT(TypeUDT.STREAM);
+ public static final SelectorProviderUDT STREAM = new SelectorProviderUDT(TypeUDT.STREAM);
public static SelectorProviderUDT from(final TypeUDT type) {
switch (type) {
@@ -79,6 +78,15 @@ public class SelectorProviderUDT extends SelectorProvider {
throw new UnsupportedOperationException("feature not available");
}
+ /**
+ * java 7
+ */
+ @Override
+ public
+ DatagramChannel openDatagramChannel(final ProtocolFamily family) throws IOException {
+ throw new UnsupportedOperationException("feature not available");
+ }
+
/**
* Not supported.
*/
diff --git a/src/com/barchart/udt/nio/ServerSocketChannelUDT.java b/src/com/barchart/udt/nio/ServerSocketChannelUDT.java
index f66bda2a..d88428fc 100644
--- a/src/com/barchart/udt/nio/ServerSocketChannelUDT.java
+++ b/src/com/barchart/udt/nio/ServerSocketChannelUDT.java
@@ -7,14 +7,18 @@
*/
package com.barchart.udt.nio;
-import com.barchart.udt.SocketUDT;
-import com.barchart.udt.TypeUDT;
-import com.barchart.udt.anno.ThreadSafe;
+import java.io.IOException;
+import java.net.SocketAddress;
+import java.net.SocketOption;
+import java.nio.channels.ServerSocketChannel;
+import java.util.Set;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.io.IOException;
-import java.nio.channels.ServerSocketChannel;
+import com.barchart.udt.SocketUDT;
+import com.barchart.udt.TypeUDT;
+import com.barchart.udt.anno.ThreadSafe;
/**
* {@link ServerSocketChannel}-like wrapper for {@link SocketUDT} can be either
@@ -39,22 +43,16 @@ import java.nio.channels.ServerSocketChannel;
*/
public class ServerSocketChannelUDT extends ServerSocketChannel implements ChannelUDT {
- protected static final Logger log = LoggerFactory
- .getLogger(ServerSocketChannelUDT.class);
+ protected static final Logger log = LoggerFactory.getLogger(ServerSocketChannelUDT.class);
@ThreadSafe("this")
protected NioServerSocketUDT socketAdapter;
protected final SocketUDT socketUDT;
- protected ServerSocketChannelUDT( //
- final SelectorProviderUDT provider, //
- final SocketUDT socketUDT //
- ) {
-
+ protected ServerSocketChannelUDT(final SelectorProviderUDT provider, final SocketUDT socketUDT) {
super(provider);
this.socketUDT = socketUDT;
-
}
@Override
@@ -83,14 +81,22 @@ public class ServerSocketChannelUDT extends ServerSocketChannel implements Chann
}
}
- @Override
+ /**
+ * java 7
+ */
+ @Override
+ public
+ SocketAddress getLocalAddress() throws IOException {
+ throw new UnsupportedOperationException("feature not available");
+ }
+
+ @Override
protected void implCloseSelectableChannel() throws IOException {
socketUDT.close();
}
@Override
- protected void implConfigureBlocking(final boolean block)
- throws IOException {
+ protected void implConfigureBlocking(final boolean block) throws IOException {
socketUDT.setBlocking(block);
}
@@ -109,6 +115,42 @@ public class ServerSocketChannelUDT extends ServerSocketChannel implements Chann
return (SelectorProviderUDT) super.provider();
}
+ /**
+ * java 7
+ */
+ @Override
+ public
+ ServerSocketChannel bind(final SocketAddress local, final int backlog) throws IOException {
+ throw new UnsupportedOperationException("feature not available");
+ }
+
+ /**
+ * java 7
+ */
+ @Override
+ public
+ ServerSocketChannel setOption(final SocketOption name, final T value) throws IOException {
+ throw new UnsupportedOperationException("feature not available");
+ }
+
+ /**
+ * java 7
+ */
+ @Override
+ public
+ T getOption(final SocketOption name) throws IOException {
+ throw new UnsupportedOperationException("feature not available");
+ }
+
+ /**
+ * java 7
+ */
+ @Override
+ public
+ Set> supportedOptions() {
+ throw new UnsupportedOperationException("feature not available");
+ }
+
@Override
public synchronized NioServerSocketUDT socket() {
if (socketAdapter == null) {
diff --git a/src/com/barchart/udt/nio/SocketChannelUDT.java b/src/com/barchart/udt/nio/SocketChannelUDT.java
index 6fa4d6bf..aa19673d 100644
--- a/src/com/barchart/udt/nio/SocketChannelUDT.java
+++ b/src/com/barchart/udt/nio/SocketChannelUDT.java
@@ -7,22 +7,25 @@
*/
package com.barchart.udt.nio;
-import com.barchart.udt.ExceptionUDT;
-import com.barchart.udt.SocketUDT;
-import com.barchart.udt.TypeUDT;
-import com.barchart.udt.anno.ThreadSafe;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.SocketAddress;
+import java.net.SocketOption;
import java.nio.ByteBuffer;
import java.nio.channels.ClosedChannelException;
import java.nio.channels.ConnectionPendingException;
import java.nio.channels.IllegalBlockingModeException;
import java.nio.channels.SocketChannel;
import java.nio.channels.UnresolvedAddressException;
+import java.util.Set;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.barchart.udt.ExceptionUDT;
+import com.barchart.udt.SocketUDT;
+import com.barchart.udt.TypeUDT;
+import com.barchart.udt.anno.ThreadSafe;
/**
* {@link SocketChannel}-like wrapper for {@link SocketUDT}, can be either
@@ -54,8 +57,7 @@ import java.nio.channels.UnresolvedAddressException;
*/
public class SocketChannelUDT extends SocketChannel implements ChannelUDT {
- protected static final Logger log = LoggerFactory
- .getLogger(SocketChannelUDT.class);
+ protected static final Logger log = LoggerFactory.getLogger(SocketChannelUDT.class);
protected final Object connectLock = new Object();
@@ -76,22 +78,13 @@ public class SocketChannelUDT extends SocketChannel implements ChannelUDT {
private InetSocketAddress remoteSocket;
- protected SocketChannelUDT( //
- final SelectorProviderUDT provider, //
- final SocketUDT socketUDT //
- ) throws ExceptionUDT {
-
+ protected SocketChannelUDT(final SelectorProviderUDT provider, final SocketUDT socketUDT) throws ExceptionUDT {
super(provider);
this.socketUDT = socketUDT;
this.socketUDT.setBlocking(true);
}
- protected SocketChannelUDT( //
- final SelectorProviderUDT provider, //
- final SocketUDT socketUDT, //
- final boolean isConnected //
- ) throws ExceptionUDT {
-
+ protected SocketChannelUDT(final SelectorProviderUDT provider, final SocketUDT socketUDT, final boolean isConnected) throws ExceptionUDT {
this(provider, socketUDT);
if (isConnected) {
@@ -101,7 +94,6 @@ public class SocketChannelUDT extends SocketChannel implements ChannelUDT {
isConnectFinished = false;
isConnectionPending = true;
}
-
}
@Override
@@ -240,6 +232,15 @@ public class SocketChannelUDT extends SocketChannel implements ChannelUDT {
}
+ /**
+ * java 7
+ */
+ @Override
+ public
+ SocketAddress getRemoteAddress() throws IOException {
+ throw new UnsupportedOperationException("feature not available");
+ }
+
@Override
protected void implCloseSelectableChannel() throws IOException {
socketUDT.close();
@@ -357,8 +358,7 @@ public class SocketChannelUDT extends SocketChannel implements ChannelUDT {
}
@Override
- public long read(final ByteBuffer[] dsts, final int offset, final int length)
- throws IOException {
+ public long read(final ByteBuffer[] dsts, final int offset, final int length) throws IOException {
throw new RuntimeException("feature not available");
}
@@ -477,11 +477,9 @@ public class SocketChannelUDT extends SocketChannel implements ChannelUDT {
}
@Override
- public long write(final ByteBuffer[] bufferArray, final int offset,
- final int length) throws IOException {
+ public long write(final ByteBuffer[] bufferArray, final int offset, final int length) throws IOException {
try {
-
long total = 0;
for (int index = offset; index < offset + length; index++) {
@@ -505,21 +503,71 @@ public class SocketChannelUDT extends SocketChannel implements ChannelUDT {
} catch (final Throwable e) {
throw new IOException("failed to write buffer array", e);
}
-
}
- @Override
+ /**
+ * java 7
+ */
+ @Override
+ public
+ SocketAddress getLocalAddress() throws IOException {
+ throw new UnsupportedOperationException("feature not available");
+ }
+
+ @Override
public TypeUDT typeUDT() {
return providerUDT().type();
}
/** java 7 */
- public SocketChannelUDT bind(final SocketAddress localAddress)
- throws IOException {
-
+ @Override
+ public SocketChannelUDT bind(final SocketAddress localAddress) throws IOException {
socketUDT.bind((InetSocketAddress) localAddress);
-
return this;
-
}
+
+ /**
+ * java 7
+ */
+ @Override
+ public
+ SocketChannel setOption(final SocketOption option, final T value) throws IOException {
+ throw new UnsupportedOperationException("feature not available");
+ }
+
+ /**
+ * java 7
+ */
+ @Override
+ public
+ T getOption(final SocketOption name) throws IOException {
+ throw new UnsupportedOperationException("feature not available");
+ }
+
+ /**
+ * java 7
+ */
+ @Override
+ public
+ Set> supportedOptions() {
+ throw new UnsupportedOperationException("feature not available");
+ }
+
+ /**
+ * java 7
+ */
+ @Override
+ public
+ SocketChannel shutdownInput() throws IOException {
+ throw new UnsupportedOperationException("feature not available");
+ }
+
+ /**
+ * java 7
+ */
+ @Override
+ public
+ SocketChannel shutdownOutput() throws IOException {
+ throw new UnsupportedOperationException("feature not available");
+ }
}