summaryrefslogtreecommitdiff
path: root/libjava/gnu/java/net/local
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/gnu/java/net/local')
-rw-r--r--libjava/gnu/java/net/local/LocalServerSocket.h68
-rw-r--r--libjava/gnu/java/net/local/LocalSocket.h100
-rw-r--r--libjava/gnu/java/net/local/LocalSocketAddress.h42
-rw-r--r--libjava/gnu/java/net/local/LocalSocketImpl$LocalInputStream.h52
-rw-r--r--libjava/gnu/java/net/local/LocalSocketImpl$LocalOutputStream.h49
-rw-r--r--libjava/gnu/java/net/local/LocalSocketImpl.h86
-rw-r--r--libjava/gnu/java/net/local/LocalSocketImpl.java310
7 files changed, 707 insertions, 0 deletions
diff --git a/libjava/gnu/java/net/local/LocalServerSocket.h b/libjava/gnu/java/net/local/LocalServerSocket.h
new file mode 100644
index 000000000..35969bc65
--- /dev/null
+++ b/libjava/gnu/java/net/local/LocalServerSocket.h
@@ -0,0 +1,68 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_net_local_LocalServerSocket__
+#define __gnu_java_net_local_LocalServerSocket__
+
+#pragma interface
+
+#include <java/net/ServerSocket.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace net
+ {
+ namespace local
+ {
+ class LocalServerSocket;
+ class LocalSocketImpl;
+ }
+ }
+ }
+ }
+ namespace java
+ {
+ namespace net
+ {
+ class InetAddress;
+ class Socket;
+ class SocketAddress;
+ }
+ }
+}
+
+class gnu::java::net::local::LocalServerSocket : public ::java::net::ServerSocket
+{
+
+public:
+ LocalServerSocket();
+ LocalServerSocket(::java::net::SocketAddress *);
+ void bind(::java::net::SocketAddress *);
+ void bind(::java::net::SocketAddress *, jint);
+ ::java::net::InetAddress * getInetAddress();
+ jint getLocalPort();
+ ::java::net::SocketAddress * getLocalSocketAddress();
+ ::java::net::Socket * accept();
+ void close();
+ jboolean isBound();
+ jboolean isClosed();
+ void setSoTimeout(jint);
+ jint getSoTimeout();
+ void setReuseAddress(jboolean);
+ jboolean getReuseAddress();
+ ::java::lang::String * toString();
+ void setReceiveBufferSize(jint);
+ jint getReceiveBufferSize();
+ void setSendBufferSize(jint);
+ jint getSendBufferSize();
+private:
+ ::gnu::java::net::local::LocalSocketImpl * __attribute__((aligned(__alignof__( ::java::net::ServerSocket)))) myImpl;
+ jboolean closed;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_net_local_LocalServerSocket__
diff --git a/libjava/gnu/java/net/local/LocalSocket.h b/libjava/gnu/java/net/local/LocalSocket.h
new file mode 100644
index 000000000..c33f540a2
--- /dev/null
+++ b/libjava/gnu/java/net/local/LocalSocket.h
@@ -0,0 +1,100 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_net_local_LocalSocket__
+#define __gnu_java_net_local_LocalSocket__
+
+#pragma interface
+
+#include <java/net/Socket.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace net
+ {
+ namespace local
+ {
+ class LocalSocket;
+ class LocalSocketAddress;
+ class LocalSocketImpl;
+ }
+ }
+ }
+ }
+ namespace java
+ {
+ namespace net
+ {
+ class InetAddress;
+ class SocketAddress;
+ }
+ namespace nio
+ {
+ namespace channels
+ {
+ class SocketChannel;
+ }
+ }
+ }
+}
+
+class gnu::java::net::local::LocalSocket : public ::java::net::Socket
+{
+
+public:
+ LocalSocket();
+ LocalSocket(::gnu::java::net::local::LocalSocketAddress *);
+public: // actually package-private
+ LocalSocket(jboolean);
+public:
+ void bind(::java::net::SocketAddress *);
+ void connect(::java::net::SocketAddress *, jint);
+ ::java::net::InetAddress * getInetAddress();
+ ::java::net::InetAddress * getLocalAddress();
+ jint getPort();
+ jint getLocalPort();
+ ::java::nio::channels::SocketChannel * getChannel();
+ ::java::net::SocketAddress * getLocalSocketAddress();
+ ::java::net::SocketAddress * getRemoteSocketAddress();
+ ::java::io::InputStream * getInputStream();
+ ::java::io::OutputStream * getOutputStream();
+ void sendUrgentData(jint);
+ void close();
+ void shutdownInput();
+ void shutdownOutput();
+ jboolean isClosed();
+ jboolean isBound();
+ jboolean isConnected();
+ void setTcpNoDelay(jboolean);
+ jboolean getTcpNoDelay();
+ void setSoLinger(jboolean, jint);
+ jint getSoLinger();
+ void setOOBInline(jboolean);
+ jboolean getOOBInline();
+ void setSoTimeout(jint);
+ jint getSoTimeout();
+ void setSendBufferSize(jint);
+ jint getSendBufferSize();
+ void setReceiveBufferSize(jint);
+ jint getReceiveBufferSize();
+ void setKeepAlive(jboolean);
+ jboolean getKeepAlive();
+ void setTrafficClass(jint);
+ jint getTrafficClass();
+ void setReuseAddress(jboolean);
+ jboolean getReuseAddress();
+public: // actually package-private
+ ::gnu::java::net::local::LocalSocketImpl * getLocalImpl();
+private:
+ ::gnu::java::net::local::LocalSocketImpl * __attribute__((aligned(__alignof__( ::java::net::Socket)))) localimpl;
+public: // actually package-private
+ jboolean localClosed;
+ jboolean localConnected;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_net_local_LocalSocket__
diff --git a/libjava/gnu/java/net/local/LocalSocketAddress.h b/libjava/gnu/java/net/local/LocalSocketAddress.h
new file mode 100644
index 000000000..ef095f610
--- /dev/null
+++ b/libjava/gnu/java/net/local/LocalSocketAddress.h
@@ -0,0 +1,42 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_net_local_LocalSocketAddress__
+#define __gnu_java_net_local_LocalSocketAddress__
+
+#pragma interface
+
+#include <java/net/SocketAddress.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace net
+ {
+ namespace local
+ {
+ class LocalSocketAddress;
+ }
+ }
+ }
+ }
+}
+
+class gnu::java::net::local::LocalSocketAddress : public ::java::net::SocketAddress
+{
+
+public:
+ LocalSocketAddress(::java::lang::String *);
+ ::java::lang::String * getPath();
+ jboolean equals(::java::lang::Object *);
+ jint hashCode();
+ ::java::lang::String * toString();
+private:
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::net::SocketAddress)))) path;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_net_local_LocalSocketAddress__
diff --git a/libjava/gnu/java/net/local/LocalSocketImpl$LocalInputStream.h b/libjava/gnu/java/net/local/LocalSocketImpl$LocalInputStream.h
new file mode 100644
index 000000000..8b1de3817
--- /dev/null
+++ b/libjava/gnu/java/net/local/LocalSocketImpl$LocalInputStream.h
@@ -0,0 +1,52 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_net_local_LocalSocketImpl$LocalInputStream__
+#define __gnu_java_net_local_LocalSocketImpl$LocalInputStream__
+
+#pragma interface
+
+#include <java/io/InputStream.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace net
+ {
+ namespace local
+ {
+ class LocalSocketImpl;
+ class LocalSocketImpl$LocalInputStream;
+ }
+ }
+ }
+ }
+}
+
+class gnu::java::net::local::LocalSocketImpl$LocalInputStream : public ::java::io::InputStream
+{
+
+public: // actually package-private
+ LocalSocketImpl$LocalInputStream(::gnu::java::net::local::LocalSocketImpl *, ::gnu::java::net::local::LocalSocketImpl *);
+public:
+ virtual jint available();
+ virtual jboolean markSupported();
+ virtual void mark(jint);
+ virtual void reset();
+ virtual void close();
+ virtual jint read();
+ virtual jint read(JArray< jbyte > *);
+ virtual jint read(JArray< jbyte > *, jint, jint);
+private:
+ ::gnu::java::net::local::LocalSocketImpl * __attribute__((aligned(__alignof__( ::java::io::InputStream)))) impl;
+public: // actually package-private
+ ::gnu::java::net::local::LocalSocketImpl * this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_net_local_LocalSocketImpl$LocalInputStream__
diff --git a/libjava/gnu/java/net/local/LocalSocketImpl$LocalOutputStream.h b/libjava/gnu/java/net/local/LocalSocketImpl$LocalOutputStream.h
new file mode 100644
index 000000000..e45600120
--- /dev/null
+++ b/libjava/gnu/java/net/local/LocalSocketImpl$LocalOutputStream.h
@@ -0,0 +1,49 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_net_local_LocalSocketImpl$LocalOutputStream__
+#define __gnu_java_net_local_LocalSocketImpl$LocalOutputStream__
+
+#pragma interface
+
+#include <java/io/OutputStream.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace net
+ {
+ namespace local
+ {
+ class LocalSocketImpl;
+ class LocalSocketImpl$LocalOutputStream;
+ }
+ }
+ }
+ }
+}
+
+class gnu::java::net::local::LocalSocketImpl$LocalOutputStream : public ::java::io::OutputStream
+{
+
+public: // actually package-private
+ LocalSocketImpl$LocalOutputStream(::gnu::java::net::local::LocalSocketImpl *, ::gnu::java::net::local::LocalSocketImpl *);
+public:
+ virtual void close();
+ virtual void flush();
+ virtual void write(jint);
+ virtual void write(JArray< jbyte > *);
+ virtual void write(JArray< jbyte > *, jint, jint);
+private:
+ ::gnu::java::net::local::LocalSocketImpl * __attribute__((aligned(__alignof__( ::java::io::OutputStream)))) impl;
+public: // actually package-private
+ ::gnu::java::net::local::LocalSocketImpl * this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_net_local_LocalSocketImpl$LocalOutputStream__
diff --git a/libjava/gnu/java/net/local/LocalSocketImpl.h b/libjava/gnu/java/net/local/LocalSocketImpl.h
new file mode 100644
index 000000000..517d93027
--- /dev/null
+++ b/libjava/gnu/java/net/local/LocalSocketImpl.h
@@ -0,0 +1,86 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_net_local_LocalSocketImpl__
+#define __gnu_java_net_local_LocalSocketImpl__
+
+#pragma interface
+
+#include <java/net/SocketImpl.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace net
+ {
+ namespace local
+ {
+ class LocalSocketAddress;
+ class LocalSocketImpl;
+ }
+ }
+ }
+ }
+ namespace java
+ {
+ namespace net
+ {
+ class InetAddress;
+ class SocketAddress;
+ class SocketImpl;
+ }
+ }
+}
+
+class gnu::java::net::local::LocalSocketImpl : public ::java::net::SocketImpl
+{
+
+public: // actually package-private
+ LocalSocketImpl();
+ LocalSocketImpl(jboolean);
+public:
+ void setOption(jint, ::java::lang::Object *);
+ ::java::lang::Object * getOption(jint);
+public: // actually protected
+ void create(jboolean);
+ void listen(jint);
+ void accept(::gnu::java::net::local::LocalSocketImpl *);
+ jint available();
+ void close();
+ void sendUrgentData(jint);
+ void shutdownInput();
+ void shutdownOutput();
+public: // actually package-private
+ void unlink();
+ void localBind(::gnu::java::net::local::LocalSocketAddress *);
+ void localConnect(::gnu::java::net::local::LocalSocketAddress *);
+ jint read(JArray< jbyte > *, jint, jint);
+ void write(JArray< jbyte > *, jint, jint);
+ void doCreate();
+ ::gnu::java::net::local::LocalSocketAddress * getLocalAddress();
+ ::gnu::java::net::local::LocalSocketAddress * getRemoteAddress();
+public: // actually protected
+ ::java::io::InputStream * getInputStream();
+ ::java::io::OutputStream * getOutputStream();
+ void accept(::java::net::SocketImpl *);
+ void connect(::java::lang::String *, jint);
+ void connect(::java::net::InetAddress *, jint);
+ void connect(::java::net::SocketAddress *, jint);
+ void bind(::java::net::InetAddress *, jint);
+ void bind(::java::net::SocketAddress *);
+private:
+ jboolean __attribute__((aligned(__alignof__( ::java::net::SocketImpl)))) created;
+ ::java::io::InputStream * in;
+ ::java::io::OutputStream * out;
+ jint socket_fd;
+ ::gnu::java::net::local::LocalSocketAddress * local;
+ ::gnu::java::net::local::LocalSocketAddress * remote;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_net_local_LocalSocketImpl__
diff --git a/libjava/gnu/java/net/local/LocalSocketImpl.java b/libjava/gnu/java/net/local/LocalSocketImpl.java
new file mode 100644
index 000000000..35df29804
--- /dev/null
+++ b/libjava/gnu/java/net/local/LocalSocketImpl.java
@@ -0,0 +1,310 @@
+/* LocalSocketImpl.java -- a unix domain client socket implementation.
+ Copyright (C) 2006 Free Software Foundation, Inc.
+
+This file is a 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 of the License, 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; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, 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 gnu.java.net.local;
+
+import java.io.FileDescriptor;
+import java.io.InputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+
+import java.net.InetAddress;
+import java.net.SocketAddress;
+import java.net.SocketException;
+import java.net.SocketImpl;
+
+final class LocalSocketImpl extends SocketImpl
+{
+
+ // Fields.
+ // -------------------------------------------------------------------------
+
+ private boolean created;
+ private InputStream in;
+ private OutputStream out;
+ private int socket_fd;
+ private LocalSocketAddress local;
+ private LocalSocketAddress remote;
+
+ // Constructor.
+ // -------------------------------------------------------------------------
+
+ LocalSocketImpl ()
+ {
+ this (false);
+ }
+
+ LocalSocketImpl (boolean nocreate)
+ {
+ created = nocreate;
+ socket_fd = -1;
+ fd = new FileDescriptor ();
+ }
+
+ // Instance methods.
+ // -------------------------------------------------------------------------
+
+ public void setOption (int opt, Object value) throws SocketException
+ {
+ throw new SocketException ("local sockets do not support options");
+ }
+
+ public Object getOption (int opt) throws SocketException
+ {
+ throw new SocketException ("local sockets do not support options");
+ }
+
+ protected void create (boolean stream) throws IOException { }
+ protected void listen (int timeout) throws IOException { }
+ protected void accept (LocalSocketImpl socket) throws IOException { }
+ protected int available () throws IOException { return -1; }
+ protected void close () throws IOException { }
+ protected void sendUrgentData (int data) throws IOException { }
+ protected void shutdownInput () throws IOException { }
+ protected void shutdownOutput () throws IOException { }
+
+ void unlink () throws IOException { }
+ void localBind (LocalSocketAddress addr) throws IOException { }
+ void localConnect (LocalSocketAddress addr) throws IOException { }
+ int read (byte[] buf, int off, int len) throws IOException { return -1; }
+ void write (byte[] buf, int off, int len) throws IOException { }
+
+ void doCreate () throws IOException
+ {
+ if (!created)
+ {
+ create (true);
+ }
+ }
+
+ LocalSocketAddress getLocalAddress ()
+ {
+ return local;
+ }
+
+ LocalSocketAddress getRemoteAddress ()
+ {
+ return remote;
+ }
+
+ protected InputStream getInputStream()
+ {
+ if (in == null)
+ {
+ in = new LocalInputStream (this);
+ }
+
+ return in;
+ }
+
+ protected OutputStream getOutputStream()
+ {
+ if (out == null)
+ {
+ out = new LocalOutputStream (this);
+ }
+
+ return out;
+ }
+
+ protected void accept (SocketImpl impl) throws IOException
+ {
+ if (! (impl instanceof LocalSocketImpl))
+ {
+ throw new IllegalArgumentException ("not a local socket");
+ }
+ accept ((LocalSocketImpl) impl);
+ }
+
+ protected void connect (String host, int port) throws IOException
+ {
+ throw new SocketException ("this is a local socket");
+ }
+
+ protected void connect (InetAddress addr, int port) throws IOException
+ {
+ throw new SocketException ("this is a local socket");
+ }
+
+ protected void connect(SocketAddress addr, int timeout) throws IOException
+ {
+ if (! (addr instanceof LocalSocketAddress))
+ {
+ throw new SocketException ("address is not local");
+ }
+ localConnect ((LocalSocketAddress) addr);
+ }
+
+ protected void bind (InetAddress addr, int port) throws IOException
+ {
+ throw new SocketException ("this is a local socket");
+ }
+
+ protected void bind (SocketAddress addr) throws IOException
+ {
+ if (! (addr instanceof LocalSocketAddress))
+ {
+ throw new SocketException ("address is not local");
+ }
+ localBind ((LocalSocketAddress) addr);
+ }
+
+ // Inner classes.
+ // -------------------------------------------------------------------------
+
+ class LocalInputStream extends InputStream
+ {
+
+ // Field.
+ // -----------------------------------------------------------------------
+
+ private final LocalSocketImpl impl;
+
+ // Constructor.
+ // -----------------------------------------------------------------------
+
+ LocalInputStream (LocalSocketImpl impl)
+ {
+ this.impl = impl;
+ }
+
+ // Instance methods.
+ // -----------------------------------------------------------------------
+
+ public int available () throws IOException
+ {
+ return impl.available();
+ }
+
+ public boolean markSupported ()
+ {
+ return false;
+ }
+
+ public void mark (int readLimit)
+ {
+ }
+
+ public void reset () throws IOException
+ {
+ throw new IOException ("mark/reset not supported");
+ }
+
+ public void close () throws IOException
+ {
+ impl.close();
+ }
+
+ public int read () throws IOException
+ {
+ byte[] buf = new byte[1];
+ int ret = read (buf);
+ if (ret != -1)
+ {
+ return buf[0] & 0xFF;
+ }
+ else
+ {
+ return -1;
+ }
+ }
+
+ public int read (byte[] buf) throws IOException
+ {
+ return read (buf, 0, buf.length);
+ }
+
+ public int read (byte[] buf, int off, int len) throws IOException
+ {
+ int ret = impl.read (buf, off, len);
+
+ if (ret == 0)
+ {
+ return -1;
+ }
+
+ return ret;
+ }
+ }
+
+ class LocalOutputStream extends OutputStream
+ {
+
+ // Field.
+ // -----------------------------------------------------------------------
+
+ private final LocalSocketImpl impl;
+
+ // Constructor.
+ // -----------------------------------------------------------------------
+
+ LocalOutputStream (LocalSocketImpl impl)
+ {
+ this.impl = impl;
+ }
+
+ // Instance methods.
+ // -----------------------------------------------------------------------
+
+ public void close () throws IOException
+ {
+ impl.close ();
+ }
+
+ public void flush () throws IOException
+ {
+ }
+
+ public void write (int b) throws IOException
+ {
+ byte[] buf = new byte [1];
+ buf[0] = (byte) b;
+ write (buf);
+ }
+
+ public void write (byte[] buf) throws IOException
+ {
+ write (buf, 0, buf.length);
+ }
+
+ public void write (byte[] buf, int off, int len) throws IOException
+ {
+ impl.write (buf, off, len);
+ }
+ }
+}