Module jdk.net
Package jdk.net

Class SocketFlow

java.lang.Object
jdk.net.SocketFlow

public class SocketFlow
extends Object
Represents the service level properties for the platform specific socket option ExtendedSocketOptions.SO_FLOW_SLA.

The priority and bandwidth parameters must be set before setting the socket option.

When the SO_FLOW_SLA option is set then it may not take effect immediately. If the value of the socket option is obtained with getOption() then the status may be returned as INPROGRESS until it takes effect. The priority and bandwidth values are only valid when the status is returned as OK.

When a security manager is installed, a NetworkPermission is required to set or get this option.

Since:
1.8
  • Field Details

  • Method Details

    • create

      public static SocketFlow create()
      Creates a new SocketFlow that can be used to set the SO_FLOW_SLA socket option and create a socket flow.
    • priority

      public SocketFlow priority​(int priority)
      Sets this SocketFlow's priority. Must be either NORMAL_PRIORITY HIGH_PRIORITY. If not set, a flow's priority is normal.
      Throws:
      IllegalArgumentException - if priority is not NORMAL_PRIORITY or HIGH_PRIORITY.
    • bandwidth

      public SocketFlow bandwidth​(long bandwidth)
      Sets this SocketFlow's bandwidth. Must be greater than or equal to zero. A value of zero drops all packets for the socket.
      Throws:
      IllegalArgumentException - if bandwidth is less than zero.
    • priority

      public int priority()
      Returns this SocketFlow's priority.
    • bandwidth

      public long bandwidth()
      Returns this SocketFlow's bandwidth.
      Returns:
      this SocketFlow's bandwidth, or -1 if status is not OK.
    • status

      public SocketFlow.Status status()
      Returns the Status value of this SocketFlow. NO_STATUS is returned if the object was not used in a call to set or get the option.