Package org.jboss.netty.channel
Class ChannelLocal<T>
- java.lang.Object
-
- org.jboss.netty.channel.ChannelLocal<T>
-
public class ChannelLocal<T> extends Object implements Iterable<Map.Entry<Channel,T>>
A global variable that is local to aChannel. Think of this as a variation ofThreadLocalwhose key is aChannelrather than aThread.currentThread(). One difference is that you always have to specify theChannelto access the variable.Alternatively, you might want to use the
ChannelHandlerContext.attachmentproperty, which performs better.
-
-
Constructor Summary
Constructors Constructor Description ChannelLocal()ChannelLocal(boolean removeOnClose)Creates aChannellocal variable.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Tget(Channel channel)Returns the value of this variable.protected TinitialValue(Channel channel)Returns the initial value of the variable.Iterator<Map.Entry<Channel,T>>iterator()Tremove(Channel channel)Removes the variable and returns the removed value.Tset(Channel channel, T value)Sets the value of this variable.TsetIfAbsent(Channel channel, T value)Sets the value of this variable only when no value was set.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
-
-
-
Constructor Detail
-
ChannelLocal
public ChannelLocal()
-
ChannelLocal
public ChannelLocal(boolean removeOnClose)
Creates aChannellocal variable.- Parameters:
removeOnClose- iftruetheChannelLocalwill remove aChannelfrom it own once theChannelwas closed.
-
-
Method Detail
-
initialValue
protected T initialValue(Channel channel)
Returns the initial value of the variable. By default, it returnsnull. Override it to change the initial value.- Parameters:
channel- the channel where this local variable is accessed with
-
set
public T set(Channel channel, T value)
Sets the value of this variable.- Returns:
- the old value.
nullif there was no old value.
-
setIfAbsent
public T setIfAbsent(Channel channel, T value)
Sets the value of this variable only when no value was set.- Returns:
nullif the specified value was set. An existing value if failed to set.
-
remove
public T remove(Channel channel)
Removes the variable and returns the removed value. If no value was set, this method returns the return value ofinitialValue(Channel), which isnullby default.- Returns:
- the removed value.
an initial value (by default
null) if no value was set.
-
-