Interface HelidonSocket

All Superinterfaces:
SocketContext, Supplier<byte[]>
All Known Implementing Classes:
PlainSocket, TlsSocket

public interface HelidonSocket extends SocketContext, Supplier<byte[]>
Socket abstraction to allow usage of TLS or even non-socket transport.
  • Method Details

    • close

      void close()
      Close the underlying socket.
    • read

      int read(BufferData buffer)
      Read bytes from the socket. This method blocks until at least 1 byte is available.
      Parameters:
      buffer - buffer to read to
      Returns:
      number of bytes read
    • write

      void write(BufferData buffer)
      Write teh buffer to the underlying socket. This method blocks until all bytes are written.
      Parameters:
      buffer - buffer to write
    • protocolNegotiated

      default boolean protocolNegotiated()
      Whether a protocol was negotiated by the socket (such as ALPN when using TLS).
      Returns:
      whether a protocol was negotiated
    • protocol

      default String protocol()
      Protocol that was negotiated.
      Returns:
      protocol name
      Throws:
      NoSuchElementException - in case there is no negotiated protocol