package com.esir.sr.sweetsnake.api; import java.rmi.Remote; import java.rmi.RemoteException; import com.esir.sr.sweetsnake.enumeration.MoveDirection; import com.esir.sr.sweetsnake.exception.UnauthorizedActionException; /** * * @author Herminaƫl Rougier * @author Damien Jouanno * */ public interface IGameSessionCallback extends Remote { /** * * @param client * @throws RemoteException */ void ready(IClientCallback client) throws RemoteException; /** * * @param client * @throws UnauthorizedActionException * @throws RemoteException */ void startGame(IClientCallback client) throws UnauthorizedActionException, RemoteException; /** * * @param client * @throws RemoteException */ void leaveGame(IClientCallback client) throws RemoteException; /** * * @param client * @param direction * @throws UnauthorizedActionException * @throws RemoteException */ void move(IClientCallback client, MoveDirection direction) throws UnauthorizedActionException, RemoteException; }