View Javadoc
1   /*
2    * Created on 2004-12-22
3    *
4    * Deklaracja fasady sieci po stronie klienta.
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  }