public inbox for java-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* Patch: FYI: merge Channels
@ 2006-05-13 21:20 Tom Tromey
  0 siblings, 0 replies; only message in thread
From: Tom Tromey @ 2006-05-13 21:20 UTC (permalink / raw)
  To: Java Patch List

I'm checking this in on the trunk.

We can easily merge java.nio.channels.Channels with Classpath.
This patch implements this.

Tom

Index: ChangeLog
from  Tom Tromey  <tromey@redhat.com>
	* sources.am, Makefile.in: Rebuilt.
	* Makefile.am (nat_source_files): Mention natVMChannels.cc, not
	natChannels.cc.
	* java/nio/channels/natVMChannels.cc: Renamed from
	natChannels.cc.
	* java/nio/channels/Channels.java: Removed.
	* java/nio/channels/natChannels.cc: Removed.
	* java/nio/channels/VMChannels.java: New file.

Index: Makefile.am
===================================================================
--- Makefile.am	(revision 113735)
+++ Makefile.am	(working copy)
@@ -821,7 +821,7 @@
 java/lang/reflect/natMethod.cc \
 java/net/natVMNetworkInterface.cc \
 java/net/natInetAddress.cc \
-java/nio/channels/natChannels.cc \
+java/nio/channels/natVMChannels.cc \
 java/nio/natDirectByteBufferImpl.cc \
 java/text/natCollator.cc \
 java/util/natResourceBundle.cc \
