`
seafront12
  • 浏览: 4733 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
文章分类
社区版块
存档分类
最新评论

FIX message printer

 
阅读更多
import org.slf4j.Logger;
import quickfix.DataDictionary;
import quickfix.Field;
import quickfix.FieldMap;
import quickfix.FieldNotFound;
import quickfix.FieldType;
import quickfix.Group;
import quickfix.Message;
import quickfix.field.MsgType;
import java.util.Iterator;
public class FIXMsgPrinter {

   public static void print(Logger logger, DataDictionary dd, Message message) throws FieldNotFound {
      String msgType = message.getHeader().getString(MsgType.FIELD);
printFieldMap("", dd, msgType, message.getHeader(), logger);
printFieldMap("", dd, msgType, message, logger);
printFieldMap("", dd, msgType, message.getTrailer(), logger);
}

   private static void printFieldMap(String prefix, DataDictionary dd, String msgType, FieldMap fieldMap, Logger logger)
         throws FieldNotFound {

      Iterator fieldIterator = fieldMap.iterator();
      while (fieldIterator.hasNext()) {
         Field field = (Field) fieldIterator.next();
         if (!isGroupCountField(dd, field)) {
            String value = fieldMap.getString(field.getTag());
            if (dd.hasFieldValue(field.getTag())) {
               value = dd.getValueName(field.getTag(), fieldMap.getString(field.getTag())) + " (" + value + ")";
}
            logger.info(prefix + dd.getFieldName(field.getTag()) + ": " + value);
}
      }

      Iterator groupsKeys = fieldMap.groupKeyIterator();
      while (groupsKeys.hasNext()) {
         int groupCountTag = ((Integer) groupsKeys.next()).intValue();
logger.info(prefix + dd.getFieldName(groupCountTag) + ": count = "
+ fieldMap.getInt(groupCountTag));
Group g = new Group(groupCountTag, 0);
         int i = 1;
         while (fieldMap.hasGroup(i, groupCountTag)) {
            if (i > 1) {
               logger.info(prefix + "  ----");
}
            fieldMap.getGroup(i, g);
printFieldMap(prefix + "  ", dd, msgType, g, logger);
i++;
}
      }
   }

   private static boolean isGroupCountField(DataDictionary dd, Field field) {
      return dd.getFieldTypeEnum(field.getTag()) == FieldType.NumInGroup;
}
}
分享到:
评论

相关推荐

    printerfix.zip

    在Windows 10操作系统中,打印机问题可能会对日常工作带来不便,尤其当急需打印文档时。"printerfix.zip"文件很可能是为了解决此类问题而提供的一个修复工具或教程集合。这个压缩包可能包含了修复Win10打印机故障的...

    FixPrintSpooler_V2.0 printerfix.zip

    标题中的"FixPrintSpooler_V2.0 printerfix.zip"是一个修复打印后台处理程序(Print Spooler)问题的工具的压缩包,版本为2.0,名为"printerfix"。这个工具主要针对Windows操作系统中与Print Spooler服务相关的故障...

    Foxit PDF Printer 虚拟打印机

    Foxit PDF Printer是一款高效实用的虚拟打印机,专为将各种可打印内容转化为PDF文档而设计。这款工具使得用户能够方便快捷地将Word文档、Excel表格、图像、网页等各种格式的文件转换成统一的PDF格式,便于阅读、分享...

    VB6用printer对象打印文字和表格

    在VB6(Visual Basic 6)中,`Printer`对象是用于控制打印机的基本接口,它允许程序员直接向打印机发送指令,实现文字、图形和表格的打印功能。本篇将深入探讨如何利用`Printer`对象来打印文字和表格,以及相关的...

    fix print spooler2.0,win11\win10共享打印修复工具

    "fix print spooler 2.0, win11\win10 共享打印修复工具"是专门针对这个问题设计的一个实用工具。Print Spooler服务是Windows操作系统中的关键组件,负责管理打印机队列和处理打印任务。当该服务出现问题或者系统...

    airprinter 1.6.6.1 无限制版

    air printer(无线打印照片软件)V1.6.6.1 无限制特别版 如果你有台iPhone手机, 或者苹果iPad平板电脑,那么你可以很方便得利用苹果iOS系统内置AirPrint功能WiFi无线打印照片,Word,PDF等各种文件到你的Air Printer...

    printershare破解版

    printershare破解版

    php_printer.zip

    5. **结束打印**:在完成所有打印任务后,使用`printer_end_page()`和`printer_end_doc()`来结束当前页面和文档,最后用`printer_close()`关闭打印机连接。 6. **错误处理和调试**:`printer_last_error()`函数可以...

    php printer.dll

    例如,`printer_open()`用于打开一个打印机设备,`printer_start_doc()`用于开始一个新的打印文档,`printer_start_page()`则表示开始新的打印页,`printer_draw_text()`可以将文本绘制到页面上,而`printer_end_...

    SQL Pretty Printer 秘钥

    SQL Pretty Printer 秘钥 SQL Pretty Printer 是一款非常实用的SQL代码美化工具,可以把原本杂乱无章的SQL语句用结构化的方式重新展现,使SQL语句更加易于理解和维护。这个程 序用来帮助数据库管理员,开发人员格式...

    luci-app-usb-printer_1.0-2_all.ipk

    luci-app-usb-printer_1.0-2_all.ipk

    printershare premium 11.12.0破解版

    printershare premium 11.12.0破解版下载,android移动打印解决方案,具体如何调用可以百度,很多这种文章.

    SQL Pretty Printer V3.12 绿色破解版

    SQL Pretty Printer V3.12 绿色破解版 .纯属研究,如要正式使用请购买正版! 经本人测试已完全可用,破解的若不完全请联系我...^_^ SQL Pretty Printer V3.12 绿色破解版 SQL Pretty Printer 绿色破解版 SQL Pretty ...

    Android代码-Printer

    Printer ESC-POS命令打印辅助库 源码地址:ProjectX 介绍 标准ESC-POS命令打印,固定IP或蓝牙打印,支持黑白图片打印。 其中PrintCommands类列出了基本所有的ESC-POS打印命令。 打印指令参考自Commande ESCPOS.pdf...

    zebra printer setup for android

    Zebra打印机以其可靠性和广泛的功能在条形码、二维码打印领域备受推崇,而“Zebra Printer Setup”应用程序则为用户提供了便捷的设置和管理工具。 首先,我们需要了解的是“Zebra Printer Setup”这款软件。它是由...

    SQL Pretty Printer(sql格式化).zip

    SQL Pretty Printer是一款强大的SQL代码美化和格式化工具,它的主要功能是将杂乱无章的SQL语句整理成清晰易读的格式,这对于数据库管理员、开发人员和数据分析者来说非常实用。这款工具可以帮助用户提高代码的可读性...

    SQL Pretty Printer 破解版

    SQL Pretty Printer 破解版 强大的SQl格式化工具

    Poster Printer中文绿色便携版

    Poster Printer即以前的ProPoster,是一款制作海报风格图片的软件,适合制作、打印大尺寸海报、标识、签名等,它支持多种图像格式,能制作最大228.6x312.97cm的大幅海报. 使用起来也非常简单,直接载入图片,然后...

    Air Printer 1.6.6.1破解补丁

    如果你有台iPhone手机, 或者苹果iPad平板电脑,那么你可以很方便得利用苹果iOS系统内置AirPrint功能WiFi无线打印照片,Word,PDF等各种文件到你的Air Printer打印机,但有个前提是你的打印机必须支持苹果Air Print...

    sql pretty printer for ssms

    SQL Pretty Printer for SSMS 是一款专门针对SQL Server Management Studio (SSMS) 设计的代码格式化工具。这个工具的主要功能是帮助用户整理和美化在SSMS中编写的SQL查询语句,使其更易于阅读和理解,提升代码质量...

Global site tag (gtag.js) - Google Analytics