package org.menacheri.jetserver.util;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.atomic.AtomicLong;
import org.menacheri.jetserver.app.Session;
import org.menacheri.jetserver.event.Event;
import org.menacheri.jetserver.event.NetworkEvent;
import org.menacheri.jetserver.event.impl.DefaultSessionEventHandler;
public class SessionHandlerLatchCounter extends DefaultSessionEventHandler {
private final AtomicLong counter;
private final CountDownLatch latch;
public SessionHandlerLatchCounter(Session session, AtomicLong counter,
CountDownLatch latch) {
super(session);
this.counter = counter;
this.latch = latch;
}
@Override
public void onNetworkMessage(NetworkEvent event) {
counter.incrementAndGet();
latch.countDown();
System.out.println("invoked onNetworkMessage");
}
@Override
protected void onDisconnect(Event event)
{
counter.incrementAndGet();
latch.countDown();
System.out.println("invoked onDisconnect");
super.onDisconnect(event);
}
public AtomicLong getCounter() {
return counter;
}
public CountDownLatch getLatch() {
return latch;
}
}