OnixS C++ CME iLink 3 Binary Order Entry Handler  1.14.0
API Documentation
Fields.h
Go to the documentation of this file.
1 // Copyright Onix Solutions Limited [OnixS]. All rights reserved.
2 //
3 // This software owned by Onix Solutions Limited [OnixS] and is
4 // protected by copyright law and international copyright treaties.
5 //
6 // Access to and use of the software is governed by the terms of the applicable
7 // OnixS Software Services Agreement (the Agreement) and Customer end user license
8 // agreements granting a non-assignable, non-transferable and non-exclusive license
9 // to use the software for it's own data processing purposes under the terms defined
10 // in the Agreement.
11 //
12 // Except as otherwise granted within the terms of the Agreement, copying or
13 // reproduction of any part of this source code or associated reference material
14 // to any other location for further reproduction or redistribution, and any
15 // amendments to this copyright notice, are expressly prohibited.
16 //
17 // Any reproduction or redistribution for sale or hiring of the Software not in
18 // accordance with the terms of the Agreement is a violation of copyright law.
19 //
20 
21 #pragma once
22 
26 
28 
29 /// char.
30 typedef Char CHAR;
31 
32 
33 /// Cross order type supports only limit order.
34 ///
35 /// FIX type: char.
36 typedef
39 
40 
41 /// Cross Prioritization.
42 ///
43 /// FIX type: char.
44 typedef
47 
48 
49 /// Cross Type.
50 ///
51 /// FIX type: char.
52 typedef
55 
56 
57 /// Cancel Reject.
58 ///
59 /// FIX type: char.
60 typedef
63 
64 
65 /// Cancel Replace Reject.
66 ///
67 /// FIX type: char.
68 typedef
71 
72 
73 /// ExecTypNew.
74 ///
75 /// FIX type: char.
76 typedef
79 
80 
81 /// Exec Type Reject.
82 ///
83 /// FIX type: char.
84 typedef
87 
88 
89 /// ExecTypStatus.
90 ///
91 /// FIX type: char.
92 typedef
95 
96 
97 /// Exec Type Cxl.
98 ///
99 /// FIX type: char.
100 typedef
103 
104 
105 /// Exec Type Exp.
106 ///
107 /// FIX type: char.
108 typedef
111 
112 
113 /// ExecType Modify.
114 ///
115 /// FIX type: char.
116 typedef
119 
120 
121 /// Pending Cancel Type.
122 ///
123 /// FIX type: char.
124 typedef
127 
128 
129 /// Pending Replace.
130 ///
131 /// FIX type: char.
132 typedef
135 
136 
137 /// Execution type for trade.
138 ///
139 /// FIX type: char.
140 typedef
143 
144 
145 /// int32.
146 typedef Int32 Int32;
147 
148 
149 /// Leg security ID source in UDS creation.
150 ///
151 /// FIX type: char.
152 typedef
155 
156 
157 /// Type alias for the `LocalMktDate`.
158 ///
159 /// FIX type: LocalMktDate.
161 
162 
163 /// Mass action type to represent mass cancel.
164 ///
165 /// FIX type: char.
166 typedef
169 
170 
171 /// ModifyStatus.
172 ///
173 /// FIX type: char.
174 typedef
177 
178 
179 /// NoPtyUpd.
180 ///
181 /// FIX type: int.
182 typedef
185 
186 
187 /// Ord Status Cxl.
188 ///
189 /// FIX type: char.
190 typedef
193 
194 
195 /// OrdStatusCxrRej.
196 ///
197 /// FIX type: char.
198 typedef
201 
202 
203 /// OrdStatusCxrRej.
204 ///
205 /// FIX type: char.
206 typedef
209 
210 
211 /// Order Status Exp.
212 ///
213 /// FIX type: char.
214 typedef
217 
218 
219 /// Order status of New.
220 ///
221 /// FIX type: char.
222 typedef
225 
226 
227 /// Pending Cancel Status.
228 ///
229 /// FIX type: char.
230 typedef
233 
234 
235 /// Order Status Reject.
236 ///
237 /// FIX type: char.
238 typedef
241 
242 
243 /// PartyIDSource.
244 ///
245 /// FIX type: char.
246 typedef
249 
250 
251 /// Pending Replace Status.
252 ///
253 /// FIX type: char.
254 typedef
257 
258 
259 /// SecurityIDSource.
260 ///
261 /// FIX type: char.
262 typedef
265 
266 
267 /// Security request type for UDS creation.
268 ///
269 /// FIX type: char.
270 typedef
273 
274 
275 /// UDI.
276 ///
277 /// FIX type: char.
278 typedef
281 
282 
283 /// Char with null value.
284 ///
285 /// FIX type: char.
286 typedef Char CharNULL;
287 
288 
289 /// Type alias for the `EnumNULL`.
290 typedef UInt8 EnumNULL;
291 
292 
293 /// uInt16.
294 ///
295 /// FIX type: int.
296 typedef UInt16 UInt16;
297 
298 
299 /// uInt32.
300 ///
301 /// FIX type: int.
302 typedef UInt32 UInt32;
303 
304 
305 /// uInt64.
306 ///
307 /// FIX type: int.
308 typedef UInt64 UInt64;
309 
310 
311 /// uInt8.
312 typedef UInt8 UInt8;
313 
314 
315 /// `AvgPxInd` type.
317 {
318  typedef UInt8 Base;
319 
320  enum Enum
321  {
322  /// No Average Pricing.
323  NoAveragePricing = 0,
324 
325  /// Trade is part of an Average Price Group Identified by the AvgPxGrp ID.
326  TradeispartofanAveragePriceGroupIdentifiedbytheAvgPxGrpID = 1,
327 
328  /// Trade is part of a Notional Value Average Price Group.
329  TradeispartofaNotionalValueAveragePriceGroup = 3
330  };
331 
332  /// \return a human-readable presentation.
334  static
335  std::string
336  toString(
337  Enum);
338 };
339 
340 /// `BooleanFlag` type.
342 {
343  typedef UInt8 Base;
344 
345  enum Enum
346  {
347  /// False, No.
348  False = 0,
349 
350  /// True, Yes.
351  True = 1
352  };
353 
354  /// \return a human-readable presentation.
356  static
357  std::string
358  toString(
359  Enum);
360 };
361 
362 /// `BooleanNULL` type.
364 {
365  typedef UInt8 Base;
366 
367  enum Enum
368  {
369  /// False, No.
370  False = 0,
371 
372  /// True, Yes.
373  True = 1
374  };
375 
376  /// \return a human-readable presentation.
378  static
379  std::string
380  toString(
381  Enum);
382 };
383 
384 /// `ClearingAcctType` type.
386 {
387  typedef UInt8 Base;
388 
389  enum Enum
390  {
391  /// Customer.
392  Customer = 0,
393 
394  /// Firm.
395  Firm = 1
396  };
397 
398  /// \return a human-readable presentation.
400  static
401  std::string
402  toString(
403  Enum);
404 };
405 
406 /// `CmtaGiveUpCD` type.
407 ///
408 /// FIX type: char.
410 {
411  typedef Char Base;
412 
413  enum Enum
414  {
415  /// Give Up.
416  GiveUp = 'G',
417 
418  /// SGX offset.
419  SGXoffset = 'S'
420  };
421 
422  /// \return a human-readable presentation.
424  static
425  std::string
426  toString(
427  Enum);
428 };
429 
430 /// `CustOrdHandlInst` type.
431 ///
432 /// FIX type: char.
434 {
435  typedef Char Base;
436 
437  enum Enum
438  {
439  /// FCM provided screen.
440  FCMprovidedscreen = 'C',
441 
442  /// Other provided screen.
443  Otherprovidedscreen = 'D',
444 
445  /// FCM API or FIX.
446  FCMAPIorFIX = 'G',
447 
448  /// Algo Engine.
449  AlgoEngine = 'H',
450 
451  /// Desk Electronic.
452  DeskElectronic = 'W',
453 
454  /// Client Electronic.
455  ClientElectronic = 'Y'
456  };
457 
458  /// \return a human-readable presentation.
460  static
461  std::string
462  toString(
463  Enum);
464 };
465 
466 /// `CustOrderCapacity` type.
468 {
469  typedef UInt8 Base;
470 
471  enum Enum
472  {
473  /// Member trading for their own account.
474  MemberTradingForTheirOwnAccount = 1,
475 
476  /// Member firm trading for its proprietary account.
477  MemberFirmTradingForItsProprietaryAccount = 2,
478 
479  /// Member trading for another member or non member.
480  MemberTradingForAnotherMemberOrNonMember = 3,
481 
482  /// All other.
483  Allother = 4
484  };
485 
486  /// \return a human-readable presentation.
488  static
489  std::string
490  toString(
491  Enum);
492 };
493 
494 /// `DKReason` type.
495 ///
496 /// FIX type: char.
498 {
499  typedef Char Base;
500 
501  enum Enum
502  {
503  /// Unknown Security.
504  UnknownSecurity = 'A',
505 
506  /// Wrong Side.
507  WrongSide = 'B',
508 
509  /// Quantity Exceeds Order.
510  QuantityExceedsOrder = 'C',
511 
512  /// No Matching Order.
513  NoMatchingOrder = 'D',
514 
515  /// Price Exceeds Limit.
516  PriceExceedsLimit = 'E',
517 
518  /// Calculation Difference.
519  CalculationDifference = 'F',
520 
521  /// No Matching Execution Report.
522  NoMatchingExecutionReport = 'G',
523 
524  /// Other.
525  Other = 'Z'
526  };
527 
528  /// \return a human-readable presentation.
530  static
531  std::string
532  toString(
533  Enum);
534 };
535 
536 /// `ExecAckStatus` type.
538 {
539  typedef UInt8 Base;
540 
541  enum Enum
542  {
543  /// Accepted.
544  Accepted = 1,
545 
546  /// Rejected.
547  Rejected = 2
548  };
549 
550  /// \return a human-readable presentation.
552  static
553  std::string
554  toString(
555  Enum);
556 };
557 
558 /// `ExecMode` type.
559 ///
560 /// FIX type: char.
562 {
563  typedef Char Base;
564 
565  enum Enum
566  {
567  /// Aggressive.
568  Aggressive = 'A',
569 
570  /// Passive.
571  Passive = 'P'
572  };
573 
574  /// \return a human-readable presentation.
576  static
577  std::string
578  toString(
579  Enum);
580 };
581 
582 /// `ExecReason` type.
584 {
585  typedef UInt8 Base;
586 
587  enum Enum
588  {
589  /// Market Exchange Option.
590  MarketExchangeOption = 8,
591 
592  /// Cancelled Not Best.
593  CancelledNotBest = 9,
594 
595  /// Cancel On Disconnect.
596  CancelOnDisconnect = 100,
597 
598  /// Self Match Prevention Oldest Order Cancelled.
599  SelfMatchPreventionOldestOrderCancelled = 103,
600 
601  /// Cancel On Globex Credit Controls Violation.
602  CancelOnGlobexCreditControlsViolation = 104,
603 
604  /// Cancel From Firmsoft.
605  CancelFromFirmsoft = 105,
606 
607  /// Cancel From Risk Management API .
608  CancelFromRiskManagementAPI = 106,
609 
610  /// Self Match Prevention Newest Order Cancelled.
611  SelfMatchPreventionNewestOrderCancelled = 107,
612 
613  /// Cancel due to min qty violation.
614  Cancelduetovolquotedoptionorderrestedqtylessthanminordersize = 108,
615 
616  /// Cancel RFC Order.
617  CancelRFCOrder = 109,
618 
619  /// Cancel Upon Contract Expiration.
620  CancelUponContractExpiration = 110,
621 
622  /// System Cancel.
623  SystemCancel = 111
624  };
625 
626  /// \return a human-readable presentation.
628  static
629  std::string
630  toString(
631  Enum);
632 };
633 
634 /// `ExecTypTrdCxl` type.
636 {
637  typedef CHAR Base;
638 
639  enum Enum
640  {
641  /// Trade Correction.
642  TradeCorrection = 'G',
643 
644  /// Trade Cancel.
645  TradeCancel = 'H'
646  };
647 
648  /// \return a human-readable presentation.
650  static
651  std::string
652  toString(
653  Enum);
654 };
655 
656 /// `ExpCycle` type.
658 {
659  typedef UInt8 Base;
660 
661  enum Enum
662  {
663  /// Expire On Trading Session Close.
664  ExpireOnTradingSessionClose = 0,
665 
666  /// Expiration at given date .
667  Expirationatgivendate = 2
668  };
669 
670  /// \return a human-readable presentation.
672  static
673  std::string
674  toString(
675  Enum);
676 };
677 
678 /// `FTI` type.
680 {
681  typedef UInt8 Base;
682 
683  enum Enum
684  {
685  /// Backup.
686  Backup = 0,
687 
688  /// Primary.
689  Primary = 1
690  };
691 
692  /// \return a human-readable presentation.
694  static
695  std::string
696  toString(
697  Enum);
698 };
699 
700 /// `KeepAliveLapsed` type.
702 {
703  typedef UInt8 Base;
704 
705  enum Enum
706  {
707  /// NotLapsed.
708  NotLapsed = 0,
709 
710  /// Lapsed.
711  Lapsed = 1
712  };
713 
714  /// \return a human-readable presentation.
716  static
717  std::string
718  toString(
719  Enum);
720 };
721 
722 /// `ListUpdAct` type.
724 {
725  typedef CHAR Base;
726 
727  enum Enum
728  {
729  /// Add.
730  Add = 'A',
731 
732  /// Delete.
733  Delete = 'D'
734  };
735 
736  /// \return a human-readable presentation.
738  static
739  std::string
740  toString(
741  Enum);
742 };
743 
744 /// `ManualOrdInd` type.
746 {
747  typedef UInt8 Base;
748 
749  enum Enum
750  {
751  /// Automated.
752  Automated = 0,
753 
754  /// Manual.
755  Manual = 1
756  };
757 
758  /// \return a human-readable presentation.
760  static
761  std::string
762  toString(
763  Enum);
764 };
765 
766 /// `ManualOrdIndReq` type.
768 {
769  typedef UInt8 Base;
770 
771  enum Enum
772  {
773  /// Automated.
774  Automated = 0,
775 
776  /// Manual.
777  Manual = 1
778  };
779 
780  /// \return a human-readable presentation.
782  static
783  std::string
784  toString(
785  Enum);
786 };
787 
788 /// `MassActionOrdTyp` type.
789 ///
790 /// FIX type: char.
792 {
793  typedef Char Base;
794 
795  enum Enum
796  {
797  /// Limit.
798  Limit = '2',
799 
800  /// Stop Limit.
801  StopLimit = '4'
802  };
803 
804  /// \return a human-readable presentation.
806  static
807  std::string
808  toString(
809  Enum);
810 };
811 
812 /// `MassActionResponse` type.
814 {
815  typedef UInt8 Base;
816 
817  enum Enum
818  {
819  /// Rejected.
820  Rejected = 0,
821 
822  /// Accepted.
823  Accepted = 1
824  };
825 
826  /// \return a human-readable presentation.
828  static
829  std::string
830  toString(
831  Enum);
832 };
833 
834 /// `MassActionScope` type.
836 {
837  typedef UInt8 Base;
838 
839  enum Enum
840  {
841  /// Instrument.
842  Instrument = 1,
843 
844  /// All.
845  All = 7,
846 
847  /// Market Segment ID.
848  MarketSegmentID = 9,
849 
850  /// Instrument Group.
851  InstrumentGroup = 10,
852 
853  /// Quote Set ID.
854  QuoteSetID = 100
855  };
856 
857  /// \return a human-readable presentation.
859  static
860  std::string
861  toString(
862  Enum);
863 };
864 
865 /// `MassCancelTIF` type.
867 {
868  typedef UInt8 Base;
869 
870  enum Enum
871  {
872  /// Day.
873  Day = 0,
874 
875  /// Good Till Cancel.
876  GoodTillCancel = 1,
877 
878  /// Good Till Date.
879  GoodTillDate = 6
880  };
881 
882  /// \return a human-readable presentation.
884  static
885  std::string
886  toString(
887  Enum);
888 };
889 
890 /// `MassCxlReqTyp` type.
892 {
893  typedef UInt8 Base;
894 
895  enum Enum
896  {
897  /// Sender Sub ID.
898  SenderSubID = 100,
899 
900  /// Account.
901  Account = 101
902  };
903 
904  /// \return a human-readable presentation.
906  static
907  std::string
908  toString(
909  Enum);
910 };
911 
912 /// `MassStatusOrdTyp` type.
914 {
915  typedef UInt8 Base;
916 
917  enum Enum
918  {
919  /// SenderSubID.
920  SenderSubID = 100,
921 
922  /// Account.
923  Account = 101
924  };
925 
926  /// \return a human-readable presentation.
928  static
929  std::string
930  toString(
931  Enum);
932 };
933 
934 /// `MassStatusReqTyp` type.
936 {
937  typedef UInt8 Base;
938 
939  enum Enum
940  {
941  /// Instrument.
942  Instrument = 1,
943 
944  /// Instrument Group.
945  InstrumentGroup = 3,
946 
947  /// All Orders.
948  AllOrders = 7,
949 
950  /// Market Segment.
951  MarketSegment = 100
952  };
953 
954  /// \return a human-readable presentation.
956  static
957  std::string
958  toString(
959  Enum);
960 };
961 
962 /// `MassStatusTIF` type.
964 {
965  typedef UInt8 Base;
966 
967  enum Enum
968  {
969  /// Day.
970  Day = 0,
971 
972  /// GTC.
973  GTC = 1,
974 
975  /// GTD.
976  GTD = 6,
977 
978  /// GFS.
979  GFS = 99
980  };
981 
982  /// \return a human-readable presentation.
984  static
985  std::string
986  toString(
987  Enum);
988 };
989 
990 /// `OFMOverrideReq` type.
992 {
993  typedef UInt8 Base;
994 
995  enum Enum
996  {
997  /// Disabled.
998  Disabled = 0,
999 
1000  /// Enabled.
1001  Enabled = 1
1002  };
1003 
1004  /// \return a human-readable presentation.
1006  static
1007  std::string
1008  toString(
1009  Enum);
1010 };
1011 
1012 /// `OrdStatusTrd` type.
1014 {
1015  typedef UInt8 Base;
1016 
1017  enum Enum
1018  {
1019  /// Partially Filled.
1020  PartiallyFilled = 1,
1021 
1022  /// Filled.
1023  Filled = 2
1024  };
1025 
1026  /// \return a human-readable presentation.
1028  static
1029  std::string
1030  toString(
1031  Enum);
1032 };
1033 
1034 /// `OrdStatusTrdCxl` type.
1036 {
1037  typedef CHAR Base;
1038 
1039  enum Enum
1040  {
1041  /// Trade Correction.
1042  TradeCorrection = 'G',
1043 
1044  /// Trade Cancel.
1045  TradeCancel = 'H'
1046  };
1047 
1048  /// \return a human-readable presentation.
1050  static
1051  std::string
1052  toString(
1053  Enum);
1054 };
1055 
1056 /// `OrderEventType` type.
1058 {
1059  typedef UInt8 Base;
1060 
1061  enum Enum
1062  {
1063  /// Partially Filled.
1064  PartiallyFilled = 4,
1065 
1066  /// Filled.
1067  Filled = 5
1068  };
1069 
1070  /// \return a human-readable presentation.
1072  static
1073  std::string
1074  toString(
1075  Enum);
1076 };
1077 
1078 /// `OrderStatus` type.
1080 {
1081  typedef CHAR Base;
1082 
1083  enum Enum
1084  {
1085  /// New.
1086  New = '0',
1087 
1088  /// Partially Filled.
1089  PartiallyFilled = '1',
1090 
1091  /// Filled.
1092  Filled = '2',
1093 
1094  /// Cancelled.
1095  Cancelled = '4',
1096 
1097  /// Replaced.
1098  Replaced = '5',
1099 
1100  /// Pending Cancel.
1101  PendingCancel = '6',
1102 
1103  /// Rejected.
1104  Rejected = '8',
1105 
1106  /// Expired.
1107  Expired = 'C',
1108 
1109  /// Pending Replace.
1110  PendingReplace = 'E',
1111 
1112  /// Undefined.
1113  Undefined = 'U'
1114  };
1115 
1116  /// \return a human-readable presentation.
1118  static
1119  std::string
1120  toString(
1121  Enum);
1122 };
1123 
1124 /// `OrderType` type.
1125 ///
1126 /// FIX type: char.
1128 {
1129  typedef Char Base;
1130 
1131  enum Enum
1132  {
1133  /// Market With Protection.
1134  MarketWithProtection = '1',
1135 
1136  /// Limit.
1137  Limit = '2',
1138 
1139  /// Stop Limit.
1140  StopLimit = '4',
1141 
1142  /// Market With Leftover As Limit.
1143  MarketWithLeftoverAsLimit = 'K'
1144  };
1145 
1146  /// \return a human-readable presentation.
1148  static
1149  std::string
1150  toString(
1151  Enum);
1152 };
1153 
1154 /// `OrderTypeReq` type.
1156 {
1157  typedef CHAR Base;
1158 
1159  enum Enum
1160  {
1161  /// Market with Protection.
1162  MarketwithProtection = '1',
1163 
1164  /// Limit.
1165  Limit = '2',
1166 
1167  /// Stop with Protection.
1168  StopwithProtection = '3',
1169 
1170  /// Stop Limit.
1171  StopLimit = '4',
1172 
1173  /// Market With Leftover As Limit.
1174  MarketWithLeftoverAsLimit = 'K'
1175  };
1176 
1177  /// \return a human-readable presentation.
1179  static
1180  std::string
1181  toString(
1182  Enum);
1183 };
1184 
1185 /// `PartyDetailRole` type.
1186 ///
1187 /// FIX type: int.
1189 {
1190  typedef UInt16 Base;
1191 
1192  enum Enum
1193  {
1194  /// Executing Firm.
1195  ExecutingFirm = 1,
1196 
1197  /// Customer Account.
1198  CustomerAccount = 24,
1199 
1200  /// Take Up Firm.
1201  TakeUpFirm = 96,
1202 
1203  /// Operator.
1204  Operator = 118,
1205 
1206  /// Take Up Account.
1207  TakeUpAccount = 1000
1208  };
1209 
1210  /// \return a human-readable presentation.
1212  static
1213  std::string
1214  toString(
1215  Enum);
1216 };
1217 
1218 /// `QuoteAckStatus` type.
1220 {
1221  typedef UInt8 Base;
1222 
1223  enum Enum
1224  {
1225  /// Accepted.
1226  Accepted = 0,
1227 
1228  /// Rejected.
1229  Rejected = 5
1230  };
1231 
1232  /// \return a human-readable presentation.
1234  static
1235  std::string
1236  toString(
1237  Enum);
1238 };
1239 
1240 /// `QuoteCxlStatus` type.
1242 {
1243  typedef UInt8 Base;
1244 
1245  enum Enum
1246  {
1247  /// Cancel per Instrument.
1248  CancelperInstrument = 1,
1249 
1250  /// Cancel per Instrument group.
1251  CancelperInstrumentgroup = 3,
1252 
1253  /// Cancel all quotes.
1254  Cancelallquotes = 4,
1255 
1256  /// Rejected.
1257  Rejected = 5,
1258 
1259  /// Cancel per Quote Set.
1260  CancelperQuoteSet = 100
1261  };
1262 
1263  /// \return a human-readable presentation.
1265  static
1266  std::string
1267  toString(
1268  Enum);
1269 };
1270 
1271 /// `QuoteCxlTyp` type.
1273 {
1274  typedef UInt8 Base;
1275 
1276  enum Enum
1277  {
1278  /// Cancel per Instrument.
1279  CancelperInstrument = 1,
1280 
1281  /// Cancel per Instrument group.
1282  CancelperInstrumentgroup = 3,
1283 
1284  /// Cancel all quotes.
1285  Cancelallquotes = 4,
1286 
1287  /// Cancel per Quote Set.
1288  CancelperQuoteSet = 100
1289  };
1290 
1291  /// \return a human-readable presentation.
1293  static
1294  std::string
1295  toString(
1296  Enum);
1297 };
1298 
1299 /// `QuoteTyp` type.
1301 {
1302  typedef UInt8 Base;
1303 
1304  enum Enum
1305  {
1306  /// Tradeable.
1307  Tradeable = 1
1308  };
1309 
1310  /// \return a human-readable presentation.
1312  static
1313  std::string
1314  toString(
1315  Enum);
1316 };
1317 
1318 /// `RFQSide` type.
1320 {
1321  typedef UInt8 Base;
1322 
1323  enum Enum
1324  {
1325  /// Buy.
1326  Buy = 1,
1327 
1328  /// Sell.
1329  Sell = 2,
1330 
1331  /// Cross.
1332  Cross = 8
1333  };
1334 
1335  /// \return a human-readable presentation.
1337  static
1338  std::string
1339  toString(
1340  Enum);
1341 };
1342 
1343 /// `ReqResult` type.
1345 {
1346  typedef UInt8 Base;
1347 
1348  enum Enum
1349  {
1350  /// Valid Request.
1351  ValidRequest = 0,
1352 
1353  /// No Data Found That Matched Selection Criteria.
1354  NoDataFoundThatMatchedSelectionCriteria = 2,
1355 
1356  /// Not Authorized to Retrieve Data.
1357  NotAuthorizedtoRetrieveData = 3,
1358 
1359  /// Data Temporarily Unavailable.
1360  DataTemporarilyUnavailable = 4
1361  };
1362 
1363  /// \return a human-readable presentation.
1365  static
1366  std::string
1367  toString(
1368  Enum);
1369 };
1370 
1371 /// `SLEDS` type.
1373 {
1374  typedef UInt8 Base;
1375 
1376  enum Enum
1377  {
1378  /// Trade Clearing at Execution Price.
1379  TradeClearingatExecutionPrice = 0,
1380 
1381  /// Trade Clearing at Alternate Clearing Price.
1382  TradeClearingatAlternateClearingPrice = 1
1383  };
1384 
1385  /// \return a human-readable presentation.
1387  static
1388  std::string
1389  toString(
1390  Enum);
1391 };
1392 
1393 /// `SMPI` type.
1394 ///
1395 /// FIX type: char.
1397 {
1398  typedef Char Base;
1399 
1400  enum Enum
1401  {
1402  /// Cancel Newest.
1403  CancelNewest = 'N',
1404 
1405  /// Cancel Oldest.
1406  CancelOldest = 'O'
1407  };
1408 
1409  /// \return a human-readable presentation.
1411  static
1412  std::string
1413  toString(
1414  Enum);
1415 };
1416 
1417 /// `SecRspTyp` type.
1419 {
1420  typedef UInt8 Base;
1421 
1422  enum Enum
1423  {
1424  /// Accept Security Proposal as is.
1425  AcceptSecurityProposalasis = 1,
1426 
1427  /// Accept Security proposal with revisions as indicated in the message.
1428  AcceptSecurityproposalwithrevisionsasindicatedinthemessage = 2,
1429 
1430  /// Reject Security Proposal.
1431  RejectSecurityProposal = 5
1432  };
1433 
1434  /// \return a human-readable presentation.
1436  static
1437  std::string
1438  toString(
1439  Enum);
1440 };
1441 
1442 /// `ShortSaleType` type.
1444 {
1445  typedef UInt8 Base;
1446 
1447  enum Enum
1448  {
1449  /// Long Sell.
1450  LongSell = 0,
1451 
1452  /// Short Sale With No Exemption SESH.
1453  ShortSaleWithNoExemptionSESH = 1,
1454 
1455  /// Short Sale With Exemption SSEX.
1456  ShortSaleWithExemptionSSEX = 2,
1457 
1458  /// Undisclosed Sell Information Not Available UNDI.
1459  UndisclosedSellInformationNotAvailableUNDI = 3
1460  };
1461 
1462  /// \return a human-readable presentation.
1464  static
1465  std::string
1466  toString(
1467  Enum);
1468 };
1469 
1470 /// `SideNULL` type.
1472 {
1473  typedef UInt8 Base;
1474 
1475  enum Enum
1476  {
1477  /// Buy.
1478  Buy = 1,
1479 
1480  /// Sell.
1481  Sell = 2
1482  };
1483 
1484  /// \return a human-readable presentation.
1486  static
1487  std::string
1488  toString(
1489  Enum);
1490 };
1491 
1492 /// `SideReq` type.
1494 {
1495  typedef UInt8 Base;
1496 
1497  enum Enum
1498  {
1499  /// Buy.
1500  Buy = 1,
1501 
1502  /// Sell.
1503  Sell = 2,
1504 
1505  /// Undisclosed.
1506  Undisclosed = 7
1507  };
1508 
1509  /// \return a human-readable presentation.
1511  static
1512  std::string
1513  toString(
1514  Enum);
1515 };
1516 
1517 /// `SideTimeInForce` type.
1519 {
1520  typedef UInt8 Base;
1521 
1522  enum Enum
1523  {
1524  /// Day.
1525  Day = 0,
1526 
1527  /// FAK.
1528  FAK = 3
1529  };
1530 
1531  /// \return a human-readable presentation.
1533  static
1534  std::string
1535  toString(
1536  Enum);
1537 };
1538 
1539 /// `SplitMsg` type.
1541 {
1542  typedef UInt8 Base;
1543 
1544  enum Enum
1545  {
1546  /// Split Message Delayed.
1547  SplitMessageDelayed = 0,
1548 
1549  /// Out of Order Message Delayed.
1550  OutofOrderMessageDelayed = 1,
1551 
1552  /// Complete Message Delayed.
1553  CompleteMessageDelayed = 2
1554  };
1555 
1556  /// \return a human-readable presentation.
1558  static
1559  std::string
1560  toString(
1561  Enum);
1562 };
1563 
1564 /// `TimeInForce` type.
1566 {
1567  typedef UInt8 Base;
1568 
1569  enum Enum
1570  {
1571  /// Day.
1572  Day = 0,
1573 
1574  /// Good Till Cancel.
1575  GoodTillCancel = 1,
1576 
1577  /// Fill And Kill.
1578  FillAndKill = 3,
1579 
1580  /// Fill Or Kill.
1581  FillOrKill = 4,
1582 
1583  /// Good Till Date.
1584  GoodTillDate = 6,
1585 
1586  /// Good For Session.
1587  GoodForSession = 99
1588  };
1589 
1590  /// \return a human-readable presentation.
1592  static
1593  std::string
1594  toString(
1595  Enum);
1596 };
1597 
1598 /// `TradeAddendum` type.
1600 {
1601  typedef UInt8 Base;
1602 
1603  enum Enum
1604  {
1605  /// Partially Filled.
1606  PartiallyFilled = 4,
1607 
1608  /// Filled.
1609  Filled = 5,
1610 
1611  /// Trade Cancel.
1612  TradeCancel = 100,
1613 
1614  /// Trade Correction.
1615  TradeCorrection = 101
1616  };
1617 
1618  /// \return a human-readable presentation.
1620  static
1621  std::string
1622  toString(
1623  Enum);
1624 };
1625 
1626 /// `ExecInst` type.
1628 {
1629 public:
1630  /// Aliases integral type whose bits
1631  /// are used to indicate flag presence.
1632  typedef UInt8 Bits;
1633 
1634  enum
1635  {
1636  Size = sizeof(Bits)
1637  };
1638 
1639  /// This type alias.
1641 
1642  /// \private
1643  /// Init traits.
1644  struct MemberTraits
1645  {
1646  enum { Count = 1 };
1647 
1648  typedef Bits FirstArgType;
1649  };
1650 
1651  /// Indicates whether AON bit is set.
1653  bool aon() const
1655  {
1656  return 0 != (bits_ & 0x1);
1657  }
1658 
1659  /// Modifies AON bit.
1660  ThisType& aon(bool value)
1662  {
1663  if (value) bits_ |= 0x1; else bits_ &= ~0x1;
1664  return *this;
1665  }
1666 
1667  /// Indicates whether OB bit is set.
1669  bool ob() const
1671  {
1672  return 0 != (bits_ & 0x2);
1673  }
1674 
1675  /// Modifies OB bit.
1676  ThisType& ob(bool value)
1678  {
1679  if (value) bits_ |= 0x2; else bits_ &= ~0x2;
1680  return *this;
1681  }
1682 
1683  /// Indicates whether NH bit is set.
1685  bool nh() const
1687  {
1688  return 0 != (bits_ & 0x4);
1689  }
1690 
1691  /// Modifies NH bit.
1692  ThisType& nh(bool value)
1694  {
1695  if (value) bits_ |= 0x4; else bits_ &= ~0x4;
1696  return *this;
1697  }
1698 
1699  /// Indicates whether Reserved1 bit is set.
1701  bool reserved1() const
1703  {
1704  return 0 != (bits_ & 0x8);
1705  }
1706 
1707  /// Modifies Reserved1 bit.
1708  ThisType& reserved1(bool value)
1710  {
1711  if (value) bits_ |= 0x8; else bits_ &= ~0x8;
1712  return *this;
1713  }
1714 
1715  /// Indicates whether Reserved2 bit is set.
1717  bool reserved2() const
1719  {
1720  return 0 != (bits_ & 0x10);
1721  }
1722 
1723  /// Modifies Reserved2 bit.
1724  ThisType& reserved2(bool value)
1726  {
1727  if (value) bits_ |= 0x10; else bits_ &= ~0x10;
1728  return *this;
1729  }
1730 
1731  /// Indicates whether Reserved3 bit is set.
1733  bool reserved3() const
1735  {
1736  return 0 != (bits_ & 0x20);
1737  }
1738 
1739  /// Modifies Reserved3 bit.
1740  ThisType& reserved3(bool value)
1742  {
1743  if (value) bits_ |= 0x20; else bits_ &= ~0x20;
1744  return *this;
1745  }
1746 
1747  /// Indicates whether Reserved4 bit is set.
1749  bool reserved4() const
1751  {
1752  return 0 != (bits_ & 0x40);
1753  }
1754 
1755  /// Modifies Reserved4 bit.
1756  ThisType& reserved4(bool value)
1758  {
1759  if (value) bits_ |= 0x40; else bits_ &= ~0x40;
1760  return *this;
1761  }
1762 
1763  /// Indicates whether Reserved5 bit is set.
1765  bool reserved5() const
1767  {
1768  return 0 != (bits_ & 0x80);
1769  }
1770 
1771  /// Modifies Reserved5 bit.
1772  ThisType& reserved5(bool value)
1774  {
1775  if (value) bits_ |= 0x80; else bits_ &= ~0x80;
1776  return *this;
1777  }
1778 
1779  /// \return elements as they packed in the set.
1780  Bits bits() const
1782  {
1783  return bits_;
1784  }
1785 
1786  /// Constructs from a value.
1787  explicit
1788  ExecInst(Bits bits = 0)
1790  : bits_(bits)
1791  {
1792  }
1793 
1794  /// \return a human-readable presentation.
1796  std::string
1797  toString() const;
1798 
1799  /// Compares encoded data
1801  bool operator!=(const ExecInst& other) const
1803  {
1804  return !(*this == other);
1805  }
1806 
1807  /// Compares encoded data
1809  bool operator==(const ExecInst& other) const
1811  {
1812  return this->bits_ == other.bits_;
1813  }
1814 
1815 private:
1816  Bits bits_;
1817 };
1818 
1819 
1820 /// Null value for an optional Int32 field.
1821 typedef
1824 
1825 
1826 /// Null value for an optional LocalMktDate field.
1827 typedef
1830 
1831 
1832 /// Null value for an optional CharNULL field.
1833 typedef
1836 
1837 
1838 /// Null value for an optional EnumNULL field.
1839 typedef
1842 
1843 
1844 /// Null value for an optional UInt16 field.
1845 typedef
1848 
1849 
1850 /// Null value for an optional UInt32 field.
1851 typedef
1854 
1855 
1856 /// Null value for an optional UInt64 field.
1857 typedef
1860 
1861 
1862 /// Null value for an optional UInt8 field.
1863 typedef
1866 
1867 
1868 
1869 /// Converts days since epoch to Timestamp value.
1870 inline
1872 Timestamp
1874 {
1875  return Timestamp(TimeSpan(days, 0, 0, 0, 0).ticks());
1876 }
1877 
1878 inline
1882 {
1883  return static_cast<LocalMktDate>(TimeSpan(timestamp.sinceEpoch()).days());
1884 }
1885 
Char CharNULL
Char with null value.
Definition: Fields.h:286
ThisType & aon(bool value) noexcept
Modifies AON bit.
Definition: Fields.h:1660
bool aon() const noexcept
Indicates whether AON bit is set.
Definition: Fields.h:1653
IntegralConstant< Char, 'E'> ExecTypePendModify
Pending Replace.
Definition: Fields.h:134
IntegralConstant< Char, '6'> ExecTypePendCxl
Pending Cancel Type.
Definition: Fields.h:126
IntegralConstant< UInt32, 4294967295 > NullUInt32
Null value for an optional UInt32 field.
Definition: Fields.h:1853
IntegralConstant< Char, '1'> SecurityReqType
Security request type for UDS creation.
Definition: Fields.h:272
IntegralConstant< Char, '0'> CrossPrioritization
Cross Prioritization.
Definition: Fields.h:46
ThisType & nh(bool value) noexcept
Modifies NH bit.
Definition: Fields.h:1692
IntegralConstant< UInt16, 65535 > NullLocalMktDate
Null value for an optional LocalMktDate field.
Definition: Fields.h:1829
bool reserved5() const noexcept
Indicates whether Reserved5 bit is set.
Definition: Fields.h:1765
char Char
Character type alias.
Definition: String.h:30
ExecInst(Bits bits=0) noexcept
Constructs from a value.
Definition: Fields.h:1788
IntegralConstant< Char, '4'> ExecTypeCxl
Exec Type Cxl.
Definition: Fields.h:102
IntegralConstant< UInt8, 255 > NullEnumNULL
Null value for an optional EnumNULL field.
Definition: Fields.h:1841
IntegralConstant< Char, '4'> OrdStatusCxl
Ord Status Cxl.
Definition: Fields.h:192
IntegralConstant< Char, 'C'> ExecTypeExp
Exec Type Exp.
Definition: Fields.h:110
IntegralConstant< Char, 'Y'> UDI
UDI.
Definition: Fields.h:280
IntegralConstant< Char, '8'> SecurityIDSource
SecurityIDSource.
Definition: Fields.h:264
IntegralConstant< Char, '8'> OrdStatusRej
Order Status Reject.
Definition: Fields.h:240
IntegralConstant< UInt64, 18446744073709551615ULL > NullUInt64
Null value for an optional UInt64 field.
Definition: Fields.h:1859
IntegralConstant< Char, '2'> CrossOrderType
Cross order type supports only limit order.
Definition: Fields.h:38
ThisType & ob(bool value) noexcept
Modifies OB bit.
Definition: Fields.h:1676
UInt16 UInt16
uInt16.
Definition: Fields.h:296
IntegralConstant< Char, '5'> ExecTypeModify
ExecType Modify.
Definition: Fields.h:118
IntegralConstant< Char, '8'> LegSecIDSource
Leg security ID source in UDS creation.
Definition: Fields.h:154
ThisType & reserved3(bool value) noexcept
Modifies Reserved3 bit.
Definition: Fields.h:1740
bool reserved4() const noexcept
Indicates whether Reserved4 bit is set.
Definition: Fields.h:1749
IntegralConstant< Int32, 2147483647 > NullInt32
Null value for an optional Int32 field.
Definition: Fields.h:1823
IntegralConstant< UInt8, 1 > NoPtyUpd
NoPtyUpd.
Definition: Fields.h:184
bool reserved1() const noexcept
Indicates whether Reserved1 bit is set.
Definition: Fields.h:1701
IntegralConstant< Char, 0 > NullCharNULL
Null value for an optional CharNULL field.
Definition: Fields.h:1835
bool operator==(const ExecInst &other) const noexcept
Compares encoded data.
Definition: Fields.h:1809
IntegralConstant< UInt16, 65535 > NullUInt16
Null value for an optional UInt16 field.
Definition: Fields.h:1847
IntegralConstant< Char, 'F'> ExecTypeTrade
Execution type for trade.
Definition: Fields.h:142
IntegralConstant< Char, '8'> ExecTypRej
Exec Type Reject.
Definition: Fields.h:86
bool reserved2() const noexcept
Indicates whether Reserved2 bit is set.
Definition: Fields.h:1717
IntegralConstant< Char, '6'> OrdStatusPendCxl
Pending Cancel Status.
Definition: Fields.h:232
IntegralConstant< Char, 'C'> OrdStatusExp
Order Status Exp.
Definition: Fields.h:216
IntegralConstant< Char, 'U'> OrdStatusCxlRej
OrdStatusCxrRej.
Definition: Fields.h:200
ThisType & reserved5(bool value) noexcept
Modifies Reserved5 bit.
Definition: Fields.h:1772
bool operator!=(const ExecInst &other) const noexcept
Compares encoded data.
Definition: Fields.h:1801
#define ONIXS_ILINK3_MESSAGING_NAMESPACE_END
Definition: ABI.h:144
UInt8 Bits
Aliases integral type whose bits are used to indicate flag presence.
Definition: Fields.h:1632
bool nh() const noexcept
Indicates whether NH bit is set.
Definition: Fields.h:1685
IntegralConstant< Char, 'C'> PartyIDSource
PartyIDSource.
Definition: Fields.h:248
UInt8 EnumNULL
Type alias for the EnumNULL.
Definition: Fields.h:290
IntegralConstant< Char, 'U'> OrdStatusCxrRej
OrdStatusCxrRej.
Definition: Fields.h:208
UInt64 UInt64
uInt64.
Definition: Fields.h:308
LocalMktDate timestampToLocalMktDate(const Timestamp &timestamp) noexcept
Definition: Fields.h:1881
Timestamp localMktDateToTimestamp(LocalMktDate days) noexcept
Converts days since epoch to Timestamp value.
Definition: Fields.h:1873
ThisType & reserved2(bool value) noexcept
Modifies Reserved2 bit.
Definition: Fields.h:1724
IntegralConstant< Char, '2'> CxrRejRsp
Cancel Replace Reject.
Definition: Fields.h:70
ThisType & reserved4(bool value) noexcept
Modifies Reserved4 bit.
Definition: Fields.h:1756
IntegralConstant< Char, '3'> MassAction
Mass action type to represent mass cancel.
Definition: Fields.h:168
ExecInst ThisType
This type alias.
Definition: Fields.h:1640
IntegralConstant< Char, '5'> ModifyStatus
ModifyStatus.
Definition: Fields.h:176
IntegralConstant< Char, 'I'> ExecTypStatus
ExecTypStatus.
Definition: Fields.h:94
UInt32 UInt32
uInt32.
Definition: Fields.h:302
ThisType & reserved1(bool value) noexcept
Modifies Reserved1 bit.
Definition: Fields.h:1708
bool reserved3() const noexcept
Indicates whether Reserved3 bit is set.
Definition: Fields.h:1733
bool ob() const noexcept
Indicates whether OB bit is set.
Definition: Fields.h:1669
IntegralConstant< Char, '0'> ExecTypNew
ExecTypNew.
Definition: Fields.h:78
#define ONIXS_ILINK3_MESSAGING_NAMESPACE_BEGIN
Definition: ABI.h:140
IntegralConstant< UInt8, 255 > NullUInt8
Null value for an optional UInt8 field.
Definition: Fields.h:1865
The time point without the time-zone information.
Definition: Time.h:467
IntegralConstant< Char, '1'> CxlRejRsp
Cancel Reject.
Definition: Fields.h:62
#define ONIXS_ILINK3_NODISCARD
Definition: Compiler.h:192
UInt16 LocalMktDate
Type alias for the LocalMktDate.
Definition: Fields.h:160
IntegralConstant< Char, 'E'> PendModStatus
Pending Replace Status.
Definition: Fields.h:256
#define ONIXS_ILINK3_NOTHROW
Definition: Compiler.h:183
#define ONIXS_ILINK3_LTWT_STRUCT
Definition: ABI.h:88
IntegralConstant< Char, '3'> CrossType
Cross Type.
Definition: Fields.h:54
IntegralConstant< Char, '0'> OrdStatusNew
Order status of New.
Definition: Fields.h:224