Class DefaultSocketSessionConfig

All Implemented Interfaces:
IoSessionConfig, SocketSessionConfig

public class DefaultSocketSessionConfig extends AbstractSocketSessionConfig
A default implementation of SocketSessionConfig.
  • Field Details

    • DEFAULT_REUSE_ADDRESS

      private static final boolean DEFAULT_REUSE_ADDRESS
      See Also:
    • DEFAULT_TRAFFIC_CLASS

      private static final int DEFAULT_TRAFFIC_CLASS
      See Also:
    • DEFAULT_KEEP_ALIVE

      private static final boolean DEFAULT_KEEP_ALIVE
      See Also:
    • DEFAULT_OOB_INLINE

      private static final boolean DEFAULT_OOB_INLINE
      See Also:
    • DEFAULT_SO_LINGER

      private static final int DEFAULT_SO_LINGER
      See Also:
    • DEFAULT_TCP_NO_DELAY

      private static final boolean DEFAULT_TCP_NO_DELAY
      See Also:
    • parent

      protected IoService parent
    • defaultReuseAddress

      private boolean defaultReuseAddress
    • reuseAddress

      private boolean reuseAddress
    • receiveBufferSize

      private int receiveBufferSize
    • sendBufferSize

      private int sendBufferSize
    • trafficClass

      private int trafficClass
    • keepAlive

      private boolean keepAlive
    • oobInline

      private boolean oobInline
    • soLinger

      private int soLinger
    • tcpNoDelay

      private boolean tcpNoDelay
  • Constructor Details

    • DefaultSocketSessionConfig

      public DefaultSocketSessionConfig()
      Creates a new instance.
  • Method Details

    • init

      public void init(IoService parent)
      Initialize this configuration.
      Parameters:
      parent - The parent IoService.
    • isReuseAddress

      public boolean isReuseAddress()
      Returns:
      true if SO_REUSEADDR is enabled.
      See Also:
    • setReuseAddress

      public void setReuseAddress(boolean reuseAddress)
      Parameters:
      reuseAddress - Tells if SO_REUSEADDR is enabled or disabled
      See Also:
    • getReceiveBufferSize

      public int getReceiveBufferSize()
      Returns:
      the size of the receive buffer
      See Also:
    • setReceiveBufferSize

      public void setReceiveBufferSize(int receiveBufferSize)
      Parameters:
      receiveBufferSize - The size of the receive buffer
      See Also:
    • getSendBufferSize

      public int getSendBufferSize()
      Returns:
      the size of the send buffer
      See Also:
    • setSendBufferSize

      public void setSendBufferSize(int sendBufferSize)
      Parameters:
      sendBufferSize - The size of the send buffer
      See Also:
    • getTrafficClass

      public int getTrafficClass()
      Returns:
      the traffic class
      See Also:
    • setTrafficClass

      public void setTrafficClass(int trafficClass)
      Parameters:
      trafficClass - The traffic class to set, one of IPTOS_LOWCOST (0x02) IPTOS_RELIABILITY (0x04), IPTOS_THROUGHPUT (0x08) or IPTOS_LOWDELAY (0x10)
      See Also:
    • isKeepAlive

      public boolean isKeepAlive()
      Returns:
      true if SO_KEEPALIVE is enabled.
      See Also:
    • setKeepAlive

      public void setKeepAlive(boolean keepAlive)
      Parameters:
      keepAlive - if SO_KEEPALIVE is to be enabled
      See Also:
    • isOobInline

      public boolean isOobInline()
      Returns:
      true if SO_OOBINLINE is enabled.
      See Also:
    • setOobInline

      public void setOobInline(boolean oobInline)
      Parameters:
      oobInline - if SO_OOBINLINE is to be enabled
      See Also:
    • getSoLinger

      public int getSoLinger()
      Please note that enabling SO_LINGER in Java NIO can result in platform-dependent behavior and unexpected blocking of I/O thread.
      Returns:
      The value for SO_LINGER
      See Also:
    • setSoLinger

      public void setSoLinger(int soLinger)
      Please note that enabling SO_LINGER in Java NIO can result in platform-dependent behavior and unexpected blocking of I/O thread.
      Parameters:
      soLinger - Please specify a negative value to disable SO_LINGER.
      See Also:
    • isTcpNoDelay

      public boolean isTcpNoDelay()
      Returns:
      true if TCP_NODELAY is enabled.
      See Also:
    • setTcpNoDelay

      public void setTcpNoDelay(boolean tcpNoDelay)
      Parameters:
      tcpNoDelay - true if TCP_NODELAY is to be enabled
      See Also:
    • isKeepAliveChanged

      protected boolean isKeepAliveChanged()
      Overrides:
      isKeepAliveChanged in class AbstractSocketSessionConfig
      Returns:
      true if and only if the keepAlive property has been changed by its setter method. The system call related with the property is made only when this method returns true. By default, this method always returns true to simplify implementation of subclasses, but overriding the default behavior is always encouraged.
    • isOobInlineChanged

      protected boolean isOobInlineChanged()
      Overrides:
      isOobInlineChanged in class AbstractSocketSessionConfig
      Returns:
      true if and only if the oobInline property has been changed by its setter method. The system call related with the property is made only when this method returns true. By default, this method always returns true to simplify implementation of subclasses, but overriding the default behavior is always encouraged.
    • isReceiveBufferSizeChanged

      protected boolean isReceiveBufferSizeChanged()
      Overrides:
      isReceiveBufferSizeChanged in class AbstractSocketSessionConfig
      Returns:
      true if and only if the receiveBufferSize property has been changed by its setter method. The system call related with the property is made only when this method returns true. By default, this method always returns true to simplify implementation of subclasses, but overriding the default behavior is always encouraged.
    • isReuseAddressChanged

      protected boolean isReuseAddressChanged()
      Overrides:
      isReuseAddressChanged in class AbstractSocketSessionConfig
      Returns:
      true if and only if the reuseAddress property has been changed by its setter method. The system call related with the property is made only when this method returns true. By default, this method always returns true to simplify implementation of subclasses, but overriding the default behavior is always encouraged.
    • isSendBufferSizeChanged

      protected boolean isSendBufferSizeChanged()
      Overrides:
      isSendBufferSizeChanged in class AbstractSocketSessionConfig
      Returns:
      true if and only if the sendBufferSize property has been changed by its setter method. The system call related with the property is made only when this method returns true. By default, this method always returns true to simplify implementation of subclasses, but overriding the default behavior is always encouraged.
    • isSoLingerChanged

      protected boolean isSoLingerChanged()
      Overrides:
      isSoLingerChanged in class AbstractSocketSessionConfig
      Returns:
      true if and only if the soLinger property has been changed by its setter method. The system call related with the property is made only when this method returns true. By default, this method always returns true to simplify implementation of subclasses, but overriding the default behavior is always encouraged.
    • isTcpNoDelayChanged

      protected boolean isTcpNoDelayChanged()
      Overrides:
      isTcpNoDelayChanged in class AbstractSocketSessionConfig
      Returns:
      true if and only if the tcpNoDelay property has been changed by its setter method. The system call related with the property is made only when this method returns true. By default, this method always returns true to simplify implementation of subclasses, but overriding the default behavior is always encouraged.
    • isTrafficClassChanged

      protected boolean isTrafficClassChanged()
      Overrides:
      isTrafficClassChanged in class AbstractSocketSessionConfig
      Returns:
      true if and only if the trafficClass property has been changed by its setter method. The system call related with the property is made only when this method returns true. By default, this method always returns true to simplify implementation of subclasses, but overriding the default behavior is always encouraged.