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()); write(packet.getPacket());
writeInt(packet.getCrc()); writeInt(packet.getCrc());
flush(); flush();
onActivity();
} }
long latestActivityTime();
void onActivity();
default void sendPacket(byte[] plainPacket) throws IOException { default void sendPacket(byte[] plainPacket) throws IOException {
if (plainPacket.length == 0) if (plainPacket.length == 0)
throw new IllegalArgumentException("Empty packets are not valid."); 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(); protected StreamStats streamStats = new StreamStats();
private final AtomicInteger bytesOut = new AtomicInteger(); private final AtomicInteger bytesOut = new AtomicInteger();
private long latestActivity;
@Override @Override
public StreamStats getStreamStats() { public StreamStats getStreamStats() {
@ -30,6 +31,15 @@ public abstract class AbstractIoStream implements IoStream {
public void flush() throws IOException { public void flush() throws IOException {
} }
@Override
public void onActivity() {
latestActivity = System.currentTimeMillis();
}
public long latestActivityTime() {
return latestActivity;
}
@Override @Override
public boolean isClosed() { public boolean isClosed() {
return isClosed; return isClosed;
@ -57,6 +67,7 @@ public abstract class AbstractIoStream implements IoStream {
maxPacketGap = (int) Math.max(maxPacketGap, now - previousPacketArrivalTime); maxPacketGap = (int) Math.max(maxPacketGap, now - previousPacketArrivalTime);
} }
previousPacketArrivalTime = now; previousPacketArrivalTime = now;
AbstractIoStream.this.onActivity();
} }
public void onArrived(int length) { public void onArrived(int length) {