package com.activequant.interfaces.transport; import com.activequant.domainmodel.ETransportType; import com.activequant.domainmodel.Instrument; import com.activequant.domainmodel.MarketDataInstrument; import com.activequant.domainmodel.TradeableInstrument; import com.activequant.domainmodel.exceptions.TransportException; /** * If possible, always use the typed methods. * @author ustaudinger * */ public interface ITransportFactory { public IPublisher getPublisher(ETransportType transType, String id) throws TransportException; public IReceiver getReceiver(ETransportType transType, String id) throws TransportException; public IPublisher getPublisher(ETransportType transType, Instrument instrument) throws TransportException; public IReceiver getReceiver(ETransportType transType, Instrument instrument) throws TransportException; public IPublisher getPublisher(ETransportType transType, MarketDataInstrument instrument) throws TransportException; public IReceiver getReceiver(ETransportType transType, MarketDataInstrument instrument) throws TransportException; public IPublisher getPublisher(ETransportType transType, TradeableInstrument instrument) throws TransportException; public IReceiver getReceiver(ETransportType transType, TradeableInstrument instrument) throws TransportException; public IPublisher getPublisher(String channel) throws TransportException; public IReceiver getReceiver(String channel) throws TransportException; }