/** * Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.livedata.server.distribution; import org.fudgemsg.FudgeMsg; import org.fudgemsg.mapping.FudgeSerializer; import com.opengamma.livedata.LiveDataValueUpdateBean; import com.opengamma.livedata.LiveDataValueUpdateBeanFudgeBuilder; import com.opengamma.transport.FudgeMessageSender; import com.opengamma.util.ArgumentChecker; /** * A simple implementation of {@link MarketDataSender} that sends * market data to a {@link FudgeMessageSender}. * Useful in tests. */ public class FudgeSender implements MarketDataSender { /** * The Fudge sender. */ private final FudgeMessageSender _fudgeMessageSender; /** * The merket data distributor. */ private final MarketDataDistributor _distributor; /** * Creates an instance. * * @param fudgeMessageSender the sender, not null * @param distributor the distributor, not null */ public FudgeSender(FudgeMessageSender fudgeMessageSender, MarketDataDistributor distributor) { ArgumentChecker.notNull(fudgeMessageSender, "Fudge Message Sender"); ArgumentChecker.notNull(distributor, "Market Data Distributor"); _fudgeMessageSender = fudgeMessageSender; _distributor = distributor; } //------------------------------------------------------------------------- /** * Gets the Fudge sender. * * @return the sender, not null */ public FudgeMessageSender getFudgeMessageSender() { return _fudgeMessageSender; } /** * Gets the distributor. * * @return the distributor, not null */ @Override public MarketDataDistributor getDistributor() { return _distributor; } //------------------------------------------------------------------------- @Override public void sendMarketData(LiveDataValueUpdateBean data) { FudgeSerializer serializer = new FudgeSerializer(getFudgeMessageSender().getFudgeContext()); FudgeMsg fudgeMsg = LiveDataValueUpdateBeanFudgeBuilder.toFudgeMsg(serializer, data); getFudgeMessageSender().send(fudgeMsg); } }