Index: java/nio/channels/natChannels.cc
===================================================================
--- java/nio/channels/natChannels.cc	(revision 113735)
+++ java/nio/channels/natChannels.cc	(working copy)
@@ -1,36 +0,0 @@
-// natChannels.cc - Native part of Channels class.
-
-/* Copyright (C) 2004  Free Software Foundation
-
-   This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License.  Please consult the file "LIBGCJ_LICENSE" for
-details.  */
-
-#include <config.h>
-#include <gcj/cni.h>
-
-#include <java/nio/channels/Channels.h>
-#include <java/io/FileInputStream.h>
-#include <java/io/FileOutputStream.h>
-#include <gnu/java/nio/channels/FileChannelImpl.h>
-
-using java::nio::channels::Channels;
-using java::io::FileInputStream;
-using java::io::FileOutputStream;
-using gnu::java::nio::channels::FileChannelImpl;
-
-FileInputStream*
-Channels::newInputStream(FileChannelImpl* ch)
-{
-  // Needs to be native to bypass Java access protection.
-  return new FileInputStream (ch);
-}
-
-FileOutputStream*
-Channels::newOutputStream(FileChannelImpl* ch)
-{
-  // Needs to be native to bypass Java access protection.
-  return new FileOutputStream (ch);
-}
Index: java/nio/channels/natVMChannels.cc
===================================================================
--- java/nio/channels/natVMChannels.cc	(revision 0)
+++ java/nio/channels/natVMChannels.cc	(revision 0)
@@ -0,0 +1,37 @@
+// natVMChannels.cc - Native part of VMChannels class.
+
+/* Copyright (C) 2004, 2006  Free Software Foundation
+
+   This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License.  Please consult the file "LIBGCJ_LICENSE" for
+details.  */
+
+#include <config.h>
+#include <gcj/cni.h>
+
+#include <java/nio/channels/VMChannels.h>
+#include <java/nio/channels/Channels.h>
+#include <java/io/FileInputStream.h>
+#include <java/io/FileOutputStream.h>
+#include <gnu/java/nio/channels/FileChannelImpl.h>
+
+using java::nio::channels::VMChannels;
+using java::io::FileInputStream;
+using java::io::FileOutputStream;
+using gnu::java::nio::channels::FileChannelImpl;
+
+FileInputStream*
+VMChannels::newInputStream(FileChannelImpl* ch)
+{
+  // Needs to be native to bypass Java access protection.
+  return new FileInputStream (ch);
+}
+
+FileOutputStream*
+VMChannels::newOutputStream(FileChannelImpl* ch)
+{
+  // Needs to be native to bypass Java access protection.
+  return new FileOutputStream (ch);
+}
Index: java/nio/channels/Channels.java
===================================================================
--- java/nio/channels/Channels.java	(revision 113735)
+++ java/nio/channels/Channels.java	(working copy)
@@ -1,156 +0,0 @@
-/* Channels.java --
-   Copyright (C) 2002, 2003, 2004, 2005  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., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 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 gnu.java.nio.ChannelInputStream;
-import gnu.java.nio.ChannelOutputStream;
-import gnu.java.nio.ChannelReader;
-import gnu.java.nio.InputStreamChannel;
-import gnu.java.nio.OutputStreamChannel;
-import gnu.java.nio.channels.FileChannelImpl;
-
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.Reader;
-import java.io.Writer;
-import java.nio.charset.Charset;
-import java.nio.charset.CharsetDecoder;
-import java.nio.charset.CharsetEncoder;
-
-
-/**
- * @since 1.4
- */
-public final class Channels
-{
-  /**
-   * This class isn't intended to be instantiated.
-   */
-  private Channels()
-  {
-    // Do nothing here.
-  }
-
-  /**
-   * Constructs a stream that reads bytes from the given channel.
-   */
-  public static InputStream newInputStream(ReadableByteChannel ch)
-  {
-    if (ch instanceof FileChannelImpl)
-      return newInputStream((FileChannelImpl) ch);
-    return new ChannelInputStream(ch);
-  }
-
-  /**
-   * Constructs a stream that writes bytes to the given channel.
-   */
-  public static OutputStream newOutputStream(WritableByteChannel ch)
-  {
-    if (ch instanceof FileChannelImpl)
-      return newOutputStream((FileChannelImpl) ch);
-    return new ChannelOutputStream(ch);
-  }
-
-  static native FileInputStream newInputStream(FileChannelImpl ch);
-
-  static native FileOutputStream newOutputStream(FileChannelImpl ch);
-
-  /**
-   * Constructs a channel that reads bytes from the given stream.
-   */
-  public static ReadableByteChannel newChannel(InputStream in)
-  {
-    return new InputStreamChannel(in);
-  }
-
-  /**
-   * Constructs a channel that writes bytes to the given stream.
-   */
-  public static WritableByteChannel newChannel(OutputStream out)
-  {
-    return new OutputStreamChannel(out);
-  }
-
-  /**
-   * Constructs a reader that decodes bytes from the given channel using the
-   * given decoder.
-   */
-  public static Reader newReader(ReadableByteChannel ch, CharsetDecoder dec,
-                                 int minBufferCap)
-  {
-    return new ChannelReader(ch, dec, minBufferCap);
-  }
-
-  /**
-   * Constructs a reader that decodes bytes from the given channel according to
-   * the named charset.
-   *
-   * @exception UnsupportedCharsetException If no support for the named charset
-   * is available in this instance of the Java virtual machine.
-   */
-  public static Reader newReader(ReadableByteChannel ch, String csName)
-  {
-    return newReader(ch, Charset.forName(csName).newDecoder(), -1);
-  }
-
-  /**
-   * Constructs a writer that encodes characters using the given encoder and
-   * writes the resulting bytes to the given channel.
-   */
-  public static Writer newWriter(WritableByteChannel ch, CharsetEncoder enc,
-                                 int minBufferCap)
-  {
-    // FIXME: implement java.nio.channels.Channel.newWriter(WritableByteChannel, CharsetEncoder, int) 
-    throw new Error("not implemented");
-  }
-
-  /**
-   * Constructs a writer that encodes characters according to the named charset
-   * and writes the resulting bytes to the given channel.
-   *
-   * @exception UnsupportedCharsetException If no support for the named charset
-   * is available in this instance of the Java virtual machine.
-   */
-  public static Writer newWriter(WritableByteChannel ch, String csName)
-  {
-    return newWriter(ch, Charset.forName(csName).newEncoder(), -1);
-  }
-}
Index: java/nio/channels/VMChannels.java
===================================================================
--- java/nio/channels/VMChannels.java	(revision 0)
+++ java/nio/channels/VMChannels.java	(revision 0)
@@ -0,0 +1,85 @@
+/* VMChannels.java --
+   Copyright (C) 2005, 2006  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., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 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 gnu.java.nio.ChannelInputStream;
+import gnu.java.nio.ChannelOutputStream;
+import gnu.java.nio.channels.FileChannelImpl;
+
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
+
+final class VMChannels
+{
+  /**
+   * This class isn't intended to be instantiated.
+   */
+  private VMChannels()
+  {
+    // Do nothing here.
+  }
+
+  static native FileInputStream newInputStream(FileChannelImpl ch);
+
+  static native FileOutputStream newOutputStream(FileChannelImpl ch);
+
+  /**
+   * Constructs a stream that reads bytes from the given channel.
+   */
+  static InputStream newInputStream(ReadableByteChannel ch)
+  {
+    if (ch instanceof FileChannelImpl)
+      return newInputStream((FileChannelImpl) ch);
+    return new ChannelInputStream(ch);
+  }
+
+  /**
+   * Constructs a stream that writes bytes to the given channel.
+   */
+  static OutputStream newOutputStream(WritableByteChannel ch)
+  {
+    if (ch instanceof FileChannelImpl)
+      return newOutputStream((FileChannelImpl) ch);
+    return new ChannelOutputStream(ch);
+  }
+}

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2006-05-13 21:20 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-05-13 21:20 Patch: FYI: merge Channels Tom Tromey

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).