2002-11-20 Michael Koch <konqueror@gmx.de>
* java/io/FileInputStream.java (getChannel): New method. * java/io/FileOutputStream.java (getChannel): New method. * java/net/ServerSocket.java (bind): Removed duplicate code and called another bind method instead. * java/nio/channels/SelectionKey.java (isValid): Removed wrong exception documentation. * java/nio/channels/ServerSocketChannel.java (accept): Added exception documentation. (open): Fixed typo, added exception documentation. * java/nio/channels/spi/AbstractSelectableChannel.java (implCloseChannel): Added exception documentation. (add): Reformated. (register): Added exception documentation. From-SVN: r59307
This commit is contained in:
parent
e6226a2f87
commit
3ebb998e6f
7 changed files with 65 additions and 25 deletions
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (C) 1998, 1999, 2001 Free Software Foundation
|
||||
/* Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
|
@ -8,6 +8,8 @@ details. */
|
|||
|
||||
package java.io;
|
||||
|
||||
import java.nio.channels.FileChannel;
|
||||
|
||||
/**
|
||||
* @author Warren Levy <warrenl@cygnus.com>
|
||||
* @date October 28, 1998.
|
||||
|
@ -23,6 +25,8 @@ public class FileInputStream extends InputStream
|
|||
/* Contains the file descriptor for referencing the actual file. */
|
||||
private FileDescriptor fd;
|
||||
|
||||
private FileChannel ch;
|
||||
|
||||
public FileInputStream(String name) throws FileNotFoundException
|
||||
{
|
||||
SecurityManager s = System.getSecurityManager();
|
||||
|
@ -92,4 +96,9 @@ public class FileInputStream extends InputStream
|
|||
long endPos = fd.seek(n, FileDescriptor.CUR, true);
|
||||
return endPos - startPos;
|
||||
}
|
||||
|
||||
public FileChannel getChannel ()
|
||||
{
|
||||
return ch;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,6 +10,8 @@ details. */
|
|||
|
||||
package java.io;
|
||||
|
||||
import java.nio.channels.FileChannel;
|
||||
|
||||
/**
|
||||
* @author Tom Tromey <tromey@cygnus.com>
|
||||
* @date September 24, 1998
|
||||
|
@ -93,4 +95,9 @@ public class FileOutputStream extends OutputStream
|
|||
|
||||
// Instance variables.
|
||||
private FileDescriptor fd;
|
||||
|
||||
public FileChannel getChannel ()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -151,6 +151,7 @@ public class ServerSocket
|
|||
throws IOException
|
||||
{
|
||||
this();
|
||||
|
||||
if (impl == null)
|
||||
throw new IOException("Cannot initialize Socket implementation");
|
||||
|
||||
|
@ -181,19 +182,7 @@ public class ServerSocket
|
|||
public void bind (SocketAddress endpoint)
|
||||
throws IOException
|
||||
{
|
||||
if (impl == null)
|
||||
throw new IOException ("Cannot initialize Socket implementation");
|
||||
|
||||
if (! (endpoint instanceof InetSocketAddress))
|
||||
throw new IllegalArgumentException ("Address type not supported");
|
||||
|
||||
InetSocketAddress tmp = (InetSocketAddress) endpoint;
|
||||
|
||||
SecurityManager s = System.getSecurityManager ();
|
||||
if (s != null)
|
||||
s.checkListen (tmp.getPort ());
|
||||
|
||||
impl.bind (tmp.getAddress (), tmp.getPort ());
|
||||
bind (endpoint, 50);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -147,8 +147,6 @@ public abstract class SelectionKey
|
|||
|
||||
/**
|
||||
* Tells whether or not this key is valid.
|
||||
*
|
||||
* @exception CancelledKeyException If this key has been cancelled
|
||||
*/
|
||||
public abstract boolean isValid ();
|
||||
|
||||
|
|
|
@ -60,7 +60,18 @@ public abstract class ServerSocketChannel
|
|||
}
|
||||
|
||||
/**
|
||||
* Accepts a connection made to this channel's socket.
|
||||
* Accepts a connection made to this channel's socket.
|
||||
*
|
||||
* @exception IOException If an error occurs
|
||||
* @exception AsynchronousCloseException If another thread closes this
|
||||
* channel while the accept operation is in progress.
|
||||
* @exception ClosedByInterruptException If another thread interrupts the
|
||||
* current thread while the accept operation is in progress, thereby closing
|
||||
* the channel and setting the current thread's interrupt status.
|
||||
* @exception ClosedChannelException If the channel is closed.
|
||||
* @exception NotYetBoundException If the channel's socket is not yet bound.
|
||||
* @exception SecurityException If a security manager has been installed and
|
||||
* it does not permit access to the remote endpoint of the new connection.
|
||||
*/
|
||||
public abstract SocketChannel accept ();
|
||||
|
||||
|
@ -70,7 +81,9 @@ public abstract class ServerSocketChannel
|
|||
public abstract ServerSocket socket ();
|
||||
|
||||
/**
|
||||
* Opens a server socker channel.
|
||||
* Opens a server socket channel.
|
||||
*
|
||||
* @exception IOException If an error occurs
|
||||
*/
|
||||
public static ServerSocketChannel open () throws IOException
|
||||
{
|
||||
|
|
|
@ -78,8 +78,8 @@ public abstract class AbstractSelectableChannel extends SelectableChannel
|
|||
{
|
||||
synchronized (LOCK)
|
||||
{
|
||||
blocking = true;
|
||||
implConfigureBlocking (block);
|
||||
blocking = true;
|
||||
implConfigureBlocking (block);
|
||||
}
|
||||
|
||||
return this;
|
||||
|
@ -87,6 +87,8 @@ public abstract class AbstractSelectableChannel extends SelectableChannel
|
|||
|
||||
/**
|
||||
* Closes this channel.
|
||||
*
|
||||
* @exception IOException If an error occurs
|
||||
*/
|
||||
protected final void implCloseChannel ()
|
||||
{
|
||||
|
@ -168,13 +170,17 @@ public abstract class AbstractSelectableChannel extends SelectableChannel
|
|||
private void add (SelectionKey key)
|
||||
{
|
||||
if (keys == null)
|
||||
keys = new LinkedList ();
|
||||
{
|
||||
keys = new LinkedList ();
|
||||
}
|
||||
|
||||
keys.add (key);
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers this channel with the given selector, returning a selection key.
|
||||
*
|
||||
* @exception ClosedChannelException If the channel is already closed.
|
||||
*/
|
||||
public final SelectionKey register (Selector selin, int ops, Object att)
|
||||
throws ClosedChannelException
|
||||
|
@ -187,19 +193,19 @@ public abstract class AbstractSelectableChannel extends SelectableChannel
|
|||
|
||||
synchronized (LOCK)
|
||||
{
|
||||
k = locate (selector);
|
||||
k = locate (selector);
|
||||
|
||||
if (k != null)
|
||||
if (k != null)
|
||||
{
|
||||
k.attach (att);
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
k = selector.register (this, ops, att);
|
||||
|
||||
if (k != null)
|
||||
add (k);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return k;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue