aboutsummaryrefslogtreecommitdiff
path: root/libjava/gnu
diff options
context:
space:
mode:
authorMichael Koch <konqueror@gmx.de>2003-11-11 11:49:12 +0000
committerMichael Koch <mkoch@gcc.gnu.org>2003-11-11 11:49:12 +0000
commit4ba6d1c3e2c8fc01c1e0f87c1417f9350b2ccf80 (patch)
treec80ab1a57d3bd04ed607e9739fe078abb21575f4 /libjava/gnu
parente055c0677062fe1888fd992e65fe67a6dbd283a8 (diff)
downloadgcc-4ba6d1c3e2c8fc01c1e0f87c1417f9350b2ccf80.zip
gcc-4ba6d1c3e2c8fc01c1e0f87c1417f9350b2ccf80.tar.gz
gcc-4ba6d1c3e2c8fc01c1e0f87c1417f9350b2ccf80.tar.bz2
natPipeImpl.cc, [...]: Removed
2003-11-11 Michael Koch <konqueror@gmx.de> * gnu/java/nio/natPipeImpl.cc, gnu/java/nio/natSelectorImpl.cc: Removed * gnu/java/nio/natPipeImplEcos.cc, gnu/java/nio/natPipeImplPosix.cc, gnu/java/nio/natPipeImplWin32.cc, gnu/java/nio/natSelectorImplEcos.cc, gnu/java/nio/natSelectorImplPosix.cc, gnu/java/nio/natSelectorImplWin32.cc: New files * configure.in: Create links for gnu/java/nio/natPipeImpl.cc and gnu/java/nio/natSelectorImpl.cc * configure: Regenerated. From-SVN: r73446
Diffstat (limited to 'libjava/gnu')
-rw-r--r--libjava/gnu/java/nio/natPipeImplEcos.cc25
-rw-r--r--libjava/gnu/java/nio/natPipeImplPosix.cc (renamed from libjava/gnu/java/nio/natPipeImpl.cc)2
-rw-r--r--libjava/gnu/java/nio/natPipeImplWin32.cc38
-rw-r--r--libjava/gnu/java/nio/natSelectorImplEcos.cc25
-rw-r--r--libjava/gnu/java/nio/natSelectorImplPosix.cc (renamed from libjava/gnu/java/nio/natSelectorImpl.cc)2
-rw-r--r--libjava/gnu/java/nio/natSelectorImplWin32.cc91
6 files changed, 181 insertions, 2 deletions
diff --git a/libjava/gnu/java/nio/natPipeImplEcos.cc b/libjava/gnu/java/nio/natPipeImplEcos.cc
new file mode 100644
index 0000000..7c6b4b5
--- /dev/null
+++ b/libjava/gnu/java/nio/natPipeImplEcos.cc
@@ -0,0 +1,25 @@
+// natPipeImplEcos.cc
+
+/* Copyright (C) 2003 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 <platform.h>
+
+#include <errno.h>
+#include <string.h>
+#include <unistd.h>
+
+#include <gnu/java/nio/PipeImpl.h>
+#include <java/io/IOException.h>
+
+void
+gnu::java::nio::PipeImpl::nativeInit (::java::nio::channels::spi::SelectorProvider*)
+{
+ throw new ::java::io::IOException (JvNewStringUTF ("nativeInit() not implemented"));
+}
diff --git a/libjava/gnu/java/nio/natPipeImpl.cc b/libjava/gnu/java/nio/natPipeImplPosix.cc
index caae89c..b847faa 100644
--- a/libjava/gnu/java/nio/natPipeImpl.cc
+++ b/libjava/gnu/java/nio/natPipeImplPosix.cc
@@ -1,4 +1,4 @@
-// natPipeImpl.cc
+// natPipeImplPosix.cc
/* Copyright (C) 2003 Free Software Foundation
diff --git a/libjava/gnu/java/nio/natPipeImplWin32.cc b/libjava/gnu/java/nio/natPipeImplWin32.cc
new file mode 100644
index 0000000..4f48972
--- /dev/null
+++ b/libjava/gnu/java/nio/natPipeImplWin32.cc
@@ -0,0 +1,38 @@
+// natPipeImplWin32.cc
+
+/* Copyright (C) 2003 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 <platform.h>
+
+#include <errno.h>
+#include <string.h>
+#include <unistd.h>
+
+#include <gnu/java/nio/PipeImpl.h>
+//#include <gnu/java/nio/PipeImpl$SinkChannelImpl.h>
+//#include <gnu/java/nio/PipeImpl$SourceChannelImpl.h>
+#include <java/io/IOException.h>
+#include <java/nio/channels/spi/SelectorProvider.h>
+
+void
+gnu::java::nio::PipeImpl::nativeInit (::java::nio::channels::spi::SelectorProvider* /*provider*/)
+{
+ int filedes [2];
+
+ if (_Jv_pipe (filedes) < 0)
+ throw new ::java::io::IOException (JvNewStringUTF (strerror (errno)));
+
+ /* FIXME
+ source = new gnu::java::nio::PipeImpl$SourceChannelImpl
+ (this, provider, filedes [0]);
+ sink = new gnu::java::nio::PipeImpl$SinkChannelImpl
+ (this, provider, filedes [1]);
+ */
+}
diff --git a/libjava/gnu/java/nio/natSelectorImplEcos.cc b/libjava/gnu/java/nio/natSelectorImplEcos.cc
new file mode 100644
index 0000000..a733686
--- /dev/null
+++ b/libjava/gnu/java/nio/natSelectorImplEcos.cc
@@ -0,0 +1,25 @@
+// natSelectorImplEcos.cc
+
+/* Copyright (C) 2003 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 <platform.h>
+
+#include <errno.h>
+#include <string.h>
+
+#include <gnu/java/nio/SelectorImpl.h>
+#include <java/io/IOException.h>
+
+jint
+gnu::java::nio::SelectorImpl::implSelect (jintArray read, jintArray write,
+ jintArray except, jlong timeout)
+{
+ throw new ::java::io::IOException (JvNewStringUTF ("implSelect() not implemented"));
+}
diff --git a/libjava/gnu/java/nio/natSelectorImpl.cc b/libjava/gnu/java/nio/natSelectorImplPosix.cc
index 764167a..8a5112f 100644
--- a/libjava/gnu/java/nio/natSelectorImpl.cc
+++ b/libjava/gnu/java/nio/natSelectorImplPosix.cc
@@ -1,4 +1,4 @@
-// natSelectorImpl.cc
+// natSelectorImplPosix.cc
/* Copyright (C) 2002, 2003 Free Software Foundation
diff --git a/libjava/gnu/java/nio/natSelectorImplWin32.cc b/libjava/gnu/java/nio/natSelectorImplWin32.cc
new file mode 100644
index 0000000..c82c2aa
--- /dev/null
+++ b/libjava/gnu/java/nio/natSelectorImplWin32.cc
@@ -0,0 +1,91 @@
+// natSelectorImplWin32.cc
+
+/* Copyright (C) 2003 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 <platform.h>
+
+#include <errno.h>
+#include <string.h>
+
+#include <gnu/java/nio/SelectorImpl.h>
+#include <java/io/IOException.h>
+
+void
+helper_put_filedescriptors (jintArray fdArray, fd_set& fds, int& max_fd)
+{
+ jint* tmpFDArray = elements (fdArray);
+
+ for (int index = 0; index < JvGetArrayLength (fdArray); index++)
+ {
+ FD_SET (tmpFDArray [index], &fds);
+
+ if (tmpFDArray [index] > max_fd)
+ max_fd = tmpFDArray [index];
+ }
+}
+
+void
+helper_get_filedescriptors (jintArray& fdArray, fd_set fds)
+{
+ jint* tmpFDArray = elements (fdArray);
+
+ for (int index = 0; index < JvGetArrayLength (fdArray); index++)
+ if (!FD_ISSET (tmpFDArray [index], &fds))
+ tmpFDArray [index] = 0;
+}
+
+jint
+gnu::java::nio::SelectorImpl::implSelect (jintArray read, jintArray write,
+ jintArray except, jlong timeout)
+{
+ jint result;
+ int max_fd = 0;
+ fd_set read_fds;
+ fd_set write_fds;
+ fd_set except_fds;
+ struct timeval real_time_data;
+ struct timeval *time_data = NULL;
+
+ real_time_data.tv_sec = 0;
+ real_time_data.tv_usec = timeout;
+
+ // If not legal timeout value is given, use NULL.
+ // This means an infinite timeout.
+ if (timeout >= 0)
+ {
+ time_data = &real_time_data;
+ }
+
+ // Reset all fd_set structures
+ FD_ZERO (&read_fds);
+ FD_ZERO (&write_fds);
+ FD_ZERO (&except_fds);
+
+ // Fill the fd_set data structures for the _Jv_select() call.
+ helper_put_filedescriptors (read, read_fds, max_fd);
+ helper_put_filedescriptors (write, write_fds, max_fd);
+ helper_put_filedescriptors (except, except_fds, max_fd);
+
+ // Actually do the select
+ result = _Jv_select (max_fd + 1, &read_fds, &write_fds, &except_fds, time_data);
+
+ if (result < 0)
+ {
+ char* strerr = strerror (errno);
+ throw new ::java::io::IOException (JvNewStringUTF (strerr));
+ }
+
+ // Set the file descriptors according to the values returned from select().
+ helper_get_filedescriptors (read, read_fds);
+ helper_get_filedescriptors (write, write_fds);
+ helper_get_filedescriptors (except, except_fds);
+
+ return result;
+}