/**
* Copyright (C) 2012 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.livedata.cogda.server;
import org.fudgemsg.FudgeContext;
import org.fudgemsg.FudgeMsg;
import org.fudgemsg.FudgeMsgEnvelope;
import org.fudgemsg.mapping.FudgeDeserializer;
import com.opengamma.livedata.LiveDataValueUpdateBean;
import com.opengamma.livedata.LiveDataValueUpdateBeanFudgeBuilder;
import com.opengamma.transport.FudgeMessageReceiver;
import com.opengamma.util.ArgumentChecker;
/**
* Listens to Fudge updates containing {@link CogdaLiveDataUpdateBean} instances and
* dispatches them to a {@link CogdaLiveDataServer}.
*/
public class CogdaLiveDataServerUpdateListener implements FudgeMessageReceiver {
private final CogdaLiveDataServer _liveDataServer;
public CogdaLiveDataServerUpdateListener(CogdaLiveDataServer liveDataServer) {
ArgumentChecker.notNull(liveDataServer, "liveDataServer");
_liveDataServer = liveDataServer;
}
/**
* Gets the liveDataServer.
* @return the liveDataServer
*/
public CogdaLiveDataServer getLiveDataServer() {
return _liveDataServer;
}
@Override
public void messageReceived(FudgeContext fudgeContext, FudgeMsgEnvelope msgEnvelope) {
// TODO kirk 2012-08-13 -- Check schema version.
FudgeMsg msg = msgEnvelope.getMessage();
LiveDataValueUpdateBean updateBean = LiveDataValueUpdateBeanFudgeBuilder.fromFudgeMsg(new FudgeDeserializer(fudgeContext), msg);
getLiveDataServer().liveDataReceived(updateBean);
}
}