Clover Coverage Report - JmDNS 3.4.1
Coverage timestamp: Thu Aug 25 2011 13:06:33 CEST
../../../../../img/srcFileCovDistChart2.png 70% of files have more coverage
24   141   16   2
6   76   0.67   12
12     1.33  
1    
 
  Renewer       Line # 22 24 0% 16 34 19% 0.1904762
 
  (19)
 
1    // Copyright 2003-2005 Arthur van Hoff, Rick Blair
2    // Licensed under Apache License version 2.0
3    // Original license LGPL
4   
5    package javax.jmdns.impl.tasks.state;
6   
7    import java.io.IOException;
8    import java.util.Timer;
9    import java.util.logging.Logger;
10   
11    import javax.jmdns.impl.DNSOutgoing;
12    import javax.jmdns.impl.DNSRecord;
13    import javax.jmdns.impl.JmDNSImpl;
14    import javax.jmdns.impl.ServiceInfoImpl;
15    import javax.jmdns.impl.constants.DNSConstants;
16    import javax.jmdns.impl.constants.DNSRecordClass;
17    import javax.jmdns.impl.constants.DNSState;
18   
19    /**
20    * The Renewer is there to send renewal announcement when the record expire for ours infos.
21    */
 
22    public class Renewer extends DNSStateTask {
23    static Logger logger = Logger.getLogger(Renewer.class.getName());
24   
 
25  51 toggle public Renewer(JmDNSImpl jmDNSImpl) {
26  51 super(jmDNSImpl, defaultTTL());
27   
28  51 this.setTaskState(DNSState.ANNOUNCED);
29  51 this.associate(DNSState.ANNOUNCED);
30    }
31   
32    /*
33    * (non-Javadoc)
34    * @see javax.jmdns.impl.tasks.DNSTask#getName()
35    */
 
36  0 toggle @Override
37    public String getName() {
38  0 return "Renewer(" + (this.getDns() != null ? this.getDns().getName() : "") + ")";
39    }
40   
41    /*
42    * (non-Javadoc)
43    * @see java.lang.Object#toString()
44    */
 
45  0 toggle @Override
46    public String toString() {
47  0 return super.toString() + " state: " + this.getTaskState();
48    }
49   
50    /*
51    * (non-Javadoc)
52    * @see javax.jmdns.impl.tasks.DNSTask#start(java.util.Timer)
53    */
 
54  51 toggle @Override
55    public void start(Timer timer) {
56  51 if (!this.getDns().isCanceling() && !this.getDns().isCanceled()) {
57  51 timer.schedule(this, DNSConstants.ANNOUNCED_RENEWAL_TTL_INTERVAL, DNSConstants.ANNOUNCED_RENEWAL_TTL_INTERVAL);
58    }
59    }
60   
 
61  0 toggle @Override
62    public boolean cancel() {
63  0 this.removeAssociation();
64   
65  0 return super.cancel();
66    }
67   
68    /*
69    * (non-Javadoc)
70    * @see javax.jmdns.impl.tasks.state.DNSStateTask#getTaskDescription()
71    */
 
72  0 toggle @Override
73    public String getTaskDescription() {
74  0 return "renewing";
75    }
76   
77    /*
78    * (non-Javadoc)
79    * @see javax.jmdns.impl.tasks.state.DNSStateTask#checkRunCondition()
80    */
 
81  0 toggle @Override
82    protected boolean checkRunCondition() {
83  0 return !this.getDns().isCanceling() && !this.getDns().isCanceled();
84    }
85   
86    /*
87    * (non-Javadoc)
88    * @see javax.jmdns.impl.tasks.state.DNSStateTask#createOugoing()
89    */
 
90  0 toggle @Override
91    protected DNSOutgoing createOugoing() {
92  0 return new DNSOutgoing(DNSConstants.FLAGS_QR_RESPONSE | DNSConstants.FLAGS_AA);
93    }
94   
95    /*
96    * (non-Javadoc)
97    * @see javax.jmdns.impl.tasks.state.DNSStateTask#buildOutgoingForDNS(javax.jmdns.impl.DNSOutgoing)
98    */
 
99  0 toggle @Override
100    protected DNSOutgoing buildOutgoingForDNS(DNSOutgoing out) throws IOException {
101  0 DNSOutgoing newOut = out;
102  0 for (DNSRecord answer : this.getDns().getLocalHost().answers(DNSRecordClass.UNIQUE, this.getTTL())) {
103  0 newOut = this.addAnswer(newOut, null, answer);
104    }
105  0 return newOut;
106    }
107   
108    /*
109    * (non-Javadoc)
110    * @see javax.jmdns.impl.tasks.state.DNSStateTask#buildOutgoingForInfo(javax.jmdns.impl.ServiceInfoImpl, javax.jmdns.impl.DNSOutgoing)
111    */
 
112  0 toggle @Override
113    protected DNSOutgoing buildOutgoingForInfo(ServiceInfoImpl info, DNSOutgoing out) throws IOException {
114  0 DNSOutgoing newOut = out;
115  0 for (DNSRecord answer : info.answers(DNSRecordClass.UNIQUE, this.getTTL(), this.getDns().getLocalHost())) {
116  0 newOut = this.addAnswer(newOut, null, answer);
117    }
118  0 return newOut;
119    }
120   
121    /*
122    * (non-Javadoc)
123    * @see javax.jmdns.impl.tasks.state.DNSStateTask#recoverTask(java.lang.Throwable)
124    */
 
125  0 toggle @Override
126    protected void recoverTask(Throwable e) {
127  0 this.getDns().recover();
128    }
129   
130    /*
131    * (non-Javadoc)
132    * @see javax.jmdns.impl.tasks.state.DNSStateTask#advanceTask()
133    */
 
134  0 toggle @Override
135    protected void advanceTask() {
136  0 this.setTaskState(this.getTaskState().advance());
137  0 if (!this.getTaskState().isAnnounced()) {
138  0 cancel();
139    }
140    }
141    }