Class ClajPinger
java.lang.Object
arc.net.Connection
arc.net.Client
com.xpdustry.claj.api.ClajPinger
- All Implemented Interfaces:
arc.net.EndPoint, Runnable
public class ClajPinger
extends arc.net.Client
Note that
But if one of them are called while another is running, the last one is canceled.
pingHost(String, int, Cons, Cons), requestRoomList(String, int, Cons, Cons) and joinRoom(String, int, long, Cons, Cons, Cons) are non-blocking operations. But if one of them are called while another is running, the last one is canceled.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected static classModified serializer that reads only one packet type in pinging mode. -
Field Summary
FieldsModifier and TypeFieldDescriptionbooleanIftrue, current and future operations will be canceled.protected Stringprotected booleanprotected intstatic intIn ms.protected arc.func.Cons<Exception> protected booleanprotected Runnableprotected arc.func.Cons<ClajRoom<?>> static intIn ms.protected arc.func.Cons<com.xpdustry.claj.common.status.RejectReason> protected arc.func.Cons<Exception> protected booleanprotected arc.func.Cons<ByteBuffer> static intIn ms.protected com.xpdustry.claj.common.packets.RoomJoinRequestPacketprotected arc.func.Cons<Exception> protected arc.func.Cons<arc.struct.Seq<ClajRoom<?>>> protected booleanstatic intIn ms.static final shortprotected arc.func.Cons<Exception> protected booleanprotected arc.func.Cons<com.xpdustry.claj.common.status.ServerState> static intIn ms.protected final ClajProviderprotected final com.xpdustry.claj.common.net.ClientReceiverprotected longprotected final Selectorprotected booleanprotected booleanprotected longprotected long -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidcancel()Cancel running operation.voidclose()voidclose(arc.net.DcReason reason) voidConnect usingconnectTimeoutand sameportfor TCP and UDP.voidbooleanbooleanbooleanbooleanprotected voidjoinRoom(String host, int port, long roomId, boolean withPassword, short password, arc.func.Cons<ByteBuffer> success, arc.func.Cons<com.xpdustry.claj.common.status.RejectReason> reject, arc.func.Cons<Exception> failed) voidjoinRoom(String host, int port, long roomId, short password, arc.func.Cons<ByteBuffer> success, arc.func.Cons<com.xpdustry.claj.common.status.RejectReason> reject, arc.func.Cons<Exception> failed) voidjoinRoom(String host, int port, long roomId, arc.func.Cons<ByteBuffer> success, arc.func.Cons<com.xpdustry.claj.common.status.RejectReason> reject, arc.func.Cons<Exception> failed) protected ByteBuffermakeJoinPacket(com.xpdustry.claj.common.packets.RoomJoinRequestPacket request) protected <T> ClajRoom<T> makeRoom(long roomId, boolean isProtected, com.xpdustry.claj.common.status.ClajType type, int clients, int maxClients, ByteBuffer state) voidpingHost(String host, int port, arc.func.Cons<com.xpdustry.claj.common.status.ServerState> success, arc.func.Cons<Exception> failed) protected <T> voidpostTask(arc.func.Cons<T> consumer, T object) protected voidprotected voidrequestRoomInfo(long roomId) <T> voidrequestRoomInfo(String host, int port, long roomId, arc.func.Cons<ClajRoom<T>> info, Runnable notFound, arc.func.Cons<Exception> failed) protected voidrequestRoomJoin(long roomId, boolean withPassword, short password) protected void<T> voidrequestRoomList(String host, int port, arc.func.Cons<arc.struct.Seq<ClajRoom<T>>> rooms, arc.func.Cons<Exception> failed) protected voidprotected <T> voidresetInfoState(arc.func.Cons<ClajRoom<T>> success, Runnable notFound, arc.func.Cons<Exception> failed) protected voidresetJoinState(arc.func.Cons<ByteBuffer> success, arc.func.Cons<com.xpdustry.claj.common.status.RejectReason> reject, arc.func.Cons<Exception> failed) protected <T> voidresetListState(arc.func.Cons<arc.struct.Seq<ClajRoom<T>>> rooms, arc.func.Cons<Exception> failed) protected voidresetPingState(arc.func.Cons<com.xpdustry.claj.common.status.ServerState> success, arc.func.Cons<Exception> failed) voidrun()protected voidprotected voidprotected voidrunInfoSuccess(long roomId, boolean isProtected, com.xpdustry.claj.common.status.ClajType type, int clients, int maxClients, ByteBuffer state) protected voidrunJoinDenied(com.xpdustry.claj.common.status.RejectReason reason) protected voidprotected voidprotected voidprotected voidrunListInfo(arc.struct.LongMap<ByteBuffer> states, arc.struct.ObjectSet<Long> protectedRooms) protected voidprotected voidrunPingSuccess(int version) voidsetCancelState(boolean cancel) voidsetRequestTimeout(int out) voidstart()voidstop()voidprotected voidtimeout()voidupdate(int t) Methods inherited from class arc.net.Client
connect, connect, connect, connect, discoverHosts, dispose, getSerialization, getUpdateThread, reconnect, reconnect, setDiscoveryPacket, setKeepAliveUDPMethods inherited from class arc.net.Connection
addListener, getArbitraryData, getEndPoint, getID, getLastProtocolError, getRemoteAddressTCP, getRemoteAddressUDP, getReturnTripTime, getTcpWriteBufferSize, isConnected, isIdle, removeListener, sendTCP, sendUDP, setArbitraryData, setIdleThreshold, setKeepAliveTCP, setName, setTimeout, toString, updateReturnTripTimeMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface arc.net.EndPoint
addListener, removeListener
-
Field Details
-
NO_PASSWORD
public static final short NO_PASSWORD- See Also:
-
connectTimeout
public static int connectTimeoutIn ms. -
pingTimeout
public static int pingTimeoutIn ms. -
joinTimeout
public static int joinTimeoutIn ms. -
infoTimeout
public static int infoTimeoutIn ms. -
listTimeout
public static int listTimeoutIn ms. -
provider
-
receiver
protected final com.xpdustry.claj.common.net.ClientReceiver receiver -
selector
-
connectHost
-
connectPort
protected int connectPort -
shutdown
protected volatile boolean shutdown -
starting
protected volatile boolean starting -
connecting
protected volatile boolean connecting -
canceling
public volatile boolean cancelingIftrue, current and future operations will be canceled. -
time
protected volatile long time -
timeout
protected volatile long timeout -
pingSuccess
protected arc.func.Cons<com.xpdustry.claj.common.status.ServerState> pingSuccess -
pingFailed
-
pinging
protected volatile boolean pinging -
listInfo
-
listFailed
-
listing
protected volatile boolean listing -
joinSuccess
-
joinDenied
protected arc.func.Cons<com.xpdustry.claj.common.status.RejectReason> joinDenied -
joinFailed
-
lastRequest
protected com.xpdustry.claj.common.packets.RoomJoinRequestPacket lastRequest -
requestedRoom
protected volatile long requestedRoom -
joining
protected volatile boolean joining -
infoSuccess
-
infoNotFound
-
infoFailed
-
infoing
protected volatile boolean infoing
-
-
Constructor Details
-
ClajPinger
-
-
Method Details
-
update
- Specified by:
updatein interfacearc.net.EndPoint- Overrides:
updatein classarc.net.Client- Throws:
IOException
-
run
-
start
public void start()- Specified by:
startin interfacearc.net.EndPoint- Overrides:
startin classarc.net.Client
-
stop
public void stop()- Specified by:
stopin interfacearc.net.EndPoint- Overrides:
stopin classarc.net.Client
-
close
public void close()- Specified by:
closein interfacearc.net.EndPoint- Overrides:
closein classarc.net.Client
-
close
public void close(arc.net.DcReason reason) - Overrides:
closein classarc.net.Connection
-
timeout
protected void timeout() -
cancel
public void cancel()Cancel running operation. -
failed
-
stopTask
-
isRunning
public boolean isRunning() -
isConnecting
public boolean isConnecting() -
isWorking
public boolean isWorking() -
setCancelState
public void setCancelState(boolean cancel) -
postTask
protected <T> void postTask(arc.func.Cons<T> consumer, T object) -
postTask
-
isRequestTimedOut
public boolean isRequestTimedOut() -
setRequestTimeout
public void setRequestTimeout(int out) -
makeRoom
protected <T> ClajRoom<T> makeRoom(long roomId, boolean isProtected, com.xpdustry.claj.common.status.ClajType type, int clients, int maxClients, ByteBuffer state) -
resetPingState
protected void resetPingState(arc.func.Cons<com.xpdustry.claj.common.status.ServerState> success, arc.func.Cons<Exception> failed) -
runPingSuccess
protected void runPingSuccess(int version) -
runPingFailed
-
resetListState
-
runListInfo
protected void runListInfo(arc.struct.LongMap<ByteBuffer> states, arc.struct.ObjectSet<Long> protectedRooms) -
runListFailed
-
resetJoinState
protected void resetJoinState(arc.func.Cons<ByteBuffer> success, arc.func.Cons<com.xpdustry.claj.common.status.RejectReason> reject, arc.func.Cons<Exception> failed) -
runJoinSuccess
protected void runJoinSuccess() -
runJoinDenied
protected void runJoinDenied(com.xpdustry.claj.common.status.RejectReason reason) -
runJoinFailed
-
resetInfoState
-
runInfoSuccess
protected void runInfoSuccess(long roomId, boolean isProtected, com.xpdustry.claj.common.status.ClajType type, int clients, int maxClients, ByteBuffer state) -
runInfoFailed
-
runInfoNotFound
protected void runInfoNotFound() -
connect
Connect usingconnectTimeoutand sameportfor TCP and UDP.
This also ensures that the client is running before connection, and can be canceled.- Throws:
IOException
-
pingHost
-
requestRoomList
-
joinRoom
public void joinRoom(String host, int port, long roomId, arc.func.Cons<ByteBuffer> success, arc.func.Cons<com.xpdustry.claj.common.status.RejectReason> reject, arc.func.Cons<Exception> failed) -
joinRoom
public void joinRoom(String host, int port, long roomId, short password, arc.func.Cons<ByteBuffer> success, arc.func.Cons<com.xpdustry.claj.common.status.RejectReason> reject, arc.func.Cons<Exception> failed) -
joinRoom
protected void joinRoom(String host, int port, long roomId, boolean withPassword, short password, arc.func.Cons<ByteBuffer> success, arc.func.Cons<com.xpdustry.claj.common.status.RejectReason> reject, arc.func.Cons<Exception> failed) -
requestRoomInfo
-
requestServerStatus
protected void requestServerStatus() -
requestRoomInfo
protected void requestRoomInfo(long roomId) -
requestRoomList
protected void requestRoomList() -
requestRoomJoin
protected void requestRoomJoin(long roomId, boolean withPassword, short password) -
makeJoinPacket
-