ByteOrder.java: New file.

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

	* java/nio/ByteOrder.java: New file.
	* java/nio/channels/DatagramChannel.java:
	(DatagramChannel): New constructor.
	* java/nio/channels/Pipe.java: New file.
	* java/nio/channels/SelectableChannel.java: New file.
	* java/nio/channels/SelectionKey.java: New file.
	* java/nio/channels/Selector.java: New file.
	* java/nio/channels/ServerSocketChannel.java
	(ServerSocketChannel): New constructor.
	* java/nio/channels/SocketChannel.java
	(SocketChannel): New constructor.
	* java/nio/channels/Pipe.java: New file.
	* java/nio/channels/spi/AbstractChannel.java: New file.
	* java/nio/channels/spi/AbstractInterruptibleChannel.java: New file.
	* java/nio/channels/spi/AbstractSelectableChannel.java:
	License added
	(AbstractSelectableChannel): New stubbed method.
	* java/nio/channels/spi/AbstractSelectionKey.java: New file.
	* java/nio/channels/spi/AbstractSelector.java: New file.
	* java/nio/channels/spi/SelectorProvider.java: New file.
	* java/nio/charset/Charset.java: New file.
	* java/nio/charset/CoderMalfunctionError.java: New file.
	* java/nio/charset/CodingErrorAction.java: New file.
	* java/nio/charset/spi/CharsetProvider.java
	(charsetForName): Uncommented.
	* Makefile.am (java_native_source_files): Added new files.
	* Makefile.in: Regenerated.

From-SVN: r58713
This commit is contained in:
Michael Koch 2002-11-01 12:03:40 +00:00 committed by Michael Koch
parent 075fc17aa5
commit 9dcb1ec813
21 changed files with 1166 additions and 8 deletions

View File

@ -1,3 +1,33 @@
2002-11-01 Michael Koch <konqueror@gmx.de>
* java/nio/ByteOrder.java: New file.
* java/nio/channels/DatagramChannel.java:
(DatagramChannel): New constructor.
* java/nio/channels/Pipe.java: New file.
* java/nio/channels/SelectableChannel.java: New file.
* java/nio/channels/SelectionKey.java: New file.
* java/nio/channels/Selector.java: New file.
* java/nio/channels/ServerSocketChannel.java
(ServerSocketChannel): New constructor.
* java/nio/channels/SocketChannel.java
(SocketChannel): New constructor.
* java/nio/channels/Pipe.java: New file.
* java/nio/channels/spi/AbstractChannel.java: New file.
* java/nio/channels/spi/AbstractInterruptibleChannel.java: New file.
* java/nio/channels/spi/AbstractSelectableChannel.java:
License added
(AbstractSelectableChannel): New stubbed method.
* java/nio/channels/spi/AbstractSelectionKey.java: New file.
* java/nio/channels/spi/AbstractSelector.java: New file.
* java/nio/channels/spi/SelectorProvider.java: New file.
* java/nio/charset/Charset.java: New file.
* java/nio/charset/CoderMalfunctionError.java: New file.
* java/nio/charset/CodingErrorAction.java: New file.
* java/nio/charset/spi/CharsetProvider.java
(charsetForName): Uncommented.
* Makefile.am (java_native_source_files): Added new files.
* Makefile.in: Regenerated.
2002-11-01 Michael Koch <konqueror@gmx.de>
* java/net/InetAddress.java:

View File

@ -1958,6 +1958,7 @@ java/net/UnknownHostException.java \
java/net/UnknownServiceException.java \
java/nio/Buffer.java \
java/nio/ByteBuffer.java \
java/nio/ByteOrder.java \
java/nio/MappedByteBuffer.java \
java/nio/channels/AlreadyConnectedException.java \
java/nio/channels/ByteChannel.java \
@ -1967,13 +1968,25 @@ java/nio/channels/DatagramChannel.java \
java/nio/channels/GatheringByteChannel.java \
java/nio/channels/IllegalBlockingModeException.java \
java/nio/channels/InterruptibleChannel.java \
java/nio/channels/Pipe.java \
java/nio/channels/ReadableByteChannel.java \
java/nio/channels/ScatteringByteChannel.java \
java/nio/channels/SelectableChannel.java \
java/nio/channels/SelectionKey.java \
java/nio/channels/Selector.java \
java/nio/channels/ServerSocketChannel.java \
java/nio/channels/SocketChannel.java \
java/nio/channels/WritableByteChannel.java \
java/nio/channels/spi/AbstractSelectableChannel.java \
java/nio/channels/spi/AbstractChannel.java \
java/nio/channels/spi/AbstractInterruptibleChannel.java \
java/nio/channels/spi/AbstractSelectionKey.java \
java/nio/channels/spi/AbstractSelector.java \
java/nio/channels/spi/SelectorProvider.java \
java/nio/charset/Charset.java \
java/nio/charset/CharacterCodingException.java \
java/nio/charset/CoderMalfunctionError.java \
java/nio/charset/CodingErrorAction.java \
java/nio/charset/IllegalCharsetNameException.java \
java/nio/charset/MalformedInputException.java \
java/nio/charset/UnmappableCharacterException.java \

