Package com.opengamma.livedata.server.distribution

Source Code of com.opengamma.livedata.server.distribution.FudgeSender

/**
* 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);
  }

}
TOP

Related Classes of com.opengamma.livedata.server.distribution.FudgeSender

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.