Interface TransactionalPacketBinding<P extends RequestPacket<R>,R extends Packet>
- Type Parameters:
P- The type of the request packetR- The type of the response packet
- All Superinterfaces:
PacketBinding<P>
- All Known Subinterfaces:
FixedTransactionalPacketBinding<P,R>
RequestPacket and the other side will normally respond with a
response Packet.
Request/response pairs share an opcode, a additional byte will specify whether it's a request, response or a no-response.
-
Method Summary
Modifier and TypeMethodDescription<S extends EngineConnectionState>
TransactionalPacketBinding<P, R> addResponseHandler(Class<S> connectionState, PacketHandler<? super R, ? super S> responseHandler) Adds aPacketHandlerto handle a responsePacketon for a specific connection type.<S extends EngineConnectionState>
TransactionalPacketBinding<P, R> addResponseHandler(Class<S> connectionState, ResponsePacketHandler<? super P, ? super R, ? super S> handler) Adds aResponsePacketHandlerto handle a responsePacketfor a specific connection type.addResponseHandler(PacketHandler<? super R, EngineConnectionState> handler) Adds aPacketHandlerto handle a responsePacketon both platform sides.addResponseHandler(ResponsePacketHandler<? super P, ? super R, EngineConnectionState> handler) Adds aResponsePacketHandlerto handle a responsePacketon both platform sides.intopcode()Gets the opcode of theTransactionalPacketBinding.Gets the type of theRequestPacket.<S extends EngineConnectionState>
TransactionalPacketBinding<P, R> setRequestHandler(Class<S> connectionState, RequestPacketHandler<? super P, ? extends R, ? super S> handler) Sets theRequestPacketHandlerto handle aRequestPacketfor a specific connection type.setRequestHandler(RequestPacketHandler<? super P, ? extends R, EngineConnectionState> handler) Sets theRequestPacketHandlerto handle aRequestPacketon both connection sides.
-
Method Details
-
opcode
int opcode()Gets the opcode of theTransactionalPacketBinding. This opcode will be shared by the request and responsePackets.- Specified by:
opcodein interfacePacketBinding<P extends RequestPacket<R>>- Returns:
- The opcode
-
packetType
Gets the type of theRequestPacket.- Specified by:
packetTypein interfacePacketBinding<P extends RequestPacket<R>>- Returns:
- The request packet type
-
setRequestHandler
<S extends EngineConnectionState> TransactionalPacketBinding<P,R> setRequestHandler(Class<S> connectionState, RequestPacketHandler<? super P, ? extends R, ? super S> handler) Sets theRequestPacketHandlerto handle aRequestPacketfor a specific connection type. The difference with a normalPacketHandleris that it requires a responsePacketas return value.- Type Parameters:
S- The connection state- Parameters:
connectionState- The connection state the request packet should be handled byhandler- The handler of the request packet- Returns:
- This packet binding, for chaining
-
setRequestHandler
TransactionalPacketBinding<P,R> setRequestHandler(RequestPacketHandler<? super P, ? extends R, EngineConnectionState> handler) Sets theRequestPacketHandlerto handle aRequestPacketon both connection sides. The difference with a normalPacketHandleris that it requires a responsePacketas return value.- Parameters:
handler- The handler of the request packet- Returns:
- This packet binding, for chaining
-
addResponseHandler
<S extends EngineConnectionState> TransactionalPacketBinding<P,R> addResponseHandler(Class<S> connectionState, PacketHandler<? super R, ? super S> responseHandler) Adds aPacketHandlerto handle a responsePacketon for a specific connection type.Binding a response
PacketHandleris completely optional. It is also possible to append a handler to theCompletableFuturereturned byTransactionalPacketDispatcher.sendTo(EngineConnection, RequestPacket).- Type Parameters:
S- The connection state- Parameters:
connectionState- The connection state the response packet should be handled byresponseHandler- The handler of the response packet- Returns:
- This packet binding, for chaining
-
addResponseHandler
<S extends EngineConnectionState> TransactionalPacketBinding<P,R> addResponseHandler(Class<S> connectionState, ResponsePacketHandler<? super P, ? super R, ? super S> handler) Adds aResponsePacketHandlerto handle a responsePacketfor a specific connection type.Binding a response
PacketHandleris completely optional. It is also possible to append a handler to theCompletableFuturereturned byTransactionalPacketDispatcher.sendTo(EngineConnection, RequestPacket).- Type Parameters:
S- The connection state- Parameters:
connectionState- The connection state the response packet should be handled byhandler- The handler of the response packet- Returns:
- This packet binding, for chaining
-
addResponseHandler
TransactionalPacketBinding<P,R> addResponseHandler(PacketHandler<? super R, EngineConnectionState> handler) Adds aPacketHandlerto handle a responsePacketon both platform sides.Binding a response
PacketHandleris completely optional. It is also possible to append a handler to theCompletableFuturereturned byTransactionalPacketDispatcher.sendTo(EngineConnection, RequestPacket).- Parameters:
handler- The handler of the response packet- Returns:
- This packet binding, for chaining
-
addResponseHandler
TransactionalPacketBinding<P,R> addResponseHandler(ResponsePacketHandler<? super P, ? super R, EngineConnectionState> handler) Adds aResponsePacketHandlerto handle a responsePacketon both platform sides.Binding a response
PacketHandleris completely optional. It is also possible to append a handler to theCompletableFuturereturned byTransactionalPacketDispatcher.sendTo(EngineConnection, RequestPacket).- Parameters:
handler- The handler of the response packet- Returns:
- This packet binding, for chaining
-