public class UdpResources extends Object implements LoopResources
Disposable.Composite, Disposable.Swap
DEFAULT_IO_SELECT_COUNT, DEFAULT_IO_WORKER_COUNT, DEFAULT_NATIVE, DEFAULT_SHUTDOWN_QUIET_PERIOD, DEFAULT_SHUTDOWN_TIMEOUT
Modifier | Constructor and Description |
---|---|
protected |
UdpResources(LoopResources defaultLoops) |
Modifier and Type | Method and Description |
---|---|
protected void |
_dispose()
Dispose underlying resources
|
protected Mono<Void> |
_disposeLater()
Deprecated.
as of 0.9.3. Use
_disposeLater(Duration, Duration) |
protected Mono<Void> |
_disposeLater(java.time.Duration quietPeriod,
java.time.Duration timeout)
Dispose underlying resources in a listenable fashion.
|
boolean |
daemon()
return true if
EventLoopGroup should not be shutdown |
static UdpResources |
get()
Return the global UDP resources for pooling
|
protected static UdpResources |
getOrCreate(LoopResources loops,
java.util.function.Function<LoopResources,UdpResources> onNew,
String name)
Safely check if existing resource exist and proceed to update/cleanup if new
resources references are passed.
|
boolean |
isDisposed() |
<CHANNEL extends Channel> |
onChannel(Class<CHANNEL> channelType,
EventLoopGroup group)
Callback for a
Channel selection. |
Class<? extends Channel> |
onChannel(EventLoopGroup group)
Callback for client or generic channel factory selection.
|
<CHANNEL extends Channel> |
onChannelClass(Class<CHANNEL> channelType,
EventLoopGroup group)
Callback for a
Channel class selection. |
EventLoopGroup |
onClient(boolean useNative)
Callback for client
EventLoopGroup creation. |
Class<? extends DatagramChannel> |
onDatagramChannel(EventLoopGroup group)
Callback for UDP channel factory selection.
|
EventLoopGroup |
onServer(boolean useNative)
Callback for server
EventLoopGroup creation,
this is the EventLoopGroup for the child channel. |
Class<? extends ServerChannel> |
onServerChannel(EventLoopGroup group)
Callback for server channel factory selection.
|
EventLoopGroup |
onServerSelect(boolean useNative)
Callback for server select
EventLoopGroup creation,
this is the EventLoopGroup for the acceptor channel. |
boolean |
preferNative()
Return true if should default to native
EventLoopGroup and Channel |
static UdpResources |
reset()
Reset UDP resources to default and return its instance
|
static UdpResources |
set(LoopResources loops)
Update event loops resources and return the global UDP resources.
|
static void |
shutdown()
Shutdown the global
UdpResources without resetting them,
effectively cleaning up associated resources without creating new ones. |
static Mono<Void> |
shutdownLater()
Prepare to shutdown the global
UdpResources without resetting them,
effectively cleaning up associated resources without creating new ones. |
static Mono<Void> |
shutdownLater(java.time.Duration quietPeriod,
java.time.Duration timeout)
Prepare to shutdown the global
UdpResources without resetting them,
effectively cleaning up associated resources without creating new ones. |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
colocate, create, create, create, dispose, disposeLater, disposeLater, hasNativeSupport
protected UdpResources(LoopResources defaultLoops)
public static UdpResources get()
public static UdpResources set(LoopResources loops)
LoopResources
will be disposed.loops
- a new LoopResources
to replace the currentpublic static UdpResources reset()
public static void shutdown()
UdpResources
without resetting them,
effectively cleaning up associated resources without creating new ones.
This method is NOT blocking. It is implemented as fire-and-forget.
Use shutdownLater()
when you need to observe the final
status of the operation, combined with Mono.block()
if you need to synchronously wait for the underlying resources to be disposed.public static Mono<Void> shutdownLater()
UdpResources
without resetting them,
effectively cleaning up associated resources without creating new ones. This only
occurs when the returned Mono
is subscribed to.
The quiet period will be 2s
and the timeout will be 15s
Mono
triggering the shutdown()
when subscribed to.public static Mono<Void> shutdownLater(java.time.Duration quietPeriod, java.time.Duration timeout)
UdpResources
without resetting them,
effectively cleaning up associated resources without creating new ones. This only
occurs when the returned Mono
is subscribed to.
It is guaranteed that the disposal of the underlying LoopResources will not happen before
quietPeriod
is over. If a task is submitted during the quietPeriod
,
it is guaranteed to be accepted and the quietPeriod
will start over.quietPeriod
- the quiet period as described abovetimeout
- the maximum amount of time to wait until the disposal of the underlying
LoopResources regardless if a task was submitted during the quiet periodMono
triggering the shutdown()
when subscribed to.protected void _dispose()
@Deprecated protected Mono<Void> _disposeLater()
_disposeLater(Duration, Duration)
2s
and the timeout will be 15s
protected Mono<Void> _disposeLater(java.time.Duration quietPeriod, java.time.Duration timeout)
quietPeriod
is over. If a task is submitted during the quietPeriod
,
it is guaranteed to be accepted and the quietPeriod
will start over.quietPeriod
- the quiet period as described abovetimeout
- the maximum amount of time to wait until the disposal of the underlying
LoopResources regardless if a task was submitted during the quiet periodpublic boolean isDisposed()
isDisposed
in interface Disposable
public Class<? extends Channel> onChannel(EventLoopGroup group)
LoopResources
onChannel
in interface LoopResources
group
- the source EventLoopGroup
to assign a loop fromClass
target for the underlying Channel
factorypublic <CHANNEL extends Channel> CHANNEL onChannel(Class<CHANNEL> channelType, EventLoopGroup group)
LoopResources
Channel
selection.onChannel
in interface LoopResources
CHANNEL
- the Channel
implementationchannelType
- the channel typegroup
- the source EventLoopGroup
to assign a loop fromChannel
instancepublic <CHANNEL extends Channel> Class<? extends CHANNEL> onChannelClass(Class<CHANNEL> channelType, EventLoopGroup group)
LoopResources
Channel
class selection.onChannelClass
in interface LoopResources
CHANNEL
- the Channel
implementationchannelType
- the channel typegroup
- the source EventLoopGroup
to assign a loop fromChannel
classpublic EventLoopGroup onClient(boolean useNative)
LoopResources
EventLoopGroup
creation.onClient
in interface LoopResources
useNative
- should use native group if current environment supports itEventLoopGroup
public Class<? extends DatagramChannel> onDatagramChannel(EventLoopGroup group)
LoopResources
onDatagramChannel
in interface LoopResources
group
- the source EventLoopGroup
to assign a loop fromClass
target for the underlying Channel
factorypublic EventLoopGroup onServer(boolean useNative)
LoopResources
EventLoopGroup
creation,
this is the EventLoopGroup
for the child channel.onServer
in interface LoopResources
useNative
- should use native group if current environment supports itEventLoopGroup
public Class<? extends ServerChannel> onServerChannel(EventLoopGroup group)
LoopResources
onServerChannel
in interface LoopResources
group
- the source EventLoopGroup
to assign a loop fromClass
target for the underlying ServerChannel
factorypublic EventLoopGroup onServerSelect(boolean useNative)
LoopResources
EventLoopGroup
creation,
this is the EventLoopGroup
for the acceptor channel.onServerSelect
in interface LoopResources
useNative
- should use native group if current environment supports itEventLoopGroup
public boolean preferNative()
LoopResources
EventLoopGroup
and Channel
preferNative
in interface LoopResources
EventLoopGroup
and Channel
public boolean daemon()
LoopResources
EventLoopGroup
should not be shutdowndaemon
in interface LoopResources
EventLoopGroup
should not be shutdownprotected static UdpResources getOrCreate(@Nullable LoopResources loops, java.util.function.Function<LoopResources,UdpResources> onNew, String name)
loops
- the eventual new LoopResources
onNew
- a UdpResources
factoryname
- a name for resourcesUdpResources