*/
class XMLRPC extends JS {
- public XMLRPC(String url, String method) { this(url, method, new HTTP(url)); }
- public XMLRPC(String url, String method, HTTP http) { this.http = http; this.url = url; this.method = method; }
- public Object get(Object name) { return new XMLRPC(url, (method.equals("") ? "" : method + ".") + name.toString(), http); }
+ public XMLRPC(String url, String method) {
+ this.http = url.startsWith("stdio:") ? HTTP.stdio : new HTTP(url);
+ this.url = url;
+ this.method = method;
+ }
+ public XMLRPC(String url, String method, XMLRPC httpSource) {
+ this.http = httpSource.http; this.url = url; this.method = method; }
+ public Object get(Object name) {
+ return new XMLRPC(url, (method.equals("") ? "" : method + ".") + name.toString(), this); }
/** this holds character content as we read it in -- since there is only one per instance, we don't support mixed content */
try {
new Helper().parse(br);
final Object result = fault ? new JSExn(objects.elementAt(0)) : objects.size() == 0 ? null : objects.elementAt(0);
- Scheduler.add(new Scheduler.Task() { public void perform() throws Exception { callback.unpause(result); }});
+ Scheduler.add(new Scheduler.Task() { public void perform() throws JSExn { callback.unpause(result); }});
} finally {
tracker.clear();
objects.setSize(0);
}
} catch (final JSExn e) {
final Exception e2 = e;
- Scheduler.add(new Scheduler.Task() { public void perform() throws Exception { callback.unpause(e2); }});
+ Scheduler.add(new Scheduler.Task() { public void perform() throws JSExn { callback.unpause(e2); }});
} catch (final IOException e) {
final Exception e2 = e;
- Scheduler.add(new Scheduler.Task() { public void perform() throws Exception { callback.unpause(new JSExn(e2)); }});
+ Scheduler.add(new Scheduler.Task() { public void perform() throws JSExn { callback.unpause(new JSExn(e2)); }});
} catch (final XML.Exn e) {
final Exception e2 = e;
- Scheduler.add(new Scheduler.Task() { public void perform() throws Exception { callback.unpause(new JSExn(e2)); }});
+ Scheduler.add(new Scheduler.Task() { public void perform() throws JSExn { callback.unpause(new JSExn(e2)); }});
}
}
}