import java.util.concurrent.TimeUnit;
import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.eid.container.Eid;
import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.rloc.container.Rloc;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.subscriber.address.grouping.SubscriberAddress;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.subscriber.address.grouping.SubscriberAddressBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.subscriber.data.grouping.SubscriberData;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.subscriber.data.grouping.SubscriberDataBuilder;
/**
* Request source RLOC in the mapping service with it's properties.
public class Subscriber {
// 1 day is default Cisco IOS mapping TTL
public static final int DEFAULT_SUBSCRIBER_TIMEOUT = (int) TimeUnit.DAYS.toMinutes(1);
- // Subscriber timeout should be slightly higher than the mapping TTL. Arbitrary value is set to 10 minutes
+ // Subscriber TTL should be slightly higher than the mapping TTL. Arbitrary value is set to 10 minutes
private static final int SUBSCRIBER_TIMEOUT_CONSTANT = 10;
- private SubscriberAddress address;
+ private SubscriberData data;
private Date lastRequestDate;
- private int subscriberTimeout = DEFAULT_SUBSCRIBER_TIMEOUT;
/**
* Constructor.
*
* @param srcRloc A source RLOC.
* @param srcEid A source EID.
- * @param subscriberTimeout Subscriber timeout in min(s).
+ * @param subscriberTtl Subscriber TTL in min(s).
*/
- public Subscriber(Rloc srcRloc, Eid srcEid, int subscriberTimeout) {
- this(srcRloc, srcEid, subscriberTimeout, new Date(System.currentTimeMillis()));
+ public Subscriber(Rloc srcRloc, Eid srcEid, int subscriberTtl) {
+ this(srcRloc, srcEid, subscriberTtl, new Date(System.currentTimeMillis()));
}
/**
*
* @param srcRloc A source RLOC.
* @param srcEid A source EID.
- * @param subscriberTimeout Subscriber timeout in min(s).
+ * @param subscriberTtl Subscriber TTL in min(s).
* @param lastRequestDate Last request date for this subscriber.
*/
- public Subscriber(Rloc srcRloc, Eid srcEid, int subscriberTimeout, Date lastRequestDate) {
+ public Subscriber(Rloc srcRloc, Eid srcEid, int subscriberTtl, Date lastRequestDate) {
super();
- this.address = new SubscriberAddressBuilder().setRloc(srcRloc).setEid(srcEid).build();
+ this.data = new SubscriberDataBuilder().setRloc(srcRloc).setEid(srcEid).setTtl(subscriberTtl).build();
this.lastRequestDate = lastRequestDate;
- this.subscriberTimeout = subscriberTimeout;
}
- public SubscriberAddress getSubscriberAddress() {
- return address;
+ public SubscriberData getSubscriberData() {
+ return data;
}
public Rloc getSrcRloc() {
- return address.getRloc();
+ return data.getRloc();
}
public Eid getSrcEid() {
- return address.getEid();
+ return data.getEid();
}
public Date getLastRequestDate() {
this.lastRequestDate = lastRequestDate;
}
- public int getSubscriberTimeout() {
- return subscriberTimeout;
- }
-
- public void setSubscriberTimeout(int subscriberTimeout) {
- this.subscriberTimeout = subscriberTimeout;
+ public int getSubscriberTtl() {
+ return data.getTtl();
}
// Only used in MapResolverTest
- public void setSubscriberTimeoutByRecordTtl(Integer recordTtl) {
- this.subscriberTimeout = recordTtlToSubscriberTime(recordTtl);
+ public void setSubscriberTtlByRecordTtl(Integer recordTtl) {
+ SubscriberDataBuilder sdb = new SubscriberDataBuilder(this.data);
+ sdb.setTtl(recordTtlToSubscriberTime(recordTtl));
+ this.data = sdb.build();
}
/**
- * Static method to calculate the subscriber timeout from a mapping record TTL. If a mapping record TTL is not
- * provided, use the default 1 day TTL. The suscriber timeout is the TTL plus a constant value.
+ * Static method to calculate the subscriber TTL from a mapping record TTL. If a mapping record TTL is not
+ * provided, use the default 1 day TTL. The subscriber TTL is the TTL plus a constant value.
*
* @param recordTtl The time to live (TTL) value
- * @return the subscriber timeout
+ * @return the subscriber TTL
*/
public static int recordTtlToSubscriberTime(Integer recordTtl) {
if (recordTtl != null) {
public boolean timedOut() {
return TimeUnit.MILLISECONDS
- .toMinutes(System.currentTimeMillis() - lastRequestDate.getTime()) > subscriberTimeout;
+ .toMinutes(System.currentTimeMillis() - lastRequestDate.getTime()) > data.getTtl();
}
@Override
public int hashCode() {
- return address.hashCode();
+ return data.hashCode();
}
@Override
return false;
}
Subscriber other = (Subscriber) obj;
- if (!address.equals(other.address)) {
+ if (!data.equals(other.data)) {
return false;
}
return true;
@Override
public String toString() {
- return "_rloc=" + address.getRloc().toString() + ", _eid=" + address.getEid().toString()
- + ", last request @ " + lastRequestDate.toString();
+ return "_rloc=" + data.getRloc().toString() + ", _eid=" + data.getEid().toString()
+ + ", _ttl=" + data.getTtl().toString() + ", last request @ " + lastRequestDate.toString();
}
}