// Copyright 2003-2005 Arthur van Hoff, Rick Blair // Licensed under Apache License version 2.0 // Original license LGPL package javax.jmdns.impl.tasks; import java.util.Timer; import java.util.logging.Level; import java.util.logging.Logger; import javax.jmdns.impl.JmDNSImpl; import javax.jmdns.impl.constants.DNSConstants; /** * Periodically removes expired entries from the cache. */ public class RecordReaper extends DNSTask { static Logger logger = Logger.getLogger(RecordReaper.class.getName()); /** * @param jmDNSImpl */ public RecordReaper(JmDNSImpl jmDNSImpl) { super(jmDNSImpl); } /* * (non-Javadoc) * @see javax.jmdns.impl.tasks.DNSTask#getName() */ @Override public String getName() { return "RecordReaper(" + (this.getDns() != null ? this.getDns().getName() : "") + ")"; } /* * (non-Javadoc) * @see javax.jmdns.impl.tasks.DNSTask#start(java.util.Timer) */ @Override public void start(Timer timer) { if (!this.getDns().isCanceling() && !this.getDns().isCanceled()) { timer.schedule(this, DNSConstants.RECORD_REAPER_INTERVAL, DNSConstants.RECORD_REAPER_INTERVAL); } } @Override public void run() { if (this.getDns().isCanceling() || this.getDns().isCanceled()) { return; } if (logger.isLoggable(Level.FINEST)) { logger.finest(this.getName() + ".run() JmDNS reaping cache"); } // Remove expired answers from the cache // ------------------------------------- this.getDns().cleanCache(); } }