Class DefaultQueryPacketManager
java.lang.Object
eu.cloudnetservice.driver.impl.network.protocol.DefaultQueryPacketManager
- All Implemented Interfaces:
eu.cloudnetservice.driver.network.protocol.QueryPacketManager, Closeable, AutoCloseable
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final eu.cloudnetservice.driver.network.NetworkChannelprotected final com.github.benmanes.caffeine.cache.Cache<UUID, CompletableFuture<eu.cloudnetservice.driver.network.protocol.Packet>> -
Constructor Summary
ConstructorsConstructorDescriptionDefaultQueryPacketManager(@NonNull eu.cloudnetservice.driver.network.NetworkChannel networkChannel) Constructs a new query manager for the given network with the provided query timeout. -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()booleanhasWaitingHandler(@NonNull UUID queryUniqueId) @NonNull eu.cloudnetservice.driver.network.NetworkChannelprotected @NonNull com.github.benmanes.caffeine.cache.RemovalListener<UUID, CompletableFuture<eu.cloudnetservice.driver.network.protocol.Packet>> Constructs a new removal listener for the cache, completing the future of a query packet with a timeout exception when evicted from the cache.@NonNull CompletableFuture<eu.cloudnetservice.driver.network.protocol.Packet> sendQueryPacket(@NonNull eu.cloudnetservice.driver.network.protocol.Packet packet) @Nullable CompletableFuture<eu.cloudnetservice.driver.network.protocol.Packet> waitingHandler(@NonNull UUID queryUniqueId) long
-
Field Details
-
networkChannel
protected final eu.cloudnetservice.driver.network.NetworkChannel networkChannel -
waitingHandlers
protected final com.github.benmanes.caffeine.cache.Cache<UUID, CompletableFuture<eu.cloudnetservice.driver.network.protocol.Packet>> waitingHandlers
-
-
Constructor Details
-
DefaultQueryPacketManager
public DefaultQueryPacketManager(@NonNull @NonNull eu.cloudnetservice.driver.network.NetworkChannel networkChannel) Constructs a new query manager for the given network with the provided query timeout.- Parameters:
networkChannel- the network channel associated with this manager.- Throws:
NullPointerException- if the given network channel is null.
-
-
Method Details
-
networkChannel
-
waitingHandlerCount
public long waitingHandlerCount()- Specified by:
waitingHandlerCountin interfaceeu.cloudnetservice.driver.network.protocol.QueryPacketManager
-
hasWaitingHandler
-
waitingHandler
-
sendQueryPacket
@NonNull public @NonNull CompletableFuture<eu.cloudnetservice.driver.network.protocol.Packet> sendQueryPacket(@NonNull @NonNull eu.cloudnetservice.driver.network.protocol.Packet packet) - Specified by:
sendQueryPacketin interfaceeu.cloudnetservice.driver.network.protocol.QueryPacketManager
-
close
public void close()- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable
-
newRemovalListener
@NonNull protected @NonNull com.github.benmanes.caffeine.cache.RemovalListener<UUID, CompletableFuture<eu.cloudnetservice.driver.network.protocol.Packet>> newRemovalListener()Constructs a new removal listener for the cache, completing the future of a query packet with a timeout exception when evicted from the cache.- Returns:
- a new removal listeners for unanswered packet future completion.
-