w3c.model.tools.basicweb.ProxyRequest
package w3c.model.tools.basicweb;
import java.io.*;
import java.net.*;
import w3c.model.www.pep.PEPAgent;
import w3c.model.www.pep.PEPClient;
import w3c.model.www.pep.altlib.ErrorContext;
class ProxyRequest extends Request
URL origUrl;
PEPClient pepClient;
/* proxies generated by a client */
ProxyRequest( Socket socket, InputStream in, OutputStream out, Method method, URL url, PEPAgent pepAgent, ErrorContext errorContext) {
super(socket, in, out, method, url, pepAgent, errorContext); /* user of proxy */
}
/* proxies generated by a server. The
PEPClient is passed to the CopyBodyProxy method. */
ProxyRequest( Socket socket, InputStream in, OutputStream out, PEPAgent pepAgent, ErrorContext errorContext, PEPClient pepClient) {
super(socket, in, out, pepAgent, errorContext); /* used by proxy */
this.pepClient = pepClient;
}
URL getOrigUrl () {return origUrl;}
boolean parseStartLine() {
if (!super.parseStartLine()))
return false;
try {
origUrl = URL(URI);
} catch (MalformedURLException e)) {
return false;
}
URI = origUrl.getFile();
return true;
}
void makeRequestLine( int methodNumber, URL url, String httpVersion) {
String requestURI = url == null ? URI : url.toExternalForm();
this.methodNumber = methodNumber;
this.URI = URI;
this.httpVersion = httpVersion;
startLine = methods[methodNumber] + " " + requestURI + " " + "HTTP/" + httpVersion;
}
MethodServer lookupMethod ( int methodNumber) {
switch (methodNumber)) {
case
case
case
case
return ProxyClient(pepClient, methods[methodNumber]);
default:
errorContext.promoteError(REQUEST_NOT_IMPLEMENTED);
return null;
}
}