package com.esir.sr.sweetsnake.api;
import com.esir.sr.sweetsnake.dto.GameSessionDTO;
import com.esir.sr.sweetsnake.dto.PlayerDTO;
import com.esir.sr.sweetsnake.enumeration.MoveDirection;
import com.esir.sr.sweetsnake.exception.UnableToConnectException;
public interface IClientForGui extends IClient
{
/**********************************************************************************************
* [BLOCK] GUI EXPOSED METHODS
**********************************************************************************************/
/**
* from the gui
*
*/
void reachServer();
/**
* from the gui
*
*/
void connect(String username) throws UnableToConnectException;
/**
* from the gui
*
*/
void disconnect();
/**
* from the gui
*
* @param player
*/
void sendRequest(PlayerDTO player);
/**
*
*/
void createSession();
/**
*
* @param session
*/
void joinSession(GameSessionDTO session);
/**
*
*/
void readyToPlay();
/**
* from the gui
*
*/
void startSession();
/**
* from the gui
*
*/
void leaveSession();
/**
* from the gui
*
* @param direction
*/
void moveSnake(MoveDirection direction);
}