////////////////////////////////////////
// Programming project code
// UniBw M, 2022, 2023, 2024
// www.unibw.de/inf2
// (c) Mark Minas (mark.minas@unibw.de)
////////////////////////////////////////

package pp.battleship.message.client;

/**
 * Visitor interface for processing all client messages.
 */
public interface ClientInterpreter {
    /**
     * Processes a received ShootMessage.
     *
     * @param msg  the ShootMessage to be processed
     * @param from the connection ID from which the message was received
     */
    void received(ShootMessage msg, int from);

    /**
     * Processes a received MapMessage.
     *
     * @param msg  the MapMessage to be processed
     * @param from the connection ID from which the message was received
     */
    void received(MapMessage msg, int from);

    /**
     * Processes a received AnimationFinishedMessage.
     *
     * @param msg  the MapMessage to be processed
     * @param from the connection ID from which the message was received
     */
    void received(AnimationFinishedMessage msg, int from);
}
