1
2
3
4
5
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 }