private Host[] hosts;
private int startPort, endPort;
private String suffix;
+
+ private int size = 1; // initial, until refreshed.
public DNSLocator(Access access, String protocol, String host, String range) {
this.host = host;
}
public static DNSLocator create(Access access, String url) throws LocatorException {
- return new DNSLocator(access, url);
- }
+ return new DNSLocator(access, url);
+ }
- @Override
+ @Override
public URI get(Item item) throws LocatorException {
return hosts[((DLItem)item).cnt].uri;
}
}
}
hosts = temp;
+ size = temp.length * (endPort-startPort+1);
return true;
} catch (Exception e) {
access.log(Level.ERROR, e);
int slash, start;
int colon = aaf_locate.indexOf(':',_start);
if (colon > 0) {
- host = aaf_locate.substring(_start,colon);
+ host = aaf_locate.substring(_start,colon);
start = colon + 1;
int left = aaf_locate.indexOf('[', start);
if (left > 0) {
startPort = Integer.parseInt(aaf_locate.substring(left + 1, dash));
endPort = Integer.parseInt(aaf_locate.substring(dash + 1, right));
}
+ slash = aaf_locate.indexOf('/', start);
+ if(slash>=0) {
+ suffix = aaf_locate.substring(slash);
+ }
} else {
slash = aaf_locate.indexOf('/', start);
startPort = endPort = Integer.parseInt(aaf_locate.substring(start));
} else {
startPort = endPort = Integer.parseInt(aaf_locate.substring(start, slash));
+ suffix = aaf_locate.substring(slash);
}
}
} else {
- slash = aaf_locate.indexOf('/', _start);
- host = slash<_start?aaf_locate.substring(_start):aaf_locate.substring(_start,slash);
+ slash = aaf_locate.indexOf('/', _start);
+ host = slash<_start?aaf_locate.substring(_start):aaf_locate.substring(_start,slash);
startPort = endPort = defaultPort;
}
}
public String toString() {
- return uri.toString() + " - " + status.name();
+ return uri.toString() + " - " + status.name();
}
}
}
public void destroy() {}
+
+ public int size() {
+ return size;
+ }
}