1   /*
2    * Created on 2004-12-11
3    *
4    * TODO To change the template for this generated file go to
5    * Window - Preferences - Java - Code Style - Code Templates
6    */
7   package org.sourceforge.jvb3d.Network;
8   
9   import java.net.InetSocketAddress;
10  import java.net.SocketAddress;
11  
12  /***
13   * @author £ukasz Krzy¿ak
14   * 
15   * klasa testuj¹ca ClientManagera czy poprawnie obs³uguje join i update.
16   */
17  public class TestClientData extends ClientData {
18  	byte[] updateString = null;
19  
20  	long seqNumber = 0;
21  
22  	long lastPacketReceived = System.currentTimeMillis();
23  
24  	public boolean failure = false;
25  	public Exception lastException = null;
26  	
27  	public TestClientData(InetSocketAddress address) {
28  		clientAddress = address;
29  		avatarID = NetworkServerFacadeHolder.getNetworkFacade().createAvatar();
30  	}
31  
32  	public String getAvatarID() {
33  		return avatarID;
34  	}
35  
36  	public SocketAddress getClientAddress() {
37  		return clientAddress;
38  	}
39  
40  	public boolean validatePacket(UpdatePacket packet) {
41  		try{
42  		updateString = packet.getUpdateData();
43  		lastPacketReceived = System.currentTimeMillis();
44  		if (seqNumber < packet.getSeqNumber()) {
45  			seqNumber = packet.getSeqNumber();
46  			return true;
47  		}
48  		}
49  		catch(Exception e) {
50  			failure = true;
51  			lastException = e;
52  		}
53  		return false;
54  	}
55  
56  	public byte[] getLastUpdate() {
57  		return updateString;
58  	}
59  	
60  	public void sendUpdate(byte[] updateData) throws TimeoutException {
61  		if(System.currentTimeMillis() - lastPacketReceived > clientTimeout) throw new TimeoutException(clientAddress);
62  		updateString = updateData;
63  	}
64  }