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 ofThreadLocal
whose key is aChannel
rather than aThread.currentThread()
. One difference is that you always have to specify theChannel
to access the variable.Alternatively, you might want to use the
ChannelHandlerContext.attachment
property, which performs better.
-
-
Constructor Summary
Constructors Constructor Description ChannelLocal()
ChannelLocal(boolean removeOnClose)
Creates aChannel
local variable.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description T
get(Channel channel)
Returns the value of this variable.protected T
initialValue(Channel channel)
Returns the initial value of the variable.Iterator<Map.Entry<Channel,T>>
iterator()
T
remove(Channel channel)
Removes the variable and returns the removed value.T
set(Channel channel, T value)
Sets the value of this variable.T
setIfAbsent(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 aChannel
local variable.- Parameters:
removeOnClose
- iftrue
theChannelLocal
will remove aChannel
from it own once theChannel
was 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.
null
if 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:
null
if 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 isnull
by default.- Returns:
- the removed value.
an initial value (by default
null
) if no value was set.
-
-