org.cybergarage.upnp.event.Subscriber Maven / Gradle / Ivy
/******************************************************************
*
* CyberUPnP for Java
*
* Copyright (C) Satoshi Konno 2002
*
* File: Subscriber.java
*
* Revision;
*
* 01/29/03
* - first revision.
* 07/31/04
* - Added isExpired().
* 10/26/04
* - Oliver Newell
* - Added support the intinite time and fixed a bug in isExpired().
*
******************************************************************/
package org.cybergarage.upnp.event;
import java.net.*;
public class Subscriber
{
////////////////////////////////////////////////
// Constructor
////////////////////////////////////////////////
public Subscriber()
{
renew();
}
////////////////////////////////////////////////
// SID
////////////////////////////////////////////////
private String SID = null;
public String getSID() {
return SID;
}
public void setSID(String sid) {
SID = sid;
}
////////////////////////////////////////////////
// deliveryURL
////////////////////////////////////////////////
private String ifAddr = "";
public void setInterfaceAddress(String addr)
{
ifAddr = addr;
}
public String getInterfaceAddress()
{
return ifAddr;
}
////////////////////////////////////////////////
// deliveryURL
////////////////////////////////////////////////
private String deliveryURL = "";
public String getDeliveryURL() {
return deliveryURL;
}
public void setDeliveryURL(String deliveryURL) {
this.deliveryURL = deliveryURL;
try {
URL url = new URL(deliveryURL);
deliveryHost = url.getHost();
deliveryPath = url.getPath();
deliveryPort = url.getPort();
}
catch (Exception e) {}
}
private String deliveryHost = "";
private String deliveryPath = "";
private int deliveryPort = 0;
public String getDeliveryHost() {
return deliveryHost;
}
public String getDeliveryPath() {
return deliveryPath;
}
public int getDeliveryPort() {
return deliveryPort;
}
////////////////////////////////////////////////
// Timeout
////////////////////////////////////////////////
private long timeOut = 0;
public long getTimeOut() {
return timeOut;
}
public void setTimeOut(long value) {
timeOut = value;
}
public boolean isExpired()
{
long currTime = System.currentTimeMillis();
// Thanks for Oliver Newell (10/26/04)
if(timeOut == Subscription.INFINITE_VALUE )
return false;
// Thanks for Oliver Newell (10/26/04)
long expiredTime = getSubscriptionTime() + getTimeOut()*1000;
if (expiredTime < currTime)
return true;
return false;
}
////////////////////////////////////////////////
// SubscriptionTIme
////////////////////////////////////////////////
private long subscriptionTime = 0;
public long getSubscriptionTime() {
return subscriptionTime;
}
public void setSubscriptionTime(long time) {
subscriptionTime = time;
}
////////////////////////////////////////////////
// SEQ
////////////////////////////////////////////////
private long notifyCount = 0;
public long getNotifyCount() {
return notifyCount;
}
public void setNotifyCount(int cnt) {
notifyCount = cnt;
}
public void incrementNotifyCount() {
if (notifyCount == Long.MAX_VALUE) {
notifyCount = 1;
return;
}
notifyCount++;
}
////////////////////////////////////////////////
// renew
////////////////////////////////////////////////
public void renew()
{
setSubscriptionTime(System.currentTimeMillis());
setNotifyCount(0);
}
}