Repeating Groups

来源:互联网 发布:淘宝客的机器软件下载 编辑:程序博客网 时间:2024/05/23 14:11

QuickFix能够发送包含重复甚至是递归重复组的消息。所以重复组将以一个暗示有多少个重复组的field开始。

这里有一个分发市场数据的消息。当这个消息被创建,重复组的数量为0.当你加这个组的时候,QuickFIX 将自动为你设置这个field。这种方法不会在field入口数目和消息间产生不一致。

    // create a market data message    FIX42::MarketDataSnapshotFullRefresh message(FIX::Symbol("QF"));    // repeating group in the form of MessageName::NoField    FIX42::MarketDataSnapshotFullRefresh::NoMDEntries group;    group.set(FIX::MDEntryType('0'));    group.set(FIX::MDEntryPx(12.32));    group.set(FIX::MDEntrySize(100));    group.set(FIX::OrderID("ORDERID"));    message.addGroup(group);    // no need to create a new group class if we are reusing the fields    group.set(FIX::MDEntryType('1'));    group.set(FIX::MDEntryPx(12.32));    group.set(FIX::MDEntrySize(100));    group.set(FIX::OrderID("ORDERID"));    message.addGroup(group);


读重复组消息:

从消息中拉出一个group,你需要提供你想要拉出的group。你应该首先检测entries field的数字来得到组的总个数。

    // should be 2    FIX::NoMDEntries noMDEntries;    message.get(noMDEntries);    FIX42::MarketDataSnapshotFullRefresh::NoMDEntries group;    FIX::MDEntryType MDEntryType;    FIX::MDEntryPx MDEntryPx;    FIX::MDEntrySize MDEntrySize;    FIX::OrderID orderID;    message.getGroup(1, group);    group.get(MDEntryType);    group.get(MDEntryPx);    group.get(MDEntrySize);    group.get(orderID);    message.getGroup(2, group);    group.get(MDEntryType);    group.get(MDEntryPx);    group.get(MDEntrySize);    group.get(orderID);


原创粉丝点击