Top Description Fields Constructors Methods
io.vertx.core.net.impl

public abstract Class TCPServerBase

extends Object
implements Closeable, MetricsProvider
Class Inheritance
All Implemented Interfaces
io.vertx.core.spi.metrics.MetricsProvider, io.vertx.core.metrics.Measured, io.vertx.core.Closeable
Known Direct Subclasses
io.vertx.core.http.impl.HttpServerImpl, io.vertx.core.net.impl.NetServerImpl
Imports
io.netty.bootstrap.ServerBootstrap, io.netty.buffer.PooledByteBufAllocator, io.netty.channel.Channel, .ChannelFuture, .ChannelFutureListener, .ChannelOption, .EventLoop, .EventLoopGroup, io.netty.handler.traffic.GlobalTrafficShapingHandler, io.netty.util.concurrent.GenericFutureListener, io.vertx.core.Closeable, .Context, .Future, .Handler, .Promise, io.vertx.core.buffer.impl.PartialPooledByteBufAllocator, io.vertx.core.impl.ContextInternal, .VertxInternal, io.vertx.core.impl.future.PromiseInternal, io.vertx.core.impl.logging.Logger, .LoggerFactory, io.vertx.core.net.NetServerOptions, .SSLOptions, .SocketAddress, .TrafficShapingOptions, io.vertx.core.spi.metrics.MetricsProvider, .TCPMetrics, java.net.InetSocketAddress, java.util.HashSet, .Map, .Set, java.util.function.BiConsumer

Base class for TCP servers
Authors
Tim Fox, Julien Viet

Field Summary

Modifier and TypeField and Description
private volatile int
private TCPServerBase
private Future<Channel>
private ServerChannelLoadBalancer
private BiConsumer<Channel, SslChannelProvider>
protected final Context
private EventLoop
private ContextInternal
private volatile boolean
private static final Logger
private TCPMetrics<?>
protected final NetServerOptions
private Set<TCPServerBase>
private volatile Future<SslContextUpdate>
private SSLHelper
private GlobalTrafficShapingHandler
protected final VertxInternal
private Handler<Channel>

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
private void
public int
private void
applyConnectionOptions(boolean
whether it's a domain socket server
domainSocket
,
ServerBootstrap
the Netty server bootstrap
bootstrap
)

Apply the connection option to the server.

public Future<TCPServerBase>
protected abstract BiConsumer<Channel, SslChannelProvider>
childHandler(ContextInternal context, SocketAddress socketAddress, GlobalTrafficShapingHandler trafficShapingHandler)

public synchronized void
close(Promise<Void>
the promise to signal when close has completed
completion
)

Implements io.vertx.core.Closeable.close.

Close this resource, the completion promise must be notified when the operation has completed.

public abstract Future<Void>
protected TCPMetrics<?>
protected SSLHelper
protected GlobalTrafficShapingHandler
private GlobalTrafficShapingHandler
public synchronized TCPMetrics<?>
getMetrics()

Implements io.vertx.core.spi.metrics.MetricsProvider.getMetrics.

Returns the metrics implementation.

public boolean
public boolean
isMetricsEnabled()

Overrides default io.vertx.core.metrics.Measured.isMetricsEnabled.

Whether the metrics are enabled for this measured object

private synchronized Future<Channel>
listen(SocketAddress localAddress, ContextInternal context)

public int
public SslContextProvider
public Future<Boolean>
updateSSLOptions(SSLOptions options, boolean force)

public void
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

actualPortback to summary
private volatile int actualPort
actualServerback to summary
private TCPServerBase actualServer
bindFutureback to summary
private Future<Channel> bindFuture
channelBalancerback to summary
private ServerChannelLoadBalancer channelBalancer
childHandlerback to summary
private BiConsumer<Channel, SslChannelProvider> childHandler
creatingContextback to summary
protected final Context creatingContext
eventLoopback to summary
private EventLoop eventLoop
listenContextback to summary
private ContextInternal listenContext
listeningback to summary
private volatile boolean listening
logback to summary
private static final Logger log
metricsback to summary
private TCPMetrics<?> metrics
optionsback to summary
protected final NetServerOptions options
serversback to summary
private Set<TCPServerBase> servers
sslChannelProviderback to summary
private volatile Future<SslContextUpdate> sslChannelProvider
sslHelperback to summary
private SSLHelper sslHelper
trafficShapingHandlerback to summary
private GlobalTrafficShapingHandler trafficShapingHandler
vertxback to summary
protected final VertxInternal vertx
workerback to summary
private Handler<Channel> worker

Constructor Detail

TCPServerBaseback to summary
public TCPServerBase(VertxInternal vertx, NetServerOptions options)

Method Detail

actualCloseback to summary
private void actualClose(Promise<Void> done)
actualPortback to summary
public int actualPort()
applyConnectionOptionsback to summary
private void applyConnectionOptions(boolean domainSocket, ServerBootstrap bootstrap)

Apply the connection option to the server.

Parameters
domainSocket:boolean

whether it's a domain socket server

bootstrap:ServerBootstrap

the Netty server bootstrap

bindback to summary
public Future<TCPServerBase> bind(SocketAddress address)
childHandlerback to summary
protected abstract BiConsumer<Channel, SslChannelProvider> childHandler(ContextInternal context, SocketAddress socketAddress, GlobalTrafficShapingHandler trafficShapingHandler)
closeback to summary
public synchronized void close(Promise<Void> completion)

Implements io.vertx.core.Closeable.close.

Doc from io.vertx.core.Closeable.close.

Close this resource, the completion promise must be notified when the operation has completed.

Parameters
completion:Promise<Void>

the promise to signal when close has completed

Annotations
@Override
closeback to summary
public abstract Future<Void> close()
createMetricsback to summary
protected TCPMetrics<?> createMetrics(SocketAddress localAddress)
createSSLHelperback to summary
protected SSLHelper createSSLHelper()
createTrafficShapingHandlerback to summary
protected GlobalTrafficShapingHandler createTrafficShapingHandler()
createTrafficShapingHandlerback to summary
private GlobalTrafficShapingHandler createTrafficShapingHandler(EventLoopGroup eventLoopGroup, TrafficShapingOptions options)
getMetricsback to summary
public synchronized TCPMetrics<?> getMetrics()

Implements io.vertx.core.spi.metrics.MetricsProvider.getMetrics.

Doc from io.vertx.core.spi.metrics.MetricsProvider.getMetrics.

Returns the metrics implementation.

Returns:TCPMetrics<?>

the metrics

Annotations
@Override
isListeningback to summary
public boolean isListening()
isMetricsEnabledback to summary
public boolean isMetricsEnabled()

Overrides default io.vertx.core.metrics.Measured.isMetricsEnabled.

Doc from io.vertx.core.metrics.Measured.isMetricsEnabled.

Whether the metrics are enabled for this measured object

Returns:boolean

true if metrics are enabled

Annotations
@Override
listenback to summary
private synchronized Future<Channel> listen(SocketAddress localAddress, ContextInternal context)
sniEntrySizeback to summary
public int sniEntrySize()
sslContextProviderback to summary
public SslContextProvider sslContextProvider()
updateSSLOptionsback to summary
public Future<Boolean> updateSSLOptions(SSLOptions options, boolean force)
updateTrafficShapingOptionsback to summary
public void updateTrafficShapingOptions(TrafficShapingOptions options)