OnixS C++ CME MDP Premium Market Data Handler  5.9.0
API Documentation
Messages.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 
23 #include <cassert>
24 #include <stdexcept>
25 
28 
30 
31 /// MDInstrumentDefinitionFixedIncome.
33 {
34  /// Message template ID from SBE schema.
35  enum
36  {
37  TemplateId = 57
38  };
39 
40  /// Number of repeating EventType entries.
41  /// Entry of EventsEntry repeating group.
42  struct ONIXS_CMEMDH_LTWT EventsEntry : BinaryGroupEntry<GroupSize::BlockLength>
43  {
44  /// Aliases base class type.
46 
47  /// Initializes blank instance.
49 
50  /// Initializes instance of given
51  /// version over given memory block.
52  EventsEntry(const void* data, EncodedLength length, SchemaVersion version)
53  : Base(data, length, version)
54  {
55  if (length < blockLength(version))
56  throwBadBinaryData(className());
57  }
58 
59  /// Code to represent the type of event.
61  {
62  const BlockLength offset = 0;
63 
64  return enumeration<EventType>(offset);
65  }
66 
67  /// Date and Time of instrument Activation or Expiration event
68  /// sent as number of nanoseconds since Unix epoch.
70  {
71  const BlockLength offset = 1;
72 
73  return ordinary<Timestamp>(offset);
74  }
75 
76  /// Returns size of entry body in bytes
77  /// for given version of message template.
80  {
81  return 9;
82  }
83 
84  /// Entity class name.
86  static const Char* className()
87  {
88  return "InstrumentDefinitionFixedIncome57.EventsEntry";
89  }
90  };
91 
92  /// Repeating group containing EventsEntry entries.
94 
95  /// Number of repeating FeedType repeating group entries.
96  /// Entry of FeedTypesEntry repeating group.
97  struct ONIXS_CMEMDH_LTWT FeedTypesEntry : BinaryGroupEntry<GroupSize::BlockLength>
98  {
99  /// Aliases base class type.
101 
102  /// Initializes blank instance.
104 
105  /// Initializes instance of given
106  /// version over given memory block.
107  FeedTypesEntry(const void* data, EncodedLength length, SchemaVersion version)
108  : Base(data, length, version)
109  {
110  if (length < blockLength(version))
111  throwBadBinaryData(className());
112  }
113 
114  /// Describes a class of service for a given data feed. GBX-
115  /// Real Book, GBI-Implied Book.
116  StrRef feedType() const
117  {
118  const BlockLength offset = 0;
119  const BlockLength length = 3;
120 
121  return fixedStr<length>(offset);
122  }
123 
124  /// book depth.
126  {
127  const BlockLength offset = 3;
128 
129  return ordinary<Int8>(offset);
130  }
131 
132  /// Returns size of entry body in bytes
133  /// for given version of message template.
136  {
137  return 4;
138  }
139 
140  /// Entity class name.
142  static const Char* className()
143  {
144  return "InstrumentDefinitionFixedIncome57.FeedTypesEntry";
145  }
146  };
147 
148  /// Repeating group containing FeedTypesEntry entries.
150 
151  /// Number of repeating InstrAttribType entries.
152  /// Entry of InstAttribEntry repeating group.
153  struct ONIXS_CMEMDH_LTWT InstAttribEntry : BinaryGroupEntry<GroupSize::BlockLength>
154  {
155  /// Aliases base class type.
157 
158  /// Initializes blank instance.
160 
161  /// Initializes instance of given
162  /// version over given memory block.
163  InstAttribEntry(const void* data, EncodedLength length, SchemaVersion version)
164  : Base(data, length, version)
165  {
166  if (length < blockLength(version))
167  throwBadBinaryData(className());
168  }
169 
170  /// Instrument eligibility attributes.
172  {
173  return InstAttribType();
174  }
175 
176  /// Bitmap field of 32 Boolean type instrument eligibility
177  /// flags.
179  {
180  const BlockLength offset = 0;
181 
182  return ordinary<InstAttribValue>(offset);
183  }
184 
185  /// Returns size of entry body in bytes
186  /// for given version of message template.
189  {
190  return 4;
191  }
192 
193  /// Entity class name.
195  static const Char* className()
196  {
197  return "InstrumentDefinitionFixedIncome57.InstAttribEntry";
198  }
199  };
200 
201  /// Repeating group containing InstAttribEntry entries.
203 
204  /// Number of entries.
205  /// Entry of LotTypeRulesEntry repeating group.
206  struct ONIXS_CMEMDH_LTWT LotTypeRulesEntry : BinaryGroupEntry<GroupSize::BlockLength>
207  {
208  /// Aliases base class type.
210 
211  /// Initializes blank instance.
213 
214  /// Initializes instance of given
215  /// version over given memory block.
216  LotTypeRulesEntry(const void* data, EncodedLength length, SchemaVersion version)
217  : Base(data, length, version)
218  {
219  if (length < blockLength(version))
220  throwBadBinaryData(className());
221  }
222 
223  /// This tag is required to interpret the value in tag
224  /// 1231-MinLotSize.
225  Int8 lotType() const
226  {
227  const BlockLength offset = 0;
228 
229  return ordinary<Int8>(offset);
230  }
231 
232  /// Minimum quantity accepted for order entry. If tag
233  /// 1093-LotType=4, this value is the minimum quantity for
234  /// order entry expressed in the applicable units, specified
235  /// in tag 996-UnitOfMeasure, (e.g., megawatts). If tag
236  /// 1093-LotType= 5, this value represents order qty increment.
237  bool minLotSize(Decimal& value) const
238  {
239  typedef NullDecimalQty Null;
240 
241  const BlockLength offset = 1;
242 
243  return decimal(value, offset, Null());
244  }
245 
246  /// Returns size of entry body in bytes
247  /// for given version of message template.
250  {
251  return 5;
252  }
253 
254  /// Entity class name.
256  static const Char* className()
257  {
258  return "InstrumentDefinitionFixedIncome57.LotTypeRulesEntry";
259  }
260  };
261 
262  /// Repeating group containing LotTypeRulesEntry entries.
264 
265  /// Initializes blank instance.
267 
268  /// Initializes instance over given memory block.
270  : BinaryMessage(data, length, 10)
271  {
272  assert(TemplateId == templateId());
273 
274  if (length < blockLength(version()))
275  throwBadBinaryData(className());
276  }
277 
278  /// Bitmap field of eight Boolean type indicators reflecting
279  /// the end of updates for a given Globex event.
281  {
282  const BlockLength offset = 0;
283 
284  return ordinary<MatchEventIndicator>(offset);
285  }
286 
287  /// Total number of instruments in the Replay loop. Used on
288  /// Replay Feed only.
290  {
291  typedef NullUInt32 Null;
292 
293  const BlockLength offset = 1;
294 
295  return ordinary(value, offset, Null());
296  }
297 
298  /// Last Security update action on Incremental feed, 'D' or
299  /// 'M' is used when a mid-week deletion or modification (i.e.
300  /// extension) occurs.
302  {
303  const BlockLength offset = 5;
304 
305  return enumeration<SecurityUpdateAction>(offset);
306  }
307 
308  /// Timestamp of when the instrument was last added, modified
309  /// or deleted.
311  {
312  const BlockLength offset = 6;
313 
314  return ordinary<Timestamp>(offset);
315  }
316 
317  /// Identifies the current market state of the instrument.
319  {
320  typedef NullUInt8 Null;
321 
322  const BlockLength offset = 14;
323 
324  return enumeration<SecurityTradingStatus>(value, offset, Null());
325  }
326 
327  /// MD channel ID as defined in the XML Configuration file.
328  Int16 applId() const
329  {
330  const BlockLength offset = 15;
331 
332  return ordinary<Int16>(offset);
333  }
334 
335  /// Identifies the market segment for all CME Globex
336  /// instruments.
338  {
339  const BlockLength offset = 17;
340 
341  return ordinary<UInt8>(offset);
342  }
343 
344  /// Indicates the product complex.
346  {
347  const BlockLength offset = 18;
348 
349  return ordinary<UInt8>(offset);
350  }
351 
352  /// Exchange used to identify a security.
354  {
355  const BlockLength offset = 19;
356  const BlockLength length = 4;
357 
358  return fixedStr<length>(offset);
359  }
360 
361  /// Security Group Code.
363  {
364  const BlockLength offset = 23;
365  const BlockLength length = 6;
366 
367  return fixedStr<length>(offset);
368  }
369 
370  /// The underlying asset code also known as Product Code.
371  StrRef asset() const
372  {
373  const BlockLength offset = 29;
374  const BlockLength length = 6;
375 
376  return fixedStr<length>(offset);
377  }
378 
379  /// Instrument Name or Symbol.
380  StrRef symbol() const
381  {
382  const BlockLength offset = 35;
383  const BlockLength length = 20;
384 
385  return fixedStr<length>(offset);
386  }
387 
388  /// Unique instrument ID.
390  {
391  const BlockLength offset = 55;
392 
393  return ordinary<Int32>(offset);
394  }
395 
396  /// Identifies class or source of Tag 48-SecurityID value.
398  {
399  return SecurityIDSource();
400  }
401 
402  /// Security Type.
404  {
405  const BlockLength offset = 59;
406  const BlockLength length = 6;
407 
408  return fixedStr<length>(offset);
409  }
410 
411  /// ISO standard instrument categorization code.
412  StrRef cfiCode() const
413  {
414  const BlockLength offset = 65;
415  const BlockLength length = 6;
416 
417  return fixedStr<length>(offset);
418  }
419 
420  /// Identifies the currency used for price.
421  StrRef currency() const
422  {
423  const BlockLength offset = 71;
424  const BlockLength length = 3;
425 
426  return fixedStr<length>(offset);
427  }
428 
429  /// Identifies currency used for settlement, if different from
430  /// trade price currency.
432  {
433  const BlockLength offset = 74;
434  const BlockLength length = 3;
435 
436  return fixedStr<length>(offset);
437  }
438 
439  /// Matching Algorithm.
441  {
442  const BlockLength offset = 77;
443 
444  return ordinary<CHAR>(offset);
445  }
446 
447  /// The minimum trading volume for a security.
449  {
450  const BlockLength offset = 78;
451 
452  return ordinary<UInt32>(offset);
453  }
454 
455  /// The maximum trading volume for a security.
457  {
458  const BlockLength offset = 82;
459 
460  return ordinary<UInt32>(offset);
461  }
462 
463  /// Minimum constant tick for the instrument, sent only if
464  /// instrument is non-VTT (Variable Tick table) eligible.
466  {
467  typedef NullPRICE9 Null;
468 
469  const BlockLength offset = 86;
470 
471  return decimal(value, offset, Null());
472  }
473 
474  /// Contains the multiplier to convert the CME Globex display
475  /// price to the conventional price.
477  {
478  const BlockLength offset = 94;
479 
480  return decimal<Decimal9>(offset);
481  }
482 
483  /// Price Denominator of Main Fraction.
484  bool mainFraction(UInt8& value) const
485  {
486  typedef NullUInt8 Null;
487 
488  const BlockLength offset = 102;
489 
490  return ordinary(value, offset, Null());
491  }
492 
493  /// Price Denominator of Sub Fraction.
494  bool subFraction(UInt8& value) const
495  {
496  typedef NullUInt8 Null;
497 
498  const BlockLength offset = 103;
499 
500  return ordinary(value, offset, Null());
501  }
502 
503  /// Number of Decimals in Displayed Price.
505  {
506  typedef NullUInt8 Null;
507 
508  const BlockLength offset = 104;
509 
510  return ordinary(value, offset, Null());
511  }
512 
513  /// Unit of measure for the products' original contract size.
514  /// This will be populated for all products listed on CME
515  /// Globex.
517  {
518  const BlockLength offset = 105;
519  const BlockLength length = 30;
520 
521  return fixedStr<length>(offset);
522  }
523 
524  /// This field contains the contract size for each instrument.
525  /// Use in combination with tag 996-UnitofMeasure.
527  {
528  typedef NullDecimal9 Null;
529 
530  const BlockLength offset = 135;
531 
532  return decimal(value, offset, Null());
533  }
534 
535  /// Trading Reference Price.
537  {
538  typedef NullPRICE9 Null;
539 
540  const BlockLength offset = 143;
541 
542  return decimal(value, offset, Null());
543  }
544 
545  /// Indicates session date corresponding to the reference
546  /// price in tag 1150-TradingReferencePrice.
548  {
549  typedef NullLocalMktDate Null;
550  typedef LocalMktDate FieldValue;
551 
552  const BlockLength offset = 151;
553 
554  FieldValue fieldValue;
555 
556  if (ordinary(fieldValue, offset, Null()))
557  {
558  value = localMktDateToTimestamp(fieldValue);
559  return true;
560  }
561  return false;
562  }
563 
564  /// Allowable high limit price for the trading day.
566  {
567  typedef NullPRICE9 Null;
568 
569  const BlockLength offset = 153;
570 
571  return decimal(value, offset, Null());
572  }
573 
574  /// Allowable low limit price for the trading day.
576  {
577  typedef NullPRICE9 Null;
578 
579  const BlockLength offset = 161;
580 
581  return decimal(value, offset, Null());
582  }
583 
584  /// Differential value for price banding.
586  {
587  typedef NullPRICE9 Null;
588 
589  const BlockLength offset = 169;
590 
591  return decimal(value, offset, Null());
592  }
593 
594  /// Monetary value equivalent to the minimum price
595  /// fluctuation.
597  {
598  typedef NullPRICE9 Null;
599 
600  const BlockLength offset = 177;
601 
602  return decimal(value, offset, Null());
603  }
604 
605  /// Issue Date.
606  bool issueDate(Timestamp& value) const
607  {
608  typedef NullLocalMktDate Null;
609  typedef LocalMktDate FieldValue;
610 
611  const BlockLength offset = 185;
612 
613  FieldValue fieldValue;
614 
615  if (ordinary(fieldValue, offset, Null()))
616  {
617  value = localMktDateToTimestamp(fieldValue);
618  return true;
619  }
620  return false;
621  }
622 
623  /// Dated Date.
624  bool datedDate(Timestamp& value) const
625  {
626  typedef NullLocalMktDate Null;
627  typedef LocalMktDate FieldValue;
628 
629  const BlockLength offset = 187;
630 
631  FieldValue fieldValue;
632 
633  if (ordinary(fieldValue, offset, Null()))
634  {
635  value = localMktDateToTimestamp(fieldValue);
636  return true;
637  }
638  return false;
639  }
640 
641  /// Maturity Date.
643  {
644  typedef NullLocalMktDate Null;
645  typedef LocalMktDate FieldValue;
646 
647  const BlockLength offset = 189;
648 
649  FieldValue fieldValue;
650 
651  if (ordinary(fieldValue, offset, Null()))
652  {
653  value = localMktDateToTimestamp(fieldValue);
654  return true;
655  }
656  return false;
657  }
658 
659  /// The rate of interest that, when multiplied by the
660  /// principal, par value, or face value of a bond, provides
661  /// the currency amount of the periodic interest payment.
662  bool couponRate(Decimal& value) const
663  {
664  typedef NullDecimal9 Null;
665 
666  const BlockLength offset = 191;
667 
668  return decimal(value, offset, Null());
669  }
670 
671  /// Par value.
672  bool parValue(Decimal& value) const
673  {
674  typedef NullPRICE9 Null;
675 
676  const BlockLength offset = 199;
677 
678  return decimal(value, offset, Null());
679  }
680 
681  /// Time unit associated with the frequency of the bond's
682  /// coupon payment.
684  {
685  const BlockLength offset = 207;
686  const BlockLength length = 3;
687 
688  return fixedStr<length>(offset);
689  }
690 
691  /// Time unit multiplier for the frequency of the bond's
692  /// coupon payment.
694  {
695  typedef NullUInt16 Null;
696 
697  const BlockLength offset = 210;
698 
699  return ordinary(value, offset, Null());
700  }
701 
702  /// The day count convention used in interest calculations for
703  /// a bond or an interest bearing security.
705  {
706  const BlockLength offset = 212;
707  const BlockLength length = 20;
708 
709  return fixedStr<length>(offset);
710  }
711 
712  /// Country of Origin, ISO alpha-2 country code.
714  {
715  const BlockLength offset = 232;
716  const BlockLength length = 2;
717 
718  return fixedStr<length>(offset);
719  }
720 
721  /// Name of security issuer or the Legal Entity Identifier
722  /// (LEI - the International ISO standard 17442).
723  StrRef issuer() const
724  {
725  const BlockLength offset = 234;
726  const BlockLength length = 25;
727 
728  return fixedStr<length>(offset);
729  }
730 
731  /// Long name of the instrument.
733  {
734  const BlockLength offset = 259;
735  const BlockLength length = 35;
736 
737  return fixedStr<length>(offset);
738  }
739 
740  /// Expanded instrument description. Will contain either ISIN
741  /// or CUSIP.
743  {
744  const BlockLength offset = 294;
745  const BlockLength length = 12;
746 
747  return fixedStr<length>(offset);
748  }
749 
750  /// Identifies class or source of the SecurityAltID (455)
751  /// value.
753  {
754  typedef NullUInt8 Null;
755 
756  const BlockLength offset = 306;
757 
758  return enumeration<SecurityAltIDSource>(value, offset, Null());
759  }
760 
761  /// Price quotation method.
763  {
764  const BlockLength offset = 307;
765  const BlockLength length = 5;
766 
767  return fixedStr<length>(offset);
768  }
769 
770  /// Clearing organization.
772  {
773  const BlockLength offset = 312;
774  const BlockLength length = 5;
775 
776  return fixedStr<length>(offset);
777  }
778 
779  /// User-defined Instrument flag.
781  {
782  const BlockLength offset = 317;
783 
784  return ordinary<UserDefinedInstrument>(offset);
785  }
786 
787  /// Risk Set identifies the list of instruments sharing credit
788  /// limits set up.
789  StrRef riskSet() const
790  {
791  const BlockLength offset = 318;
792  const BlockLength length = 6;
793 
794  return fixedStr<length>(offset);
795  }
796 
797  /// Market Set defines the bilateral relationship and Self
798  /// Match Prevention configuration for eligible markets.
800  {
801  const BlockLength offset = 324;
802  const BlockLength length = 6;
803 
804  return fixedStr<length>(offset);
805  }
806 
807  /// External unique instrument ID.
809  {
810  typedef NullUInt64 Null;
811 
812  const BlockLength offset = 330;
813 
814  return ordinary(value, offset, Null());
815  }
816 
817  /// Returns instance of Events repeating group.
818  Events events() const
819  {
820  return groups().head<Events>();
821  }
822 
823  /// Returns instance of FeedTypes repeating group.
824  FeedTypes feedTypes() const
825  {
826  return groups().tail<Events>().head<FeedTypes>();
827  }
828 
829  /// Returns instance of InstAttrib repeating group.
830  InstAttrib instAttrib() const
831  {
832  return groups().tail<Events>().tail<FeedTypes>().head<InstAttrib>();
833  }
834 
835  /// Returns instance of LotTypeRules repeating group.
836  LotTypeRules lotTypeRules() const
837  {
838  return groups().tail<Events>().tail<FeedTypes>().tail<InstAttrib>().head<LotTypeRules>();
839  }
840 
841  /// Size of message body in bytes.
844  {
845  if (version >= 10)
846  return 338;
847 
848  return 207;
849  }
850 
851  /// Returns class name.
853  static const Char* className()
854  {
855  return "InstrumentDefinitionFixedIncome57";
856  }
857 
858  /// FIX message type.
860  static StrRef fixType()
861  {
862  return toStrRef("d");
863  }
864 };
865 
866 /// ChannelReset.
868 {
869  /// Message template ID from SBE schema.
870  enum
871  {
872  TemplateId = 4
873  };
874 
875  /// Number of entries in Market Data message.
876  /// Entry of Entry repeating group.
877  struct ONIXS_CMEMDH_LTWT Entry : BinaryGroupEntry<GroupSize::BlockLength>
878  {
879  /// Aliases base class type.
881 
882  /// Initializes blank instance.
883  Entry() {}
884 
885  /// Initializes instance of given
886  /// version over given memory block.
887  Entry(const void* data, EncodedLength length, SchemaVersion version)
888  : Base(data, length, version)
889  {
890  if (length < blockLength(version))
891  throwBadBinaryData(className());
892  }
893 
894  /// Market Data update action.
896  {
897  return UpdateTypeNew();
898  }
899 
900  /// Market Data entry type.
902  {
903  return EntryTypeChannelReset();
904  }
905 
906  /// Indicates the channel ID as defined in the XML
907  /// configuration file.
908  Int16 applId() const
909  {
910  const BlockLength offset = 0;
911 
912  return ordinary<Int16>(offset);
913  }
914 
915  /// Returns size of entry body in bytes
916  /// for given version of message template.
919  {
920  return 2;
921  }
922 
923  /// Entity class name.
925  static const Char* className()
926  {
927  return "ChannelReset4.Entry";
928  }
929  };
930 
931  /// Repeating group containing Entry entries.
933 
934  /// Initializes blank instance.
936 
937  /// Initializes instance over given memory block.
938  ChannelReset4(const void* data, EncodedLength length)
939  : BinaryMessage(data, length, SchemaTraits::minimalVersion())
940  {
941  assert(TemplateId == templateId());
942 
943  if (length < blockLength(version()))
944  throwBadBinaryData(className());
945  }
946 
947  /// Start of event processing time in number of nanoseconds
948  /// since Unix epoch.
950  {
951  const BlockLength offset = 0;
952 
953  return ordinary<Timestamp>(offset);
954  }
955 
956  /// Bitmap field of eight Boolean type indicators reflecting
957  /// the end of updates for a given Globex event.
959  {
960  const BlockLength offset = 8;
961 
962  return ordinary<MatchEventIndicator>(offset);
963  }
964 
965  /// Returns instance of Entries repeating group.
966  Entries entries() const
967  {
968  return groups().head<Entries>();
969  }
970 
971  /// Size of message body in bytes.
974  {
975  return 9;
976  }
977 
978  /// Returns class name.
980  static const Char* className()
981  {
982  return "ChannelReset4";
983  }
984 
985  /// FIX message type.
987  static StrRef fixType()
988  {
989  return toStrRef("X");
990  }
991 };
992 
993 /// AdminHeartbeat.
995 {
996  /// Message template ID from SBE schema.
997  enum
998  {
999  TemplateId = 12
1000  };
1001 
1002  /// Initializes blank instance.
1004 
1005  /// Initializes instance over given memory block.
1006  AdminHeartbeat12(const void* data, EncodedLength length)
1007  : BinaryMessage(data, length, SchemaTraits::minimalVersion())
1008  {
1009  assert(TemplateId == templateId());
1010 
1011  if (length < blockLength(version()))
1012  throwBadBinaryData(className());
1013  }
1014 
1015  /// Size of message body in bytes.
1018  {
1019  return 0;
1020  }
1021 
1022  /// Returns class name.
1024  static const Char* className()
1025  {
1026  return "AdminHeartbeat12";
1027  }
1028 
1029  /// FIX message type.
1031  static StrRef fixType()
1032  {
1033  return toStrRef("0");
1034  }
1035 };
1036 
1037 /// AdminLogin.
1039 {
1040  /// Message template ID from SBE schema.
1041  enum
1042  {
1043  TemplateId = 15
1044  };
1045 
1046  /// Initializes blank instance.
1048 
1049  /// Initializes instance over given memory block.
1050  AdminLogin15(const void* data, EncodedLength length)
1051  : BinaryMessage(data, length, SchemaTraits::minimalVersion())
1052  {
1053  assert(TemplateId == templateId());
1054 
1055  if (length < blockLength(version()))
1056  throwBadBinaryData(className());
1057  }
1058 
1059  /// Heartbeat interval (seconds).
1061  {
1062  const BlockLength offset = 0;
1063 
1064  return ordinary<Int8>(offset);
1065  }
1066 
1067  /// Size of message body in bytes.
1070  {
1071  return 1;
1072  }
1073 
1074  /// Returns class name.
1076  static const Char* className()
1077  {
1078  return "AdminLogin15";
1079  }
1080 
1081  /// FIX message type.
1083  static StrRef fixType()
1084  {
1085  return toStrRef("A");
1086  }
1087 };
1088 
1089 /// AdminLogout.
1091 {
1092  /// Message template ID from SBE schema.
1093  enum
1094  {
1095  TemplateId = 16
1096  };
1097 
1098  /// Initializes blank instance.
1100 
1101  /// Initializes instance over given memory block.
1102  AdminLogout16(const void* data, EncodedLength length)
1103  : BinaryMessage(data, length, SchemaTraits::minimalVersion())
1104  {
1105  assert(TemplateId == templateId());
1106 
1107  if (length < blockLength(version()))
1108  throwBadBinaryData(className());
1109  }
1110 
1111  /// Free format text string. May include logout confirmation
1112  /// or reason for logout.
1113  StrRef text() const
1114  {
1115  const BlockLength offset = 0;
1116  const BlockLength length = 180;
1117 
1118  return fixedStr<length>(offset);
1119  }
1120 
1121  /// Size of message body in bytes.
1124  {
1125  return 180;
1126  }
1127 
1128  /// Returns class name.
1130  static const Char* className()
1131  {
1132  return "AdminLogout16";
1133  }
1134 
1135  /// FIX message type.
1137  static StrRef fixType()
1138  {
1139  return toStrRef("5");
1140  }
1141 };
1142 
1143 /// AdminLogin.
1145 {
1146  /// Message template ID from SBE schema.
1147  enum
1148  {
1149  TemplateId = 408
1150  };
1151 
1152  /// Initializes blank instance.
1154 
1155  /// Initializes instance over given memory block.
1156  AdminLogin408(const void* data, EncodedLength length)
1157  : BinaryMessage(data, length, SchemaTraits::minimalTcpRecoveryVersion())
1158  {
1159  assert(TemplateId == templateId());
1160 
1161  if (length < blockLength(version()))
1162  throwBadBinaryData(className());
1163  }
1164 
1165  /// Heartbeat interval (seconds).
1167  {
1168  const BlockLength offset = 0;
1169 
1170  return ordinary<Int8>(offset);
1171  }
1172 
1173  /// Size of message body in bytes.
1176  {
1177  return 1;
1178  }
1179 
1180  /// Returns class name.
1182  static const Char* className()
1183  {
1184  return "AdminLogin408";
1185  }
1186 
1187  /// FIX message type.
1189  static StrRef fixType()
1190  {
1191  return toStrRef("A");
1192  }
1193 };
1194 
1195 /// AdminLogout.
1197 {
1198  /// Message template ID from SBE schema.
1199  enum
1200  {
1201  TemplateId = 409
1202  };
1203 
1204  /// Initializes blank instance.
1206 
1207  /// Initializes instance over given memory block.
1208  AdminLogout409(const void* data, EncodedLength length)
1209  : BinaryMessage(data, length, SchemaTraits::minimalTcpRecoveryVersion())
1210  {
1211  assert(TemplateId == templateId());
1212 
1213  if (length < blockLength(version()))
1214  throwBadBinaryData(className());
1215  }
1216 
1217  /// Free format text string. May include logout confirmation
1218  /// or reason for logout.
1219  StrRef text() const
1220  {
1221  const BlockLength offset = 0;
1222  const BlockLength length = 180;
1223 
1224  return fixedStr<length>(offset);
1225  }
1226 
1227  /// Size of message body in bytes.
1230  {
1231  return 180;
1232  }
1233 
1234  /// Returns class name.
1236  static const Char* className()
1237  {
1238  return "AdminLogout409";
1239  }
1240 
1241  /// FIX message type.
1243  static StrRef fixType()
1244  {
1245  return toStrRef("5");
1246  }
1247 };
1248 
1249 /// AdminHeartbeat.
1251 {
1252  /// Message template ID from SBE schema.
1253  enum
1254  {
1255  TemplateId = 410
1256  };
1257 
1258  /// Initializes blank instance.
1260 
1261  /// Initializes instance over given memory block.
1262  AdminHeartbeat410(const void* data, EncodedLength length)
1263  : BinaryMessage(data, length, SchemaTraits::minimalTcpRecoveryVersion())
1264  {
1265  assert(TemplateId == templateId());
1266 
1267  if (length < blockLength(version()))
1268  throwBadBinaryData(className());
1269  }
1270 
1271  /// Size of message body in bytes.
1274  {
1275  return 0;
1276  }
1277 
1278  /// Returns class name.
1280  static const Char* className()
1281  {
1282  return "AdminHeartbeat410";
1283  }
1284 
1285  /// FIX message type.
1287  static StrRef fixType()
1288  {
1289  return toStrRef("0");
1290  }
1291 };
1292 
1293 /// MDInstrumentDefinitionFuture.
1295 {
1296  /// Message template ID from SBE schema.
1297  enum
1298  {
1299  TemplateId = 54
1300  };
1301 
1302  /// Number of repeating EventType entries.
1303  /// Entry of EventsEntry repeating group.
1304  struct ONIXS_CMEMDH_LTWT EventsEntry : BinaryGroupEntry<GroupSize::BlockLength>
1305  {
1306  /// Aliases base class type.
1308 
1309  /// Initializes blank instance.
1311 
1312  /// Initializes instance of given
1313  /// version over given memory block.
1314  EventsEntry(const void* data, EncodedLength length, SchemaVersion version)
1315  : Base(data, length, version)
1316  {
1317  if (length < blockLength(version))
1318  throwBadBinaryData(className());
1319  }
1320 
1321  /// Code to represent the type of event.
1323  {
1324  const BlockLength offset = 0;
1325 
1326  return enumeration<EventType>(offset);
1327  }
1328 
1329  /// Date and Time of instument Activation or Expiration event
1330  /// sent as number of nanoseconds since Unix epoch.
1332  {
1333  const BlockLength offset = 1;
1334 
1335  return ordinary<Timestamp>(offset);
1336  }
1337 
1338  /// Returns size of entry body in bytes
1339  /// for given version of message template.
1342  {
1343  return 9;
1344  }
1345 
1346  /// Entity class name.
1348  static const Char* className()
1349  {
1350  return "InstrumentDefinitionFuture54.EventsEntry";
1351  }
1352  };
1353 
1354  /// Repeating group containing EventsEntry entries.
1356 
1357  /// Number of repeating FeedType entries.
1358  /// Entry of FeedTypesEntry repeating group.
1359  struct ONIXS_CMEMDH_LTWT FeedTypesEntry : BinaryGroupEntry<GroupSize::BlockLength>
1360  {
1361  /// Aliases base class type.
1363 
1364  /// Initializes blank instance.
1366 
1367  /// Initializes instance of given
1368  /// version over given memory block.
1369  FeedTypesEntry(const void* data, EncodedLength length, SchemaVersion version)
1370  : Base(data, length, version)
1371  {
1372  if (length < blockLength(version))
1373  throwBadBinaryData(className());
1374  }
1375 
1376  /// Describes a class of service for a given data feed. GBX-
1377  /// Real Book, GBI-Implied Book.
1379  {
1380  const BlockLength offset = 0;
1381  const BlockLength length = 3;
1382 
1383  return fixedStr<length>(offset);
1384  }
1385 
1386  /// Book depth.
1388  {
1389  const BlockLength offset = 3;
1390 
1391  return ordinary<Int8>(offset);
1392  }
1393 
1394  /// Returns size of entry body in bytes
1395  /// for given version of message template.
1398  {
1399  return 4;
1400  }
1401 
1402  /// Entity class name.
1404  static const Char* className()
1405  {
1406  return "InstrumentDefinitionFuture54.FeedTypesEntry";
1407  }
1408  };
1409 
1410  /// Repeating group containing FeedTypesEntry entries.
1412 
1413  /// Number of repeating InstrAttribType entries.
1414  /// Entry of InstAttribEntry repeating group.
1415  struct ONIXS_CMEMDH_LTWT InstAttribEntry : BinaryGroupEntry<GroupSize::BlockLength>
1416  {
1417  /// Aliases base class type.
1419 
1420  /// Initializes blank instance.
1422 
1423  /// Initializes instance of given
1424  /// version over given memory block.
1425  InstAttribEntry(const void* data, EncodedLength length, SchemaVersion version)
1426  : Base(data, length, version)
1427  {
1428  if (length < blockLength(version))
1429  throwBadBinaryData(className());
1430  }
1431 
1432  /// Instrument eligibility attributes.
1434  {
1435  return InstAttribType();
1436  }
1437 
1438  /// Bitmap field of 32 Boolean type instrument eligibility
1439  /// flags.
1441  {
1442  const BlockLength offset = 0;
1443 
1444  return ordinary<InstAttribValue>(offset);
1445  }
1446 
1447  /// Returns size of entry body in bytes
1448  /// for given version of message template.
1451  {
1452  return 4;
1453  }
1454 
1455  /// Entity class name.
1457  static const Char* className()
1458  {
1459  return "InstrumentDefinitionFuture54.InstAttribEntry";
1460  }
1461  };
1462 
1463  /// Repeating group containing InstAttribEntry entries.
1465 
1466  /// Number of entries.
1467  /// Entry of LotTypeRulesEntry repeating group.
1468  struct ONIXS_CMEMDH_LTWT LotTypeRulesEntry : BinaryGroupEntry<GroupSize::BlockLength>
1469  {
1470  /// Aliases base class type.
1472 
1473  /// Initializes blank instance.
1475 
1476  /// Initializes instance of given
1477  /// version over given memory block.
1478  LotTypeRulesEntry(const void* data, EncodedLength length, SchemaVersion version)
1479  : Base(data, length, version)
1480  {
1481  if (length < blockLength(version))
1482  throwBadBinaryData(className());
1483  }
1484 
1485  /// This tag is required to interpret the value in tag
1486  /// 1231-MinLotSize.
1487  Int8 lotType() const
1488  {
1489  const BlockLength offset = 0;
1490 
1491  return ordinary<Int8>(offset);
1492  }
1493 
1494  /// Minimum quantity accepted for order entry. If tag
1495  /// 1093-LotType=4, this value is the minimum quantity for
1496  /// order entry expressed in the applicable units, specified
1497  /// in tag 996-UnitOfMeasure, e.g. megawatts.
1498  bool minLotSize(Decimal& value) const
1499  {
1500  typedef NullDecimalQty Null;
1501 
1502  const BlockLength offset = 1;
1503 
1504  return decimal(value, offset, Null());
1505  }
1506 
1507  /// Returns size of entry body in bytes
1508  /// for given version of message template.
1511  {
1512  return 5;
1513  }
1514 
1515  /// Entity class name.
1517  static const Char* className()
1518  {
1519  return "InstrumentDefinitionFuture54.LotTypeRulesEntry";
1520  }
1521  };
1522 
1523  /// Repeating group containing LotTypeRulesEntry entries.
1525 
1526  /// Initializes blank instance.
1528 
1529  /// Initializes instance over given memory block.
1531  : BinaryMessage(data, length, SchemaTraits::minimalVersion())
1532  {
1533  assert(TemplateId == templateId());
1534 
1535  if (length < blockLength(version()))
1536  throwBadBinaryData(className());
1537  }
1538 
1539  /// Bitmap field of eight Boolean type indicators reflecting
1540  /// the end of updates for a given Globex event.
1542  {
1543  const BlockLength offset = 0;
1544 
1545  return ordinary<MatchEventIndicator>(offset);
1546  }
1547 
1548  /// Total number of instruments in the Replay loop. Used on
1549  /// Replay Feed only.
1551  {
1552  typedef NullUInt32 Null;
1553 
1554  const BlockLength offset = 1;
1555 
1556  return ordinary(value, offset, Null());
1557  }
1558 
1559  /// Last Security update action on Incremental feed, 'D' or
1560  /// 'M' is used when a mid-week deletion or modification (i.e.
1561  /// extension) occurs.
1563  {
1564  const BlockLength offset = 5;
1565 
1566  return enumeration<SecurityUpdateAction>(offset);
1567  }
1568 
1569  /// Timestamp of when the instrument was last added, modified
1570  /// or deleted.
1572  {
1573  const BlockLength offset = 6;
1574 
1575  return ordinary<Timestamp>(offset);
1576  }
1577 
1578  /// Identifies the current state of the instrument. In
1579  /// Security Definition message this tag is available in the
1580  /// Instrument Replay feed only.
1582  {
1583  typedef NullUInt8 Null;
1584 
1585  const BlockLength offset = 14;
1586 
1587  return enumeration<SecurityTradingStatus>(value, offset, Null());
1588  }
1589 
1590  /// The channel ID as defined in the XML Configuration file.
1591  Int16 applId() const
1592  {
1593  const BlockLength offset = 15;
1594 
1595  return ordinary<Int16>(offset);
1596  }
1597 
1598  /// Identifies the market segment, populated for all CME
1599  /// Globex instruments.
1601  {
1602  const BlockLength offset = 17;
1603 
1604  return ordinary<UInt8>(offset);
1605  }
1606 
1607  /// Product complex.
1609  {
1610  const BlockLength offset = 18;
1611 
1612  return ordinary<UInt8>(offset);
1613  }
1614 
1615  /// Exchange used to identify a security.
1617  {
1618  const BlockLength offset = 19;
1619  const BlockLength length = 4;
1620 
1621  return fixedStr<length>(offset);
1622  }
1623 
1624  /// Security Group Code.
1626  {
1627  const BlockLength offset = 23;
1628  const BlockLength length = 6;
1629 
1630  return fixedStr<length>(offset);
1631  }
1632 
1633  /// The underlying asset code also known as Product Code.
1634  StrRef asset() const
1635  {
1636  const BlockLength offset = 29;
1637  const BlockLength length = 6;
1638 
1639  return fixedStr<length>(offset);
1640  }
1641 
1642  /// Instrument Name or Symbol.
1643  StrRef symbol() const
1644  {
1645  const BlockLength offset = 35;
1646  const BlockLength length = 20;
1647 
1648  return fixedStr<length>(offset);
1649  }
1650 
1651  /// Unique instrument ID.
1653  {
1654  const BlockLength offset = 55;
1655 
1656  return ordinary<Int32>(offset);
1657  }
1658 
1659  /// Identifies class or source of tag 48-SecurityID value.
1661  {
1662  return SecurityIDSource();
1663  }
1664 
1665  /// Security Type.
1667  {
1668  const BlockLength offset = 59;
1669  const BlockLength length = 6;
1670 
1671  return fixedStr<length>(offset);
1672  }
1673 
1674  /// ISO standard instrument categorization code.
1675  StrRef cfiCode() const
1676  {
1677  const BlockLength offset = 65;
1678  const BlockLength length = 6;
1679 
1680  return fixedStr<length>(offset);
1681  }
1682 
1683  /// This field provides the actual calendar date for contract
1684  /// maturity.
1686  {
1687  typedef NullMaturityMonthYear Null;
1688 
1689  const BlockLength offset = 71;
1690 
1691  return ordinary(value, offset, Null());
1692  }
1693 
1694  /// Identifies currency used for price.
1696  {
1697  const BlockLength offset = 76;
1698  const BlockLength length = 3;
1699 
1700  return fixedStr<length>(offset);
1701  }
1702 
1703  /// Identifies currency used for settlement, if different from
1704  /// trading currency.
1706  {
1707  const BlockLength offset = 79;
1708  const BlockLength length = 3;
1709 
1710  return fixedStr<length>(offset);
1711  }
1712 
1713  /// Matching algorithm.
1715  {
1716  const BlockLength offset = 82;
1717 
1718  return ordinary<CHAR>(offset);
1719  }
1720 
1721  /// The minimum trading volume for a security.
1723  {
1724  const BlockLength offset = 83;
1725 
1726  return ordinary<UInt32>(offset);
1727  }
1728 
1729  /// The maximum trading volume for a security.
1731  {
1732  const BlockLength offset = 87;
1733 
1734  return ordinary<UInt32>(offset);
1735  }
1736 
1737  /// Minimum constant tick for the instrument, sent only if
1738  /// instrument is non-VTT (Variable Tick table) eligible.
1740  {
1741  const BlockLength offset = 91;
1742 
1743  return decimal<PRICE9>(offset);
1744  }
1745 
1746  /// Contains the multiplier to convert the CME Globex display
1747  /// price to the conventional price.
1749  {
1750  const BlockLength offset = 99;
1751 
1752  return decimal<Decimal9>(offset);
1753  }
1754 
1755  /// Price Denominator of Main Fraction.
1756  bool mainFraction(UInt8& value) const
1757  {
1758  typedef NullUInt8 Null;
1759 
1760  const BlockLength offset = 107;
1761 
1762  return ordinary(value, offset, Null());
1763  }
1764 
1765  /// Price Denominator of Sub Fraction.
1766  bool subFraction(UInt8& value) const
1767  {
1768  typedef NullUInt8 Null;
1769 
1770  const BlockLength offset = 108;
1771 
1772  return ordinary(value, offset, Null());
1773  }
1774 
1775  /// Number of decimals in fractional display price.
1777  {
1778  typedef NullUInt8 Null;
1779 
1780  const BlockLength offset = 109;
1781 
1782  return ordinary(value, offset, Null());
1783  }
1784 
1785  /// Unit of measure for the products' original contract size.
1786  /// This will be populated for all products listed on CME
1787  /// Globex.
1789  {
1790  const BlockLength offset = 110;
1791  const BlockLength length = 30;
1792 
1793  return fixedStr<length>(offset);
1794  }
1795 
1796  /// This field contains the contract size for each instrument.
1797  /// Used in combination with tag 996-UnitofMeasure.
1799  {
1800  typedef NullDecimal9 Null;
1801 
1802  const BlockLength offset = 140;
1803 
1804  return decimal(value, offset, Null());
1805  }
1806 
1807  /// Reference price for prelisted instruments or the last
1808  /// calculated Settlement whether it be Theoretical,
1809  /// Preliminary or a Final Settle of the session.
1811  {
1812  typedef NullPRICE9 Null;
1813 
1814  const BlockLength offset = 148;
1815 
1816  return decimal(value, offset, Null());
1817  }
1818 
1819  /// Bitmap field of eight Boolean type indicators representing
1820  /// settlement price type.
1822  {
1823  const BlockLength offset = 156;
1824 
1825  return ordinary<SettlPriceType>(offset);
1826  }
1827 
1828  /// The total open interest for the market at the close of the
1829  /// prior trading session.
1831  {
1832  typedef NullInt32 Null;
1833 
1834  const BlockLength offset = 157;
1835 
1836  return ordinary(value, offset, Null());
1837  }
1838 
1839  /// The total cleared volume of instrument traded during the
1840  /// prior trading session.
1842  {
1843  typedef NullInt32 Null;
1844 
1845  const BlockLength offset = 161;
1846 
1847  return ordinary(value, offset, Null());
1848  }
1849 
1850  /// Allowable high limit price for the trading day.
1852  {
1853  typedef NullPRICE9 Null;
1854 
1855  const BlockLength offset = 165;
1856 
1857  return decimal(value, offset, Null());
1858  }
1859 
1860  /// Allowable low limit price for the trading day.
1862  {
1863  typedef NullPRICE9 Null;
1864 
1865  const BlockLength offset = 173;
1866 
1867  return decimal(value, offset, Null());
1868  }
1869 
1870  /// Differential value for price banding.
1872  {
1873  typedef NullPRICE9 Null;
1874 
1875  const BlockLength offset = 181;
1876 
1877  return decimal(value, offset, Null());
1878  }
1879 
1880  /// Indicates the quantity that a contract will decay daily by
1881  /// once the decay start date is reached.
1883  {
1884  typedef NullInt32 Null;
1885 
1886  const BlockLength offset = 189;
1887 
1888  return ordinary(value, offset, Null());
1889  }
1890 
1891  /// Indicates the date at which a decaying contract will begin
1892  /// to decay.
1894  {
1895  typedef NullLocalMktDate Null;
1896  typedef LocalMktDate FieldValue;
1897 
1898  const BlockLength offset = 193;
1899 
1900  FieldValue fieldValue;
1901 
1902  if (ordinary(fieldValue, offset, Null()))
1903  {
1904  value = localMktDateToTimestamp(fieldValue);
1905  return true;
1906  }
1907  return false;
1908  }
1909 
1910  /// Fixed contract value assigned to each product.
1912  {
1913  typedef NullInt32 Null;
1914 
1915  const BlockLength offset = 195;
1916 
1917  return ordinary(value, offset, Null());
1918  }
1919 
1920  /// Number of deliverable units per instrument, e.g., peak
1921  /// days in maturity month or number of calendar days in
1922  /// maturity month.
1924  {
1925  typedef NullInt32 Null;
1926 
1927  const BlockLength offset = 199;
1928 
1929  return ordinary(value, offset, Null());
1930  }
1931 
1932  /// Indicates the type of multiplier being applied to the
1933  /// product. Optionally used in combination with tag
1934  /// 231-ContractMultiplier.
1936  {
1937  typedef NullInt8 Null;
1938 
1939  const BlockLength offset = 203;
1940 
1941  return ordinary(value, offset, Null());
1942  }
1943 
1944  /// The schedule according to which the electricity is
1945  /// delivered in a physical contract, or priced in a financial
1946  /// contract. Specifies whether the contract is defined
1947  /// according to the Easter Peak, Eastern Off-Peak, Western
1948  /// Peak or Western Off-Peak.
1950  {
1951  typedef NullInt8 Null;
1952 
1953  const BlockLength offset = 204;
1954 
1955  return ordinary(value, offset, Null());
1956  }
1957 
1958  /// Monetary value equivalent to the minimum price fluctuation.
1960  {
1961  typedef NullPRICE9 Null;
1962 
1963  const BlockLength offset = 205;
1964 
1965  return decimal(value, offset, Null());
1966  }
1967 
1968  /// User-defined instruments flag.
1970  {
1971  const BlockLength offset = 213;
1972 
1973  return ordinary<UserDefinedInstrument>(offset);
1974  }
1975 
1976  /// Indicates session date corresponding to the settlement
1977  /// price in tag 1150-TradingReferencePrice.
1979  {
1980  typedef NullLocalMktDate Null;
1981  typedef LocalMktDate FieldValue;
1982 
1983  const BlockLength offset = 214;
1984 
1985  FieldValue fieldValue;
1986 
1987  if (ordinary(fieldValue, offset, Null()))
1988  {
1989  value = localMktDateToTimestamp(fieldValue);
1990  return true;
1991  }
1992  return false;
1993  }
1994 
1995  /// External unique instrument ID.
1997  {
1998  typedef NullUInt64 Null;
1999 
2000  const BlockLength offset = 216;
2001  const SchemaVersion since = 10;
2002 
2003  return ordinary(value, offset, Null(), since);
2004  }
2005 
2006  /// Returns instance of Events repeating group.
2007  Events events() const
2008  {
2009  return groups().head<Events>();
2010  }
2011 
2012  /// Returns instance of FeedTypes repeating group.
2013  FeedTypes feedTypes() const
2014  {
2015  return groups().tail<Events>().head<FeedTypes>();
2016  }
2017 
2018  /// Returns instance of InstAttrib repeating group.
2019  InstAttrib instAttrib() const
2020  {
2021  return groups().tail<Events>().tail<FeedTypes>().head<InstAttrib>();
2022  }
2023 
2024  /// Returns instance of LotTypeRules repeating group.
2025  LotTypeRules lotTypeRules() const
2026  {
2027  return groups().tail<Events>().tail<FeedTypes>().tail<InstAttrib>().head<LotTypeRules>();
2028  }
2029 
2030  /// Size of message body in bytes.
2033  {
2034  if (version >= 10)
2035  return 224;
2036 
2037  return 216;
2038  }
2039 
2040  /// Returns class name.
2042  static const Char* className()
2043  {
2044  return "InstrumentDefinitionFuture54";
2045  }
2046 
2047  /// FIX message type.
2049  static StrRef fixType()
2050  {
2051  return toStrRef("d");
2052  }
2053 };
2054 
2055 /// MDInstrumentDefinitionSpread.
2057 {
2058  /// Message template ID from SBE schema.
2059  enum
2060  {
2061  TemplateId = 56
2062  };
2063 
2064  /// Number of repeating EventType entries.
2065  /// Entry of EventsEntry repeating group.
2066  struct ONIXS_CMEMDH_LTWT EventsEntry : BinaryGroupEntry<GroupSize::BlockLength>
2067  {
2068  /// Aliases base class type.
2070 
2071  /// Initializes blank instance.
2073 
2074  /// Initializes instance of given
2075  /// version over given memory block.
2076  EventsEntry(const void* data, EncodedLength length, SchemaVersion version)
2077  : Base(data, length, version)
2078  {
2079  if (length < blockLength(version))
2080  throwBadBinaryData(className());
2081  }
2082 
2083  /// Code to represent the type of event.
2085  {
2086  const BlockLength offset = 0;
2087 
2088  return enumeration<EventType>(offset);
2089  }
2090 
2091  /// Date and time of instument Activation or Expiration event
2092  /// sent as number of nanoseconds since Unix epoch.
2094  {
2095  const BlockLength offset = 1;
2096 
2097  return ordinary<Timestamp>(offset);
2098  }
2099 
2100  /// Returns size of entry body in bytes
2101  /// for given version of message template.
2104  {
2105  return 9;
2106  }
2107 
2108  /// Entity class name.
2110  static const Char* className()
2111  {
2112  return "InstrumentDefinitionSpread56.EventsEntry";
2113  }
2114  };
2115 
2116  /// Repeating group containing EventsEntry entries.
2118 
2119  /// Number of FeedType entries.
2120  /// Entry of FeedTypesEntry repeating group.
2121  struct ONIXS_CMEMDH_LTWT FeedTypesEntry : BinaryGroupEntry<GroupSize::BlockLength>
2122  {
2123  /// Aliases base class type.
2125 
2126  /// Initializes blank instance.
2128 
2129  /// Initializes instance of given
2130  /// version over given memory block.
2131  FeedTypesEntry(const void* data, EncodedLength length, SchemaVersion version)
2132  : Base(data, length, version)
2133  {
2134  if (length < blockLength(version))
2135  throwBadBinaryData(className());
2136  }
2137 
2138  /// Describes a class of service for a given data feed. GBX-
2139  /// Real Book, GBI-Implied Book.
2141  {
2142  const BlockLength offset = 0;
2143  const BlockLength length = 3;
2144 
2145  return fixedStr<length>(offset);
2146  }
2147 
2148  /// Identifies the depth of book.
2150  {
2151  const BlockLength offset = 3;
2152 
2153  return ordinary<Int8>(offset);
2154  }
2155 
2156  /// Returns size of entry body in bytes
2157  /// for given version of message template.
2160  {
2161  return 4;
2162  }
2163 
2164  /// Entity class name.
2166  static const Char* className()
2167  {
2168  return "InstrumentDefinitionSpread56.FeedTypesEntry";
2169  }
2170  };
2171 
2172  /// Repeating group containing FeedTypesEntry entries.
2174 
2175  /// Number of InstrAttribType entries.
2176  /// Entry of InstAttribEntry repeating group.
2177  struct ONIXS_CMEMDH_LTWT InstAttribEntry : BinaryGroupEntry<GroupSize::BlockLength>
2178  {
2179  /// Aliases base class type.
2181 
2182  /// Initializes blank instance.
2184 
2185  /// Initializes instance of given
2186  /// version over given memory block.
2187  InstAttribEntry(const void* data, EncodedLength length, SchemaVersion version)
2188  : Base(data, length, version)
2189  {
2190  if (length < blockLength(version))
2191  throwBadBinaryData(className());
2192  }
2193 
2194  /// Instrument Eligibility Attributes.
2196  {
2197  return InstAttribType();
2198  }
2199 
2200  /// Bitmap field of 32 Boolean type Instrument eligibility
2201  /// flags.
2203  {
2204  const BlockLength offset = 0;
2205 
2206  return ordinary<InstAttribValue>(offset);
2207  }
2208 
2209  /// Returns size of entry body in bytes
2210  /// for given version of message template.
2213  {
2214  return 4;
2215  }
2216 
2217  /// Entity class name.
2219  static const Char* className()
2220  {
2221  return "InstrumentDefinitionSpread56.InstAttribEntry";
2222  }
2223  };
2224 
2225  /// Repeating group containing InstAttribEntry entries.
2227 
2228  /// Number of entries.
2229  /// Entry of LotTypeRulesEntry repeating group.
2230  struct ONIXS_CMEMDH_LTWT LotTypeRulesEntry : BinaryGroupEntry<GroupSize::BlockLength>
2231  {
2232  /// Aliases base class type.
2234 
2235  /// Initializes blank instance.
2237 
2238  /// Initializes instance of given
2239  /// version over given memory block.
2240  LotTypeRulesEntry(const void* data, EncodedLength length, SchemaVersion version)
2241  : Base(data, length, version)
2242  {
2243  if (length < blockLength(version))
2244  throwBadBinaryData(className());
2245  }
2246 
2247  /// This tag is required to interpret the value in tag
2248  /// 1231-MinLotSize.
2249  Int8 lotType() const
2250  {
2251  const BlockLength offset = 0;
2252 
2253  return ordinary<Int8>(offset);
2254  }
2255 
2256  /// Minimum quantity accepted for order entry. If tag
2257  /// 1093-LotType=4, this value is the minimum quantity for
2258  /// order entry expressed in the applicable units, specified
2259  /// in tag 996-UnitOfMeasure, e.g. megawatts.
2260  bool minLotSize(Decimal& value) const
2261  {
2262  typedef NullDecimalQty Null;
2263 
2264  const BlockLength offset = 1;
2265 
2266  return decimal(value, offset, Null());
2267  }
2268 
2269  /// Returns size of entry body in bytes
2270  /// for given version of message template.
2273  {
2274  return 5;
2275  }
2276 
2277  /// Entity class name.
2279  static const Char* className()
2280  {
2281  return "InstrumentDefinitionSpread56.LotTypeRulesEntry";
2282  }
2283  };
2284 
2285  /// Repeating group containing LotTypeRulesEntry entries.
2287 
2288  /// Number of Leg entries.
2289  /// Entry of LegsEntry repeating group.
2290  struct ONIXS_CMEMDH_LTWT LegsEntry : BinaryGroupEntry<GroupSize::BlockLength>
2291  {
2292  /// Aliases base class type.
2294 
2295  /// Initializes blank instance.
2297 
2298  /// Initializes instance of given
2299  /// version over given memory block.
2300  LegsEntry(const void* data, EncodedLength length, SchemaVersion version)
2301  : Base(data, length, version)
2302  {
2303  if (length < blockLength(version))
2304  throwBadBinaryData(className());
2305  }
2306 
2307  /// Leg Security ID.
2309  {
2310  const BlockLength offset = 0;
2311 
2312  return ordinary<Int32>(offset);
2313  }
2314 
2315  /// Identifies source of tag 602-LegSecurityID value.
2317  {
2318  return SecurityIDSource();
2319  }
2320 
2321  /// Leg side.
2323  {
2324  const BlockLength offset = 4;
2325 
2326  return enumeration<LegSide>(offset);
2327  }
2328 
2329  /// Leg ratio of quantity for this individual leg relative to
2330  /// the entire multi-leg instrument.
2332  {
2333  const BlockLength offset = 5;
2334 
2335  return ordinary<Int8>(offset);
2336  }
2337 
2338  /// Price for the future leg of a UDS Covered instrument.
2339  bool legPrice(Decimal& value) const
2340  {
2341  typedef NullPRICE9 Null;
2342 
2343  const BlockLength offset = 6;
2344 
2345  return decimal(value, offset, Null());
2346  }
2347 
2348  /// Delta used to calculate the quantity of futures used to
2349  /// cover the option or option strategy.
2351  {
2352  typedef NullDecimalQty Null;
2353 
2354  const BlockLength offset = 14;
2355 
2356  return decimal(value, offset, Null());
2357  }
2358 
2359  /// Returns size of entry body in bytes
2360  /// for given version of message template.
2363  {
2364  return 18;
2365  }
2366 
2367  /// Entity class name.
2369  static const Char* className()
2370  {
2371  return "InstrumentDefinitionSpread56.LegsEntry";
2372  }
2373  };
2374 
2375  /// Repeating group containing LegsEntry entries.
2377 
2378  /// Initializes blank instance.
2380 
2381  /// Initializes instance over given memory block.
2383  : BinaryMessage(data, length, SchemaTraits::minimalVersion())
2384  {
2385  assert(TemplateId == templateId());
2386 
2387  if (length < blockLength(version()))
2388  throwBadBinaryData(className());
2389  }
2390 
2391  /// Bitmap field of eight Boolean type indicators reflecting
2392  /// the end of updates for a given Globex event.
2394  {
2395  const BlockLength offset = 0;
2396 
2397  return ordinary<MatchEventIndicator>(offset);
2398  }
2399 
2400  /// Total number of instruments in the Replay loop. Used on
2401  /// Replay Feed only.
2403  {
2404  typedef NullUInt32 Null;
2405 
2406  const BlockLength offset = 1;
2407 
2408  return ordinary(value, offset, Null());
2409  }
2410 
2411  /// Last Security update action on Incremental feed, 'D' or
2412  /// 'M' is used when a mid-week deletion or modification (i.e.
2413  /// extension) occurs.
2415  {
2416  const BlockLength offset = 5;
2417 
2418  return enumeration<SecurityUpdateAction>(offset);
2419  }
2420 
2421  /// Timestamp of when the instrument was last added, modified
2422  /// or deleted.
2424  {
2425  const BlockLength offset = 6;
2426 
2427  return ordinary<Timestamp>(offset);
2428  }
2429 
2430  /// Identifies the current state of the instrument. The data
2431  /// is available in the Instrument Replay feed only.
2433  {
2434  typedef NullUInt8 Null;
2435 
2436  const BlockLength offset = 14;
2437 
2438  return enumeration<SecurityTradingStatus>(value, offset, Null());
2439  }
2440 
2441  /// The channel ID as defined in the XML Configuration file.
2442  Int16 applId() const
2443  {
2444  const BlockLength offset = 15;
2445 
2446  return ordinary<Int16>(offset);
2447  }
2448 
2449  /// Identifies the market segment, populated for all CME
2450  /// Globex instruments.
2452  {
2453  const BlockLength offset = 17;
2454 
2455  return ordinary<UInt8>(offset);
2456  }
2457 
2458  /// Product complex.
2460  {
2461  typedef NullUInt8 Null;
2462 
2463  const BlockLength offset = 18;
2464 
2465  return ordinary(value, offset, Null());
2466  }
2467 
2468  /// Exchange used to identify a security.
2470  {
2471  const BlockLength offset = 19;
2472  const BlockLength length = 4;
2473 
2474  return fixedStr<length>(offset);
2475  }
2476 
2477  /// Security Group Code.
2479  {
2480  const BlockLength offset = 23;
2481  const BlockLength length = 6;
2482 
2483  return fixedStr<length>(offset);
2484  }
2485 
2486  /// The underlying asset code also known as Product Code.
2487  StrRef asset() const
2488  {
2489  const BlockLength offset = 29;
2490  const BlockLength length = 6;
2491 
2492  return fixedStr<length>(offset);
2493  }
2494 
2495  /// Instrument Name or Symbol. Previously used as Group Code.
2496  StrRef symbol() const
2497  {
2498  const BlockLength offset = 35;
2499  const BlockLength length = 20;
2500 
2501  return fixedStr<length>(offset);
2502  }
2503 
2504  /// Unique instrument ID.
2506  {
2507  const BlockLength offset = 55;
2508 
2509  return ordinary<Int32>(offset);
2510  }
2511 
2512  /// Identifies class or source of the security ID (Tag 48)
2513  /// value.
2515  {
2516  return SecurityIDSource();
2517  }
2518 
2519  /// Security Type.
2521  {
2522  const BlockLength offset = 59;
2523  const BlockLength length = 6;
2524 
2525  return fixedStr<length>(offset);
2526  }
2527 
2528  /// ISO standard instrument categorization code.
2529  StrRef cfiCode() const
2530  {
2531  const BlockLength offset = 65;
2532  const BlockLength length = 6;
2533 
2534  return fixedStr<length>(offset);
2535  }
2536 
2537  /// This field provides the actual calendar date for contract
2538  /// maturity.
2540  {
2541  typedef NullMaturityMonthYear Null;
2542 
2543  const BlockLength offset = 71;
2544 
2545  return ordinary(value, offset, Null());
2546  }
2547 
2548  /// Identifies currency used for price.
2550  {
2551  const BlockLength offset = 76;
2552  const BlockLength length = 3;
2553 
2554  return fixedStr<length>(offset);
2555  }
2556 
2557  /// Strategy type.
2559  {
2560  const BlockLength offset = 79;
2561  const BlockLength length = 5;
2562 
2563  return fixedStr<length>(offset);
2564  }
2565 
2566  /// User-defined instruments flag.
2568  {
2569  const BlockLength offset = 84;
2570 
2571  return ordinary<UserDefinedInstrument>(offset);
2572  }
2573 
2574  /// Matching algorithm.
2576  {
2577  const BlockLength offset = 85;
2578 
2579  return ordinary<CHAR>(offset);
2580  }
2581 
2582  /// The minimum trading volume for a security.
2584  {
2585  const BlockLength offset = 86;
2586 
2587  return ordinary<UInt32>(offset);
2588  }
2589 
2590  /// The maximum trading volume for a security.
2592  {
2593  const BlockLength offset = 90;
2594 
2595  return ordinary<UInt32>(offset);
2596  }
2597 
2598  /// Minimum constant tick for the instrument, sent only if
2599  /// instrument is non-VTT (Variable Tick table) eligible.
2601  {
2602  typedef NullPRICE9 Null;
2603 
2604  const BlockLength offset = 94;
2605 
2606  return decimal(value, offset, Null());
2607  }
2608 
2609  /// Contains the multiplier to convert the CME Globex display
2610  /// price to the conventional price.
2612  {
2613  const BlockLength offset = 102;
2614 
2615  return decimal<Decimal9>(offset);
2616  }
2617 
2618  /// Number of decimals in fractional display price.
2620  {
2621  typedef NullUInt8 Null;
2622 
2623  const BlockLength offset = 110;
2624 
2625  return ordinary(value, offset, Null());
2626  }
2627 
2628  /// Used for price calculation in spread and leg pricing.
2629  bool priceRatio(Decimal& value) const
2630  {
2631  typedef NullPRICE9 Null;
2632 
2633  const BlockLength offset = 111;
2634 
2635  return decimal(value, offset, Null());
2636  }
2637 
2638  /// Tick Rule.
2639  bool tickRule(Int8& value) const
2640  {
2641  typedef NullInt8 Null;
2642 
2643  const BlockLength offset = 119;
2644 
2645  return ordinary(value, offset, Null());
2646  }
2647 
2648  /// Unit of measure for the products' original contract size.
2650  {
2651  const BlockLength offset = 120;
2652  const BlockLength length = 30;
2653 
2654  return fixedStr<length>(offset);
2655  }
2656 
2657  /// Reference price - the most recently available Settlement
2658  /// whether it be Theoretical, Preliminary or a Final Settle
2659  /// of the session.
2661  {
2662  typedef NullPRICE9 Null;
2663 
2664  const BlockLength offset = 150;
2665 
2666  return decimal(value, offset, Null());
2667  }
2668 
2669  /// Bitmap field of eight Boolean type indicators representing
2670  /// settlement price type.
2672  {
2673  const BlockLength offset = 158;
2674 
2675  return ordinary<SettlPriceType>(offset);
2676  }
2677 
2678  /// The total open interest for the market at the close of the
2679  /// prior trading session.
2681  {
2682  typedef NullInt32 Null;
2683 
2684  const BlockLength offset = 159;
2685 
2686  return ordinary(value, offset, Null());
2687  }
2688 
2689  /// The total cleared volume of instrument traded during the
2690  /// prior trading session.
2692  {
2693  typedef NullInt32 Null;
2694 
2695  const BlockLength offset = 163;
2696 
2697  return ordinary(value, offset, Null());
2698  }
2699 
2700  /// Allowable high limit price for the trading day.
2702  {
2703  typedef NullPRICE9 Null;
2704 
2705  const BlockLength offset = 167;
2706 
2707  return decimal(value, offset, Null());
2708  }
2709 
2710  /// Allowable low limit price for the trading day.
2712  {
2713  typedef NullPRICE9 Null;
2714 
2715  const BlockLength offset = 175;
2716 
2717  return decimal(value, offset, Null());
2718  }
2719 
2720  /// Differential value for price banding.
2722  {
2723  typedef NullPRICE9 Null;
2724 
2725  const BlockLength offset = 183;
2726 
2727  return decimal(value, offset, Null());
2728  }
2729 
2730  /// Price Denominator of Main Fraction.
2731  bool mainFraction(UInt8& value) const
2732  {
2733  typedef NullUInt8 Null;
2734 
2735  const BlockLength offset = 191;
2736 
2737  return ordinary(value, offset, Null());
2738  }
2739 
2740  /// Price Denominator of Sub Fraction.
2741  bool subFraction(UInt8& value) const
2742  {
2743  typedef NullUInt8 Null;
2744 
2745  const BlockLength offset = 192;
2746 
2747  return ordinary(value, offset, Null());
2748  }
2749 
2750  /// Indicates session date corresponding to the settlement
2751  /// price in tag 1150-TradingReferencePrice.
2753  {
2754  typedef NullLocalMktDate Null;
2755  typedef LocalMktDate FieldValue;
2756 
2757  const BlockLength offset = 193;
2758 
2759  FieldValue fieldValue;
2760 
2761  if (ordinary(fieldValue, offset, Null()))
2762  {
2763  value = localMktDateToTimestamp(fieldValue);
2764  return true;
2765  }
2766  return false;
2767  }
2768 
2769  /// Price quotation method.
2771  {
2772  const BlockLength offset = 195;
2773  const BlockLength length = 5;
2774  const SchemaVersion since = 10;
2775 
2776  return fixedStr<length>(offset, since);
2777  }
2778 
2779  /// Risk Set identifies the list of instruments sharing credit
2780  /// limits set up.
2781  StrRef riskSet() const
2782  {
2783  const BlockLength offset = 200;
2784  const BlockLength length = 6;
2785  const SchemaVersion since = 10;
2786 
2787  return fixedStr<length>(offset, since);
2788  }
2789 
2790  /// Market Set defines the bilateral relationship and Self
2791  /// Match Prevention configuration for eligible markets.
2793  {
2794  const BlockLength offset = 206;
2795  const BlockLength length = 6;
2796  const SchemaVersion since = 10;
2797 
2798  return fixedStr<length>(offset, since);
2799  }
2800 
2801  /// External unique instrument ID.
2803  {
2804  typedef NullUInt64 Null;
2805 
2806  const BlockLength offset = 212;
2807  const SchemaVersion since = 10;
2808 
2809  return ordinary(value, offset, Null(), since);
2810  }
2811 
2812  /// Long name of the instrument.
2814  {
2815  const BlockLength offset = 220;
2816  const BlockLength length = 35;
2817  const SchemaVersion since = 10;
2818 
2819  return fixedStr<length>(offset, since);
2820  }
2821 
2822  /// Returns instance of Events repeating group.
2823  Events events() const
2824  {
2825  return groups().head<Events>();
2826  }
2827 
2828  /// Returns instance of FeedTypes repeating group.
2829  FeedTypes feedTypes() const
2830  {
2831  return groups().tail<Events>().head<FeedTypes>();
2832  }
2833 
2834  /// Returns instance of InstAttrib repeating group.
2835  InstAttrib instAttrib() const
2836  {
2837  return groups().tail<Events>().tail<FeedTypes>().head<InstAttrib>();
2838  }
2839 
2840  /// Returns instance of LotTypeRules repeating group.
2841  LotTypeRules lotTypeRules() const
2842  {
2843  return groups().tail<Events>().tail<FeedTypes>().tail<InstAttrib>().head<LotTypeRules>();
2844  }
2845 
2846  /// Returns instance of Legs repeating group.
2847  Legs legs() const
2848  {
2849  return groups().tail<Events>().tail<FeedTypes>().tail<InstAttrib>().tail<LotTypeRules>().head<Legs>();
2850  }
2851 
2852  /// Size of message body in bytes.
2855  {
2856  if (version >= 10)
2857  return 255;
2858 
2859  return 195;
2860  }
2861 
2862  /// Returns class name.
2864  static const Char* className()
2865  {
2866  return "InstrumentDefinitionSpread56";
2867  }
2868 
2869  /// FIX message type.
2871  static StrRef fixType()
2872  {
2873  return toStrRef("d");
2874  }
2875 };
2876 
2877 /// SecurityStatus.
2879 {
2880  /// Message template ID from SBE schema.
2881  enum
2882  {
2883  TemplateId = 30
2884  };
2885 
2886  /// Initializes blank instance.
2888 
2889  /// Initializes instance over given memory block.
2890  SecurityStatus30(const void* data, EncodedLength length)
2891  : BinaryMessage(data, length, SchemaTraits::minimalVersion())
2892  {
2893  assert(TemplateId == templateId());
2894 
2895  if (length < blockLength(version()))
2896  throwBadBinaryData(className());
2897  }
2898 
2899  /// Start of event processing time in number of nanoseconds
2900  /// since Unix epoch.
2902  {
2903  const BlockLength offset = 0;
2904 
2905  return ordinary<Timestamp>(offset);
2906  }
2907 
2908  /// Security Group.
2910  {
2911  const BlockLength offset = 8;
2912  const BlockLength length = 6;
2913 
2914  return fixedStr<length>(offset);
2915  }
2916 
2917  /// Product Code within Security Group specified.
2918  StrRef asset() const
2919  {
2920  const BlockLength offset = 14;
2921  const BlockLength length = 6;
2922 
2923  return fixedStr<length>(offset);
2924  }
2925 
2926  /// If this tag is present, 35=f message is sent for the
2927  /// instrument.
2928  bool securityId(Int32& value) const
2929  {
2930  typedef NullInt32 Null;
2931 
2932  const BlockLength offset = 20;
2933 
2934  return ordinary(value, offset, Null());
2935  }
2936 
2937  /// Trade Session Date.
2939  {
2940  typedef NullLocalMktDate Null;
2941  typedef LocalMktDate FieldValue;
2942 
2943  const BlockLength offset = 24;
2944 
2945  FieldValue fieldValue;
2946 
2947  if (ordinary(fieldValue, offset, Null()))
2948  {
2949  value = localMktDateToTimestamp(fieldValue);
2950  return true;
2951  }
2952  return false;
2953  }
2954 
2955  /// Bitmap field of eight Boolean type indicators reflecting
2956  /// the end of updates for a given Globex event.
2958  {
2959  const BlockLength offset = 26;
2960 
2961  return ordinary<MatchEventIndicator>(offset);
2962  }
2963 
2964  /// Identifies the trading status applicable to the instrument
2965  /// or Security Group.
2967  {
2968  typedef NullUInt8 Null;
2969 
2970  const BlockLength offset = 27;
2971 
2972  return enumeration<SecurityTradingStatus>(value, offset, Null());
2973  }
2974 
2975  /// Identifies the reason for the status change.
2977  {
2978  const BlockLength offset = 28;
2979 
2980  return enumeration<HaltReason>(offset);
2981  }
2982 
2983  /// Identifies an additional event or a rule related to the
2984  /// status.
2986  {
2987  const BlockLength offset = 29;
2988 
2989  return enumeration<SecurityTradingEvent>(offset);
2990  }
2991 
2992  /// Size of message body in bytes.
2995  {
2996  return 30;
2997  }
2998 
2999  /// Returns class name.
3001  static const Char* className()
3002  {
3003  return "SecurityStatus30";
3004  }
3005 
3006  /// FIX message type.
3008  static StrRef fixType()
3009  {
3010  return toStrRef("f");
3011  }
3012 };
3013 
3014 /// MDIncrementalRefreshBook.
3016 {
3017  /// Message template ID from SBE schema.
3018  enum
3019  {
3020  TemplateId = 46
3021  };
3022 
3023  /// Number of entries in Market Data message.
3024  /// Entry of Entry repeating group.
3025  struct ONIXS_CMEMDH_LTWT Entry : BinaryGroupEntry<GroupSize::BlockLength>
3026  {
3027  /// Aliases base class type.
3029 
3030  /// Initializes blank instance.
3031  Entry() {}
3032 
3033  /// Initializes instance of given
3034  /// version over given memory block.
3035  Entry(const void* data, EncodedLength length, SchemaVersion version)
3036  : Base(data, length, version)
3037  {
3038  if (length < blockLength(version))
3039  throwBadBinaryData(className());
3040  }
3041 
3042  /// Market Data entry price.
3043  bool entryPx(Decimal& value) const
3044  {
3045  typedef NullPRICE9 Null;
3046 
3047  const BlockLength offset = 0;
3048 
3049  return decimal(value, offset, Null());
3050  }
3051 
3052  /// Market Data entry size.
3053  bool entrySize(Int32& value) const
3054  {
3055  typedef NullInt32 Null;
3056 
3057  const BlockLength offset = 8;
3058 
3059  return ordinary(value, offset, Null());
3060  }
3061 
3062  /// Security ID.
3064  {
3065  const BlockLength offset = 12;
3066 
3067  return ordinary<Int32>(offset);
3068  }
3069 
3070  /// Market Data entry sequence number per instrument update.
3071  UInt32 rptSeq() const
3072  {
3073  const BlockLength offset = 16;
3074 
3075  return ordinary<UInt32>(offset);
3076  }
3077 
3078  /// In Book entry - aggregate number of orders at given price
3079  /// level.
3081  {
3082  typedef NullInt32 Null;
3083 
3084  const BlockLength offset = 20;
3085 
3086  return ordinary(value, offset, Null());
3087  }
3088 
3089  /// Aggregate book level.
3091  {
3092  const BlockLength offset = 24;
3093 
3094  return ordinary<UInt8>(offset);
3095  }
3096 
3097  /// Market Data update action.
3099  {
3100  const BlockLength offset = 25;
3101 
3102  return enumeration<UpdateAction>(offset);
3103  }
3104 
3105  /// Market Data entry type.
3107  {
3108  const BlockLength offset = 26;
3109 
3110  return enumeration<EntryTypeBook>(offset);
3111  }
3112 
3113  /// Tradeable qty.
3115  {
3116  typedef NullInt32 Null;
3117 
3118  const BlockLength offset = 27;
3119  const SchemaVersion since = 10;
3120 
3121  return ordinary(value, offset, Null(), since);
3122  }
3123 
3124  /// Returns size of entry body in bytes
3125  /// for given version of message template.
3128  {
3129  if (version >= 10)
3130  return 31;
3131 
3132  return 27;
3133  }
3134 
3135  /// Entity class name.
3137  static const Char* className()
3138  {
3139  return "IncrementalRefreshBook46.Entry";
3140  }
3141  };
3142 
3143  /// Repeating group containing Entry entries.
3145 
3146  /// Number of OrderID entries.
3147  /// Entry of OrderIDEntry repeating group.
3148  struct ONIXS_CMEMDH_LTWT OrderIDEntry : BinaryGroupEntry<GroupSize8Byte::BlockLength>
3149  {
3150  /// Aliases base class type.
3152 
3153  /// Initializes blank instance.
3155 
3156  /// Initializes instance of given
3157  /// version over given memory block.
3158  OrderIDEntry(const void* data, EncodedLength length, SchemaVersion version)
3159  : Base(data, length, version)
3160  {
3161  if (length < blockLength(version))
3162  throwBadBinaryData(className());
3163  }
3164 
3165  /// Unique Order ID.
3166  UInt64 orderId() const
3167  {
3168  const BlockLength offset = 0;
3169 
3170  return ordinary<UInt64>(offset);
3171  }
3172 
3173  /// Order priority for execution on the order book.
3175  {
3176  typedef NullUInt64 Null;
3177 
3178  const BlockLength offset = 8;
3179 
3180  return ordinary(value, offset, Null());
3181  }
3182 
3183  /// Visible qty of order.
3184  bool displayQty(Int32& value) const
3185  {
3186  typedef NullInt32 Null;
3187 
3188  const BlockLength offset = 16;
3189 
3190  return ordinary(value, offset, Null());
3191  }
3192 
3193  /// Reference to corresponding Price and Security ID, sequence
3194  /// of MD entry in the message.
3195  bool referenceId(UInt8& value) const
3196  {
3197  typedef NullUInt8 Null;
3198 
3199  const BlockLength offset = 20;
3200 
3201  return ordinary(value, offset, Null());
3202  }
3203 
3204  /// Order book update action to be applied to the order
3205  /// referenced by OrderID.
3207  {
3208  const BlockLength offset = 21;
3209 
3210  return enumeration<OrderUpdateAction>(offset);
3211  }
3212 
3213  /// Returns size of entry body in bytes
3214  /// for given version of message template.
3217  {
3218  return 22;
3219  }
3220 
3221  /// Entity class name.
3223  static const Char* className()
3224  {
3225  return "IncrementalRefreshBook46.OrderIDEntry";
3226  }
3227  };
3228 
3229  /// Repeating group containing OrderIDEntry entries.
3231 
3232  /// Initializes blank instance.
3234 
3235  /// Initializes instance over given memory block.
3236  IncrementalRefreshBook46(const void* data, EncodedLength length)
3237  : BinaryMessage(data, length, SchemaTraits::minimalVersion())
3238  {
3239  assert(TemplateId == templateId());
3240 
3241  if (length < blockLength(version()))
3242  throwBadBinaryData(className());
3243  }
3244 
3245  /// Start of event processing time in number of nanoseconds
3246  /// since Unix epoch.
3248  {
3249  const BlockLength offset = 0;
3250 
3251  return ordinary<Timestamp>(offset);
3252  }
3253 
3254  /// Bitmap field of eight Boolean type indicators reflecting
3255  /// the end of updates for a given Globex event.
3257  {
3258  const BlockLength offset = 8;
3259 
3260  return ordinary<MatchEventIndicator>(offset);
3261  }
3262 
3263  /// Returns instance of Entries repeating group.
3264  Entries entries() const
3265  {
3266  return groups().head<Entries>();
3267  }
3268 
3269  /// Returns instance of OrderIDEntries repeating group.
3270  OrderIDEntries orderIdEntries() const
3271  {
3272  return groups().tail<Entries>().head<OrderIDEntries>();
3273  }
3274 
3275  /// Size of message body in bytes.
3278  {
3279  return 9;
3280  }
3281 
3282  /// Returns class name.
3284  static const Char* className()
3285  {
3286  return "IncrementalRefreshBook46";
3287  }
3288 
3289  /// FIX message type.
3291  static StrRef fixType()
3292  {
3293  return toStrRef("X");
3294  }
3295 };
3296 
3297 /// MDIncrementalRefreshDailyStatistics.
3299 {
3300  /// Message template ID from SBE schema.
3301  enum
3302  {
3303  TemplateId = 49
3304  };
3305 
3306  /// Number of entries in Market Data message.
3307  /// Entry of Entry repeating group.
3308  struct ONIXS_CMEMDH_LTWT Entry : BinaryGroupEntry<GroupSize::BlockLength>
3309  {
3310  /// Aliases base class type.
3312 
3313  /// Initializes blank instance.
3314  Entry() {}
3315 
3316  /// Initializes instance of given
3317  /// version over given memory block.
3318  Entry(const void* data, EncodedLength length, SchemaVersion version)
3319  : Base(data, length, version)
3320  {
3321  if (length < blockLength(version))
3322  throwBadBinaryData(className());
3323  }
3324 
3325  /// Market Data entry price.
3326  bool entryPx(Decimal& value) const
3327  {
3328  typedef NullPRICE9 Null;
3329 
3330  const BlockLength offset = 0;
3331 
3332  return decimal(value, offset, Null());
3333  }
3334 
3335  /// Market Data entry size.
3336  bool entrySize(Int32& value) const
3337  {
3338  typedef NullInt32 Null;
3339 
3340  const BlockLength offset = 8;
3341 
3342  return ordinary(value, offset, Null());
3343  }
3344 
3345  /// Security ID.
3347  {
3348  const BlockLength offset = 12;
3349 
3350  return ordinary<Int32>(offset);
3351  }
3352 
3353  /// Market Data entry sequence number per instrument update.
3354  UInt32 rptSeq() const
3355  {
3356  const BlockLength offset = 16;
3357 
3358  return ordinary<UInt32>(offset);
3359  }
3360 
3361  /// Indicates trade session date corresponding to a statistic
3362  /// entry.
3364  {
3365  typedef NullLocalMktDate Null;
3366  typedef LocalMktDate FieldValue;
3367 
3368  const BlockLength offset = 20;
3369 
3370  FieldValue fieldValue;
3371 
3372  if (ordinary(fieldValue, offset, Null()))
3373  {
3374  value = localMktDateToTimestamp(fieldValue);
3375  return true;
3376  }
3377  return false;
3378  }
3379 
3380  /// Bitmap field of eight Boolean type indicators representing
3381  /// settlement price type.
3383  {
3384  const BlockLength offset = 22;
3385 
3386  return ordinary<SettlPriceType>(offset);
3387  }
3388 
3389  /// Market Data update action.
3391  {
3392  const BlockLength offset = 23;
3393 
3394  return enumeration<UpdateAction>(offset);
3395  }
3396 
3397  /// Market Data entry type.
3399  {
3400  const BlockLength offset = 24;
3401 
3402  return enumeration<EntryTypeDailyStatistics>(offset);
3403  }
3404 
3405  /// Returns size of entry body in bytes
3406  /// for given version of message template.
3409  {
3410  return 25;
3411  }
3412 
3413  /// Entity class name.
3415  static const Char* className()
3416  {
3417  return "IncrementalRefreshDailyStatistics49.Entry";
3418  }
3419  };
3420 
3421  /// Repeating group containing Entry entries.
3423 
3424  /// Initializes blank instance.
3426 
3427  /// Initializes instance over given memory block.
3429  : BinaryMessage(data, length, SchemaTraits::minimalVersion())
3430  {
3431  assert(TemplateId == templateId());
3432 
3433  if (length < blockLength(version()))
3434  throwBadBinaryData(className());
3435  }
3436 
3437  /// Start of event processing time in number of nanoseconds
3438  /// since Unix epoch.
3440  {
3441  const BlockLength offset = 0;
3442 
3443  return ordinary<Timestamp>(offset);
3444  }
3445 
3446  /// Bitmap field of eight Boolean type indicators reflecting
3447  /// the end of updates for a given Globex event.
3449  {
3450  const BlockLength offset = 8;
3451 
3452  return ordinary<MatchEventIndicator>(offset);
3453  }
3454 
3455  /// Returns instance of Entries repeating group.
3456  Entries entries() const
3457  {
3458  return groups().head<Entries>();
3459  }
3460 
3461  /// Size of message body in bytes.
3464  {
3465  return 9;
3466  }
3467 
3468  /// Returns class name.
3470  static const Char* className()
3471  {
3472  return "IncrementalRefreshDailyStatistics49";
3473  }
3474 
3475  /// FIX message type.
3477  static StrRef fixType()
3478  {
3479  return toStrRef("X");
3480  }
3481 };
3482 
3483 /// MDIncrementalRefreshLimitsBanding.
3485 {
3486  /// Message template ID from SBE schema.
3487  enum
3488  {
3489  TemplateId = 50
3490  };
3491 
3492  /// Number of entries in Market Data message.
3493  /// Entry of Entry repeating group.
3494  struct ONIXS_CMEMDH_LTWT Entry : BinaryGroupEntry<GroupSize::BlockLength>
3495  {
3496  /// Aliases base class type.
3498 
3499  /// Initializes blank instance.
3500  Entry() {}
3501 
3502  /// Initializes instance of given
3503  /// version over given memory block.
3504  Entry(const void* data, EncodedLength length, SchemaVersion version)
3505  : Base(data, length, version)
3506  {
3507  if (length < blockLength(version))
3508  throwBadBinaryData(className());
3509  }
3510 
3511  /// Upper price threshold for the instrument.
3513  {
3514  typedef NullPRICE9 Null;
3515 
3516  const BlockLength offset = 0;
3517 
3518  return decimal(value, offset, Null());
3519  }
3520 
3521  /// Lower price threshold for the instrument.
3523  {
3524  typedef NullPRICE9 Null;
3525 
3526  const BlockLength offset = 8;
3527 
3528  return decimal(value, offset, Null());
3529  }
3530 
3531  /// Differential static value for price banding.
3533  {
3534  typedef NullPRICE9 Null;
3535 
3536  const BlockLength offset = 16;
3537 
3538  return decimal(value, offset, Null());
3539  }
3540 
3541  /// Security ID.
3543  {
3544  const BlockLength offset = 24;
3545 
3546  return ordinary<Int32>(offset);
3547  }
3548 
3549  /// MD Entry sequence number per instrument update.
3550  UInt32 rptSeq() const
3551  {
3552  const BlockLength offset = 28;
3553 
3554  return ordinary<UInt32>(offset);
3555  }
3556 
3557  /// Market Data entry update action. In order to delete
3558  /// banding value, high or low limit, the deleted price field
3559  /// is populated with a NULL.
3561  {
3562  return UpdateActionNew();
3563  }
3564 
3565  /// Market Data entry type.
3567  {
3568  return EntryTypeLimits();
3569  }
3570 
3571  /// Returns size of entry body in bytes
3572  /// for given version of message template.
3575  {
3576  return 32;
3577  }
3578 
3579  /// Entity class name.
3581  static const Char* className()
3582  {
3583  return "IncrementalRefreshLimitsBanding50.Entry";
3584  }
3585  };
3586 
3587  /// Repeating group containing Entry entries.
3589 
3590  /// Initializes blank instance.
3592 
3593  /// Initializes instance over given memory block.
3595  : BinaryMessage(data, length, SchemaTraits::minimalVersion())
3596  {
3597  assert(TemplateId == templateId());
3598 
3599  if (length < blockLength(version()))
3600  throwBadBinaryData(className());
3601  }
3602 
3603  /// Start of event processing time in number of nanoseconds
3604  /// since Unix epoch.
3606  {
3607  const BlockLength offset = 0;
3608 
3609  return ordinary<Timestamp>(offset);
3610  }
3611 
3612  /// Bitmap field of eight Boolean type indicators reflecting
3613  /// the end of updates for a given Globex event.
3615  {
3616  const BlockLength offset = 8;
3617 
3618  return ordinary<MatchEventIndicator>(offset);
3619  }
3620 
3621  /// Returns instance of Entries repeating group.
3622  Entries entries() const
3623  {
3624  return groups().head<Entries>();
3625  }
3626 
3627  /// Size of message body in bytes.
3630  {
3631  return 9;
3632  }
3633 
3634  /// Returns class name.
3636  static const Char* className()
3637  {
3638  return "IncrementalRefreshLimitsBanding50";
3639  }
3640 
3641  /// FIX message type.
3643  static StrRef fixType()
3644  {
3645  return toStrRef("X");
3646  }
3647 };
3648 
3649 /// MDIncrementalRefreshSessionStatistics.
3651 {
3652  /// Message template ID from SBE schema.
3653  enum
3654  {
3655  TemplateId = 51
3656  };
3657 
3658  /// Number of entries in Market Data message.
3659  /// Entry of Entry repeating group.
3660  struct ONIXS_CMEMDH_LTWT Entry : BinaryGroupEntry<GroupSize::BlockLength>
3661  {
3662  /// Aliases base class type.
3664 
3665  /// Initializes blank instance.
3666  Entry() {}
3667 
3668  /// Initializes instance of given
3669  /// version over given memory block.
3670  Entry(const void* data, EncodedLength length, SchemaVersion version)
3671  : Base(data, length, version)
3672  {
3673  if (length < blockLength(version))
3674  throwBadBinaryData(className());
3675  }
3676 
3677  /// Market Data entry price.
3679  {
3680  const BlockLength offset = 0;
3681 
3682  return decimal<PRICE9>(offset);
3683  }
3684 
3685  /// Security ID.
3687  {
3688  const BlockLength offset = 8;
3689 
3690  return ordinary<Int32>(offset);
3691  }
3692 
3693  /// MD Entry sequence number per instrument update.
3694  UInt32 rptSeq() const
3695  {
3696  const BlockLength offset = 12;
3697 
3698  return ordinary<UInt32>(offset);
3699  }
3700 
3701  /// Flag describing IOP and Open Price entries.
3703  {
3704  typedef NullUInt8 Null;
3705 
3706  const BlockLength offset = 16;
3707 
3708  return enumeration<OpenCloseSettlFlag>(value, offset, Null());
3709  }
3710 
3711  /// Market Data update action.
3713  {
3714  const BlockLength offset = 17;
3715 
3716  return enumeration<UpdateAction>(offset);
3717  }
3718 
3719  /// Market Data entry type.
3721  {
3722  const BlockLength offset = 18;
3723 
3724  return enumeration<EntryTypeStatistics>(offset);
3725  }
3726 
3727  /// Indicative Opening Quantity.
3728  bool entrySize(Int32& value) const
3729  {
3730  typedef NullInt32 Null;
3731 
3732  const BlockLength offset = 19;
3733 
3734  return ordinary(value, offset, Null());
3735  }
3736 
3737  /// Returns size of entry body in bytes
3738  /// for given version of message template.
3741  {
3742  return 23;
3743  }
3744 
3745  /// Entity class name.
3747  static const Char* className()
3748  {
3749  return "IncrementalRefreshSessionStatistics51.Entry";
3750  }
3751  };
3752 
3753  /// Repeating group containing Entry entries.
3755 
3756  /// Initializes blank instance.
3758 
3759  /// Initializes instance over given memory block.
3761  : BinaryMessage(data, length, SchemaTraits::minimalVersion())
3762  {
3763  assert(TemplateId == templateId());
3764 
3765  if (length < blockLength(version()))
3766  throwBadBinaryData(className());
3767  }
3768 
3769  /// Start of event processing time in number of nanoseconds
3770  /// since Unix epoch.
3772  {
3773  const BlockLength offset = 0;
3774 
3775  return ordinary<Timestamp>(offset);
3776  }
3777 
3778  /// Bitmap field of eight Boolean type indicators reflecting
3779  /// the end of updates for a given Globex event.
3781  {
3782  const BlockLength offset = 8;
3783 
3784  return ordinary<MatchEventIndicator>(offset);
3785  }
3786 
3787  /// Returns instance of Entries repeating group.
3788  Entries entries() const
3789  {
3790  return groups().head<Entries>();
3791  }
3792 
3793  /// Size of message body in bytes.
3796  {
3797  return 9;
3798  }
3799 
3800  /// Returns class name.
3802  static const Char* className()
3803  {
3804  return "IncrementalRefreshSessionStatistics51";
3805  }
3806 
3807  /// FIX message type.
3809  static StrRef fixType()
3810  {
3811  return toStrRef("X");
3812  }
3813 };
3814 
3815 /// MDIncrementalRefreshVolume.
3817 {
3818  /// Message template ID from SBE schema.
3819  enum
3820  {
3821  TemplateId = 37
3822  };
3823 
3824  /// Number of entries in Market Data message.
3825  /// Entry of Entry repeating group.
3826  struct ONIXS_CMEMDH_LTWT Entry : BinaryGroupEntry<GroupSize::BlockLength>
3827  {
3828  /// Aliases base class type.
3830 
3831  /// Initializes blank instance.
3832  Entry() {}
3833 
3834  /// Initializes instance of given
3835  /// version over given memory block.
3836  Entry(const void* data, EncodedLength length, SchemaVersion version)
3837  : Base(data, length, version)
3838  {
3839  if (length < blockLength(version))
3840  throwBadBinaryData(className());
3841  }
3842 
3843  /// Cumulative traded volume.
3845  {
3846  const BlockLength offset = 0;
3847 
3848  return ordinary<Int32>(offset);
3849  }
3850 
3851  /// Security ID.
3853  {
3854  const BlockLength offset = 4;
3855 
3856  return ordinary<Int32>(offset);
3857  }
3858 
3859  /// Market Data entry sequence number per instrument update.
3860  UInt32 rptSeq() const
3861  {
3862  const BlockLength offset = 8;
3863 
3864  return ordinary<UInt32>(offset);
3865  }
3866 
3867  /// Market Data update action.
3869  {
3870  const BlockLength offset = 12;
3871 
3872  return enumeration<UpdateAction>(offset);
3873  }
3874 
3875  /// Electronic Volume entry provides cumulative session trade
3876  /// volume updated with the event.
3878  {
3879  return EntryTypeVol();
3880  }
3881 
3882  /// Returns size of entry body in bytes
3883  /// for given version of message template.
3886  {
3887  return 13;
3888  }
3889 
3890  /// Entity class name.
3892  static const Char* className()
3893  {
3894  return "IncrementalRefreshVolume37.Entry";
3895  }
3896  };
3897 
3898  /// Repeating group containing Entry entries.
3900 
3901  /// Initializes blank instance.
3903 
3904  /// Initializes instance over given memory block.
3905  IncrementalRefreshVolume37(const void* data, EncodedLength length)
3906  : BinaryMessage(data, length, SchemaTraits::minimalVersion())
3907  {
3908  assert(TemplateId == templateId());
3909 
3910  if (length < blockLength(version()))
3911  throwBadBinaryData(className());
3912  }
3913 
3914  /// Start of event processing time in number of nanoseconds
3915  /// since Unix epoch.
3917  {
3918  const BlockLength offset = 0;
3919 
3920  return ordinary<Timestamp>(offset);
3921  }
3922 
3923  /// Bitmap field of eight Boolean type indicators reflecting
3924  /// the end of updates for a given Globex event.
3926  {
3927  const BlockLength offset = 8;
3928 
3929  return ordinary<MatchEventIndicator>(offset);
3930  }
3931 
3932  /// Returns instance of Entries repeating group.
3933  Entries entries() const
3934  {
3935  return groups().head<Entries>();
3936  }
3937 
3938  /// Size of message body in bytes.
3941  {
3942  return 9;
3943  }
3944 
3945  /// Returns class name.
3947  static const Char* className()
3948  {
3949  return "IncrementalRefreshVolume37";
3950  }
3951 
3952  /// FIX message type.
3954  static StrRef fixType()
3955  {
3956  return toStrRef("X");
3957  }
3958 };
3959 
3960 /// SnapshotFullRefresh.
3962 {
3963  /// Message template ID from SBE schema.
3964  enum
3965  {
3966  TemplateId = 52
3967  };
3968 
3969  /// Number of entries in Market Data message.
3970  /// Entry of Entry repeating group.
3971  struct ONIXS_CMEMDH_LTWT Entry : BinaryGroupEntry<GroupSize::BlockLength>
3972  {
3973  /// Aliases base class type.
3975 
3976  /// Initializes blank instance.
3977  Entry() {}
3978 
3979  /// Initializes instance of given
3980  /// version over given memory block.
3981  Entry(const void* data, EncodedLength length, SchemaVersion version)
3982  : Base(data, length, version)
3983  {
3984  if (length < blockLength(version))
3985  throwBadBinaryData(className());
3986  }
3987 
3988  /// Market Data entry price.
3989  bool entryPx(Decimal& value) const
3990  {
3991  typedef NullPRICE9 Null;
3992 
3993  const BlockLength offset = 0;
3994 
3995  return decimal(value, offset, Null());
3996  }
3997 
3998  /// Market Data entry quantity.
3999  bool entrySize(Int32& value) const
4000  {
4001  typedef NullInt32 Null;
4002 
4003  const BlockLength offset = 8;
4004 
4005  return ordinary(value, offset, Null());
4006  }
4007 
4008  /// Aggregate number of orders at the given price level.
4010  {
4011  typedef NullInt32 Null;
4012 
4013  const BlockLength offset = 12;
4014 
4015  return ordinary(value, offset, Null());
4016  }
4017 
4018  /// Aggregate book position.
4019  bool priceLevel(Int8& value) const
4020  {
4021  typedef NullInt8 Null;
4022 
4023  const BlockLength offset = 16;
4024 
4025  return ordinary(value, offset, Null());
4026  }
4027 
4028  /// Indicates the date of trade session corresponding to a
4029  /// statistic entry.
4031  {
4032  typedef NullLocalMktDate Null;
4033  typedef LocalMktDate FieldValue;
4034 
4035  const BlockLength offset = 17;
4036 
4037  FieldValue fieldValue;
4038 
4039  if (ordinary(fieldValue, offset, Null()))
4040  {
4041  value = localMktDateToTimestamp(fieldValue);
4042  return true;
4043  }
4044  return false;
4045  }
4046 
4047  /// Flag describing Open Price entry.
4049  {
4050  typedef NullUInt8 Null;
4051 
4052  const BlockLength offset = 19;
4053 
4054  return enumeration<OpenCloseSettlFlag>(value, offset, Null());
4055  }
4056 
4057  /// Bitmap field of eight Boolean type indicators representing
4058  /// settlement price type.
4060  {
4061  const BlockLength offset = 20;
4062 
4063  return ordinary<SettlPriceType>(offset);
4064  }
4065 
4066  /// Market Data entry type.
4068  {
4069  const BlockLength offset = 21;
4070 
4071  return enumeration<EntryType>(offset);
4072  }
4073 
4074  /// Returns size of entry body in bytes
4075  /// for given version of message template.
4078  {
4079  return 22;
4080  }
4081 
4082  /// Entity class name.
4084  static const Char* className()
4085  {
4086  return "SnapshotFullRefresh52.Entry";
4087  }
4088  };
4089 
4090  /// Repeating group containing Entry entries.
4092 
4093  /// Initializes blank instance.
4095 
4096  /// Initializes instance over given memory block.
4097  SnapshotFullRefresh52(const void* data, EncodedLength length)
4098  : BinaryMessage(data, length, SchemaTraits::minimalVersion())
4099  {
4100  assert(TemplateId == templateId());
4101 
4102  if (length < blockLength(version()))
4103  throwBadBinaryData(className());
4104  }
4105 
4106  /// Sequence number of the last Incremental feed packet
4107  /// processed. This value is used to synchronize the snapshot
4108  /// loop with the real-time feed.
4110  {
4111  const BlockLength offset = 0;
4112 
4113  return ordinary<UInt32>(offset);
4114  }
4115 
4116  /// Total number of messages replayed in the loop.
4118  {
4119  const BlockLength offset = 4;
4120 
4121  return ordinary<UInt32>(offset);
4122  }
4123 
4124  /// Security ID.
4126  {
4127  const BlockLength offset = 8;
4128 
4129  return ordinary<Int32>(offset);
4130  }
4131 
4132  /// Sequence number of the last Market Data entry processed
4133  /// for the instrument.
4134  UInt32 rptSeq() const
4135  {
4136  const BlockLength offset = 12;
4137 
4138  return ordinary<UInt32>(offset);
4139  }
4140 
4141  /// Timestamp of the last event security participated in, sent
4142  /// as number of nanoseconds since Unix epoch.
4144  {
4145  const BlockLength offset = 16;
4146 
4147  return ordinary<Timestamp>(offset);
4148  }
4149 
4150  /// UTC Date and time of last Security Definition add, update
4151  /// or delete on a given Market Data channel.
4153  {
4154  const BlockLength offset = 24;
4155 
4156  return ordinary<Timestamp>(offset);
4157  }
4158 
4159  /// Trade session date sent as number of days since Unix epoch.
4161  {
4162  typedef NullLocalMktDate Null;
4163  typedef LocalMktDate FieldValue;
4164 
4165  const BlockLength offset = 32;
4166 
4167  FieldValue fieldValue;
4168 
4169  if (ordinary(fieldValue, offset, Null()))
4170  {
4171  value = localMktDateToTimestamp(fieldValue);
4172  return true;
4173  }
4174  return false;
4175  }
4176 
4177  /// Identifies the current trading state of the instrument.
4179  {
4180  typedef NullUInt8 Null;
4181 
4182  const BlockLength offset = 34;
4183 
4184  return enumeration<SecurityTradingStatus>(value, offset, Null());
4185  }
4186 
4187  /// Upper price threshold for the instrument.
4189  {
4190  typedef NullPRICE9 Null;
4191 
4192  const BlockLength offset = 35;
4193 
4194  return decimal(value, offset, Null());
4195  }
4196 
4197  /// Lower price threshold for the instrument.
4199  {
4200  typedef NullPRICE9 Null;
4201 
4202  const BlockLength offset = 43;
4203 
4204  return decimal(value, offset, Null());
4205  }
4206 
4207  /// Differential value for price banding.
4209  {
4210  typedef NullPRICE9 Null;
4211 
4212  const BlockLength offset = 51;
4213 
4214  return decimal(value, offset, Null());
4215  }
4216 
4217  /// Returns instance of Entries repeating group.
4218  Entries entries() const
4219  {
4220  return groups().head<Entries>();
4221  }
4222 
4223  /// Size of message body in bytes.
4226  {
4227  return 59;
4228  }
4229 
4230  /// Returns class name.
4232  static const Char* className()
4233  {
4234  return "SnapshotFullRefresh52";
4235  }
4236 
4237  /// FIX message type.
4239  static StrRef fixType()
4240  {
4241  return toStrRef("W");
4242  }
4243 };
4244 
4245 /// QuoteRequest.
4247 {
4248  /// Message template ID from SBE schema.
4249  enum
4250  {
4251  TemplateId = 39
4252  };
4253 
4254  /// Indicates the number of repeating symbols specified.
4255  /// Entry of RelatedSymEntry repeating group.
4256  struct ONIXS_CMEMDH_LTWT RelatedSymEntry : BinaryGroupEntry<GroupSize::BlockLength>
4257  {
4258  /// Aliases base class type.
4260 
4261  /// Initializes blank instance.
4263 
4264  /// Initializes instance of given
4265  /// version over given memory block.
4266  RelatedSymEntry(const void* data, EncodedLength length, SchemaVersion version)
4267  : Base(data, length, version)
4268  {
4269  if (length < blockLength(version))
4270  throwBadBinaryData(className());
4271  }
4272 
4273  /// Instrument Name or Symbol.
4274  StrRef symbol() const
4275  {
4276  const BlockLength offset = 0;
4277  const BlockLength length = 20;
4278 
4279  return fixedStr<length>(offset);
4280  }
4281 
4282  /// Security ID.
4284  {
4285  const BlockLength offset = 20;
4286 
4287  return ordinary<Int32>(offset);
4288  }
4289 
4290  /// Quantity requested.
4291  bool orderQty(Int32& value) const
4292  {
4293  typedef NullInt32 Null;
4294 
4295  const BlockLength offset = 24;
4296 
4297  return ordinary(value, offset, Null());
4298  }
4299 
4300  /// Type of quote requested.
4301  Int8 quoteType() const
4302  {
4303  const BlockLength offset = 28;
4304 
4305  return ordinary<Int8>(offset);
4306  }
4307 
4308  /// Side requested.
4309  bool side(Int8& value) const
4310  {
4311  typedef NullInt8 Null;
4312 
4313  const BlockLength offset = 29;
4314 
4315  return ordinary(value, offset, Null());
4316  }
4317 
4318  /// Returns size of entry body in bytes
4319  /// for given version of message template.
4322  {
4323  return 30;
4324  }
4325 
4326  /// Entity class name.
4328  static const Char* className()
4329  {
4330  return "QuoteRequest39.RelatedSymEntry";
4331  }
4332  };
4333 
4334  /// Repeating group containing RelatedSymEntry entries.
4336 
4337  /// Initializes blank instance.
4339 
4340  /// Initializes instance over given memory block.
4341  QuoteRequest39(const void* data, EncodedLength length)
4342  : BinaryMessage(data, length, SchemaTraits::minimalVersion())
4343  {
4344  assert(TemplateId == templateId());
4345 
4346  if (length < blockLength(version()))
4347  throwBadBinaryData(className());
4348  }
4349 
4350  /// Start of event processing time in number of nanoseconds
4351  /// since Unix epoch.
4353  {
4354  const BlockLength offset = 0;
4355 
4356  return ordinary<Timestamp>(offset);
4357  }
4358 
4359  /// Quote Request ID defined by the exchange.
4361  {
4362  const BlockLength offset = 8;
4363  const BlockLength length = 23;
4364 
4365  return fixedStr<length>(offset);
4366  }
4367 
4368  /// Bitmap field of eight Boolean type indicators reflecting
4369  /// the end of updates for a given Globex event.
4371  {
4372  const BlockLength offset = 31;
4373 
4374  return ordinary<MatchEventIndicator>(offset);
4375  }
4376 
4377  /// Returns instance of RelatedSym repeating group.
4378  RelatedSym relatedSym() const
4379  {
4380  return groups().head<RelatedSym>();
4381  }
4382 
4383  /// Size of message body in bytes.
4386  {
4387  return 32;
4388  }
4389 
4390  /// Returns class name.
4392  static const Char* className()
4393  {
4394  return "QuoteRequest39";
4395  }
4396 
4397  /// FIX message type.
4399  static StrRef fixType()
4400  {
4401  return toStrRef("R");
4402  }
4403 };
4404 
4405 /// MDInstrumentDefinitionOption.
4407 {
4408  /// Message template ID from SBE schema.
4409  enum
4410  {
4411  TemplateId = 55
4412  };
4413 
4414  /// Number of EventType entries.
4415  /// Entry of EventsEntry repeating group.
4416  struct ONIXS_CMEMDH_LTWT EventsEntry : BinaryGroupEntry<GroupSize::BlockLength>
4417  {
4418  /// Aliases base class type.
4420 
4421  /// Initializes blank instance.
4423 
4424  /// Initializes instance of given
4425  /// version over given memory block.
4426  EventsEntry(const void* data, EncodedLength length, SchemaVersion version)
4427  : Base(data, length, version)
4428  {
4429  if (length < blockLength(version))
4430  throwBadBinaryData(className());
4431  }
4432 
4433  /// Code to represent the type of event.
4435  {
4436  const BlockLength offset = 0;
4437 
4438  return enumeration<EventType>(offset);
4439  }
4440 
4441  /// Date and Time of instument Activation or Expiration event
4442  /// sent as number of nanoseconds since Unix epoch.
4444  {
4445  const BlockLength offset = 1;
4446 
4447  return ordinary<Timestamp>(offset);
4448  }
4449 
4450  /// Returns size of entry body in bytes
4451  /// for given version of message template.
4454  {
4455  return 9;
4456  }
4457 
4458  /// Entity class name.
4460  static const Char* className()
4461  {
4462  return "InstrumentDefinitionOption55.EventsEntry";
4463  }
4464  };
4465 
4466  /// Repeating group containing EventsEntry entries.
4468 
4469  /// Number of FeedType entries.
4470  /// Entry of FeedTypesEntry repeating group.
4471  struct ONIXS_CMEMDH_LTWT FeedTypesEntry : BinaryGroupEntry<GroupSize::BlockLength>
4472  {
4473  /// Aliases base class type.
4475 
4476  /// Initializes blank instance.
4478 
4479  /// Initializes instance of given
4480  /// version over given memory block.
4481  FeedTypesEntry(const void* data, EncodedLength length, SchemaVersion version)
4482  : Base(data, length, version)
4483  {
4484  if (length < blockLength(version))
4485  throwBadBinaryData(className());
4486  }
4487 
4488  /// Describes a class of service for a given data feed. GBX-
4489  /// Real Book, GBI-Implied Book.
4491  {
4492  const BlockLength offset = 0;
4493  const BlockLength length = 3;
4494 
4495  return fixedStr<length>(offset);
4496  }
4497 
4498  /// Book depth.
4500  {
4501  const BlockLength offset = 3;
4502 
4503  return ordinary<Int8>(offset);
4504  }
4505 
4506  /// Returns size of entry body in bytes
4507  /// for given version of message template.
4510  {
4511  return 4;
4512  }
4513 
4514  /// Entity class name.
4516  static const Char* className()
4517  {
4518  return "InstrumentDefinitionOption55.FeedTypesEntry";
4519  }
4520  };
4521 
4522  /// Repeating group containing FeedTypesEntry entries.
4524 
4525  /// Number of InstrAttribType entries.
4526  /// Entry of InstAttribEntry repeating group.
4527  struct ONIXS_CMEMDH_LTWT InstAttribEntry : BinaryGroupEntry<GroupSize::BlockLength>
4528  {
4529  /// Aliases base class type.
4531 
4532  /// Initializes blank instance.
4534 
4535  /// Initializes instance of given
4536  /// version over given memory block.
4537  InstAttribEntry(const void* data, EncodedLength length, SchemaVersion version)
4538  : Base(data, length, version)
4539  {
4540  if (length < blockLength(version))
4541  throwBadBinaryData(className());
4542  }
4543 
4544  /// Instrument Eligibility Attributes.
4546  {
4547  return InstAttribType();
4548  }
4549 
4550  /// Bitmap field of 32 Boolean type Instrument eligibility
4551  /// flags.
4553  {
4554  const BlockLength offset = 0;
4555 
4556  return ordinary<InstAttribValue>(offset);
4557  }
4558 
4559  /// Returns size of entry body in bytes
4560  /// for given version of message template.
4563  {
4564  return 4;
4565  }
4566 
4567  /// Entity class name.
4569  static const Char* className()
4570  {
4571  return "InstrumentDefinitionOption55.InstAttribEntry";
4572  }
4573  };
4574 
4575  /// Repeating group containing InstAttribEntry entries.
4577 
4578  /// Number of entries.
4579  /// Entry of LotTypeRulesEntry repeating group.
4580  struct ONIXS_CMEMDH_LTWT LotTypeRulesEntry : BinaryGroupEntry<GroupSize::BlockLength>
4581  {
4582  /// Aliases base class type.
4584 
4585  /// Initializes blank instance.
4587 
4588  /// Initializes instance of given
4589  /// version over given memory block.
4590  LotTypeRulesEntry(const void* data, EncodedLength length, SchemaVersion version)
4591  : Base(data, length, version)
4592  {
4593  if (length < blockLength(version))
4594  throwBadBinaryData(className());
4595  }
4596 
4597  /// This tag is required to interpret the value in tag
4598  /// 1231-MinLotSize.
4599  Int8 lotType() const
4600  {
4601  const BlockLength offset = 0;
4602 
4603  return ordinary<Int8>(offset);
4604  }
4605 
4606  /// Minimum quantity accepted for order entry. If tag
4607  /// 1093-LotType=4, this value is the minimum quantity for
4608  /// order entry expressed in the applicable units, specified
4609  /// in tag 996-UnitOfMeasure, e.g. megawatts.
4610  bool minLotSize(Decimal& value) const
4611  {
4612  typedef NullDecimalQty Null;
4613 
4614  const BlockLength offset = 1;
4615 
4616  return decimal(value, offset, Null());
4617  }
4618 
4619  /// Returns size of entry body in bytes
4620  /// for given version of message template.
4623  {
4624  return 5;
4625  }
4626 
4627  /// Entity class name.
4629  static const Char* className()
4630  {
4631  return "InstrumentDefinitionOption55.LotTypeRulesEntry";
4632  }
4633  };
4634 
4635  /// Repeating group containing LotTypeRulesEntry entries.
4637 
4638  /// Number of underlying instruments.
4639  /// Entry of UnderlyingsEntry repeating group.
4640  struct ONIXS_CMEMDH_LTWT UnderlyingsEntry : BinaryGroupEntry<GroupSize::BlockLength>
4641  {
4642  /// Aliases base class type.
4644 
4645  /// Initializes blank instance.
4647 
4648  /// Initializes instance of given
4649  /// version over given memory block.
4650  UnderlyingsEntry(const void* data, EncodedLength length, SchemaVersion version)
4651  : Base(data, length, version)
4652  {
4653  if (length < blockLength(version))
4654  throwBadBinaryData(className());
4655  }
4656 
4657  /// Unique Instrument ID as qualified by the exchange per tag
4658  /// 305-UnderlyingSecurityIDSource.
4660  {
4661  const BlockLength offset = 0;
4662 
4663  return ordinary<Int32>(offset);
4664  }
4665 
4666  /// This value is always '8' for CME.
4668  {
4669  return SecurityIDSource();
4670  }
4671 
4672  /// Underlying Instrument Symbol (Contract Name).
4674  {
4675  const BlockLength offset = 4;
4676  const BlockLength length = 20;
4677 
4678  return fixedStr<length>(offset);
4679  }
4680 
4681  /// Returns size of entry body in bytes
4682  /// for given version of message template.
4685  {
4686  return 24;
4687  }
4688 
4689  /// Entity class name.
4691  static const Char* className()
4692  {
4693  return "InstrumentDefinitionOption55.UnderlyingsEntry";
4694  }
4695  };
4696 
4697  /// Repeating group containing UnderlyingsEntry entries.
4699 
4700  /// Number of related instruments group.
4701  /// Entry of RelatedInstrumentsEntry repeating group.
4703  {
4704  /// Aliases base class type.
4706 
4707  /// Initializes blank instance.
4709 
4710  /// Initializes instance of given
4711  /// version over given memory block.
4712  RelatedInstrumentsEntry(const void* data, EncodedLength length, SchemaVersion version)
4713  : Base(data, length, version)
4714  {
4715  if (length < blockLength(version))
4716  throwBadBinaryData(className());
4717  }
4718 
4719  /// Related Security ID.
4721  {
4722  const BlockLength offset = 0;
4723 
4724  return ordinary<Int32>(offset);
4725  }
4726 
4727  /// Related Security ID source.
4729  {
4730  return SecurityIDSource();
4731  }
4732 
4733  /// Related instrument Symbol.
4735  {
4736  const BlockLength offset = 4;
4737  const BlockLength length = 20;
4738 
4739  return fixedStr<length>(offset);
4740  }
4741 
4742  /// Returns size of entry body in bytes
4743  /// for given version of message template.
4746  {
4747  return 24;
4748  }
4749 
4750  /// Entity class name.
4752  static const Char* className()
4753  {
4754  return "InstrumentDefinitionOption55.RelatedInstrumentsEntry";
4755  }
4756  };
4757 
4758  /// Repeating group containing RelatedInstrumentsEntry entries.
4760 
4761  /// Initializes blank instance.
4763 
4764  /// Initializes instance over given memory block.
4766  : BinaryMessage(data, length, SchemaTraits::minimalVersion())
4767  {
4768  assert(TemplateId == templateId());
4769 
4770  if (length < blockLength(version()))
4771  throwBadBinaryData(className());
4772  }
4773 
4774  /// Bitmap field of eight Boolean type indicators reflecting
4775  /// the end of updates for a given Globex event.
4777  {
4778  const BlockLength offset = 0;
4779 
4780  return ordinary<MatchEventIndicator>(offset);
4781  }
4782 
4783  /// Total number of instruments in the Replay loop. Used on
4784  /// Replay Feed only.
4786  {
4787  typedef NullUInt32 Null;
4788 
4789  const BlockLength offset = 1;
4790 
4791  return ordinary(value, offset, Null());
4792  }
4793 
4794  /// Last Security update action on Incremental feed, 'D' or
4795  /// 'M' is used when a mid-week deletion or modification (i.e.
4796  /// extension) occurs.
4798  {
4799  const BlockLength offset = 5;
4800 
4801  return enumeration<SecurityUpdateAction>(offset);
4802  }
4803 
4804  /// Timestamp of when the instrument was last added, modified
4805  /// or deleted.
4807  {
4808  const BlockLength offset = 6;
4809 
4810  return ordinary<Timestamp>(offset);
4811  }
4812 
4813  /// Identifies the current state of the instrument. The data
4814  /// is available in the Instrument Replay feed only.
4816  {
4817  typedef NullUInt8 Null;
4818 
4819  const BlockLength offset = 14;
4820 
4821  return enumeration<SecurityTradingStatus>(value, offset, Null());
4822  }
4823 
4824  /// The channel ID as defined in the XML Configuration file.
4825  Int16 applId() const
4826  {
4827  const BlockLength offset = 15;
4828 
4829  return ordinary<Int16>(offset);
4830  }
4831 
4832  /// Identifies the market segment, populated for all CME
4833  /// Globex instruments.
4835  {
4836  const BlockLength offset = 17;
4837 
4838  return ordinary<UInt8>(offset);
4839  }
4840 
4841  /// Indicates the product complex.
4843  {
4844  const BlockLength offset = 18;
4845 
4846  return ordinary<UInt8>(offset);
4847  }
4848 
4849  /// Exchange used to identify a security.
4851  {
4852  const BlockLength offset = 19;
4853  const BlockLength length = 4;
4854 
4855  return fixedStr<length>(offset);
4856  }
4857 
4858  /// Security Group Code.
4860  {
4861  const BlockLength offset = 23;
4862  const BlockLength length = 6;
4863 
4864  return fixedStr<length>(offset);
4865  }
4866 
4867  /// The underlying asset code also known as Product Code.
4868  StrRef asset() const
4869  {
4870  const BlockLength offset = 29;
4871  const BlockLength length = 6;
4872 
4873  return fixedStr<length>(offset);
4874  }
4875 
4876  /// Instrument Name or Symbol. Previously used as Instrument
4877  /// Group Code.
4878  StrRef symbol() const
4879  {
4880  const BlockLength offset = 35;
4881  const BlockLength length = 20;
4882 
4883  return fixedStr<length>(offset);
4884  }
4885 
4886  /// Unique Instrument ID.
4888  {
4889  const BlockLength offset = 55;
4890 
4891  return ordinary<Int32>(offset);
4892  }
4893 
4894  /// Identifies class or source of tag 48-SecurityID value.
4896  {
4897  return SecurityIDSource();
4898  }
4899 
4900  /// Security Type.
4902  {
4903  const BlockLength offset = 59;
4904  const BlockLength length = 6;
4905 
4906  return fixedStr<length>(offset);
4907  }
4908 
4909  /// ISO standard instrument categorization code.
4910  StrRef cfiCode() const
4911  {
4912  const BlockLength offset = 65;
4913  const BlockLength length = 6;
4914 
4915  return fixedStr<length>(offset);
4916  }
4917 
4918  /// Indicates whether an option instrument is a put or call.
4920  {
4921  const BlockLength offset = 71;
4922 
4923  return enumeration<PutOrCall>(offset);
4924  }
4925 
4926  /// This field provides the actual calendar date for contract
4927  /// maturity.
4929  {
4930  typedef NullMaturityMonthYear Null;
4931 
4932  const BlockLength offset = 72;
4933 
4934  return ordinary(value, offset, Null());
4935  }
4936 
4937  /// Identifies currency used for price.
4939  {
4940  const BlockLength offset = 77;
4941  const BlockLength length = 3;
4942 
4943  return fixedStr<length>(offset);
4944  }
4945 
4946  /// Strike Price for an option instrument.
4948  {
4949  typedef NullPRICE9 Null;
4950 
4951  const BlockLength offset = 80;
4952 
4953  return decimal(value, offset, Null());
4954  }
4955 
4956  /// Currency in which the StrikePrice is denominated.
4958  {
4959  const BlockLength offset = 88;
4960  const BlockLength length = 3;
4961 
4962  return fixedStr<length>(offset);
4963  }
4964 
4965  /// Identifies currency used for settlement, if different from
4966  /// trade price currency.
4968  {
4969  const BlockLength offset = 91;
4970  const BlockLength length = 3;
4971 
4972  return fixedStr<length>(offset);
4973  }
4974 
4975  /// Defines cabinet price for outright options products.
4977  {
4978  typedef NullPRICE9 Null;
4979 
4980  const BlockLength offset = 94;
4981 
4982  return decimal(value, offset, Null());
4983  }
4984 
4985  /// Matching algorithm.
4987  {
4988  const BlockLength offset = 102;
4989 
4990  return ordinary<CHAR>(offset);
4991  }
4992 
4993  /// The minimum trading volume for a security.
4995  {
4996  const BlockLength offset = 103;
4997 
4998  return ordinary<UInt32>(offset);
4999  }
5000 
5001  /// The maximum trading volume for a security.
5003  {
5004  const BlockLength offset = 107;
5005 
5006  return ordinary<UInt32>(offset);
5007  }
5008 
5009  /// Minimum constant tick for the instrument.
5011  {
5012  typedef NullPRICE9 Null;
5013 
5014  const BlockLength offset = 111;
5015 
5016  return decimal(value, offset, Null());
5017  }
5018 
5019  /// Monetary value equivalent to the minimum price fluctuation.
5021  {
5022  typedef NullPRICE9 Null;
5023 
5024  const BlockLength offset = 119;
5025 
5026  return decimal(value, offset, Null());
5027  }
5028 
5029  /// Contains the multiplier to convert the CME Globex display
5030  /// price to the conventional price.
5032  {
5033  const BlockLength offset = 127;
5034 
5035  return decimal<Decimal9>(offset);
5036  }
5037 
5038  /// VTT code referencing variable tick table.
5039  bool tickRule(Int8& value) const
5040  {
5041  typedef NullInt8 Null;
5042 
5043  const BlockLength offset = 135;
5044 
5045  return ordinary(value, offset, Null());
5046  }
5047 
5048  /// Price Denominator of Main Fraction.
5049  bool mainFraction(UInt8& value) const
5050  {
5051  typedef NullUInt8 Null;
5052 
5053  const BlockLength offset = 136;
5054 
5055  return ordinary(value, offset, Null());
5056  }
5057 
5058  /// Price Denominator of Sub Fraction.
5059  bool subFraction(UInt8& value) const
5060  {
5061  typedef NullUInt8 Null;
5062 
5063  const BlockLength offset = 137;
5064 
5065  return ordinary(value, offset, Null());
5066  }
5067 
5068  /// Number of decimals in fractional display price.
5070  {
5071  typedef NullUInt8 Null;
5072 
5073  const BlockLength offset = 138;
5074 
5075  return ordinary(value, offset, Null());
5076  }
5077 
5078  /// Unit of measure for the products' original contract size.
5079  /// This will be populated for all products listed on CME
5080  /// Globex.
5082  {
5083  const BlockLength offset = 139;
5084  const BlockLength length = 30;
5085 
5086  return fixedStr<length>(offset);
5087  }
5088 
5089  /// This field contains the contract size for each instrument.
5090  /// Used in combination with tag 996-UnitofMeasure.
5092  {
5093  typedef NullDecimal9 Null;
5094 
5095  const BlockLength offset = 169;
5096 
5097  return decimal(value, offset, Null());
5098  }
5099 
5100  /// Reference price - the most recently available Settlement
5101  /// whether it be Theoretical, Preliminary or a Final Settle
5102  /// of the session.
5104  {
5105  typedef NullPRICE9 Null;
5106 
5107  const BlockLength offset = 177;
5108 
5109  return decimal(value, offset, Null());
5110  }
5111 
5112  /// Bitmap field of eight Boolean type indicators representing
5113  /// settlement price type.
5115  {
5116  const BlockLength offset = 185;
5117 
5118  return ordinary<SettlPriceType>(offset);
5119  }
5120 
5121  /// The total cleared volume of instrument traded during the
5122  /// prior trading session.
5124  {
5125  typedef NullInt32 Null;
5126 
5127  const BlockLength offset = 186;
5128 
5129  return ordinary(value, offset, Null());
5130  }
5131 
5132  /// The total open interest for the market at the close of the
5133  /// prior trading session.
5135  {
5136  typedef NullInt32 Null;
5137 
5138  const BlockLength offset = 190;
5139 
5140  return ordinary(value, offset, Null());
5141  }
5142 
5143  /// Allowable low limit price for the trading day.
5145  {
5146  typedef NullPRICE9 Null;
5147 
5148  const BlockLength offset = 194;
5149 
5150  return decimal(value, offset, Null());
5151  }
5152 
5153  /// Allowable high limit price for the trading day.
5155  {
5156  typedef NullPRICE9 Null;
5157 
5158  const BlockLength offset = 202;
5159 
5160  return decimal(value, offset, Null());
5161  }
5162 
5163  /// User-defined instruments flag.
5165  {
5166  const BlockLength offset = 210;
5167 
5168  return ordinary<UserDefinedInstrument>(offset);
5169  }
5170 
5171  /// Indicates session date corresponding to the settlement
5172  /// price in tag 1150-TradingReferencePrice.
5174  {
5175  typedef NullLocalMktDate Null;
5176  typedef LocalMktDate FieldValue;
5177 
5178  const BlockLength offset = 211;
5179 
5180  FieldValue fieldValue;
5181 
5182  if (ordinary(fieldValue, offset, Null()))
5183  {
5184  value = localMktDateToTimestamp(fieldValue);
5185  return true;
5186  }
5187  return false;
5188  }
5189 
5190  /// External unique instrument ID.
5192  {
5193  typedef NullUInt64 Null;
5194 
5195  const BlockLength offset = 213;
5196  const SchemaVersion since = 10;
5197 
5198  return ordinary(value, offset, Null(), since);
5199  }
5200 
5201  /// Returns instance of Events repeating group.
5202  Events events() const
5203  {
5204  return groups().head<Events>();
5205  }
5206 
5207  /// Returns instance of FeedTypes repeating group.
5208  FeedTypes feedTypes() const
5209  {
5210  return groups().tail<Events>().head<FeedTypes>();
5211  }
5212 
5213  /// Returns instance of InstAttrib repeating group.
5214  InstAttrib instAttrib() const
5215  {
5216  return groups().tail<Events>().tail<FeedTypes>().head<InstAttrib>();
5217  }
5218 
5219  /// Returns instance of LotTypeRules repeating group.
5220  LotTypeRules lotTypeRules() const
5221  {
5222  return groups().tail<Events>().tail<FeedTypes>().tail<InstAttrib>().head<LotTypeRules>();
5223  }
5224 
5225  /// Returns instance of Underlyings repeating group.
5226  Underlyings underlyings() const
5227  {
5228  return groups().tail<Events>().tail<FeedTypes>().tail<InstAttrib>().tail<LotTypeRules>().head<Underlyings>();
5229  }
5230 
5231  /// Returns instance of RelatedInstruments repeating group.
5232  RelatedInstruments relatedInstruments() const
5233  {
5234  return groups().tail<Events>().tail<FeedTypes>().tail<InstAttrib>().tail<LotTypeRules>().tail<Underlyings>().head<RelatedInstruments>();
5235  }
5236 
5237  /// Size of message body in bytes.
5240  {
5241  if (version >= 10)
5242  return 221;
5243 
5244  return 213;
5245  }
5246 
5247  /// Returns class name.
5249  static const Char* className()
5250  {
5251  return "InstrumentDefinitionOption55";
5252  }
5253 
5254  /// FIX message type.
5256  static StrRef fixType()
5257  {
5258  return toStrRef("d");
5259  }
5260 };
5261 
5262 /// MDIncrementalRefreshTradeSummary.
5264 {
5265  /// Message template ID from SBE schema.
5266  enum
5267  {
5268  TemplateId = 48
5269  };
5270 
5271  /// Number of Trade Summary entries.
5272  /// Entry of Entry repeating group.
5273  struct ONIXS_CMEMDH_LTWT Entry : BinaryGroupEntry<GroupSize::BlockLength>
5274  {
5275  /// Aliases base class type.
5277 
5278  /// Initializes blank instance.
5279  Entry() {}
5280 
5281  /// Initializes instance of given
5282  /// version over given memory block.
5283  Entry(const void* data, EncodedLength length, SchemaVersion version)
5284  : Base(data, length, version)
5285  {
5286  if (length < blockLength(version))
5287  throwBadBinaryData(className());
5288  }
5289 
5290  /// Trade price.
5292  {
5293  const BlockLength offset = 0;
5294 
5295  return decimal<PRICE9>(offset);
5296  }
5297 
5298  /// Consolidated trade quantity.
5300  {
5301  const BlockLength offset = 8;
5302 
5303  return ordinary<Int32>(offset);
5304  }
5305 
5306  /// Security ID as defined by CME.
5308  {
5309  const BlockLength offset = 12;
5310 
5311  return ordinary<Int32>(offset);
5312  }
5313 
5314  /// Sequence number per instrument update.
5315  UInt32 rptSeq() const
5316  {
5317  const BlockLength offset = 16;
5318 
5319  return ordinary<UInt32>(offset);
5320  }
5321 
5322  /// The total number of real orders per instrument that
5323  /// participated in a match step within a match event.
5325  {
5326  const BlockLength offset = 20;
5327 
5328  return ordinary<Int32>(offset);
5329  }
5330 
5331  /// Indicates which side is the aggressor or if there is no
5332  /// aggressor.
5334  {
5335  typedef NullUInt8 Null;
5336 
5337  const BlockLength offset = 24;
5338 
5339  return enumeration<AggressorSide>(value, offset, Null());
5340  }
5341 
5342  /// Market Data update action.
5344  {
5345  const BlockLength offset = 25;
5346 
5347  return enumeration<UpdateAction>(offset);
5348  }
5349 
5350  /// Market Data entry type.
5352  {
5353  return EntryTypeTrade();
5354  }
5355 
5356  /// Market Data Trade entry ID.
5358  {
5359  typedef NullUInt32 Null;
5360 
5361  const BlockLength offset = 26;
5362 
5363  return ordinary(value, offset, Null());
5364  }
5365 
5366  /// Returns size of entry body in bytes
5367  /// for given version of message template.
5370  {
5371  return 30;
5372  }
5373 
5374  /// Entity class name.
5376  static const Char* className()
5377  {
5378  return "IncrementalRefreshTradeSummary48.Entry";
5379  }
5380  };
5381 
5382  /// Repeating group containing Entry entries.
5384 
5385  /// Number of OrderID entries.
5386  /// Entry of OrderIDEntry repeating group.
5387  struct ONIXS_CMEMDH_LTWT OrderIDEntry : BinaryGroupEntry<GroupSize8Byte::BlockLength>
5388  {
5389  /// Aliases base class type.
5391 
5392  /// Initializes blank instance.
5394 
5395  /// Initializes instance of given
5396  /// version over given memory block.
5397  OrderIDEntry(const void* data, EncodedLength length, SchemaVersion version)
5398  : Base(data, length, version)
5399  {
5400  if (length < blockLength(version))
5401  throwBadBinaryData(className());
5402  }
5403 
5404  /// Unique order identifier as assigned by the exchange.
5405  UInt64 orderId() const
5406  {
5407  const BlockLength offset = 0;
5408 
5409  return ordinary<UInt64>(offset);
5410  }
5411 
5412  /// Quantity bought or sold on this last fill.
5413  Int32 lastQty() const
5414  {
5415  const BlockLength offset = 8;
5416 
5417  return ordinary<Int32>(offset);
5418  }
5419 
5420  /// Returns size of entry body in bytes
5421  /// for given version of message template.
5424  {
5425  return 12;
5426  }
5427 
5428  /// Entity class name.
5430  static const Char* className()
5431  {
5432  return "IncrementalRefreshTradeSummary48.OrderIDEntry";
5433  }
5434  };
5435 
5436  /// Repeating group containing OrderIDEntry entries.
5438 
5439  /// Initializes blank instance.
5441 
5442  /// Initializes instance over given memory block.
5444  : BinaryMessage(data, length, SchemaTraits::minimalVersion())
5445  {
5446  assert(TemplateId == templateId());
5447 
5448  if (length < blockLength(version()))
5449  throwBadBinaryData(className());
5450  }
5451 
5452  /// Start of event processing time in number of nanoseconds
5453  /// since Unix epoch.
5455  {
5456  const BlockLength offset = 0;
5457 
5458  return ordinary<Timestamp>(offset);
5459  }
5460 
5461  /// Bitmap field of eight Boolean type indicators reflecting
5462  /// the end of updates for a given Globex event.
5464  {
5465  const BlockLength offset = 8;
5466 
5467  return ordinary<MatchEventIndicator>(offset);
5468  }
5469 
5470  /// Returns instance of Entries repeating group.
5471  Entries entries() const
5472  {
5473  return groups().head<Entries>();
5474  }
5475 
5476  /// Returns instance of OrderIDEntries repeating group.
5477  OrderIDEntries orderIdEntries() const
5478  {
5479  return groups().tail<Entries>().head<OrderIDEntries>();
5480  }
5481 
5482  /// Size of message body in bytes.
5485  {
5486  return 9;
5487  }
5488 
5489  /// Returns class name.
5491  static const Char* className()
5492  {
5493  return "IncrementalRefreshTradeSummary48";
5494  }
5495 
5496  /// FIX message type.
5498  static StrRef fixType()
5499  {
5500  return toStrRef("X");
5501  }
5502 };
5503 
5504 /// MDIncrementalRefreshOrderBook.
5506 {
5507  /// Message template ID from SBE schema.
5508  enum
5509  {
5510  TemplateId = 47
5511  };
5512 
5513  /// Number of entries in Market Data message.
5514  /// Entry of Entry repeating group.
5515  struct ONIXS_CMEMDH_LTWT Entry : BinaryGroupEntry<GroupSize::BlockLength>
5516  {
5517  /// Aliases base class type.
5519 
5520  /// Initializes blank instance.
5521  Entry() {}
5522 
5523  /// Initializes instance of given
5524  /// version over given memory block.
5525  Entry(const void* data, EncodedLength length, SchemaVersion version)
5526  : Base(data, length, version)
5527  {
5528  if (length < blockLength(version))
5529  throwBadBinaryData(className());
5530  }
5531 
5532  /// Order ID.
5533  bool orderId(UInt64& value) const
5534  {
5535  typedef NullUInt64 Null;
5536 
5537  const BlockLength offset = 0;
5538 
5539  return ordinary(value, offset, Null());
5540  }
5541 
5542  /// Order priority for execution on the order book.
5544  {
5545  typedef NullUInt64 Null;
5546 
5547  const BlockLength offset = 8;
5548 
5549  return ordinary(value, offset, Null());
5550  }
5551 
5552  /// Order price.
5553  bool entryPx(Decimal& value) const
5554  {
5555  typedef NullPRICE9 Null;
5556 
5557  const BlockLength offset = 16;
5558 
5559  return decimal(value, offset, Null());
5560  }
5561 
5562  /// Visible order qty.
5563  bool displayQty(Int32& value) const
5564  {
5565  typedef NullInt32 Null;
5566 
5567  const BlockLength offset = 24;
5568 
5569  return ordinary(value, offset, Null());
5570  }
5571 
5572  /// Security ID.
5574  {
5575  const BlockLength offset = 28;
5576 
5577  return ordinary<Int32>(offset);
5578  }
5579 
5580  /// Order book update action to be applied to the order
5581  /// referenced by OrderID.
5583  {
5584  const BlockLength offset = 32;
5585 
5586  return enumeration<UpdateAction>(offset);
5587  }
5588 
5589  /// Market Data entry type.
5591  {
5592  const BlockLength offset = 33;
5593 
5594  return enumeration<EntryTypeBook>(offset);
5595  }
5596 
5597  /// Returns size of entry body in bytes
5598  /// for given version of message template.
5601  {
5602  return 34;
5603  }
5604 
5605  /// Entity class name.
5607  static const Char* className()
5608  {
5609  return "IncrementalRefreshOrderBook47.Entry";
5610  }
5611  };
5612 
5613  /// Repeating group containing Entry entries.
5615 
5616  /// Initializes blank instance.
5618 
5619  /// Initializes instance over given memory block.
5621  : BinaryMessage(data, length, SchemaTraits::minimalVersion())
5622  {
5623  assert(TemplateId == templateId());
5624 
5625  if (length < blockLength(version()))
5626  throwBadBinaryData(className());
5627  }
5628 
5629  /// Start of event processing time in number of nanoseconds
5630  /// since Unix epoch.
5632  {
5633  const BlockLength offset = 0;
5634 
5635  return ordinary<Timestamp>(offset);
5636  }
5637 
5638  /// Bitmap field of eight Boolean type indicators reflecting
5639  /// the end of updates for a given Globex event.
5641  {
5642  const BlockLength offset = 8;
5643 
5644  return ordinary<MatchEventIndicator>(offset);
5645  }
5646 
5647  /// Returns instance of Entries repeating group.
5648  Entries entries() const
5649  {
5650  return groups().head<Entries>();
5651  }
5652 
5653  /// Size of message body in bytes.
5656  {
5657  return 9;
5658  }
5659 
5660  /// Returns class name.
5662  static const Char* className()
5663  {
5664  return "IncrementalRefreshOrderBook47";
5665  }
5666 
5667  /// FIX message type.
5669  static StrRef fixType()
5670  {
5671  return toStrRef("X");
5672  }
5673 };
5674 
5675 /// SnapshotFullRefreshOrderBook.
5677 {
5678  /// Message template ID from SBE schema.
5679  enum
5680  {
5681  TemplateId = 53
5682  };
5683 
5684  /// Number of entries in Market Data message.
5685  /// Entry of Entry repeating group.
5686  struct ONIXS_CMEMDH_LTWT Entry : BinaryGroupEntry<GroupSize::BlockLength>
5687  {
5688  /// Aliases base class type.
5690 
5691  /// Initializes blank instance.
5692  Entry() {}
5693 
5694  /// Initializes instance of given
5695  /// version over given memory block.
5696  Entry(const void* data, EncodedLength length, SchemaVersion version)
5697  : Base(data, length, version)
5698  {
5699  if (length < blockLength(version))
5700  throwBadBinaryData(className());
5701  }
5702 
5703  /// Unique Order ID.
5704  UInt64 orderId() const
5705  {
5706  const BlockLength offset = 0;
5707 
5708  return ordinary<UInt64>(offset);
5709  }
5710 
5711  /// Order priority for execution on the order book.
5713  {
5714  typedef NullUInt64 Null;
5715 
5716  const BlockLength offset = 8;
5717 
5718  return ordinary(value, offset, Null());
5719  }
5720 
5721  /// Order Price.
5723  {
5724  const BlockLength offset = 16;
5725 
5726  return decimal<PRICE9>(offset);
5727  }
5728 
5729  /// Visible order qty.
5731  {
5732  const BlockLength offset = 24;
5733 
5734  return ordinary<Int32>(offset);
5735  }
5736 
5737  /// Market Data entry type.
5739  {
5740  const BlockLength offset = 28;
5741 
5742  return enumeration<EntryTypeBook>(offset);
5743  }
5744 
5745  /// Returns size of entry body in bytes
5746  /// for given version of message template.
5749  {
5750  return 29;
5751  }
5752 
5753  /// Entity class name.
5755  static const Char* className()
5756  {
5757  return "SnapshotFullRefreshOrderBook53.Entry";
5758  }
5759  };
5760 
5761  /// Repeating group containing Entry entries.
5763 
5764  /// Initializes blank instance.
5766 
5767  /// Initializes instance over given memory block.
5769  : BinaryMessage(data, length, SchemaTraits::minimalVersion())
5770  {
5771  assert(TemplateId == templateId());
5772 
5773  if (length < blockLength(version()))
5774  throwBadBinaryData(className());
5775  }
5776 
5777  /// Sequence number of the last Incremental feed packet
5778  /// processed. This value is used to synchronize the snapshot
5779  /// loop with the real-time feed.
5781  {
5782  const BlockLength offset = 0;
5783 
5784  return ordinary<UInt32>(offset);
5785  }
5786 
5787  /// Total number of instruments in the replayed loop.
5789  {
5790  const BlockLength offset = 4;
5791 
5792  return ordinary<UInt32>(offset);
5793  }
5794 
5795  /// Security ID.
5797  {
5798  const BlockLength offset = 8;
5799 
5800  return ordinary<Int32>(offset);
5801  }
5802 
5803  /// Total number of packets that constitutes a single
5804  /// instrument order book.
5805  UInt32 chunks() const
5806  {
5807  const BlockLength offset = 12;
5808 
5809  return ordinary<UInt32>(offset);
5810  }
5811 
5812  /// Chunk sequence.
5814  {
5815  const BlockLength offset = 16;
5816 
5817  return ordinary<UInt32>(offset);
5818  }
5819 
5820  /// Timestamp of the last event security participated in, sent
5821  /// as number of nanoseconds since Unix epoch.
5823  {
5824  const BlockLength offset = 20;
5825 
5826  return ordinary<Timestamp>(offset);
5827  }
5828 
5829  /// Returns instance of Entries repeating group.
5830  Entries entries() const
5831  {
5832  return groups().head<Entries>();
5833  }
5834 
5835  /// Size of message body in bytes.
5838  {
5839  return 28;
5840  }
5841 
5842  /// Returns class name.
5844  static const Char* className()
5845  {
5846  return "SnapshotFullRefreshOrderBook53";
5847  }
5848 
5849  /// FIX message type.
5851  static StrRef fixType()
5852  {
5853  return toStrRef("W");
5854  }
5855 };
5856 
5857 /// MDInstrumentDefinitionFX.
5859 {
5860  /// Message template ID from SBE schema.
5861  enum
5862  {
5863  TemplateId = 63
5864  };
5865 
5866  /// Number of EventType entries.
5867  /// Entry of EventsEntry repeating group.
5868  struct ONIXS_CMEMDH_LTWT EventsEntry : BinaryGroupEntry<GroupSize::BlockLength>
5869  {
5870  /// Aliases base class type.
5872 
5873  /// Initializes blank instance.
5875 
5876  /// Initializes instance of given
5877  /// version over given memory block.
5878  EventsEntry(const void* data, EncodedLength length, SchemaVersion version)
5879  : Base(data, length, version)
5880  {
5881  if (length < blockLength(version))
5882  throwBadBinaryData(className());
5883  }
5884 
5885  /// Code to represent the type of event.
5887  {
5888  const BlockLength offset = 0;
5889 
5890  return enumeration<EventType>(offset);
5891  }
5892 
5893  /// Date and Time of instument Activation or Expiration event
5894  /// sent as number of nanoseconds since Unix epoch.
5896  {
5897  const BlockLength offset = 1;
5898 
5899  return ordinary<Timestamp>(offset);
5900  }
5901 
5902  /// Returns size of entry body in bytes
5903  /// for given version of message template.
5906  {
5907  return 9;
5908  }
5909 
5910  /// Entity class name.
5912  static const Char* className()
5913  {
5914  return "InstrumentDefinitionFX63.EventsEntry";
5915  }
5916  };
5917 
5918  /// Repeating group containing EventsEntry entries.
5920 
5921  /// Number of FeedType entries.
5922  /// Entry of FeedTypesEntry repeating group.
5923  struct ONIXS_CMEMDH_LTWT FeedTypesEntry : BinaryGroupEntry<GroupSize::BlockLength>
5924  {
5925  /// Aliases base class type.
5927 
5928  /// Initializes blank instance.
5930 
5931  /// Initializes instance of given
5932  /// version over given memory block.
5933  FeedTypesEntry(const void* data, EncodedLength length, SchemaVersion version)
5934  : Base(data, length, version)
5935  {
5936  if (length < blockLength(version))
5937  throwBadBinaryData(className());
5938  }
5939 
5940  /// Describes a class of service for a given data feed.
5942  {
5943  const BlockLength offset = 0;
5944  const BlockLength length = 3;
5945 
5946  return fixedStr<length>(offset);
5947  }
5948 
5949  /// Book depth.
5951  {
5952  const BlockLength offset = 3;
5953 
5954  return ordinary<Int8>(offset);
5955  }
5956 
5957  /// Returns size of entry body in bytes
5958  /// for given version of message template.
5961  {
5962  return 4;
5963  }
5964 
5965  /// Entity class name.
5967  static const Char* className()
5968  {
5969  return "InstrumentDefinitionFX63.FeedTypesEntry";
5970  }
5971  };
5972 
5973  /// Repeating group containing FeedTypesEntry entries.
5975 
5976  /// Number of InstrAttribType entries.
5977  /// Entry of InstAttribEntry repeating group.
5978  struct ONIXS_CMEMDH_LTWT InstAttribEntry : BinaryGroupEntry<GroupSize::BlockLength>
5979  {
5980  /// Aliases base class type.
5982 
5983  /// Initializes blank instance.
5985 
5986  /// Initializes instance of given
5987  /// version over given memory block.
5988  InstAttribEntry(const void* data, EncodedLength length, SchemaVersion version)
5989  : Base(data, length, version)
5990  {
5991  if (length < blockLength(version))
5992  throwBadBinaryData(className());
5993  }
5994 
5995  /// Instrument eligibility attributes.
5997  {
5998  return InstAttribType();
5999  }
6000 
6001  /// Bitmap field of 32 Boolean type instrument eligibility
6002  /// flags.
6004  {
6005  const BlockLength offset = 0;
6006 
6007  return ordinary<InstAttribValue>(offset);
6008  }
6009 
6010  /// Returns size of entry body in bytes
6011  /// for given version of message template.
6014  {
6015  return 4;
6016  }
6017 
6018  /// Entity class name.
6020  static const Char* className()
6021  {
6022  return "InstrumentDefinitionFX63.InstAttribEntry";
6023  }
6024  };
6025 
6026  /// Repeating group containing InstAttribEntry entries.
6028 
6029  /// Number of LotTypeRules entries.
6030  /// Entry of LotTypeRulesEntry repeating group.
6031  struct ONIXS_CMEMDH_LTWT LotTypeRulesEntry : BinaryGroupEntry<GroupSize::BlockLength>
6032  {
6033  /// Aliases base class type.
6035 
6036  /// Initializes blank instance.
6038 
6039  /// Initializes instance of given
6040  /// version over given memory block.
6041  LotTypeRulesEntry(const void* data, EncodedLength length, SchemaVersion version)
6042  : Base(data, length, version)
6043  {
6044  if (length < blockLength(version))
6045  throwBadBinaryData(className());
6046  }
6047 
6048  /// This tag is required to interpret the value in tag
6049  /// 1231-MinLotSize.
6050  Int8 lotType() const
6051  {
6052  const BlockLength offset = 0;
6053 
6054  return ordinary<Int8>(offset);
6055  }
6056 
6057  /// For FX instruments in the repeating group with Tag
6058  /// 1093-LotType=2, Tag 1231-MinLotSize provides a Regular
6059  /// Amount - a default order size on the Workstation screen.
6060  /// With tag 1093-LotType= 5, Tag 1231-MinLotSize value
6061  /// represents standard min order qty increment. With tag
6062  /// 1093-LotType=6 tag 1231-MinLotSize contains
6063  /// SizePriorityQty for instruments trading with Match
6064  /// Algorithm = P (Size Priority).
6066  {
6067  const BlockLength offset = 1;
6068 
6069  return ordinary<UInt64>(offset);
6070  }
6071 
6072  /// Returns size of entry body in bytes
6073  /// for given version of message template.
6076  {
6077  return 9;
6078  }
6079 
6080  /// Entity class name.
6082  static const Char* className()
6083  {
6084  return "InstrumentDefinitionFX63.LotTypeRulesEntry";
6085  }
6086  };
6087 
6088  /// Repeating group containing LotTypeRulesEntry entries.
6090 
6091  /// Number of scheduled Trading Dates.
6092  /// Entry of TradingSessionsEntry repeating group.
6094  {
6095  /// Aliases base class type.
6097 
6098  /// Initializes blank instance.
6100 
6101  /// Initializes instance of given
6102  /// version over given memory block.
6103  TradingSessionsEntry(const void* data, EncodedLength length, SchemaVersion version)
6104  : Base(data, length, version)
6105  {
6106  if (length < blockLength(version))
6107  throwBadBinaryData(className());
6108  }
6109 
6110  /// Trade Date.
6112  {
6113  typedef NullLocalMktDate Null;
6114  typedef LocalMktDate FieldValue;
6115 
6116  const BlockLength offset = 0;
6117 
6118  FieldValue fieldValue;
6119 
6120  if (ordinary(fieldValue, offset, Null()))
6121  {
6122  value = localMktDateToTimestamp(fieldValue);
6123  return true;
6124  }
6125  return false;
6126  }
6127 
6128  /// Settle (Value) Date corresponding to Trade Date.
6130  {
6131  typedef NullLocalMktDate Null;
6132  typedef LocalMktDate FieldValue;
6133 
6134  const BlockLength offset = 2;
6135 
6136  FieldValue fieldValue;
6137 
6138  if (ordinary(fieldValue, offset, Null()))
6139  {
6140  value = localMktDateToTimestamp(fieldValue);
6141  return true;
6142  }
6143  return false;
6144  }
6145 
6146  /// For Spot instruments will not contain the value. For NDFs,
6147  /// the valuation (fixing) date of the NDF. For Fixed Date
6148  /// NDFs Value Date and Maturity Date remain constant for all
6149  /// Trade Dates.
6151  {
6152  typedef NullLocalMktDate Null;
6153  typedef LocalMktDate FieldValue;
6154 
6155  const BlockLength offset = 4;
6156 
6157  FieldValue fieldValue;
6158 
6159  if (ordinary(fieldValue, offset, Null()))
6160  {
6161  value = localMktDateToTimestamp(fieldValue);
6162  return true;
6163  }
6164  return false;
6165  }
6166 
6167  /// ISIN value as provided by ANNA, Association of National
6168  /// Numbering Agencies. This field is populated for MTF-
6169  /// Regulated NDFs and is unique for each Settle Date.
6171  {
6172  const BlockLength offset = 6;
6173  const BlockLength length = 12;
6174  const SchemaVersion since = 10;
6175 
6176  return fixedStr<length>(offset, since);
6177  }
6178 
6179  /// Identifies class or source of the SecurityAltID (455)
6180  /// value.
6182  {
6183  return SecurityAltIDSourceISIN();
6184  }
6185 
6186  /// Returns size of entry body in bytes
6187  /// for given version of message template.
6190  {
6191  if (version >= 10)
6192  return 18;
6193 
6194  return 6;
6195  }
6196 
6197  /// Entity class name.
6199  static const Char* className()
6200  {
6201  return "InstrumentDefinitionFX63.TradingSessionsEntry";
6202  }
6203  };
6204 
6205  /// Repeating group containing TradingSessionsEntry entries.
6207 
6208  /// Initializes blank instance.
6210 
6211  /// Initializes instance over given memory block.
6212  InstrumentDefinitionFX63(const void* data, EncodedLength length)
6213  : BinaryMessage(data, length, 12)
6214  {
6215  assert(TemplateId == templateId());
6216 
6217  if (length < blockLength(version()))
6218  throwBadBinaryData(className());
6219  }
6220 
6221  /// Bitmap field of eight Boolean type indicators reflecting
6222  /// the end of updates for a given Globex event.
6224  {
6225  const BlockLength offset = 0;
6226 
6227  return ordinary<MatchEventIndicator>(offset);
6228  }
6229 
6230  /// Total number of instruments in the Replay loop. Used on
6231  /// Replay Feed only.
6233  {
6234  typedef NullUInt32 Null;
6235 
6236  const BlockLength offset = 1;
6237 
6238  return ordinary(value, offset, Null());
6239  }
6240 
6241  /// Last Security update action on Incremental feed, 'D' or
6242  /// 'M' is used when a mid-week deletion or modification (i.e.
6243  /// extension) occurs.
6245  {
6246  const BlockLength offset = 5;
6247 
6248  return enumeration<SecurityUpdateAction>(offset);
6249  }
6250 
6251  /// Timestamp of when the instrument was last added, modified
6252  /// or deleted.
6254  {
6255  const BlockLength offset = 6;
6256 
6257  return ordinary<Timestamp>(offset);
6258  }
6259 
6260  /// Identifies the current state of the instrument. In
6261  /// Security Definition message this tag is available in the
6262  /// Instrument Replay feed only.
6264  {
6265  typedef NullUInt8 Null;
6266 
6267  const BlockLength offset = 14;
6268 
6269  return enumeration<SecurityTradingStatus>(value, offset, Null());
6270  }
6271 
6272  /// The channel ID as defined in the XML Configuration file.
6273  Int16 applId() const
6274  {
6275  const BlockLength offset = 15;
6276 
6277  return ordinary<Int16>(offset);
6278  }
6279 
6280  /// Identifies the market segment, populated for all CME
6281  /// Globex instruments.
6283  {
6284  const BlockLength offset = 17;
6285 
6286  return ordinary<UInt8>(offset);
6287  }
6288 
6289  /// Product complex.
6291  {
6292  const BlockLength offset = 18;
6293 
6294  return ordinary<UInt8>(offset);
6295  }
6296 
6297  /// Exchange used to identify a security.
6299  {
6300  const BlockLength offset = 19;
6301  const BlockLength length = 4;
6302 
6303  return fixedStr<length>(offset);
6304  }
6305 
6306  /// Security Group Code.
6308  {
6309  const BlockLength offset = 23;
6310  const BlockLength length = 6;
6311 
6312  return fixedStr<length>(offset);
6313  }
6314 
6315  /// The underlying asset code also known as Product Code.
6316  StrRef asset() const
6317  {
6318  const BlockLength offset = 29;
6319  const BlockLength length = 6;
6320 
6321  return fixedStr<length>(offset);
6322  }
6323 
6324  /// Instrument Name or Symbol.
6325  StrRef symbol() const
6326  {
6327  const BlockLength offset = 35;
6328  const BlockLength length = 20;
6329 
6330  return fixedStr<length>(offset);
6331  }
6332 
6333  /// Unique instrument ID.
6335  {
6336  const BlockLength offset = 55;
6337 
6338  return ordinary<Int32>(offset);
6339  }
6340 
6341  /// Identifies class or source of tag 48-SecurityID value.
6343  {
6344  return SecurityIDSource();
6345  }
6346 
6347  /// Security Type.
6349  {
6350  const BlockLength offset = 59;
6351  const BlockLength length = 6;
6352 
6353  return fixedStr<length>(offset);
6354  }
6355 
6356  /// ISO standard instrument categorization code.
6357  StrRef cfiCode() const
6358  {
6359  const BlockLength offset = 65;
6360  const BlockLength length = 6;
6361 
6362  return fixedStr<length>(offset);
6363  }
6364 
6365  /// Base currency.
6367  {
6368  const BlockLength offset = 71;
6369  const BlockLength length = 3;
6370 
6371  return fixedStr<length>(offset);
6372  }
6373 
6374  /// Currency used for settlement, which may be different from
6375  /// Local currency specified in Tag 1524 PriceQuoteCurrency.
6377  {
6378  const BlockLength offset = 74;
6379  const BlockLength length = 3;
6380 
6381  return fixedStr<length>(offset);
6382  }
6383 
6384  /// Local (counter) currency.
6386  {
6387  const BlockLength offset = 77;
6388  const BlockLength length = 3;
6389 
6390  return fixedStr<length>(offset);
6391  }
6392 
6393  /// Matching algorithm.
6395  {
6396  const BlockLength offset = 80;
6397 
6398  return ordinary<CHAR>(offset);
6399  }
6400 
6401  /// The minimum trading volume for a security.
6403  {
6404  const BlockLength offset = 81;
6405 
6406  return ordinary<UInt32>(offset);
6407  }
6408 
6409  /// The maximum trading volume for a security.
6411  {
6412  const BlockLength offset = 85;
6413 
6414  return ordinary<UInt32>(offset);
6415  }
6416 
6417  /// Minimum price tick.
6419  {
6420  const BlockLength offset = 89;
6421 
6422  return decimal<PRICE9>(offset);
6423  }
6424 
6425  /// Contains the multiplier to convert the CME Globex display
6426  /// price to the conventional price.
6428  {
6429  const BlockLength offset = 97;
6430 
6431  return decimal<Decimal9>(offset);
6432  }
6433 
6434  /// Specifies price decimal precision for EBS instrument.
6436  {
6437  const BlockLength offset = 105;
6438 
6439  return ordinary<UInt8>(offset);
6440  }
6441 
6442  /// Unit of measure for the products' original contract size.
6443  /// This will be populated for all products listed on CME
6444  /// Globex.
6446  {
6447  const BlockLength offset = 106;
6448  const BlockLength length = 30;
6449 
6450  return fixedStr<length>(offset);
6451  }
6452 
6453  /// This field contains the contract size for each instrument.
6454  /// Used in combination with tag 996-UnitofMeasure.
6456  {
6457  typedef NullDecimal9 Null;
6458 
6459  const BlockLength offset = 136;
6460 
6461  return decimal(value, offset, Null());
6462  }
6463 
6464  /// Allowable high limit price for the trading day.
6466  {
6467  typedef NullPRICE9 Null;
6468 
6469  const BlockLength offset = 144;
6470 
6471  return decimal(value, offset, Null());
6472  }
6473 
6474  /// Allowable low limit price for the trading day.
6476  {
6477  typedef NullPRICE9 Null;
6478 
6479  const BlockLength offset = 152;
6480 
6481  return decimal(value, offset, Null());
6482  }
6483 
6484  /// Differential value for price banding.
6486  {
6487  typedef NullPRICE9 Null;
6488 
6489  const BlockLength offset = 160;
6490 
6491  return decimal(value, offset, Null());
6492  }
6493 
6494  /// User-defined instruments flag.
6496  {
6497  const BlockLength offset = 168;
6498 
6499  return ordinary<UserDefinedInstrument>(offset);
6500  }
6501 
6502  /// EBS instrument long name.
6504  {
6505  const BlockLength offset = 169;
6506  const BlockLength length = 35;
6507 
6508  return fixedStr<length>(offset);
6509  }
6510 
6511  /// Base/Local. Denotes the currency pair in CCY1/CCY2
6512  /// convention.
6514  {
6515  const BlockLength offset = 204;
6516  const BlockLength length = 7;
6517 
6518  return fixedStr<length>(offset);
6519  }
6520 
6521  /// For SPOTs will contain 0. For Fixed date NDFs will contain
6522  /// the value 'B'. For the standard NDFs tenors expressed
6523  /// using Dx, Mx, Wx, and Yx values, where 'x' does not denote
6524  /// business days, but calendar days.
6526  {
6527  const BlockLength offset = 211;
6528  const BlockLength length = 3;
6529 
6530  return fixedStr<length>(offset);
6531  }
6532 
6533  /// For SPOT, number of business days between trade date and
6534  /// value (settlement) date. For NDF, number of business days
6535  /// between NDF valuation (fixing) and settlement.
6537  {
6538  const BlockLength offset = 214;
6539 
6540  return ordinary<UInt16>(offset);
6541  }
6542 
6543  /// Fixing Rate Description.
6545  {
6546  const BlockLength offset = 216;
6547  const BlockLength length = 20;
6548 
6549  return fixedStr<length>(offset);
6550  }
6551 
6552  /// Fixing Rate Source.
6554  {
6555  const BlockLength offset = 236;
6556  const BlockLength length = 12;
6557 
6558  return fixedStr<length>(offset);
6559  }
6560 
6561  /// Fixing Rate Local Time, denoted in HH:MM:SS format.
6563  {
6564  const BlockLength offset = 248;
6565  const BlockLength length = 8;
6566 
6567  return fixedStr<length>(offset);
6568  }
6569 
6570  /// Fixing Rate Local Time Zone corresponding to Fixing Local
6571  /// Time.
6573  {
6574  const BlockLength offset = 256;
6575  const BlockLength length = 20;
6576 
6577  return fixedStr<length>(offset);
6578  }
6579 
6580  /// Minimum Quote Life in number of microseconds.
6582  {
6583  const BlockLength offset = 276;
6584 
6585  return ordinary<UInt32>(offset);
6586  }
6587 
6588  /// Max allowed discretionary offset from Limit order price.
6589  /// When the value in this field = 0, discretionary price
6590  /// cannot be submitted for the instrument.
6592  {
6593  const BlockLength offset = 280;
6594 
6595  return decimal<PRICE9>(offset);
6596  }
6597 
6598  /// External unique instrument ID.
6600  {
6601  typedef NullUInt64 Null;
6602 
6603  const BlockLength offset = 288;
6604 
6605  return ordinary(value, offset, Null());
6606  }
6607 
6608  /// Fixed Date NDF Maturity.
6610  {
6611  typedef NullMaturityMonthYear Null;
6612 
6613  const BlockLength offset = 296;
6614 
6615  return ordinary(value, offset, Null());
6616  }
6617 
6618  /// Settlement Locale. Optionally used to differentiate
6619  /// settlement location.
6621  {
6622  const BlockLength offset = 301;
6623  const BlockLength length = 8;
6624 
6625  return fixedStr<length>(offset);
6626  }
6627 
6628  /// New sub-tick which is only available for order entry when
6629  /// certain conditions are met, tick value which corresponds
6630  /// to the Alt Min Quote Life.
6632  {
6633  typedef NullPRICE9 Null;
6634 
6635  const BlockLength offset = 309;
6636  const SchemaVersion since = 13;
6637 
6638  return decimal(value, offset, Null(), since);
6639  }
6640 
6641  /// MQL duration in number of microseconds applied to orders
6642  /// at AltMinPriceIncrement.
6644  {
6645  typedef NullUInt32 Null;
6646 
6647  const BlockLength offset = 317;
6648  const SchemaVersion since = 13;
6649 
6650  return ordinary(value, offset, Null(), since);
6651  }
6652 
6653  /// Minimum price offset better than the best Standard Tick
6654  /// order for an order to be allowed into the market.
6656  {
6657  typedef NullPRICE9 Null;
6658 
6659  const BlockLength offset = 321;
6660  const SchemaVersion since = 13;
6661 
6662  return decimal(value, offset, Null(), since);
6663  }
6664 
6665  /// Maximum bid/ask spread for which sub-tick orders will be
6666  /// accepted (Sub tick orders will be rejected if bid/ask
6667  /// spread is greater than this value).
6669  {
6670  typedef NullPRICE9 Null;
6671 
6672  const BlockLength offset = 329;
6673  const SchemaVersion since = 13;
6674 
6675  return decimal(value, offset, Null(), since);
6676  }
6677 
6678  /// Returns instance of Events repeating group.
6679  Events events() const
6680  {
6681  return groups().head<Events>();
6682  }
6683 
6684  /// Returns instance of FeedTypes repeating group.
6685  FeedTypes feedTypes() const
6686  {
6687  return groups().tail<Events>().head<FeedTypes>();
6688  }
6689 
6690  /// Returns instance of InstAttrib repeating group.
6691  InstAttrib instAttrib() const
6692  {
6693  return groups().tail<Events>().tail<FeedTypes>().head<InstAttrib>();
6694  }
6695 
6696  /// Returns instance of LotTypeRules repeating group.
6697  LotTypeRules lotTypeRules() const
6698  {
6699  return groups().tail<Events>().tail<FeedTypes>().tail<InstAttrib>().head<LotTypeRules>();
6700  }
6701 
6702  /// Returns instance of TradingSessions repeating group.
6703  TradingSessions tradingSessions() const
6704  {
6705  return groups().tail<Events>().tail<FeedTypes>().tail<InstAttrib>().tail<LotTypeRules>().head<TradingSessions>();
6706  }
6707 
6708  /// Size of message body in bytes.
6711  {
6712  if (version >= 13)
6713  return 337;
6714 
6715  if (version >= 12)
6716  return 309;
6717 
6718  if (version >= 10)
6719  return 204;
6720 
6721  return 169;
6722  }
6723 
6724  /// Returns class name.
6726  static const Char* className()
6727  {
6728  return "InstrumentDefinitionFX63";
6729  }
6730 
6731  /// FIX message type.
6733  static StrRef fixType()
6734  {
6735  return toStrRef("d");
6736  }
6737 };
6738 
6739 /// MDIncrementalRefreshBookLongQty.
6741 {
6742  /// Message template ID from SBE schema.
6743  enum
6744  {
6745  TemplateId = 64
6746  };
6747 
6748  /// Number of entries in Market Data message.
6749  /// Entry of Entry repeating group.
6750  struct ONIXS_CMEMDH_LTWT Entry : BinaryGroupEntry<GroupSize::BlockLength>
6751  {
6752  /// Aliases base class type.
6754 
6755  /// Initializes blank instance.
6756  Entry() {}
6757 
6758  /// Initializes instance of given
6759  /// version over given memory block.
6760  Entry(const void* data, EncodedLength length, SchemaVersion version)
6761  : Base(data, length, version)
6762  {
6763  if (length < blockLength(version))
6764  throwBadBinaryData(className());
6765  }
6766 
6767  /// Market Data entry price.
6768  bool entryPx(Decimal& value) const
6769  {
6770  typedef NullPRICE9 Null;
6771 
6772  const BlockLength offset = 0;
6773 
6774  return decimal(value, offset, Null());
6775  }
6776 
6777  /// Aggregate booked qty at price level, notional.
6778  bool entrySize(UInt64& value) const
6779  {
6780  typedef NullUInt64 Null;
6781 
6782  const BlockLength offset = 8;
6783 
6784  return ordinary(value, offset, Null());
6785  }
6786 
6787  /// SecurityID.
6789  {
6790  const BlockLength offset = 16;
6791 
6792  return ordinary<Int32>(offset);
6793  }
6794 
6795  /// Market Data entry sequence number per instrument update.
6796  UInt32 rptSeq() const
6797  {
6798  const BlockLength offset = 20;
6799 
6800  return ordinary<UInt32>(offset);
6801  }
6802 
6803  /// In Book entry - aggregate number of orders at given price
6804  /// level.
6806  {
6807  typedef NullInt32 Null;
6808 
6809  const BlockLength offset = 24;
6810 
6811  return ordinary(value, offset, Null());
6812  }
6813 
6814  /// Aggregate book level.
6816  {
6817  const BlockLength offset = 28;
6818 
6819  return ordinary<UInt8>(offset);
6820  }
6821 
6822  /// Market Data update action.
6824  {
6825  const BlockLength offset = 29;
6826 
6827  return enumeration<UpdateAction>(offset);
6828  }
6829 
6830  /// Market Data entry type.
6832  {
6833  const BlockLength offset = 30;
6834 
6835  return enumeration<EntryTypeBook>(offset);
6836  }
6837 
6838  /// Returns size of entry body in bytes
6839  /// for given version of message template.
6842  {
6843  return 31;
6844  }
6845 
6846  /// Entity class name.
6848  static const Char* className()
6849  {
6850  return "IncrementalRefreshBookLongQty64.Entry";
6851  }
6852  };
6853 
6854  /// Repeating group containing Entry entries.
6856 
6857  /// Number of OrderID entries.
6858  /// Entry of OrderIDEntry repeating group.
6859  struct ONIXS_CMEMDH_LTWT OrderIDEntry : BinaryGroupEntry<GroupSize8Byte::BlockLength>
6860  {
6861  /// Aliases base class type.
6863 
6864  /// Initializes blank instance.
6866 
6867  /// Initializes instance of given
6868  /// version over given memory block.
6869  OrderIDEntry(const void* data, EncodedLength length, SchemaVersion version)
6870  : Base(data, length, version)
6871  {
6872  if (length < blockLength(version))
6873  throwBadBinaryData(className());
6874  }
6875 
6876  /// Unique Order ID.
6877  UInt64 orderId() const
6878  {
6879  const BlockLength offset = 0;
6880 
6881  return ordinary<UInt64>(offset);
6882  }
6883 
6884  /// Order priority for execution on the order book.
6886  {
6887  typedef NullUInt64 Null;
6888 
6889  const BlockLength offset = 8;
6890 
6891  return ordinary(value, offset, Null());
6892  }
6893 
6894  /// Visible qty of order.
6895  bool displayQty(Int32& value) const
6896  {
6897  typedef NullInt32 Null;
6898 
6899  const BlockLength offset = 16;
6900 
6901  return ordinary(value, offset, Null());
6902  }
6903 
6904  /// Reference to corresponding Price and SecurityID, sequence
6905  /// of MD entry in the message.
6906  bool referenceId(UInt8& value) const
6907  {
6908  typedef NullUInt8 Null;
6909 
6910  const BlockLength offset = 20;
6911 
6912  return ordinary(value, offset, Null());
6913  }
6914 
6915  /// Order book update action to be applied to the order
6916  /// referenced by OrderID.
6918  {
6919  const BlockLength offset = 21;
6920 
6921  return enumeration<OrderUpdateAction>(offset);
6922  }
6923 
6924  /// Returns size of entry body in bytes
6925  /// for given version of message template.
6928  {
6929  return 22;
6930  }
6931 
6932  /// Entity class name.
6934  static const Char* className()
6935  {
6936  return "IncrementalRefreshBookLongQty64.OrderIDEntry";
6937  }
6938  };
6939 
6940  /// Repeating group containing OrderIDEntry entries.
6942 
6943  /// Initializes blank instance.
6945 
6946  /// Initializes instance over given memory block.
6948  : BinaryMessage(data, length, 12)
6949  {
6950  assert(TemplateId == templateId());
6951 
6952  if (length < blockLength(version()))
6953  throwBadBinaryData(className());
6954  }
6955 
6956  /// Start of event processing time in number of nanoseconds
6957  /// since Unix epoch.
6959  {
6960  const BlockLength offset = 0;
6961 
6962  return ordinary<Timestamp>(offset);
6963  }
6964 
6965  /// Bitmap field of eight Boolean type indicators reflecting
6966  /// the end of updates for a given Globex event.
6968  {
6969  const BlockLength offset = 8;
6970 
6971  return ordinary<MatchEventIndicator>(offset);
6972  }
6973 
6974  /// Returns instance of Entries repeating group.
6975  Entries entries() const
6976  {
6977  return groups().head<Entries>();
6978  }
6979 
6980  /// Returns instance of OrderIDEntries repeating group.
6981  OrderIDEntries orderIdEntries() const
6982  {
6983  return groups().tail<Entries>().head<OrderIDEntries>();
6984  }
6985 
6986  /// Size of message body in bytes.
6989  {
6990  return 9;
6991  }
6992 
6993  /// Returns class name.
6995  static const Char* className()
6996  {
6997  return "IncrementalRefreshBookLongQty64";
6998  }
6999 
7000  /// FIX message type.
7002  static StrRef fixType()
7003  {
7004  return toStrRef("X");
7005  }
7006 };
7007 
7008 /// MDIncrementalRefreshTradeSummaryLongQty.
7010 {
7011  /// Message template ID from SBE schema.
7012  enum
7013  {
7014  TemplateId = 65
7015  };
7016 
7017  /// Number of Trade Summary entries.
7018  /// Entry of Entry repeating group.
7019  struct ONIXS_CMEMDH_LTWT Entry : BinaryGroupEntry<GroupSize::BlockLength>
7020  {
7021  /// Aliases base class type.
7023 
7024  /// Initializes blank instance.
7025  Entry() {}
7026 
7027  /// Initializes instance of given
7028  /// version over given memory block.
7029  Entry(const void* data, EncodedLength length, SchemaVersion version)
7030  : Base(data, length, version)
7031  {
7032  if (length < blockLength(version))
7033  throwBadBinaryData(className());
7034  }
7035 
7036  /// Trade price.
7038  {
7039  const BlockLength offset = 0;
7040 
7041  return decimal<PRICE9>(offset);
7042  }
7043 
7044  /// Consolidated trade quantity, notional.
7046  {
7047  const BlockLength offset = 8;
7048 
7049  return ordinary<UInt64>(offset);
7050  }
7051 
7052  /// Security ID.
7054  {
7055  const BlockLength offset = 16;
7056 
7057  return ordinary<Int32>(offset);
7058  }
7059 
7060  /// MD Entry sequence number per instrument update. Reset
7061  /// weekly.
7062  UInt32 rptSeq() const
7063  {
7064  const BlockLength offset = 20;
7065 
7066  return ordinary<UInt32>(offset);
7067  }
7068 
7069  /// The total number of real orders per instrument that
7070  /// participated in a match step within a match event.
7072  {
7073  const BlockLength offset = 24;
7074 
7075  return ordinary<Int32>(offset);
7076  }
7077 
7078  /// Market Data Trade Entry ID.
7080  {
7081  const BlockLength offset = 28;
7082 
7083  return ordinary<UInt32>(offset);
7084  }
7085 
7086  /// Indicates which side is the aggressor or if there is no
7087  /// aggressor.
7089  {
7090  typedef NullUInt8 Null;
7091 
7092  const BlockLength offset = 32;
7093 
7094  return enumeration<AggressorSide>(value, offset, Null());
7095  }
7096 
7097  /// Market Data update action.
7099  {
7100  const BlockLength offset = 33;
7101 
7102  return enumeration<UpdateAction>(offset);
7103  }
7104 
7105  /// Market Data entry type.
7107  {
7108  return EntryTypeTrade();
7109  }
7110 
7111  /// Returns size of entry body in bytes
7112  /// for given version of message template.
7115  {
7116  return 34;
7117  }
7118 
7119  /// Entity class name.
7121  static const Char* className()
7122  {
7123  return "IncrementalRefreshTradeSummaryLongQty65.Entry";
7124  }
7125  };
7126 
7127  /// Repeating group containing Entry entries.
7129 
7130  /// Number of OrderID and LastQty entries in Trade Summary
7131  /// message.
7132  /// Entry of OrderIDEntry repeating group.
7133  struct ONIXS_CMEMDH_LTWT OrderIDEntry : BinaryGroupEntry<GroupSize8Byte::BlockLength>
7134  {
7135  /// Aliases base class type.
7137 
7138  /// Initializes blank instance.
7140 
7141  /// Initializes instance of given
7142  /// version over given memory block.
7143  OrderIDEntry(const void* data, EncodedLength length, SchemaVersion version)
7144  : Base(data, length, version)
7145  {
7146  if (length < blockLength(version))
7147  throwBadBinaryData(className());
7148  }
7149 
7150  /// Unique order identifier as assigned by the exchange.
7151  UInt64 orderId() const
7152  {
7153  const BlockLength offset = 0;
7154 
7155  return ordinary<UInt64>(offset);
7156  }
7157 
7158  /// Quantity bought or sold on this last fill.
7159  Int32 lastQty() const
7160  {
7161  const BlockLength offset = 8;
7162 
7163  return ordinary<Int32>(offset);
7164  }
7165 
7166  /// Returns size of entry body in bytes
7167  /// for given version of message template.
7170  {
7171  return 12;
7172  }
7173 
7174  /// Entity class name.
7176  static const Char* className()
7177  {
7178  return "IncrementalRefreshTradeSummaryLongQty65.OrderIDEntry";
7179  }
7180  };
7181 
7182  /// Repeating group containing OrderIDEntry entries.
7184 
7185  /// Initializes blank instance.
7187 
7188  /// Initializes instance over given memory block.
7190  : BinaryMessage(data, length, 12)
7191  {
7192  assert(TemplateId == templateId());
7193 
7194  if (length < blockLength(version()))
7195  throwBadBinaryData(className());
7196  }
7197 
7198  /// Start of event processing time in number of nanoseconds
7199  /// since Unix epoch.
7201  {
7202  const BlockLength offset = 0;
7203 
7204  return ordinary<Timestamp>(offset);
7205  }
7206 
7207  /// Bitmap field of eight Boolean type indicators reflecting
7208  /// the end of updates for a given Globex event.
7210  {
7211  const BlockLength offset = 8;
7212 
7213  return ordinary<MatchEventIndicator>(offset);
7214  }
7215 
7216  /// Returns instance of Entries repeating group.
7217  Entries entries() const
7218  {
7219  return groups().head<Entries>();
7220  }
7221 
7222  /// Returns instance of OrderIDEntries repeating group.
7223  OrderIDEntries orderIdEntries() const
7224  {
7225  return groups().tail<Entries>().head<OrderIDEntries>();
7226  }
7227 
7228  /// Size of message body in bytes.
7231  {
7232  return 9;
7233  }
7234 
7235  /// Returns class name.
7237  static const Char* className()
7238  {
7239  return "IncrementalRefreshTradeSummaryLongQty65";
7240  }
7241 
7242  /// FIX message type.
7244  static StrRef fixType()
7245  {
7246  return toStrRef("X");
7247  }
7248 };
7249 
7250 /// MDIncrementalRefreshVolumeLongQty.
7252 {
7253  /// Message template ID from SBE schema.
7254  enum
7255  {
7256  TemplateId = 66
7257  };
7258 
7259  /// Number of entries in Market Data message.
7260  /// Entry of Entry repeating group.
7261  struct ONIXS_CMEMDH_LTWT Entry : BinaryGroupEntry<GroupSize::BlockLength>
7262  {
7263  /// Aliases base class type.
7265 
7266  /// Initializes blank instance.
7267  Entry() {}
7268 
7269  /// Initializes instance of given
7270  /// version over given memory block.
7271  Entry(const void* data, EncodedLength length, SchemaVersion version)
7272  : Base(data, length, version)
7273  {
7274  if (length < blockLength(version))
7275  throwBadBinaryData(className());
7276  }
7277 
7278  /// Cumulative traded volume, notional.
7280  {
7281  const BlockLength offset = 0;
7282 
7283  return ordinary<UInt64>(offset);
7284  }
7285 
7286  /// Security ID.
7288  {
7289  const BlockLength offset = 8;
7290 
7291  return ordinary<Int32>(offset);
7292  }
7293 
7294  /// Market Data entry sequence number per instrument update.
7295  UInt32 rptSeq() const
7296  {
7297  const BlockLength offset = 12;
7298 
7299  return ordinary<UInt32>(offset);
7300  }
7301 
7302  /// Market Data update action.
7304  {
7305  const BlockLength offset = 16;
7306 
7307  return enumeration<UpdateAction>(offset);
7308  }
7309 
7310  /// Electronic Volume entry provides cumulative session trade
7311  /// volume updated with the event.
7313  {
7314  return EntryTypeVol();
7315  }
7316 
7317  /// Returns size of entry body in bytes
7318  /// for given version of message template.
7321  {
7322  return 17;
7323  }
7324 
7325  /// Entity class name.
7327  static const Char* className()
7328  {
7329  return "IncrementalRefreshVolumeLongQty66.Entry";
7330  }
7331  };
7332 
7333  /// Repeating group containing Entry entries.
7335 
7336  /// Initializes blank instance.
7338 
7339  /// Initializes instance over given memory block.
7341  : BinaryMessage(data, length, 12)
7342  {
7343  assert(TemplateId == templateId());
7344 
7345  if (length < blockLength(version()))
7346  throwBadBinaryData(className());
7347  }
7348 
7349  /// Start of event processing time in number of nanoseconds
7350  /// since Unix epoch.
7352  {
7353  const BlockLength offset = 0;
7354 
7355  return ordinary<Timestamp>(offset);
7356  }
7357 
7358  /// Bitmap field of eight Boolean type indicators reflecting
7359  /// the end of updates for a given Globex event.
7361  {
7362  const BlockLength offset = 8;
7363 
7364  return ordinary<MatchEventIndicator>(offset);
7365  }
7366 
7367  /// Returns instance of Entries repeating group.
7368  Entries entries() const
7369  {
7370  return groups().head<Entries>();
7371  }
7372 
7373  /// Size of message body in bytes.
7376  {
7377  return 9;
7378  }
7379 
7380  /// Returns class name.
7382  static const Char* className()
7383  {
7384  return "IncrementalRefreshVolumeLongQty66";
7385  }
7386 
7387  /// FIX message type.
7389  static StrRef fixType()
7390  {
7391  return toStrRef("X");
7392  }
7393 };
7394 
7395 /// MDIncrementalRefreshSessionStatisticsLongQty.
7397 {
7398  /// Message template ID from SBE schema.
7399  enum
7400  {
7401  TemplateId = 67
7402  };
7403 
7404  /// Number of entries in Market Data message.
7405  /// Entry of Entry repeating group.
7406  struct ONIXS_CMEMDH_LTWT Entry : BinaryGroupEntry<GroupSize::BlockLength>
7407  {
7408  /// Aliases base class type.
7410 
7411  /// Initializes blank instance.
7412  Entry() {}
7413 
7414  /// Initializes instance of given
7415  /// version over given memory block.
7416  Entry(const void* data, EncodedLength length, SchemaVersion version)
7417  : Base(data, length, version)
7418  {
7419  if (length < blockLength(version))
7420  throwBadBinaryData(className());
7421  }
7422 
7423  /// Market Data entry price.
7425  {
7426  const BlockLength offset = 0;
7427 
7428  return decimal<PRICE9>(offset);
7429  }
7430 
7431  /// Indicative Opening Quantity.
7432  bool entrySize(UInt64& value) const
7433  {
7434  typedef NullUInt64 Null;
7435 
7436  const BlockLength offset = 8;
7437 
7438  return ordinary(value, offset, Null());
7439  }
7440 
7441  /// Security ID.
7443  {
7444  const BlockLength offset = 16;
7445 
7446  return ordinary<Int32>(offset);
7447  }
7448 
7449  /// MD Entry sequence number per instrument update.
7450  UInt32 rptSeq() const
7451  {
7452  const BlockLength offset = 20;
7453 
7454  return ordinary<UInt32>(offset);
7455  }
7456 
7457  /// Flag that additionally describes market data entry type.
7459  {
7460  typedef NullUInt8 Null;
7461 
7462  const BlockLength offset = 24;
7463 
7464  return enumeration<OpenCloseSettlFlag>(value, offset, Null());
7465  }
7466 
7467  /// Market Data update action.
7469  {
7470  const BlockLength offset = 25;
7471 
7472  return enumeration<UpdateAction>(offset);
7473  }
7474 
7475  /// Market Data entry type.
7477  {
7478  const BlockLength offset = 26;
7479 
7480  return enumeration<EntryTypeStatistics>(offset);
7481  }
7482 
7483  /// Returns size of entry body in bytes
7484  /// for given version of message template.
7487  {
7488  return 27;
7489  }
7490 
7491  /// Entity class name.
7493  static const Char* className()
7494  {
7495  return "IncrementalRefreshSessionStatisticsLongQty67.Entry";
7496  }
7497  };
7498 
7499  /// Repeating group containing Entry entries.
7501 
7502  /// Initializes blank instance.
7504 
7505  /// Initializes instance over given memory block.
7507  : BinaryMessage(data, length, 12)
7508  {
7509  assert(TemplateId == templateId());
7510 
7511  if (length < blockLength(version()))
7512  throwBadBinaryData(className());
7513  }
7514 
7515  /// Start of event processing time in number of nanoseconds
7516  /// since Unix epoch.
7518  {
7519  const BlockLength offset = 0;
7520 
7521  return ordinary<Timestamp>(offset);
7522  }
7523 
7524  /// Bitmap field of eight Boolean type indicators reflecting
7525  /// the end of updates for a given Globex event.
7527  {
7528  const BlockLength offset = 8;
7529 
7530  return ordinary<MatchEventIndicator>(offset);
7531  }
7532 
7533  /// Returns instance of Entries repeating group.
7534  Entries entries() const
7535  {
7536  return groups().head<Entries>();
7537  }
7538 
7539  /// Size of message body in bytes.
7542  {
7543  return 9;
7544  }
7545 
7546  /// Returns class name.
7548  static const Char* className()
7549  {
7550  return "IncrementalRefreshSessionStatisticsLongQty67";
7551  }
7552 
7553  /// FIX message type.
7555  static StrRef fixType()
7556  {
7557  return toStrRef("X");
7558  }
7559 };
7560 
7561 /// SnapshotFullRefreshLongQty.
7563 {
7564  /// Message template ID from SBE schema.
7565  enum
7566  {
7567  TemplateId = 69
7568  };
7569 
7570  /// Number of entries in Market Data message.
7571  /// Entry of Entry repeating group.
7572  struct ONIXS_CMEMDH_LTWT Entry : BinaryGroupEntry<GroupSize::BlockLength>
7573  {
7574  /// Aliases base class type.
7576 
7577  /// Initializes blank instance.
7578  Entry() {}
7579 
7580  /// Initializes instance of given
7581  /// version over given memory block.
7582  Entry(const void* data, EncodedLength length, SchemaVersion version)
7583  : Base(data, length, version)
7584  {
7585  if (length < blockLength(version))
7586  throwBadBinaryData(className());
7587  }
7588 
7589  /// Market Data entry price.
7590  bool entryPx(Decimal& value) const
7591  {
7592  typedef NullPRICE9 Null;
7593 
7594  const BlockLength offset = 0;
7595 
7596  return decimal(value, offset, Null());
7597  }
7598 
7599  /// Market Data entry size.
7600  bool entrySize(UInt64& value) const
7601  {
7602  typedef NullUInt64 Null;
7603 
7604  const BlockLength offset = 8;
7605 
7606  return ordinary(value, offset, Null());
7607  }
7608 
7609  /// In Book Entry - Aggregate number of orders at given price
7610  /// level. In Trade Entry - a total number of real orders per
7611  /// instrument that participated in a match step within a
7612  /// match event.
7614  {
7615  typedef NullInt32 Null;
7616 
7617  const BlockLength offset = 16;
7618 
7619  return ordinary(value, offset, Null());
7620  }
7621 
7622  /// Aggregate book level.
7623  bool priceLevel(UInt8& value) const
7624  {
7625  typedef NullUInt8 Null;
7626 
7627  const BlockLength offset = 20;
7628 
7629  return ordinary(value, offset, Null());
7630  }
7631 
7632  /// Flag that additionally describes a market data entry.
7634  {
7635  typedef NullUInt8 Null;
7636 
7637  const BlockLength offset = 21;
7638 
7639  return enumeration<OpenCloseSettlFlag>(value, offset, Null());
7640  }
7641 
7642  /// Market Data entry type.
7644  {
7645  const BlockLength offset = 22;
7646 
7647  return enumeration<EntryType>(offset);
7648  }
7649 
7650  /// Returns size of entry body in bytes
7651  /// for given version of message template.
7654  {
7655  return 23;
7656  }
7657 
7658  /// Entity class name.
7660  static const Char* className()
7661  {
7662  return "SnapshotFullRefreshLongQty69.Entry";
7663  }
7664  };
7665 
7666  /// Repeating group containing Entry entries.
7668 
7669  /// Initializes blank instance.
7671 
7672  /// Initializes instance over given memory block.
7674  : BinaryMessage(data, length, 12)
7675  {
7676  assert(TemplateId == templateId());
7677 
7678  if (length < blockLength(version()))
7679  throwBadBinaryData(className());
7680  }
7681 
7682  /// Sequence number of the last Incremental feed packet
7683  /// processed. This value is used to synchronize the snapshot
7684  /// loop with the real-time feed.
7686  {
7687  const BlockLength offset = 0;
7688 
7689  return ordinary<UInt32>(offset);
7690  }
7691 
7692  /// Total number of instruments in the Replay loop. Used on
7693  /// Replay Feed only.
7695  {
7696  const BlockLength offset = 4;
7697 
7698  return ordinary<UInt32>(offset);
7699  }
7700 
7701  /// Unique instrument ID.
7703  {
7704  const BlockLength offset = 8;
7705 
7706  return ordinary<Int32>(offset);
7707  }
7708 
7709  /// MD Entry sequence number per instrument update. Reset
7710  /// weekly.
7711  UInt32 rptSeq() const
7712  {
7713  const BlockLength offset = 12;
7714 
7715  return ordinary<UInt32>(offset);
7716  }
7717 
7718  /// Timestamp of the last event security participated in, sent
7719  /// as number of nanoseconds since Unix epoch.
7721  {
7722  const BlockLength offset = 16;
7723 
7724  return ordinary<Timestamp>(offset);
7725  }
7726 
7727  /// UTC Date and time of last Security Definition add, update
7728  /// or delete on a given Market Data channel.
7730  {
7731  const BlockLength offset = 24;
7732 
7733  return ordinary<Timestamp>(offset);
7734  }
7735 
7736  /// Trade session date sent as number of days since Unix epoch.
7738  {
7739  typedef NullLocalMktDate Null;
7740  typedef LocalMktDate FieldValue;
7741 
7742  const BlockLength offset = 32;
7743 
7744  FieldValue fieldValue;
7745 
7746  if (ordinary(fieldValue, offset, Null()))
7747  {
7748  value = localMktDateToTimestamp(fieldValue);
7749  return true;
7750  }
7751  return false;
7752  }
7753 
7754  /// Identifies the current trading state of the instrument.
7756  {
7757  typedef NullUInt8 Null;
7758 
7759  const BlockLength offset = 34;
7760 
7761  return enumeration<SecurityTradingStatus>(value, offset, Null());
7762  }
7763 
7764  /// Upper price threshold for the instrument. Orders submitted
7765  /// with prices above the upper limit will be rejected.
7767  {
7768  typedef NullPRICE9 Null;
7769 
7770  const BlockLength offset = 35;
7771 
7772  return decimal(value, offset, Null());
7773  }
7774 
7775  /// Lower price threshold for the instrument. Orders submitted
7776  /// with prices below the lower limit will be rejected.
7778  {
7779  typedef NullPRICE9 Null;
7780 
7781  const BlockLength offset = 43;
7782 
7783  return decimal(value, offset, Null());
7784  }
7785 
7786  /// Differential value for price banding.
7788  {
7789  typedef NullPRICE9 Null;
7790 
7791  const BlockLength offset = 51;
7792 
7793  return decimal(value, offset, Null());
7794  }
7795 
7796  /// Returns instance of Entries repeating group.
7797  Entries entries() const
7798  {
7799  return groups().head<Entries>();
7800  }
7801 
7802  /// Size of message body in bytes.
7805  {
7806  return 59;
7807  }
7808 
7809  /// Returns class name.
7811  static const Char* className()
7812  {
7813  return "SnapshotFullRefreshLongQty69";
7814  }
7815 
7816  /// FIX message type.
7818  static StrRef fixType()
7819  {
7820  return toStrRef("W");
7821  }
7822 };
7823 
7824 
static BlockLength blockLength(SchemaVersion)
Returns size of entry body in bytes for given version of message template.
Definition: Messages.h:918
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:3663
Decimal displayFactor() const
Contains the multiplier to convert the CME Globex display price to the conventional price...
Definition: Messages.h:5031
StrRef rateSource() const
Fixing Rate Source.
Definition: Messages.h:6553
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:156
StrRef currency() const
Identifies currency used for price.
Definition: Messages.h:4938
UpdateActionNew updateAction() const
Market Data entry update action.
Definition: Messages.h:3560
Timestamp lastUpdateTime() const
UTC Date and time of last Security Definition add, update or delete on a given Market Data channel...
Definition: Messages.h:7729
Entry(const void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:7029
RelatedSymEntry()
Initializes blank instance.
Definition: Messages.h:4262
MDIncrementalRefreshSessionStatistics.
Definition: Messages.h:3650
static const Char * className()
Entity class name.
Definition: Messages.h:6020
bool decayQuantity(Int32 &value) const
Indicates the quantity that a contract will decay daily by once the decay start date is reached...
Definition: Messages.h:1882
BinaryGroup< Entry, GroupSize, MessageSize > Entries
Repeating group containing Entry entries.
Definition: Messages.h:3899
Timestamp transactTime() const
Start of event processing time in number of nanoseconds since Unix epoch.
Definition: Messages.h:7351
static const Char * className()
Returns class name.
Definition: Messages.h:3947
static const Char * className()
Returns class name.
Definition: Messages.h:5662
static const Char * className()
Entity class name.
Definition: Messages.h:7121
StrRef underlyingSymbol() const
Underlying Instrument Symbol (Contract Name).
Definition: Messages.h:4673
OrderIDEntries orderIdEntries() const
Returns instance of OrderIDEntries repeating group.
Definition: Messages.h:6981
static const Char * className()
Returns class name.
Definition: Messages.h:3636
Timestamp transactTime() const
Start of event processing time in number of nanoseconds since Unix epoch.
Definition: Messages.h:7517
OrderIDEntry(const void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:6869
bool tickRule(Int8 &value) const
VTT code referencing variable tick table.
Definition: Messages.h:5039
Entry(const void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:3836
static BlockLength blockLength(SchemaVersion)
Returns size of entry body in bytes for given version of message template.
Definition: Messages.h:3740
BinaryGroup< InstAttribEntry, GroupSize, MessageSize > InstAttrib
Repeating group containing InstAttribEntry entries.
Definition: Messages.h:1464
MDIncrementalRefreshBookLongQty.
Definition: Messages.h:6740
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:6034
static const Char * className()
Returns class name.
Definition: Messages.h:3284
Int8 lotType() const
This tag is required to interpret the value in tag 1231-MinLotSize.
Definition: Messages.h:4599
bool totNumReports(UInt32 &value) const
Total number of instruments in the Replay loop.
Definition: Messages.h:1550
static BlockLength blockLength(SchemaVersion)
Size of message body in bytes.
Definition: Messages.h:2994
SecurityAltIDSourceISIN securityAltIdSource() const
Identifies class or source of the SecurityAltID (455) value.
Definition: Messages.h:6181
QuoteRequest39()
Initializes blank instance.
Definition: Messages.h:4338
Timestamp lastUpdateTime() const
Timestamp of when the instrument was last added, modified or deleted.
Definition: Messages.h:6253
UInt32 minTradeVol() const
The minimum trading volume for a security.
Definition: Messages.h:2583
static BlockLength blockLength(SchemaVersion)
Returns size of entry body in bytes for given version of message template.
Definition: Messages.h:6927
UInt32 minTradeVol() const
The minimum trading volume for a security.
Definition: Messages.h:4994
AdminHeartbeat410(const void *data, EncodedLength length)
Initializes instance over given memory block.
Definition: Messages.h:1262
bool minLotSize(Decimal &value) const
Minimum quantity accepted for order entry.
Definition: Messages.h:237
static const Char * className()
Returns class name.
Definition: Messages.h:5249
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:880
static BlockLength blockLength(SchemaVersion)
Size of message body in bytes.
Definition: Messages.h:7804
UInt16 LocalMktDate
LocalMktDate type.
Definition: Fields.h:68
RelatedSymEntry(const void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:4266
BinaryGroup< Entry, GroupSize, MessageSize > Entries
Repeating group containing Entry entries.
Definition: Messages.h:7128
EntryTypeBook::Enum entryType() const
Market Data entry type.
Definition: Messages.h:3106
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:3028
bool referenceId(UInt8 &value) const
Reference to corresponding Price and Security ID, sequence of MD entry in the message.
Definition: Messages.h:3195
bool flowScheduleType(Int8 &value) const
The schedule according to which the electricity is delivered in a physical contract, or priced in a financial contract.
Definition: Messages.h:1949
Entries entries() const
Returns instance of Entries repeating group.
Definition: Messages.h:3788
Number of entries in Market Data message.
Definition: Messages.h:6750
static const Char * className()
Returns class name.
Definition: Messages.h:5844
static const Char * className()
Entity class name.
Definition: Messages.h:2166
FeedTypesEntry(const void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:2131
static BlockLength blockLength(SchemaVersion version)
Size of message body in bytes.
Definition: Messages.h:843
Events events() const
Returns instance of Events repeating group.
Definition: Messages.h:5202
Entry(const void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:7416
AdminLogin15()
Initializes blank instance.
Definition: Messages.h:1047
Int32 Int32
int32.
Definition: Fields.h:60
BlockLength blockLength() const
Length of the message body ( block of fixed-length fields).
StrRef feedType() const
Describes a class of service for a given data feed.
Definition: Messages.h:2140
static const Char * className()
Entity class name.
Definition: Messages.h:5967
bool aggressorSide(AggressorSide::Enum &value) const
Indicates which side is the aggressor or if there is no aggressor.
Definition: Messages.h:5333
bool securityTradingStatus(SecurityTradingStatus::Enum &value) const
Identifies the current trading state of the instrument.
Definition: Messages.h:4178
SnapshotFullRefreshLongQty.
Definition: Messages.h:7562
EntryType::Enum entryType() const
Market Data entry type.
Definition: Messages.h:7643
MatchEventIndicator matchEventIndicator() const
Bitmap field of eight Boolean type indicators reflecting the end of updates for a given Globex event...
Definition: Messages.h:3256
bool highLimitPrice(Decimal &value) const
Upper price threshold for the instrument.
Definition: Messages.h:3512
static BlockLength blockLength(SchemaVersion)
Size of message body in bytes.
Definition: Messages.h:6988
bool instrumentGUId(UInt64 &value) const
External unique instrument ID.
Definition: Messages.h:5191
static const Char * className()
Returns class name.
Definition: Messages.h:4392
BinaryGroup< Entry, GroupSize, MessageSize > Entries
Repeating group containing Entry entries.
Definition: Messages.h:3754
AdminLogout409(const void *data, EncodedLength length)
Initializes instance over given memory block.
Definition: Messages.h:1208
bool priceDisplayFormat(UInt8 &value) const
Number of Decimals in Displayed Price.
Definition: Messages.h:504
EventsEntry(const void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:4426
UInt32 maxTradeVol() const
The maximum trading volume for a security.
Definition: Messages.h:2591
IncrementalRefreshTradeSummaryLongQty65(const void *data, EncodedLength length)
Initializes instance over given memory block.
Definition: Messages.h:7189
static BlockLength blockLength(SchemaVersion)
Size of message body in bytes.
Definition: Messages.h:1175
static const Char * className()
Returns class name.
Definition: Messages.h:4232
InstAttribValue type.
Definition: Fields.h:739
Int8 lotType() const
This tag is required to interpret the value in tag 1231-MinLotSize.
Definition: Messages.h:225
BinaryGroup< Entry, GroupSize, MessageSize > Entries
Repeating group containing Entry entries.
Definition: Messages.h:6855
bool tradingReferencePrice(Decimal &value) const
Reference price - the most recently available Settlement whether it be Theoretical, Preliminary or a Final Settle of the session.
Definition: Messages.h:2660
StrRef securityGroup() const
Security Group Code.
Definition: Messages.h:362
static BlockLength blockLength(SchemaVersion)
Returns size of entry body in bytes for given version of message template.
Definition: Messages.h:3216
bool securityTradingStatus(SecurityTradingStatus::Enum &value) const
Identifies the current state of the instrument.
Definition: Messages.h:1581
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:4705
SettlPriceType settlPriceType() const
Bitmap field of eight Boolean type indicators representing settlement price type. ...
Definition: Messages.h:4059
BinaryGroup< OrderIDEntry, GroupSize8Byte, MessageSize > OrderIDEntries
Repeating group containing OrderIDEntry entries.
Definition: Messages.h:3230
BinaryGroup< FeedTypesEntry, GroupSize, MessageSize > FeedTypes
Repeating group containing FeedTypesEntry entries.
Definition: Messages.h:2173
OrderUpdateAction::Enum orderUpdateAction() const
Order book update action to be applied to the order referenced by OrderID.
Definition: Messages.h:6917
SnapshotFullRefreshOrderBook.
Definition: Messages.h:5676
UInt64 orderId() const
Unique order identifier as assigned by the exchange.
Definition: Messages.h:5405
BinaryGroup< FeedTypesEntry, GroupSize, MessageSize > FeedTypes
Repeating group containing FeedTypesEntry entries.
Definition: Messages.h:5974
bool tradingReferencePrice(Decimal &value) const
Trading Reference Price.
Definition: Messages.h:536
CHAR matchAlgorithm() const
Matching algorithm.
Definition: Messages.h:4986
BinaryGroupEntry< GroupSize8Byte::BlockLength > Base
Aliases base class type.
Definition: Messages.h:6862
static const Char * className()
Returns class name.
Definition: Messages.h:1024
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:2293
MDIncrementalRefreshBook.
Definition: Messages.h:3015
static BlockLength blockLength(SchemaVersion)
Returns size of entry body in bytes for given version of message template.
Definition: Messages.h:2103
bool subFraction(UInt8 &value) const
Price Denominator of Sub Fraction.
Definition: Messages.h:5059
static BlockLength blockLength(SchemaVersion)
Size of message body in bytes.
Definition: Messages.h:4385
UpdateAction::Enum updateAction() const
Market Data update action.
Definition: Messages.h:3712
FeedTypes feedTypes() const
Returns instance of FeedTypes repeating group.
Definition: Messages.h:824
bool tickRule(Int8 &value) const
Tick Rule.
Definition: Messages.h:2639
Decimal displayFactor() const
Contains the multiplier to convert the CME Globex display price to the conventional price...
Definition: Messages.h:6427
UpdateAction::Enum updateAction() const
Market Data update action.
Definition: Messages.h:7098
Number of entries in Market Data message.
Definition: Messages.h:3826
StrRef settlementLocale() const
Settlement Locale.
Definition: Messages.h:6620
BinaryGroup< EventsEntry, GroupSize, MessageSize > Events
Repeating group containing EventsEntry entries.
Definition: Messages.h:1355
bool highLimitPrice(Decimal &value) const
Allowable high limit price for the trading day.
Definition: Messages.h:2701
StrRef securityType() const
Security Type.
Definition: Messages.h:2520
IncrementalRefreshBookLongQty64()
Initializes blank instance.
Definition: Messages.h:6944
StrRef symbol() const
Instrument Name or Symbol. Previously used as Group Code.
Definition: Messages.h:2496
StrRef cfiCode() const
ISO standard instrument categorization code.
Definition: Messages.h:412
static BlockLength blockLength(SchemaVersion)
Size of message body in bytes.
Definition: Messages.h:5484
StrRef symbol() const
Instrument Name or Symbol.
Definition: Messages.h:4878
static BlockLength blockLength(SchemaVersion)
Size of message body in bytes.
Definition: Messages.h:1017
UpdateTypeNew updateAction() const
Market Data update action.
Definition: Messages.h:895
StrRef marketSet() const
Market Set defines the bilateral relationship and Self Match Prevention configuration for eligible ma...
Definition: Messages.h:2792
static BlockLength blockLength(SchemaVersion version)
Returns size of entry body in bytes for given version of message template.
Definition: Messages.h:6189
static const Char * className()
Returns class name.
Definition: Messages.h:7237
EventsEntry(const void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:1314
BinaryGroup< EventsEntry, GroupSize, MessageSize > Events
Repeating group containing EventsEntry entries.
Definition: Messages.h:4467
InstAttribValue instAttribValue() const
Bitmap field of 32 Boolean type Instrument eligibility flags.
Definition: Messages.h:4552
EntryTypeStatistics::Enum entryType() const
Market Data entry type.
Definition: Messages.h:7476
static BlockLength blockLength(SchemaVersion)
Returns size of entry body in bytes for given version of message template.
Definition: Messages.h:7169
Entry(const void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:5525
BinaryGroup< Entry, GroupSize, MessageSize > Entries
Repeating group containing Entry entries.
Definition: Messages.h:5383
static StrRef fixType()
FIX message type.
Definition: Messages.h:3809
SecurityStatus30(const void *data, EncodedLength length)
Initializes instance over given memory block.
Definition: Messages.h:2890
UserDefinedInstrument userDefinedInstrument() const
User-defined instruments flag.
Definition: Messages.h:2567
static StrRef fixType()
FIX message type.
Definition: Messages.h:6733
AdminLogin15(const void *data, EncodedLength length)
Initializes instance over given memory block.
Definition: Messages.h:1050
StrRef currency() const
Identifies currency used for price.
Definition: Messages.h:1695
UInt32 lastMsgSeqNumProcessed() const
Sequence number of the last Incremental feed packet processed.
Definition: Messages.h:5780
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:4259
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:1418
StrRef marketSet() const
Market Set defines the bilateral relationship and Self Match Prevention configuration for eligible ma...
Definition: Messages.h:799
InstAttribValue instAttribValue() const
Bitmap field of 32 Boolean type instrument eligibility flags.
Definition: Messages.h:6003
UInt8 underlyingProduct() const
Indicates the product complex.
Definition: Messages.h:4842
static BlockLength blockLength(SchemaVersion)
Returns size of entry body in bytes for given version of message template.
Definition: Messages.h:1397
static const Char * className()
Entity class name.
Definition: Messages.h:195
BinaryGroup< InstAttribEntry, GroupSize, MessageSize > InstAttrib
Repeating group containing InstAttribEntry entries.
Definition: Messages.h:2226
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:4474
bool entrySize(Int32 &value) const
Indicative Opening Quantity.
Definition: Messages.h:3728
MDInstrumentDefinitionFX.
Definition: Messages.h:5858
StrRef securityType() const
Security Type.
Definition: Messages.h:4901
Number of entries in Market Data message.
Definition: Messages.h:3025
UInt32 UInt32
uInt32.
Definition: Fields.h:202
UInt8 underlyingProduct() const
Product complex.
Definition: Messages.h:6290
static const Char * className()
Entity class name.
Definition: Messages.h:4084
StrRef securityGroup() const
Security Group Code.
Definition: Messages.h:2478
bool maturityMonthYear(MaturityMonthYear &value) const
This field provides the actual calendar date for contract maturity.
Definition: Messages.h:4928
static const Char * className()
Returns class name.
Definition: Messages.h:980
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:1307
UInt8 priceLevel() const
Aggregate book level.
Definition: Messages.h:3090
AdminHeartbeat12(const void *data, EncodedLength length)
Initializes instance over given memory block.
Definition: Messages.h:1006
InstAttribEntry(const void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:2187
static BlockLength blockLength(SchemaVersion)
Returns size of entry body in bytes for given version of message template.
Definition: Messages.h:1341
MatchEventIndicator matchEventIndicator() const
Bitmap field of eight Boolean type indicators reflecting the end of updates for a given Globex event...
Definition: Messages.h:5640
MatchEventIndicator matchEventIndicator() const
Bitmap field of eight Boolean type indicators reflecting the end of updates for a given Globex event...
Definition: Messages.h:3448
static const Char * className()
Returns class name.
Definition: Messages.h:2042
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:2180
BinaryGroup< Entry, GroupSize, MessageSize > Entries
Repeating group containing Entry entries.
Definition: Messages.h:932
StrRef asset() const
The underlying asset code also known as Product Code.
Definition: Messages.h:4868
StrRef securityExchange() const
Exchange used to identify a security.
Definition: Messages.h:4850
SecurityIDSource securityIdSource() const
Identifies class or source of tag 48-SecurityID value.
Definition: Messages.h:6342
Number of repeating InstrAttribType entries.
Definition: Messages.h:153
MatchEventIndicator type.
Definition: Fields.h:930
Entries entries() const
Returns instance of Entries repeating group.
Definition: Messages.h:7217
Null values definition for optional PRICE9 field.
Definition: Composites.h:195
Entry(const void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:3318
SnapshotFullRefresh52(const void *data, EncodedLength length)
Initializes instance over given memory block.
Definition: Messages.h:4097
bool instrumentGUId(UInt64 &value) const
External unique instrument ID.
Definition: Messages.h:2802
static BlockLength blockLength(SchemaVersion)
Size of message body in bytes.
Definition: Messages.h:7230
bool decayStartDate(Timestamp &value) const
Indicates the date at which a decaying contract will begin to decay.
Definition: Messages.h:1893
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:7409
bool instrumentGUId(UInt64 &value) const
External unique instrument ID.
Definition: Messages.h:1996
IncrementalRefreshSessionStatistics51(const void *data, EncodedLength length)
Initializes instance over given memory block.
Definition: Messages.h:3760
InstAttrib instAttrib() const
Returns instance of InstAttrib repeating group.
Definition: Messages.h:6691
Entry(const void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:7271
InstrumentDefinitionFX63()
Initializes blank instance.
Definition: Messages.h:6209
bool minLotSize(Decimal &value) const
Minimum quantity accepted for order entry.
Definition: Messages.h:2260
Null values definition for optional Decimal9 field.
Definition: Composites.h:34
Decimal maxPriceDiscretionOffset() const
Max allowed discretionary offset from Limit order price.
Definition: Messages.h:6591
Decimal decimal(Lengthoffset) const
Returns value of a field by its offset converted into a decimal.
OrderIDEntries orderIdEntries() const
Returns instance of OrderIDEntries repeating group.
Definition: Messages.h:3270
EntryTypeTrade entryType() const
Market Data entry type.
Definition: Messages.h:7106
Represents time point without time-zone information.
Definition: Time.h:387
Entries entries() const
Returns instance of Entries repeating group.
Definition: Messages.h:3264
static const Char * className()
Returns class name.
Definition: Messages.h:1280
static StrRef fixType()
FIX message type.
Definition: Messages.h:7002
StrRef feedType() const
Describes a class of service for a given data feed.
Definition: Messages.h:116
bool datedDate(Timestamp &value) const
Dated Date.
Definition: Messages.h:624
UInt8 underlyingProduct() const
Indicates the product complex.
Definition: Messages.h:345
static BlockLength blockLength(SchemaVersion)
Returns size of entry body in bytes for given version of message template.
Definition: Messages.h:4509
static const Char * className()
Entity class name.
Definition: Messages.h:7660
Int16 applId() const
MD channel ID as defined in the XML Configuration file.
Definition: Messages.h:328
static const Char * className()
Entity class name.
Definition: Messages.h:2219
static const Char * className()
Entity class name.
Definition: Messages.h:142
Value ordinary(Lengthoffset) const
Returns value of a field by its offset.
Definition: BinaryMessage.h:53
IntegralConstant< Char, 'e'> EntryTypeVol
MDEntryTypeVol.
Definition: Fields.h:85
static StrRef fixType()
FIX message type.
Definition: Messages.h:1189
MDIncrementalRefreshVolumeLongQty.
Definition: Messages.h:7251
UInt32 chunks() const
Total number of packets that constitutes a single instrument order book.
Definition: Messages.h:5805
SnapshotFullRefresh52()
Initializes blank instance.
Definition: Messages.h:4094
EntryTypeBook::Enum entryType() const
Market Data entry type.
Definition: Messages.h:5738
Int16 applId() const
The channel ID as defined in the XML Configuration file.
Definition: Messages.h:2442
EventsEntry(const void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:52
Number of OrderID and LastQty entries in Trade Summary message.
Definition: Messages.h:7133
StrRef unitOfMeasure() const
Unit of measure for the products&#39; original contract size.
Definition: Messages.h:5081
StrRef fxBenchmarkRateFix() const
Fixing Rate Description.
Definition: Messages.h:6544
SecurityUpdateAction::Enum securityUpdateAction() const
Last Security update action on Incremental feed, &#39;D&#39; or &#39;M&#39; is used when a mid-week deletion or modif...
Definition: Messages.h:4797
static const Char * className()
Entity class name.
Definition: Messages.h:3892
bool totNumReports(UInt32 &value) const
Total number of instruments in the Replay loop.
Definition: Messages.h:6232
static BlockLength blockLength(SchemaVersion)
Returns size of entry body in bytes for given version of message template.
Definition: Messages.h:2212
Timestamp transactTime() const
Timestamp of the last event security participated in, sent as number of nanoseconds since Unix epoch...
Definition: Messages.h:5822
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:7264
static const Char * className()
Entity class name.
Definition: Messages.h:4516
Number of entries in Market Data message.
Definition: Messages.h:7572
StrRef settlCurrency() const
Identifies currency used for settlement, if different from trading currency.
Definition: Messages.h:1705
IntegralConstant< Int8, 24 > InstAttribType
Eligibility.
Definition: Fields.h:54
static BlockLength blockLength(SchemaVersion)
Size of message body in bytes.
Definition: Messages.h:3463
static BlockLength blockLength(SchemaVersion)
Size of message body in bytes.
Definition: Messages.h:1123
UInt32 minTradeVol() const
The minimum trading volume for a security.
Definition: Messages.h:1722
SnapshotFullRefreshOrderBook53(const void *data, EncodedLength length)
Initializes instance over given memory block.
Definition: Messages.h:5768
Int16 applId() const
The channel ID as defined in the XML Configuration file.
Definition: Messages.h:1591
StrRef asset() const
Product Code within Security Group specified.
Definition: Messages.h:2918
OrderIDEntries orderIdEntries() const
Returns instance of OrderIDEntries repeating group.
Definition: Messages.h:7223
Int8 lotType() const
This tag is required to interpret the value in tag 1231-MinLotSize.
Definition: Messages.h:6050
bool unitOfMeasureQty(Decimal &value) const
This field contains the contract size for each instrument.
Definition: Messages.h:526
MessageSize BlockLength
Length of message body representing a block of fixed-length fields.
LotTypeRules lotTypeRules() const
Returns instance of LotTypeRules repeating group.
Definition: Messages.h:2025
static StrRef fixType()
FIX message type.
Definition: Messages.h:4399
BinaryGroup< Entry, GroupSize, MessageSize > Entries
Repeating group containing Entry entries.
Definition: Messages.h:3144
StrRef securityExchange() const
Exchange used to identify a security.
Definition: Messages.h:353
bool entrySize(UInt64 &value) const
Indicative Opening Quantity.
Definition: Messages.h:7432
static BlockLength blockLength(SchemaVersion)
Size of message body in bytes.
Definition: Messages.h:7375
bool openCloseSettlFlag(OpenCloseSettlFlag::Enum &value) const
Flag describing IOP and Open Price entries.
Definition: Messages.h:3702
bool tradeEntryId(UInt32 &value) const
Market Data Trade entry ID.
Definition: Messages.h:5357
GroupSize::BlockLength EncodedLength
Represents the length of binary data occupied by the given group entry.
bool instrumentGUId(UInt64 &value) const
External unique instrument ID.
Definition: Messages.h:6599
UInt8 marketSegmentId() const
Identifies the market segment, populated for all CME Globex instruments.
Definition: Messages.h:4834
Timestamp eventTime() const
Date and time of instument Activation or Expiration event sent as number of nanoseconds since Unix ep...
Definition: Messages.h:2093
IntegralConstant< Char, 'J'> EntryTypeChannelReset
Channel Reset message entry type.
Definition: Fields.h:76
static BlockLength blockLength(SchemaVersion)
Returns size of entry body in bytes for given version of message template.
Definition: Messages.h:5905
bool highLimitPrice(Decimal &value) const
Upper price threshold for the instrument.
Definition: Messages.h:7766
UpdateAction::Enum updateAction() const
Market Data update action.
Definition: Messages.h:6823
SecurityIDSource securityIdSource() const
Identifies class or source of tag 48-SecurityID value.
Definition: Messages.h:4895
static const Char * className()
Entity class name.
Definition: Messages.h:2279
StrRef relatedSymbol() const
Related instrument Symbol.
Definition: Messages.h:4734
bool clearedVolume(Int32 &value) const
The total cleared volume of instrument traded during the prior trading session.
Definition: Messages.h:2691
static const Char * className()
Returns class name.
Definition: Messages.h:1076
SecurityUpdateAction::Enum securityUpdateAction() const
Last Security update action on Incremental feed, &#39;D&#39; or &#39;M&#39; is used when a mid-week deletion or modif...
Definition: Messages.h:1562
EventType::Enum eventType() const
Code to represent the type of event.
Definition: Messages.h:4434
MatchEventIndicator matchEventIndicator() const
Bitmap field of eight Boolean type indicators reflecting the end of updates for a given Globex event...
Definition: Messages.h:2957
bool orderId(UInt64 &value) const
Order ID.
Definition: Messages.h:5533
bool priceDisplayFormat(UInt8 &value) const
Number of decimals in fractional display price.
Definition: Messages.h:1776
static BlockLength blockLength(SchemaVersion)
Size of message body in bytes.
Definition: Messages.h:1273
StrRef asset() const
The underlying asset code also known as Product Code.
Definition: Messages.h:2487
Entries entries() const
Returns instance of Entries repeating group.
Definition: Messages.h:5648
UserDefinedInstrument userDefinedInstrument() const
User-defined instruments flag.
Definition: Messages.h:1969
UserDefinedInstrument userDefinedInstrument() const
User-defined Instrument flag.
Definition: Messages.h:780
Timestamp lastUpdateTime() const
Timestamp of when the instrument was last added, modified or deleted.
Definition: Messages.h:2423
bool maxPriceVariation(Decimal &value) const
Differential value for price banding.
Definition: Messages.h:4208
Entries entries() const
Returns instance of Entries repeating group.
Definition: Messages.h:5471
bool lowLimitPrice(Decimal &value) const
Allowable low limit price for the trading day.
Definition: Messages.h:6475
FeedTypes feedTypes() const
Returns instance of FeedTypes repeating group.
Definition: Messages.h:6685
ChannelReset4()
Initializes blank instance.
Definition: Messages.h:935
bool entrySize(UInt64 &value) const
Market Data entry size.
Definition: Messages.h:7600
StrRef securityType() const
Security Type.
Definition: Messages.h:1666
StrRef symbol() const
Instrument Name or Symbol.
Definition: Messages.h:4274
bool mainFraction(UInt8 &value) const
Price Denominator of Main Fraction.
Definition: Messages.h:2731
BinaryGroup< RelatedSymEntry, GroupSize, MessageSize > RelatedSym
Repeating group containing RelatedSymEntry entries.
Definition: Messages.h:4335
bool orderPriority(UInt64 &value) const
Order priority for execution on the order book.
Definition: Messages.h:3174
bool minPriceIncrementAmount(Decimal &value) const
Monetary value equivalent to the minimum price fluctuation.
Definition: Messages.h:1959
bool issueDate(Timestamp &value) const
Issue Date.
Definition: Messages.h:606
MDIncrementalRefreshDailyStatistics.
Definition: Messages.h:3298
Entries entries() const
Returns instance of Entries repeating group.
Definition: Messages.h:7797
bool subFraction(UInt8 &value) const
Price Denominator of Sub Fraction.
Definition: Messages.h:1766
bool legPrice(Decimal &value) const
Price for the future leg of a UDS Covered instrument.
Definition: Messages.h:2339
InstAttribType instAttribType() const
Instrument eligibility attributes.
Definition: Messages.h:1433
Entry(const void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:5696
Timestamp eventTime() const
Date and Time of instument Activation or Expiration event sent as number of nanoseconds since Unix ep...
Definition: Messages.h:4443
static BlockLength blockLength(SchemaVersion)
Returns size of entry body in bytes for given version of message template.
Definition: Messages.h:4745
Indicates the number of repeating symbols specified.
Definition: Messages.h:4256
bool clearedVolume(Int32 &value) const
The total cleared volume of instrument traded during the prior trading session.
Definition: Messages.h:5123
UpdateAction::Enum updateAction() const
Market Data update action.
Definition: Messages.h:7303
bool orderQty(Int32 &value) const
Quantity requested.
Definition: Messages.h:4291
static BlockLength blockLength(SchemaVersion)
Returns size of entry body in bytes for given version of message template.
Definition: Messages.h:2362
StrRef riskSet() const
Risk Set identifies the list of instruments sharing credit limits set up.
Definition: Messages.h:789
bool minLotSize(Decimal &value) const
Minimum quantity accepted for order entry.
Definition: Messages.h:4610
UpdateAction::Enum updateAction() const
Market Data update action.
Definition: Messages.h:3868
Int32 securityId() const
Unique instrument ID.
Definition: Messages.h:389
static const Char * className()
Returns class name.
Definition: Messages.h:3001
bool numberOfOrders(Int32 &value) const
In Book entry - aggregate number of orders at given price level.
Definition: Messages.h:3080
BinaryGroup< TradingSessionsEntry, GroupSize, MessageSize > TradingSessions
Repeating group containing TradingSessionsEntry entries.
Definition: Messages.h:6206
bool minPriceIncrement(Decimal &value) const
Minimum constant tick for the instrument, sent only if instrument is non-VTT (Variable Tick table) el...
Definition: Messages.h:465
AdminLogin408(const void *data, EncodedLength length)
Initializes instance over given memory block.
Definition: Messages.h:1156
BinaryGroup< EventsEntry, GroupSize, MessageSize > Events
Repeating group containing EventsEntry entries.
Definition: Messages.h:93
FeedTypesEntry(const void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:107
InstrumentDefinitionFixedIncome57(const void *data, EncodedLength length)
Initializes instance over given memory block.
Definition: Messages.h:269
Int32 displayQty() const
Visible order qty.
Definition: Messages.h:5730
static const Char * className()
Returns class name.
Definition: Messages.h:5491
static const Char * className()
Entity class name.
Definition: Messages.h:4629
#define ONIXS_CMEMDH_LTWT
Definition: Bootstrap.h:46
static const Char * className()
Entity class name.
Definition: Messages.h:86
static const Char * className()
Entity class name.
Definition: Messages.h:4691
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:5518
bool tradeDate(Timestamp &value) const
Trade session date sent as number of days since Unix epoch.
Definition: Messages.h:7737
StrRef settlCurrency() const
Identifies currency used for settlement, if different from trade price currency.
Definition: Messages.h:4967
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:4643
SecurityIDSource securityIdSource() const
Identifies class or source of Tag 48-SecurityID value.
Definition: Messages.h:397
EventsEntry(const void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:5878
bool mainFraction(UInt8 &value) const
Price Denominator of Main Fraction.
Definition: Messages.h:1756
UInt32 rptSeq() const
Sequence number per instrument update.
Definition: Messages.h:5315
EventType::Enum eventType() const
Code to represent the type of event.
Definition: Messages.h:2084
static BlockLength blockLength(SchemaVersion)
Returns size of entry body in bytes for given version of message template.
Definition: Messages.h:4077
LotTypeRules lotTypeRules() const
Returns instance of LotTypeRules repeating group.
Definition: Messages.h:6697
InstAttribValue instAttribValue() const
Bitmap field of 32 Boolean type instrument eligibility flags.
Definition: Messages.h:1440
Legs legs() const
Returns instance of Legs repeating group.
Definition: Messages.h:2847
Char CHAR
char.
Definition: Fields.h:41
Timestamp transactTime() const
Start of event processing time in number of nanoseconds since Unix epoch.
Definition: Messages.h:3771
UInt64 minLotSize() const
For FX instruments in the repeating group with Tag 1093-LotType=2, Tag 1231-MinLotSize provides a Reg...
Definition: Messages.h:6065
bool maxPriceVariation(Decimal &value) const
Differential value for price banding.
Definition: Messages.h:585
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:1362
Decimal minPriceIncrement() const
Minimum constant tick for the instrument, sent only if instrument is non-VTT (Variable Tick table) el...
Definition: Messages.h:1739
bool maxPriceVariation(Decimal &value) const
Differential value for price banding.
Definition: Messages.h:7787
StrRef priceQuoteCurrency() const
Local (counter) currency.
Definition: Messages.h:6385
Decimal displayFactor() const
Contains the multiplier to convert the CME Globex display price to the conventional price...
Definition: Messages.h:476
bool lowLimitPrice(Decimal &value) const
Lower price threshold for the instrument.
Definition: Messages.h:4198
bool securityTradingStatus(SecurityTradingStatus::Enum &value) const
Identifies the current state of the instrument.
Definition: Messages.h:4815
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:45
UInt64 entrySize() const
Consolidated trade quantity, notional.
Definition: Messages.h:7045
static BlockLength blockLength(SchemaVersion version)
Size of message body in bytes.
Definition: Messages.h:5239
static StrRef fixType()
FIX message type.
Definition: Messages.h:5851
bool lowLimitPrice(Decimal &value) const
Allowable low limit price for the trading day.
Definition: Messages.h:2711
Timestamp transactTime() const
Start of event processing time in number of nanoseconds since Unix epoch.
Definition: Messages.h:6958
OrderIDEntry(const void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:5397
RelatedInstruments relatedInstruments() const
Returns instance of RelatedInstruments repeating group.
Definition: Messages.h:5232
AdminHeartbeat410()
Initializes blank instance.
Definition: Messages.h:1259
Null values definition for optional MaturityMonthYear field.
Definition: Composites.h:172
StrRef currency() const
Base currency.
Definition: Messages.h:6366
bool tradingReferenceDate(Timestamp &value) const
Indicates the date of trade session corresponding to a statistic entry.
Definition: Messages.h:4030
static BlockLength blockLength(SchemaVersion)
Returns size of entry body in bytes for given version of message template.
Definition: Messages.h:7320
BinaryGroup< UnderlyingsEntry, GroupSize, MessageSize > Underlyings
Repeating group containing UnderlyingsEntry entries.
Definition: Messages.h:4698
bool tradeDate(Timestamp &value) const
Trade Session Date.
Definition: Messages.h:2938
BinaryGroup< LotTypeRulesEntry, GroupSize, MessageSize > LotTypeRules
Repeating group containing LotTypeRulesEntry entries.
Definition: Messages.h:4636
Entries entries() const
Returns instance of Entries repeating group.
Definition: Messages.h:6975
static const Char * className()
Returns class name.
Definition: Messages.h:7382
static const Char * className()
Entity class name.
Definition: Messages.h:5755
UInt32 rptSeq() const
MD Entry sequence number per instrument update.
Definition: Messages.h:3694
StrRef asset() const
The underlying asset code also known as Product Code.
Definition: Messages.h:1634
EntryTypeVol entryType() const
Electronic Volume entry provides cumulative session trade volume updated with the event...
Definition: Messages.h:7312
SettlPriceType settlPriceType() const
Bitmap field of eight Boolean type indicators representing settlement price type. ...
Definition: Messages.h:2671
static StrRef fixType()
FIX message type.
Definition: Messages.h:3643
StrRef cfiCode() const
ISO standard instrument categorization code.
Definition: Messages.h:6357
StrRef text() const
Free format text string.
Definition: Messages.h:1113
Int32 underlyingSecurityId() const
Unique Instrument ID as qualified by the exchange per tag 305-UnderlyingSecurityIDSource.
Definition: Messages.h:4659
AdminHeartbeat12()
Initializes blank instance.
Definition: Messages.h:1003
StrRef feedType() const
Describes a class of service for a given data feed.
Definition: Messages.h:4490
bool side(Int8 &value) const
Side requested.
Definition: Messages.h:4309
static const Char * className()
Entity class name.
Definition: Messages.h:6934
bool tradingReferenceDate(Timestamp &value) const
Indicates session date corresponding to the settlement price in tag 1150-TradingReferencePrice.
Definition: Messages.h:2752
bool priceDisplayFormat(UInt8 &value) const
Number of decimals in fractional display price.
Definition: Messages.h:2619
HaltReason::Enum haltReason() const
Identifies the reason for the status change.
Definition: Messages.h:2976
bool minPriceIncrement(Decimal &value) const
Minimum constant tick for the instrument.
Definition: Messages.h:5010
Entries entries() const
Returns instance of Entries repeating group.
Definition: Messages.h:3622
Int32 numberOfOrders() const
The total number of real orders per instrument that participated in a match step within a match event...
Definition: Messages.h:7071
static StrRef fixType()
FIX message type.
Definition: Messages.h:5256
bool minPriceIncrement(Decimal &value) const
Minimum constant tick for the instrument, sent only if instrument is non-VTT (Variable Tick table) el...
Definition: Messages.h:2600
StrRef quoteReqId() const
Quote Request ID defined by the exchange.
Definition: Messages.h:4360
BinaryGroup< FeedTypesEntry, GroupSize, MessageSize > FeedTypes
Repeating group containing FeedTypesEntry entries.
Definition: Messages.h:149
AdminLogin408()
Initializes blank instance.
Definition: Messages.h:1153
bool securityId(Int32 &value) const
If this tag is present, 35=f message is sent for the instrument.
Definition: Messages.h:2928
UInt32 rptSeq() const
Market Data entry sequence number per instrument update.
Definition: Messages.h:3071
static const Char * className()
Entity class name.
Definition: Messages.h:4569
bool entryPx(Decimal &value) const
Market Data entry price.
Definition: Messages.h:7590
static const Char * className()
Entity class name.
Definition: Messages.h:3747
UInt32 rptSeq() const
Market Data entry sequence number per instrument update.
Definition: Messages.h:6796
CHAR matchAlgorithm() const
Matching algorithm.
Definition: Messages.h:2575
OrderIDEntry(const void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:3158
PutOrCall::Enum putOrCall() const
Indicates whether an option instrument is a put or call.
Definition: Messages.h:4919
Entry()
Initializes blank instance.
Definition: Messages.h:883
Timestamp eventTime() const
Date and Time of instument Activation or Expiration event sent as number of nanoseconds since Unix ep...
Definition: Messages.h:5895
Null values definition for optional DecimalQty field.
Definition: Composites.h:62
Encapsulates operations over SBE-encoded repeating group entry instance.
bool altMinPriceIncrement(Decimal &value) const
New sub-tick which is only available for order entry when certain conditions are met, tick value which corresponds to the Alt Min Quote Life.
Definition: Messages.h:6631
static const Char * className()
Entity class name.
Definition: Messages.h:3581
Entry(const void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:3981
static BlockLength blockLength(SchemaVersion)
Size of message body in bytes.
Definition: Messages.h:3629
bool tradingReferencePrice(Decimal &value) const
Reference price for prelisted instruments or the last calculated Settlement whether it be Theoretical...
Definition: Messages.h:1810
CHAR matchAlgorithm() const
Matching algorithm.
Definition: Messages.h:6394
BinaryGroup< Entry, GroupSize, MessageSize > Entries
Repeating group containing Entry entries.
Definition: Messages.h:4091
StrRef securityGroup() const
Security Group Code.
Definition: Messages.h:1625
bool minLotSize(Decimal &value) const
Minimum quantity accepted for order entry.
Definition: Messages.h:1498
IncrementalRefreshLimitsBanding50(const void *data, EncodedLength length)
Initializes instance over given memory block.
Definition: Messages.h:3594
UInt8 UInt8
uInt8.
Definition: Fields.h:208
bool maturityMonthYear(MaturityMonthYear &value) const
This field provides the actual calendar date for contract maturity.
Definition: Messages.h:1685
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:3497
IntegralConstant< Char, '2'> EntryTypeTrade
MDEntryTypeTrade.
Definition: Fields.h:82
Entry(const void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:3035
StrRef unitOfMeasure() const
Unit of measure for the products&#39; original contract size.
Definition: Messages.h:516
Timestamp lastUpdateTime() const
Timestamp of when the instrument was last added, modified or deleted.
Definition: Messages.h:310
bool priceLevel(UInt8 &value) const
Aggregate book level.
Definition: Messages.h:7623
char Char
Character type alias.
Definition: String.h:36
Int32 securityId() const
Unique instrument ID.
Definition: Messages.h:1652
UInt32 rptSeq() const
MD Entry sequence number per instrument update.
Definition: Messages.h:7450
BinaryGroup< LotTypeRulesEntry, GroupSize, MessageSize > LotTypeRules
Repeating group containing LotTypeRulesEntry entries.
Definition: Messages.h:6089
Int8 marketDepth() const
Identifies the depth of book.
Definition: Messages.h:2149
bool totNumReports(UInt32 &value) const
Total number of instruments in the Replay loop.
Definition: Messages.h:4785
BinaryGroup< OrderIDEntry, GroupSize8Byte, MessageSize > OrderIDEntries
Repeating group containing OrderIDEntry entries.
Definition: Messages.h:7183
IncrementalRefreshOrderBook47()
Initializes blank instance.
Definition: Messages.h:5617
Number of entries in Market Data message.
Definition: Messages.h:5686
StrRef securityExchange() const
Exchange used to identify a security.
Definition: Messages.h:1616
bool displayQty(Int32 &value) const
Visible qty of order.
Definition: Messages.h:3184
static StrRef fixType()
FIX message type.
Definition: Messages.h:3477
Events events() const
Returns instance of Events repeating group.
Definition: Messages.h:6679
UpdateAction::Enum updateAction() const
Market Data update action.
Definition: Messages.h:3390
CHAR matchAlgorithm() const
Matching Algorithm.
Definition: Messages.h:440
InstAttribValue instAttribValue() const
Bitmap field of 32 Boolean type instrument eligibility flags.
Definition: Messages.h:178
bool entrySize(Int32 &value) const
Market Data entry quantity.
Definition: Messages.h:3999
Number of entries in Market Data message.
Definition: Messages.h:877
MDIncrementalRefreshOrderBook.
Definition: Messages.h:5505
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:3974
Int32 lastQty() const
Quantity bought or sold on this last fill.
Definition: Messages.h:7159
StrRef symbol() const
Instrument Name or Symbol.
Definition: Messages.h:380
MessageSize EncodedLength
Length of message binary data.
bool legOptionDelta(Decimal &value) const
Delta used to calculate the quantity of futures used to cover the option or option strategy...
Definition: Messages.h:2350
LotTypeRules lotTypeRules() const
Returns instance of LotTypeRules repeating group.
Definition: Messages.h:5220
AdminLogout16(const void *data, EncodedLength length)
Initializes instance over given memory block.
Definition: Messages.h:1102
StrRef securityType() const
Security Type.
Definition: Messages.h:6348
static BlockLength blockLength(SchemaVersion)
Returns size of entry body in bytes for given version of message template.
Definition: Messages.h:3408
EntryTypeChannelReset entryType() const
Market Data entry type.
Definition: Messages.h:901
UInt64 UInt64
uInt64.
Definition: Fields.h:205
bool value(Number &number, const MultiContainer &container, Tag tag)
Finds a tag-value entry in the given collection by the given tag and returns its value component tran...
static StrRef fixType()
FIX message type.
Definition: Messages.h:1287
InstAttribType instAttribType() const
Instrument eligibility attributes.
Definition: Messages.h:171
StrRef priceQuoteMethod() const
Price quotation method.
Definition: Messages.h:2770
FeedTypes feedTypes() const
Returns instance of FeedTypes repeating group.
Definition: Messages.h:5208
Int8 quoteType() const
Type of quote requested.
Definition: Messages.h:4301
SchemaVersion version() const
Version of message containing given repeating group instance.
BinaryGroup< LotTypeRulesEntry, GroupSize, MessageSize > LotTypeRules
Repeating group containing LotTypeRulesEntry entries.
Definition: Messages.h:263
Timestamp lastUpdateTime() const
Timestamp of when the instrument was last added, modified or deleted.
Definition: Messages.h:4806
BinaryGroup< LotTypeRulesEntry, GroupSize, MessageSize > LotTypeRules
Repeating group containing LotTypeRulesEntry entries.
Definition: Messages.h:1524
InstrumentDefinitionFuture54(const void *data, EncodedLength length)
Initializes instance over given memory block.
Definition: Messages.h:1530
Entry()
Initializes blank instance.
Definition: Messages.h:3031
static StrRef fixType()
FIX message type.
Definition: Messages.h:1137
ChannelReset4(const void *data, EncodedLength length)
Initializes instance over given memory block.
Definition: Messages.h:938
Year, Month and Date.
Definition: Composites.h:87
LotTypeRules lotTypeRules() const
Returns instance of LotTypeRules repeating group.
Definition: Messages.h:836
bool entrySize(UInt64 &value) const
Aggregate booked qty at price level, notional.
Definition: Messages.h:6778
Events events() const
Returns instance of Events repeating group.
Definition: Messages.h:818
InstAttribType instAttribType() const
Instrument Eligibility Attributes.
Definition: Messages.h:2195
Int32 entrySize() const
Consolidated trade quantity.
Definition: Messages.h:5299
static const Char * className()
Entity class name.
Definition: Messages.h:925
UInt32 rptSeq() const
Market Data entry sequence number per instrument update.
Definition: Messages.h:7295
StrRef couponFrequencyUnit() const
Time unit associated with the frequency of the bond&#39;s coupon payment.
Definition: Messages.h:683
bool openCloseSettlFlag(OpenCloseSettlFlag::Enum &value) const
Flag that additionally describes market data entry type.
Definition: Messages.h:7458
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:5871
bool entryPx(Decimal &value) const
Order price.
Definition: Messages.h:5553
EventType::Enum eventType() const
Code to represent the type of event.
Definition: Messages.h:5886
InstAttrib instAttrib() const
Returns instance of InstAttrib repeating group.
Definition: Messages.h:5214
StrRef securityExchange() const
Exchange used to identify a security.
Definition: Messages.h:2469
MatchEventIndicator matchEventIndicator() const
Bitmap field of eight Boolean type indicators reflecting the end of updates for a given Globex event...
Definition: Messages.h:280
bool altMinQuoteLife(UInt32 &value) const
MQL duration in number of microseconds applied to orders at AltMinPriceIncrement. ...
Definition: Messages.h:6643
bool contractMultiplierUnit(Int8 &value) const
Indicates the type of multiplier being applied to the product.
Definition: Messages.h:1935
Int16 applId() const
The channel ID as defined in the XML Configuration file.
Definition: Messages.h:6273
UInt64 entrySize() const
Cumulative traded volume, notional.
Definition: Messages.h:7279
static BlockLength blockLength(SchemaVersion)
Size of message body in bytes.
Definition: Messages.h:3940
static const Char * className()
Entity class name.
Definition: Messages.h:1457
static StrRef fixType()
FIX message type.
Definition: Messages.h:2871
StrRef securityAltId() const
Expanded instrument description.
Definition: Messages.h:742
Int32 securityId() const
Unique Instrument ID.
Definition: Messages.h:4887
Timestamp transactTime() const
Start of event processing time in number of nanoseconds since Unix epoch.
Definition: Messages.h:3916
IncrementalRefreshSessionStatistics51()
Initializes blank instance.
Definition: Messages.h:3757
EventType::Enum eventType() const
Code to represent the type of event.
Definition: Messages.h:1322
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:4530
static BlockLength blockLength(SchemaVersion)
Returns size of entry body in bytes for given version of message template.
Definition: Messages.h:7114
static const Char * className()
Returns class name.
Definition: Messages.h:3802
static BlockLength blockLength(SchemaVersion)
Returns size of entry body in bytes for given version of message template.
Definition: Messages.h:4453
FeedTypes feedTypes() const
Returns instance of FeedTypes repeating group.
Definition: Messages.h:2829
static const Char * className()
Returns class name.
Definition: Messages.h:7811
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:3311
StrRef cfiCode() const
ISO standard instrument categorization code.
Definition: Messages.h:4910
UInt64 orderId() const
Unique order identifier as assigned by the exchange.
Definition: Messages.h:7151
SettlPriceType type.
Definition: Fields.h:1001
Int16 Int16
int16.
Definition: Fields.h:57
Timestamp localMktDateToTimestamp(LocalMktDate days)
Converts days since epoch to Timestamp value.
Definition: Fields.h:1082
IncrementalRefreshVolumeLongQty66(const void *data, EncodedLength length)
Initializes instance over given memory block.
Definition: Messages.h:7340
static StrRef fixType()
FIX message type.
Definition: Messages.h:5498
EntryTypeStatistics::Enum entryType() const
Market Data entry type.
Definition: Messages.h:3720
MatchEventIndicator matchEventIndicator() const
Bitmap field of eight Boolean type indicators reflecting the end of updates for a given Globex event...
Definition: Messages.h:3925
bool contractMultiplier(Int32 &value) const
Number of deliverable units per instrument, e.g., peak days in maturity month or number of calendar d...
Definition: Messages.h:1923
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:7575
TradingSessions tradingSessions() const
Returns instance of TradingSessions repeating group.
Definition: Messages.h:6703
InstrumentDefinitionSpread56(const void *data, EncodedLength length)
Initializes instance over given memory block.
Definition: Messages.h:2382
BinaryGroup< RelatedInstrumentsEntry, GroupSize, MessageSize > RelatedInstruments
Repeating group containing RelatedInstrumentsEntry entries.
Definition: Messages.h:4759
SecurityStatus30()
Initializes blank instance.
Definition: Messages.h:2887
UserDefinedInstrument userDefinedInstrument() const
User-defined instruments flag.
Definition: Messages.h:5164
static BlockLength blockLength(SchemaVersion)
Size of message body in bytes.
Definition: Messages.h:4225
UpdateAction::Enum updateAction() const
Market Data update action.
Definition: Messages.h:7468
bool maturityMonthYear(MaturityMonthYear &value) const
Fixed Date NDF Maturity.
Definition: Messages.h:6609
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:5926
Int32 securityId() const
Security ID as defined by CME.
Definition: Messages.h:5307
StrRef feedType() const
Describes a class of service for a given data feed.
Definition: Messages.h:5941
StrRef securitySubType() const
Strategy type.
Definition: Messages.h:2558
bool openCloseSettlFlag(OpenCloseSettlFlag::Enum &value) const
Flag describing Open Price entry.
Definition: Messages.h:4048
IntegralConstant< Char, '8'> SecurityIDSource
SecurityIDSource.
Definition: Fields.h:121
Number of entries in Market Data message.
Definition: Messages.h:3494
Int16 applId() const
The channel ID as defined in the XML Configuration file.
Definition: Messages.h:4825
MessageTemplateId templateId() const
Template identifier of message being referenced.
bool lowLimitPrice(Decimal &value) const
Lower price threshold for the instrument.
Definition: Messages.h:7777
bool minPriceIncrementAmount(Decimal &value) const
Monetary value equivalent to the minimum price fluctuation.
Definition: Messages.h:5020
BinaryGroup< EventsEntry, GroupSize, MessageSize > Events
Repeating group containing EventsEntry entries.
Definition: Messages.h:5919
LotTypeRulesEntry(const void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:6041
BinaryGroup< InstAttribEntry, GroupSize, MessageSize > InstAttrib
Repeating group containing InstAttribEntry entries.
Definition: Messages.h:6027
QuoteRequest39(const void *data, EncodedLength length)
Initializes instance over given memory block.
Definition: Messages.h:4341
UInt32 minQuoteLife() const
Minimum Quote Life in number of microseconds.
Definition: Messages.h:6581
bool priceRatio(Decimal &value) const
Used for price calculation in spread and leg pricing.
Definition: Messages.h:2629
bool orderPriority(UInt64 &value) const
Order priority for execution on the order book.
Definition: Messages.h:5712
static BlockLength blockLength(SchemaVersion)
Size of message body in bytes.
Definition: Messages.h:5655
StrRef financialInstrumentFullName() const
Long name of the instrument.
Definition: Messages.h:732
Int32 securityId() const
Unique instrument ID.
Definition: Messages.h:2505
StrRef settlCurrency() const
Identifies currency used for settlement, if different from trade price currency.
Definition: Messages.h:431
static BlockLength blockLength(SchemaVersion)
Returns size of entry body in bytes for given version of message template.
Definition: Messages.h:6075
Provides efficient way of accessing text-based values without copying content of the text being refer...
Definition: String.h:41
MDInstrumentDefinitionSpread.
Definition: Messages.h:2056
InstrumentDefinitionFixedIncome57()
Initializes blank instance.
Definition: Messages.h:266
MessageHeader::Version SchemaVersion
Aliases SBE-encoded data version type.
Definition: SchemaTraits.h:28
Number of entries in Market Data message.
Definition: Messages.h:3308
SnapshotFullRefreshLongQty69(const void *data, EncodedLength length)
Initializes instance over given memory block.
Definition: Messages.h:7673
StrRef asset() const
The underlying asset code also known as Product Code.
Definition: Messages.h:6316
UInt8 marketSegmentId() const
Identifies the market segment, populated for all CME Globex instruments.
Definition: Messages.h:2451
static const Char * className()
Entity class name.
Definition: Messages.h:2110
static StrRef fixType()
FIX message type.
Definition: Messages.h:1243
Timestamp transactTime() const
Start of event processing time in number of nanoseconds since Unix epoch.
Definition: Messages.h:3247
Number of repeating EventType entries.
Definition: Messages.h:42
BinaryGroup< LegsEntry, GroupSize, MessageSize > Legs
Repeating group containing LegsEntry entries.
Definition: Messages.h:2376
UInt8 marketSegmentId() const
Identifies the market segment for all CME Globex instruments.
Definition: Messages.h:337
bool referenceId(UInt8 &value) const
Reference to corresponding Price and SecurityID, sequence of MD entry in the message.
Definition: Messages.h:6906
static BlockLength blockLength(SchemaVersion)
Returns size of entry body in bytes for given version of message template.
Definition: Messages.h:249
bool underlyingProduct(UInt8 &value) const
Product complex.
Definition: Messages.h:2459
A real number with floating exponent.
Definition: Decimal.h:136
StrRef asset() const
The underlying asset code also known as Product Code.
Definition: Messages.h:371
static BlockLength blockLength(SchemaVersion)
Returns size of entry body in bytes for given version of message template.
Definition: Messages.h:5423
UInt32 rptSeq() const
MD Entry sequence number per instrument update.
Definition: Messages.h:3550
StrRef fixRateLocalTime() const
Fixing Rate Local Time, denoted in HH:MM:SS format.
Definition: Messages.h:6562
IntegralConstant< Char, 'g'> EntryTypeLimits
MDEntryTypeLimits.
Definition: Fields.h:79
LotTypeRulesEntry(const void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:1478
bool openInterestQty(Int32 &value) const
The total open interest for the market at the close of the prior trading session. ...
Definition: Messages.h:2680
Entry()
Initializes blank instance.
Definition: Messages.h:3977
bool maxPriceVariation(Decimal &value) const
Differential value for price banding.
Definition: Messages.h:1871
#define ONIXS_CMEMDH_NAMESPACE_BEGIN
Definition: Bootstrap.h:67
static StrRef fixType()
FIX message type.
Definition: Messages.h:3954
SettlPriceType settlPriceType() const
Bitmap field of eight Boolean type indicators representing settlement price type. ...
Definition: Messages.h:1821
bool clearedVolume(Int32 &value) const
The total cleared volume of instrument traded during the prior trading session.
Definition: Messages.h:1841
Entries entries() const
Returns instance of Entries repeating group.
Definition: Messages.h:7534
IncrementalRefreshSessionStatisticsLongQty67(const void *data, EncodedLength length)
Initializes instance over given memory block.
Definition: Messages.h:7506
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:100
Timestamp transactTime() const
Timestamp of the last event security participated in, sent as number of nanoseconds since Unix epoch...
Definition: Messages.h:4143
bool subFraction(UInt8 &value) const
Price Denominator of Sub Fraction.
Definition: Messages.h:494
bool entryPx(Decimal &value) const
Market Data entry price.
Definition: Messages.h:3989
bool couponFrequencyPeriod(UInt16 &value) const
Time unit multiplier for the frequency of the bond&#39;s coupon payment.
Definition: Messages.h:693
bool priceDisplayFormat(UInt8 &value) const
Number of decimals in fractional display price.
Definition: Messages.h:5069
static BlockLength blockLength(SchemaVersion)
Returns size of entry body in bytes for given version of message template.
Definition: Messages.h:135
IncrementalRefreshBook46(const void *data, EncodedLength length)
Initializes instance over given memory block.
Definition: Messages.h:3236
Number of repeating InstrAttribType entries.
Definition: Messages.h:1415
bool mainFraction(UInt8 &value) const
Price Denominator of Main Fraction.
Definition: Messages.h:484
bool minPriceIncrementAmount(Decimal &value) const
Monetary value equivalent to the minimum price fluctuation.
Definition: Messages.h:596
IncrementalRefreshVolume37(const void *data, EncodedLength length)
Initializes instance over given memory block.
Definition: Messages.h:3905
static StrRef fixType()
FIX message type.
Definition: Messages.h:1031
bool maxPriceVariation(Decimal &value) const
Differential static value for price banding.
Definition: Messages.h:3532
UInt8 pricePrecision() const
Specifies price decimal precision for EBS instrument.
Definition: Messages.h:6435
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:6753
UInt8 underlyingProduct() const
Product complex.
Definition: Messages.h:1608
MatchEventIndicator matchEventIndicator() const
Bitmap field of eight Boolean type indicators reflecting the end of updates for a given Globex event...
Definition: Messages.h:7209
static BlockLength blockLength(SchemaVersion)
Size of message body in bytes.
Definition: Messages.h:3795
static StrRef fixType()
FIX message type.
Definition: Messages.h:2049
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:2124
bool originalContractSize(Int32 &value) const
Fixed contract value assigned to each product.
Definition: Messages.h:1911
AdminLogout409()
Initializes blank instance.
Definition: Messages.h:1205
bool lowLimitPrice(Decimal &value) const
Allowable low limit price for the trading day.
Definition: Messages.h:1861
UpdateAction::Enum updateAction() const
Order book update action to be applied to the order referenced by OrderID.
Definition: Messages.h:5582
LotTypeRules lotTypeRules() const
Returns instance of LotTypeRules repeating group.
Definition: Messages.h:2841
Decimal minPriceIncrement() const
Minimum price tick.
Definition: Messages.h:6418
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:209
StrRef unitOfMeasure() const
Unit of measure for the products&#39; original contract size.
Definition: Messages.h:1788
static BlockLength blockLength(SchemaVersion)
Returns size of entry body in bytes for given version of message template.
Definition: Messages.h:4684
Timestamp eventTime() const
Date and Time of instument Activation or Expiration event sent as number of nanoseconds since Unix ep...
Definition: Messages.h:1331
bool tradingReferenceDate(Timestamp &value) const
Indicates session date corresponding to the settlement price in tag 1150-TradingReferencePrice.
Definition: Messages.h:1978
FeedTypes feedTypes() const
Returns instance of FeedTypes repeating group.
Definition: Messages.h:2013
SecurityIDSource securityIdSource() const
Identifies class or source of the security ID (Tag 48) value.
Definition: Messages.h:2514
RelatedInstrumentsEntry(const void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:4712
Int16 applId() const
Indicates the channel ID as defined in the XML configuration file.
Definition: Messages.h:908
bool securityAltIdSource(SecurityAltIDSource::Enum &value) const
Identifies class or source of the SecurityAltID (455) value.
Definition: Messages.h:752
static BlockLength blockLength(SchemaVersion version)
Size of message body in bytes.
Definition: Messages.h:2032
static StrRef fixType()
FIX message type.
Definition: Messages.h:7818
SettlPriceType settlPriceType() const
Bitmap field of eight Boolean type indicators representing settlement price type. ...
Definition: Messages.h:3382
MDIncrementalRefreshTradeSummary.
Definition: Messages.h:5263
bool maturityMonthYear(MaturityMonthYear &value) const
This field provides the actual calendar date for contract maturity.
Definition: Messages.h:2539
Char UserDefinedInstrument
UserDefinedInstrument type.
Definition: Fields.h:196
static BlockLength blockLength(SchemaVersion)
Returns size of entry body in bytes for given version of message template.
Definition: Messages.h:4321
Entries entries() const
Returns instance of Entries repeating group.
Definition: Messages.h:3933
BinaryGroup< Entry, GroupSize, MessageSize > Entries
Repeating group containing Entry entries.
Definition: Messages.h:7667
MatchEventIndicator matchEventIndicator() const
Bitmap field of eight Boolean type indicators reflecting the end of updates for a given Globex event...
Definition: Messages.h:1541
Int8 heartBtInt() const
Heartbeat interval (seconds).
Definition: Messages.h:1060
Int8 legRatioQty() const
Leg ratio of quantity for this individual leg relative to the entire multi-leg instrument.
Definition: Messages.h:2331
IncrementalRefreshTradeSummary48()
Initializes blank instance.
Definition: Messages.h:5440
bool altPriceIncrementConstraint(Decimal &value) const
Minimum price offset better than the best Standard Tick order for an order to be allowed into the mar...
Definition: Messages.h:6655
SecurityIDSource underlyingSecurityIdSource() const
This value is always &#39;8&#39; for CME.
Definition: Messages.h:4667
static BlockLength blockLength(SchemaVersion)
Returns size of entry body in bytes for given version of message template.
Definition: Messages.h:6013
BlockLength blockLength() const
Returns length of the block containing fixed-length fields of the given entry.
bool tradingReferencePrice(Decimal &value) const
Reference price - the most recently available Settlement whether it be Theoretical, Preliminary or a Final Settle of the session.
Definition: Messages.h:5103
InstAttribType instAttribType() const
Instrument Eligibility Attributes.
Definition: Messages.h:4545
InstAttribEntry(const void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:1425
UpdateAction::Enum updateAction() const
Market Data update action.
Definition: Messages.h:3098
bool openCloseSettlFlag(OpenCloseSettlFlag::Enum &value) const
Flag that additionally describes a market data entry.
Definition: Messages.h:7633
UInt32 minTradeVol() const
The minimum trading volume for a security.
Definition: Messages.h:6402
bool displayQty(Int32 &value) const
Visible qty of order.
Definition: Messages.h:6895
SecurityIDSource relatedSecurityIdSource() const
Related Security ID source.
Definition: Messages.h:4728
Timestamp lastUpdateTime() const
Timestamp of when the instrument was last added, modified or deleted.
Definition: Messages.h:1571
StrRef unitOfMeasure() const
Unit of measure for the products&#39; original contract size.
Definition: Messages.h:6445
UInt32 totNumReports() const
Total number of instruments in the replayed loop.
Definition: Messages.h:5788
MatchEventIndicator matchEventIndicator() const
Bitmap field of eight Boolean type indicators reflecting the end of updates for a given Globex event...
Definition: Messages.h:4776
bool openInterestQty(Int32 &value) const
The total open interest for the market at the close of the prior trading session. ...
Definition: Messages.h:1830
Attributes of SBE message schema.
Definition: SchemaTraits.h:31
UInt32 totNumReports() const
Total number of instruments in the Replay loop.
Definition: Messages.h:7694
BinaryGroupEntry< GroupSize8Byte::BlockLength > Base
Aliases base class type.
Definition: Messages.h:5390
StrRef currency() const
Identifies currency used for price.
Definition: Messages.h:2549
StrRef securityExchange() const
Exchange used to identify a security.
Definition: Messages.h:6298
static BlockLength blockLength(SchemaVersion)
Returns size of entry body in bytes for given version of message template.
Definition: Messages.h:5600
UInt32 rptSeq() const
Market Data entry sequence number per instrument update.
Definition: Messages.h:3860
static BlockLength blockLength(SchemaVersion version)
Returns size of entry body in bytes for given version of message template.
Definition: Messages.h:3127
static StrRef fixType()
FIX message type.
Definition: Messages.h:987
CHAR matchAlgorithm() const
Matching algorithm.
Definition: Messages.h:1714
static StrRef fixType()
FIX message type.
Definition: Messages.h:1083
Encapsulates services for manipulating SBE-encoded messages.
StrRef cfiCode() const
ISO standard instrument categorization code.
Definition: Messages.h:2529
bool numberOfOrders(Int32 &value) const
In Book Entry - Aggregate number of orders at given price level.
Definition: Messages.h:7613
StrRef countryOfIssue() const
Country of Origin, ISO alpha-2 country code.
Definition: Messages.h:713
LotTypeRulesEntry(const void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:2240
Decimal entryPx() const
Market Data entry price.
Definition: Messages.h:3678
bool tradingReferenceDate(Timestamp &value) const
Indicates trade session date corresponding to a statistic entry.
Definition: Messages.h:3363
Entries entries() const
Returns instance of Entries repeating group.
Definition: Messages.h:4218
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:2069
StrRef settlCurrency() const
Currency used for settlement, which may be different from Local currency specified in Tag 1524 PriceQ...
Definition: Messages.h:6376
Timestamp transactTime() const
Start of event processing time in number of nanoseconds since Unix epoch.
Definition: Messages.h:7200
static BlockLength blockLength(SchemaVersion)
Returns size of entry body in bytes for given version of message template.
Definition: Messages.h:5748
bool tradeDate(Timestamp &value) const
Trade Date.
Definition: Messages.h:6111
static const Char * className()
Entity class name.
Definition: Messages.h:1404
BinaryGroup< FeedTypesEntry, GroupSize, MessageSize > FeedTypes
Repeating group containing FeedTypesEntry entries.
Definition: Messages.h:4523
IntegralConstant< Int8, 0 > UpdateActionNew
MDUpdateActionNew.
Definition: Fields.h:93
InstAttrib instAttrib() const
Returns instance of InstAttrib repeating group.
Definition: Messages.h:2835
UInt32 maxTradeVol() const
The maximum trading volume for a security.
Definition: Messages.h:456
static const Char * className()
Entity class name.
Definition: Messages.h:1348
bool highLimitPrice(Decimal &value) const
Allowable high limit price for the trading day.
Definition: Messages.h:565
static BlockLength blockLength(SchemaVersion)
Size of message body in bytes.
Definition: Messages.h:5837
Entry(const void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:6760
Timestamp transactTime() const
Timestamp of the last event security participated in, sent as number of nanoseconds since Unix epoch...
Definition: Messages.h:7720
static BlockLength blockLength(SchemaVersion version)
Size of message body in bytes.
Definition: Messages.h:6710
StrRef fixRateLocalTimeZone() const
Fixing Rate Local Time Zone corresponding to Fixing Local Time.
Definition: Messages.h:6572
static BlockLength blockLength(SchemaVersion)
Returns size of entry body in bytes for given version of message template.
Definition: Messages.h:5369
MDIncrementalRefreshTradeSummaryLongQty.
Definition: Messages.h:7009
bool lowLimitPrice(Decimal &value) const
Allowable low limit price for the trading day.
Definition: Messages.h:575
static BlockLength blockLength(SchemaVersion)
Size of message body in bytes.
Definition: Messages.h:1069
static const Char * className()
Returns class name.
Definition: Messages.h:1236
Timestamp transactTime() const
Start of event processing time in number of nanoseconds since Unix epoch.
Definition: Messages.h:3605
bool aggressorSide(AggressorSide::Enum &value) const
Indicates which side is the aggressor or if there is no aggressor.
Definition: Messages.h:7088
Underlyings underlyings() const
Returns instance of Underlyings repeating group.
Definition: Messages.h:5226
SnapshotFullRefreshOrderBook53()
Initializes blank instance.
Definition: Messages.h:5765
Events events() const
Returns instance of Events repeating group.
Definition: Messages.h:2007
BinaryGroup< Entry, GroupSize, MessageSize > Entries
Repeating group containing Entry entries.
Definition: Messages.h:7334
Number of entries in Market Data message.
Definition: Messages.h:7261
IncrementalRefreshVolume37()
Initializes blank instance.
Definition: Messages.h:3902
Events events() const
Returns instance of Events repeating group.
Definition: Messages.h:2823
StrRef toStrRef(const std::string &str)
Constructs StrRef instance over std::string content.
Definition: String.h:155
bool tradeDate(Timestamp &value) const
Trade session date sent as number of days since Unix epoch.
Definition: Messages.h:4160
bool highLimitPrice(Decimal &value) const
Allowable high limit price for the trading day.
Definition: Messages.h:1851
bool maxBidAskConstraint(Decimal &value) const
Maximum bid/ask spread for which sub-tick orders will be accepted (Sub tick orders will be rejected i...
Definition: Messages.h:6668
SecurityTradingEvent::Enum securityTradingEvent() const
Identifies an additional event or a rule related to the status.
Definition: Messages.h:2985
FeedTypesEntry(const void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:4481
Int32 securityId() const
Security ID.
Definition: Messages.h:3063
UInt32 tradeEntryId() const
Market Data Trade Entry ID.
Definition: Messages.h:7079
#define ONIXS_CMEMDH_LTWT_EXPORTED
Definition: Bootstrap.h:47
static BlockLength blockLength(SchemaVersion version)
Size of message body in bytes.
Definition: Messages.h:2854
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:1471
Timestamp transactTime() const
Start of event processing time in number of nanoseconds since Unix epoch.
Definition: Messages.h:5454
StrRef securityGroup() const
Security Group Code.
Definition: Messages.h:4859
bool entrySize(Int32 &value) const
Market Data entry size.
Definition: Messages.h:3336
static BlockLength blockLength(SchemaVersion)
Returns size of entry body in bytes for given version of message template.
Definition: Messages.h:7486
GroupSize::BlockLength BlockLength
Represents the length of binary block storing fixed-length fields of the group entry.
static const Char * className()
Entity class name.
Definition: Messages.h:1517
Encapsulates operations over SBE-encoded repeating group.
static const Char * className()
Returns class name.
Definition: Messages.h:1130
MatchEventIndicator matchEventIndicator() const
Bitmap field of eight Boolean type indicators reflecting the end of updates for a given Globex event...
Definition: Messages.h:3614
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:4583
UInt32 rptSeq() const
MD Entry sequence number per instrument update.
Definition: Messages.h:7062
Timestamp lastUpdateTime() const
UTC Date and time of last Security Definition add, update or delete on a given Market Data channel...
Definition: Messages.h:4152
OrderIDEntry(const void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:7143
Number of entries in Market Data message.
Definition: Messages.h:3660
static const Char * className()
Returns class name.
Definition: Messages.h:3470
void throwBadBinaryData(const Char *className)
Throws exception on bad repeating group entry.
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:5276
MDIncrementalRefreshVolume.
Definition: Messages.h:3816
InstAttrib instAttrib() const
Returns instance of InstAttrib repeating group.
Definition: Messages.h:2019
BinaryGroup< FeedTypesEntry, GroupSize, MessageSize > FeedTypes
Repeating group containing FeedTypesEntry entries.
Definition: Messages.h:1411
MatchEventIndicator matchEventIndicator() const
Bitmap field of eight Boolean type indicators reflecting the end of updates for a given Globex event...
Definition: Messages.h:2393
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:4419
IncrementalRefreshSessionStatisticsLongQty67()
Initializes blank instance.
Definition: Messages.h:7503
StrRef partyRoleClearingOrg() const
Clearing organization.
Definition: Messages.h:771
StrRef strikeCurrency() const
Currency in which the StrikePrice is denominated.
Definition: Messages.h:4957
Entries entries() const
Returns instance of Entries repeating group.
Definition: Messages.h:966
bool entrySize(Int32 &value) const
Market Data entry size.
Definition: Messages.h:3053
Int8 heartBtInt() const
Heartbeat interval (seconds).
Definition: Messages.h:1166
Entry(const void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:887
Number of repeating FeedType repeating group entries.
Definition: Messages.h:97
static BlockLength blockLength(SchemaVersion)
Size of message body in bytes.
Definition: Messages.h:1229
Entry(const void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:7582
InstAttribType instAttribType() const
Instrument eligibility attributes.
Definition: Messages.h:5996
StrRef priceQuoteMethod() const
Price quotation method.
Definition: Messages.h:762
EventType::Enum eventType() const
Code to represent the type of event.
Definition: Messages.h:60
static StrRef fixType()
FIX message type.
Definition: Messages.h:3291
MatchEventIndicator matchEventIndicator() const
Bitmap field of eight Boolean type indicators reflecting the end of updates for a given Globex event...
Definition: Messages.h:3780
static const Char * className()
Entity class name.
Definition: Messages.h:5376
MatchEventIndicator matchEventIndicator() const
Bitmap field of eight Boolean type indicators reflecting the end of updates for a given Globex event...
Definition: Messages.h:7360
static BlockLength blockLength(SchemaVersion)
Returns size of entry body in bytes for given version of message template.
Definition: Messages.h:79
static BlockLength blockLength(SchemaVersion)
Returns size of entry body in bytes for given version of message template.
Definition: Messages.h:4562
Number of repeating EventType entries.
Definition: Messages.h:1304
EntryTypeBook::Enum entryType() const
Market Data entry type.
Definition: Messages.h:6831
UInt16 UInt16
uInt16.
Definition: Fields.h:199
RelatedSym relatedSym() const
Returns instance of RelatedSym repeating group.
Definition: Messages.h:4378
Entry(const void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:5283
UInt32 rptSeq() const
MD Entry sequence number per instrument update.
Definition: Messages.h:7711
Number of entries in Market Data message.
Definition: Messages.h:3971
AdminLogout16()
Initializes blank instance.
Definition: Messages.h:1099
StrRef feedType() const
Describes a class of service for a given data feed.
Definition: Messages.h:1378
SecurityUpdateAction::Enum securityUpdateAction() const
Last Security update action on Incremental feed, &#39;D&#39; or &#39;M&#39; is used when a mid-week deletion or modif...
Definition: Messages.h:6244
bool subFraction(UInt8 &value) const
Price Denominator of Sub Fraction.
Definition: Messages.h:2741
bool strikePrice(Decimal &value) const
Strike Price for an option instrument.
Definition: Messages.h:4947
InstrumentDefinitionSpread56()
Initializes blank instance.
Definition: Messages.h:2379
BinaryGroup< Entry, GroupSize, MessageSize > Entries
Repeating group containing Entry entries.
Definition: Messages.h:5614
static const Char * className()
Entity class name.
Definition: Messages.h:5912
SecurityIDSource legSecurityIdSource() const
Identifies source of tag 602-LegSecurityID value.
Definition: Messages.h:2316
UInt32 totNumReports() const
Total number of messages replayed in the loop.
Definition: Messages.h:4117
LotTypeRulesEntry(const void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:4590
BinaryGroup< OrderIDEntry, GroupSize8Byte, MessageSize > OrderIDEntries
Repeating group containing OrderIDEntry entries.
Definition: Messages.h:5437
LotTypeRulesEntry(const void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:216
FeedTypesEntry(const void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:1369
InstAttribEntry(const void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:163
bool priceLevel(Int8 &value) const
Aggregate book position.
Definition: Messages.h:4019
bool securityTradingStatus(SecurityTradingStatus::Enum &value) const
Identifies the current market state of the instrument.
Definition: Messages.h:318
bool totNumReports(UInt32 &value) const
Total number of instruments in the Replay loop.
Definition: Messages.h:289
bool totNumReports(UInt32 &value) const
Total number of instruments in the Replay loop.
Definition: Messages.h:2402
EventsEntry(const void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:2076
Timestamp transactTime() const
Start of event processing time in number of nanoseconds since Unix epoch.
Definition: Messages.h:3439
StrRef securityAltId() const
ISIN value as provided by ANNA, Association of National Numbering Agencies.
Definition: Messages.h:6170
bool mainFraction(UInt8 &value) const
Price Denominator of Main Fraction.
Definition: Messages.h:5049
static BlockLength blockLength(SchemaVersion)
Size of message body in bytes.
Definition: Messages.h:7541
BinaryGroupEntry< GroupSize8Byte::BlockLength > Base
Aliases base class type.
Definition: Messages.h:7136
bool highLimitPrice(Decimal &value) const
Allowable high limit price for the trading day.
Definition: Messages.h:6465
InstAttrib instAttrib() const
Returns instance of InstAttrib repeating group.
Definition: Messages.h:830
bool lowLimitPrice(Decimal &value) const
Lower price threshold for the instrument.
Definition: Messages.h:3522
static BlockLength blockLength(SchemaVersion)
Size of message body in bytes.
Definition: Messages.h:973
bool parValue(Decimal &value) const
Par value.
Definition: Messages.h:672
MatchEventIndicator matchEventIndicator() const
Bitmap field of eight Boolean type indicators reflecting the end of updates for a given Globex event...
Definition: Messages.h:6223
Int32 securityId() const
Unique instrument ID.
Definition: Messages.h:6334
bool tradeableSize(Int32 &value) const
Tradeable qty.
Definition: Messages.h:3114
Timestamp transactTime() const
Start of event processing time in number of nanoseconds since Unix epoch.
Definition: Messages.h:949
IncrementalRefreshBook46()
Initializes blank instance.
Definition: Messages.h:3233
UInt64 orderId() const
Unique Order ID.
Definition: Messages.h:5704
bool openInterestQty(Int32 &value) const
The total open interest for the market at the close of the prior trading session. ...
Definition: Messages.h:5134
static BlockLength blockLength(SchemaVersion)
Returns size of entry body in bytes for given version of message template.
Definition: Messages.h:5960
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:5689
static const Char * className()
Entity class name.
Definition: Messages.h:4460
Entry(const void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:3670
OrderUpdateAction::Enum orderUpdateAction() const
Order book update action to be applied to the order referenced by OrderID.
Definition: Messages.h:3206
static const Char * className()
Entity class name.
Definition: Messages.h:4328
Int32 numberOfOrders() const
The total number of real orders per instrument that participated in a match step within a match event...
Definition: Messages.h:5324
static BlockLength blockLength(SchemaVersion)
Returns size of entry body in bytes for given version of message template.
Definition: Messages.h:3885
BinaryGroup< InstAttribEntry, GroupSize, MessageSize > InstAttrib
Repeating group containing InstAttribEntry entries.
Definition: Messages.h:4576
IncrementalRefreshLimitsBanding50()
Initializes blank instance.
Definition: Messages.h:3591
static BlockLength blockLength(SchemaVersion)
Returns size of entry body in bytes for given version of message template.
Definition: Messages.h:2159
BinaryGroup< Entry, GroupSize, MessageSize > Entries
Repeating group containing Entry entries.
Definition: Messages.h:3588
bool numberOfOrders(Int32 &value) const
Aggregate number of orders at the given price level.
Definition: Messages.h:4009
IncrementalRefreshDailyStatistics49(const void *data, EncodedLength length)
Initializes instance over given memory block.
Definition: Messages.h:3428
bool maxPriceVariation(Decimal &value) const
Differential value for price banding.
Definition: Messages.h:2721
MatchEventIndicator matchEventIndicator() const
Bitmap field of eight Boolean type indicators reflecting the end of updates for a given Globex event...
Definition: Messages.h:6967
static StrRef fixType()
FIX message type.
Definition: Messages.h:860
bool numberOfOrders(Int32 &value) const
In Book entry - aggregate number of orders at given price level.
Definition: Messages.h:6805
IncrementalRefreshTradeSummary48(const void *data, EncodedLength length)
Initializes instance over given memory block.
Definition: Messages.h:5443
EntryTypeLimits entryType() const
Market Data entry type.
Definition: Messages.h:3566
Int8 lotType() const
This tag is required to interpret the value in tag 1231-MinLotSize.
Definition: Messages.h:2249
EntryTypeVol entryType() const
Electronic Volume entry provides cumulative session trade volume updated with the event...
Definition: Messages.h:3877
bool lowLimitPrice(Decimal &value) const
Allowable low limit price for the trading day.
Definition: Messages.h:5144
MDInstrumentDefinitionFuture.
Definition: Messages.h:1294
static const Char * className()
Entity class name.
Definition: Messages.h:3415
static BlockLength blockLength(SchemaVersion)
Size of message body in bytes.
Definition: Messages.h:3277
bool minCabPrice(Decimal &value) const
Defines cabinet price for outright options products.
Definition: Messages.h:4976
InstrumentDefinitionFX63(const void *data, EncodedLength length)
Initializes instance over given memory block.
Definition: Messages.h:6212
StrRef issuer() const
Name of security issuer or the Legal Entity Identifier (LEI - the International ISO standard 17442)...
Definition: Messages.h:723
MatchEventIndicator matchEventIndicator() const
Bitmap field of eight Boolean type indicators reflecting the end of updates for a given Globex event...
Definition: Messages.h:4370
BinaryGroup< Entry, GroupSize, MessageSize > Entries
Repeating group containing Entry entries.
Definition: Messages.h:5762
bool unitOfMeasureQty(Decimal &value) const
This field contains the contract size for each instrument.
Definition: Messages.h:1798
bool maturityDate(Timestamp &value) const
Maturity Date.
Definition: Messages.h:642
EntryType::Enum entryType() const
Market Data entry type.
Definition: Messages.h:4067
bool orderPriority(UInt64 &value) const
Order priority for execution on the order book.
Definition: Messages.h:6885
IncrementalRefreshOrderBook47(const void *data, EncodedLength length)
Initializes instance over given memory block.
Definition: Messages.h:5620
Int8 Int8
int8.
Definition: Fields.h:63
BinaryGroup< Entry, GroupSize, MessageSize > Entries
Repeating group containing Entry entries.
Definition: Messages.h:3422
static const Char * className()
Returns class name.
Definition: Messages.h:6995
StrRef couponDayCount() const
The day count convention used in interest calculations for a bond or an interest bearing security...
Definition: Messages.h:704
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:3829
Entries entries() const
Returns instance of Entries repeating group.
Definition: Messages.h:5830
StrRef symbol() const
Instrument Name or Symbol.
Definition: Messages.h:1643
bool tradingReferenceDate(Timestamp &value) const
Indicates session date corresponding to the settlement price in tag 1150-TradingReferencePrice.
Definition: Messages.h:5173
EntryTypeBook::Enum entryType() const
Market Data entry type.
Definition: Messages.h:5590
SecurityIDSource securityIdSource() const
Identifies class or source of tag 48-SecurityID value.
Definition: Messages.h:1660
static const Char * className()
Entity class name.
Definition: Messages.h:5607
static const Char * className()
Entity class name.
Definition: Messages.h:7327
FeedTypesEntry(const void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:5933
UInt8 marketSegmentId() const
Identifies the market segment, populated for all CME Globex instruments.
Definition: Messages.h:1600
TradingSessionsEntry(const void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:6103
MDInstrumentDefinitionOption.
Definition: Messages.h:4406
static const Char * className()
Entity class name.
Definition: Messages.h:3223
InstrumentDefinitionOption55()
Initializes blank instance.
Definition: Messages.h:4762
bool maturityDate(Timestamp &value) const
For Spot instruments will not contain the value.
Definition: Messages.h:6150
Entry(const void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:3504
static BlockLength blockLength(SchemaVersion)
Returns size of entry body in bytes for given version of message template.
Definition: Messages.h:4622
static StrRef fixType()
FIX message type.
Definition: Messages.h:5669
bool orderPriority(UInt64 &value) const
Order priority for execution on the order book.
Definition: Messages.h:5543
StrRef securityGroup() const
Security Group.
Definition: Messages.h:2909
bool entryPx(Decimal &value) const
Market Data entry price.
Definition: Messages.h:3043
SecurityUpdateAction::Enum securityUpdateAction() const
Last Security update action on Incremental feed, &#39;D&#39; or &#39;M&#39; is used when a mid-week deletion or modif...
Definition: Messages.h:2414
static const Char * className()
Entity class name.
Definition: Messages.h:2369
SchemaVersion version() const
Version of message being referenced.
MDIncrementalRefreshSessionStatisticsLongQty.
Definition: Messages.h:7396
StrRef securityGroup() const
Security Group Code.
Definition: Messages.h:6307
UInt32 minTradeVol() const
The minimum trading volume for a security.
Definition: Messages.h:448
UnderlyingsEntry(const void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:4650
StrRef cfiCode() const
ISO standard instrument categorization code.
Definition: Messages.h:1675
UInt32 maxTradeVol() const
The maximum trading volume for a security.
Definition: Messages.h:1730
StrRef settlType() const
For SPOTs will contain 0.
Definition: Messages.h:6525
UInt32 rptSeq() const
Sequence number of the last Market Data entry processed for the instrument.
Definition: Messages.h:4134
static StrRef fixType()
FIX message type.
Definition: Messages.h:7389
bool securityTradingStatus(SecurityTradingStatus::Enum &value) const
Identifies the current trading state of the instrument.
Definition: Messages.h:7755
StrRef fxCurrencySymbol() const
Base/Local.
Definition: Messages.h:6513
bool unitOfMeasureQty(Decimal &value) const
This field contains the contract size for each instrument.
Definition: Messages.h:6455
IncrementalRefreshBookLongQty64(const void *data, EncodedLength length)
Initializes instance over given memory block.
Definition: Messages.h:6947
Number of repeating EventType entries.
Definition: Messages.h:2066
Timestamp transactTime() const
Start of event processing time in number of nanoseconds since Unix epoch.
Definition: Messages.h:2901
static const Char * className()
Entity class name.
Definition: Messages.h:6848
static const Char * className()
Returns class name.
Definition: Messages.h:2864
Decimal displayFactor() const
Contains the multiplier to convert the CME Globex display price to the conventional price...
Definition: Messages.h:1748
static const Char * className()
Returns class name.
Definition: Messages.h:7548
bool instrumentGUId(UInt64 &value) const
External unique instrument ID.
Definition: Messages.h:808
UInt16 interveningDays() const
For SPOT, number of business days between trade date and value (settlement) date. ...
Definition: Messages.h:6536
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:2233
static const Char * className()
Entity class name.
Definition: Messages.h:3137
bool tradingReferenceDate(Timestamp &value) const
Indicates session date corresponding to the reference price in tag 1150-TradingReferencePrice.
Definition: Messages.h:547
Int32 securityId() const
Unique instrument ID.
Definition: Messages.h:7702
Timestamp eventTime() const
Date and Time of instrument Activation or Expiration event sent as number of nanoseconds since Unix e...
Definition: Messages.h:69
static StrRef fixType()
FIX message type.
Definition: Messages.h:3008
Int32 securityId() const
Security ID.
Definition: Messages.h:4283
static BlockLength blockLength(SchemaVersion)
Returns size of entry body in bytes for given version of message template.
Definition: Messages.h:2272
BinaryGroup< EventsEntry, GroupSize, MessageSize > Events
Repeating group containing EventsEntry entries.
Definition: Messages.h:2117
StrRef symbol() const
Instrument Name or Symbol.
Definition: Messages.h:6325
bool highLimitPrice(Decimal &value) const
Allowable high limit price for the trading day.
Definition: Messages.h:5154
EntryTypeTrade entryType() const
Market Data entry type.
Definition: Messages.h:5351
UInt32 lastMsgSeqNumProcessed() const
Sequence number of the last Incremental feed packet processed.
Definition: Messages.h:7685
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:5981
InstAttribValue instAttribValue() const
Bitmap field of 32 Boolean type Instrument eligibility flags.
Definition: Messages.h:2202
StrRef financialInstrumentFullName() const
EBS instrument long name.
Definition: Messages.h:6503
UInt32 maxTradeVol() const
The maximum trading volume for a security.
Definition: Messages.h:5002
InstAttribEntry(const void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:5988
SecurityUpdateAction::Enum securityUpdateAction() const
Last Security update action on Incremental feed, &#39;D&#39; or &#39;M&#39; is used when a mid-week deletion or modif...
Definition: Messages.h:301
bool settlDate(Timestamp &value) const
Settle (Value) Date corresponding to Trade Date.
Definition: Messages.h:6129
BinaryGroup< OrderIDEntry, GroupSize8Byte, MessageSize > OrderIDEntries
Repeating group containing OrderIDEntry entries.
Definition: Messages.h:6941
StrRef unitOfMeasure() const
Unit of measure for the products&#39; original contract size.
Definition: Messages.h:2649
SettlPriceType settlPriceType() const
Bitmap field of eight Boolean type indicators representing settlement price type. ...
Definition: Messages.h:5114
SnapshotFullRefreshLongQty69()
Initializes blank instance.
Definition: Messages.h:7670
StrRef riskSet() const
Risk Set identifies the list of instruments sharing credit limits set up.
Definition: Messages.h:2781
static const Char * className()
Returns class name.
Definition: Messages.h:6726
UInt32 maxTradeVol() const
The maximum trading volume for a security.
Definition: Messages.h:6410
MatchEventIndicator matchEventIndicator() const
Bitmap field of eight Boolean type indicators reflecting the end of updates for a given Globex event...
Definition: Messages.h:7526
BinaryGroup< InstAttribEntry, GroupSize, MessageSize > InstAttrib
Repeating group containing InstAttribEntry entries.
Definition: Messages.h:202
UserDefinedInstrument userDefinedInstrument() const
User-defined instruments flag.
Definition: Messages.h:6495
bool securityTradingStatus(SecurityTradingStatus::Enum &value) const
Identifies the trading status applicable to the instrument or Security Group.
Definition: Messages.h:2966
bool securityTradingStatus(SecurityTradingStatus::Enum &value) const
Identifies the current state of the instrument.
Definition: Messages.h:2432
Int32 lastQty() const
Quantity bought or sold on this last fill.
Definition: Messages.h:5413
static StrRef fixType()
FIX message type.
Definition: Messages.h:4239
IntegralConstant< Int8, 0 > UpdateTypeNew
MDUpdateTypeNew.
Definition: Fields.h:96
InstrumentDefinitionFuture54()
Initializes blank instance.
Definition: Messages.h:1527
UInt32 lastMsgSeqNumProcessed() const
Sequence number of the last Incremental feed packet processed.
Definition: Messages.h:4109
InstAttribEntry(const void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:4537
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:7022
LegsEntry(const void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:2300
static const Char * className()
Entity class name.
Definition: Messages.h:6082
BinaryGroup< Entry, GroupSize, MessageSize > Entries
Repeating group containing Entry entries.
Definition: Messages.h:7500
bool highLimitPrice(Decimal &value) const
Upper price threshold for the instrument.
Definition: Messages.h:4188
MatchEventIndicator matchEventIndicator() const
Bitmap field of eight Boolean type indicators reflecting the end of updates for a given Globex event...
Definition: Messages.h:5463
bool maxPriceVariation(Decimal &value) const
Differential value for price banding.
Definition: Messages.h:6485
IntegralConstant< UInt8, 4 > SecurityAltIDSourceISIN
SecurityAltIDSourceISIN type.
Definition: Fields.h:106
static const Char * className()
Entity class name.
Definition: Messages.h:6199
BinaryGroupEntry< GroupSize8Byte::BlockLength > Base
Aliases base class type.
Definition: Messages.h:3151
static const Char * className()
Entity class name.
Definition: Messages.h:5430
IncrementalRefreshTradeSummaryLongQty65()
Initializes blank instance.
Definition: Messages.h:7186
UpdateAction::Enum updateAction() const
Market Data update action.
Definition: Messages.h:5343
OrderIDEntries orderIdEntries() const
Returns instance of OrderIDEntries repeating group.
Definition: Messages.h:5477
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:6096
Int8 lotType() const
This tag is required to interpret the value in tag 1231-MinLotSize.
Definition: Messages.h:1487
static BlockLength blockLength(SchemaVersion)
Returns size of entry body in bytes for given version of message template.
Definition: Messages.h:188
UInt8 marketSegmentId() const
Identifies the market segment, populated for all CME Globex instruments.
Definition: Messages.h:6282
StrRef financialInstrumentFullName() const
Long name of the instrument.
Definition: Messages.h:2813
bool entryPx(Decimal &value) const
Market Data entry price.
Definition: Messages.h:6768
UInt32 rptSeq() const
Market Data entry sequence number per instrument update.
Definition: Messages.h:3354
static BlockLength blockLength(SchemaVersion)
Returns size of entry body in bytes for given version of message template.
Definition: Messages.h:6841
static const Char * className()
Returns class name.
Definition: Messages.h:853
Entries entries() const
Returns instance of Entries repeating group.
Definition: Messages.h:7368
Int32 entrySize() const
Cumulative traded volume.
Definition: Messages.h:3844
Timestamp transactTime() const
Start of event processing time in number of nanoseconds since Unix epoch.
Definition: Messages.h:5631
static const Char * className()
Returns class name.
Definition: Messages.h:1182
Integral constant.
Definition: Integral.h:83
BinaryGroup< LotTypeRulesEntry, GroupSize, MessageSize > LotTypeRules
Repeating group containing LotTypeRulesEntry entries.
Definition: Messages.h:2286
Int32 securityId() const
Security ID.
Definition: Messages.h:5796
StrRef text() const
Free format text string.
Definition: Messages.h:1219
bool entryPx(Decimal &value) const
Market Data entry price.
Definition: Messages.h:3326
StrRef currency() const
Identifies the currency used for price.
Definition: Messages.h:421
MDInstrumentDefinitionFixedIncome.
Definition: Messages.h:32
StrRef securityType() const
Security Type.
Definition: Messages.h:403
EntryTypeDailyStatistics::Enum entryType() const
Market Data entry type.
Definition: Messages.h:3398
bool displayQty(Int32 &value) const
Visible order qty.
Definition: Messages.h:5563
static BlockLength blockLength(SchemaVersion)
Returns size of entry body in bytes for given version of message template.
Definition: Messages.h:3574
UInt8 priceLevel() const
Aggregate book level.
Definition: Messages.h:6815
InstrumentDefinitionOption55(const void *data, EncodedLength length)
Initializes instance over given memory block.
Definition: Messages.h:4765
static BlockLength blockLength(SchemaVersion)
Returns size of entry body in bytes for given version of message template.
Definition: Messages.h:7653
Entries entries() const
Returns instance of Entries repeating group.
Definition: Messages.h:3456
IncrementalRefreshDailyStatistics49()
Initializes blank instance.
Definition: Messages.h:3425
MDIncrementalRefreshLimitsBanding.
Definition: Messages.h:3484
static BlockLength blockLength(SchemaVersion)
Returns size of entry body in bytes for given version of message template.
Definition: Messages.h:1510
Decimal displayFactor() const
Contains the multiplier to convert the CME Globex display price to the conventional price...
Definition: Messages.h:2611
Number of entries in Market Data message.
Definition: Messages.h:5515
UInt32 currentChunk() const
Chunk sequence.
Definition: Messages.h:5813
bool securityTradingStatus(SecurityTradingStatus::Enum &value) const
Identifies the current state of the instrument.
Definition: Messages.h:6263
bool unitOfMeasureQty(Decimal &value) const
This field contains the contract size for each instrument.
Definition: Messages.h:5091
static BlockLength blockLength(SchemaVersion)
Returns size of entry body in bytes for given version of message template.
Definition: Messages.h:1450
Timestamp transactTime() const
Start of event processing time in number of nanoseconds since Unix epoch.
Definition: Messages.h:4352
bool couponRate(Decimal &value) const
The rate of interest that, when multiplied by the principal, par value, or face value of a bond...
Definition: Messages.h:662
Int32 securityId() const
Security ID.
Definition: Messages.h:4125
IncrementalRefreshVolumeLongQty66()
Initializes blank instance.
Definition: Messages.h:7337
#define ONIXS_CMEMDH_NAMESPACE_END
Definition: Bootstrap.h:68
MatchEventIndicator matchEventIndicator() const
Bitmap field of eight Boolean type indicators reflecting the end of updates for a given Globex event...
Definition: Messages.h:958