import EnvironmentPluginAPI.CustomNetworkMessages.NetworkMessage;
import NetworkAdapter.Interface.INetworkMessageReceivedEventHandler;
import NetworkAdapter.Interface.NetworkEventType;
import NetworkAdapter.Messages.NACKMessage;
/**
* Created with IntelliJ IDEA.
* User: Jason
* Date: 02.12.12
* Time: 15:31
* To change this template use File | Settings | File Templates.
*/
public class TestNetworkMessageHandler extends Thread implements INetworkMessageReceivedEventHandler {
private int messageCount;
private int targetMessageCount;
public TestNetworkMessageHandler(String name, int targetMessageCount) {
super(name);
this.targetMessageCount = targetMessageCount;
this.messageCount = 0;
}
@Override
public void run() {
boolean finished = false;
while (!finished) {
synchronized (this) {
System.err.println("checking incoming messages. count is " + messageCount);
if (messageCount == targetMessageCount) {
finished = true;
} else {
try {
wait();
} catch (InterruptedException e) {
interrupt();
}
}
}
}
}
/**
* this method will be called on event listeners, when a network message arrives
*
* @param message
*/
@Override
public void onMessageReceived(NetworkMessage message) {
synchronized (this) {
if (message instanceof NACKMessage) {
messageCount++;
}
notify();
}
}
@Override
public void onNetworkEvent(NetworkEventType networkEventType, int clientID) {
}
public int getMessageCount() {
return messageCount;
}
}