w3c.model.www.pep.extensions.remoteControl.Client
package w3c.model.www.pep.extensions.remoteControl;
import w3c.model.www.pep.*;
import w3c.model.www.pep.bags.*;
import w3c.model.www.pep.altlib.HTTPException;
public class Client extends Common
w3c.model.tools.basicweb.Client client;
int instructionNumber = 0;
String baseHeader;
public Client ( w3c.model.tools.basicweb.Client client, PEPAgent pepAgent) {
this.client = client;
baseHeader = pepAgent.nextFreeName(prefHeaderName, this, true);
}
public PEPExtensionInstance makeInstance ( InstanceContext instanceContext, String cmd) {
String headerName = baseHeader + String.valueOf(instructionNumber++);
ClientInstance ret = ClientInstance(headerName, cmd);
/* this extension self-adds it instances to the instanceContext for this mesage */
instanceContext.addExtensionInstance(this, ret);
return ret;
}
public PEPExtensionInstance makeInstance ( String headerNames[], int headerNameCount, InstanceContext instanceContext) {
throw InternalError("illegal call to default remoteControl.Client.makeInstance("+headerNames[0]+").");
}
public boolean generateHeaders ( InstanceContext instanceContext, int when) throws HTTPException{
if (when != PEPExtension.CONNECT))
return false;
String headerNames[] = String[1];
boolean wilds[] = boolean[1];
headerNames[0] = baseHeader;
wilds[0] = true;
ExtDecl extDecl = ExtDecl(instanceContext,
MapBag(instanceContext, URI, headerNames, wilds, 1),
StrengthBag(instanceContext, true));
// instanceContext.addExtensionInstance(this, makeInstance(headerNames, 1, instanceContext));
instanceContext.addExtDecl(extDecl, PEPMessage.PEP);
return super.generateHeaders(instanceContext, when);
}
void generateHeader ( PEPExtensionInstance inst, InstanceContext instanceContext, PEPMessage message) {
ClientInstance clientInstance = (ClientInstance)inst;
message.setHeaderValue(clientInstance.getHeaderName(), clientInstance.getCommand());
instanceContext.setRequiredExtensions();
}
void handleHeader ( PEPExtensionInstance inst, PEPMessage message) {
ClientInstance clientInstance = (ClientInstance)inst;
String result = message.getHeaderValue(clientInstance.getHeaderName());
if (result == null))
System.out.println("<!- Server didn't respond to "+clientInstance.getCommand()+" ->");
elseSystem.out.println("<!- Server responded to ""+clientInstance.getCommand()+"" with ""+result+"" ->");
}