This is the mail archive of the java-patches@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

java.nio


Hello list,


I have commited the attached patch and new files. I hope this was 
okay. There was nothing to really break as java.nio isnt implemented 
yet.


Michael
-- 
Homepage: http://www.worldforge.org/
GPG-key: http://konqueror.dyndns.org/~mkoch/michael.gpg
/* 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;
  }
}

/* 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;
  }
}
/* 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);   
}
/* 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;
  }
}

/* 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 ()
  {
  }
}
/* 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);
  }
}
/* 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;
		}
	    };
    }
 */
}
/* 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 "";
  }
}
/* 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();  
}
/* 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();   
}
/* 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();
}
/* 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();
}
Index: ChangeLog
===================================================================
RCS file: /cvs/gcc/gcc/libjava/ChangeLog,v
retrieving revision 1.1498
diff -u -r1.1498 ChangeLog
--- ChangeLog	1 Nov 2002 06:35:13 -0000	1.1498
+++ ChangeLog	1 Nov 2002 12:02:21 -0000
@@ -1,5 +1,35 @@
 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:
 	(isAnyLocalAddress): Implemented.
 	(isLoopbackAddress): Implemented, comment added.
Index: Makefile.am
===================================================================
RCS file: /cvs/gcc/gcc/libjava/Makefile.am,v
retrieving revision 1.253
diff -u -r1.253 Makefile.am
--- Makefile.am	7 Oct 2002 13:56:37 -0000	1.253
+++ Makefile.am	1 Nov 2002 12:02:22 -0000
@@ -1958,6 +1958,7 @@
 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/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 \
Index: Makefile.in
===================================================================
RCS file: /cvs/gcc/gcc/libjava/Makefile.in,v
retrieving revision 1.273
diff -u -r1.273 Makefile.in
--- Makefile.in	7 Oct 2002 13:56:37 -0000	1.273
+++ Makefile.in	1 Nov 2002 12:02:24 -0000
@@ -1708,6 +1708,7 @@
 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/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 @@
 .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 @@
 .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 \
Index: java/nio/channels/DatagramChannel.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/java/nio/channels/DatagramChannel.java,v
retrieving revision 1.2
diff -u -r1.2 DatagramChannel.java
--- java/nio/channels/DatagramChannel.java	25 Sep 2002 13:04:58 -0000	1.2
+++ java/nio/channels/DatagramChannel.java	1 Nov 2002 12:02:24 -0000
@@ -38,10 +38,13 @@
 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);
+  }
 }
-
-	       
Index: java/nio/channels/ServerSocketChannel.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/java/nio/channels/ServerSocketChannel.java,v
retrieving revision 1.2
diff -u -r1.2 ServerSocketChannel.java
--- java/nio/channels/ServerSocketChannel.java	25 Sep 2002 13:04:58 -0000	1.2
+++ java/nio/channels/ServerSocketChannel.java	1 Nov 2002 12:02:24 -0000
@@ -38,8 +38,13 @@
 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);
+  }
 }
Index: java/nio/channels/SocketChannel.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/java/nio/channels/SocketChannel.java,v
retrieving revision 1.2
diff -u -r1.2 SocketChannel.java
--- java/nio/channels/SocketChannel.java	25 Sep 2002 13:04:58 -0000	1.2
+++ java/nio/channels/SocketChannel.java	1 Nov 2002 12:02:24 -0000
@@ -38,8 +38,13 @@
 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);
+  }
 }
Index: java/nio/channels/spi/AbstractSelectableChannel.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/java/nio/channels/spi/AbstractSelectableChannel.java,v
retrieving revision 1.1
diff -u -r1.1 AbstractSelectableChannel.java
--- java/nio/channels/spi/AbstractSelectableChannel.java	25 Sep 2002 13:04:57 -0000	1.1
+++ java/nio/channels/spi/AbstractSelectableChannel.java	1 Nov 2002 12:02:24 -0000
@@ -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;
Index: java/nio/charset/spi/CharsetProvider.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/java/nio/charset/spi/CharsetProvider.java,v
retrieving revision 1.2
diff -u -r1.2 CharsetProvider.java
--- java/nio/charset/spi/CharsetProvider.java	7 Oct 2002 13:56:38 -0000	1.2
+++ java/nio/charset/spi/CharsetProvider.java	1 Nov 2002 12:02:24 -0000
@@ -37,7 +37,7 @@
 
 package java.nio.charset.spi;
 
-//import java.nio.charset.Charset;
+import java.nio.charset.Charset;
 import java.util.Iterator;
 
 /**
@@ -84,5 +84,5 @@
    *
    * @return the charset, or null if not supported
    */
-  //public abstract Charset charsetForName(String name);
+  public abstract Charset charsetForName(String name);
 } // class CharsetProvider

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]