View File

@ -1708,6 +1708,7 @@ java/net/UnknownHostException.java \
java/net/UnknownServiceException.java \
java/nio/Buffer.java \
java/nio/ByteBuffer.java \
java/nio/ByteOrder.java \
java/nio/MappedByteBuffer.java \
java/nio/channels/AlreadyConnectedException.java \
java/nio/channels/ByteChannel.java \
@ -1717,13 +1718,25 @@ java/nio/channels/DatagramChannel.java \
java/nio/channels/GatheringByteChannel.java \
java/nio/channels/IllegalBlockingModeException.java \
java/nio/channels/InterruptibleChannel.java \
java/nio/channels/Pipe.java \
java/nio/channels/ReadableByteChannel.java \
java/nio/channels/ScatteringByteChannel.java \
java/nio/channels/SelectableChannel.java \
java/nio/channels/SelectionKey.java \
java/nio/channels/Selector.java \
java/nio/channels/ServerSocketChannel.java \
java/nio/channels/SocketChannel.java \
java/nio/channels/WritableByteChannel.java \
java/nio/channels/spi/AbstractSelectableChannel.java \
java/nio/channels/spi/AbstractChannel.java \
java/nio/channels/spi/AbstractInterruptibleChannel.java \
java/nio/channels/spi/AbstractSelectionKey.java \
java/nio/channels/spi/AbstractSelector.java \
java/nio/channels/spi/SelectorProvider.java \
java/nio/charset/Charset.java \
java/nio/charset/CharacterCodingException.java \
java/nio/charset/CoderMalfunctionError.java \
java/nio/charset/CodingErrorAction.java \
java/nio/charset/IllegalCharsetNameException.java \
java/nio/charset/MalformedInputException.java \
java/nio/charset/UnmappableCharacterException.java \
@ -2959,7 +2972,8 @@ DEP_FILES = .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \
.deps/java/net/natInetAddress.P .deps/java/net/natNetworkInterface.P \
.deps/java/net/natPlainDatagramSocketImpl.P \
.deps/java/net/natPlainSocketImpl.P .deps/java/nio/Buffer.P \
.deps/java/nio/ByteBuffer.P .deps/java/nio/MappedByteBuffer.P \
.deps/java/nio/ByteBuffer.P .deps/java/nio/ByteOrder.P \
.deps/java/nio/MappedByteBuffer.P \
.deps/java/nio/channels/AlreadyConnectedException.P \
.deps/java/nio/channels/ByteChannel.P .deps/java/nio/channels/Channel.P \
.deps/java/nio/channels/ClosedChannelException.P \
@ -2967,13 +2981,25 @@ DEP_FILES = .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \
.deps/java/nio/channels/GatheringByteChannel.P \
.deps/java/nio/channels/IllegalBlockingModeException.P \
.deps/java/nio/channels/InterruptibleChannel.P \
.deps/java/nio/channels/Pipe.P \
.deps/java/nio/channels/ReadableByteChannel.P \
.deps/java/nio/channels/ScatteringByteChannel.P \
.deps/java/nio/channels/SelectableChannel.P \
.deps/java/nio/channels/SelectionKey.P \
.deps/java/nio/channels/Selector.P \
.deps/java/nio/channels/ServerSocketChannel.P \
.deps/java/nio/channels/SocketChannel.P \
.deps/java/nio/channels/WritableByteChannel.P \
.deps/java/nio/channels/spi/AbstractChannel.P \
.deps/java/nio/channels/spi/AbstractInterruptibleChannel.P \
.deps/java/nio/channels/spi/AbstractSelectableChannel.P \
.deps/java/nio/channels/spi/AbstractSelectionKey.P \
.deps/java/nio/channels/spi/AbstractSelector.P \
.deps/java/nio/channels/spi/SelectorProvider.P \
.deps/java/nio/charset/CharacterCodingException.P \
.deps/java/nio/charset/Charset.P \
.deps/java/nio/charset/CoderMalfunctionError.P \
.deps/java/nio/charset/CodingErrorAction.P \
.deps/java/nio/charset/IllegalCharsetNameException.P \
.deps/java/nio/charset/MalformedInputException.P \
.deps/java/nio/charset/UnmappableCharacterException.P \

View File

@ -0,0 +1,60 @@
/* ByteOrder.java --
Copyright (C) 2002 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package java.nio;
public final class ByteOrder
{
public static final ByteOrder BIG_ENDIAN = new ByteOrder();
public static final ByteOrder LITTLE_ENDIAN = new ByteOrder();
public static ByteOrder nativeOrder()
{
return BIG_ENDIAN;
}
public String toString()
{
return this == BIG_ENDIAN ? "BIG_ENDIAN" : "LITTLE_ENDIAN";
}
// This class can only be instantiated here.
private ByteOrder ()
{
}
}

View File

@ -38,10 +38,13 @@ exception statement from your version. */
package java.nio.channels;
import java.nio.channels.spi.AbstractSelectableChannel;
import java.nio.channels.spi.SelectorProvider;
public class DatagramChannel
public abstract class DatagramChannel
extends AbstractSelectableChannel
{
public DatagramChannel (SelectorProvider provider)
{
super (provider);
}
}

View File

@ -0,0 +1,79 @@
/* Pipe.java --
Copyright (C) 2002 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package java.nio.channels;
import java.nio.channels.spi.AbstractSelectableChannel;
import java.nio.channels.spi.SelectorProvider;
public abstract class Pipe
{
public abstract static class SinkChannel
extends AbstractSelectableChannel
implements WritableByteChannel, GatheringByteChannel
{
protected SinkChannel(SelectorProvider provider)
{
super (provider);
}
}
public abstract static class SourceChannel
extends AbstractSelectableChannel
implements ReadableByteChannel, ScatteringByteChannel
{
protected SourceChannel(SelectorProvider provider)
{
super (provider);
}
}
protected Pipe()
{
}
/**
* @exception IOException If an error occurs
*/
public static Pipe open()
{
return null;
}
public abstract Pipe.SinkChannel sink();
public abstract Pipe.SourceChannel source();
}

View File

@ -0,0 +1,89 @@
/* SelectableChannel.java --
Copyright (C) 2002 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package java.nio.channels;
import java.nio.channels.spi.AbstractInterruptibleChannel;
import java.nio.channels.spi.SelectorProvider;
public abstract class SelectableChannel
extends AbstractInterruptibleChannel
{
protected SelectableChannel()
{
}
public abstract Object blockingLock();
/**
* @exception ClosedChannelException FIXME
* @exception IllegalBlockingModeException FIXME
* @exception IOException FIXME
*/
public abstract SelectableChannel configureBlocking(boolean block);
public abstract boolean isBlocking();
public abstract boolean isRegistered();
public abstract SelectionKey keyFor(Selector sel);
public abstract SelectorProvider provider();
/**
* @exception CancelledKeyException FIXME
* @exception ClosedChannelException FIXME
* @exception IllegalArgumentException FIXME
* @exception IllegalBlockingModeException FIXME
* @exception IllegalSelectorException FIXME
*/
public final SelectionKey register(Selector sel, int ops) throws java.nio.channels.ClosedChannelException
{
return register(sel, ops, null);
}
/**
* @exception CancelledKeyException FIXME
* @exception ClosedChannelException FIXME
* @exception IllegalArgumentException FIXME
* @exception IllegalBlockingModeException FIXME
* @exception IllegalSelectorException FIXME
*/
public abstract SelectionKey register(Selector sel, int ops, Object att) throws java.nio.channels.ClosedChannelException;
public abstract int validOps();
}

View File

@ -0,0 +1,120 @@
/* SelectionKey.java --
Copyright (C) 2002 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package java.nio.channels;
public abstract class SelectionKey
{
public static final int OP_ACCEPT = 1<<0;
public static final int OP_CONNECT = 1<<1;
public static final int OP_READ = 1<<2;
public static final int OP_WRITE = 1<<3;
Object attached;
protected SelectionKey()
{
}
public final Object attach(Object obj)
{
Object old = attached;
attached = obj;
return old;
}
public final Object attachment()
{
return attached;
}
/**
* @exception CancelledKeyException FIXME
*/
public final boolean isAcceptable()
{
return (readyOps() & OP_ACCEPT) != 0;
}
/**
* @exception CancelledKeyException FIXME
*/
public final boolean isConnectable()
{
return (readyOps() & OP_CONNECT) != 0;
}
/**
* @exception CancelledKeyException FIXME
*/
public final boolean isReadable()
{
return (readyOps() & OP_READ) != 0;
}
/**
* @exception CancelledKeyException FIXME
*/
public final boolean isWritable()
{
return (readyOps() & OP_WRITE) != 0;
}
public abstract void cancel();
public abstract SelectableChannel channel();
/**
* @exception CancelledKeyException FIXME
*/
public abstract int interestOps();
/**
* @exception CancelledKeyException FIXME
* @exception IllegalArgumentException FIXME
*/
public abstract SelectionKey interestOps(int ops);
public abstract boolean isValid();
/**
* @exception CancelledKeyException FIXME
*/
public abstract int readyOps();
public abstract Selector selector();
}

