Commit 5ea43886 by Michael Koch Committed by Michael Koch

2004-03-11 Michael Koch <konqueror@gmx.de>

	* gnu/java/nio/PipeImpl.java
	(SourceChannelImpl): Made final.
	(read): Implemented.
	(SinkChannelImpl): Made final.
	(write): Implemented.

From-SVN: r79315
parent 9a282e8e
2004-03-11 Michael Koch <konqueror@gmx.de> 2004-03-11 Michael Koch <konqueror@gmx.de>
* gnu/java/nio/PipeImpl.java
(SourceChannelImpl): Made final.
(read): Implemented.
(SinkChannelImpl): Made final.
(write): Implemented.
2004-03-11 Michael Koch <konqueror@gmx.de>
* gnu/java/net/PlainDatagramSocketImpl.java: * gnu/java/net/PlainDatagramSocketImpl.java:
Reformated to match classpath's version more. Reformated to match classpath's version more.
......
/* PipeImpl.java -- /* PipeImpl.java --
Copyright (C) 2002, 2003 Free Software Foundation, Inc. Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
This file is part of GNU Classpath. This file is part of GNU Classpath.
...@@ -44,7 +44,7 @@ import java.nio.channels.spi.SelectorProvider; ...@@ -44,7 +44,7 @@ import java.nio.channels.spi.SelectorProvider;
class PipeImpl extends Pipe class PipeImpl extends Pipe
{ {
public final class SourceChannelImpl extends Pipe.SourceChannel public static final class SourceChannelImpl extends Pipe.SourceChannel
{ {
private int native_fd; private int native_fd;
...@@ -79,10 +79,22 @@ class PipeImpl extends Pipe ...@@ -79,10 +79,22 @@ class PipeImpl extends Pipe
return read (srcs, 0, srcs.length); return read (srcs, 0, srcs.length);
} }
public final long read (ByteBuffer[] srcs, int offset, int len) public synchronized final long read (ByteBuffer[] srcs, int offset, int len)
throws IOException throws IOException
{ {
throw new Error ("Not implemented"); if (offset < 0
|| offset > srcs.length
|| len < 0
|| len > srcs.length - offset)
throw new IndexOutOfBoundsException();
long bytesRead = 0;
for (int index = 0; index < len; index++)
bytesRead += read (srcs [offset + index]);
return bytesRead;
} }
public final int getNativeFD() public final int getNativeFD()
...@@ -91,7 +103,7 @@ class PipeImpl extends Pipe ...@@ -91,7 +103,7 @@ class PipeImpl extends Pipe
} }
} }
public final class SinkChannelImpl extends Pipe.SinkChannel public static final class SinkChannelImpl extends Pipe.SinkChannel
{ {
private int native_fd; private int native_fd;
...@@ -120,16 +132,27 @@ class PipeImpl extends Pipe ...@@ -120,16 +132,27 @@ class PipeImpl extends Pipe
throw new Error ("Not implemented"); throw new Error ("Not implemented");
} }
public final long write (ByteBuffer[] dsts) public final long write (ByteBuffer[] srcs)
throws IOException throws IOException
{ {
return write (dsts, 0, dsts.length); return write (srcs, 0, srcs.length);
} }
public final long write (ByteBuffer[] dsts, int offset, int len) public synchronized final long write (ByteBuffer[] srcs, int offset, int len)
throws IOException throws IOException
{ {
throw new Error ("Not implemented"); if (offset < 0
|| offset > srcs.length
|| len < 0
|| len > srcs.length - offset)
throw new IndexOutOfBoundsException();
long bytesWritten = 0;
for (int index = 0; index < len; index++)
bytesWritten += write (srcs [offset + index]);
return bytesWritten;
} }
public final int getNativeFD() public final int getNativeFD()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment