OSDN Git Service

* java/net/DatagramSocket.java (getReceiveBufferSize): new 1.2 method.
authormark <mark@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 13 Jan 2002 11:59:37 +0000 (11:59 +0000)
committermark <mark@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 13 Jan 2002 11:59:37 +0000 (11:59 +0000)
* java/net/DatagramSocket.java (getSendBufferSize): Likewise.
* java/net/DatagramSocket.java (setReceiveBufferSize): Likewise.
* java/net/DatagramSocket.java (setSendBufferSize): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@48814 138bc75d-0d04-0410-961f-82ee72b054a4

libjava/ChangeLog
libjava/java/net/DatagramSocket.java

index b6c0d79..04df52c 100644 (file)
@@ -1,3 +1,10 @@
+2002-01-13  Mark Wielaard  <mark@klomp.org>
+
+       * java/net/DatagramSocket.java (getReceiveBufferSize): new 1.2 method.
+       * java/net/DatagramSocket.java (getSendBufferSize): Likewise.
+       * java/net/DatagramSocket.java (setReceiveBufferSize): Likewise.
+       * java/net/DatagramSocket.java (setSendBufferSize): Likewise.
+
 2002-01-11  Mark Wielaard  <mark@klomp.org>
 
        * java/net/InetAddress.java (ANY_IF): moved from ServerSocket.
index 6e33e3b..064e8e7 100644 (file)
@@ -180,23 +180,83 @@ public class DatagramSocket
   // {
   // }
 
-  // JDK1.2
-  // public int getReceiveBufferSize() throws SocketException
-  // {
-  // }
+  /**
+   * This method returns the value of the system level socket option
+   * SO_RCVBUF, which is used by the operating system to tune buffer
+   * sizes for data transfers.
+   *
+   * @return The receive buffer size.
+   *
+   * @exception SocketException If an error occurs.
+   *
+   * @since 1.2
+   */
+  public int getReceiveBufferSize() throws SocketException
+  {
+    Object obj = impl.getOption(SocketOptions.SO_RCVBUF);
+  
+    if (obj instanceof Integer)
+      return(((Integer)obj).intValue());
+    else 
+      throw new SocketException("Unexpected type");
+  }
 
-  // JDK1.2
-  // public int getSendBufferSize() throws SocketException
-  // {
-  // }
+  /**
+   * This method returns the value of the system level socket option
+   * SO_SNDBUF, which is used by the operating system to tune buffer
+   * sizes for data transfers.
+   *
+   * @return The send buffer size.
+   *
+   * @exception SocketException If an error occurs.
+   *
+   * @since 1.2
+   */
+  public int getSendBufferSize() throws SocketException
+  {
+    Object obj = impl.getOption(SocketOptions.SO_SNDBUF);
 
-  // JDK1.2
-  // public void setReceiveBufferSize(int size) throws SocketException
-  // {
-  // }
+    if (obj instanceof Integer)
+      return(((Integer)obj).intValue());
+    else
+      throw new SocketException("Unexpected type");
+  }
 
-  // JDK1.2
-  // public void setSendBufferSize(int size) throws SocketException
-  // {
-  // }
+  /**
+   * This method sets the value for the system level socket option
+   * SO_RCVBUF to the specified value.  Note that valid values for this
+   * option are specific to a given operating system.
+   *
+   * @param size The new receive buffer size.
+   *
+   * @exception SocketException If an error occurs.
+   *  
+   * @since 1.2
+   */
+  public void setReceiveBufferSize(int size) throws SocketException
+  {
+    if (size < 0)
+      throw new IllegalArgumentException("Buffer size is less than 0");
+
+    impl.setOption(SocketOptions.SO_RCVBUF, new Integer(size));
+  }
+
+  /**
+   * This method sets the value for the system level socket option
+   * SO_SNDBUF to the specified value.  Note that valid values for this
+   * option are specific to a given operating system.
+   *
+   * @param size The new send buffer size.
+   *
+   * @exception SocketException If an error occurs.
+   *
+   * @since 1.2
+   */
+  public void setSendBufferSize(int size) throws SocketException
+  {
+    if (size < 0)
+      throw new IllegalArgumentException("Buffer size is less than 0");
+  
+    impl.setOption(SocketOptions.SO_SNDBUF, new Integer(size));
+  }
 }