package net.sf.colossus.client;
import java.util.Collection;
import net.sf.colossus.server.IServer;
/**
* Generic type of connection to the server. Right now we have only
* Socket-based connection (SocketClientThread); but the ClientThread
* should become unaware of the type of connection, only do the
* messageString-to-method-call and vice-versa translation,
* and the connection specific parts (read/write to socket or via e.g.
* a queue) to the ServerConnection class(es).
*/
public interface IServerConnection
{
public void setClient(Client client);
public String getReasonFail();
public String getVariantNameForInit();
public Collection<String> getPreliminaryPlayerNames();
public void startThread();
public void updatePlayerName(String playerName);
public IServer getIServer();
public boolean isAlreadyDown();
public void stopSocketClientThread(boolean sendDispose);
public void enforcedConnectionException();
public void requestSyncDelta(int lastRcvdMsgNr, int syncCounter);
public int abandonAndGetMessageCounter();
public int getDisposedQueueLen();
}