Package org.xnio.channels

# Interface MulticastMessageChannel.Key

All Superinterfaces:
  `AutoCloseable`, `Closeable`

Enclosing interface:
  `MulticastMessageChannel`

public static interface MulticastMessageChannel.Key extends Closeable
A registration key for a multicast group.

## Method Summary

Modifier and Type
Method
Description
`MulticastMessageChannel.Key`
`block(InetAddress source)`
Block multicast packets from the given source address.
`MulticastMessageChannel`
`getChannel()`
Return the channel associated with this key.
`InetAddress`
`getGroup()`
Return the multicast group for which this key was created.
`NetworkInterface`
`getNetworkInterface()`
Return the network interface for which this key was created.
`InetAddress`
`getSourceAddress()`
Return the source address if this membership key is source specific, or `null` if this membership is not source specific.
`boolean`
`isOpen()`
Determine if this membership is active.
`MulticastMessageChannel.Key`
`unblock(InetAddress source)`
Unblock multicast packets from the given source address that was previously blocked using the `block(InetAddress)` method.

### Methods inherited from interface java.io.Closeable

`close`

## Method Details

### block

MulticastMessageChannel.Key block(InetAddress source) throws IOException, UnsupportedOperationException, IllegalStateException, IllegalArgumentException
Block multicast packets from the given source address. If this membership key is not source-specific, and the implementation supports source filtering, then this method blocks multicast packets from the given source addresses. After a source address is blocked it may still be possible to receive datagrams from that source. This can arise when datagrams are waiting to be received in the socket's receive buffer.

Parameters:
  `source` - the source address to block
Returns:
  this key
Throws:
  `IOException` - if an I/O error occurs
  `UnsupportedOperationException` - if the implementation does not support source filtering
  `IllegalStateException` - if this key is source-specific or is no longer valid
  `IllegalArgumentException` - if the `source` parameter is not a unicast address or is not the same address type as the multicast group

### unblock

MulticastMessageChannel.Key unblock(InetAddress source) throws IOException, IllegalStateException, UnsupportedOperationException
Unblock multicast packets from the given source address that was previously blocked using the `block(InetAddress)` method.

Parameters:
  `source` - the source address to unblock
Returns:
  this key
Throws:
  `IOException` - if an I/O error occurs
  `IllegalStateException` - if the given source address is not currently blocked or the key is no longer valid
  `UnsupportedOperationException` - if the implementation does not support source filtering

### getChannel

MulticastMessageChannel getChannel()
Return the channel associated with this key. This method will return the channel even after the membership is dropped.

Returns:
  the channel

### getGroup

InetAddress getGroup()
Return the multicast group for which this key was created. This method will continue to return the group even after the membership is dropped.

Returns:
  the multicast group

### getNetworkInterface

NetworkInterface getNetworkInterface()
Return the network interface for which this key was created. This method will continue to return the network interface even after the membership is dropped or the channel is closed.

Returns:
  the network interface

### getSourceAddress

InetAddress getSourceAddress()
Return the source address if this membership key is source specific, or `null` if this membership is not source specific.

Returns:
  the source address

### isOpen

boolean isOpen()
Determine if this membership is active.

Returns:
  `true` if the membership is still active