arca.h
上传用户:myichia
上传日期:2019-01-05
资源大小:217k
文件大小:4k
源码类别:

TAPI编程

开发平台:

C/C++

  1. // $Id: arca.h,v 1.1 2006/02/07 20:23:25 Daniel.May Exp $
  2. //
  3. // Copyright (c), 2005-2006, Pantor Engineering AB (http://www.pantor.com)
  4. // Copyright (c), 2005-2006, FIX Protocol Ltd (http://www.fixprotocol.org)
  5. // All Rights Reserved.
  6. //
  7. // This work is distributed under the W3C® Software License [1] in the
  8. // hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
  9. // implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  10. //
  11. // [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
  12. #ifndef _arca_h_
  13. #define _arca_h_
  14. #include "fastapi.h"
  15. #include "common.h"
  16. //////////////////////////////////////////////////////////////////////
  17. #pragma pack(push,1)
  18. typedef struct insert_order_msg
  19. {
  20.    u16 size;
  21.    u8  type;
  22.    u8  pad1;
  23.    u32 time;
  24.    u32 seqno;
  25.    u32 order_ref;
  26.    u32 shares;
  27.    i32 price;
  28.    u8  scale;
  29.    u8  exch_code;
  30.    u8  sys_code;
  31.    u8  buy_sell;
  32.    u8  stock [8];
  33.    u8  quote_id [5];
  34.    u8  pad2 [3];
  35. }
  36. insert_order_msg;
  37. typedef struct modify_order_msg
  38. {
  39.    u16 size;
  40.    u8  type;
  41.    u8  pad1;
  42.    u32 time;
  43.    u32 seqno;
  44.    u32 order_ref;
  45.    u32 shares;
  46.    u32 price;
  47.    u8  scale;
  48.    u8  exch_code;
  49.    u8  sys_code;
  50.    u8  buy_sell;
  51.    u8  stock [8];
  52.    u8  quote_id [5];
  53.    u8  pad2 [3];
  54. }
  55. modify_order_msg;
  56. typedef struct delete_order_msg
  57. {
  58.    u16 size;
  59.    u8  type;
  60.    u8  pad1;
  61.    u32 time;
  62.    u32 seqno;
  63.    u32 order_ref;
  64.    u8  exch_code;
  65.    u8  sys_code;
  66.    u8  buy_sell;
  67.    u8  stock [8];
  68.    u8  quote_id [5];
  69. }
  70. delete_order_msg;
  71. typedef struct imbalance_msg
  72. {
  73.    u16 size;
  74.    u8  type;
  75.    u8  pad1;
  76.    u32 time;
  77.    u32 seqno;
  78.    u32 shares;
  79.    i32 total_imbal;
  80.    i32 market_imbal;
  81.    i32 price;
  82.    u8  scale;
  83.    u8  exch_code;
  84.    u8  sys_code;
  85.    u8  auction_type;
  86.    u8  stock [8];
  87.    u32 auction_time;
  88. }
  89. imbalance_msg;
  90. #pragma pack(pop)
  91. //////////////////////////////////////////////////////////////////////
  92. enum arca_tids
  93. {
  94.    ARCA_BASE_TID = 0,
  95. };
  96. enum arca_common_fields
  97. {
  98.    // 0-6
  99.    MSG_MAP      = MAKE_TAG (FAST_TYPE_NULL, FAST_OP_NONE,  ARCA_BASE_TID,  0),
  100.    MSG_TYPE     = MAKE_TAG (FAST_TYPE_U32,  FAST_OP_COPY,  ARCA_BASE_TID,  1),
  101.    TSP_SECS     = MAKE_TAG (FAST_TYPE_U32,  FAST_OP_COPY,  ARCA_BASE_TID,  2),
  102.    TSP_MSECS    = MAKE_TAG (FAST_TYPE_U32,  FAST_OP_NONE,  ARCA_BASE_TID,  3),
  103.    SEQNO        = MAKE_TAG (FAST_TYPE_U32,  FAST_OP_INCR,  ARCA_BASE_TID,  4),
  104.    ORDER_REF    = MAKE_TAG (FAST_TYPE_U32,  FAST_OP_INCR,  ARCA_BASE_TID,  5),
  105.    SHARES       = MAKE_TAG (FAST_TYPE_U32,  FAST_OP_COPY,  ARCA_BASE_TID,  6),
  106.    // 7-13
  107.    PRICE        = MAKE_TAG (FAST_TYPE_U32,  FAST_OP_COPY,  ARCA_BASE_TID,  7),
  108.    SCALE        = MAKE_TAG (FAST_TYPE_U32,  FAST_OP_COPY,  ARCA_BASE_TID,  8),
  109.    EXCH_CODE    = MAKE_TAG (FAST_TYPE_U32,  FAST_OP_COPY,  ARCA_BASE_TID,  9),
  110.    SYS_CODE     = MAKE_TAG (FAST_TYPE_U32,  FAST_OP_COPY,  ARCA_BASE_TID, 10),
  111.    BUY_SELL     = MAKE_TAG (FAST_TYPE_U32,  FAST_OP_COPY,  ARCA_BASE_TID, 11),
  112.    STOCK        = MAKE_TAG (FAST_TYPE_STR,  FAST_OP_COPY,  ARCA_BASE_TID, 12),
  113.    QUOTE_ID     = MAKE_TAG (FAST_TYPE_STR,  FAST_OP_COPY,  ARCA_BASE_TID, 13),
  114.    // 14-
  115.    MARKET_IMBAL = MAKE_TAG (FAST_TYPE_U32,  FAST_OP_COPY,  ARCA_BASE_TID, 14),
  116.    TOTAL_IMBAL  = MAKE_TAG (FAST_TYPE_U32,  FAST_OP_COPY,  ARCA_BASE_TID, 15),
  117.    AUCT_TYPE    = MAKE_TAG (FAST_TYPE_U32,  FAST_OP_COPY,  ARCA_BASE_TID, 16),
  118.    AUCT_TIME    = MAKE_TAG (FAST_TYPE_U32,  FAST_OP_COPY,  ARCA_BASE_TID, 17),
  119. };
  120. #endif // _arca_h_