/**
* Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.engine.calcnode;
import org.fudgemsg.FudgeContext;
import org.fudgemsg.FudgeMsg;
import org.fudgemsg.MutableFudgeMsg;
import com.opengamma.transport.EndPointDescriptionProvider;
/**
* A configuration resource detailing the connection end-points for the services remote calculation nodes
* need to connect to the view processor.
*/
public class CalcNodeSocketConfiguration {
/**
* The end point for the computation cache.
*/
public static final String CACHE_SERVER_KEY = "cacheServer";
/**
* The end point for the remote node job dispatcher.
*/
public static final String JOB_SERVER_KEY = "jobServer";
private EndPointDescriptionProvider _cacheServer;
private EndPointDescriptionProvider _jobServer;
public void setCacheServer(final EndPointDescriptionProvider cacheServer) {
_cacheServer = cacheServer;
}
public EndPointDescriptionProvider getCacheServer() {
return _cacheServer;
}
public void setJobServer(final EndPointDescriptionProvider jobServer) {
_jobServer = jobServer;
}
public EndPointDescriptionProvider getJobServer() {
return _jobServer;
}
public FudgeMsg toFudgeMsg(final FudgeContext fudgeContext) {
final MutableFudgeMsg message = fudgeContext.newMessage();
if (getCacheServer() != null) {
message.add(CACHE_SERVER_KEY, getCacheServer().getEndPointDescription(fudgeContext));
}
if (getJobServer() != null) {
message.add(JOB_SERVER_KEY, getJobServer().getEndPointDescription(fudgeContext));
}
return message;
}
}