Class ClajPingerManager

java.lang.Object
com.xpdustry.claj.api.ClajPingerManager

public class ClajPingerManager extends Object
  • Field Details

    • workers

      protected final int workers
    • provider

      protected final ClajProvider provider
    • created

      protected int created
    • pingers

      protected final ClajPinger[] pingers
    • threads

      protected final Thread[] threads
    • reserved

      protected final boolean[] reserved
    • queue

      protected final arc.struct.Queue<arc.func.Cons2<ClajPinger, Runnable>> queue
  • Constructor Details

    • ClajPingerManager

      public ClajPingerManager(ClajProvider provider)
    • ClajPingerManager

      public ClajPingerManager(ClajProvider provider, int workers)
  • Method Details

    • getPingerName

      public String getPingerName(int index)
    • hasCreatedPingers

      public boolean hasCreatedPingers()
    • createdPingers

      public int createdPingers()
    • pingers

      public int pingers()
    • provider

      public ClajProvider provider()
    • ensurePingerCreated

      public ClajPinger ensurePingerCreated(int index)
    • ensurePingerPingerStarted

      public ClajPinger ensurePingerPingerStarted(int index)
    • get

      public ClajPinger get()
      Returns:
      the first pinger.
    • get

      public ClajPinger get(int index)
    • getOrNull

      public ClajPinger getOrNull(int index)
    • findFree

      public ClajPinger findFree()
      Search for a pinger that's not working.
    • findFreeI

      public int findFreeI()
    • isBusy

      public boolean isBusy(int index)
    • dispose

      public void dispose()
      Dispose all pingers.
    • stop

      public void stop()
      Stop all pingers and cancel the queue.
    • cancel

      public void cancel()
      Cancel the queue and current tasks.
    • submit

      protected void submit(arc.func.Cons2<ClajPinger, Runnable> task)
      Queue the task if all pingers are busy.
    • submit

      protected void submit(int index, arc.func.Cons2<ClajPinger, Runnable> task)
    • joinRoom

      public void joinRoom(ClajLink link, Runnable success, arc.func.Cons<com.xpdustry.claj.common.status.RejectReason> reject, arc.func.Cons<Exception> failed)
    • joinRoom

      public void joinRoom(ClajLink link, short password, Runnable success, arc.func.Cons<com.xpdustry.claj.common.status.RejectReason> reject, arc.func.Cons<Exception> failed)
    • pingHost

      public void pingHost(String ip, int port, arc.func.Cons<com.xpdustry.claj.common.status.ServerState> success, arc.func.Cons<Exception> failed)
      This queues new tasks if a ping is already in progress.
    • serverRooms

      public <T> void serverRooms(String ip, int port, arc.func.Cons<arc.struct.Seq<ClajRoom<T>>> rooms, arc.func.Cons<Exception> failed)
    • requestRoomInfo

      public <T> void requestRoomInfo(ClajLink link, arc.func.Cons<ClajRoom<T>> info, Runnable notFound, arc.func.Cons<Exception> failed)