2002-11-29 Michael Koch <konqueror@gmx.de>

* gnu/java/nio/DatagramChannelImpl:
	(fd): New member variable to store file descriptor of socket.
	* gnu/java/nio/SelectionKeyImpl.java:
	(ops): Removed.
	(readyOps): New member variable.
	(interestOps): New member variable.
	(readyOps): Implemented.
	(readyOps): New method to set member variable readyOps.
	(interestOps): Replaced ops by interestOps.
	* gnu/java/nio/SelectorImpl.java:
	(SelectorImpl): Initialize key sets.
	(select): Call select with -1 instead of Long.MAX_VALUE).
	(java_do_select): Make it a native method.
	(getFDsAsArray): New helper method.
	(select): Remove canceled keys, give only interested file discriptors
	to java_do_select, set ready ops.
	(add): No need to initialize keys set here.
	(add_selected): No need to initialize selected set here.
	(deregisterCanceledKeys): New helper method.
	(register): Set interest ops, set attachments, added handling of datagram
	channels.
	* gnu/java/nio/ServerSocketChannelImpl:
	(SocketAccept): Renamed from NioSocketAccept.
	(implConfigureBlocking): Implemented.
	(accept): Use SocketAccept instead of NioSocketAccept.
	* gnu/java/nio/SocketChannelImpl:
	Reactivate native methods.

From-SVN: r59632
This commit is contained in:
Michael Koch 2002-11-29 09:57:05 +00:00 committed by Michael Koch
parent 45596747ca
commit a4536c7a94
6 changed files with 186 additions and 67 deletions

View file

@ -54,14 +54,8 @@ class ServerSocketChannelImpl extends ServerSocketChannel
boolean connected = false;
// InetSocketAddress sa;
// private static native int NioSocketAccept (ServerSocketChannelImpl server,
// SocketChannelImpl s);
private static int NioSocketAccept (ServerSocketChannelImpl server,
SocketChannelImpl s)
{
return 0;
}
private static native int SocketAccept (ServerSocketChannelImpl server,
SocketChannelImpl s);
protected ServerSocketChannelImpl (SelectorProvider provider)
{
@ -101,13 +95,14 @@ class ServerSocketChannelImpl extends ServerSocketChannel
protected void implConfigureBlocking (boolean block)
{
blocking = block;
}
public SocketChannel accept ()
{
SocketChannelImpl result = new SocketChannelImpl (provider ());
result.sa = new InetSocketAddress (0);
int res = NioSocketAccept (this, result);
int res = SocketAccept (this,result);
return result;
}