Package org.apache.cxf.transport

# Interface Conduit

All Superinterfaces:
  `Observable`

All Known Implementing Classes:
  `AbstractConduit`, `AbstractDestination.AbstractBackChannelConduit`

public interface Conduit extends Observable
A pipe between peers that channels transport-level messages.

A Conduit channels messages to a single destination, though this destination may fan-out to multiple receivers (for example a JMS topic).

A Conduit may have a back-channel, on which transport-level responses are received. Alternatively the back-channel destination may be decoupled, in which case the response it is received via a separate Conduit. The crucial distinction is whether the Conduit can itself correlate the response (which may be synchronous, or may be delivered via a dedicated destination).

Conduits may be used for multiple messages, either serially or concurrently, with the implementation taking care of mapping onto multiple transport resources (e.g. connections) if neccessary to support concurrency.

Binding-level MEPs may be realized over one or more Conduits.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `close()`
  Close the conduit
  `void`
  `close(Message message)`
  Close the connections associated with the message
  `org.apache.cxf.ws.addressing.EndpointReferenceType`
  `getTarget()`
  `void`
  `prepare(Message message)`
  Prepare the message for sending.

  ### Methods inherited from interface org.apache.cxf.transport.Observable

  `getMessageObserver, setMessageObserver`

- ## Method Details

  - ### prepare

    void prepare(Message message) throws IOException
    Prepare the message for sending. This will typically involve setting an OutputStream on the message, but it may do nothing at all.
    Parameters:
      `message` - the message to be sent.
    Throws:
      `IOException`

  - ### close

    void close(Message message) throws IOException
    Close the connections associated with the message
    Throws:
      `IOException`

  - ### getTarget

    org.apache.cxf.ws.addressing.EndpointReferenceType getTarget()
    Returns:
      the reference associated with the target Destination

  - ### close

    void close()
    Close the conduit