00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 package com.realtime.crossfire.jxclient.server.server;
00023
00024 import com.realtime.crossfire.jxclient.server.crossfire.Model;
00025 import com.realtime.crossfire.jxclient.server.socket.ClientSocket;
00026 import com.realtime.crossfire.jxclient.server.socket.ClientSocketListener;
00027 import com.realtime.crossfire.jxclient.util.DebugWriter;
00028 import java.io.IOException;
00029 import org.jetbrains.annotations.NotNull;
00030 import org.jetbrains.annotations.Nullable;
00031
00038 public class DefaultServerConnection implements ServerConnection {
00039
00043 @NotNull
00044 private final ClientSocket clientSocket;
00045
00053 public DefaultServerConnection(@NotNull final Model model, @Nullable final DebugWriter debugProtocol) throws IOException {
00054 clientSocket = new ClientSocket(model, debugProtocol);
00055 }
00056
00060 public void start() {
00061 clientSocket.start();
00062 }
00063
00068 public void stop() throws InterruptedException {
00069 clientSocket.stop();
00070 }
00071
00075 @Override
00076 public void addClientSocketListener(@NotNull final ClientSocketListener clientSocketListener) {
00077 clientSocket.addClientSocketListener(clientSocketListener);
00078 }
00079
00083 @Override
00084 public void removeClientSocketListener(@NotNull final ClientSocketListener clientSocketListener) {
00085 clientSocket.removeClientSocketListener(clientSocketListener);
00086 }
00087
00095 public void writePacket(@NotNull final byte[] packet, final int length) {
00096 clientSocket.writePacket(packet, length);
00097 }
00098
00102 @Override
00103 public void connect(@NotNull final String hostname, final int port) {
00104 clientSocket.connect(hostname, port);
00105 }
00106
00110 @Override
00111 public void disconnect(@NotNull final String reason) {
00112 clientSocket.disconnect(reason, false);
00113 }
00114
00115 }