Class DefaultQueryPacketManager

java.lang.Object
eu.cloudnetservice.driver.impl.network.protocol.DefaultQueryPacketManager
All Implemented Interfaces:
eu.cloudnetservice.driver.network.protocol.QueryPacketManager, Closeable, AutoCloseable

public class DefaultQueryPacketManager extends Object implements eu.cloudnetservice.driver.network.protocol.QueryPacketManager, Closeable
The default implementation of the query manager.
Since:
4.0
  • 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

      @NonNull public @NonNull eu.cloudnetservice.driver.network.NetworkChannel networkChannel()
      Specified by:
      networkChannel in interface eu.cloudnetservice.driver.network.protocol.QueryPacketManager
    • waitingHandlerCount

      public long waitingHandlerCount()
      Specified by:
      waitingHandlerCount in interface eu.cloudnetservice.driver.network.protocol.QueryPacketManager
    • hasWaitingHandler

      public boolean hasWaitingHandler(@NonNull @NonNull UUID queryUniqueId)
      Specified by:
      hasWaitingHandler in interface eu.cloudnetservice.driver.network.protocol.QueryPacketManager
    • waitingHandler

      @Nullable public @Nullable CompletableFuture<eu.cloudnetservice.driver.network.protocol.Packet> waitingHandler(@NonNull @NonNull UUID queryUniqueId)
      Specified by:
      waitingHandler in interface eu.cloudnetservice.driver.network.protocol.QueryPacketManager
    • sendQueryPacket

      @NonNull public @NonNull CompletableFuture<eu.cloudnetservice.driver.network.protocol.Packet> sendQueryPacket(@NonNull @NonNull eu.cloudnetservice.driver.network.protocol.Packet packet)
      Specified by:
      sendQueryPacket in interface eu.cloudnetservice.driver.network.protocol.QueryPacketManager
    • close

      public void close()
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
    • 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.