Class 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

Nested Classes

Modifier and Type Class Description
static class  SocketFlow.Status

Enumeration of the return values from the SO_FLOW_SLA socket option.

Fields

Modifier and Type Field Description
static int HIGH_PRIORITY
static int NORMAL_PRIORITY
static int UNSET

Methods

Modifier and Type Method Description
long bandwidth()

Returns this SocketFlow's bandwidth.

SocketFlow bandwidth​(long bandwidth)

Sets this SocketFlow's bandwidth.

static SocketFlow create()

Creates a new SocketFlow that can be used to set the SO_FLOW_SLA socket option and create a socket flow.

int priority()

Returns this SocketFlow's priority.

SocketFlow priority​(int priority)

Sets this SocketFlow's priority.

SocketFlow.Status status()

Returns the Status value of this SocketFlow.

Methods declared in class java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Fields

UNSET

@Native
public static final int UNSET
See Also:
Constant Field Values

NORMAL_PRIORITY

@Native
public static final int NORMAL_PRIORITY
See Also:
Constant Field Values

HIGH_PRIORITY

@Native
public static final int HIGH_PRIORITY
See Also:
Constant Field Values

Methods

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.

© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/11/docs/api/jdk.net/jdk/net/SocketFlow.html