public class CALL_FIX_ENGINE_SF_CallFIX extends MbJavaComputeNode implements IFixCallback {
//***
//*** UDP variables.
//***
protected String engineId = (String)getUserDefinedAttribute("FixEngineId");
//***
//*** Main evaluation method, called as an entry point to node.
//***
public void evaluate(MbMessageAssembly inAssembly) throws MbException {
// Set up the usual assemblies for our output message tree.
MbOutputTerminal out = getOutputTerminal("out");
MbMessage inMessage = inAssembly.getMessage();
MbMessage outMessage = new MbMessage();
MbMessageAssembly outAssembly = new MbMessageAssembly(inAssembly, outMessage);
this.copyMessageHeaders(inMessage, outMessage);
outMessage = this.setupOutputMessage(outMessage);
// Obtain our engine from the engine factory.
FixEngine engine = FixEngineFactory.getInst().getEngine(engineId, 60);
if (engine == null) {
// Throw exception here.
}
// Try to assemble our message class to be sent, based on the input tree.
FixMessage fixMsg = null;
try {
fixMsg = new FixMessage(inMessage);
}
catch (FixException e) {
// Throw exception here.
}
// Attempt to send a test message across the FIX connection.
FixResponse resp = null;
try {
resp = engine.sendMessage(fixMsg, this);
}
catch (SessionNotFound e) {
// Throw exception here.
}
// Assemble our response message.
outMessage = this.populateResponse(outMessage, engine, resp, fixMsg);
// Pass our message to the output terminal.
out.propagate(outAssembly);
}
}