View File

@ -0,0 +1,96 @@
/* Selector.java --
Copyright (C) 2002 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package java.nio.channels;
import java.util.Set;
import java.nio.channels.spi.SelectorProvider;
public abstract class Selector
{
protected Selector()
{
}
/**
* @exception IOException If an error occurs
*/
public static Selector open()
{
return SelectorProvider.provider().openSelector();
}
/**
* @exception IOException If an error occurs
*/
public abstract void close();
public abstract boolean isOpen();
/**
* @exception ClosedSelectorException FIXME
*/
public abstract Set keys();
public abstract SelectorProvider provider();
/**
* @exception ClosedSelectorException FIXME
* @exception IOException If an error occurs
*/
public abstract int select();
/**
* @exception ClosedSelectorException FIXME
* @exception IllegalArgumentException FIXME
* @exception IOException If an error occurs
*/
public abstract int select(long timeout);
/**
* @exception ClosedSelectorException FIXME
*/
public abstract Set selectedKeys();
/**
* @exception ClosedSelectorException FIXME
* @exception IOException If an error occurs
*/
public abstract int selectNow();
public abstract Selector wakeup();
}

View File

@ -38,8 +38,13 @@ exception statement from your version. */
package java.nio.channels;
import java.nio.channels.spi.AbstractSelectableChannel;
import java.nio.channels.spi.SelectorProvider;
public class ServerSocketChannel
public abstract class ServerSocketChannel
extends AbstractSelectableChannel
{
public ServerSocketChannel (SelectorProvider provider)
{
super (provider);
}
}

View File

@ -38,8 +38,13 @@ exception statement from your version. */
package java.nio.channels;
import java.nio.channels.spi.AbstractSelectableChannel;
import java.nio.channels.spi.SelectorProvider;
public class SocketChannel
public abstract class SocketChannel
extends AbstractSelectableChannel
{
public SocketChannel (SelectorProvider provider)
{
super (provider);
}
}

View File

@ -0,0 +1,57 @@
/* AbstractChannel.java --
Copyright (C) 2002 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package java.nio.channels.spi;
import java.io.IOException;
import java.nio.channels.Channel;
public abstract class AbstractChannel implements Channel
{
boolean opened;
public boolean isOpen()
{
return opened;
}
public void close() throws IOException
{
if (! isOpen())
return;
}
}

View File

@ -0,0 +1,87 @@
/* AbstractInterruptibleChannel.java --
Copyright (C) 2002 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package java.nio.channels.spi;
import java.io.IOException;
import java.nio.channels.Channel;
import java.nio.channels.InterruptibleChannel;
public abstract class AbstractInterruptibleChannel
implements Channel, InterruptibleChannel
{
boolean opened = false;
protected AbstractInterruptibleChannel()
{
}
protected final void begin()
{
// Marks the beginning of an I/O operation that might block indefinitely.
}
/**
* @exception IOException If an error occurs
*/
public final void close() throws IOException
{
// Closes this channel.
implCloseChannel();
}
/**
* @exception AsynchronousCloseException FIXME
* @exception ClosedByInterruptException FIXME
*/
protected final void end(boolean completed)
{
// Marks the end of an I/O operation that might block indefinitely.
}
/**
* @exception IOException If an error occurs
*/
protected abstract void implCloseChannel() throws IOException;
public final boolean isOpen()
{
// Tells whether or not this channel is open.
return opened;
}
}

View File

