Package io.netty.bootstrap
Class AbstractBootstrap<B extends AbstractBootstrap<B,C>,C extends Channel>
- java.lang.Object
-
- io.netty.bootstrap.AbstractBootstrap<B,C>
-
- All Implemented Interfaces:
java.lang.Cloneable
- Direct Known Subclasses:
Bootstrap
,ServerBootstrap
public abstract class AbstractBootstrap<B extends AbstractBootstrap<B,C>,C extends Channel> extends java.lang.Object implements java.lang.Cloneable
AbstractBootstrap
is a helper class that makes it easy to bootstrap aChannel
. It support method-chaining to provide an easy way to configure theAbstractBootstrap
.When not used in a
ServerBootstrap
context, thebind()
methods are useful for connectionless transports such as datagram (UDP).
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static class
AbstractBootstrap.PendingRegistrationPromise
-
Field Summary
Fields Modifier and Type Field Description private java.util.Map<AttributeKey<?>,java.lang.Object>
attrs
private ChannelFactory<? extends C>
channelFactory
(package private) static java.util.Map.Entry<AttributeKey<?>,java.lang.Object>[]
EMPTY_ATTRIBUTE_ARRAY
(package private) static java.util.Map.Entry<ChannelOption<?>,java.lang.Object>[]
EMPTY_OPTION_ARRAY
(package private) EventLoopGroup
group
private ChannelHandler
handler
private java.net.SocketAddress
localAddress
private java.util.Map<ChannelOption<?>,java.lang.Object>
options
-
Constructor Summary
Constructors Constructor Description AbstractBootstrap()
AbstractBootstrap(AbstractBootstrap<B,C> bootstrap)
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods Modifier and Type Method Description <T> B
attr(AttributeKey<T> key, T value)
Allow to specify an initial attribute of the newly createdChannel
.(package private) java.util.Map<AttributeKey<?>,java.lang.Object>
attrs()
(package private) java.util.Map<AttributeKey<?>,java.lang.Object>
attrs0()
ChannelFuture
bind()
Create a newChannel
and bind it.ChannelFuture
bind(int inetPort)
Create a newChannel
and bind it.ChannelFuture
bind(java.lang.String inetHost, int inetPort)
Create a newChannel
and bind it.ChannelFuture
bind(java.net.InetAddress inetHost, int inetPort)
Create a newChannel
and bind it.ChannelFuture
bind(java.net.SocketAddress localAddress)
Create a newChannel
and bind it.B
channel(java.lang.Class<? extends C> channelClass)
TheClass
which is used to createChannel
instances from.(package private) ChannelFactory<? extends C>
channelFactory()
B
channelFactory(ChannelFactory<? extends C> channelFactory)
Deprecated.UsechannelFactory(io.netty.channel.ChannelFactory)
instead.B
channelFactory(ChannelFactory<? extends C> channelFactory)
abstract B
clone()
Returns a deep clone of this bootstrap which has the identical configuration.abstract AbstractBootstrapConfig<B,C>
config()
Returns theAbstractBootstrapConfig
object that can be used to obtain the current config of the bootstrap.(package private) static <K,V>
java.util.Map<K,V>copiedMap(java.util.Map<K,V> map)
private ChannelFuture
doBind(java.net.SocketAddress localAddress)
private static void
doBind0(ChannelFuture regFuture, Channel channel, java.net.SocketAddress localAddress, ChannelPromise promise)
EventLoopGroup
group()
Deprecated.Useconfig()
instead.B
group(EventLoopGroup group)
TheEventLoopGroup
which is used to handle all the events for the to-be-createdChannel
(package private) ChannelHandler
handler()
B
handler(ChannelHandler handler)
theChannelHandler
to use for serving the requests.(package private) abstract void
init(Channel channel)
(package private) ChannelFuture
initAndRegister()
(package private) java.net.SocketAddress
localAddress()
B
localAddress(int inetPort)
B
localAddress(java.lang.String inetHost, int inetPort)
B
localAddress(java.net.InetAddress inetHost, int inetPort)
B
localAddress(java.net.SocketAddress localAddress)
TheSocketAddress
which is used to bind the local "end" to.(package private) java.util.Map.Entry<ChannelOption<?>,java.lang.Object>[]
newOptionsArray()
<T> B
option(ChannelOption<T> option, T value)
Allow to specify aChannelOption
which is used for theChannel
instances once they got created.(package private) java.util.Map<ChannelOption<?>,java.lang.Object>
options()
(package private) java.util.Map<ChannelOption<?>,java.lang.Object>
options0()
ChannelFuture
register()
private B
self()
(package private) static void
setAttributes(Channel channel, java.util.Map.Entry<AttributeKey<?>,java.lang.Object>[] attrs)
private static void
setChannelOption(Channel channel, ChannelOption<?> option, java.lang.Object value, InternalLogger logger)
(package private) static void
setChannelOptions(Channel channel, java.util.Map.Entry<ChannelOption<?>,java.lang.Object>[] options, InternalLogger logger)
java.lang.String
toString()
B
validate()
Validate all the parameters.
-
-
-
Field Detail
-
EMPTY_OPTION_ARRAY
static final java.util.Map.Entry<ChannelOption<?>,java.lang.Object>[] EMPTY_OPTION_ARRAY
-
EMPTY_ATTRIBUTE_ARRAY
static final java.util.Map.Entry<AttributeKey<?>,java.lang.Object>[] EMPTY_ATTRIBUTE_ARRAY
-
group
volatile EventLoopGroup group
-
channelFactory
private volatile ChannelFactory<? extends C extends Channel> channelFactory
-
localAddress
private volatile java.net.SocketAddress localAddress
-
options
private final java.util.Map<ChannelOption<?>,java.lang.Object> options
-
attrs
private final java.util.Map<AttributeKey<?>,java.lang.Object> attrs
-
handler
private volatile ChannelHandler handler
-
-
Constructor Detail
-
AbstractBootstrap
AbstractBootstrap()
-
AbstractBootstrap
AbstractBootstrap(AbstractBootstrap<B,C> bootstrap)
-
-
Method Detail
-
group
public B group(EventLoopGroup group)
TheEventLoopGroup
which is used to handle all the events for the to-be-createdChannel
-
self
private B self()
-
channel
public B channel(java.lang.Class<? extends C> channelClass)
TheClass
which is used to createChannel
instances from. You either use this orchannelFactory(io.netty.channel.ChannelFactory)
if yourChannel
implementation has no no-args constructor.
-
channelFactory
@Deprecated public B channelFactory(ChannelFactory<? extends C> channelFactory)
Deprecated.UsechannelFactory(io.netty.channel.ChannelFactory)
instead.
-
channelFactory
public B channelFactory(ChannelFactory<? extends C> channelFactory)
ChannelFactory
which is used to createChannel
instances from when callingbind()
. This method is usually only used ifchannel(Class)
is not working for you because of some more complex needs. If yourChannel
implementation has a no-args constructor, its highly recommend to just usechannel(Class)
to simplify your code.
-
localAddress
public B localAddress(java.net.SocketAddress localAddress)
TheSocketAddress
which is used to bind the local "end" to.
-
localAddress
public B localAddress(int inetPort)
- See Also:
localAddress(SocketAddress)
-
localAddress
public B localAddress(java.lang.String inetHost, int inetPort)
- See Also:
localAddress(SocketAddress)
-
localAddress
public B localAddress(java.net.InetAddress inetHost, int inetPort)
- See Also:
localAddress(SocketAddress)
-
option
public <T> B option(ChannelOption<T> option, T value)
Allow to specify aChannelOption
which is used for theChannel
instances once they got created. Use a value ofnull
to remove a previous setChannelOption
.
-
attr
public <T> B attr(AttributeKey<T> key, T value)
Allow to specify an initial attribute of the newly createdChannel
. If thevalue
isnull
, the attribute of the specifiedkey
is removed.
-
validate
public B validate()
Validate all the parameters. Sub-classes may override this, but should call the super method in that case.
-
clone
public abstract B clone()
Returns a deep clone of this bootstrap which has the identical configuration. This method is useful when making multipleChannel
s with similar settings. Please note that this method does not clone theEventLoopGroup
deeply but shallowly, making the group a shared resource.- Overrides:
clone
in classjava.lang.Object
-
register
public ChannelFuture register()
-
bind
public ChannelFuture bind()
Create a newChannel
and bind it.
-
bind
public ChannelFuture bind(int inetPort)
Create a newChannel
and bind it.
-
bind
public ChannelFuture bind(java.lang.String inetHost, int inetPort)
Create a newChannel
and bind it.
-
bind
public ChannelFuture bind(java.net.InetAddress inetHost, int inetPort)
Create a newChannel
and bind it.
-
bind
public ChannelFuture bind(java.net.SocketAddress localAddress)
Create a newChannel
and bind it.
-
doBind
private ChannelFuture doBind(java.net.SocketAddress localAddress)
-
initAndRegister
final ChannelFuture initAndRegister()
-
init
abstract void init(Channel channel) throws java.lang.Exception
- Throws:
java.lang.Exception
-
doBind0
private static void doBind0(ChannelFuture regFuture, Channel channel, java.net.SocketAddress localAddress, ChannelPromise promise)
-
handler
public B handler(ChannelHandler handler)
theChannelHandler
to use for serving the requests.
-
group
@Deprecated public final EventLoopGroup group()
Deprecated.Useconfig()
instead.Returns the configuredEventLoopGroup
ornull
if non is configured yet.
-
config
public abstract AbstractBootstrapConfig<B,C> config()
Returns theAbstractBootstrapConfig
object that can be used to obtain the current config of the bootstrap.
-
newOptionsArray
final java.util.Map.Entry<ChannelOption<?>,java.lang.Object>[] newOptionsArray()
-
options0
final java.util.Map<ChannelOption<?>,java.lang.Object> options0()
-
attrs0
final java.util.Map<AttributeKey<?>,java.lang.Object> attrs0()
-
localAddress
final java.net.SocketAddress localAddress()
-
channelFactory
final ChannelFactory<? extends C> channelFactory()
-
handler
final ChannelHandler handler()
-
options
final java.util.Map<ChannelOption<?>,java.lang.Object> options()
-
attrs
final java.util.Map<AttributeKey<?>,java.lang.Object> attrs()
-
copiedMap
static <K,V> java.util.Map<K,V> copiedMap(java.util.Map<K,V> map)
-
setAttributes
static void setAttributes(Channel channel, java.util.Map.Entry<AttributeKey<?>,java.lang.Object>[] attrs)
-
setChannelOptions
static void setChannelOptions(Channel channel, java.util.Map.Entry<ChannelOption<?>,java.lang.Object>[] options, InternalLogger logger)
-
setChannelOption
private static void setChannelOption(Channel channel, ChannelOption<?> option, java.lang.Object value, InternalLogger logger)
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-