Package-level declarations

Types

Link copied to clipboard

This is a specialized data structure designed to efficiently store and retrieve the last outbound messages sent to a client. It would be much easier to use a simple LinkedList, but that means we have to use iterators and create node objects, which causes large amounts of garbage collection considering the rate at which messages flow through the server.



This class operates like a circular buffer, but adds messages from back to front. By doing this, we can use System.aray copy to efficiently copy messages out, start with the newest first.

Link copied to clipboard
class V086ClientHandler(val connectRemoteSocketAddress: InetSocketAddress, val controller: V086Controller, combinedKailleraController: CombinedKailleraController) : KoinComponent
Link copied to clipboard
class V086Controller(var server: KailleraServer, loginAction: LoginAction, ackAction: ACKAction, chatAction: ChatAction, createGameAction: CreateGameAction, joinGameAction: JoinGameAction, keepAliveAction: KeepAliveAction, quitGameAction: QuitGameAction, quitAction: QuitAction, startGameAction: StartGameAction, gameChatAction: GameChatAction, gameKickAction: GameKickAction, userReadyAction: UserReadyAction, dropGameAction: DropGameAction, closeGameAction: CloseGameAction, gameStatusAction: GameStatusAction, gameDesynchAction: GameDesynchAction, playerDesynchAction: PlayerDesynchAction, gameInfoAction: GameInfoAction, infoMessageAction: InfoMessageAction, flags: RuntimeFlags) : KailleraServerController, KoinComponent

High level logic for handling messages on a port. Not tied to an individual user.

Link copied to clipboard
object V086Utils

Util methods mostly for dealing ByteBuffers.