package org.httpkit.client; import java.net.InetSocketAddress; import java.nio.channels.SelectionKey; public class PersistentConn implements Comparable<PersistentConn> { private final long timeoutTs; public final InetSocketAddress addr; public final SelectionKey key; public PersistentConn(long timeoutTs, InetSocketAddress addr, SelectionKey key) { this.timeoutTs = timeoutTs; this.addr = addr; this.key = key; } public boolean equals(Object obj) { // for PriorityQueue to remove by key and by addr return addr.equals(obj) || key.equals(obj); } public int compareTo(PersistentConn o) { return (int) (timeoutTs - o.timeoutTs); } public boolean isTimeout(long now) { return timeoutTs < now; } public String toString() { return addr + "; timeout=" + (timeoutTs - System.currentTimeMillis()) + "ms"; } }