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
private static java.util.Map.Entry<AttributeKey<?>,java.lang.Object>[]
EMPTY_ATTRIBUTE_ARRAY
private static java.util.Map.Entry<ChannelOption<?>,java.lang.Object>[]
EMPTY_OPTION_ARRAY
private java.lang.ClassLoader
extensionsClassLoader
(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)
B
extensionsClassLoader(java.lang.ClassLoader classLoader)
LoadChannelInitializerExtension
s using the given class loader.(package private) java.util.Collection<ChannelInitializerExtension>
getInitializerExtensions()
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<AttributeKey<?>,java.lang.Object>[]
newAttributesArray()
(package private) static java.util.Map.Entry<AttributeKey<?>,java.lang.Object>[]
newAttributesArray(java.util.Map<AttributeKey<?>,java.lang.Object> attributes)
(package private) java.util.Map.Entry<ChannelOption<?>,java.lang.Object>[]
newOptionsArray()
(package private) static java.util.Map.Entry<ChannelOption<?>,java.lang.Object>[]
newOptionsArray(java.util.Map<ChannelOption<?>,java.lang.Object> options)
<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
private static final java.util.Map.Entry<ChannelOption<?>,java.lang.Object>[] EMPTY_OPTION_ARRAY
-
EMPTY_ATTRIBUTE_ARRAY
private 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
-
extensionsClassLoader
private volatile java.lang.ClassLoader extensionsClassLoader
-
-
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.
-
extensionsClassLoader
public B extensionsClassLoader(java.lang.ClassLoader classLoader)
LoadChannelInitializerExtension
s using the given class loader.By default, the extensions will be loaded by the same class loader that loaded this bootstrap class.
- Parameters:
classLoader
- The class loader to use for loadingChannelInitializerExtension
s.- Returns:
- This bootstrap.
-
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
-
getInitializerExtensions
java.util.Collection<ChannelInitializerExtension> getInitializerExtensions()
-
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()
-
newOptionsArray
static java.util.Map.Entry<ChannelOption<?>,java.lang.Object>[] newOptionsArray(java.util.Map<ChannelOption<?>,java.lang.Object> options)
-
newAttributesArray
final java.util.Map.Entry<AttributeKey<?>,java.lang.Object>[] newAttributesArray()
-
newAttributesArray
static java.util.Map.Entry<AttributeKey<?>,java.lang.Object>[] newAttributesArray(java.util.Map<AttributeKey<?>,java.lang.Object> attributes)
-
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
-
-