1
2
3
4
5
6 package org.sourceforge.jvb3d.Network;
7
8 import java.io.IOException;
9 import java.net.InetSocketAddress;
10
11 import org.sourceforge.jvb3d.Model.IModelNetwork;
12
13 /***
14 * @author Łukasz Krzyżak
15 *
16 * Deklaracja fasady podsystemu sieciowego po stronie klienta.
17 */
18 public abstract class NetworkClientFacade implements INetworkModel {
19 IModelNetwork modelInterface;
20 /***
21 * numer portu na którym klient ma postawić socket słuchający
22 */
23 public final static int clientport = 4001;
24
25 /***
26 * wysyła update do wszystkich klientów
27 * @param avatarID ID obiektu którego update mamy wysłać
28 * @throws TimeoutException gdy wystapi timeout serwera
29 */
30 public abstract void sendUpdate(String avatarID) throws TimeoutException;
31
32 /***
33 * wysyła update o wszystkich obiektach do wszystkich klientów
34 */
35 public abstract void sendAllUpdate();
36
37 /***
38 * przyłącza klienta do serwera o podanym adresie
39 * @param serverAddress adres serwera
40 * @return ID avatara reprezentującego klienta na serwerze
41 * @throws IOException jeśli wystąpi błąd komunikacji
42 */
43 public abstract String join(InetSocketAddress serverAddress) throws IOException ;
44
45 /***
46 * propaguje dane otrzymane w pakiecie update z sieci do modelu
47 * @param packet otrzymany pakiet
48 */
49 abstract void forwardUpdate(UpdatePacket packet);
50
51 /***
52 * łączy fasadę z modelem
53 * @param iModel referencja do modelu
54 */
55 public void setModelInterface(IModelNetwork iModel) {
56 modelInterface = iModel;
57 }
58 }