OnixS C++ CME iLink 3 Binary Order Entry Handler  1.9.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 /// Execution type for trade.
122 ///
123 /// FIX type: char.
124 typedef
127 
128 
129 /// int32.
130 typedef Int32 Int32;
131 
132 
133 /// Leg security ID source in UDS creation.
134 ///
135 /// FIX type: char.
136 typedef
139 
140 
141 /// Type alias for the `LocalMktDate`.
142 ///
143 /// FIX type: LocalMktDate.
145 
146 
147 /// Mass action type to represent mass cancel.
148 ///
149 /// FIX type: char.
150 typedef
153 
154 
155 /// ModifyStatus.
156 ///
157 /// FIX type: char.
158 typedef
161 
162 
163 /// NoPtyUpd.
164 ///
165 /// FIX type: int.
166 typedef
169 
170 
171 /// Ord Status Cxl.
172 ///
173 /// FIX type: char.
174 typedef
177 
178 
179 /// OrdStatusCxrRej.
180 ///
181 /// FIX type: char.
182 typedef
185 
186 
187 /// OrdStatusCxrRej.
188 ///
189 /// FIX type: char.
190 typedef
193 
194 
195 /// Order Status Exp.
196 ///
197 /// FIX type: char.
198 typedef
201 
202 
203 /// Order status of New.
204 ///
205 /// FIX type: char.
206 typedef
209 
210 
211 /// Order Status Reject.
212 ///
213 /// FIX type: char.
214 typedef
217 
218 
219 /// PartyIDSource.
220 ///
221 /// FIX type: char.
222 typedef
225 
226 
227 /// SecurityIDSource.
228 ///
229 /// FIX type: char.
230 typedef
233 
234 
235 /// Security request type for UDS creation.
236 ///
237 /// FIX type: char.
238 typedef
241 
242 
243 /// UDI.
244 ///
245 /// FIX type: char.
246 typedef
249 
250 
251 /// Char with null value.
252 ///
253 /// FIX type: char.
254 typedef Char CharNULL;
255 
256 
257 /// Type alias for the `EnumNULL`.
258 typedef UInt8 EnumNULL;
259 
260 
261 /// uInt16.
262 ///
263 /// FIX type: int.
264 typedef UInt16 UInt16;
265 
266 
267 /// uInt32.
268 ///
269 /// FIX type: int.
270 typedef UInt32 UInt32;
271 
272 
273 /// uInt64.
274 ///
275 /// FIX type: int.
276 typedef UInt64 UInt64;
277 
278 
279 /// uInt8.
280 typedef UInt8 UInt8;
281 
282 
283 /// `AvgPxInd` type.
285 {
286  typedef UInt8 Base;
287 
288  enum Enum
289  {
290  /// No Average Pricing.
291  NoAveragePricing = 0,
292 
293  /// Trade is part of an Average Price Group Identified by the AvgPxGrp ID.
294  TradeispartofanAveragePriceGroupIdentifiedbytheAvgPxGrpID = 1,
295 
296  /// Trade is part of a Notional Value Average Price Group.
297  TradeispartofaNotionalValueAveragePriceGroup = 3
298  };
299 
300  /// \return a human-readable presentation.
302  static
303  std::string
304  toString(
305  Enum);
306 };
307 
308 /// `BooleanFlag` type.
310 {
311  typedef UInt8 Base;
312 
313  enum Enum
314  {
315  /// False, No.
316  False = 0,
317 
318  /// True, Yes.
319  True = 1
320  };
321 
322  /// \return a human-readable presentation.
324  static
325  std::string
326  toString(
327  Enum);
328 };
329 
330 /// `BooleanNULL` type.
332 {
333  typedef UInt8 Base;
334 
335  enum Enum
336  {
337  /// False, No.
338  False = 0,
339 
340  /// True, Yes.
341  True = 1
342  };
343 
344  /// \return a human-readable presentation.
346  static
347  std::string
348  toString(
349  Enum);
350 };
351 
352 /// `ClearingAcctType` type.
354 {
355  typedef UInt8 Base;
356 
357  enum Enum
358  {
359  /// Customer.
360  Customer = 0,
361 
362  /// Firm.
363  Firm = 1
364  };
365 
366  /// \return a human-readable presentation.
368  static
369  std::string
370  toString(
371  Enum);
372 };
373 
374 /// `CmtaGiveUpCD` type.
375 ///
376 /// FIX type: char.
378 {
379  typedef Char Base;
380 
381  enum Enum
382  {
383  /// Give Up.
384  GiveUp = 'G',
385 
386  /// SGX offset.
387  SGXoffset = 'S'
388  };
389 
390  /// \return a human-readable presentation.
392  static
393  std::string
394  toString(
395  Enum);
396 };
397 
398 /// `CustOrdHandlInst` type.
399 ///
400 /// FIX type: char.
402 {
403  typedef Char Base;
404 
405  enum Enum
406  {
407  /// FCM provided screen.
408  FCMprovidedscreen = 'C',
409 
410  /// Other provided screen.
411  Otherprovidedscreen = 'D',
412 
413  /// FCM API or FIX.
414  FCMAPIorFIX = 'G',
415 
416  /// Algo Engine.
417  AlgoEngine = 'H',
418 
419  /// Desk Electronic.
420  DeskElectronic = 'W',
421 
422  /// Client Electronic.
423  ClientElectronic = 'Y'
424  };
425 
426  /// \return a human-readable presentation.
428  static
429  std::string
430  toString(
431  Enum);
432 };
433 
434 /// `CustOrderCapacity` type.
436 {
437  typedef UInt8 Base;
438 
439  enum Enum
440  {
441  /// Member trading for their own account.
442  Membertradingfortheirownaccount = 1,
443 
444  /// Clearing firm trading for its proprietary account.
445  Clearingfirmtradingforitsproprietaryaccount = 2,
446 
447  /// Member trading for anothermember.
448  Membertradingforanothermember = 3,
449 
450  /// All other.
451  Allother = 4
452  };
453 
454  /// \return a human-readable presentation.
456  static
457  std::string
458  toString(
459  Enum);
460 };
461 
462 /// `DKReason` type.
463 ///
464 /// FIX type: char.
466 {
467  typedef Char Base;
468 
469  enum Enum
470  {
471  /// Unknown Security.
472  UnknownSecurity = 'A',
473 
474  /// Wrong Side.
475  WrongSide = 'B',
476 
477  /// Quantity Exceeds Order.
478  QuantityExceedsOrder = 'C',
479 
480  /// No Matching Order.
481  NoMatchingOrder = 'D',
482 
483  /// Price Exceeds Limit.
484  PriceExceedsLimit = 'E',
485 
486  /// Calculation Difference.
487  CalculationDifference = 'F',
488 
489  /// No Matching Execution Report.
490  NoMatchingExecutionReport = 'G',
491 
492  /// Other.
493  Other = 'Z'
494  };
495 
496  /// \return a human-readable presentation.
498  static
499  std::string
500  toString(
501  Enum);
502 };
503 
504 /// `ExecAckStatus` type.
506 {
507  typedef UInt8 Base;
508 
509  enum Enum
510  {
511  /// Accepted.
512  Accepted = 1,
513 
514  /// Rejected.
515  Rejected = 2
516  };
517 
518  /// \return a human-readable presentation.
520  static
521  std::string
522  toString(
523  Enum);
524 };
525 
526 /// `ExecMode` type.
527 ///
528 /// FIX type: char.
530 {
531  typedef Char Base;
532 
533  enum Enum
534  {
535  /// Aggressive.
536  Aggressive = 'A',
537 
538  /// Passive.
539  Passive = 'P'
540  };
541 
542  /// \return a human-readable presentation.
544  static
545  std::string
546  toString(
547  Enum);
548 };
549 
550 /// `ExecReason` type.
552 {
553  typedef UInt8 Base;
554 
555  enum Enum
556  {
557  /// Market Exchange Option.
558  MarketExchangeOption = 8,
559 
560  /// Cancelled Not Best.
561  CancelledNotBest = 9,
562 
563  /// Cancel On Disconnect.
564  CancelOnDisconnect = 100,
565 
566  /// Self Match Prevention Oldest Order Cancelled.
567  SelfMatchPreventionOldestOrderCancelled = 103,
568 
569  /// Cancel On Globex Credit Controls Violation.
570  CancelOnGlobexCreditControlsViolation = 104,
571 
572  /// Cancel From Firmsoft.
573  CancelFromFirmsoft = 105,
574 
575  /// Cancel From Risk Management API .
576  CancelFromRiskManagementAPI = 106,
577 
578  /// Self Match Prevention Newest Order Cancelled.
579  SelfMatchPreventionNewestOrderCancelled = 107,
580 
581  /// Cancel due to vol quoted option order rested qty less than min order size.
582  Cancelduetovolquotedoptionorderrestedqtylessthanminordersize = 108
583  };
584 
585  /// \return a human-readable presentation.
587  static
588  std::string
589  toString(
590  Enum);
591 };
592 
593 /// `ExecTypTrdCxl` type.
595 {
596  typedef CHAR Base;
597 
598  enum Enum
599  {
600  /// Trade Correction.
601  TradeCorrection = 'G',
602 
603  /// Trade Cancel.
604  TradeCancel = 'H'
605  };
606 
607  /// \return a human-readable presentation.
609  static
610  std::string
611  toString(
612  Enum);
613 };
614 
615 /// `ExpCycle` type.
617 {
618  typedef UInt8 Base;
619 
620  enum Enum
621  {
622  /// Expire On Trading Session Close.
623  ExpireOnTradingSessionClose = 0,
624 
625  /// Expiration at given date .
626  Expirationatgivendate = 2
627  };
628 
629  /// \return a human-readable presentation.
631  static
632  std::string
633  toString(
634  Enum);
635 };
636 
637 /// `FTI` type.
639 {
640  typedef UInt8 Base;
641 
642  enum Enum
643  {
644  /// Backup.
645  Backup = 0,
646 
647  /// Primary.
648  Primary = 1
649  };
650 
651  /// \return a human-readable presentation.
653  static
654  std::string
655  toString(
656  Enum);
657 };
658 
659 /// `KeepAliveLapsed` type.
661 {
662  typedef UInt8 Base;
663 
664  enum Enum
665  {
666  /// NotLapsed.
667  NotLapsed = 0,
668 
669  /// Lapsed.
670  Lapsed = 1
671  };
672 
673  /// \return a human-readable presentation.
675  static
676  std::string
677  toString(
678  Enum);
679 };
680 
681 /// `ListUpdAct` type.
683 {
684  typedef CHAR Base;
685 
686  enum Enum
687  {
688  /// Add.
689  Add = 'A',
690 
691  /// Delete.
692  Delete = 'D'
693  };
694 
695  /// \return a human-readable presentation.
697  static
698  std::string
699  toString(
700  Enum);
701 };
702 
703 /// `ManualOrdInd` type.
705 {
706  typedef UInt8 Base;
707 
708  enum Enum
709  {
710  /// Automated.
711  Automated = 0,
712 
713  /// Manual.
714  Manual = 1
715  };
716 
717  /// \return a human-readable presentation.
719  static
720  std::string
721  toString(
722  Enum);
723 };
724 
725 /// `ManualOrdIndReq` type.
727 {
728  typedef UInt8 Base;
729 
730  enum Enum
731  {
732  /// Automated.
733  Automated = 0,
734 
735  /// Manual.
736  Manual = 1
737  };
738 
739  /// \return a human-readable presentation.
741  static
742  std::string
743  toString(
744  Enum);
745 };
746 
747 /// `MassActionOrdTyp` type.
748 ///
749 /// FIX type: char.
751 {
752  typedef Char Base;
753 
754  enum Enum
755  {
756  /// Limit.
757  Limit = '2',
758 
759  /// Stop Limit.
760  StopLimit = '4'
761  };
762 
763  /// \return a human-readable presentation.
765  static
766  std::string
767  toString(
768  Enum);
769 };
770 
771 /// `MassActionResponse` type.
773 {
774  typedef UInt8 Base;
775 
776  enum Enum
777  {
778  /// Rejected.
779  Rejected = 0,
780 
781  /// Accepted.
782  Accepted = 1
783  };
784 
785  /// \return a human-readable presentation.
787  static
788  std::string
789  toString(
790  Enum);
791 };
792 
793 /// `MassActionScope` type.
795 {
796  typedef UInt8 Base;
797 
798  enum Enum
799  {
800  /// Instrument.
801  Instrument = 1,
802 
803  /// All.
804  All = 7,
805 
806  /// Market Segment ID.
807  MarketSegmentID = 9,
808 
809  /// Instrument Group.
810  InstrumentGroup = 10,
811 
812  /// Quote Set ID.
813  QuoteSetID = 100
814  };
815 
816  /// \return a human-readable presentation.
818  static
819  std::string
820  toString(
821  Enum);
822 };
823 
824 /// `MassCancelTIF` type.
826 {
827  typedef UInt8 Base;
828 
829  enum Enum
830  {
831  /// Day.
832  Day = 0,
833 
834  /// Good Till Cancel.
835  GoodTillCancel = 1,
836 
837  /// Good Till Date.
838  GoodTillDate = 6
839  };
840 
841  /// \return a human-readable presentation.
843  static
844  std::string
845  toString(
846  Enum);
847 };
848 
849 /// `MassCxlReqTyp` type.
851 {
852  typedef UInt8 Base;
853 
854  enum Enum
855  {
856  /// Sender Sub ID.
857  SenderSubID = 100,
858 
859  /// Account.
860  Account = 101
861  };
862 
863  /// \return a human-readable presentation.
865  static
866  std::string
867  toString(
868  Enum);
869 };
870 
871 /// `MassStatusOrdTyp` type.
873 {
874  typedef UInt8 Base;
875 
876  enum Enum
877  {
878  /// SenderSubID.
879  SenderSubID = 100,
880 
881  /// Account.
882  Account = 101
883  };
884 
885  /// \return a human-readable presentation.
887  static
888  std::string
889  toString(
890  Enum);
891 };
892 
893 /// `MassStatusReqTyp` type.
895 {
896  typedef UInt8 Base;
897 
898  enum Enum
899  {
900  /// Instrument.
901  Instrument = 1,
902 
903  /// Instrument Group.
904  InstrumentGroup = 3,
905 
906  /// Market Segment.
907  MarketSegment = 100
908  };
909 
910  /// \return a human-readable presentation.
912  static
913  std::string
914  toString(
915  Enum);
916 };
917 
918 /// `MassStatusTIF` type.
920 {
921  typedef UInt8 Base;
922 
923  enum Enum
924  {
925  /// Day.
926  Day = 0,
927 
928  /// GTC.
929  GTC = 1,
930 
931  /// GTD.
932  GTD = 6
933  };
934 
935  /// \return a human-readable presentation.
937  static
938  std::string
939  toString(
940  Enum);
941 };
942 
943 /// `OFMOverrideReq` type.
945 {
946  typedef UInt8 Base;
947 
948  enum Enum
949  {
950  /// Disabled.
951  Disabled = 0,
952 
953  /// Enabled.
954  Enabled = 1
955  };
956 
957  /// \return a human-readable presentation.
959  static
960  std::string
961  toString(
962  Enum);
963 };
964 
965 /// `OrdStatusTrd` type.
967 {
968  typedef UInt8 Base;
969 
970  enum Enum
971  {
972  /// Partially Filled.
973  PartiallyFilled = 1,
974 
975  /// Filled.
976  Filled = 2
977  };
978 
979  /// \return a human-readable presentation.
981  static
982  std::string
983  toString(
984  Enum);
985 };
986 
987 /// `OrdStatusTrdCxl` type.
989 {
990  typedef CHAR Base;
991 
992  enum Enum
993  {
994  /// Trade Correction.
995  TradeCorrection = 'G',
996 
997  /// Trade Cancel.
998  TradeCancel = 'H'
999  };
1000 
1001  /// \return a human-readable presentation.
1003  static
1004  std::string
1005  toString(
1006  Enum);
1007 };
1008 
1009 /// `OrderEventType` type.
1011 {
1012  typedef UInt8 Base;
1013 
1014  enum Enum
1015  {
1016  /// Partially Filled.
1017  PartiallyFilled = 4,
1018 
1019  /// Filled.
1020  Filled = 5
1021  };
1022 
1023  /// \return a human-readable presentation.
1025  static
1026  std::string
1027  toString(
1028  Enum);
1029 };
1030 
1031 /// `OrderStatus` type.
1033 {
1034  typedef CHAR Base;
1035 
1036  enum Enum
1037  {
1038  /// New.
1039  New = '0',
1040 
1041  /// Partially Filled.
1042  PartiallyFilled = '1',
1043 
1044  /// Filled.
1045  Filled = '2',
1046 
1047  /// Cancelled.
1048  Cancelled = '4',
1049 
1050  /// Replaced.
1051  Replaced = '5',
1052 
1053  /// Rejected.
1054  Rejected = '8',
1055 
1056  /// Expired.
1057  Expired = 'C',
1058 
1059  /// Undefined.
1060  Undefined = 'U'
1061  };
1062 
1063  /// \return a human-readable presentation.
1065  static
1066  std::string
1067  toString(
1068  Enum);
1069 };
1070 
1071 /// `OrderType` type.
1073 {
1074  typedef CHAR Base;
1075 
1076  enum Enum
1077  {
1078  /// Market With Protection.
1079  MarketWithProtection = '1',
1080 
1081  /// Limit.
1082  Limit = '2',
1083 
1084  /// Stop Limit.
1085  StopLimit = '4',
1086 
1087  /// Market With Leftover As Limit.
1088  MarketWithLeftoverAsLimit = 'K'
1089  };
1090 
1091  /// \return a human-readable presentation.
1093  static
1094  std::string
1095  toString(
1096  Enum);
1097 };
1098 
1099 /// `OrderTypeReq` type.
1101 {
1102  typedef CHAR Base;
1103 
1104  enum Enum
1105  {
1106  /// Market with Protection.
1107  MarketwithProtection = '1',
1108 
1109  /// Limit.
1110  Limit = '2',
1111 
1112  /// Stop with Protection.
1113  StopwithProtection = '3',
1114 
1115  /// Stop Limit.
1116  StopLimit = '4',
1117 
1118  /// Market With Leftover As Limit.
1119  MarketWithLeftoverAsLimit = 'K'
1120  };
1121 
1122  /// \return a human-readable presentation.
1124  static
1125  std::string
1126  toString(
1127  Enum);
1128 };
1129 
1130 /// `PartyDetailRole` type.
1131 ///
1132 /// FIX type: int.
1134 {
1135  typedef UInt16 Base;
1136 
1137  enum Enum
1138  {
1139  /// Executing Firm.
1140  ExecutingFirm = 1,
1141 
1142  /// Customer Account.
1143  CustomerAccount = 24,
1144 
1145  /// Take Up Firm.
1146  TakeUpFirm = 96,
1147 
1148  /// Operator.
1149  Operator = 118,
1150 
1151  /// Take Up Account.
1152  TakeUpAccount = 1000
1153  };
1154 
1155  /// \return a human-readable presentation.
1157  static
1158  std::string
1159  toString(
1160  Enum);
1161 };
1162 
1163 /// `QuoteAckStatus` type.
1165 {
1166  typedef UInt8 Base;
1167 
1168  enum Enum
1169  {
1170  /// Accepted.
1171  Accepted = 0,
1172 
1173  /// Rejected.
1174  Rejected = 5
1175  };
1176 
1177  /// \return a human-readable presentation.
1179  static
1180  std::string
1181  toString(
1182  Enum);
1183 };
1184 
1185 /// `QuoteCxlStatus` type.
1187 {
1188  typedef UInt8 Base;
1189 
1190  enum Enum
1191  {
1192  /// Cancel per Instrument.
1193  CancelperInstrument = 1,
1194 
1195  /// Cancel per Instrument group.
1196  CancelperInstrumentgroup = 3,
1197 
1198  /// Cancel all quotes.
1199  Cancelallquotes = 4,
1200 
1201  /// Rejected.
1202  Rejected = 5,
1203 
1204  /// Cancel per Quote Set.
1205  CancelperQuoteSet = 100
1206  };
1207 
1208  /// \return a human-readable presentation.
1210  static
1211  std::string
1212  toString(
1213  Enum);
1214 };
1215 
1216 /// `QuoteCxlTyp` type.
1218 {
1219  typedef UInt8 Base;
1220 
1221  enum Enum
1222  {
1223  /// Cancel per Instrument.
1224  CancelperInstrument = 1,
1225 
1226  /// Cancel per Instrument group.
1227  CancelperInstrumentgroup = 3,
1228 
1229  /// Cancel all quotes.
1230  Cancelallquotes = 4,
1231 
1232  /// Cancel per Quote Set.
1233  CancelperQuoteSet = 100
1234  };
1235 
1236  /// \return a human-readable presentation.
1238  static
1239  std::string
1240  toString(
1241  Enum);
1242 };
1243 
1244 /// `QuoteTyp` type.
1246 {
1247  typedef UInt8 Base;
1248 
1249  enum Enum
1250  {
1251  /// Tradeable.
1252  Tradeable = 1
1253  };
1254 
1255  /// \return a human-readable presentation.
1257  static
1258  std::string
1259  toString(
1260  Enum);
1261 };
1262 
1263 /// `RFQSide` type.
1265 {
1266  typedef UInt8 Base;
1267 
1268  enum Enum
1269  {
1270  /// Buy.
1271  Buy = 1,
1272 
1273  /// Sell.
1274  Sell = 2,
1275 
1276  /// Cross.
1277  Cross = 8
1278  };
1279 
1280  /// \return a human-readable presentation.
1282  static
1283  std::string
1284  toString(
1285  Enum);
1286 };
1287 
1288 /// `ReqResult` type.
1290 {
1291  typedef UInt8 Base;
1292 
1293  enum Enum
1294  {
1295  /// Valid Request.
1296  ValidRequest = 0,
1297 
1298  /// No Data Found That Matched Selection Criteria.
1299  NoDataFoundThatMatchedSelectionCriteria = 2,
1300 
1301  /// Not Authorized to Retrieve Data.
1302  NotAuthorizedtoRetrieveData = 3,
1303 
1304  /// Data Temporarily Unavailable.
1305  DataTemporarilyUnavailable = 4
1306  };
1307 
1308  /// \return a human-readable presentation.
1310  static
1311  std::string
1312  toString(
1313  Enum);
1314 };
1315 
1316 /// `SLEDS` type.
1318 {
1319  typedef UInt8 Base;
1320 
1321  enum Enum
1322  {
1323  /// Trade Clearing at Execution Price.
1324  TradeClearingatExecutionPrice = 0,
1325 
1326  /// Trade Clearing at Alternate Clearing Price.
1327  TradeClearingatAlternateClearingPrice = 1
1328  };
1329 
1330  /// \return a human-readable presentation.
1332  static
1333  std::string
1334  toString(
1335  Enum);
1336 };
1337 
1338 /// `SMPI` type.
1339 ///
1340 /// FIX type: char.
1342 {
1343  typedef Char Base;
1344 
1345  enum Enum
1346  {
1347  /// Cancel Newest.
1348  CancelNewest = 'N',
1349 
1350  /// Cancel Oldest.
1351  CancelOldest = 'O'
1352  };
1353 
1354  /// \return a human-readable presentation.
1356  static
1357  std::string
1358  toString(
1359  Enum);
1360 };
1361 
1362 /// `SecRspTyp` type.
1364 {
1365  typedef UInt8 Base;
1366 
1367  enum Enum
1368  {
1369  /// Accept Security Proposal as is.
1370  AcceptSecurityProposalasis = 1,
1371 
1372  /// Accept Security proposal with revisions as indicated in the message.
1373  AcceptSecurityproposalwithrevisionsasindicatedinthemessage = 2,
1374 
1375  /// Reject Security Proposal.
1376  RejectSecurityProposal = 5
1377  };
1378 
1379  /// \return a human-readable presentation.
1381  static
1382  std::string
1383  toString(
1384  Enum);
1385 };
1386 
1387 /// `ShortSaleType` type.
1389 {
1390  typedef UInt8 Base;
1391 
1392  enum Enum
1393  {
1394  /// Long Sell.
1395  LongSell = 0,
1396 
1397  /// Short Sale With No Exemption SESH.
1398  ShortSaleWithNoExemptionSESH = 1,
1399 
1400  /// Short Sale With Exemption SSEX.
1401  ShortSaleWithExemptionSSEX = 2,
1402 
1403  /// Undisclosed Sell Information Not Available UNDI.
1404  UndisclosedSellInformationNotAvailableUNDI = 3
1405  };
1406 
1407  /// \return a human-readable presentation.
1409  static
1410  std::string
1411  toString(
1412  Enum);
1413 };
1414 
1415 /// `SideNULL` type.
1417 {
1418  typedef UInt8 Base;
1419 
1420  enum Enum
1421  {
1422  /// Buy.
1423  Buy = 1,
1424 
1425  /// Sell.
1426  Sell = 2
1427  };
1428 
1429  /// \return a human-readable presentation.
1431  static
1432  std::string
1433  toString(
1434  Enum);
1435 };
1436 
1437 /// `SideReq` type.
1439 {
1440  typedef UInt8 Base;
1441 
1442  enum Enum
1443  {
1444  /// Buy.
1445  Buy = 1,
1446 
1447  /// Sell.
1448  Sell = 2
1449  };
1450 
1451  /// \return a human-readable presentation.
1453  static
1454  std::string
1455  toString(
1456  Enum);
1457 };
1458 
1459 /// `SideTimeInForce` type.
1461 {
1462  typedef UInt8 Base;
1463 
1464  enum Enum
1465  {
1466  /// Day.
1467  Day = 0,
1468 
1469  /// FAK.
1470  FAK = 3
1471  };
1472 
1473  /// \return a human-readable presentation.
1475  static
1476  std::string
1477  toString(
1478  Enum);
1479 };
1480 
1481 /// `SplitMsg` type.
1483 {
1484  typedef UInt8 Base;
1485 
1486  enum Enum
1487  {
1488  /// Split Message Delayed.
1489  SplitMessageDelayed = 0,
1490 
1491  /// Out of Order Message Delayed.
1492  OutofOrderMessageDelayed = 1,
1493 
1494  /// Complete Message Delayed.
1495  CompleteMessageDelayed = 2
1496  };
1497 
1498  /// \return a human-readable presentation.
1500  static
1501  std::string
1502  toString(
1503  Enum);
1504 };
1505 
1506 /// `TimeInForce` type.
1508 {
1509  typedef UInt8 Base;
1510 
1511  enum Enum
1512  {
1513  /// Day.
1514  Day = 0,
1515 
1516  /// Good Till Cancel.
1517  GoodTillCancel = 1,
1518 
1519  /// Fill And Kill.
1520  FillAndKill = 3,
1521 
1522  /// Fill Or Kill.
1523  FillOrKill = 4,
1524 
1525  /// Good Till Date.
1526  GoodTillDate = 6
1527  };
1528 
1529  /// \return a human-readable presentation.
1531  static
1532  std::string
1533  toString(
1534  Enum);
1535 };
1536 
1537 /// `TradeAddendum` type.
1539 {
1540  typedef UInt8 Base;
1541 
1542  enum Enum
1543  {
1544  /// Partially Filled.
1545  PartiallyFilled = 4,
1546 
1547  /// Filled.
1548  Filled = 5,
1549 
1550  /// Trade Cancel.
1551  TradeCancel = 100,
1552 
1553  /// Trade Correction.
1554  TradeCorrection = 101
1555  };
1556 
1557  /// \return a human-readable presentation.
1559  static
1560  std::string
1561  toString(
1562  Enum);
1563 };
1564 
1565 /// `ExecInst` type.
1567 {
1568 public:
1569  /// Aliases integral type whose bits
1570  /// are used to indicate flag presence.
1571  typedef UInt8 Bits;
1572 
1573  enum
1574  {
1575  Size = sizeof(Bits)
1576  };
1577 
1578  /// This type alias.
1580 
1581  /// \private
1582  /// Init traits.
1583  struct MemberTraits
1584  {
1585  enum { Count = 1 };
1586 
1587  typedef Bits FirstArgType;
1588  };
1589 
1590  /// Indicates whether AON bit is set.
1592  bool aon() const
1594  {
1595  return 0 != (bits_ & 0x1);
1596  }
1597 
1598  /// Modifies AON bit.
1599  ThisType& aon(bool value)
1601  {
1602  if (value) bits_ |= 0x1; else bits_ &= ~0x1;
1603  return *this;
1604  }
1605 
1606  /// Indicates whether OB bit is set.
1608  bool ob() const
1610  {
1611  return 0 != (bits_ & 0x2);
1612  }
1613 
1614  /// Modifies OB bit.
1615  ThisType& ob(bool value)
1617  {
1618  if (value) bits_ |= 0x2; else bits_ &= ~0x2;
1619  return *this;
1620  }
1621 
1622  /// Indicates whether NH bit is set.
1624  bool nh() const
1626  {
1627  return 0 != (bits_ & 0x4);
1628  }
1629 
1630  /// Modifies NH bit.
1631  ThisType& nh(bool value)
1633  {
1634  if (value) bits_ |= 0x4; else bits_ &= ~0x4;
1635  return *this;
1636  }
1637 
1638  /// Indicates whether Reserved1 bit is set.
1640  bool reserved1() const
1642  {
1643  return 0 != (bits_ & 0x8);
1644  }
1645 
1646  /// Modifies Reserved1 bit.
1647  ThisType& reserved1(bool value)
1649  {
1650  if (value) bits_ |= 0x8; else bits_ &= ~0x8;
1651  return *this;
1652  }
1653 
1654  /// Indicates whether Reserved2 bit is set.
1656  bool reserved2() const
1658  {
1659  return 0 != (bits_ & 0x10);
1660  }
1661 
1662  /// Modifies Reserved2 bit.
1663  ThisType& reserved2(bool value)
1665  {
1666  if (value) bits_ |= 0x10; else bits_ &= ~0x10;
1667  return *this;
1668  }
1669 
1670  /// Indicates whether Reserved3 bit is set.
1672  bool reserved3() const
1674  {
1675  return 0 != (bits_ & 0x20);
1676  }
1677 
1678  /// Modifies Reserved3 bit.
1679  ThisType& reserved3(bool value)
1681  {
1682  if (value) bits_ |= 0x20; else bits_ &= ~0x20;
1683  return *this;
1684  }
1685 
1686  /// Indicates whether Reserved4 bit is set.
1688  bool reserved4() const
1690  {
1691  return 0 != (bits_ & 0x40);
1692  }
1693 
1694  /// Modifies Reserved4 bit.
1695  ThisType& reserved4(bool value)
1697  {
1698  if (value) bits_ |= 0x40; else bits_ &= ~0x40;
1699  return *this;
1700  }
1701 
1702  /// Indicates whether Reserved5 bit is set.
1704  bool reserved5() const
1706  {
1707  return 0 != (bits_ & 0x80);
1708  }
1709 
1710  /// Modifies Reserved5 bit.
1711  ThisType& reserved5(bool value)
1713  {
1714  if (value) bits_ |= 0x80; else bits_ &= ~0x80;
1715  return *this;
1716  }
1717 
1718  /// \return elements as they packed in the set.
1719  inline
1720  Bits bits() const
1721  {
1722  return bits_;
1723  }
1724 
1725  /// Constructs from a value.
1726  explicit
1727  ExecInst(Bits bits = 0)
1728  : bits_(bits)
1729  {
1730  }
1731 
1732  /// \return a human-readable presentation.
1734  std::string
1735  toString() const;
1736 
1737  /// Compares encoded data
1739  bool operator!=(const ExecInst& other) const
1740  {
1741  return !(*this == other);
1742  }
1743 
1744  /// Compares encoded data
1746  bool operator==(const ExecInst& other) const
1747  {
1748  return this->bits_ == other.bits_;
1749  }
1750 
1751 private:
1752  Bits bits_;
1753 };
1754 
1755 
1756 /// Null value for an optional Int32 field.
1757 typedef
1760 
1761 
1762 /// Null value for an optional LocalMktDate field.
1763 typedef
1766 
1767 
1768 /// Null value for an optional CharNULL field.
1769 typedef
1772 
1773 
1774 /// Null value for an optional EnumNULL field.
1775 typedef
1778 
1779 
1780 /// Null value for an optional UInt16 field.
1781 typedef
1784 
1785 
1786 /// Null value for an optional UInt32 field.
1787 typedef
1790 
1791 
1792 /// Null value for an optional UInt64 field.
1793 typedef
1796 
1797 
1798 /// Null value for an optional UInt8 field.
1799 typedef
1802 
1803 
1804 
1805 /// Converts days since epoch to Timestamp value.
1806 inline
1807 Timestamp
1809 {
1810  return Timestamp(TimeSpan(days, 0, 0, 0, 0).ticks());
1811 }
1812 
1813 inline
1816 {
1817  return static_cast<LocalMktDate>(TimeSpan(timestamp.sinceEpoch()).days());
1818 }
1819 
Char CharNULL
Char with null value.
Definition: Fields.h:254
ThisType & aon(bool value) noexcept
Modifies AON bit.
Definition: Fields.h:1599
bool aon() const noexcept
Indicates whether AON bit is set.
Definition: Fields.h:1592
IntegralConstant< UInt32, 4294967295 > NullUInt32
Null value for an optional UInt32 field.
Definition: Fields.h:1789
IntegralConstant< Char, '1'> SecurityReqType
Security request type for UDS creation.
Definition: Fields.h:240
IntegralConstant< Char, '0'> CrossPrioritization
Cross Prioritization.
Definition: Fields.h:46
ThisType & nh(bool value) noexcept
Modifies NH bit.
Definition: Fields.h:1631
IntegralConstant< UInt16, 65535 > NullLocalMktDate
Null value for an optional LocalMktDate field.
Definition: Fields.h:1765
bool reserved5() const noexcept
Indicates whether Reserved5 bit is set.
Definition: Fields.h:1704
char Char
Character type alias.
Definition: String.h:30
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:1777
IntegralConstant< Char, '4'> OrdStatusCxl
Ord Status Cxl.
Definition: Fields.h:176
IntegralConstant< Char, 'C'> ExecTypeExp
Exec Type Exp.
Definition: Fields.h:110
IntegralConstant< Char, 'Y'> UDI
UDI.
Definition: Fields.h:248
Timestamp localMktDateToTimestamp(LocalMktDate days)
Converts days since epoch to Timestamp value.
Definition: Fields.h:1808
IntegralConstant< Char, '8'> SecurityIDSource
SecurityIDSource.
Definition: Fields.h:232
IntegralConstant< Char, '8'> OrdStatusRej
Order Status Reject.
Definition: Fields.h:216
IntegralConstant< UInt64, 18446744073709551615ULL > NullUInt64
Null value for an optional UInt64 field.
Definition: Fields.h:1795
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:1615
LocalMktDate timestampToLocalMktDate(const Timestamp &timestamp)
Definition: Fields.h:1815
UInt16 UInt16
uInt16.
Definition: Fields.h:264
IntegralConstant< Char, '5'> ExecTypeModify
ExecType Modify.
Definition: Fields.h:118
IntegralConstant< Char, '8'> LegSecIDSource
Leg security ID source in UDS creation.
Definition: Fields.h:138
ThisType & reserved3(bool value) noexcept
Modifies Reserved3 bit.
Definition: Fields.h:1679
bool reserved4() const noexcept
Indicates whether Reserved4 bit is set.
Definition: Fields.h:1688
IntegralConstant< Int32, 2147483647 > NullInt32
Null value for an optional Int32 field.
Definition: Fields.h:1759
IntegralConstant< UInt8, 1 > NoPtyUpd
NoPtyUpd.
Definition: Fields.h:168
bool reserved1() const noexcept
Indicates whether Reserved1 bit is set.
Definition: Fields.h:1640
IntegralConstant< Char, 0 > NullCharNULL
Null value for an optional CharNULL field.
Definition: Fields.h:1771
IntegralConstant< UInt16, 65535 > NullUInt16
Null value for an optional UInt16 field.
Definition: Fields.h:1783
IntegralConstant< Char, 'F'> ExecTypeTrade
Execution type for trade.
Definition: Fields.h:126
IntegralConstant< Char, '8'> ExecTypRej
Exec Type Reject.
Definition: Fields.h:86
bool reserved2() const noexcept
Indicates whether Reserved2 bit is set.
Definition: Fields.h:1656
IntegralConstant< Char, 'C'> OrdStatusExp
Order Status Exp.
Definition: Fields.h:200
IntegralConstant< Char, 'U'> OrdStatusCxlRej
OrdStatusCxrRej.
Definition: Fields.h:184
ThisType & reserved5(bool value) noexcept
Modifies Reserved5 bit.
Definition: Fields.h:1711
Ticks sinceEpoch() const ONIXS_ILINK3_NOEXCEPT
Definition: Time.h:608
bool operator!=(const ExecInst &other) const
Compares encoded data.
Definition: Fields.h:1739
#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:1571
bool nh() const noexcept
Indicates whether NH bit is set.
Definition: Fields.h:1624
IntegralConstant< Char, 'C'> PartyIDSource
PartyIDSource.
Definition: Fields.h:224
bool operator==(const ExecInst &other) const
Compares encoded data.
Definition: Fields.h:1746
UInt8 EnumNULL
Type alias for the EnumNULL.
Definition: Fields.h:258
IntegralConstant< Char, 'U'> OrdStatusCxrRej
OrdStatusCxrRej.
Definition: Fields.h:192
ExecInst(Bits bits=0)
Constructs from a value.
Definition: Fields.h:1727
UInt64 UInt64
uInt64.
Definition: Fields.h:276
ThisType & reserved2(bool value) noexcept
Modifies Reserved2 bit.
Definition: Fields.h:1663
IntegralConstant< Char, '2'> CxrRejRsp
Cancel Replace Reject.
Definition: Fields.h:70
ThisType & reserved4(bool value) noexcept
Modifies Reserved4 bit.
Definition: Fields.h:1695
IntegralConstant< Char, '3'> MassAction
Mass action type to represent mass cancel.
Definition: Fields.h:152
ExecInst ThisType
This type alias.
Definition: Fields.h:1579
IntegralConstant< Char, '5'> ModifyStatus
ModifyStatus.
Definition: Fields.h:160
IntegralConstant< Char, 'I'> ExecTypStatus
ExecTypStatus.
Definition: Fields.h:94
UInt32 UInt32
uInt32.
Definition: Fields.h:270
ThisType & reserved1(bool value) noexcept
Modifies Reserved1 bit.
Definition: Fields.h:1647
bool reserved3() const noexcept
Indicates whether Reserved3 bit is set.
Definition: Fields.h:1672
bool ob() const noexcept
Indicates whether OB bit is set.
Definition: Fields.h:1608
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:1801
The time point without the time-zone information.
Definition: Time.h:453
IntegralConstant< Char, '1'> CxlRejRsp
Cancel Reject.
Definition: Fields.h:62
#define ONIXS_ILINK3_NODISCARD
Definition: Compiler.h:173
UInt16 LocalMktDate
Type alias for the LocalMktDate.
Definition: Fields.h:144
#define ONIXS_ILINK3_NOTHROW
Definition: Compiler.h:164
#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:208