|
From: Colin D. <co...@ma...> - 2018-06-27 13:43:45
|
resending after trimming length:
On 06/27/2018 06:42 AM, Colin DuPlantis wrote:
> Here's a code snippet we use to retrieve the price from a market data
> message. I've also included a few helper methods. I omitted a lot of
> code that isn't relevant to your question.
>
> List<Group> mdEntries =
> messageFactory.getMdEntriesFromMessage(message);
> for(Group mdEntry : mdEntries) {
> char entryType =
> mdEntry.getChar(quickfix.field.MDEntryType.FIELD);
> switch(entryType) {
> case quickfix.field.MDEntryType.BID:
> mdEntry.getDecimal(quickfix.field.MDEntryPx.FIELD);
>
> /**
> * Get the MDEntry groups from the given message.
> *
> * @param inMessage a <code>Message</code> value
> * @return a <code>List<:Group></code> value
> * @throws FieldNotFound if the groups could not be extracted
> */
> public List<Group> getMdEntriesFromMessage(Message inMessage)
> throws FieldNotFound
> {
> List<Group> mdEntries = Lists.newArrayList();
> int noMdEntries =
> inMessage.getInt(quickfix.field.NoMDEntries.FIELD);
> for(int i=1;i<=noMdEntries;i++) {
> Group mdEntryGroup =
> createGroup(inMessage.getHeader().getString(quickfix.field.MsgType.FIELD),
> quickfix.field.NoMDEntries.FIELD);
> mdEntryGroup = inMessage.getGroup(i,
> mdEntryGroup);
> mdEntries.add(mdEntryGroup);
> }
> return mdEntries;
> }
>
> /** Creates a group based on the specified container message and
> group id */
> public Group createGroup(String msgType, int groupID)
> {
> return msgFactory.create(beginString, msgType, groupID);
> }
|