XNIO API 3.0.7.GA

org.xnio
Class ChannelListeners

java.lang.Object
  extended by org.xnio.ChannelListeners

public final class ChannelListeners
extends Object

Channel listener utility methods.

Author:
David M. Lloyd

Method Summary
static ChannelListener<Channel> closingChannelListener()
          Get a channel listener which closes the channel when notified.
static
<T extends Channel>
ChannelListener<T>
executorChannelListener(ChannelListener<T> listener, Executor executor)
          Get a channel listener which executes a delegate channel listener via an executor.
static
<T extends Channel>
Runnable
getChannelListenerTask(T channel, ChannelListener<? super T> channelListener)
          Get a task which invokes the given channel listener on the given channel.
static
<T extends Channel>
ChannelListener.Setter<T>
getDelegatingSetter(ChannelListener.Setter<? extends Channel> target, T realChannel)
          Get a channel listener setter which delegates to the given target setter with a different channel type.
static
<T extends Channel>
ChannelListener.Setter<T>
getSetter(AtomicReference<ChannelListener<? super T>> atomicReference)
          Get a setter based on an atomic reference.
static
<T extends Channel,C>
ChannelListener.Setter<T>
getSetter(C channel, AtomicReferenceFieldUpdater<C,ChannelListener> updater)
          Get a setter based on an atomic reference field updater.
static
<T extends Channel>
void
invokeChannelListener(Executor executor, T channel, ChannelListener<? super T> channelListener)
          Invoke a channel listener on a given channel, logging any errors, using the given executor.
static
<T extends Channel>
boolean
invokeChannelListener(T channel, ChannelListener<? super T> channelListener)
          Invoke a channel listener on a given channel, logging any errors.
static ChannelListener<Channel> nullChannelListener()
          Get a channel listener which does nothing.
static
<T extends Channel>
ChannelListener.Setter<T>
nullSetter()
          Get a channel listener setter which does nothing.
static
<C extends ConnectedChannel>
ChannelListener<AcceptingChannel<C>>
openListenerAdapter(ChannelListener<? super C> openListener)
          Create an open listener adapter which automatically accepts connections and invokes an open listener.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

invokeChannelListener

public static <T extends Channel> boolean invokeChannelListener(T channel,
                                                                ChannelListener<? super T> channelListener)
Invoke a channel listener on a given channel, logging any errors.

Type Parameters:
T - the channel type
Parameters:
channel - the channel
channelListener - the channel listener
Returns:
true if the listener completed successfully, or false if it failed

invokeChannelListener

public static <T extends Channel> void invokeChannelListener(Executor executor,
                                                             T channel,
                                                             ChannelListener<? super T> channelListener)
Invoke a channel listener on a given channel, logging any errors, using the given executor.

Type Parameters:
T - the channel type
Parameters:
executor - the executor
channel - the channel
channelListener - the channel listener

getChannelListenerTask

public static <T extends Channel> Runnable getChannelListenerTask(T channel,
                                                                  ChannelListener<? super T> channelListener)
Get a task which invokes the given channel listener on the given channel.

Type Parameters:
T - the channel type
Parameters:
channel - the channel
channelListener - the channel listener
Returns:
the runnable task

closingChannelListener

public static ChannelListener<Channel> closingChannelListener()
Get a channel listener which closes the channel when notified.

Returns:
the channel listener

nullChannelListener

public static ChannelListener<Channel> nullChannelListener()
Get a channel listener which does nothing.

Returns:
the null channel listener

openListenerAdapter

public static <C extends ConnectedChannel> ChannelListener<AcceptingChannel<C>> openListenerAdapter(ChannelListener<? super C> openListener)
Create an open listener adapter which automatically accepts connections and invokes an open listener.

Type Parameters:
C - the connected channel type
Parameters:
openListener - the channel open listener
Returns:
a channel accept listener

getSetter

public static <T extends Channel,C> ChannelListener.Setter<T> getSetter(C channel,
                                                                        AtomicReferenceFieldUpdater<C,ChannelListener> updater)
Get a setter based on an atomic reference field updater. Used by channel implementations to avoid having to define an anonymous class for each listener field.

Type Parameters:
T - the channel type
C - the holding class
Parameters:
channel - the channel
updater - the updater
Returns:
the setter

getSetter

public static <T extends Channel> ChannelListener.Setter<T> getSetter(AtomicReference<ChannelListener<? super T>> atomicReference)
Get a setter based on an atomic reference. Used by channel implementations to avoid having to define an anonymous class for each listener field.

Type Parameters:
T - the channel type
Parameters:
atomicReference - the atomic reference
Returns:
the setter

getDelegatingSetter

public static <T extends Channel> ChannelListener.Setter<T> getDelegatingSetter(ChannelListener.Setter<? extends Channel> target,
                                                                                T realChannel)
Get a channel listener setter which delegates to the given target setter with a different channel type.

Type Parameters:
T - the real channel type
Parameters:
target - the target setter
realChannel - the channel to send in to the listener
Returns:
the delegating setter

nullSetter

public static <T extends Channel> ChannelListener.Setter<T> nullSetter()
Get a channel listener setter which does nothing.

Type Parameters:
T - the channel type
Returns:
a setter which does nothing

executorChannelListener

public static <T extends Channel> ChannelListener<T> executorChannelListener(ChannelListener<T> listener,
                                                                             Executor executor)
Get a channel listener which executes a delegate channel listener via an executor. If an exception occurs submitting the task, the associated channel is closed.

Type Parameters:
T - the channel type
Parameters:
listener - the listener to invoke
executor - the executor with which to invoke the listener
Returns:
a delegating channel listener

XNIO API 3.0.7.GA

Copyright © 2010 JBoss, a division of Red Hat, Inc.