Package net.dona.doip.client.transport

# Class ReleaseOnceDoipConnection

java.lang.Object
net.dona.doip.client.transport.ReleaseOnceDoipConnection

All Implemented Interfaces:
  `AutoCloseable`, `DoipConnection`

public class ReleaseOnceDoipConnection extends Object implements DoipConnection
An implementation of `DoipConnection` which is used by `DoipConnectionPool` and ensures correct behavior for releasing connections back into the pool. Generally, instances should be obtained from a `DoipConnectionPool` and then released using `DoipConnectionPool.release(DoipConnection)`.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ReleaseOnceDoipConnection(DoipConnection conn)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `close()`
  `boolean`
  `isClosed()`
  Returns true if the connection is closed.
  `void`
  `release()`
  `DoipClientResponse`
  `sendCompactRequest(DoipRequestHeaders request)`
  Sends a "compact" request consisting of a single JSON segment, with the request "input" embedded in the initial segment.
  `DoipClientResponse`
  `sendRequest(DoipRequestHeaders request, InDoipMessage in)`
  Sends a request with the specified initial segment, and subsequent segments (the request "input") read from the supplied InDoipMessage.
  `DoipExchange`
  `sendRequestToExchange(DoipRequestHeaders request)`
  Sends a request using a specified initial segment, and providing a `DoipExchange` which allows writing additional segments as well as reading segments from the response.

  ### Methods inherited from class java.lang.Object

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

- ## Constructor Details

  - ### ReleaseOnceDoipConnection

    public ReleaseOnceDoipConnection(DoipConnection conn)

- ## Method Details

  - ### release

    public void release()

  - ### isClosed

    public boolean isClosed()
    Description copied from interface: `DoipConnection`
    Returns true if the connection is closed.
    Specified by:
      `isClosed` in interface `DoipConnection`
    Returns:
      true if the connection is closed

  - ### sendCompactRequest

    public DoipClientResponse sendCompactRequest(DoipRequestHeaders request) throws IOException
    Description copied from interface: `DoipConnection`
    Sends a "compact" request consisting of a single JSON segment, with the request "input" embedded in the initial segment.
    Specified by:
      `sendCompactRequest` in interface `DoipConnection`
    Parameters:
      `request` - the single-segment "compact" request to be sent
    Returns:
      the response
    Throws:
      `IOException`

  - ### sendRequest

    public DoipClientResponse sendRequest(DoipRequestHeaders request, InDoipMessage in) throws IOException
    Description copied from interface: `DoipConnection`
    Sends a request with the specified initial segment, and subsequent segments (the request "input") read from the supplied InDoipMessage.
    Specified by:
      `sendRequest` in interface `DoipConnection`
    Parameters:
      `request` - the initial segment of the request (except the requestId which will be generated automatically)
      `in` - the remaining segments of the request
    Returns:
      the response
    Throws:
      `IOException`

  - ### sendRequestToExchange

    public DoipExchange sendRequestToExchange(DoipRequestHeaders request) throws IOException
    Description copied from interface: `DoipConnection`
    Sends a request using a specified initial segment, and providing a `DoipExchange` which allows writing additional segments as well as reading segments from the response.
    Specified by:
      `sendRequestToExchange` in interface `DoipConnection`
    Parameters:
      `request` - the initial segment of the request (except the requestId which will be generated automatically)
    Returns:
      an instance of `DoipExchange` which allows writing additional segments as well as reading segments from the response
    Throws:
      `IOException`

  - ### close

    public void close()
    Specified by:
      `close` in interface `AutoCloseable`
    Specified by:
      `close` in interface `DoipConnection`