Package org.xnio.channels

# Interface WritableMessageChannel

All Superinterfaces:
  `AutoCloseable`, `Channel`, `Closeable`, `CloseableChannel`, `Configurable`, `InterruptibleChannel`, `SuspendableWriteChannel`

All Known Subinterfaces:
  `ConnectedMessageChannel`, `MessageChannel`

All Known Implementing Classes:
  `AssembledConnectedMessageChannel`, `AssembledMessageChannel`, `ConduitWritableMessageChannel`, `FramedMessageChannel`

public interface WritableMessageChannel extends SuspendableWriteChannel, Configurable
A channel that can send messages.

## Field Summary

### Fields inherited from interface org.xnio.channels.Configurable

`EMPTY`

## Method Summary

Modifier and Type
Method
Description
`ChannelListener.Setter<? extends WritableMessageChannel>`
`getCloseSetter()`
Get the setter which can be used to change the close listener for this channel.
`ChannelListener.Setter<? extends WritableMessageChannel>`
`getWriteSetter()`
Get the setter which can be used to change the write listener for this channel.
`boolean`
`send(ByteBuffer buffer)`
Send a complete message.
`boolean`
`send(ByteBuffer[] buffers)`
Send a complete message.
`boolean`
`send(ByteBuffer[] buffers, int offs, int len)`
Send a complete message.
`boolean`
`sendFinal(ByteBuffer buffer)`
Send a complete message.
`boolean`
`sendFinal(ByteBuffer[] buffers)`
Send a complete message.
`boolean`
`sendFinal(ByteBuffer[] buffers, int offs, int len)`
Send a complete message.

### Methods inherited from interface org.xnio.channels.CloseableChannel

`getIoThread, getWorker`

### Methods inherited from interface org.xnio.channels.Configurable

`getOption, setOption, supportsOption`

### Methods inherited from interface org.xnio.channels.SuspendableWriteChannel

`awaitWritable, awaitWritable, close, flush, getWriteThread, isOpen, isWriteResumed, resumeWrites, shutdownWrites, suspendWrites, wakeupWrites`

## Method Details

### send

boolean send(ByteBuffer buffer) throws IOException
Send a complete message.

Parameters:
  `buffer` - the message to send
Returns:
  the result of the send operation; `true` if the message was sent, or `false` if it would block
Throws:
  `IOException` - if an I/O error occurs

### send

boolean send(ByteBuffer[] buffers) throws IOException
Send a complete message.

Parameters:
  `buffers` - the buffers holding the message to send
Returns:
  the result of the send operation; `true` if the message was sent, or `false` if it would block
Throws:
  `IOException` - if an I/O error occurs

### send

boolean send(ByteBuffer[] buffers, int offs, int len) throws IOException
Send a complete message.

Parameters:
  `buffers` - the buffers holding the message to send
  `offs` - the offset into the buffer array of the first buffer
  `len` - the number of buffers that contain data to send
Returns:
  the result of the send operation; `true` if the message was sent, or `false` if it would block
Throws:
  `IOException` - if an I/O error occurs

### sendFinal

boolean sendFinal(ByteBuffer buffer) throws IOException
Send a complete message. If the message was successfully sent the channel with have its writes shutdown.

Parameters:
  `buffer` - the message to send
Returns:
  the result of the send operation; `true` if the message was sent, or `false` if it would block
Throws:
  `IOException` - if an I/O error occurs

### sendFinal

boolean sendFinal(ByteBuffer[] buffers) throws IOException
Send a complete message. If the message was successfully sent the channel with have its writes shutdown.

Parameters:
  `buffers` - the buffers holding the message to send
Returns:
  the result of the send operation; `true` if the message was sent, or `false` if it would block
Throws:
  `IOException` - if an I/O error occurs

### sendFinal

boolean sendFinal(ByteBuffer[] buffers, int offs, int len) throws IOException
Send a complete message. If the message was successfully sent the channel with have its writes shutdown.

Parameters:
  `buffers` - the buffers holding the message to send
  `offs` - the offset into the buffer array of the first buffer
  `len` - the number of buffers that contain data to send
Returns:
  the result of the send operation; `true` if the message was sent, or `false` if it would block
Throws:
  `IOException` - if an I/O error occurs

### getWriteSetter

ChannelListener.Setter<? extends WritableMessageChannel> getWriteSetter()
Get the setter which can be used to change the write listener for this channel.

Specified by:
  `getWriteSetter` in interface `SuspendableWriteChannel`
Returns:
  the setter

### getCloseSetter

ChannelListener.Setter<? extends WritableMessageChannel> getCloseSetter()
Get the setter which can be used to change the close listener for this channel. If the channel is already closed, then the listener will not be called.

Specified by:
  `getCloseSetter` in interface `CloseableChannel`
Specified by:
  `getCloseSetter` in interface `SuspendableWriteChannel`
Returns:
  the setter