latest activity timestamp

This commit is contained in:
rusefillc 2020-10-06 22:43:39 -04:00
parent cb47cde068
commit 58e27265e2
2 changed files with 16 additions and 0 deletions

View File

@ -52,8 +52,13 @@ public interface IoStream extends WriteStream, Closeable, StreamStatistics {
write(packet.getPacket());
writeInt(packet.getCrc());
flush();
onActivity();
}
long latestActivityTime();
void onActivity();
default void sendPacket(byte[] plainPacket) throws IOException {
if (plainPacket.length == 0)
throw new IllegalArgumentException("Empty packets are not valid.");

View File

@ -10,6 +10,7 @@ public abstract class AbstractIoStream implements IoStream {
protected StreamStats streamStats = new StreamStats();
private final AtomicInteger bytesOut = new AtomicInteger();
private long latestActivity;
@Override
public StreamStats getStreamStats() {
@ -30,6 +31,15 @@ public abstract class AbstractIoStream implements IoStream {
public void flush() throws IOException {
}
@Override
public void onActivity() {
latestActivity = System.currentTimeMillis();
}
public long latestActivityTime() {
return latestActivity;
}
@Override
public boolean isClosed() {
return isClosed;
@ -57,6 +67,7 @@ public abstract class AbstractIoStream implements IoStream {
maxPacketGap = (int) Math.max(maxPacketGap, now - previousPacketArrivalTime);
}
previousPacketArrivalTime = now;
AbstractIoStream.this.onActivity();
}
public void onArrived(int length) {