00001
00002
00003
00004
00005 package javax.jmdns.impl.tasks;
00006
00007 import java.util.Timer;
00008 import java.util.logging.Level;
00009 import java.util.logging.Logger;
00010
00011 import javax.jmdns.impl.JmDNSImpl;
00012 import javax.jmdns.impl.constants.DNSConstants;
00013
00017 public class RecordReaper extends DNSTask {
00018 static Logger logger = Logger.getLogger(RecordReaper.class.getName());
00019
00023 public RecordReaper(JmDNSImpl jmDNSImpl) {
00024 super(jmDNSImpl);
00025 }
00026
00027
00028
00029
00030
00031 @Override
00032 public String getName() {
00033 return "RecordReaper(" + (this.getDns() != null ? this.getDns().getName() : "") + ")";
00034 }
00035
00036
00037
00038
00039
00040 @Override
00041 public void start(Timer timer) {
00042 if (!this.getDns().isCanceling() && !this.getDns().isCanceled()) {
00043 timer.schedule(this, DNSConstants.RECORD_REAPER_INTERVAL, DNSConstants.RECORD_REAPER_INTERVAL);
00044 }
00045 }
00046
00047 @Override
00048 public void run() {
00049 if (this.getDns().isCanceling() || this.getDns().isCanceled()) {
00050 return;
00051 }
00052 if (logger.isLoggable(Level.FINEST)) {
00053 logger.finest(this.getName() + ".run() JmDNS reaping cache");
00054 }
00055
00056
00057
00058 this.getDns().cleanCache();
00059 }
00060
00061 }