7042979: Rename StandardSocketOption and StandardWatchEventKind
Reviewed-by: forax, chegar
--- a/jdk/make/com/sun/nio/sctp/FILES_java.gmk Mon May 09 08:58:00 2011 -0700
+++ b/jdk/make/com/sun/nio/sctp/FILES_java.gmk Mon May 09 18:45:33 2011 +0100
@@ -38,7 +38,7 @@
com/sun/nio/sctp/SctpMultiChannel.java \
com/sun/nio/sctp/SctpServerChannel.java \
com/sun/nio/sctp/SctpSocketOption.java \
- com/sun/nio/sctp/SctpStandardSocketOption.java \
+ com/sun/nio/sctp/SctpStandardSocketOptions.java \
com/sun/nio/sctp/SendFailedNotification.java \
com/sun/nio/sctp/ShutdownNotification.java \
\
--- a/jdk/make/java/nio/FILES_java.gmk Mon May 09 08:58:00 2011 -0700
+++ b/jdk/make/java/nio/FILES_java.gmk Mon May 09 18:45:33 2011 +0100
@@ -116,7 +116,7 @@
java/nio/file/SimpleFileVisitor.java \
java/nio/file/StandardCopyOption.java \
java/nio/file/StandardOpenOption.java \
- java/nio/file/StandardWatchEventKind.java \
+ java/nio/file/StandardWatchEventKinds.java \
java/nio/file/TempFileHelper.java \
java/nio/file/WatchEvent.java \
java/nio/file/WatchKey.java \
--- a/jdk/src/share/classes/com/sun/nio/sctp/MessageInfo.java Mon May 09 08:58:00 2011 -0700
+++ b/jdk/src/share/classes/com/sun/nio/sctp/MessageInfo.java Mon May 09 18:45:33 2011 +0100
@@ -179,7 +179,7 @@
* completely received. For messages being sent {@code true} indicates that
* the message is complete, {@code false} indicates that the message is not
* complete. How the send channel interprets this value depends on the value
- * of its {@link SctpStandardSocketOption#SCTP_EXPLICIT_COMPLETE
+ * of its {@link SctpStandardSocketOptions#SCTP_EXPLICIT_COMPLETE
* SCTP_EXPLICIT_COMPLETE} socket option.
*
* @return {@code true} if, and only if, the message is complete
@@ -192,7 +192,7 @@
* <P> For messages being sent {@code true} indicates that
* the message is complete, {@code false} indicates that the message is not
* complete. How the send channel interprets this value depends on the value
- * of its {@link SctpStandardSocketOption#SCTP_EXPLICIT_COMPLETE
+ * of its {@link SctpStandardSocketOptions#SCTP_EXPLICIT_COMPLETE
* SCTP_EXPLICIT_COMPLETE} socket option.
*
* @param complete
--- a/jdk/src/share/classes/com/sun/nio/sctp/SctpChannel.java Mon May 09 08:58:00 2011 -0700
+++ b/jdk/src/share/classes/com/sun/nio/sctp/SctpChannel.java Mon May 09 18:45:33 2011 +0100
@@ -65,55 +65,55 @@
* <th>Description</th>
* </tr>
* <tr>
- * <td> {@link SctpStandardSocketOption#SCTP_DISABLE_FRAGMENTS
+ * <td> {@link SctpStandardSocketOptions#SCTP_DISABLE_FRAGMENTS
* SCTP_DISABLE_FRAGMENTS} </td>
* <td> Enables or disables message fragmentation </td>
* </tr>
* <tr>
- * <td> {@link SctpStandardSocketOption#SCTP_EXPLICIT_COMPLETE
+ * <td> {@link SctpStandardSocketOptions#SCTP_EXPLICIT_COMPLETE
* SCTP_EXPLICIT_COMPLETE} </td>
* <td> Enables or disables explicit message completion </td>
* </tr>
* <tr>
- * <td> {@link SctpStandardSocketOption#SCTP_FRAGMENT_INTERLEAVE
+ * <td> {@link SctpStandardSocketOptions#SCTP_FRAGMENT_INTERLEAVE
* SCTP_FRAGMENT_INTERLEAVE} </td>
* <td> Controls how the presentation of messages occur for the message
* receiver </td>
* </tr>
* <tr>
- * <td> {@link SctpStandardSocketOption#SCTP_INIT_MAXSTREAMS
+ * <td> {@link SctpStandardSocketOptions#SCTP_INIT_MAXSTREAMS
* SCTP_INIT_MAXSTREAMS} </td>
* <td> The maximum number of streams requested by the local endpoint during
* association initialization </td>
* </tr>
* <tr>
- * <td> {@link SctpStandardSocketOption#SCTP_NODELAY SCTP_NODELAY} </td>
+ * <td> {@link SctpStandardSocketOptions#SCTP_NODELAY SCTP_NODELAY} </td>
* <td> Enables or disable a Nagle-like algorithm </td>
* </tr>
* <tr>
- * <td> {@link SctpStandardSocketOption#SCTP_PRIMARY_ADDR
+ * <td> {@link SctpStandardSocketOptions#SCTP_PRIMARY_ADDR
* SCTP_PRIMARY_ADDR} </td>
* <td> Requests that the local SCTP stack use the given peer address as the
* association primary </td>
* </tr>
* <tr>
- * <td> {@link SctpStandardSocketOption#SCTP_SET_PEER_PRIMARY_ADDR
+ * <td> {@link SctpStandardSocketOptions#SCTP_SET_PEER_PRIMARY_ADDR
* SCTP_SET_PEER_PRIMARY_ADDR} </td>
* <td> Requests that the peer mark the enclosed address as the association
* primary </td>
* </tr>
* <tr>
- * <td> {@link SctpStandardSocketOption#SO_SNDBUF
+ * <td> {@link SctpStandardSocketOptions#SO_SNDBUF
* SO_SNDBUF} </td>
* <td> The size of the socket send buffer </td>
* </tr>
* <tr>
- * <td> {@link SctpStandardSocketOption#SO_RCVBUF
+ * <td> {@link SctpStandardSocketOptions#SO_RCVBUF
* SO_RCVBUF} </td>
* <td> The size of the socket receive buffer </td>
* </tr>
* <tr>
- * <td> {@link SctpStandardSocketOption#SO_LINGER
+ * <td> {@link SctpStandardSocketOptions#SO_LINGER
* SO_LINGER} </td>
* <td> Linger on close if data is present (when configured in blocking mode
* only) </td>
@@ -449,7 +449,7 @@
* <P> This is a convience method and is equivalent to evaluating the
* following expression:
* <blockquote><pre>
- * setOption(SctpStandardSocketOption.SCTP_INIT_MAXSTREAMS, SctpStandardSocketOption.InitMaxStreams.create(maxInStreams, maxOutStreams))
+ * setOption(SctpStandardSocketOptions.SCTP_INIT_MAXSTREAMS, SctpStandardSocketOption.InitMaxStreams.create(maxInStreams, maxOutStreams))
* .connect(remote);
* </pre></blockquote>
*
@@ -651,7 +651,7 @@
* @throws IOException
* If an I/O error occurs
*
- * @see SctpStandardSocketOption
+ * @see SctpStandardSocketOptions
*/
public abstract <T> T getOption(SctpSocketOption<T> name)
throws IOException;
@@ -680,7 +680,7 @@
* @throws IOException
* If an I/O error occurs
*
- * @see SctpStandardSocketOption
+ * @see SctpStandardSocketOptions
*/
public abstract <T> SctpChannel setOption(SctpSocketOption<T> name, T value)
throws IOException;
@@ -731,7 +731,7 @@
* MessageInfo} will return {@code false}, and more invocations of this
* method will be necessary to completely consume the messgae. Only
* one message at a time will be partially delivered in any stream. The
- * socket option {@link SctpStandardSocketOption#SCTP_FRAGMENT_INTERLEAVE
+ * socket option {@link SctpStandardSocketOptions#SCTP_FRAGMENT_INTERLEAVE
* SCTP_FRAGMENT_INTERLEAVE} controls various aspects of what interlacing of
* messages occurs.
*
@@ -804,7 +804,7 @@
* and sufficient room becomes available, then the remaining bytes in the
* given byte buffer are transmitted as a single message. Sending a message
* is atomic unless explicit message completion {@link
- * SctpStandardSocketOption#SCTP_EXPLICIT_COMPLETE SCTP_EXPLICIT_COMPLETE}
+ * SctpStandardSocketOptions#SCTP_EXPLICIT_COMPLETE SCTP_EXPLICIT_COMPLETE}
* socket option is enabled on this channel's socket.
*
* <P> The message is transferred from the byte buffer as if by a regular
--- a/jdk/src/share/classes/com/sun/nio/sctp/SctpMultiChannel.java Mon May 09 08:58:00 2011 -0700
+++ b/jdk/src/share/classes/com/sun/nio/sctp/SctpMultiChannel.java Mon May 09 18:45:33 2011 +0100
@@ -69,55 +69,55 @@
* <th>Description</th>
* </tr>
* <tr>
- * <td> {@link SctpStandardSocketOption#SCTP_DISABLE_FRAGMENTS
+ * <td> {@link SctpStandardSocketOptions#SCTP_DISABLE_FRAGMENTS
* SCTP_DISABLE_FRAGMENTS} </td>
* <td> Enables or disables message fragmentation </td>
* </tr>
* <tr>
- * <td> {@link SctpStandardSocketOption#SCTP_EXPLICIT_COMPLETE
+ * <td> {@link SctpStandardSocketOptions#SCTP_EXPLICIT_COMPLETE
* SCTP_EXPLICIT_COMPLETE} </td>
* <td> Enables or disables explicit message completion </td>
* </tr>
* <tr>
- * <td> {@link SctpStandardSocketOption#SCTP_FRAGMENT_INTERLEAVE
+ * <td> {@link SctpStandardSocketOptions#SCTP_FRAGMENT_INTERLEAVE
* SCTP_FRAGMENT_INTERLEAVE} </td>
* <td> Controls how the presentation of messages occur for the message
* receiver </td>
* </tr>
* <tr>
- * <td> {@link SctpStandardSocketOption#SCTP_INIT_MAXSTREAMS
+ * <td> {@link SctpStandardSocketOptions#SCTP_INIT_MAXSTREAMS
* SCTP_INIT_MAXSTREAMS} </td>
* <td> The maximum number of streams requested by the local endpoint during
* association initialization </td>
* </tr>
* <tr>
- * <td> {@link SctpStandardSocketOption#SCTP_NODELAY SCTP_NODELAY} </td>
+ * <td> {@link SctpStandardSocketOptions#SCTP_NODELAY SCTP_NODELAY} </td>
* <td> Enables or disable a Nagle-like algorithm </td>
* </tr>
* <tr>
- * <td> {@link SctpStandardSocketOption#SCTP_PRIMARY_ADDR
+ * <td> {@link SctpStandardSocketOptions#SCTP_PRIMARY_ADDR
* SCTP_PRIMARY_ADDR} </td>
* <td> Requests that the local SCTP stack use the given peer address as the
* association primary </td>
* </tr>
* <tr>
- * <td> {@link SctpStandardSocketOption#SCTP_SET_PEER_PRIMARY_ADDR
+ * <td> {@link SctpStandardSocketOptions#SCTP_SET_PEER_PRIMARY_ADDR
* SCTP_SET_PEER_PRIMARY_ADDR} </td>
* <td> Requests that the peer mark the enclosed address as the association
* primary </td>
* </tr>
* <tr>
- * <td> {@link SctpStandardSocketOption#SO_SNDBUF
+ * <td> {@link SctpStandardSocketOptions#SO_SNDBUF
* SO_SNDBUF} </td>
* <td> The size of the socket send buffer </td>
* </tr>
* <tr>
- * <td> {@link SctpStandardSocketOption#SO_RCVBUF
+ * <td> {@link SctpStandardSocketOptions#SO_RCVBUF
* SO_RCVBUF} </td>
* <td> The size of the socket receive buffer </td>
* </tr>
* <tr>
- * <td> {@link SctpStandardSocketOption#SO_LINGER
+ * <td> {@link SctpStandardSocketOptions#SO_LINGER
* SO_LINGER} </td>
* <td> Linger on close if data is present (when configured in blocking mode
* only) </td>
@@ -450,7 +450,7 @@
* @throws IOException
* If an I/O error occurs
*
- * @see SctpStandardSocketOption
+ * @see SctpStandardSocketOptions
*/
public abstract <T> T getOption(SctpSocketOption<T> name,
Association association)
@@ -489,7 +489,7 @@
* @throws IOException
* If an I/O error occurs
*
- * @see SctpStandardSocketOption
+ * @see SctpStandardSocketOptions
*/
public abstract <T> SctpMultiChannel setOption(SctpSocketOption<T> name,
T value,
@@ -542,7 +542,7 @@
* MessageInfo} will return {@code false}, and more invocations of this
* method will be necessary to completely consume the messgae. Only
* one message at a time will be partially delivered in any stream. The
- * socket option {@link SctpStandardSocketOption#SCTP_FRAGMENT_INTERLEAVE
+ * socket option {@link SctpStandardSocketOptions#SCTP_FRAGMENT_INTERLEAVE
* SCTP_FRAGMENT_INTERLEAVE} controls various aspects of what interlacing of
* messages occurs.
*
@@ -635,14 +635,14 @@
* underlying output buffer, then the remaining bytes in the given byte
* buffer are transmitted as a single message. Sending a message
* is atomic unless explicit message completion {@link
- * SctpStandardSocketOption#SCTP_EXPLICIT_COMPLETE SCTP_EXPLICIT_COMPLETE}
+ * SctpStandardSocketOptions#SCTP_EXPLICIT_COMPLETE SCTP_EXPLICIT_COMPLETE}
* socket option is enabled on this channel's socket.
*
* <P> If this channel is in non-blocking mode, there is sufficient room
* in the underlying output buffer, and an implicit association setup is
* required, then the remaining bytes in the given byte buffer are
* transmitted as a single message, subject to {@link
- * SctpStandardSocketOption#SCTP_EXPLICIT_COMPLETE SCTP_EXPLICIT_COMPLETE}.
+ * SctpStandardSocketOptions#SCTP_EXPLICIT_COMPLETE SCTP_EXPLICIT_COMPLETE}.
* If for any reason the message cannot
* be delivered an {@link AssociationChangeNotification association
* changed} notification is put on the SCTP stack with its {@code event} parameter set
--- a/jdk/src/share/classes/com/sun/nio/sctp/SctpServerChannel.java Mon May 09 08:58:00 2011 -0700
+++ b/jdk/src/share/classes/com/sun/nio/sctp/SctpServerChannel.java Mon May 09 18:45:33 2011 +0100
@@ -53,7 +53,7 @@
* <th>Description</th>
* </tr>
* <tr>
- * <td> {@link SctpStandardSocketOption#SCTP_INIT_MAXSTREAMS
+ * <td> {@link SctpStandardSocketOptions#SCTP_INIT_MAXSTREAMS
* SCTP_INIT_MAXSTREAMS} </td>
* <td> The maximum number of streams requested by the local endpoint during
* association initialization </td>
@@ -360,7 +360,7 @@
* @throws IOException
* If an I/O error occurs
*
- * @see SctpStandardSocketOption
+ * @see SctpStandardSocketOptions
*/
public abstract <T> T getOption(SctpSocketOption<T> name) throws IOException;
@@ -388,7 +388,7 @@
* @throws IOException
* If an I/O error occurs
*
- * @see SctpStandardSocketOption
+ * @see SctpStandardSocketOptions
*/
public abstract <T> SctpServerChannel setOption(SctpSocketOption<T> name,
T value)
--- a/jdk/src/share/classes/com/sun/nio/sctp/SctpSocketOption.java Mon May 09 08:58:00 2011 -0700
+++ b/jdk/src/share/classes/com/sun/nio/sctp/SctpSocketOption.java Mon May 09 18:45:33 2011 +0100
@@ -33,6 +33,6 @@
*
* @since 1.7
*
- * @see SctpStandardSocketOption
+ * @see SctpStandardSocketOptions
*/
public interface SctpSocketOption<T> extends SocketOption<T> { }
--- a/jdk/src/share/classes/com/sun/nio/sctp/SctpStandardSocketOption.java Mon May 09 08:58:00 2011 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,419 +0,0 @@
-/*
- * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code 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
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-package com.sun.nio.sctp;
-
-import java.net.SocketAddress;
-import sun.nio.ch.SctpStdSocketOption;
-
-/**
- * SCTP channels supports the socket options defined by this class
- * (as well as those listed in the particular channel class) and may support
- * additional Implementation specific socket options.
- *
- * @since 1.7
- */
-public class SctpStandardSocketOption {
- private SctpStandardSocketOption() {}
- /**
- * Enables or disables message fragmentation.
- *
- * <P> The value of this socket option is a {@code Boolean} that represents
- * whether the option is enabled or disabled. If enabled no SCTP message
- * fragmentation will be performed. Instead if a message being sent
- * exceeds the current PMTU size, the message will NOT be sent and
- * an error will be indicated to the user.
- *
- * <P> It is implementation specific whether or not this option is
- * supported.
- */
- public static final SctpSocketOption<Boolean> SCTP_DISABLE_FRAGMENTS = new
- SctpStdSocketOption<Boolean>("SCTP_DISABLE_FRAGMENTS", Boolean.class,
- sun.nio.ch.SctpStdSocketOption.SCTP_DISABLE_FRAGMENTS);
-
- /**
- * Enables or disables explicit message completion.
- *
- * <p> The value of this socket option is a {@code Boolean} that represents
- * whether the option is enabled or disabled. When this option is enabled,
- * the {@code send} method may be invoked multiple times to a send message.
- * The {@code isComplete} parameter of the {@link MessageInfo} must only
- * be set to {@code true} for the final send to indicate that the message is
- * complete. If this option is disabled then each individual {@code send}
- * invocation is considered complete.
- *
- * <P> The default value of the option is {@code false} indicating that the
- * option is disabled. It is implementation specific whether or not this
- * option is supported.
- */
- public static final SctpSocketOption<Boolean> SCTP_EXPLICIT_COMPLETE = new
- SctpStdSocketOption<Boolean>("SCTP_EXPLICIT_COMPLETE", Boolean.class,
- sun.nio.ch.SctpStdSocketOption.SCTP_EXPLICIT_COMPLETE);
-
- /**
- * Fragmented interleave controls how the presentation of messages occur
- * for the message receiver. There are three levels of fragment interleave
- * defined. Two of the levels effect {@link SctpChannel}, while
- * {@link SctpMultiChannel} is effected by all three levels.
- *
- * <P> This option takes an {@code Integer} value. It can be set to a value
- * of {@code 0}, {@code 1} or {@code 2}.
- *
- * <P> Setting the three levels provides the following receiver
- * interactions:
- *
- * <P> {@code level 0} - Prevents the interleaving of any messages. This
- * means that when a partial delivery begins, no other messages will be
- * received except the message being partially delivered. If another message
- * arrives on a different stream (or association) that could be delivered,
- * it will be blocked waiting for the user to read all of the partially
- * delivered message.
- *
- * <P> {@code level 1} - Allows interleaving of messages that are from
- * different associations. For {@code SctpChannel}, level 0 and
- * level 1 have the same meaning since an {@code SctpChannel} always
- * receives messages from the same association. Note that setting an {@code
- * SctpMultiChannel} to this level may cause multiple partial
- * delivers from different associations but for any given association, only
- * one message will be delivered until all parts of a message have been
- * delivered. This means that one large message, being read with an
- * association identification of "X", will block other messages from
- * association "X" from being delivered.
- *
- * <P> {@code level 2} - Allows complete interleaving of messages. This
- * level requires that the sender carefully observe not only the peer
- * {@code Association} but also must pay careful attention to the stream
- * number. With this option enabled a partially delivered message may begin
- * being delivered for association "X" stream "Y" and the next subsequent
- * receive may return a message from association "X" stream "Z". Note that
- * no other messages would be delivered for association "X" stream "Y"
- * until all of stream "Y"'s partially delivered message was read.
- * Note that this option effects both channel types. Also note that
- * for an {@code SctpMultiChannel} not only may another streams
- * message from the same association be delivered from the next receive,
- * some other associations message may be delivered upon the next receive.
- *
- * <P> It is implementation specific whether or not this option is
- * supported.
- */
- public static final SctpSocketOption<Integer> SCTP_FRAGMENT_INTERLEAVE =
- new SctpStdSocketOption<Integer>("SCTP_FRAGMENT_INTERLEAVE",
- Integer.class,
- sun.nio.ch.SctpStdSocketOption.SCTP_FRAGMENT_INTERLEAVE);
-
- /**
- * The maximum number of streams requested by the local endpoint during
- * association initialization.
- *
- * <P> The value of this socket option is an {@link
- * SctpStandardSocketOption.InitMaxStreams InitMaxStreams}, that represents
- * the maximum number of inbound and outbound streams that an association
- * on the channel is prepared to support.
- *
- * <P> For an {@link SctpChannel} this option may only be used to
- * change the number of inbound/outbound streams prior to connecting.
- *
- * <P> For an {@link SctpMultiChannel} this option determines
- * the maximum number of inbound/outbound streams new associations setup
- * on the channel will be prepared to support.
- *
- * <P> For an {@link SctpServerChannel} this option determines the
- * maximum number of inbound/outbound streams accepted sockets will
- * negotiate with their connecting peer.
- *
- * <P> In all cases the value set by this option is used in the negotiation
- * of new associations setup on the channel's socket and the actual
- * maximum number of inbound/outbound streams that have been negotiated
- * with the peer can be retrieved from the appropriate {@link
- * Association}. The {@code Association} can be retrieved from the
- * {@link AssociationChangeNotification.AssocChangeEvent#COMM_UP COMM_UP}
- * {@link AssociationChangeNotification} belonging to that association.
- *
- * <p> This value is bounded by the actual implementation. In other
- * words the user may be able to support more streams than the Operating
- * System. In such a case, the Operating System limit may override the
- * value requested by the user. The default value of 0 indicates to use
- * the endpoints default value.
- */
- public static final SctpSocketOption
- <SctpStandardSocketOption.InitMaxStreams> SCTP_INIT_MAXSTREAMS =
- new SctpStdSocketOption<SctpStandardSocketOption.InitMaxStreams>(
- "SCTP_INIT_MAXSTREAMS", SctpStandardSocketOption.InitMaxStreams.class);
-
- /**
- * Enables or disables a Nagle-like algorithm.
- *
- * <P> The value of this socket option is a {@code Boolean} that represents
- * whether the option is enabled or disabled. SCTP uses an algorithm like
- * <em>The Nagle Algorithm</em> to coalesce short segments and
- * improve network efficiency.
- */
- public static final SctpSocketOption<Boolean> SCTP_NODELAY =
- new SctpStdSocketOption<Boolean>("SCTP_NODELAY", Boolean.class,
- sun.nio.ch.SctpStdSocketOption.SCTP_NODELAY);
-
- /**
- * Requests that the local SCTP stack use the given peer address as
- * the association primary.
- *
- * <P> The value of this socket option is a {@code SocketAddress}
- * that represents the peer address that the local SCTP stack should use as
- * the association primary. The address must be one of the association
- * peer's addresses.
- *
- * <P> An {@code SctpMultiChannel} can control more than one
- * association, the association parameter must be given when setting or
- * retrieving this option.
- *
- * <P> Since {@code SctpChannel} only controls one association,
- * the association parameter is not required and this option can be
- * set or queried directly.
- */
- public static final SctpSocketOption<SocketAddress> SCTP_PRIMARY_ADDR =
- new SctpStdSocketOption<SocketAddress>
- ("SCTP_PRIMARY_ADDR", SocketAddress.class);
-
- /**
- * Requests that the peer mark the enclosed address as the association
- * primary.
- *
- * <P> The value of this socket option is a {@code SocketAddress}
- * that represents the local address that the peer should use as its
- * primary address. The given address must be one of the association's
- * locally bound addresses.
- *
- * <P> An {@code SctpMultiChannel} can control more than one
- * association, the association parameter must be given when setting or
- * retrieving this option.
- *
- * <P> Since {@code SctpChannel} only controls one association,
- * the association parameter is not required and this option can be
- * queried directly.
- *
- * <P> Note, this is a set only option and cannot be retrieved by {@code
- * getOption}. It is implementation specific whether or not this
- * option is supported.
- */
- public static final SctpSocketOption<SocketAddress> SCTP_SET_PEER_PRIMARY_ADDR =
- new SctpStdSocketOption<SocketAddress>
- ("SCTP_SET_PEER_PRIMARY_ADDR", SocketAddress.class);
-
- /**
- * The size of the socket send buffer.
- *
- * <p> The value of this socket option is an {@code Integer} that is the
- * size of the socket send buffer in bytes. The socket send buffer is an
- * output buffer used by the networking implementation. It may need to be
- * increased for high-volume connections. The value of the socket option is
- * a <em>hint</em> to the implementation to size the buffer and the actual
- * size may differ. The socket option can be queried to retrieve the actual
- * size.
- *
- * <p> For {@code SctpChannel}, this controls the amount of data
- * the SCTP stack may have waiting in internal buffers to be sent. This
- * option therefore bounds the maximum size of data that can be sent in a
- * single send call.
- *
- * <P> For {@code SctpMultiChannel}, the effect is the same as for {@code
- * SctpChannel}, except that it applies to all associations. The option
- * applies to each association's window size separately.
- *
- * <p> An implementation allows this socket option to be set before the
- * socket is bound or connected. Whether an implementation allows the
- * socket send buffer to be changed after the socket is bound is system
- * dependent.
- */
- public static final SctpSocketOption<Integer> SO_SNDBUF =
- new SctpStdSocketOption<Integer>("SO_SNDBUF", Integer.class,
- sun.nio.ch.SctpStdSocketOption.SO_SNDBUF);
-
- /**
- * The size of the socket receive buffer.
- *
- * <P> The value of this socket option is an {@code Integer} that is the
- * size of the socket receive buffer in bytes. The socket receive buffer is
- * an input buffer used by the networking implementation. It may need to be
- * increased for high-volume connections or decreased to limit the possible
- * backlog of incoming data. The value of the socket option is a
- * <em>hint</em> to the implementation to size the buffer and the actual
- * size may differ.
- *
- * <P> For {@code SctpChannel}, this controls the receiver window size.
- *
- * <P> For {@code SctpMultiChannel}, the meaning is implementation
- * dependent. It might control the receive buffer for each association bound
- * to the socket descriptor or it might control the receive buffer for the
- * whole socket.
- *
- * <p> An implementation allows this socket option to be set before the
- * socket is bound or connected. Whether an implementation allows the
- * socket receive buffer to be changed after the socket is bound is system
- * dependent.
- */
- public static final SctpSocketOption<Integer> SO_RCVBUF =
- new SctpStdSocketOption<Integer>("SO_RCVBUF", Integer.class,
- sun.nio.ch.SctpStdSocketOption.SO_RCVBUF);
-
- /**
- * Linger on close if data is present.
- *
- * <p> The value of this socket option is an {@code Integer} that controls
- * the action taken when unsent data is queued on the socket and a method
- * to close the socket is invoked. If the value of the socket option is zero
- * or greater, then it represents a timeout value, in seconds, known as the
- * <em>linger interval</em>. The linger interval is the timeout for the
- * {@code close} method to block while the operating system attempts to
- * transmit the unsent data or it decides that it is unable to transmit the
- * data. If the value of the socket option is less than zero then the option
- * is disabled. In that case the {@code close} method does not wait until
- * unsent data is transmitted; if possible the operating system will transmit
- * any unsent data before the connection is closed.
- *
- * <p> This socket option is intended for use with sockets that are configured
- * in {@link java.nio.channels.SelectableChannel#isBlocking() blocking} mode
- * only. The behavior of the {@code close} method when this option is
- * enabled on a non-blocking socket is not defined.
- *
- * <p> The initial value of this socket option is a negative value, meaning
- * that the option is disabled. The option may be enabled, or the linger
- * interval changed, at any time. The maximum value of the linger interval
- * is system dependent. Setting the linger interval to a value that is
- * greater than its maximum value causes the linger interval to be set to
- * its maximum value.
- */
- public static final SctpSocketOption<Integer> SO_LINGER =
- new SctpStdSocketOption<Integer>("SO_LINGER", Integer.class,
- sun.nio.ch.SctpStdSocketOption.SO_LINGER);
-
- /**
- * This class is used to set the maximum number of inbound/outbound streams
- * used by the local endpoint during association initialization. An
- * instance of this class is used to set the {@link
- * SctpStandardSocketOption#SCTP_INIT_MAXSTREAMS SCTP_INIT_MAXSTREAMS}
- * socket option.
- *
- * @since 1.7
- */
- public static class InitMaxStreams {
- private int maxInStreams;
- private int maxOutStreams;
-
- private InitMaxStreams(int maxInStreams, int maxOutStreams) {
- this.maxInStreams = maxInStreams;
- this.maxOutStreams = maxOutStreams;
- }
-
- /**
- * Creates an InitMaxStreams instance.
- *
- * @param maxInStreams
- * The maximum number of inbound streams, where
- * {@code 0 <= maxInStreams <= 65536}
- *
- * @param maxOutStreams
- * The maximum number of outbound streams, where
- * {@code 0 <= maxOutStreams <= 65536}
- *
- * @return An {@code InitMaxStreams} instance
- *
- * @throws IllegalArgumentException
- * If an argument is outside of specified bounds
- */
- public static InitMaxStreams create
- (int maxInStreams, int maxOutStreams) {
- if (maxOutStreams < 0 || maxOutStreams > 65535)
- throw new IllegalArgumentException(
- "Invalid maxOutStreams value");
- if (maxInStreams < 0 || maxInStreams > 65535)
- throw new IllegalArgumentException(
- "Invalid maxInStreams value");
-
- return new InitMaxStreams(maxInStreams, maxOutStreams);
- }
-
- /**
- * Returns the maximum number of inbound streams.
- *
- * @return Maximum inbound streams
- */
- public int maxInStreams() {
- return maxInStreams;
- }
-
- /**
- * Returns the maximum number of outbound streams.
- *
- * @return Maximum outbound streams
- */
- public int maxOutStreams() {
- return maxOutStreams;
- }
-
- /**
- * Returns a string representation of this init max streams, including
- * the maximum in and out bound streams.
- *
- * @return A string representation of this init max streams
- */
- @Override
- public String toString() {
- StringBuilder sb = new StringBuilder();
- sb.append(super.toString()).append(" [");
- sb.append("maxInStreams:").append(maxInStreams);
- sb.append("maxOutStreams:").append(maxOutStreams).append("]");
- return sb.toString();
- }
-
- /**
- * Returns true if the specified object is another {@code InitMaxStreams}
- * instance with the same number of in and out bound streams.
- *
- * @param obj
- * The object to be compared with this init max streams
- *
- * @return true if the specified object is another
- * {@code InitMaxStreams} instance with the same number of in
- * and out bound streams
- */
- @Override
- public boolean equals(Object obj) {
- if (obj != null && obj instanceof InitMaxStreams) {
- InitMaxStreams that = (InitMaxStreams) obj;
- if (this.maxInStreams == that.maxInStreams &&
- this.maxOutStreams == that.maxOutStreams)
- return true;
- }
- return false;
- }
-
- /**
- * Returns a hash code value for this init max streams.
- */
- @Override
- public int hashCode() {
- int hash = 7 ^ maxInStreams ^ maxOutStreams;
- return hash;
- }
- }
-}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/share/classes/com/sun/nio/sctp/SctpStandardSocketOptions.java Mon May 09 18:45:33 2011 +0100
@@ -0,0 +1,419 @@
+/*
+ * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code 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
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package com.sun.nio.sctp;
+
+import java.net.SocketAddress;
+import sun.nio.ch.SctpStdSocketOption;
+
+/**
+ * SCTP channels supports the socket options defined by this class
+ * (as well as those listed in the particular channel class) and may support
+ * additional Implementation specific socket options.
+ *
+ * @since 1.7
+ */
+public class SctpStandardSocketOptions {
+ private SctpStandardSocketOptions() {}
+ /**
+ * Enables or disables message fragmentation.
+ *
+ * <P> The value of this socket option is a {@code Boolean} that represents
+ * whether the option is enabled or disabled. If enabled no SCTP message
+ * fragmentation will be performed. Instead if a message being sent
+ * exceeds the current PMTU size, the message will NOT be sent and
+ * an error will be indicated to the user.
+ *
+ * <P> It is implementation specific whether or not this option is
+ * supported.
+ */
+ public static final SctpSocketOption<Boolean> SCTP_DISABLE_FRAGMENTS = new
+ SctpStdSocketOption<Boolean>("SCTP_DISABLE_FRAGMENTS", Boolean.class,
+ sun.nio.ch.SctpStdSocketOption.SCTP_DISABLE_FRAGMENTS);
+
+ /**
+ * Enables or disables explicit message completion.
+ *
+ * <p> The value of this socket option is a {@code Boolean} that represents
+ * whether the option is enabled or disabled. When this option is enabled,
+ * the {@code send} method may be invoked multiple times to a send message.
+ * The {@code isComplete} parameter of the {@link MessageInfo} must only
+ * be set to {@code true} for the final send to indicate that the message is
+ * complete. If this option is disabled then each individual {@code send}
+ * invocation is considered complete.
+ *
+ * <P> The default value of the option is {@code false} indicating that the
+ * option is disabled. It is implementation specific whether or not this
+ * option is supported.
+ */
+ public static final SctpSocketOption<Boolean> SCTP_EXPLICIT_COMPLETE = new
+ SctpStdSocketOption<Boolean>("SCTP_EXPLICIT_COMPLETE", Boolean.class,
+ sun.nio.ch.SctpStdSocketOption.SCTP_EXPLICIT_COMPLETE);
+
+ /**
+ * Fragmented interleave controls how the presentation of messages occur
+ * for the message receiver. There are three levels of fragment interleave
+ * defined. Two of the levels effect {@link SctpChannel}, while
+ * {@link SctpMultiChannel} is effected by all three levels.
+ *
+ * <P> This option takes an {@code Integer} value. It can be set to a value
+ * of {@code 0}, {@code 1} or {@code 2}.
+ *
+ * <P> Setting the three levels provides the following receiver
+ * interactions:
+ *
+ * <P> {@code level 0} - Prevents the interleaving of any messages. This
+ * means that when a partial delivery begins, no other messages will be
+ * received except the message being partially delivered. If another message
+ * arrives on a different stream (or association) that could be delivered,
+ * it will be blocked waiting for the user to read all of the partially
+ * delivered message.
+ *
+ * <P> {@code level 1} - Allows interleaving of messages that are from
+ * different associations. For {@code SctpChannel}, level 0 and
+ * level 1 have the same meaning since an {@code SctpChannel} always
+ * receives messages from the same association. Note that setting an {@code
+ * SctpMultiChannel} to this level may cause multiple partial
+ * delivers from different associations but for any given association, only
+ * one message will be delivered until all parts of a message have been
+ * delivered. This means that one large message, being read with an
+ * association identification of "X", will block other messages from
+ * association "X" from being delivered.
+ *
+ * <P> {@code level 2} - Allows complete interleaving of messages. This
+ * level requires that the sender carefully observe not only the peer
+ * {@code Association} but also must pay careful attention to the stream
+ * number. With this option enabled a partially delivered message may begin
+ * being delivered for association "X" stream "Y" and the next subsequent
+ * receive may return a message from association "X" stream "Z". Note that
+ * no other messages would be delivered for association "X" stream "Y"
+ * until all of stream "Y"'s partially delivered message was read.
+ * Note that this option effects both channel types. Also note that
+ * for an {@code SctpMultiChannel} not only may another streams
+ * message from the same association be delivered from the next receive,
+ * some other associations message may be delivered upon the next receive.
+ *
+ * <P> It is implementation specific whether or not this option is
+ * supported.
+ */
+ public static final SctpSocketOption<Integer> SCTP_FRAGMENT_INTERLEAVE =
+ new SctpStdSocketOption<Integer>("SCTP_FRAGMENT_INTERLEAVE",
+ Integer.class,
+ sun.nio.ch.SctpStdSocketOption.SCTP_FRAGMENT_INTERLEAVE);
+
+ /**
+ * The maximum number of streams requested by the local endpoint during
+ * association initialization.
+ *
+ * <P> The value of this socket option is an {@link
+ * SctpStandardSocketOptions.InitMaxStreams InitMaxStreams}, that represents
+ * the maximum number of inbound and outbound streams that an association
+ * on the channel is prepared to support.
+ *
+ * <P> For an {@link SctpChannel} this option may only be used to
+ * change the number of inbound/outbound streams prior to connecting.
+ *
+ * <P> For an {@link SctpMultiChannel} this option determines
+ * the maximum number of inbound/outbound streams new associations setup
+ * on the channel will be prepared to support.
+ *
+ * <P> For an {@link SctpServerChannel} this option determines the
+ * maximum number of inbound/outbound streams accepted sockets will
+ * negotiate with their connecting peer.
+ *
+ * <P> In all cases the value set by this option is used in the negotiation
+ * of new associations setup on the channel's socket and the actual
+ * maximum number of inbound/outbound streams that have been negotiated
+ * with the peer can be retrieved from the appropriate {@link
+ * Association}. The {@code Association} can be retrieved from the
+ * {@link AssociationChangeNotification.AssocChangeEvent#COMM_UP COMM_UP}
+ * {@link AssociationChangeNotification} belonging to that association.
+ *
+ * <p> This value is bounded by the actual implementation. In other
+ * words the user may be able to support more streams than the Operating
+ * System. In such a case, the Operating System limit may override the
+ * value requested by the user. The default value of 0 indicates to use
+ * the endpoints default value.
+ */
+ public static final SctpSocketOption
+ <SctpStandardSocketOptions.InitMaxStreams> SCTP_INIT_MAXSTREAMS =
+ new SctpStdSocketOption<SctpStandardSocketOptions.InitMaxStreams>(
+ "SCTP_INIT_MAXSTREAMS", SctpStandardSocketOptions.InitMaxStreams.class);
+
+ /**
+ * Enables or disables a Nagle-like algorithm.
+ *
+ * <P> The value of this socket option is a {@code Boolean} that represents
+ * whether the option is enabled or disabled. SCTP uses an algorithm like
+ * <em>The Nagle Algorithm</em> to coalesce short segments and
+ * improve network efficiency.
+ */
+ public static final SctpSocketOption<Boolean> SCTP_NODELAY =
+ new SctpStdSocketOption<Boolean>("SCTP_NODELAY", Boolean.class,
+ sun.nio.ch.SctpStdSocketOption.SCTP_NODELAY);
+
+ /**
+ * Requests that the local SCTP stack use the given peer address as
+ * the association primary.
+ *
+ * <P> The value of this socket option is a {@code SocketAddress}
+ * that represents the peer address that the local SCTP stack should use as
+ * the association primary. The address must be one of the association
+ * peer's addresses.
+ *
+ * <P> An {@code SctpMultiChannel} can control more than one
+ * association, the association parameter must be given when setting or
+ * retrieving this option.
+ *
+ * <P> Since {@code SctpChannel} only controls one association,
+ * the association parameter is not required and this option can be
+ * set or queried directly.
+ */
+ public static final SctpSocketOption<SocketAddress> SCTP_PRIMARY_ADDR =
+ new SctpStdSocketOption<SocketAddress>
+ ("SCTP_PRIMARY_ADDR", SocketAddress.class);
+
+ /**
+ * Requests that the peer mark the enclosed address as the association
+ * primary.
+ *
+ * <P> The value of this socket option is a {@code SocketAddress}
+ * that represents the local address that the peer should use as its
+ * primary address. The given address must be one of the association's
+ * locally bound addresses.
+ *
+ * <P> An {@code SctpMultiChannel} can control more than one
+ * association, the association parameter must be given when setting or
+ * retrieving this option.
+ *
+ * <P> Since {@code SctpChannel} only controls one association,
+ * the association parameter is not required and this option can be
+ * queried directly.
+ *
+ * <P> Note, this is a set only option and cannot be retrieved by {@code
+ * getOption}. It is implementation specific whether or not this
+ * option is supported.
+ */
+ public static final SctpSocketOption<SocketAddress> SCTP_SET_PEER_PRIMARY_ADDR =
+ new SctpStdSocketOption<SocketAddress>
+ ("SCTP_SET_PEER_PRIMARY_ADDR", SocketAddress.class);
+
+ /**
+ * The size of the socket send buffer.
+ *
+ * <p> The value of this socket option is an {@code Integer} that is the
+ * size of the socket send buffer in bytes. The socket send buffer is an
+ * output buffer used by the networking implementation. It may need to be
+ * increased for high-volume connections. The value of the socket option is
+ * a <em>hint</em> to the implementation to size the buffer and the actual
+ * size may differ. The socket option can be queried to retrieve the actual
+ * size.
+ *
+ * <p> For {@code SctpChannel}, this controls the amount of data
+ * the SCTP stack may have waiting in internal buffers to be sent. This
+ * option therefore bounds the maximum size of data that can be sent in a
+ * single send call.
+ *
+ * <P> For {@code SctpMultiChannel}, the effect is the same as for {@code
+ * SctpChannel}, except that it applies to all associations. The option
+ * applies to each association's window size separately.
+ *
+ * <p> An implementation allows this socket option to be set before the
+ * socket is bound or connected. Whether an implementation allows the
+ * socket send buffer to be changed after the socket is bound is system
+ * dependent.
+ */
+ public static final SctpSocketOption<Integer> SO_SNDBUF =
+ new SctpStdSocketOption<Integer>("SO_SNDBUF", Integer.class,
+ sun.nio.ch.SctpStdSocketOption.SO_SNDBUF);
+
+ /**
+ * The size of the socket receive buffer.
+ *
+ * <P> The value of this socket option is an {@code Integer} that is the
+ * size of the socket receive buffer in bytes. The socket receive buffer is
+ * an input buffer used by the networking implementation. It may need to be
+ * increased for high-volume connections or decreased to limit the possible
+ * backlog of incoming data. The value of the socket option is a
+ * <em>hint</em> to the implementation to size the buffer and the actual
+ * size may differ.
+ *
+ * <P> For {@code SctpChannel}, this controls the receiver window size.
+ *
+ * <P> For {@code SctpMultiChannel}, the meaning is implementation
+ * dependent. It might control the receive buffer for each association bound
+ * to the socket descriptor or it might control the receive buffer for the
+ * whole socket.
+ *
+ * <p> An implementation allows this socket option to be set before the
+ * socket is bound or connected. Whether an implementation allows the
+ * socket receive buffer to be changed after the socket is bound is system
+ * dependent.
+ */
+ public static final SctpSocketOption<Integer> SO_RCVBUF =
+ new SctpStdSocketOption<Integer>("SO_RCVBUF", Integer.class,
+ sun.nio.ch.SctpStdSocketOption.SO_RCVBUF);
+
+ /**
+ * Linger on close if data is present.
+ *
+ * <p> The value of this socket option is an {@code Integer} that controls
+ * the action taken when unsent data is queued on the socket and a method
+ * to close the socket is invoked. If the value of the socket option is zero
+ * or greater, then it represents a timeout value, in seconds, known as the
+ * <em>linger interval</em>. The linger interval is the timeout for the
+ * {@code close} method to block while the operating system attempts to
+ * transmit the unsent data or it decides that it is unable to transmit the
+ * data. If the value of the socket option is less than zero then the option
+ * is disabled. In that case the {@code close} method does not wait until
+ * unsent data is transmitted; if possible the operating system will transmit
+ * any unsent data before the connection is closed.
+ *
+ * <p> This socket option is intended for use with sockets that are configured
+ * in {@link java.nio.channels.SelectableChannel#isBlocking() blocking} mode
+ * only. The behavior of the {@code close} method when this option is
+ * enabled on a non-blocking socket is not defined.
+ *
+ * <p> The initial value of this socket option is a negative value, meaning
+ * that the option is disabled. The option may be enabled, or the linger
+ * interval changed, at any time. The maximum value of the linger interval
+ * is system dependent. Setting the linger interval to a value that is
+ * greater than its maximum value causes the linger interval to be set to
+ * its maximum value.
+ */
+ public static final SctpSocketOption<Integer> SO_LINGER =
+ new SctpStdSocketOption<Integer>("SO_LINGER", Integer.class,
+ sun.nio.ch.SctpStdSocketOption.SO_LINGER);
+
+ /**
+ * This class is used to set the maximum number of inbound/outbound streams
+ * used by the local endpoint during association initialization. An
+ * instance of this class is used to set the {@link
+ * SctpStandardSocketOptions#SCTP_INIT_MAXSTREAMS SCTP_INIT_MAXSTREAMS}
+ * socket option.
+ *
+ * @since 1.7
+ */
+ public static class InitMaxStreams {
+ private int maxInStreams;
+ private int maxOutStreams;
+
+ private InitMaxStreams(int maxInStreams, int maxOutStreams) {
+ this.maxInStreams = maxInStreams;
+ this.maxOutStreams = maxOutStreams;
+ }
+
+ /**
+ * Creates an InitMaxStreams instance.
+ *
+ * @param maxInStreams
+ * The maximum number of inbound streams, where
+ * {@code 0 <= maxInStreams <= 65536}
+ *
+ * @param maxOutStreams
+ * The maximum number of outbound streams, where
+ * {@code 0 <= maxOutStreams <= 65536}
+ *
+ * @return An {@code InitMaxStreams} instance
+ *
+ * @throws IllegalArgumentException
+ * If an argument is outside of specified bounds
+ */
+ public static InitMaxStreams create
+ (int maxInStreams, int maxOutStreams) {
+ if (maxOutStreams < 0 || maxOutStreams > 65535)
+ throw new IllegalArgumentException(
+ "Invalid maxOutStreams value");
+ if (maxInStreams < 0 || maxInStreams > 65535)
+ throw new IllegalArgumentException(
+ "Invalid maxInStreams value");
+
+ return new InitMaxStreams(maxInStreams, maxOutStreams);
+ }
+
+ /**
+ * Returns the maximum number of inbound streams.
+ *
+ * @return Maximum inbound streams
+ */
+ public int maxInStreams() {
+ return maxInStreams;
+ }
+
+ /**
+ * Returns the maximum number of outbound streams.
+ *
+ * @return Maximum outbound streams
+ */
+ public int maxOutStreams() {
+ return maxOutStreams;
+ }
+
+ /**
+ * Returns a string representation of this init max streams, including
+ * the maximum in and out bound streams.
+ *
+ * @return A string representation of this init max streams
+ */
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append(super.toString()).append(" [");
+ sb.append("maxInStreams:").append(maxInStreams);
+ sb.append("maxOutStreams:").append(maxOutStreams).append("]");
+ return sb.toString();
+ }
+
+ /**
+ * Returns true if the specified object is another {@code InitMaxStreams}
+ * instance with the same number of in and out bound streams.
+ *
+ * @param obj
+ * The object to be compared with this init max streams
+ *
+ * @return true if the specified object is another
+ * {@code InitMaxStreams} instance with the same number of in
+ * and out bound streams
+ */
+ @Override
+ public boolean equals(Object obj) {
+ if (obj != null && obj instanceof InitMaxStreams) {
+ InitMaxStreams that = (InitMaxStreams) obj;
+ if (this.maxInStreams == that.maxInStreams &&
+ this.maxOutStreams == that.maxOutStreams)
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * Returns a hash code value for this init max streams.
+ */
+ @Override
+ public int hashCode() {
+ int hash = 7 ^ maxInStreams ^ maxOutStreams;
+ return hash;
+ }
+ }
+}
--- a/jdk/src/share/classes/java/net/SocketOption.java Mon May 09 08:58:00 2011 -0700
+++ b/jdk/src/share/classes/java/net/SocketOption.java Mon May 09 18:45:33 2011 +0100
@@ -38,7 +38,7 @@
*
* @since 1.7
*
- * @see StandardSocketOption
+ * @see StandardSocketOptions
*/
public interface SocketOption<T> {
--- a/jdk/src/share/classes/java/net/StandardSocketOption.java Mon May 09 08:58:00 2011 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,367 +0,0 @@
-/*
- * Copyright (c) 2007, 2009, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code 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
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package java.net;
-
-/**
- * Defines the <em>standard</em> socket options.
- *
- * <p> The {@link SocketOption#name name} of each socket option defined by this
- * class is its field name.
- *
- * <p> In this release, the socket options defined here are used by {@link
- * java.nio.channels.NetworkChannel network} channels in the {@link
- * java.nio.channels channels} package.
- *
- * @since 1.7
- */
-
-public final class StandardSocketOption {
- private StandardSocketOption() { }
-
- // -- SOL_SOCKET --
-
- /**
- * Allow transmission of broadcast datagrams.
- *
- * <p> The value of this socket option is a {@code Boolean} that represents
- * whether the option is enabled or disabled. The option is specific to
- * datagram-oriented sockets sending to {@link java.net.Inet4Address IPv4}
- * broadcast addresses. When the socket option is enabled then the socket
- * can be used to send <em>broadcast datagrams</em>.
- *
- * <p> The initial value of this socket option is {@code FALSE}. The socket
- * option may be enabled or disabled at any time. Some operating systems may
- * require that the Java virtual machine be started with implementation
- * specific privileges to enable this option or send broadcast datagrams.
- *
- * @see <a href="http://www.ietf.org/rfc/rfc919.txt">RFC 929:
- * Broadcasting Internet Datagrams</a>
- * @see DatagramSocket#setBroadcast
- */
- public static final SocketOption<Boolean> SO_BROADCAST =
- new StdSocketOption<Boolean>("SO_BROADCAST", Boolean.class);
-
- /**
- * Keep connection alive.
- *
- * <p> The value of this socket option is a {@code Boolean} that represents
- * whether the option is enabled or disabled. When the {@code SO_KEEPALIVE}
- * option is enabled the operating system may use a <em>keep-alive</em>
- * mechanism to periodically probe the other end of a connection when the
- * connection is otherwise idle. The exact semantics of the keep alive
- * mechanism is system dependent and therefore unspecified.
- *
- * <p> The initial value of this socket option is {@code FALSE}. The socket
- * option may be enabled or disabled at any time.
- *
- * @see <a href="http://www.ietf.org/rfc/rfc1122.txt">RFC 1122
- * Requirements for Internet Hosts -- Communication Layers</a>
- * @see Socket#setKeepAlive
- */
- public static final SocketOption<Boolean> SO_KEEPALIVE =
- new StdSocketOption<Boolean>("SO_KEEPALIVE", Boolean.class);
-
- /**
- * The size of the socket send buffer.
- *
- * <p> The value of this socket option is an {@code Integer} that is the
- * size of the socket send buffer in bytes. The socket send buffer is an
- * output buffer used by the networking implementation. It may need to be
- * increased for high-volume connections. The value of the socket option is
- * a <em>hint</em> to the implementation to size the buffer and the actual
- * size may differ. The socket option can be queried to retrieve the actual
- * size.
- *
- * <p> For datagram-oriented sockets, the size of the send buffer may limit
- * the size of the datagrams that may be sent by the socket. Whether
- * datagrams larger than the buffer size are sent or discarded is system
- * dependent.
- *
- * <p> The initial/default size of the socket send buffer and the range of
- * allowable values is system dependent although a negative size is not
- * allowed. An attempt to set the socket send buffer to larger than its
- * maximum size causes it to be set to its maximum size.
- *
- * <p> An implementation allows this socket option to be set before the
- * socket is bound or connected. Whether an implementation allows the
- * socket send buffer to be changed after the socket is bound is system
- * dependent.
- *
- * @see Socket#setSendBufferSize
- */
- public static final SocketOption<Integer> SO_SNDBUF =
- new StdSocketOption<Integer>("SO_SNDBUF", Integer.class);
-
-
- /**
- * The size of the socket receive buffer.
- *
- * <p> The value of this socket option is an {@code Integer} that is the
- * size of the socket receive buffer in bytes. The socket receive buffer is
- * an input buffer used by the networking implementation. It may need to be
- * increased for high-volume connections or decreased to limit the possible
- * backlog of incoming data. The value of the socket option is a
- * <em>hint</em> to the implementation to size the buffer and the actual
- * size may differ.
- *
- * <p> For datagram-oriented sockets, the size of the receive buffer may
- * limit the size of the datagrams that can be received. Whether datagrams
- * larger than the buffer size can be received is system dependent.
- * Increasing the socket receive buffer may be important for cases where
- * datagrams arrive in bursts faster than they can be processed.
- *
- * <p> In the case of stream-oriented sockets and the TCP/IP protocol, the
- * size of the socket receive buffer may be used when advertising the size
- * of the TCP receive window to the remote peer.
- *
- * <p> The initial/default size of the socket receive buffer and the range
- * of allowable values is system dependent although a negative size is not
- * allowed. An attempt to set the socket receive buffer to larger than its
- * maximum size causes it to be set to its maximum size.
- *
- * <p> An implementation allows this socket option to be set before the
- * socket is bound or connected. Whether an implementation allows the
- * socket receive buffer to be changed after the socket is bound is system
- * dependent.
- *
- * @see <a href="http://www.ietf.org/rfc/rfc1323.txt">RFC 1323: TCP
- * Extensions for High Performance</a>
- * @see Socket#setReceiveBufferSize
- * @see ServerSocket#setReceiveBufferSize
- */
- public static final SocketOption<Integer> SO_RCVBUF =
- new StdSocketOption<Integer>("SO_RCVBUF", Integer.class);
-
- /**
- * Re-use address.
- *
- * <p> The value of this socket option is a {@code Boolean} that represents
- * whether the option is enabled or disabled. The exact semantics of this
- * socket option are socket type and system dependent.
- *
- * <p> In the case of stream-oriented sockets, this socket option will
- * usually determine whether the socket can be bound to a socket address
- * when a previous connection involving that socket address is in the
- * <em>TIME_WAIT</em> state. On implementations where the semantics differ,
- * and the socket option is not required to be enabled in order to bind the
- * socket when a previous connection is in this state, then the
- * implementation may choose to ignore this option.
- *
- * <p> For datagram-oriented sockets the socket option is used to allow
- * multiple programs bind to the same address. This option should be enabled
- * when the socket is to be used for Internet Protocol (IP) multicasting.
- *
- * <p> An implementation allows this socket option to be set before the
- * socket is bound or connected. Changing the value of this socket option
- * after the socket is bound has no effect. The default value of this
- * socket option is system dependent.
- *
- * @see <a href="http://www.ietf.org/rfc/rfc793.txt">RFC 793: Transmission
- * Control Protocol</a>
- * @see ServerSocket#setReuseAddress
- */
- public static final SocketOption<Boolean> SO_REUSEADDR =
- new StdSocketOption<Boolean>("SO_REUSEADDR", Boolean.class);
-
- /**
- * Linger on close if data is present.
- *
- * <p> The value of this socket option is an {@code Integer} that controls
- * the action taken when unsent data is queued on the socket and a method
- * to close the socket is invoked. If the value of the socket option is zero
- * or greater, then it represents a timeout value, in seconds, known as the
- * <em>linger interval</em>. The linger interval is the timeout for the
- * {@code close} method to block while the operating system attempts to
- * transmit the unsent data or it decides that it is unable to transmit the
- * data. If the value of the socket option is less than zero then the option
- * is disabled. In that case the {@code close} method does not wait until
- * unsent data is transmitted; if possible the operating system will transmit
- * any unsent data before the connection is closed.
- *
- * <p> This socket option is intended for use with sockets that are configured
- * in {@link java.nio.channels.SelectableChannel#isBlocking() blocking} mode
- * only. The behavior of the {@code close} method when this option is
- * enabled on a non-blocking socket is not defined.
- *
- * <p> The initial value of this socket option is a negative value, meaning
- * that the option is disabled. The option may be enabled, or the linger
- * interval changed, at any time. The maximum value of the linger interval
- * is system dependent. Setting the linger interval to a value that is
- * greater than its maximum value causes the linger interval to be set to
- * its maximum value.
- *
- * @see Socket#setSoLinger
- */
- public static final SocketOption<Integer> SO_LINGER =
- new StdSocketOption<Integer>("SO_LINGER", Integer.class);
-
-
- // -- IPPROTO_IP --
-
- /**
- * The Type of Service (ToS) octet in the Internet Protocol (IP) header.
- *
- * <p> The value of this socket option is an {@code Integer} representing
- * the value of the ToS octet in IP packets sent by sockets to an {@link
- * StandardProtocolFamily#INET IPv4} socket. The interpretation of the ToS
- * octet is network specific and is not defined by this class. Further
- * information on the ToS octet can be found in <a
- * href="http://www.ietf.org/rfc/rfc1349.txt">RFC 1349</a> and <a
- * href="http://www.ietf.org/rfc/rfc2474.txt">RFC 2474</a>. The value
- * of the socket option is a <em>hint</em>. An implementation may ignore the
- * value, or ignore specific values.
- *
- * <p> The initial/default value of the TOS field in the ToS octet is
- * implementation specific but will typically be {@code 0}. For
- * datagram-oriented sockets the option may be configured at any time after
- * the socket has been bound. The new value of the octet is used when sending
- * subsequent datagrams. It is system dependent whether this option can be
- * queried or changed prior to binding the socket.
- *
- * <p> The behavior of this socket option on a stream-oriented socket, or an
- * {@link StandardProtocolFamily#INET6 IPv6} socket, is not defined in this
- * release.
- *
- * @see DatagramSocket#setTrafficClass
- */
- public static final SocketOption<Integer> IP_TOS =
- new StdSocketOption<Integer>("IP_TOS", Integer.class);
-
- /**
- * The network interface for Internet Protocol (IP) multicast datagrams.
- *
- * <p> The value of this socket option is a {@link NetworkInterface} that
- * represents the outgoing interface for multicast datagrams sent by the
- * datagram-oriented socket. For {@link StandardProtocolFamily#INET6 IPv6}
- * sockets then it is system dependent whether setting this option also
- * sets the outgoing interface for multlicast datagrams sent to IPv4
- * addresses.
- *
- * <p> The initial/default value of this socket option may be {@code null}
- * to indicate that outgoing interface will be selected by the operating
- * system, typically based on the network routing tables. An implementation
- * allows this socket option to be set after the socket is bound. Whether
- * the socket option can be queried or changed prior to binding the socket
- * is system dependent.
- *
- * @see java.nio.channels.MulticastChannel
- * @see MulticastSocket#setInterface
- */
- public static final SocketOption<NetworkInterface> IP_MULTICAST_IF =
- new StdSocketOption<NetworkInterface>("IP_MULTICAST_IF", NetworkInterface.class);
-
- /**
- * The <em>time-to-live</em> for Internet Protocol (IP) multicast datagrams.
- *
- * <p> The value of this socket option is an {@code Integer} in the range
- * <tt>0 <= value <= 255</tt>. It is used to control
- * the scope of multicast datagrams sent by the datagram-oriented socket.
- * In the case of an {@link StandardProtocolFamily#INET IPv4} socket
- * the option is the time-to-live (TTL) on multicast datagrams sent by the
- * socket. Datagrams with a TTL of zero are not transmitted on the network
- * but may be delivered locally. In the case of an {@link
- * StandardProtocolFamily#INET6 IPv6} socket the option is the
- * <em>hop limit</em> which is number of <em>hops</em> that the datagram can
- * pass through before expiring on the network. For IPv6 sockets it is
- * system dependent whether the option also sets the <em>time-to-live</em>
- * on multicast datagrams sent to IPv4 addresses.
- *
- * <p> The initial/default value of the time-to-live setting is typically
- * {@code 1}. An implementation allows this socket option to be set after
- * the socket is bound. Whether the socket option can be queried or changed
- * prior to binding the socket is system dependent.
- *
- * @see java.nio.channels.MulticastChannel
- * @see MulticastSocket#setTimeToLive
- */
- public static final SocketOption<Integer> IP_MULTICAST_TTL =
- new StdSocketOption<Integer>("IP_MULTICAST_TTL", Integer.class);
-
- /**
- * Loopback for Internet Protocol (IP) multicast datagrams.
- *
- * <p> The value of this socket option is a {@code Boolean} that controls
- * the <em>loopback</em> of multicast datagrams. The value of the socket
- * option represents if the option is enabled or disabled.
- *
- * <p> The exact semantics of this socket options are system dependent.
- * In particular, it is system dependent whether the loopback applies to
- * multicast datagrams sent from the socket or received by the socket.
- * For {@link StandardProtocolFamily#INET6 IPv6} sockets then it is
- * system dependent whether the option also applies to multicast datagrams
- * sent to IPv4 addresses.
- *
- * <p> The initial/default value of this socket option is {@code TRUE}. An
- * implementation allows this socket option to be set after the socket is
- * bound. Whether the socket option can be queried or changed prior to
- * binding the socket is system dependent.
- *
- * @see java.nio.channels.MulticastChannel
- * @see MulticastSocket#setLoopbackMode
- */
- public static final SocketOption<Boolean> IP_MULTICAST_LOOP =
- new StdSocketOption<Boolean>("IP_MULTICAST_LOOP", Boolean.class);
-
-
- // -- IPPROTO_TCP --
-
- /**
- * Disable the Nagle algorithm.
- *
- * <p> The value of this socket option is a {@code Boolean} that represents
- * whether the option is enabled or disabled. The socket option is specific to
- * stream-oriented sockets using the TCP/IP protocol. TCP/IP uses an algorithm
- * known as <em>The Nagle Algorithm</em> to coalesce short segments and
- * improve network efficiency.
- *
- * <p> The default value of this socket option is {@code FALSE}. The
- * socket option should only be enabled in cases where it is known that the
- * coalescing impacts performance. The socket option may be enabled at any
- * time. In other words, the Nagle Algorithm can be disabled. Once the option
- * is enabled, it is system dependent whether it can be subsequently
- * disabled. If it cannot, then invoking the {@code setOption} method to
- * disable the option has no effect.
- *
- * @see <a href="http://www.ietf.org/rfc/rfc1122.txt">RFC 1122:
- * Requirements for Internet Hosts -- Communication Layers</a>
- * @see Socket#setTcpNoDelay
- */
- public static final SocketOption<Boolean> TCP_NODELAY =
- new StdSocketOption<Boolean>("TCP_NODELAY", Boolean.class);
-
-
- private static class StdSocketOption<T> implements SocketOption<T> {
- private final String name;
- private final Class<T> type;
- StdSocketOption(String name, Class<T> type) {
- this.name = name;
- this.type = type;
- }
- @Override public String name() { return name; }
- @Override public Class<T> type() { return type; }
- @Override public String toString() { return name; }
- }
-}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/share/classes/java/net/StandardSocketOptions.java Mon May 09 18:45:33 2011 +0100
@@ -0,0 +1,367 @@
+/*
+ * Copyright (c) 2007, 2009, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code 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
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package java.net;
+
+/**
+ * Defines the <em>standard</em> socket options.
+ *
+ * <p> The {@link SocketOption#name name} of each socket option defined by this
+ * class is its field name.
+ *
+ * <p> In this release, the socket options defined here are used by {@link
+ * java.nio.channels.NetworkChannel network} channels in the {@link
+ * java.nio.channels channels} package.
+ *
+ * @since 1.7
+ */
+
+public final class StandardSocketOptions {
+ private StandardSocketOptions() { }
+
+ // -- SOL_SOCKET --
+
+ /**
+ * Allow transmission of broadcast datagrams.
+ *
+ * <p> The value of this socket option is a {@code Boolean} that represents
+ * whether the option is enabled or disabled. The option is specific to
+ * datagram-oriented sockets sending to {@link java.net.Inet4Address IPv4}
+ * broadcast addresses. When the socket option is enabled then the socket
+ * can be used to send <em>broadcast datagrams</em>.
+ *
+ * <p> The initial value of this socket option is {@code FALSE}. The socket
+ * option may be enabled or disabled at any time. Some operating systems may
+ * require that the Java virtual machine be started with implementation
+ * specific privileges to enable this option or send broadcast datagrams.
+ *
+ * @see <a href="http://www.ietf.org/rfc/rfc919.txt">RFC 929:
+ * Broadcasting Internet Datagrams</a>
+ * @see DatagramSocket#setBroadcast
+ */
+ public static final SocketOption<Boolean> SO_BROADCAST =
+ new StdSocketOption<Boolean>("SO_BROADCAST", Boolean.class);
+
+ /**
+ * Keep connection alive.
+ *
+ * <p> The value of this socket option is a {@code Boolean} that represents
+ * whether the option is enabled or disabled. When the {@code SO_KEEPALIVE}
+ * option is enabled the operating system may use a <em>keep-alive</em>
+ * mechanism to periodically probe the other end of a connection when the
+ * connection is otherwise idle. The exact semantics of the keep alive
+ * mechanism is system dependent and therefore unspecified.
+ *
+ * <p> The initial value of this socket option is {@code FALSE}. The socket
+ * option may be enabled or disabled at any time.
+ *
+ * @see <a href="http://www.ietf.org/rfc/rfc1122.txt">RFC 1122
+ * Requirements for Internet Hosts -- Communication Layers</a>
+ * @see Socket#setKeepAlive
+ */
+ public static final SocketOption<Boolean> SO_KEEPALIVE =
+ new StdSocketOption<Boolean>("SO_KEEPALIVE", Boolean.class);
+
+ /**
+ * The size of the socket send buffer.
+ *
+ * <p> The value of this socket option is an {@code Integer} that is the
+ * size of the socket send buffer in bytes. The socket send buffer is an
+ * output buffer used by the networking implementation. It may need to be
+ * increased for high-volume connections. The value of the socket option is
+ * a <em>hint</em> to the implementation to size the buffer and the actual
+ * size may differ. The socket option can be queried to retrieve the actual
+ * size.
+ *
+ * <p> For datagram-oriented sockets, the size of the send buffer may limit
+ * the size of the datagrams that may be sent by the socket. Whether
+ * datagrams larger than the buffer size are sent or discarded is system
+ * dependent.
+ *
+ * <p> The initial/default size of the socket send buffer and the range of
+ * allowable values is system dependent although a negative size is not
+ * allowed. An attempt to set the socket send buffer to larger than its
+ * maximum size causes it to be set to its maximum size.
+ *
+ * <p> An implementation allows this socket option to be set before the
+ * socket is bound or connected. Whether an implementation allows the
+ * socket send buffer to be changed after the socket is bound is system
+ * dependent.
+ *
+ * @see Socket#setSendBufferSize
+ */
+ public static final SocketOption<Integer> SO_SNDBUF =
+ new StdSocketOption<Integer>("SO_SNDBUF", Integer.class);
+
+
+ /**
+ * The size of the socket receive buffer.
+ *
+ * <p> The value of this socket option is an {@code Integer} that is the
+ * size of the socket receive buffer in bytes. The socket receive buffer is
+ * an input buffer used by the networking implementation. It may need to be
+ * increased for high-volume connections or decreased to limit the possible
+ * backlog of incoming data. The value of the socket option is a
+ * <em>hint</em> to the implementation to size the buffer and the actual
+ * size may differ.
+ *
+ * <p> For datagram-oriented sockets, the size of the receive buffer may
+ * limit the size of the datagrams that can be received. Whether datagrams
+ * larger than the buffer size can be received is system dependent.
+ * Increasing the socket receive buffer may be important for cases where
+ * datagrams arrive in bursts faster than they can be processed.
+ *
+ * <p> In the case of stream-oriented sockets and the TCP/IP protocol, the
+ * size of the socket receive buffer may be used when advertising the size
+ * of the TCP receive window to the remote peer.
+ *
+ * <p> The initial/default size of the socket receive buffer and the range
+ * of allowable values is system dependent although a negative size is not
+ * allowed. An attempt to set the socket receive buffer to larger than its
+ * maximum size causes it to be set to its maximum size.
+ *
+ * <p> An implementation allows this socket option to be set before the
+ * socket is bound or connected. Whether an implementation allows the
+ * socket receive buffer to be changed after the socket is bound is system
+ * dependent.
+ *
+ * @see <a href="http://www.ietf.org/rfc/rfc1323.txt">RFC 1323: TCP
+ * Extensions for High Performance</a>
+ * @see Socket#setReceiveBufferSize
+ * @see ServerSocket#setReceiveBufferSize
+ */
+ public static final SocketOption<Integer> SO_RCVBUF =
+ new StdSocketOption<Integer>("SO_RCVBUF", Integer.class);
+
+ /**
+ * Re-use address.
+ *
+ * <p> The value of this socket option is a {@code Boolean} that represents
+ * whether the option is enabled or disabled. The exact semantics of this
+ * socket option are socket type and system dependent.
+ *
+ * <p> In the case of stream-oriented sockets, this socket option will
+ * usually determine whether the socket can be bound to a socket address
+ * when a previous connection involving that socket address is in the
+ * <em>TIME_WAIT</em> state. On implementations where the semantics differ,
+ * and the socket option is not required to be enabled in order to bind the
+ * socket when a previous connection is in this state, then the
+ * implementation may choose to ignore this option.
+ *
+ * <p> For datagram-oriented sockets the socket option is used to allow
+ * multiple programs bind to the same address. This option should be enabled
+ * when the socket is to be used for Internet Protocol (IP) multicasting.
+ *
+ * <p> An implementation allows this socket option to be set before the
+ * socket is bound or connected. Changing the value of this socket option
+ * after the socket is bound has no effect. The default value of this
+ * socket option is system dependent.
+ *
+ * @see <a href="http://www.ietf.org/rfc/rfc793.txt">RFC 793: Transmission
+ * Control Protocol</a>
+ * @see ServerSocket#setReuseAddress
+ */
+ public static final SocketOption<Boolean> SO_REUSEADDR =
+ new StdSocketOption<Boolean>("SO_REUSEADDR", Boolean.class);
+
+ /**
+ * Linger on close if data is present.
+ *
+ * <p> The value of this socket option is an {@code Integer} that controls
+ * the action taken when unsent data is queued on the socket and a method
+ * to close the socket is invoked. If the value of the socket option is zero
+ * or greater, then it represents a timeout value, in seconds, known as the
+ * <em>linger interval</em>. The linger interval is the timeout for the
+ * {@code close} method to block while the operating system attempts to
+ * transmit the unsent data or it decides that it is unable to transmit the
+ * data. If the value of the socket option is less than zero then the option
+ * is disabled. In that case the {@code close} method does not wait until
+ * unsent data is transmitted; if possible the operating system will transmit
+ * any unsent data before the connection is closed.
+ *
+ * <p> This socket option is intended for use with sockets that are configured
+ * in {@link java.nio.channels.SelectableChannel#isBlocking() blocking} mode
+ * only. The behavior of the {@code close} method when this option is
+ * enabled on a non-blocking socket is not defined.
+ *
+ * <p> The initial value of this socket option is a negative value, meaning
+ * that the option is disabled. The option may be enabled, or the linger
+ * interval changed, at any time. The maximum value of the linger interval
+ * is system dependent. Setting the linger interval to a value that is
+ * greater than its maximum value causes the linger interval to be set to
+ * its maximum value.
+ *
+ * @see Socket#setSoLinger
+ */
+ public static final SocketOption<Integer> SO_LINGER =
+ new StdSocketOption<Integer>("SO_LINGER", Integer.class);
+
+
+ // -- IPPROTO_IP --
+
+ /**
+ * The Type of Service (ToS) octet in the Internet Protocol (IP) header.
+ *
+ * <p> The value of this socket option is an {@code Integer} representing
+ * the value of the ToS octet in IP packets sent by sockets to an {@link
+ * StandardProtocolFamily#INET IPv4} socket. The interpretation of the ToS
+ * octet is network specific and is not defined by this class. Further
+ * information on the ToS octet can be found in <a
+ * href="http://www.ietf.org/rfc/rfc1349.txt">RFC 1349</a> and <a
+ * href="http://www.ietf.org/rfc/rfc2474.txt">RFC 2474</a>. The value
+ * of the socket option is a <em>hint</em>. An implementation may ignore the
+ * value, or ignore specific values.
+ *
+ * <p> The initial/default value of the TOS field in the ToS octet is
+ * implementation specific but will typically be {@code 0}. For
+ * datagram-oriented sockets the option may be configured at any time after
+ * the socket has been bound. The new value of the octet is used when sending
+ * subsequent datagrams. It is system dependent whether this option can be
+ * queried or changed prior to binding the socket.
+ *
+ * <p> The behavior of this socket option on a stream-oriented socket, or an
+ * {@link StandardProtocolFamily#INET6 IPv6} socket, is not defined in this
+ * release.
+ *
+ * @see DatagramSocket#setTrafficClass
+ */
+ public static final SocketOption<Integer> IP_TOS =
+ new StdSocketOption<Integer>("IP_TOS", Integer.class);
+
+ /**
+ * The network interface for Internet Protocol (IP) multicast datagrams.
+ *
+ * <p> The value of this socket option is a {@link NetworkInterface} that
+ * represents the outgoing interface for multicast datagrams sent by the
+ * datagram-oriented socket. For {@link StandardProtocolFamily#INET6 IPv6}
+ * sockets then it is system dependent whether setting this option also
+ * sets the outgoing interface for multlicast datagrams sent to IPv4
+ * addresses.
+ *
+ * <p> The initial/default value of this socket option may be {@code null}
+ * to indicate that outgoing interface will be selected by the operating
+ * system, typically based on the network routing tables. An implementation
+ * allows this socket option to be set after the socket is bound. Whether
+ * the socket option can be queried or changed prior to binding the socket
+ * is system dependent.
+ *
+ * @see java.nio.channels.MulticastChannel
+ * @see MulticastSocket#setInterface
+ */
+ public static final SocketOption<NetworkInterface> IP_MULTICAST_IF =
+ new StdSocketOption<NetworkInterface>("IP_MULTICAST_IF", NetworkInterface.class);
+
+ /**
+ * The <em>time-to-live</em> for Internet Protocol (IP) multicast datagrams.
+ *
+ * <p> The value of this socket option is an {@code Integer} in the range
+ * <tt>0 <= value <= 255</tt>. It is used to control
+ * the scope of multicast datagrams sent by the datagram-oriented socket.
+ * In the case of an {@link StandardProtocolFamily#INET IPv4} socket
+ * the option is the time-to-live (TTL) on multicast datagrams sent by the
+ * socket. Datagrams with a TTL of zero are not transmitted on the network
+ * but may be delivered locally. In the case of an {@link
+ * StandardProtocolFamily#INET6 IPv6} socket the option is the
+ * <em>hop limit</em> which is number of <em>hops</em> that the datagram can
+ * pass through before expiring on the network. For IPv6 sockets it is
+ * system dependent whether the option also sets the <em>time-to-live</em>
+ * on multicast datagrams sent to IPv4 addresses.
+ *
+ * <p> The initial/default value of the time-to-live setting is typically
+ * {@code 1}. An implementation allows this socket option to be set after
+ * the socket is bound. Whether the socket option can be queried or changed
+ * prior to binding the socket is system dependent.
+ *
+ * @see java.nio.channels.MulticastChannel
+ * @see MulticastSocket#setTimeToLive
+ */
+ public static final SocketOption<Integer> IP_MULTICAST_TTL =
+ new StdSocketOption<Integer>("IP_MULTICAST_TTL", Integer.class);
+
+ /**
+ * Loopback for Internet Protocol (IP) multicast datagrams.
+ *
+ * <p> The value of this socket option is a {@code Boolean} that controls
+ * the <em>loopback</em> of multicast datagrams. The value of the socket
+ * option represents if the option is enabled or disabled.
+ *
+ * <p> The exact semantics of this socket options are system dependent.
+ * In particular, it is system dependent whether the loopback applies to
+ * multicast datagrams sent from the socket or received by the socket.
+ * For {@link StandardProtocolFamily#INET6 IPv6} sockets then it is
+ * system dependent whether the option also applies to multicast datagrams
+ * sent to IPv4 addresses.
+ *
+ * <p> The initial/default value of this socket option is {@code TRUE}. An
+ * implementation allows this socket option to be set after the socket is
+ * bound. Whether the socket option can be queried or changed prior to
+ * binding the socket is system dependent.
+ *
+ * @see java.nio.channels.MulticastChannel
+ * @see MulticastSocket#setLoopbackMode
+ */
+ public static final SocketOption<Boolean> IP_MULTICAST_LOOP =
+ new StdSocketOption<Boolean>("IP_MULTICAST_LOOP", Boolean.class);
+
+
+ // -- IPPROTO_TCP --
+
+ /**
+ * Disable the Nagle algorithm.
+ *
+ * <p> The value of this socket option is a {@code Boolean} that represents
+ * whether the option is enabled or disabled. The socket option is specific to
+ * stream-oriented sockets using the TCP/IP protocol. TCP/IP uses an algorithm
+ * known as <em>The Nagle Algorithm</em> to coalesce short segments and
+ * improve network efficiency.
+ *
+ * <p> The default value of this socket option is {@code FALSE}. The
+ * socket option should only be enabled in cases where it is known that the
+ * coalescing impacts performance. The socket option may be enabled at any
+ * time. In other words, the Nagle Algorithm can be disabled. Once the option
+ * is enabled, it is system dependent whether it can be subsequently
+ * disabled. If it cannot, then invoking the {@code setOption} method to
+ * disable the option has no effect.
+ *
+ * @see <a href="http://www.ietf.org/rfc/rfc1122.txt">RFC 1122:
+ * Requirements for Internet Hosts -- Communication Layers</a>
+ * @see Socket#setTcpNoDelay
+ */
+ public static final SocketOption<Boolean> TCP_NODELAY =
+ new StdSocketOption<Boolean>("TCP_NODELAY", Boolean.class);
+
+
+ private static class StdSocketOption<T> implements SocketOption<T> {
+ private final String name;
+ private final Class<T> type;
+ StdSocketOption(String name, Class<T> type) {
+ this.name = name;
+ this.type = type;
+ }
+ @Override public String name() { return name; }
+ @Override public Class<T> type() { return type; }
+ @Override public String toString() { return name; }
+ }
+}
--- a/jdk/src/share/classes/java/nio/channels/AsynchronousServerSocketChannel.java Mon May 09 08:58:00 2011 -0700
+++ b/jdk/src/share/classes/java/nio/channels/AsynchronousServerSocketChannel.java Mon May 09 18:45:33 2011 +0100
@@ -58,11 +58,11 @@
* <th>Description</th>
* </tr>
* <tr>
- * <td> {@link java.net.StandardSocketOption#SO_RCVBUF SO_RCVBUF} </td>
+ * <td> {@link java.net.StandardSocketOptions#SO_RCVBUF SO_RCVBUF} </td>
* <td> The size of the socket receive buffer </td>
* </tr>
* <tr>
- * <td> {@link java.net.StandardSocketOption#SO_REUSEADDR SO_REUSEADDR} </td>
+ * <td> {@link java.net.StandardSocketOptions#SO_REUSEADDR SO_REUSEADDR} </td>
* <td> Re-use address </td>
* </tr>
* </table>
--- a/jdk/src/share/classes/java/nio/channels/AsynchronousSocketChannel.java Mon May 09 08:58:00 2011 -0700
+++ b/jdk/src/share/classes/java/nio/channels/AsynchronousSocketChannel.java Mon May 09 18:45:33 2011 +0100
@@ -68,23 +68,23 @@
* <th>Description</th>
* </tr>
* <tr>
- * <td> {@link java.net.StandardSocketOption#SO_SNDBUF SO_SNDBUF} </td>
+ * <td> {@link java.net.StandardSocketOptions#SO_SNDBUF SO_SNDBUF} </td>
* <td> The size of the socket send buffer </td>
* </tr>
* <tr>
- * <td> {@link java.net.StandardSocketOption#SO_RCVBUF SO_RCVBUF} </td>
+ * <td> {@link java.net.StandardSocketOptions#SO_RCVBUF SO_RCVBUF} </td>
* <td> The size of the socket receive buffer </td>
* </tr>
* <tr>
- * <td> {@link java.net.StandardSocketOption#SO_KEEPALIVE SO_KEEPALIVE} </td>
+ * <td> {@link java.net.StandardSocketOptions#SO_KEEPALIVE SO_KEEPALIVE} </td>
* <td> Keep connection alive </td>
* </tr>
* <tr>
- * <td> {@link java.net.StandardSocketOption#SO_REUSEADDR SO_REUSEADDR} </td>
+ * <td> {@link java.net.StandardSocketOptions#SO_REUSEADDR SO_REUSEADDR} </td>
* <td> Re-use address </td>
* </tr>
* <tr>
- * <td> {@link java.net.StandardSocketOption#TCP_NODELAY TCP_NODELAY} </td>
+ * <td> {@link java.net.StandardSocketOptions#TCP_NODELAY TCP_NODELAY} </td>
* <td> Disable the Nagle algorithm </td>
* </tr>
* </table>
--- a/jdk/src/share/classes/java/nio/channels/DatagramChannel.java Mon May 09 08:58:00 2011 -0700
+++ b/jdk/src/share/classes/java/nio/channels/DatagramChannel.java Mon May 09 18:45:33 2011 +0100
@@ -63,37 +63,37 @@
* <th>Description</th>
* </tr>
* <tr>
- * <td> {@link java.net.StandardSocketOption#SO_SNDBUF SO_SNDBUF} </td>
+ * <td> {@link java.net.StandardSocketOptions#SO_SNDBUF SO_SNDBUF} </td>
* <td> The size of the socket send buffer </td>
* </tr>
* <tr>
- * <td> {@link java.net.StandardSocketOption#SO_RCVBUF SO_RCVBUF} </td>
+ * <td> {@link java.net.StandardSocketOptions#SO_RCVBUF SO_RCVBUF} </td>
* <td> The size of the socket receive buffer </td>
* </tr>
* <tr>
- * <td> {@link java.net.StandardSocketOption#SO_REUSEADDR SO_REUSEADDR} </td>
+ * <td> {@link java.net.StandardSocketOptions#SO_REUSEADDR SO_REUSEADDR} </td>
* <td> Re-use address </td>
* </tr>
* <tr>
- * <td> {@link java.net.StandardSocketOption#SO_BROADCAST SO_BROADCAST} </td>
+ * <td> {@link java.net.StandardSocketOptions#SO_BROADCAST SO_BROADCAST} </td>
* <td> Allow transmission of broadcast datagrams </td>
* </tr>
* <tr>
- * <td> {@link java.net.StandardSocketOption#IP_TOS IP_TOS} </td>
+ * <td> {@link java.net.StandardSocketOptions#IP_TOS IP_TOS} </td>
* <td> The Type of Service (ToS) octet in the Internet Protocol (IP) header </td>
* </tr>
* <tr>
- * <td> {@link java.net.StandardSocketOption#IP_MULTICAST_IF IP_MULTICAST_IF} </td>
+ * <td> {@link java.net.StandardSocketOptions#IP_MULTICAST_IF IP_MULTICAST_IF} </td>
* <td> The network interface for Internet Protocol (IP) multicast datagrams </td>
* </tr>
* <tr>
- * <td> {@link java.net.StandardSocketOption#IP_MULTICAST_TTL
+ * <td> {@link java.net.StandardSocketOptions#IP_MULTICAST_TTL
* IP_MULTICAST_TTL} </td>
* <td> The <em>time-to-live</em> for Internet Protocol (IP) multicast
* datagrams </td>
* </tr>
* <tr>
- * <td> {@link java.net.StandardSocketOption#IP_MULTICAST_LOOP
+ * <td> {@link java.net.StandardSocketOptions#IP_MULTICAST_LOOP
* IP_MULTICAST_LOOP} </td>
* <td> Loopback for Internet Protocol (IP) multicast datagrams </td>
* </tr>
--- a/jdk/src/share/classes/java/nio/channels/MulticastChannel.java Mon May 09 08:58:00 2011 -0700
+++ b/jdk/src/share/classes/java/nio/channels/MulticastChannel.java Mon May 09 18:45:33 2011 +0100
@@ -30,7 +30,7 @@
import java.io.IOException;
import java.net.ProtocolFamily; // javadoc
import java.net.StandardProtocolFamily; // javadoc
-import java.net.StandardSocketOption; // javadoc
+import java.net.StandardSocketOptions; // javadoc
/**
* A network channel that supports Internet Protocol (IP) multicasting.
@@ -93,7 +93,7 @@
* a specific address, rather than the wildcard address then it is implementation
* specific if multicast datagrams are received by the socket. </p></li>
*
- * <li><p> The {@link StandardSocketOption#SO_REUSEADDR SO_REUSEADDR} option should be
+ * <li><p> The {@link StandardSocketOptions#SO_REUSEADDR SO_REUSEADDR} option should be
* enabled prior to {@link NetworkChannel#bind binding} the socket. This is
* required to allow multiple members of the group to bind to the same
* address. </p></li>
@@ -107,9 +107,9 @@
* NetworkInterface ni = NetworkInterface.getByName("hme0");
*
* DatagramChannel dc = DatagramChannel.open(StandardProtocolFamily.INET)
- * .setOption(StandardSocketOption.SO_REUSEADDR, true)
+ * .setOption(StandardSocketOptions.SO_REUSEADDR, true)
* .bind(new InetSocketAddress(5000))
- * .setOption(StandardSocketOption.IP_MULTICAST_IF, ni);
+ * .setOption(StandardSocketOptions.IP_MULTICAST_IF, ni);
*
* InetAddress group = InetAddress.getByName("225.4.5.6");
*
--- a/jdk/src/share/classes/java/nio/channels/NetworkChannel.java Mon May 09 08:58:00 2011 -0700
+++ b/jdk/src/share/classes/java/nio/channels/NetworkChannel.java Mon May 09 18:45:33 2011 +0100
@@ -124,7 +124,7 @@
* @throws IOException
* If an I/O error occurs
*
- * @see java.net.StandardSocketOption
+ * @see java.net.StandardSocketOptions
*/
<T> NetworkChannel setOption(SocketOption<T> name, T value) throws IOException;
@@ -144,7 +144,7 @@
* @throws IOException
* If an I/O error occurs
*
- * @see java.net.StandardSocketOption
+ * @see java.net.StandardSocketOptions
*/
<T> T getOption(SocketOption<T> name) throws IOException;
--- a/jdk/src/share/classes/java/nio/channels/ServerSocketChannel.java Mon May 09 08:58:00 2011 -0700
+++ b/jdk/src/share/classes/java/nio/channels/ServerSocketChannel.java Mon May 09 18:45:33 2011 +0100
@@ -52,11 +52,11 @@
* <th>Description</th>
* </tr>
* <tr>
- * <td> {@link java.net.StandardSocketOption#SO_RCVBUF SO_RCVBUF} </td>
+ * <td> {@link java.net.StandardSocketOptions#SO_RCVBUF SO_RCVBUF} </td>
* <td> The size of the socket receive buffer </td>
* </tr>
* <tr>
- * <td> {@link java.net.StandardSocketOption#SO_REUSEADDR SO_REUSEADDR} </td>
+ * <td> {@link java.net.StandardSocketOptions#SO_REUSEADDR SO_REUSEADDR} </td>
* <td> Re-use address </td>
* </tr>
* </table>
--- a/jdk/src/share/classes/java/nio/channels/SocketChannel.java Mon May 09 08:58:00 2011 -0700
+++ b/jdk/src/share/classes/java/nio/channels/SocketChannel.java Mon May 09 18:45:33 2011 +0100
@@ -72,28 +72,28 @@
* <th>Description</th>
* </tr>
* <tr>
- * <td> {@link java.net.StandardSocketOption#SO_SNDBUF SO_SNDBUF} </td>
+ * <td> {@link java.net.StandardSocketOptions#SO_SNDBUF SO_SNDBUF} </td>
* <td> The size of the socket send buffer </td>
* </tr>
* <tr>
- * <td> {@link java.net.StandardSocketOption#SO_RCVBUF SO_RCVBUF} </td>
+ * <td> {@link java.net.StandardSocketOptions#SO_RCVBUF SO_RCVBUF} </td>
* <td> The size of the socket receive buffer </td>
* </tr>
* <tr>
- * <td> {@link java.net.StandardSocketOption#SO_KEEPALIVE SO_KEEPALIVE} </td>
+ * <td> {@link java.net.StandardSocketOptions#SO_KEEPALIVE SO_KEEPALIVE} </td>
* <td> Keep connection alive </td>
* </tr>
* <tr>
- * <td> {@link java.net.StandardSocketOption#SO_REUSEADDR SO_REUSEADDR} </td>
+ * <td> {@link java.net.StandardSocketOptions#SO_REUSEADDR SO_REUSEADDR} </td>
* <td> Re-use address </td>
* </tr>
* <tr>
- * <td> {@link java.net.StandardSocketOption#SO_LINGER SO_LINGER} </td>
+ * <td> {@link java.net.StandardSocketOptions#SO_LINGER SO_LINGER} </td>
* <td> Linger on close if data is present (when configured in blocking mode
* only) </td>
* </tr>
* <tr>
- * <td> {@link java.net.StandardSocketOption#TCP_NODELAY TCP_NODELAY} </td>
+ * <td> {@link java.net.StandardSocketOptions#TCP_NODELAY TCP_NODELAY} </td>
* <td> Disable the Nagle algorithm </td>
* </tr>
* </table>
--- a/jdk/src/share/classes/java/nio/file/Path.java Mon May 09 08:58:00 2011 -0700
+++ b/jdk/src/share/classes/java/nio/file/Path.java Mon May 09 18:45:33 2011 +0100
@@ -609,11 +609,11 @@
* directory can be watched. The {@code events} parameter is the events to
* register and may contain the following events:
* <ul>
- * <li>{@link StandardWatchEventKind#ENTRY_CREATE ENTRY_CREATE} -
+ * <li>{@link StandardWatchEventKinds#ENTRY_CREATE ENTRY_CREATE} -
* entry created or moved into the directory</li>
- * <li>{@link StandardWatchEventKind#ENTRY_DELETE ENTRY_DELETE} -
+ * <li>{@link StandardWatchEventKinds#ENTRY_DELETE ENTRY_DELETE} -
* entry deleted or moved out of the directory</li>
- * <li>{@link StandardWatchEventKind#ENTRY_MODIFY ENTRY_MODIFY} -
+ * <li>{@link StandardWatchEventKinds#ENTRY_MODIFY ENTRY_MODIFY} -
* entry in directory was modified</li>
* </ul>
*
@@ -622,7 +622,7 @@
* that locates the directory entry that is created, deleted, or modified.
*
* <p> The set of events may include additional implementation specific
- * event that are not defined by the enum {@link StandardWatchEventKind}
+ * event that are not defined by the enum {@link StandardWatchEventKinds}
*
* <p> The {@code modifiers} parameter specifies <em>modifiers</em> that
* qualify how the directory is registered. This release does not define any
--- a/jdk/src/share/classes/java/nio/file/StandardWatchEventKind.java Mon May 09 08:58:00 2011 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,94 +0,0 @@
-/*
- * Copyright (c) 2007, 2009, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code 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
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package java.nio.file;
-
-/**
- * Defines the <em>standard</em> event kinds.
- *
- * @since 1.7
- */
-
-public final class StandardWatchEventKind {
- private StandardWatchEventKind() { }
-
- /**
- * A special event to indicate that events may have been lost or
- * discarded.
- *
- * <p> The {@link WatchEvent#context context} for this event is
- * implementation specific and may be {@code null}. The event {@link
- * WatchEvent#count count} may be greater than {@code 1}.
- *
- * @see WatchService
- */
- public static final WatchEvent.Kind<Void> OVERFLOW =
- new StdWatchEventKind<Void>("OVERFLOW", Void.class);
-
- /**
- * Directory entry created.
- *
- * <p> When a directory is registered for this event then the {@link WatchKey}
- * is queued when it is observed that an entry is created in the directory
- * or renamed into the directory. The event {@link WatchEvent#count count}
- * for this event is always {@code 1}.
- */
- public static final WatchEvent.Kind<Path> ENTRY_CREATE =
- new StdWatchEventKind<Path>("ENTRY_CREATE", Path.class);
-
- /**
- * Directory entry deleted.
- *
- * <p> When a directory is registered for this event then the {@link WatchKey}
- * is queued when it is observed that an entry is deleted or renamed out of
- * the directory. The event {@link WatchEvent#count count} for this event
- * is always {@code 1}.
- */
- public static final WatchEvent.Kind<Path> ENTRY_DELETE =
- new StdWatchEventKind<Path>("ENTRY_DELETE", Path.class);
-
- /**
- * Directory entry modified.
- *
- * <p> When a directory is registered for this event then the {@link WatchKey}
- * is queued when it is observed that an entry in the directory has been
- * modified. The event {@link WatchEvent#count count} for this event is
- * {@code 1} or greater.
- */
- public static final WatchEvent.Kind<Path> ENTRY_MODIFY =
- new StdWatchEventKind<Path>("ENTRY_MODIFY", Path.class);
-
- private static class StdWatchEventKind<T> implements WatchEvent.Kind<T> {
- private final String name;
- private final Class<T> type;
- StdWatchEventKind(String name, Class<T> type) {
- this.name = name;
- this.type = type;
- }
- @Override public String name() { return name; }
- @Override public Class<T> type() { return type; }
- @Override public String toString() { return name; }
- }
-}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/share/classes/java/nio/file/StandardWatchEventKinds.java Mon May 09 18:45:33 2011 +0100
@@ -0,0 +1,94 @@
+/*
+ * Copyright (c) 2007, 2009, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code 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
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package java.nio.file;
+
+/**
+ * Defines the <em>standard</em> event kinds.
+ *
+ * @since 1.7
+ */
+
+public final class StandardWatchEventKinds {
+ private StandardWatchEventKinds() { }
+
+ /**
+ * A special event to indicate that events may have been lost or
+ * discarded.
+ *
+ * <p> The {@link WatchEvent#context context} for this event is
+ * implementation specific and may be {@code null}. The event {@link
+ * WatchEvent#count count} may be greater than {@code 1}.
+ *
+ * @see WatchService
+ */
+ public static final WatchEvent.Kind<Object> OVERFLOW =
+ new StdWatchEventKind<Object>("OVERFLOW", Object.class);
+
+ /**
+ * Directory entry created.
+ *
+ * <p> When a directory is registered for this event then the {@link WatchKey}
+ * is queued when it is observed that an entry is created in the directory
+ * or renamed into the directory. The event {@link WatchEvent#count count}
+ * for this event is always {@code 1}.
+ */
+ public static final WatchEvent.Kind<Path> ENTRY_CREATE =
+ new StdWatchEventKind<Path>("ENTRY_CREATE", Path.class);
+
+ /**
+ * Directory entry deleted.
+ *
+ * <p> When a directory is registered for this event then the {@link WatchKey}
+ * is queued when it is observed that an entry is deleted or renamed out of
+ * the directory. The event {@link WatchEvent#count count} for this event
+ * is always {@code 1}.
+ */
+ public static final WatchEvent.Kind<Path> ENTRY_DELETE =
+ new StdWatchEventKind<Path>("ENTRY_DELETE", Path.class);
+
+ /**
+ * Directory entry modified.
+ *
+ * <p> When a directory is registered for this event then the {@link WatchKey}
+ * is queued when it is observed that an entry in the directory has been
+ * modified. The event {@link WatchEvent#count count} for this event is
+ * {@code 1} or greater.
+ */
+ public static final WatchEvent.Kind<Path> ENTRY_MODIFY =
+ new StdWatchEventKind<Path>("ENTRY_MODIFY", Path.class);
+
+ private static class StdWatchEventKind<T> implements WatchEvent.Kind<T> {
+ private final String name;
+ private final Class<T> type;
+ StdWatchEventKind(String name, Class<T> type) {
+ this.name = name;
+ this.type = type;
+ }
+ @Override public String name() { return name; }
+ @Override public Class<T> type() { return type; }
+ @Override public String toString() { return name; }
+ }
+}
--- a/jdk/src/share/classes/java/nio/file/WatchEvent.java Mon May 09 08:58:00 2011 -0700
+++ b/jdk/src/share/classes/java/nio/file/WatchEvent.java Mon May 09 18:45:33 2011 +0100
@@ -50,7 +50,7 @@
* An event kind, for the purposes of identification.
*
* @since 1.7
- * @see StandardWatchEventKind
+ * @see StandardWatchEventKinds
*/
public static interface Kind<T> {
/**
@@ -98,9 +98,9 @@
/**
* Returns the context for the event.
*
- * <p> In the case of {@link StandardWatchEventKind#ENTRY_CREATE ENTRY_CREATE},
- * {@link StandardWatchEventKind#ENTRY_DELETE ENTRY_DELETE}, and {@link
- * StandardWatchEventKind#ENTRY_MODIFY ENTRY_MODIFY} events the context is
+ * <p> In the case of {@link StandardWatchEventKinds#ENTRY_CREATE ENTRY_CREATE},
+ * {@link StandardWatchEventKinds#ENTRY_DELETE ENTRY_DELETE}, and {@link
+ * StandardWatchEventKinds#ENTRY_MODIFY ENTRY_MODIFY} events the context is
* a {@code Path} that is the {@link Path#relativize relative} path between
* the directory registered with the watch service, and the entry that is
* created, deleted, or modified.
--- a/jdk/src/share/classes/java/nio/file/WatchService.java Mon May 09 08:58:00 2011 -0700
+++ b/jdk/src/share/classes/java/nio/file/WatchService.java Mon May 09 18:45:33 2011 +0100
@@ -68,7 +68,7 @@
* of events that it may accumulate. Where an implementation <em>knowingly</em>
* discards events then it arranges for the key's {@link WatchKey#pollEvents
* pollEvents} method to return an element with an event type of {@link
- * StandardWatchEventKind#OVERFLOW OVERFLOW}. This event can be used by the
+ * StandardWatchEventKinds#OVERFLOW OVERFLOW}. This event can be used by the
* consumer as a trigger to re-examine the state of the object.
*
* <p> When an event is reported to indicate that a file in a watched directory
@@ -87,7 +87,7 @@
* are detected, their timeliness, and whether their ordering is preserved are
* highly implementation specific. For example, when a file in a watched
* directory is modified then it may result in a single {@link
- * StandardWatchEventKind#ENTRY_MODIFY ENTRY_MODIFY} event in some
+ * StandardWatchEventKinds#ENTRY_MODIFY ENTRY_MODIFY} event in some
* implementations but several events in other implementations. Short-lived
* files (meaning files that are deleted very quickly after they are created)
* may not be detected by primitive implementations that periodically poll the
--- a/jdk/src/share/classes/java/nio/file/Watchable.java Mon May 09 08:58:00 2011 -0700
+++ b/jdk/src/share/classes/java/nio/file/Watchable.java Mon May 09 18:45:33 2011 +0100
@@ -53,7 +53,7 @@
* those specified by the {@code events} and {@code modifiers} parameters.
* Changing the event set does not cause pending events for the object to be
* discarded. Objects are automatically registered for the {@link
- * StandardWatchEventKind#OVERFLOW OVERFLOW} event. This event is not
+ * StandardWatchEventKinds#OVERFLOW OVERFLOW} event. This event is not
* required to be present in the array of events.
*
* <p> Otherwise the file system object has not yet been registered with the
--- a/jdk/src/share/classes/sun/nio/ch/AsynchronousServerSocketChannelImpl.java Mon May 09 08:58:00 2011 -0700
+++ b/jdk/src/share/classes/sun/nio/ch/AsynchronousServerSocketChannelImpl.java Mon May 09 18:45:33 2011 +0100
@@ -28,7 +28,7 @@
import java.nio.channels.*;
import java.net.SocketAddress;
import java.net.SocketOption;
-import java.net.StandardSocketOption;
+import java.net.StandardSocketOptions;
import java.net.InetSocketAddress;
import java.io.FileDescriptor;
import java.io.IOException;
@@ -214,8 +214,8 @@
private static Set<SocketOption<?>> defaultOptions() {
HashSet<SocketOption<?>> set = new HashSet<SocketOption<?>>(2);
- set.add(StandardSocketOption.SO_RCVBUF);
- set.add(StandardSocketOption.SO_REUSEADDR);
+ set.add(StandardSocketOptions.SO_RCVBUF);
+ set.add(StandardSocketOptions.SO_REUSEADDR);
return Collections.unmodifiableSet(set);
}
}
--- a/jdk/src/share/classes/sun/nio/ch/AsynchronousSocketChannelImpl.java Mon May 09 08:58:00 2011 -0700
+++ b/jdk/src/share/classes/sun/nio/ch/AsynchronousSocketChannelImpl.java Mon May 09 18:45:33 2011 +0100
@@ -28,7 +28,7 @@
import java.nio.ByteBuffer;
import java.nio.channels.*;
import java.net.SocketOption;
-import java.net.StandardSocketOption;
+import java.net.StandardSocketOptions;
import java.net.SocketAddress;
import java.net.InetSocketAddress;
import java.io.IOException;
@@ -483,11 +483,11 @@
private static Set<SocketOption<?>> defaultOptions() {
HashSet<SocketOption<?>> set = new HashSet<SocketOption<?>>(5);
- set.add(StandardSocketOption.SO_SNDBUF);
- set.add(StandardSocketOption.SO_RCVBUF);
- set.add(StandardSocketOption.SO_KEEPALIVE);
- set.add(StandardSocketOption.SO_REUSEADDR);
- set.add(StandardSocketOption.TCP_NODELAY);
+ set.add(StandardSocketOptions.SO_SNDBUF);
+ set.add(StandardSocketOptions.SO_RCVBUF);
+ set.add(StandardSocketOptions.SO_KEEPALIVE);
+ set.add(StandardSocketOptions.SO_REUSEADDR);
+ set.add(StandardSocketOptions.TCP_NODELAY);
return Collections.unmodifiableSet(set);
}
}
--- a/jdk/src/share/classes/sun/nio/ch/DatagramChannelImpl.java Mon May 09 08:58:00 2011 -0700
+++ b/jdk/src/share/classes/sun/nio/ch/DatagramChannelImpl.java Mon May 09 18:45:33 2011 +0100
@@ -188,7 +188,7 @@
synchronized (stateLock) {
ensureOpen();
- if (name == StandardSocketOption.IP_TOS) {
+ if (name == StandardSocketOptions.IP_TOS) {
// IPv4 only; no-op for IPv6
if (family == StandardProtocolFamily.INET) {
Net.setSocketOption(fd, family, name, value);
@@ -196,15 +196,15 @@
return this;
}
- if (name == StandardSocketOption.IP_MULTICAST_TTL ||
- name == StandardSocketOption.IP_MULTICAST_LOOP)
+ if (name == StandardSocketOptions.IP_MULTICAST_TTL ||
+ name == StandardSocketOptions.IP_MULTICAST_LOOP)
{
// options are protocol dependent
Net.setSocketOption(fd, family, name, value);
return this;
}
- if (name == StandardSocketOption.IP_MULTICAST_IF) {
+ if (name == StandardSocketOptions.IP_MULTICAST_IF) {
if (value == null)
throw new IllegalArgumentException("Cannot set IP_MULTICAST_IF to 'null'");
NetworkInterface interf = (NetworkInterface)value;
@@ -243,7 +243,7 @@
synchronized (stateLock) {
ensureOpen();
- if (name == StandardSocketOption.IP_TOS) {
+ if (name == StandardSocketOptions.IP_TOS) {
// IPv4 only; always return 0 on IPv6
if (family == StandardProtocolFamily.INET) {
return (T) Net.getSocketOption(fd, family, name);
@@ -252,13 +252,13 @@
}
}
- if (name == StandardSocketOption.IP_MULTICAST_TTL ||
- name == StandardSocketOption.IP_MULTICAST_LOOP)
+ if (name == StandardSocketOptions.IP_MULTICAST_TTL ||
+ name == StandardSocketOptions.IP_MULTICAST_LOOP)
{
return (T) Net.getSocketOption(fd, family, name);
}
- if (name == StandardSocketOption.IP_MULTICAST_IF) {
+ if (name == StandardSocketOptions.IP_MULTICAST_IF) {
if (family == StandardProtocolFamily.INET) {
int address = Net.getInterface4(fd);
if (address == 0)
@@ -291,14 +291,14 @@
private static Set<SocketOption<?>> defaultOptions() {
HashSet<SocketOption<?>> set = new HashSet<SocketOption<?>>(8);
- set.add(StandardSocketOption.SO_SNDBUF);
- set.add(StandardSocketOption.SO_RCVBUF);
- set.add(StandardSocketOption.SO_REUSEADDR);
- set.add(StandardSocketOption.SO_BROADCAST);
- set.add(StandardSocketOption.IP_TOS);
- set.add(StandardSocketOption.IP_MULTICAST_IF);
- set.add(StandardSocketOption.IP_MULTICAST_TTL);
- set.add(StandardSocketOption.IP_MULTICAST_LOOP);
+ set.add(StandardSocketOptions.SO_SNDBUF);
+ set.add(StandardSocketOptions.SO_RCVBUF);
+ set.add(StandardSocketOptions.SO_REUSEADDR);
+ set.add(StandardSocketOptions.SO_BROADCAST);
+ set.add(StandardSocketOptions.IP_TOS);
+ set.add(StandardSocketOptions.IP_MULTICAST_IF);
+ set.add(StandardSocketOptions.IP_MULTICAST_TTL);
+ set.add(StandardSocketOptions.IP_MULTICAST_LOOP);
return Collections.unmodifiableSet(set);
}
}
--- a/jdk/src/share/classes/sun/nio/ch/DatagramSocketAdaptor.java Mon May 09 08:58:00 2011 -0700
+++ b/jdk/src/share/classes/sun/nio/ch/DatagramSocketAdaptor.java Mon May 09 18:45:33 2011 +0100
@@ -312,46 +312,46 @@
public void setSendBufferSize(int size) throws SocketException {
if (size <= 0)
throw new IllegalArgumentException("Invalid send size");
- setIntOption(StandardSocketOption.SO_SNDBUF, size);
+ setIntOption(StandardSocketOptions.SO_SNDBUF, size);
}
public int getSendBufferSize() throws SocketException {
- return getIntOption(StandardSocketOption.SO_SNDBUF);
+ return getIntOption(StandardSocketOptions.SO_SNDBUF);
}
public void setReceiveBufferSize(int size) throws SocketException {
if (size <= 0)
throw new IllegalArgumentException("Invalid receive size");
- setIntOption(StandardSocketOption.SO_RCVBUF, size);
+ setIntOption(StandardSocketOptions.SO_RCVBUF, size);
}
public int getReceiveBufferSize() throws SocketException {
- return getIntOption(StandardSocketOption.SO_RCVBUF);
+ return getIntOption(StandardSocketOptions.SO_RCVBUF);
}
public void setReuseAddress(boolean on) throws SocketException {
- setBooleanOption(StandardSocketOption.SO_REUSEADDR, on);
+ setBooleanOption(StandardSocketOptions.SO_REUSEADDR, on);
}
public boolean getReuseAddress() throws SocketException {
- return getBooleanOption(StandardSocketOption.SO_REUSEADDR);
+ return getBooleanOption(StandardSocketOptions.SO_REUSEADDR);
}
public void setBroadcast(boolean on) throws SocketException {
- setBooleanOption(StandardSocketOption.SO_BROADCAST, on);
+ setBooleanOption(StandardSocketOptions.SO_BROADCAST, on);
}
public boolean getBroadcast() throws SocketException {
- return getBooleanOption(StandardSocketOption.SO_BROADCAST);
+ return getBooleanOption(StandardSocketOptions.SO_BROADCAST);
}
public void setTrafficClass(int tc) throws SocketException {
- setIntOption(StandardSocketOption.IP_TOS, tc);
+ setIntOption(StandardSocketOptions.IP_TOS, tc);
}
public int getTrafficClass() throws SocketException {
- return getIntOption(StandardSocketOption.IP_TOS);
+ return getIntOption(StandardSocketOptions.IP_TOS);
}
public void close() {
--- a/jdk/src/share/classes/sun/nio/ch/ExtendedSocketOption.java Mon May 09 08:58:00 2011 -0700
+++ b/jdk/src/share/classes/sun/nio/ch/ExtendedSocketOption.java Mon May 09 18:45:33 2011 +0100
@@ -29,7 +29,7 @@
/**
* Defines socket options that are supported by the implementation
- * but not defined in StandardSocketOption.
+ * but not defined in StandardSocketOptions.
*/
class ExtendedSocketOption {
--- a/jdk/src/share/classes/sun/nio/ch/Net.java Mon May 09 08:58:00 2011 -0700
+++ b/jdk/src/share/classes/sun/nio/ch/Net.java Mon May 09 18:45:33 2011 +0100
@@ -237,26 +237,26 @@
throw new AssertionError("Should not reach here");
// special handling
- if (name == StandardSocketOption.SO_RCVBUF ||
- name == StandardSocketOption.SO_SNDBUF)
+ if (name == StandardSocketOptions.SO_RCVBUF ||
+ name == StandardSocketOptions.SO_SNDBUF)
{
int i = ((Integer)value).intValue();
if (i < 0)
throw new IllegalArgumentException("Invalid send/receive buffer size");
}
- if (name == StandardSocketOption.SO_LINGER) {
+ if (name == StandardSocketOptions.SO_LINGER) {
int i = ((Integer)value).intValue();
if (i < 0)
value = Integer.valueOf(-1);
if (i > 65535)
value = Integer.valueOf(65535);
}
- if (name == StandardSocketOption.IP_TOS) {
+ if (name == StandardSocketOptions.IP_TOS) {
int i = ((Integer)value).intValue();
if (i < 0 || i > 255)
throw new IllegalArgumentException("Invalid IP_TOS value");
}
- if (name == StandardSocketOption.IP_MULTICAST_TTL) {
+ if (name == StandardSocketOptions.IP_MULTICAST_TTL) {
int i = ((Integer)value).intValue();
if (i < 0 || i > 255)
throw new IllegalArgumentException("Invalid TTL/hop value");
--- a/jdk/src/share/classes/sun/nio/ch/ServerSocketAdaptor.java Mon May 09 08:58:00 2011 -0700
+++ b/jdk/src/share/classes/sun/nio/ch/ServerSocketAdaptor.java Mon May 09 18:45:33 2011 +0100
@@ -169,7 +169,7 @@
public void setReuseAddress(boolean on) throws SocketException {
try {
- ssc.setOption(StandardSocketOption.SO_REUSEADDR, on);
+ ssc.setOption(StandardSocketOptions.SO_REUSEADDR, on);
} catch (IOException x) {
Net.translateToSocketException(x);
}
@@ -177,7 +177,7 @@
public boolean getReuseAddress() throws SocketException {
try {
- return ssc.getOption(StandardSocketOption.SO_REUSEADDR).booleanValue();
+ return ssc.getOption(StandardSocketOptions.SO_REUSEADDR).booleanValue();
} catch (IOException x) {
Net.translateToSocketException(x);
return false; // Never happens
@@ -197,7 +197,7 @@
if (size <= 0)
throw new IllegalArgumentException("size cannot be 0 or negative");
try {
- ssc.setOption(StandardSocketOption.SO_RCVBUF, size);
+ ssc.setOption(StandardSocketOptions.SO_RCVBUF, size);
} catch (IOException x) {
Net.translateToSocketException(x);
}
@@ -205,7 +205,7 @@
public int getReceiveBufferSize() throws SocketException {
try {
- return ssc.getOption(StandardSocketOption.SO_RCVBUF).intValue();
+ return ssc.getOption(StandardSocketOptions.SO_RCVBUF).intValue();
} catch (IOException x) {
Net.translateToSocketException(x);
return -1; // Never happens
--- a/jdk/src/share/classes/sun/nio/ch/ServerSocketChannelImpl.java Mon May 09 08:58:00 2011 -0700
+++ b/jdk/src/share/classes/sun/nio/ch/ServerSocketChannelImpl.java Mon May 09 18:45:33 2011 +0100
@@ -160,8 +160,8 @@
private static Set<SocketOption<?>> defaultOptions() {
HashSet<SocketOption<?>> set = new HashSet<SocketOption<?>>(2);
- set.add(StandardSocketOption.SO_RCVBUF);
- set.add(StandardSocketOption.SO_REUSEADDR);
+ set.add(StandardSocketOptions.SO_RCVBUF);
+ set.add(StandardSocketOptions.SO_REUSEADDR);
return Collections.unmodifiableSet(set);
}
}
--- a/jdk/src/share/classes/sun/nio/ch/SocketAdaptor.java Mon May 09 08:58:00 2011 -0700
+++ b/jdk/src/share/classes/sun/nio/ch/SocketAdaptor.java Mon May 09 18:45:33 2011 +0100
@@ -318,21 +318,21 @@
}
public void setTcpNoDelay(boolean on) throws SocketException {
- setBooleanOption(StandardSocketOption.TCP_NODELAY, on);
+ setBooleanOption(StandardSocketOptions.TCP_NODELAY, on);
}
public boolean getTcpNoDelay() throws SocketException {
- return getBooleanOption(StandardSocketOption.TCP_NODELAY);
+ return getBooleanOption(StandardSocketOptions.TCP_NODELAY);
}
public void setSoLinger(boolean on, int linger) throws SocketException {
if (!on)
linger = -1;
- setIntOption(StandardSocketOption.SO_LINGER, linger);
+ setIntOption(StandardSocketOptions.SO_LINGER, linger);
}
public int getSoLinger() throws SocketException {
- return getIntOption(StandardSocketOption.SO_LINGER);
+ return getIntOption(StandardSocketOptions.SO_LINGER);
}
public void sendUrgentData(int data) throws IOException {
@@ -366,46 +366,46 @@
// size 0 valid for SocketChannel, invalid for Socket
if (size <= 0)
throw new IllegalArgumentException("Invalid send size");
- setIntOption(StandardSocketOption.SO_SNDBUF, size);
+ setIntOption(StandardSocketOptions.SO_SNDBUF, size);
}
public int getSendBufferSize() throws SocketException {
- return getIntOption(StandardSocketOption.SO_SNDBUF);
+ return getIntOption(StandardSocketOptions.SO_SNDBUF);
}
public void setReceiveBufferSize(int size) throws SocketException {
// size 0 valid for SocketChannel, invalid for Socket
if (size <= 0)
throw new IllegalArgumentException("Invalid receive size");
- setIntOption(StandardSocketOption.SO_RCVBUF, size);
+ setIntOption(StandardSocketOptions.SO_RCVBUF, size);
}
public int getReceiveBufferSize() throws SocketException {
- return getIntOption(StandardSocketOption.SO_RCVBUF);
+ return getIntOption(StandardSocketOptions.SO_RCVBUF);
}
public void setKeepAlive(boolean on) throws SocketException {
- setBooleanOption(StandardSocketOption.SO_KEEPALIVE, on);
+ setBooleanOption(StandardSocketOptions.SO_KEEPALIVE, on);
}
public boolean getKeepAlive() throws SocketException {
- return getBooleanOption(StandardSocketOption.SO_KEEPALIVE);
+ return getBooleanOption(StandardSocketOptions.SO_KEEPALIVE);
}
public void setTrafficClass(int tc) throws SocketException {
- setIntOption(StandardSocketOption.IP_TOS, tc);
+ setIntOption(StandardSocketOptions.IP_TOS, tc);
}
public int getTrafficClass() throws SocketException {
- return getIntOption(StandardSocketOption.IP_TOS);
+ return getIntOption(StandardSocketOptions.IP_TOS);
}
public void setReuseAddress(boolean on) throws SocketException {
- setBooleanOption(StandardSocketOption.SO_REUSEADDR, on);
+ setBooleanOption(StandardSocketOptions.SO_REUSEADDR, on);
}
public boolean getReuseAddress() throws SocketException {
- return getBooleanOption(StandardSocketOption.SO_REUSEADDR);
+ return getBooleanOption(StandardSocketOptions.SO_REUSEADDR);
}
public void close() throws IOException {
--- a/jdk/src/share/classes/sun/nio/ch/SocketChannelImpl.java Mon May 09 08:58:00 2011 -0700
+++ b/jdk/src/share/classes/sun/nio/ch/SocketChannelImpl.java Mon May 09 18:45:33 2011 +0100
@@ -170,7 +170,7 @@
throw new ClosedChannelException();
// special handling for IP_TOS: no-op when IPv6
- if (name == StandardSocketOption.IP_TOS) {
+ if (name == StandardSocketOptions.IP_TOS) {
if (!Net.isIPv6Available())
Net.setSocketOption(fd, StandardProtocolFamily.INET, name, value);
return this;
@@ -197,7 +197,7 @@
throw new ClosedChannelException();
// special handling for IP_TOS: always return 0 when IPv6
- if (name == StandardSocketOption.IP_TOS) {
+ if (name == StandardSocketOptions.IP_TOS) {
return (Net.isIPv6Available()) ? (T) Integer.valueOf(0) :
(T) Net.getSocketOption(fd, StandardProtocolFamily.INET, name);
}
@@ -212,14 +212,14 @@
private static Set<SocketOption<?>> defaultOptions() {
HashSet<SocketOption<?>> set = new HashSet<SocketOption<?>>(8);
- set.add(StandardSocketOption.SO_SNDBUF);
- set.add(StandardSocketOption.SO_RCVBUF);
- set.add(StandardSocketOption.SO_KEEPALIVE);
- set.add(StandardSocketOption.SO_REUSEADDR);
- set.add(StandardSocketOption.SO_LINGER);
- set.add(StandardSocketOption.TCP_NODELAY);
+ set.add(StandardSocketOptions.SO_SNDBUF);
+ set.add(StandardSocketOptions.SO_RCVBUF);
+ set.add(StandardSocketOptions.SO_KEEPALIVE);
+ set.add(StandardSocketOptions.SO_REUSEADDR);
+ set.add(StandardSocketOptions.SO_LINGER);
+ set.add(StandardSocketOptions.TCP_NODELAY);
// additional options required by socket adaptor
- set.add(StandardSocketOption.IP_TOS);
+ set.add(StandardSocketOptions.IP_TOS);
set.add(ExtendedSocketOption.SO_OOBINLINE);
return Collections.unmodifiableSet(set);
}
--- a/jdk/src/share/classes/sun/nio/fs/AbstractPoller.java Mon May 09 08:58:00 2011 -0700
+++ b/jdk/src/share/classes/sun/nio/fs/AbstractPoller.java Mon May 09 18:45:33 2011 +0100
@@ -105,16 +105,16 @@
Set<WatchEvent.Kind<?>> eventSet = new HashSet<>(events.length);
for (WatchEvent.Kind<?> event: events) {
// standard events
- if (event == StandardWatchEventKind.ENTRY_CREATE ||
- event == StandardWatchEventKind.ENTRY_MODIFY ||
- event == StandardWatchEventKind.ENTRY_DELETE)
+ if (event == StandardWatchEventKinds.ENTRY_CREATE ||
+ event == StandardWatchEventKinds.ENTRY_MODIFY ||
+ event == StandardWatchEventKinds.ENTRY_DELETE)
{
eventSet.add(event);
continue;
}
// OVERFLOW is ignored
- if (event == StandardWatchEventKind.OVERFLOW) {
+ if (event == StandardWatchEventKinds.OVERFLOW) {
if (events.length == 1)
throw new IllegalArgumentException("No events to register");
continue;
--- a/jdk/src/share/classes/sun/nio/fs/AbstractWatchKey.java Mon May 09 08:58:00 2011 -0700
+++ b/jdk/src/share/classes/sun/nio/fs/AbstractWatchKey.java Mon May 09 18:45:33 2011 +0100
@@ -42,8 +42,8 @@
/**
* Special event to signal overflow
*/
- static final Event<Void> OVERFLOW_EVENT =
- new Event<Void>(StandardWatchEventKind.OVERFLOW, null);
+ static final Event<Object> OVERFLOW_EVENT =
+ new Event<Object>(StandardWatchEventKinds.OVERFLOW, null);
/**
* Possible key states
@@ -103,14 +103,14 @@
*/
@SuppressWarnings("unchecked")
final void signalEvent(WatchEvent.Kind<?> kind, Object context) {
- boolean isModify = (kind == StandardWatchEventKind.ENTRY_MODIFY);
+ boolean isModify = (kind == StandardWatchEventKinds.ENTRY_MODIFY);
synchronized (this) {
int size = events.size();
if (size > 0) {
// if the previous event is an OVERFLOW event or this is a
// repeated event then we simply increment the counter
WatchEvent<?> prev = events.get(size-1);
- if ((prev.kind() == StandardWatchEventKind.OVERFLOW) ||
+ if ((prev.kind() == StandardWatchEventKinds.OVERFLOW) ||
((kind == prev.kind() &&
Objects.equals(context, prev.context()))))
{
@@ -124,7 +124,7 @@
if (isModify) {
WatchEvent<?> ev = lastModifyEvents.get(context);
if (ev != null) {
- assert ev.kind() == StandardWatchEventKind.ENTRY_MODIFY;
+ assert ev.kind() == StandardWatchEventKinds.ENTRY_MODIFY;
((Event<?>)ev).increment();
return;
}
@@ -138,7 +138,7 @@
// if the list has reached the limit then drop pending events
// and queue an OVERFLOW event
if (size >= MAX_EVENT_LIST_SIZE) {
- kind = StandardWatchEventKind.OVERFLOW;
+ kind = StandardWatchEventKinds.OVERFLOW;
isModify = false;
context = null;
}
@@ -149,7 +149,7 @@
new Event<Object>((WatchEvent.Kind<Object>)kind, context);
if (isModify) {
lastModifyEvents.put(context, ev);
- } else if (kind == StandardWatchEventKind.OVERFLOW) {
+ } else if (kind == StandardWatchEventKinds.OVERFLOW) {
// drop all pending events
events.clear();
lastModifyEvents.clear();
--- a/jdk/src/share/classes/sun/nio/fs/PollingWatchService.java Mon May 09 08:58:00 2011 -0700
+++ b/jdk/src/share/classes/sun/nio/fs/PollingWatchService.java Mon May 09 18:45:33 2011 +0100
@@ -80,16 +80,16 @@
new HashSet<WatchEvent.Kind<?>>(events.length);
for (WatchEvent.Kind<?> event: events) {
// standard events
- if (event == StandardWatchEventKind.ENTRY_CREATE ||
- event == StandardWatchEventKind.ENTRY_MODIFY ||
- event == StandardWatchEventKind.ENTRY_DELETE)
+ if (event == StandardWatchEventKinds.ENTRY_CREATE ||
+ event == StandardWatchEventKinds.ENTRY_MODIFY ||
+ event == StandardWatchEventKinds.ENTRY_DELETE)
{
eventSet.add(event);
continue;
}
// OVERFLOW is ignored
- if (event == StandardWatchEventKind.OVERFLOW) {
+ if (event == StandardWatchEventKinds.OVERFLOW) {
if (events.length == 1)
throw new IllegalArgumentException("No events to register");
continue;
@@ -355,16 +355,16 @@
new CacheEntry(lastModified, tickCount));
// queue ENTRY_CREATE if event enabled
- if (events.contains(StandardWatchEventKind.ENTRY_CREATE)) {
- signalEvent(StandardWatchEventKind.ENTRY_CREATE, entry.getFileName());
+ if (events.contains(StandardWatchEventKinds.ENTRY_CREATE)) {
+ signalEvent(StandardWatchEventKinds.ENTRY_CREATE, entry.getFileName());
continue;
} else {
// if ENTRY_CREATE is not enabled and ENTRY_MODIFY is
// enabled then queue event to avoid missing out on
// modifications to the file immediately after it is
// created.
- if (events.contains(StandardWatchEventKind.ENTRY_MODIFY)) {
- signalEvent(StandardWatchEventKind.ENTRY_MODIFY, entry.getFileName());
+ if (events.contains(StandardWatchEventKinds.ENTRY_MODIFY)) {
+ signalEvent(StandardWatchEventKinds.ENTRY_MODIFY, entry.getFileName());
}
}
continue;
@@ -372,8 +372,8 @@
// check if file has changed
if (e.lastModified != lastModified) {
- if (events.contains(StandardWatchEventKind.ENTRY_MODIFY)) {
- signalEvent(StandardWatchEventKind.ENTRY_MODIFY,
+ if (events.contains(StandardWatchEventKinds.ENTRY_MODIFY)) {
+ signalEvent(StandardWatchEventKinds.ENTRY_MODIFY,
entry.getFileName());
}
}
@@ -403,8 +403,8 @@
Path name = mapEntry.getKey();
// remove from map and queue delete event (if enabled)
i.remove();
- if (events.contains(StandardWatchEventKind.ENTRY_DELETE)) {
- signalEvent(StandardWatchEventKind.ENTRY_DELETE, name);
+ if (events.contains(StandardWatchEventKinds.ENTRY_DELETE)) {
+ signalEvent(StandardWatchEventKinds.ENTRY_DELETE, name);
}
}
}
--- a/jdk/src/share/native/sun/nio/ch/genSocketOptionRegistry.c Mon May 09 08:58:00 2011 -0700
+++ b/jdk/src/share/native/sun/nio/ch/genSocketOptionRegistry.c Mon May 09 18:45:33 2011 +0100
@@ -63,7 +63,7 @@
out("// AUTOMATICALLY GENERATED FILE - DO NOT EDIT ");
out("package sun.nio.ch; ");
out("import java.net.SocketOption; ");
- out("import java.net.StandardSocketOption; ");
+ out("import java.net.StandardSocketOptions; ");
out("import java.net.ProtocolFamily; ");
out("import java.net.StandardProtocolFamily; ");
out("import java.util.Map; ");
@@ -73,7 +73,7 @@
out(" private static class RegistryKey { ");
out(" private final SocketOption<?> name; ");
out(" private final ProtocolFamily family; ");
- out(" RegistryKey(SocketOption<?> name, ProtocolFamily family) { ");
+ out(" RegistryKey(SocketOption<?> name, ProtocolFamily family) { ");
out(" this.name = name; ");
out(" this.family = family; ");
out(" } ");
@@ -95,23 +95,23 @@
out(" Map<RegistryKey,OptionKey> map = ");
out(" new HashMap<RegistryKey,OptionKey>(); ");
- emit_unspec("StandardSocketOption.SO_BROADCAST", SOL_SOCKET, SO_BROADCAST);
- emit_unspec("StandardSocketOption.SO_KEEPALIVE", SOL_SOCKET, SO_KEEPALIVE);
- emit_unspec("StandardSocketOption.SO_LINGER", SOL_SOCKET, SO_LINGER);
- emit_unspec("StandardSocketOption.SO_SNDBUF", SOL_SOCKET, SO_SNDBUF);
- emit_unspec("StandardSocketOption.SO_RCVBUF", SOL_SOCKET, SO_RCVBUF);
- emit_unspec("StandardSocketOption.SO_REUSEADDR", SOL_SOCKET, SO_REUSEADDR);
- emit_unspec("StandardSocketOption.TCP_NODELAY", IPPROTO_TCP, TCP_NODELAY);
+ emit_unspec("StandardSocketOptions.SO_BROADCAST", SOL_SOCKET, SO_BROADCAST);
+ emit_unspec("StandardSocketOptions.SO_KEEPALIVE", SOL_SOCKET, SO_KEEPALIVE);
+ emit_unspec("StandardSocketOptions.SO_LINGER", SOL_SOCKET, SO_LINGER);
+ emit_unspec("StandardSocketOptions.SO_SNDBUF", SOL_SOCKET, SO_SNDBUF);
+ emit_unspec("StandardSocketOptions.SO_RCVBUF", SOL_SOCKET, SO_RCVBUF);
+ emit_unspec("StandardSocketOptions.SO_REUSEADDR", SOL_SOCKET, SO_REUSEADDR);
+ emit_unspec("StandardSocketOptions.TCP_NODELAY", IPPROTO_TCP, TCP_NODELAY);
- emit_inet("StandardSocketOption.IP_TOS", IPPROTO_IP, IP_TOS);
- emit_inet("StandardSocketOption.IP_MULTICAST_IF", IPPROTO_IP, IP_MULTICAST_IF);
- emit_inet("StandardSocketOption.IP_MULTICAST_TTL", IPPROTO_IP, IP_MULTICAST_TTL);
- emit_inet("StandardSocketOption.IP_MULTICAST_LOOP", IPPROTO_IP, IP_MULTICAST_LOOP);
+ emit_inet("StandardSocketOptions.IP_TOS", IPPROTO_IP, IP_TOS);
+ emit_inet("StandardSocketOptions.IP_MULTICAST_IF", IPPROTO_IP, IP_MULTICAST_IF);
+ emit_inet("StandardSocketOptions.IP_MULTICAST_TTL", IPPROTO_IP, IP_MULTICAST_TTL);
+ emit_inet("StandardSocketOptions.IP_MULTICAST_LOOP", IPPROTO_IP, IP_MULTICAST_LOOP);
#ifdef AF_INET6
- emit_inet6("StandardSocketOption.IP_MULTICAST_IF", IPPROTO_IPV6, IPV6_MULTICAST_IF);
- emit_inet6("StandardSocketOption.IP_MULTICAST_TTL", IPPROTO_IPV6, IPV6_MULTICAST_HOPS);
- emit_inet6("StandardSocketOption.IP_MULTICAST_LOOP", IPPROTO_IPV6, IPV6_MULTICAST_LOOP);
+ emit_inet6("StandardSocketOptions.IP_MULTICAST_IF", IPPROTO_IPV6, IPV6_MULTICAST_IF);
+ emit_inet6("StandardSocketOptions.IP_MULTICAST_TTL", IPPROTO_IPV6, IPV6_MULTICAST_HOPS);
+ emit_inet6("StandardSocketOptions.IP_MULTICAST_LOOP", IPPROTO_IPV6, IPV6_MULTICAST_LOOP);
#endif
emit_unspec("ExtendedSocketOption.SO_OOBINLINE", SOL_SOCKET, SO_OOBINLINE);
--- a/jdk/src/share/sample/nio/chatserver/ChatServer.java Mon May 09 08:58:00 2011 -0700
+++ b/jdk/src/share/sample/nio/chatserver/ChatServer.java Mon May 09 18:45:33 2011 +0100
@@ -32,7 +32,7 @@
import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.SocketAddress;
-import java.net.StandardSocketOption;
+import java.net.StandardSocketOptions;
import java.nio.channels.*;
import java.util.*;
import java.util.concurrent.Executors;
@@ -105,7 +105,7 @@
*/
private AsynchronousServerSocketChannel createListener(AsynchronousChannelGroup channelGroup) throws IOException {
final AsynchronousServerSocketChannel listener = openChannel(channelGroup);
- listener.setOption(StandardSocketOption.SO_REUSEADDR, true);
+ listener.setOption(StandardSocketOptions.SO_REUSEADDR, true);
listener.bind(new InetSocketAddress(port));
return listener;
}
@@ -123,7 +123,7 @@
private void handleNewConnection(AsynchronousSocketChannel channel) {
Client client = new Client(channel, new ClientReader(this, new NameReader(this)));
try {
- channel.setOption(StandardSocketOption.TCP_NODELAY, true);
+ channel.setOption(StandardSocketOptions.TCP_NODELAY, true);
} catch (IOException e) {
// ignore
}
--- a/jdk/src/share/sample/nio/file/WatchDir.java Mon May 09 08:58:00 2011 -0700
+++ b/jdk/src/share/sample/nio/file/WatchDir.java Mon May 09 18:45:33 2011 +0100
@@ -30,7 +30,7 @@
*/
import java.nio.file.*;
-import static java.nio.file.StandardWatchEventKind.*;
+import static java.nio.file.StandardWatchEventKinds.*;
import static java.nio.file.LinkOption.*;
import java.nio.file.attribute.*;
import java.io.IOException;
--- a/jdk/src/share/sample/nio/multicast/Reader.java Mon May 09 08:58:00 2011 -0700
+++ b/jdk/src/share/sample/nio/multicast/Reader.java Mon May 09 18:45:33 2011 +0100
@@ -96,7 +96,7 @@
family = StandardProtocolFamily.INET6;
}
DatagramChannel dc = DatagramChannel.open(family)
- .setOption(StandardSocketOption.SO_REUSEADDR, true)
+ .setOption(StandardSocketOptions.SO_REUSEADDR, true)
.bind(new InetSocketAddress(target.port()));
if (includeList.isEmpty()) {
--- a/jdk/src/share/sample/nio/multicast/Sender.java Mon May 09 08:58:00 2011 -0700
+++ b/jdk/src/share/sample/nio/multicast/Sender.java Mon May 09 18:45:33 2011 +0100
@@ -59,7 +59,7 @@
family = StandardProtocolFamily.INET6;
DatagramChannel dc = DatagramChannel.open(family).bind(new InetSocketAddress(0));
if (target.interf() != null) {
- dc.setOption(StandardSocketOption.IP_MULTICAST_IF, target.interf());
+ dc.setOption(StandardSocketOptions.IP_MULTICAST_IF, target.interf());
}
// send multicast packet
--- a/jdk/src/solaris/classes/sun/nio/ch/SctpChannelImpl.java Mon May 09 08:58:00 2011 -0700
+++ b/jdk/src/solaris/classes/sun/nio/ch/SctpChannelImpl.java Mon May 09 18:45:33 2011 +0100
@@ -55,7 +55,7 @@
import com.sun.nio.sctp.SctpSocketOption;
import sun.nio.ch.PollArrayWrapper;
import sun.nio.ch.SelChImpl;
-import static com.sun.nio.sctp.SctpStandardSocketOption.*;
+import static com.sun.nio.sctp.SctpStandardSocketOptions.*;
import static sun.nio.ch.SctpResultContainer.SEND_FAILED;
import static sun.nio.ch.SctpResultContainer.ASSOCIATION_CHANGED;
import static sun.nio.ch.SctpResultContainer.PEER_ADDRESS_CHANGED;
--- a/jdk/src/solaris/classes/sun/nio/ch/SctpMultiChannelImpl.java Mon May 09 08:58:00 2011 -0700
+++ b/jdk/src/solaris/classes/sun/nio/ch/SctpMultiChannelImpl.java Mon May 09 18:45:33 2011 +0100
@@ -53,7 +53,7 @@
import com.sun.nio.sctp.SctpChannel;
import com.sun.nio.sctp.SctpMultiChannel;
import com.sun.nio.sctp.SctpSocketOption;
-import static com.sun.nio.sctp.SctpStandardSocketOption.*;
+import static com.sun.nio.sctp.SctpStandardSocketOptions.*;
import static sun.nio.ch.SctpResultContainer.*;
/**
--- a/jdk/src/solaris/classes/sun/nio/ch/SctpNet.java Mon May 09 08:58:00 2011 -0700
+++ b/jdk/src/solaris/classes/sun/nio/ch/SctpNet.java Mon May 09 18:45:33 2011 +0100
@@ -35,7 +35,7 @@
import java.security.AccessController;
import sun.security.action.GetPropertyAction;
import com.sun.nio.sctp.SctpSocketOption;
-import static com.sun.nio.sctp.SctpStandardSocketOption.*;
+import static com.sun.nio.sctp.SctpStandardSocketOptions.*;
public class SctpNet {
static final String osName = AccessController.doPrivileged(
--- a/jdk/src/solaris/classes/sun/nio/ch/SctpServerChannelImpl.java Mon May 09 08:58:00 2011 -0700
+++ b/jdk/src/solaris/classes/sun/nio/ch/SctpServerChannelImpl.java Mon May 09 18:45:33 2011 +0100
@@ -40,7 +40,7 @@
import com.sun.nio.sctp.SctpChannel;
import com.sun.nio.sctp.SctpServerChannel;
import com.sun.nio.sctp.SctpSocketOption;
-import com.sun.nio.sctp.SctpStandardSocketOption;
+import com.sun.nio.sctp.SctpStandardSocketOptions;
/**
* An implementation of SctpServerChannel
@@ -386,7 +386,7 @@
private static Set<SctpSocketOption<?>> defaultOptions() {
HashSet<SctpSocketOption<?>> set = new HashSet<SctpSocketOption<?>>(1);
- set.add(SctpStandardSocketOption.SCTP_INIT_MAXSTREAMS);
+ set.add(SctpStandardSocketOptions.SCTP_INIT_MAXSTREAMS);
return Collections.unmodifiableSet(set);
}
}
--- a/jdk/src/solaris/classes/sun/nio/fs/LinuxWatchService.java Mon May 09 08:58:00 2011 -0700
+++ b/jdk/src/solaris/classes/sun/nio/fs/LinuxWatchService.java Mon May 09 18:45:33 2011 +0100
@@ -210,15 +210,15 @@
int mask = 0;
for (WatchEvent.Kind<?> event: events) {
- if (event == StandardWatchEventKind.ENTRY_CREATE) {
+ if (event == StandardWatchEventKinds.ENTRY_CREATE) {
mask |= IN_CREATE | IN_MOVED_TO;
continue;
}
- if (event == StandardWatchEventKind.ENTRY_DELETE) {
+ if (event == StandardWatchEventKinds.ENTRY_DELETE) {
mask |= IN_DELETE | IN_MOVED_FROM;
continue;
}
- if (event == StandardWatchEventKind.ENTRY_MODIFY) {
+ if (event == StandardWatchEventKinds.ENTRY_MODIFY) {
mask |= IN_MODIFY | IN_ATTRIB;
continue;
}
@@ -378,17 +378,17 @@
*/
private WatchEvent.Kind<?> maskToEventKind(int mask) {
if ((mask & IN_MODIFY) > 0)
- return StandardWatchEventKind.ENTRY_MODIFY;
+ return StandardWatchEventKinds.ENTRY_MODIFY;
if ((mask & IN_ATTRIB) > 0)
- return StandardWatchEventKind.ENTRY_MODIFY;
+ return StandardWatchEventKinds.ENTRY_MODIFY;
if ((mask & IN_CREATE) > 0)
- return StandardWatchEventKind.ENTRY_CREATE;
+ return StandardWatchEventKinds.ENTRY_CREATE;
if ((mask & IN_MOVED_TO) > 0)
- return StandardWatchEventKind.ENTRY_CREATE;
+ return StandardWatchEventKinds.ENTRY_CREATE;
if ((mask & IN_DELETE) > 0)
- return StandardWatchEventKind.ENTRY_DELETE;
+ return StandardWatchEventKinds.ENTRY_DELETE;
if ((mask & IN_MOVED_FROM) > 0)
- return StandardWatchEventKind.ENTRY_DELETE;
+ return StandardWatchEventKinds.ENTRY_DELETE;
return null;
}
@@ -400,7 +400,7 @@
if ((mask & IN_Q_OVERFLOW) > 0) {
for (Map.Entry<Integer,LinuxWatchKey> entry: wdToKey.entrySet()) {
entry.getValue()
- .signalEvent(StandardWatchEventKind.OVERFLOW, null);
+ .signalEvent(StandardWatchEventKinds.OVERFLOW, null);
}
return;
}
--- a/jdk/src/solaris/classes/sun/nio/fs/SolarisWatchService.java Mon May 09 08:58:00 2011 -0700
+++ b/jdk/src/solaris/classes/sun/nio/fs/SolarisWatchService.java Mon May 09 18:45:33 2011 +0100
@@ -486,7 +486,7 @@
void processDirectoryEvents(SolarisWatchKey key, int mask) {
if ((mask & (FILE_MODIFIED | FILE_ATTRIB)) != 0) {
registerChildren(key.getDirectory(), key,
- key.events().contains(StandardWatchEventKind.ENTRY_CREATE));
+ key.events().contains(StandardWatchEventKinds.ENTRY_CREATE));
}
}
@@ -504,14 +504,14 @@
// entry modified
if (((mask & (FILE_MODIFIED | FILE_ATTRIB)) != 0) &&
- events.contains(StandardWatchEventKind.ENTRY_MODIFY))
+ events.contains(StandardWatchEventKinds.ENTRY_MODIFY))
{
- key.signalEvent(StandardWatchEventKind.ENTRY_MODIFY, node.name());
+ key.signalEvent(StandardWatchEventKinds.ENTRY_MODIFY, node.name());
}
// entry removed
if (((mask & (FILE_REMOVED)) != 0) &&
- events.contains(StandardWatchEventKind.ENTRY_DELETE))
+ events.contains(StandardWatchEventKinds.ENTRY_DELETE))
{
// Due to 6636438/6636412 we may get a remove event for cases
// where a rmdir/unlink/rename is attempted but fails. Until
@@ -527,7 +527,7 @@
} catch (UnixException x) { }
if (removed)
- key.signalEvent(StandardWatchEventKind.ENTRY_DELETE, node.name());
+ key.signalEvent(StandardWatchEventKinds.ENTRY_DELETE, node.name());
}
return false;
}
@@ -547,7 +547,7 @@
// if the ENTRY_MODIFY event is not enabled then we don't need
// modification events for entries in the directory
int events = FILE_NOFOLLOW;
- if (parent.events().contains(StandardWatchEventKind.ENTRY_MODIFY))
+ if (parent.events().contains(StandardWatchEventKinds.ENTRY_MODIFY))
events |= (FILE_MODIFIED | FILE_ATTRIB);
DirectoryStream<Path> stream = null;
@@ -567,7 +567,7 @@
// send ENTRY_CREATE if enabled
if (sendEvents) {
- parent.signalEvent(StandardWatchEventKind.ENTRY_CREATE, name);
+ parent.signalEvent(StandardWatchEventKinds.ENTRY_CREATE, name);
}
// register it
@@ -602,12 +602,12 @@
// update events, rembering if ENTRY_MODIFY was previously
// enabled or disabled.
boolean wasModifyEnabled = key.events()
- .contains(StandardWatchEventKind.ENTRY_MODIFY);
+ .contains(StandardWatchEventKinds.ENTRY_MODIFY);
key.setEvents(events);
// check if ENTRY_MODIFY has changed
boolean isModifyEnabled = events
- .contains(StandardWatchEventKind.ENTRY_MODIFY);
+ .contains(StandardWatchEventKinds.ENTRY_MODIFY);
if (wasModifyEnabled == isModifyEnabled) {
return;
}
--- a/jdk/src/windows/classes/sun/nio/fs/WindowsWatchService.java Mon May 09 08:58:00 2011 -0700
+++ b/jdk/src/windows/classes/sun/nio/fs/WindowsWatchService.java Mon May 09 18:45:33 2011 +0100
@@ -464,15 +464,15 @@
{
switch (action) {
case FILE_ACTION_MODIFIED :
- return StandardWatchEventKind.ENTRY_MODIFY;
+ return StandardWatchEventKinds.ENTRY_MODIFY;
case FILE_ACTION_ADDED :
case FILE_ACTION_RENAMED_NEW_NAME :
- return StandardWatchEventKind.ENTRY_CREATE;
+ return StandardWatchEventKinds.ENTRY_CREATE;
case FILE_ACTION_REMOVED :
case FILE_ACTION_RENAMED_OLD_NAME :
- return StandardWatchEventKind.ENTRY_DELETE;
+ return StandardWatchEventKinds.ENTRY_DELETE;
default :
return null; // action not recognized
@@ -548,7 +548,7 @@
if (info.error() != 0) {
// buffer overflow
if (info.error() == ERROR_NOTIFY_ENUM_DIR) {
- key.signalEvent(StandardWatchEventKind.OVERFLOW, null);
+ key.signalEvent(StandardWatchEventKinds.OVERFLOW, null);
} else {
// other error so cancel key
implCancelKey(key);
@@ -562,7 +562,7 @@
processEvents(key, info.bytesTransferred());
} else {
// insufficient buffer size
- key.signalEvent(StandardWatchEventKind.OVERFLOW, null);
+ key.signalEvent(StandardWatchEventKinds.OVERFLOW, null);
}
// start read for next batch of changes
--- a/jdk/test/com/sun/nio/sctp/SctpChannel/SocketOptionTests.java Mon May 09 08:58:00 2011 -0700
+++ b/jdk/test/com/sun/nio/sctp/SctpChannel/SocketOptionTests.java Mon May 09 18:45:33 2011 +0100
@@ -40,7 +40,7 @@
import com.sun.nio.sctp.SctpSocketOption;
import java.security.AccessController;
import sun.security.action.GetPropertyAction;
-import static com.sun.nio.sctp.SctpStandardSocketOption.*;
+import static com.sun.nio.sctp.SctpStandardSocketOptions.*;
import static java.lang.System.out;
public class SocketOptionTests {
--- a/jdk/test/com/sun/nio/sctp/SctpMultiChannel/SocketOptionTests.java Mon May 09 08:58:00 2011 -0700
+++ b/jdk/test/com/sun/nio/sctp/SctpMultiChannel/SocketOptionTests.java Mon May 09 18:45:33 2011 +0100
@@ -48,7 +48,7 @@
import com.sun.nio.sctp.SctpSocketOption;
import java.security.AccessController;
import sun.security.action.GetPropertyAction;
-import static com.sun.nio.sctp.SctpStandardSocketOption.*;
+import static com.sun.nio.sctp.SctpStandardSocketOptions.*;
import static java.lang.System.out;
public class SocketOptionTests {
--- a/jdk/test/java/nio/channels/AsynchronousServerSocketChannel/Basic.java Mon May 09 08:58:00 2011 -0700
+++ b/jdk/test/java/nio/channels/AsynchronousServerSocketChannel/Basic.java Mon May 09 18:45:33 2011 +0100
@@ -29,7 +29,7 @@
import java.nio.channels.*;
import java.net.*;
-import static java.net.StandardSocketOption.*;
+import static java.net.StandardSocketOptions.*;
import java.io.IOException;
import java.util.Set;
import java.util.concurrent.ExecutionException;
--- a/jdk/test/java/nio/channels/AsynchronousSocketChannel/Basic.java Mon May 09 08:58:00 2011 -0700
+++ b/jdk/test/java/nio/channels/AsynchronousSocketChannel/Basic.java Mon May 09 18:45:33 2011 +0100
@@ -29,7 +29,7 @@
import java.nio.ByteBuffer;
import java.nio.channels.*;
-import static java.net.StandardSocketOption.*;
+import static java.net.StandardSocketOptions.*;
import java.net.*;
import java.util.Random;
import java.util.concurrent.*;
@@ -383,7 +383,7 @@
// write bytes and close connection
SocketChannel sc = server.accept();
ByteBuffer src = genBuffer();
- sc.setOption(StandardSocketOption.SO_SNDBUF, src.remaining());
+ sc.setOption(StandardSocketOptions.SO_SNDBUF, src.remaining());
while (src.hasRemaining())
sc.write(src);
sc.close();
--- a/jdk/test/java/nio/channels/DatagramChannel/BasicMulticastTests.java Mon May 09 08:58:00 2011 -0700
+++ b/jdk/test/java/nio/channels/DatagramChannel/BasicMulticastTests.java Mon May 09 18:45:33 2011 +0100
@@ -52,7 +52,7 @@
StandardProtocolFamily.INET : StandardProtocolFamily.INET6;
DatagramChannel dc = DatagramChannel.open(family)
- .setOption(StandardSocketOption.SO_REUSEADDR, true)
+ .setOption(StandardSocketOptions.SO_REUSEADDR, true)
.bind(new InetSocketAddress(source, 0));
// check existing key is returned
@@ -115,7 +115,7 @@
System.out.println("Exception Tests");
DatagramChannel dc = DatagramChannel.open(StandardProtocolFamily.INET)
- .setOption(StandardSocketOption.SO_REUSEADDR, true)
+ .setOption(StandardSocketOptions.SO_REUSEADDR, true)
.bind(new InetSocketAddress(0));
InetAddress group = InetAddress.getByName("225.4.5.6");
--- a/jdk/test/java/nio/channels/DatagramChannel/MulticastSendReceiveTests.java Mon May 09 08:58:00 2011 -0700
+++ b/jdk/test/java/nio/channels/DatagramChannel/MulticastSendReceiveTests.java Mon May 09 18:45:33 2011 +0100
@@ -59,7 +59,7 @@
StandardProtocolFamily.INET6 : StandardProtocolFamily.INET;
DatagramChannel dc = DatagramChannel.open(family)
.bind(new InetSocketAddress(local, 0))
- .setOption(StandardSocketOption.IP_MULTICAST_IF, nif);
+ .setOption(StandardSocketOptions.IP_MULTICAST_IF, nif);
int id = rand.nextInt();
byte[] msg = Integer.toString(id).getBytes("UTF-8");
ByteBuffer buf = ByteBuffer.wrap(msg);
@@ -146,7 +146,7 @@
System.out.format("\nTest DatagramChannel to %s socket\n", family.name());
try (DatagramChannel dc = (family == UNSPEC) ?
DatagramChannel.open() : DatagramChannel.open(family)) {
- dc.setOption(StandardSocketOption.SO_REUSEADDR, true)
+ dc.setOption(StandardSocketOptions.SO_REUSEADDR, true)
.bind(new InetSocketAddress(0));
// join group
--- a/jdk/test/java/nio/channels/DatagramChannel/SocketOptionTests.java Mon May 09 08:58:00 2011 -0700
+++ b/jdk/test/java/nio/channels/DatagramChannel/SocketOptionTests.java Mon May 09 18:45:33 2011 +0100
@@ -31,7 +31,7 @@
import java.net.*;
import java.io.IOException;
import java.util.*;
-import static java.net.StandardSocketOption.*;
+import static java.net.StandardSocketOptions.*;
public class SocketOptionTests {
--- a/jdk/test/java/nio/channels/ServerSocketChannel/SocketOptionTests.java Mon May 09 08:58:00 2011 -0700
+++ b/jdk/test/java/nio/channels/ServerSocketChannel/SocketOptionTests.java Mon May 09 18:45:33 2011 +0100
@@ -32,7 +32,7 @@
import java.net.*;
import java.io.IOException;
import java.util.*;
-import static java.net.StandardSocketOption.*;
+import static java.net.StandardSocketOptions.*;
public class SocketOptionTests {
--- a/jdk/test/java/nio/channels/SocketChannel/Shutdown.java Mon May 09 08:58:00 2011 -0700
+++ b/jdk/test/java/nio/channels/SocketChannel/Shutdown.java Mon May 09 18:45:33 2011 +0100
@@ -39,7 +39,7 @@
static void acceptAndReset(ServerSocketChannel ssc) throws IOException {
SocketChannel peer = ssc.accept();
try {
- peer.setOption(StandardSocketOption.SO_LINGER, 0);
+ peer.setOption(StandardSocketOptions.SO_LINGER, 0);
peer.configureBlocking(false);
peer.write(ByteBuffer.wrap(new byte[128*1024]));
} finally {
--- a/jdk/test/java/nio/channels/SocketChannel/SocketOptionTests.java Mon May 09 08:58:00 2011 -0700
+++ b/jdk/test/java/nio/channels/SocketChannel/SocketOptionTests.java Mon May 09 18:45:33 2011 +0100
@@ -32,7 +32,7 @@
import java.net.*;
import java.io.IOException;
import java.util.*;
-import static java.net.StandardSocketOption.*;
+import static java.net.StandardSocketOptions.*;
public class SocketOptionTests {
--- a/jdk/test/java/nio/file/Files/CheckPermissions.java Mon May 09 08:58:00 2011 -0700
+++ b/jdk/test/java/nio/file/Files/CheckPermissions.java Mon May 09 18:45:33 2011 +0100
@@ -540,7 +540,7 @@
try (WatchService watcher = FileSystems.getDefault().newWatchService()) {
prepare();
- testdir.register(watcher, StandardWatchEventKind.ENTRY_DELETE);
+ testdir.register(watcher, StandardWatchEventKinds.ENTRY_DELETE);
assertCheckRead(testdir);
}
--- a/jdk/test/java/nio/file/WatchService/Basic.java Mon May 09 08:58:00 2011 -0700
+++ b/jdk/test/java/nio/file/WatchService/Basic.java Mon May 09 18:45:33 2011 +0100
@@ -29,7 +29,7 @@
*/
import java.nio.file.*;
-import static java.nio.file.StandardWatchEventKind.*;
+import static java.nio.file.StandardWatchEventKinds.*;
import java.nio.file.attribute.*;
import java.io.*;
import java.util.*;
@@ -100,7 +100,7 @@
// remove key and check that we got the ENTRY_CREATE event
takeExpectedKey(watcher, myKey);
checkExpectedEvent(myKey.pollEvents(),
- StandardWatchEventKind.ENTRY_CREATE, name);
+ StandardWatchEventKinds.ENTRY_CREATE, name);
System.out.println("reset key");
if (!myKey.reset())
@@ -121,7 +121,7 @@
Files.delete(file);
takeExpectedKey(watcher, myKey);
checkExpectedEvent(myKey.pollEvents(),
- StandardWatchEventKind.ENTRY_DELETE, name);
+ StandardWatchEventKinds.ENTRY_DELETE, name);
System.out.println("reset key");
if (!myKey.reset())
@@ -149,7 +149,7 @@
// remove key and check that we got the ENTRY_MODIFY event
takeExpectedKey(watcher, myKey);
checkExpectedEvent(myKey.pollEvents(),
- StandardWatchEventKind.ENTRY_MODIFY, name);
+ StandardWatchEventKinds.ENTRY_MODIFY, name);
System.out.println("OKAY");
// done
@@ -424,7 +424,7 @@
// check that key1 got ENTRY_CREATE
takeExpectedKey(watcher1, key1);
checkExpectedEvent(key1.pollEvents(),
- StandardWatchEventKind.ENTRY_CREATE, name2);
+ StandardWatchEventKinds.ENTRY_CREATE, name2);
// check that key2 got zero events
WatchKey key = watcher2.poll();
@@ -437,7 +437,7 @@
// check that key2 got ENTRY_DELETE
takeExpectedKey(watcher2, key2);
checkExpectedEvent(key2.pollEvents(),
- StandardWatchEventKind.ENTRY_DELETE, name1);
+ StandardWatchEventKinds.ENTRY_DELETE, name1);
// check that key1 got zero events
key = watcher1.poll();
@@ -458,7 +458,7 @@
Files.createFile(file1);
takeExpectedKey(watcher2, key2);
checkExpectedEvent(key2.pollEvents(),
- StandardWatchEventKind.ENTRY_CREATE, name1);
+ StandardWatchEventKinds.ENTRY_CREATE, name1);
System.out.println("OKAY");
--- a/jdk/test/java/nio/file/WatchService/FileTreeModifier.java Mon May 09 08:58:00 2011 -0700
+++ b/jdk/test/java/nio/file/WatchService/FileTreeModifier.java Mon May 09 18:45:33 2011 +0100
@@ -28,7 +28,7 @@
*/
import java.nio.file.*;
-import static java.nio.file.StandardWatchEventKind.*;
+import static java.nio.file.StandardWatchEventKinds.*;
import java.io.IOException;
import java.io.OutputStream;
import java.util.*;
--- a/jdk/test/java/nio/file/WatchService/LotsOfEvents.java Mon May 09 08:58:00 2011 -0700
+++ b/jdk/test/java/nio/file/WatchService/LotsOfEvents.java Mon May 09 18:45:33 2011 +0100
@@ -29,7 +29,7 @@
*/
import java.nio.file.*;
-import static java.nio.file.StandardWatchEventKind.*;
+import static java.nio.file.StandardWatchEventKinds.*;
import java.io.IOException;
import java.io.OutputStream;
import java.util.*;
--- a/jdk/test/java/nio/file/WatchService/SensitivityModifier.java Mon May 09 08:58:00 2011 -0700
+++ b/jdk/test/java/nio/file/WatchService/SensitivityModifier.java Mon May 09 18:45:33 2011 +0100
@@ -29,7 +29,7 @@
*/
import java.nio.file.*;
-import static java.nio.file.StandardWatchEventKind.*;
+import static java.nio.file.StandardWatchEventKinds.*;
import java.io.OutputStream;
import java.io.IOException;
import java.util.Random;
--- a/jdk/test/java/nio/file/WatchService/WithSecurityManager.java Mon May 09 08:58:00 2011 -0700
+++ b/jdk/test/java/nio/file/WatchService/WithSecurityManager.java Mon May 09 18:45:33 2011 +0100
@@ -66,7 +66,7 @@
// attempt to register directory
try {
dir.register(dir.getFileSystem().newWatchService(),
- new WatchEvent.Kind<?>[]{ StandardWatchEventKind.ENTRY_CREATE },
+ new WatchEvent.Kind<?>[]{ StandardWatchEventKinds.ENTRY_CREATE },
modifiers);
if (expectedToFail)
throw new RuntimeException("SecurityException not thrown");