Class RemoteNodeServer

java.lang.Object
eu.cloudnetservice.node.impl.cluster.defaults.RemoteNodeServer
All Implemented Interfaces:
eu.cloudnetservice.driver.base.Named, eu.cloudnetservice.node.cluster.NodeServer, Closeable, AutoCloseable

public class RemoteNodeServer extends Object implements eu.cloudnetservice.node.cluster.NodeServer
  • Field Details

    • COLLECTION_STRING

      private static final Type COLLECTION_STRING
    • networkClient

      private final eu.cloudnetservice.driver.network.NetworkClient networkClient
    • dataSyncRegistry

      private final eu.cloudnetservice.node.cluster.sync.DataSyncRegistry dataSyncRegistry
    • disconnectHandler

      private final NodeDisconnectHandler disconnectHandler
    • cloudServiceProvider

      private final eu.cloudnetservice.driver.provider.CloudServiceProvider cloudServiceProvider
    • info

      private final eu.cloudnetservice.driver.cluster.NetworkClusterNode info
    • provider

      private final eu.cloudnetservice.node.cluster.NodeServerProvider provider
    • serviceFactory

      private final eu.cloudnetservice.driver.provider.CloudServiceFactory serviceFactory
    • channel

      private volatile eu.cloudnetservice.driver.network.NetworkChannel channel
    • lastStateChange

      private volatile Instant lastStateChange
    • state

      private volatile eu.cloudnetservice.node.cluster.NodeServerState state
    • currentSnapshot

      private volatile eu.cloudnetservice.driver.cluster.NodeInfoSnapshot currentSnapshot
    • lastSnapshot

      private volatile eu.cloudnetservice.driver.cluster.NodeInfoSnapshot lastSnapshot
    • lastNodeInfoUpdate

      private volatile Instant lastNodeInfoUpdate
  • Constructor Details

    • RemoteNodeServer

      @Inject public RemoteNodeServer(@NonNull @NonNull eu.cloudnetservice.driver.cluster.NetworkClusterNode info, @NonNull @NonNull eu.cloudnetservice.node.cluster.NodeServerProvider provider, @NonNull @NonNull eu.cloudnetservice.driver.network.NetworkClient networkClient, @NonNull @NonNull eu.cloudnetservice.node.cluster.sync.DataSyncRegistry dataSyncRegistry, @NonNull @NonNull NodeDisconnectHandler disconnectHandler, @NonNull @NonNull eu.cloudnetservice.driver.provider.CloudServiceProvider cloudServiceProvider, @NonNull eu.cloudnetservice.driver.network.rpc.factory.RPCImplementationBuilder.InstanceAllocator<eu.cloudnetservice.driver.provider.CloudServiceFactory> serviceFactoryAllocator)
  • Method Details

    • name

      @NonNull public @NonNull String name()
      Specified by:
      name in interface eu.cloudnetservice.driver.base.Named
    • head

      public boolean head()
      Specified by:
      head in interface eu.cloudnetservice.node.cluster.NodeServer
    • available

      public boolean available()
      Specified by:
      available in interface eu.cloudnetservice.node.cluster.NodeServer
    • shutdown

      public void shutdown()
      Specified by:
      shutdown in interface eu.cloudnetservice.node.cluster.NodeServer
    • connect

      Specified by:
      connect in interface eu.cloudnetservice.node.cluster.NodeServer
    • draining

      public boolean draining()
      Specified by:
      draining in interface eu.cloudnetservice.node.cluster.NodeServer
    • drain

      public void drain(boolean doDrain)
      Specified by:
      drain in interface eu.cloudnetservice.node.cluster.NodeServer
    • syncClusterData

      public void syncClusterData(boolean force)
      Specified by:
      syncClusterData in interface eu.cloudnetservice.node.cluster.NodeServer
    • info

      @NonNull public @NonNull eu.cloudnetservice.driver.cluster.NetworkClusterNode info()
      Specified by:
      info in interface eu.cloudnetservice.node.cluster.NodeServer
    • provider

      @NonNull public @NonNull eu.cloudnetservice.node.cluster.NodeServerProvider provider()
      Specified by:
      provider in interface eu.cloudnetservice.node.cluster.NodeServer
    • state

      @NonNull public @NonNull eu.cloudnetservice.node.cluster.NodeServerState state()
      Specified by:
      state in interface eu.cloudnetservice.node.cluster.NodeServer
    • state

      public void state(@NonNull @NonNull eu.cloudnetservice.node.cluster.NodeServerState state)
      Specified by:
      state in interface eu.cloudnetservice.node.cluster.NodeServer
    • lastStateChange

      @NonNull public @NonNull Instant lastStateChange()
      Specified by:
      lastStateChange in interface eu.cloudnetservice.node.cluster.NodeServer
    • channel

      public @UnknownNullability eu.cloudnetservice.driver.network.NetworkChannel channel()
      Specified by:
      channel in interface eu.cloudnetservice.node.cluster.NodeServer
    • channel

      public void channel(@Nullable @Nullable eu.cloudnetservice.driver.network.NetworkChannel channel)
      Specified by:
      channel in interface eu.cloudnetservice.node.cluster.NodeServer
    • nodeInfoSnapshot

      public @UnknownNullability eu.cloudnetservice.driver.cluster.NodeInfoSnapshot nodeInfoSnapshot()
      Specified by:
      nodeInfoSnapshot in interface eu.cloudnetservice.node.cluster.NodeServer
    • lastNodeInfoSnapshot

      public @UnknownNullability eu.cloudnetservice.driver.cluster.NodeInfoSnapshot lastNodeInfoSnapshot()
      Specified by:
      lastNodeInfoSnapshot in interface eu.cloudnetservice.node.cluster.NodeServer
    • updateNodeInfoSnapshot

      public void updateNodeInfoSnapshot(@Nullable @Nullable eu.cloudnetservice.driver.cluster.NodeInfoSnapshot snapshot)
      Specified by:
      updateNodeInfoSnapshot in interface eu.cloudnetservice.node.cluster.NodeServer
    • lastNodeInfoUpdate

      @NonNull public @NonNull Instant lastNodeInfoUpdate()
      Specified by:
      lastNodeInfoUpdate in interface eu.cloudnetservice.node.cluster.NodeServer
    • serviceFactory

      @NonNull public @NonNull eu.cloudnetservice.driver.provider.CloudServiceFactory serviceFactory()
      Specified by:
      serviceFactory in interface eu.cloudnetservice.node.cluster.NodeServer
    • serviceProvider

      @Nullable public @Nullable eu.cloudnetservice.driver.provider.SpecificCloudServiceProvider serviceProvider(@NonNull @NonNull UUID uniqueId)
      Specified by:
      serviceProvider in interface eu.cloudnetservice.node.cluster.NodeServer
    • sendCommandLine

      @NonNull public @NonNull Collection<String> sendCommandLine(@NonNull @NonNull String commandLine)
      Specified by:
      sendCommandLine in interface eu.cloudnetservice.node.cluster.NodeServer
    • close

      public void close()
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Specified by:
      close in interface eu.cloudnetservice.node.cluster.NodeServer