Class DemoRequester wants to invoke Responder.revertString(), which demands a String, a CBstring, and a DescIn as its arguments. The latter two can/should be created using the RequesterUtil class. For CBstring to be created, a ResponseReceiver is necessary. A simple but in many cases sufficient example of a ResponseReceiver is shown below. When the Responder implementation calls the client back, the specified ResponseReceiver will be executed.
import alma.acs.callbacks.RequesterUtil;
import alma.acs.callbacks.ResponseReceiver;
import alma.acs.commandcenter.meta.Firestarter;
import alma.acs.container.ContainerServices;
import alma.mysubsystem.Responder;
public class DemoRequester {
void go () throws Exception {
// --- connect to component
Firestarter.configure(null, "te1.hq.eso.org", "3500");
Firestarter.prepare();
ContainerServices cs = Firestarter.giveContainerServices();
Responder responder = ResponderHelper.narrow(cs.getComponent("RESPONDER"));
// --- activate callback object
ResponseReceiver rere = new ResponseReceiver() {
public void incomingResponse(Object x) {
System.out.println("Incoming Response: "+x);
}
public void incomingException(Exception x) {
System.out.println("Responding failed: "+x);}
};
responder.revertString( "Hallo",
RequesterUtil.giveCBString(cs, rere),
RequesterUtil.giveDescIn() );
// --- do something else until response comes in
System.out.println("--> press exit to enter <--");
while (System.in.read() != 13)
;
// --- clean up and quit
Firestarter.godown();
}
}