@ -1,7 +1,51 @@
/* AbstractSelectableChannel.java --
Copyright (C) 2002 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package java.nio.channels.spi;
import java.nio.channels.SelectableChannel;
public abstract class AbstractSelectableChannel
extends SelectableChannel
{
protected AbstractSelectableChannel (SelectorProvider provider)
{
}
public final boolean isBlocking()
{
return true;

View File

@ -0,0 +1,66 @@
/* AbstractSelectionKey.java --
Copyright (C) 2002 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package java.nio.channels.spi;
import java.nio.channels.SelectionKey;
public abstract class AbstractSelectionKey
extends SelectionKey
{
boolean ok = true;
protected AbstractSelectionKey ()
{
}
public final void cancel ()
{
if (ok)
{
selector ().selectedKeys ().add (this);
}
ok = false;
}
public final boolean isValid ()
{
return ok;
}
}

View File

@ -0,0 +1,100 @@
/* AbstractSelector.java --
Copyright (C) 2002 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package java.nio.channels.spi;
import java.nio.channels.SelectionKey;
import java.nio.channels.Selector;
import java.util.List;
import java.util.Set;
public abstract class AbstractSelector extends Selector
{
boolean closed = true;
SelectorProvider provider;
protected AbstractSelector(SelectorProvider provider)
{
this.provider = provider;
}
protected final void begin()
{
}
/**
* @exception IOException If an error occurs
*/
public final void close()
{
if (closed)
return;
closed = true;
implCloseSelector();
}
protected final void deregister(AbstractSelectionKey key)
{
cancelledKeys().remove(key);
}
protected final void end()
{
}
public final boolean isOpen()
{
return ! closed;
}
public final SelectorProvider provider()
{
return provider;
}
protected final Set cancelledKeys()
{
return null;
}
/**
* @exception IOException If an error occurs
*/
protected abstract void implCloseSelector();
protected abstract SelectionKey register(AbstractSelectableChannel ch, int ops, Object att);
}

View File

@ -0,0 +1,82 @@
/* SelectorProvider.java --
Copyright (C) 2002 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package java.nio.channels.spi;
import java.nio.channels.DatagramChannel;
import java.nio.channels.Pipe;
import java.nio.channels.ServerSocketChannel;
import java.nio.channels.SocketChannel;
/**
* @since 1.4
*/
public abstract class SelectorProvider
{
static SelectorProvider pr;
/**
* Creates the <code>SelectorProvider<code> object
*
* @exception SecurityException If a security manager has been installed and
* it denies RuntimePermission("selectorProvider")
*/
protected SelectorProvider()
{
SecurityManager sm = System.getSecurityManager ();
if (sm != null)
sm.checkPermission (new RuntimePermission ("selectorProvider"));
}
public abstract DatagramChannel openDatagramChannel();
public abstract Pipe openPipe();
public abstract AbstractSelector openSelector();
public abstract ServerSocketChannel openServerSocketChannel();
public abstract SocketChannel openSocketChannel();
/**
* Returns the global <code>SelectorProvider</code> object
*/
public static SelectorProvider provider()
{
return pr;
}
}

View File

@ -0,0 +1,90 @@
/* Charset.java --
Copyright (C) 2002 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package java.nio.charset;
import java.nio.*;
public class Charset
{
public static Charset forName(String name)
{
return new Charset();
}
/*
public CharsetDecoder newDecoder()
{
return new CharsetDecoder(this,2,2)
{
protected CoderResult decodeLoop(ByteBuffer in,
CharBuffer out)
{
while (in.hasRemaining())
{
char a = (char) in.get();
out.put(a);
}
return null;
}
};
}
public CharsetEncoder newEncoder()
{
return new CharsetEncoder(this,2,2)
{
protected CoderResult encodeLoop(CharBuffer in,
ByteBuffer out)
{
//System.out.println("in encode loop:"+in.hasRemaining());
while (in.hasRemaining())
{
char a = in.get();
out.put((byte)a);
//int len = out.position();
//System.out.println("pos="+len + ","+a);
}
return null;
}
};
}
*/
}

View File

@ -0,0 +1,52 @@
/* CoderMalfunctionError.java --
Copyright (C) 2002 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package java.nio.charset;
/**
* @since 1.4
*/
class CoderMalfunctionError extends Error
{
/**
* Creates the error
*/
public CoderMalfunctionError(Exception cause)
{
super (cause);
}
}

View File

@ -0,0 +1,54 @@
/* CodingErrorAction.java --
Copyright (C) 2002 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package java.nio.charset;
class CodingErrorAction
{
public static final CodingErrorAction IGNORE;
public static final CodingErrorAction REPLACE;
public static final CodingErrorAction REPORT;
/**
* FIXME
*/
public String toString ()
{
return "";
}
}

View File

@ -37,7 +37,7 @@ exception statement from your version. */
package java.nio.charset.spi;
//import java.nio.charset.Charset;
import java.nio.charset.Charset;
import java.util.Iterator;
/**
@ -84,5 +84,5 @@ public abstract class CharsetProvider
*
* @return the charset, or null if not supported
*/
//public abstract Charset charsetForName(String name);
public abstract Charset charsetForName(String name);
} // class CharsetProvider