package com.thomsonreuters.ema.example.scala import com.thomsonreuters.ema.access.Msg import com.thomsonreuters.ema.access.AckMsg import com.thomsonreuters.ema.access.GenericMsg import com.thomsonreuters.ema.access.OmmArray import com.thomsonreuters.ema.access.RefreshMsg import com.thomsonreuters.ema.access.StatusMsg import com.thomsonreuters.ema.access.UpdateMsg import com.thomsonreuters.ema.access.Data import com.thomsonreuters.ema.access.DataType; import com.thomsonreuters.ema.access.DataType.DataTypes import com.thomsonreuters.ema.access.EmaFactory import com.thomsonreuters.ema.access.FieldEntry import com.thomsonreuters.ema.access.FieldList import com.thomsonreuters.ema.access.OmmConsumer import com.thomsonreuters.ema.access.OmmConsumerClient import com.thomsonreuters.ema.access.OmmConsumerEvent import com.thomsonreuters.ema.access.OmmException import com.thomsonreuters.ema.access.ElementList import com.thomsonreuters.ema.rdm.EmaRdm import com.thomsonreuters.ema.access.OmmConsumerConfig; import com.thomsonreuters.ema.access.ReqMsg; import com.thomsonreuters.ema.access.ElementList; import com.thomsonreuters.ema.access.OmmArray; import com.thomsonreuters.ema.access.EmaUtility; import scala.collection.mutable.Set; class AppClient extends OmmConsumerClient { def onRefreshMsg(refreshMsg: RefreshMsg,event: OmmConsumerEvent) { println("Refresh Message of: " + (if (refreshMsg.hasName()) refreshMsg.name() else "")) println("Service Name: " + (if (refreshMsg.hasServiceName()) refreshMsg.serviceName() else "")) println("Item State: " + refreshMsg.state()); //println(refreshMsg) val a = refreshMsg.payload().fieldList().size println(a) decode(refreshMsg.payload().fieldList()) } def decode(fieldList: FieldList){ fieldList.forEach( (fieldEntry:FieldEntry) => { println("\tFid: " + fieldEntry.fieldId() + " Name: " + fieldEntry.name() + " DataType: " + DataType.asString(fieldEntry.load().dataType()) + " Value: " + fieldEntry.load()) }) } def onUpdateMsg(updateMsg: UpdateMsg,event: OmmConsumerEvent) { println("Update Message of: " + (if (updateMsg.hasName()) updateMsg.name() else "")) println("Service Name: " + (if (updateMsg.hasServiceName()) updateMsg.serviceName() else "")) println(updateMsg) } def onStatusMsg(statusMsg: StatusMsg,event: OmmConsumerEvent) { println("Status Message of:" + (if (statusMsg.hasName()) statusMsg.name() else "")) println("Service Name: " + (if (statusMsg.hasServiceName()) statusMsg.serviceName() else "")) if (statusMsg.hasState()) println("Item State: " + statusMsg.state()) println() } def onGenericMsg(genericMsg: GenericMsg,event: OmmConsumerEvent) { } def onAckMsg(ackMsg: AckMsg,event: OmmConsumerEvent) { } def onAllMsg(msg: Msg,event: OmmConsumerEvent) { } } object ConsumerClient { def main (args:Array[String]) { var myapp = new AppClient var consumer: OmmConsumer = null val appClient: AppClient = new AppClient() val config: OmmConsumerConfig = EmaFactory.createOmmConsumerConfig() consumer = EmaFactory.createOmmConsumer(config.host("test").username("test")); val reqMsg = EmaFactory.createReqMsg(); var itemNames: scala.collection.mutable.Set[String] = Set("INR=") var domainType: Int = EmaRdm.MMT_MARKET_PRICE consumer.registerClient(reqMsg.serviceName("test").domainType(domainType).name(itemNames.head), appClient) Thread.sleep(180 * 1000) if (consumer != null) consumer.uninitialize() System.exit(0); } }