diff options
Diffstat (limited to 'src/javax/jmdns/impl/tasks/RecordReaper.java')
-rw-r--r-- | src/javax/jmdns/impl/tasks/RecordReaper.java | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/src/javax/jmdns/impl/tasks/RecordReaper.java b/src/javax/jmdns/impl/tasks/RecordReaper.java new file mode 100644 index 0000000..75dd0ef --- /dev/null +++ b/src/javax/jmdns/impl/tasks/RecordReaper.java @@ -0,0 +1,61 @@ +// 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(); + } + +}
\ No newline at end of file |