OnixS C++ CME Market Data Handler  4.8.0.10
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 /// MDInstrumentDefinitionFuture.
35 {
36  /// Message template ID from SBE schema.
37  enum { TemplateId = 27 };
38 
39  /// Number of repeating EventType entries.
40  /// Entry of EventsEntry repeating group.
43  <
45  >
46  {
47  /// Aliases base class type.
48  typedef
50  <
52  >
54 
55  /// Initializes blank instance.
57  {
58  }
59 
60  /// Initializes instance of given
61  /// version over given memory block.
63  const void* data,
64  BodySize size,
65  SchemaVersion version)
66  : Base(data, size, version)
67  {
68  if (size < bodySize(version))
69  throwBadBinaryData(className());
70  }
71 
72  /// Code to represent the type of event.
74  {
75  const BodySize offset = 0;
76 
77  return enumeration<EventType>(offset);
78  }
79 
80  /// Date and Time of instument Activation or Expiration event
81  /// sent as number of nanoseconds since Unix epoch.
83  {
84  const BodySize offset = 1;
85 
86  return ordinary<Timestamp>(offset);
87  }
88 
89  /// Returns size of entry body in bytes
90  /// for given version of message template.
93  {
94  return 9;
95  }
96 
97  /// Entity class name.
99  static const Char* className()
100  {
101  return "InstrumentDefinitionFuture27.EventsEntry";
102  }
103  };
104 
105  /// Repeating group containing EventsEntry entries.
106  typedef
109 
110  /// Number of repeating FeedType entries.
111  /// Entry of FeedTypesEntry repeating group.
114  <
116  >
117  {
118  /// Aliases base class type.
119  typedef
121  <
123  >
125 
126  /// Initializes blank instance.
128  {
129  }
130 
131  /// Initializes instance of given
132  /// version over given memory block.
134  const void* data,
135  BodySize size,
136  SchemaVersion version)
137  : Base(data, size, version)
138  {
139  if (size < bodySize(version))
140  throwBadBinaryData(className());
141  }
142 
143  /// Describes a class of service for a given data feed. GBX-
144  /// Real Book, GBI-Implied Book.
145  StrRef feedType() const
146  {
147  const BodySize offset = 0;
148  const BodySize length = 3;
149 
150  return fixedStr<length>(offset);
151  }
152 
153  /// Book depth.
155  {
156  const BodySize offset = 3;
157 
158  return ordinary<Int8>(offset);
159  }
160 
161  /// Returns size of entry body in bytes
162  /// for given version of message template.
165  {
166  return 4;
167  }
168 
169  /// Entity class name.
171  static const Char* className()
172  {
173  return "InstrumentDefinitionFuture27.FeedTypesEntry";
174  }
175  };
176 
177  /// Repeating group containing FeedTypesEntry entries.
178  typedef
181 
182  /// Number of repeating InstrAttribType entries.
183  /// Entry of InstAttribEntry repeating group.
186  <
188  >
189  {
190  /// Aliases base class type.
191  typedef
193  <
195  >
197 
198  /// Initializes blank instance.
200  {
201  }
202 
203  /// Initializes instance of given
204  /// version over given memory block.
206  const void* data,
207  BodySize size,
208  SchemaVersion version)
209  : Base(data, size, version)
210  {
211  if (size < bodySize(version))
212  throwBadBinaryData(className());
213  }
214 
215  /// Instrument eligibility attributes.
217  {
218  return InstAttribType();
219  }
220 
221  /// Bitmap field of 32 Boolean type instrument eligibility
222  /// flags.
224  {
225  const BodySize offset = 0;
226 
227  return ordinary<InstAttribValue>(offset);
228  }
229 
230  /// Returns size of entry body in bytes
231  /// for given version of message template.
234  {
235  return 4;
236  }
237 
238  /// Entity class name.
240  static const Char* className()
241  {
242  return "InstrumentDefinitionFuture27.InstAttribEntry";
243  }
244  };
245 
246  /// Repeating group containing InstAttribEntry entries.
247  typedef
250 
251  /// Number of entries.
252  /// Entry of LotTypeRulesEntry repeating group.
255  <
257  >
258  {
259  /// Aliases base class type.
260  typedef
262  <
264  >
266 
267  /// Initializes blank instance.
269  {
270  }
271 
272  /// Initializes instance of given
273  /// version over given memory block.
275  const void* data,
276  BodySize size,
277  SchemaVersion version)
278  : Base(data, size, version)
279  {
280  if (size < bodySize(version))
281  throwBadBinaryData(className());
282  }
283 
284  /// This tag is required to interpret the value in tag
285  /// 1231-MinLotSize.
286  Int8 lotType() const
287  {
288  const BodySize offset = 0;
289 
290  return ordinary<Int8>(offset);
291  }
292 
293  /// Minimum quantity accepted for order entry. If tag
294  /// 1093-LotType=4, this value is the minimum quantity for
295  /// order entry expressed in the applicable units, specified
296  /// in tag 996-UnitOfMeasure, e.g. megawatts.
297  bool minLotSize(Decimal& value) const
298  {
299  typedef NullDecimalQty Null;
300 
301  const BodySize offset = 1;
302 
303  return decimal(value, offset, Null());
304  }
305 
306  /// Returns size of entry body in bytes
307  /// for given version of message template.
310  {
311  return 5;
312  }
313 
314  /// Entity class name.
316  static const Char* className()
317  {
318  return "InstrumentDefinitionFuture27.LotTypeRulesEntry";
319  }
320  };
321 
322  /// Repeating group containing LotTypeRulesEntry entries.
323  typedef
326 
327  /// Initializes blank instance.
329  {
330  }
331 
332  /// Initializes instance over given memory block.
334  const void* data,
335  MessageSize size)
336  : BinaryMessage(data, size)
337  {
338  assert(TemplateId == templateId());
339 
340  if (size < bodySize(version()))
341  throwBadBinaryData(className());
342  }
343 
344  /// Bitmap field of eight Boolean type indicators reflecting
345  /// the end of updates for a given Globex event.
346  const MatchEventIndicator&
348  {
349  const BodySize offset = 0;
350 
351  return ordinary<MatchEventIndicator>(offset);
352  }
353 
354  /// Total number of instruments in the Replay loop. Used on
355  /// Replay Feed only.
356  bool totNumReports(UInt32& value) const
357  {
358  typedef NullUInt32 Null;
359 
360  const BodySize offset = 1;
361 
362  return ordinary(value, offset, Null());
363  }
364 
365  /// Last Security update action on Incremental feed, 'D' or
366  /// 'M' is used when a mid-week deletion or modification (i.e.
367  /// extension) occurs.
370  {
371  const BodySize offset = 5;
372 
373  return enumeration<SecurityUpdateAction>(offset);
374  }
375 
376  /// Timestamp of when the instrument was last added, modified
377  /// or deleted.
379  {
380  const BodySize offset = 6;
381 
382  return ordinary<Timestamp>(offset);
383  }
384 
385  /// Identifies the current state of the instrument. In
386  /// Security Definition message this tag is available in the
387  /// Instrument Replay feed only.
388  bool
390  SecurityTradingStatus::Enum& value) const
391  {
392  typedef NullUInt8 Null;
393 
394  const BodySize offset = 14;
395 
396  return enumeration<SecurityTradingStatus>(value, offset, Null());
397  }
398 
399  /// The channel ID as defined in the XML Configuration file.
400  Int16 applId() const
401  {
402  const BodySize offset = 15;
403 
404  return ordinary<Int16>(offset);
405  }
406 
407  /// Identifies the market segment, populated for all CME
408  /// Globex instruments.
410  {
411  const BodySize offset = 17;
412 
413  return ordinary<UInt8>(offset);
414  }
415 
416  /// Product complex.
418  {
419  const BodySize offset = 18;
420 
421  return ordinary<UInt8>(offset);
422  }
423 
424  /// Exchange used to identify a security.
426  {
427  const BodySize offset = 19;
428  const BodySize length = 4;
429 
430  return fixedStr<length>(offset);
431  }
432 
433  /// Security Group Code.
435  {
436  const BodySize offset = 23;
437  const BodySize length = 6;
438 
439  return fixedStr<length>(offset);
440  }
441 
442  /// The underlying asset code also known as Product Code.
443  StrRef asset() const
444  {
445  const BodySize offset = 29;
446  const BodySize length = 6;
447 
448  return fixedStr<length>(offset);
449  }
450 
451  /// Instrument Name or Symbol.
452  StrRef symbol() const
453  {
454  const BodySize offset = 35;
455  const BodySize length = 20;
456 
457  return fixedStr<length>(offset);
458  }
459 
460  /// Unique instrument ID.
462  {
463  const BodySize offset = 55;
464 
465  return ordinary<Int32>(offset);
466  }
467 
468  /// Identifies class or source of tag 48-SecurityID value.
470  {
471  return SecurityIDSource();
472  }
473 
474  /// Security Type.
476  {
477  const BodySize offset = 59;
478  const BodySize length = 6;
479 
480  return fixedStr<length>(offset);
481  }
482 
483  /// ISO standard instrument categorization code.
484  StrRef cfiCode() const
485  {
486  const BodySize offset = 65;
487  const BodySize length = 6;
488 
489  return fixedStr<length>(offset);
490  }
491 
492  /// This field provides the actual calendar date for contract
493  /// maturity.
495  {
496  typedef NullMaturityMonthYear Null;
497 
498  const BodySize offset = 71;
499 
500  return ordinary(value, offset, Null());
501  }
502 
503  /// Identifies currency used for price.
504  StrRef currency() const
505  {
506  const BodySize offset = 76;
507  const BodySize length = 3;
508 
509  return fixedStr<length>(offset);
510  }
511 
512  /// Identifies currency used for settlement, if different from
513  /// trading currency.
515  {
516  const BodySize offset = 79;
517  const BodySize length = 3;
518 
519  return fixedStr<length>(offset);
520  }
521 
522  /// Matching algorithm.
524  {
525  const BodySize offset = 82;
526 
527  return ordinary<CHAR>(offset);
528  }
529 
530  /// The minimum trading volume for a security.
532  {
533  const BodySize offset = 83;
534 
535  return ordinary<UInt32>(offset);
536  }
537 
538  /// The maximum trading volume for a security.
540  {
541  const BodySize offset = 87;
542 
543  return ordinary<UInt32>(offset);
544  }
545 
546  /// Minimum constant tick for the instrument, sent only if
547  /// instrument is non-VTT (Variable Tick table) eligible.
549  {
550  const BodySize offset = 91;
551 
552  return decimal<PRICE>(offset);
553  }
554 
555  /// Contains the multiplier to convert the CME Globex display
556  /// price to the conventional price.
558  {
559  const BodySize offset = 99;
560 
561  return decimal<FLOAT>(offset);
562  }
563 
564  /// Price Denominator of Main Fraction.
565  bool mainFraction(UInt8& value) const
566  {
567  typedef NullUInt8 Null;
568 
569  const BodySize offset = 107;
570 
571  return ordinary(value, offset, Null());
572  }
573 
574  /// Price Denominator of Sub Fraction.
575  bool subFraction(UInt8& value) const
576  {
577  typedef NullUInt8 Null;
578 
579  const BodySize offset = 108;
580 
581  return ordinary(value, offset, Null());
582  }
583 
584  /// Number of decimals in fractional display price.
585  bool priceDisplayFormat(UInt8& value) const
586  {
587  typedef NullUInt8 Null;
588 
589  const BodySize offset = 109;
590 
591  return ordinary(value, offset, Null());
592  }
593 
594  /// Unit of measure for the products' original contract size.
595  /// This will be populated for all products listed on CME
596  /// Globex.
598  {
599  const BodySize offset = 110;
600  const BodySize length = 30;
601 
602  return fixedStr<length>(offset);
603  }
604 
605  /// This field contains the contract size for each instrument.
606  /// Used in combination with tag 996-UnitofMeasure.
607  bool unitOfMeasureQty(Decimal& value) const
608  {
609  typedef NullPRICE Null;
610 
611  const BodySize offset = 140;
612 
613  return decimal(value, offset, Null());
614  }
615 
616  /// Reference price for prelisted instruments or the last
617  /// calculated Settlement whether it be Theoretical,
618  /// Preliminary or a Final Settle of the session.
619  bool tradingReferencePrice(Decimal& value) const
620  {
621  typedef NullPRICE Null;
622 
623  const BodySize offset = 148;
624 
625  return decimal(value, offset, Null());
626  }
627 
628  /// Bitmap field of eight Boolean type indicators representing
629  /// settlement price type.
631  {
632  const BodySize offset = 156;
633 
634  return ordinary<SettlPriceType>(offset);
635  }
636 
637  /// The total open interest for the market at the close of the
638  /// prior trading session.
639  bool openInterestQty(Int32& value) const
640  {
641  typedef NullInt32 Null;
642 
643  const BodySize offset = 157;
644 
645  return ordinary(value, offset, Null());
646  }
647 
648  /// The total cleared volume of instrument traded during the
649  /// prior trading session.
650  bool clearedVolume(Int32& value) const
651  {
652  typedef NullInt32 Null;
653 
654  const BodySize offset = 161;
655 
656  return ordinary(value, offset, Null());
657  }
658 
659  /// Allowable high limit price for the trading day.
660  bool highLimitPrice(Decimal& value) const
661  {
662  typedef NullPRICE Null;
663 
664  const BodySize offset = 165;
665 
666  return decimal(value, offset, Null());
667  }
668 
669  /// Allowable low limit price for the trading day.
670  bool lowLimitPrice(Decimal& value) const
671  {
672  typedef NullPRICE Null;
673 
674  const BodySize offset = 173;
675 
676  return decimal(value, offset, Null());
677  }
678 
679  /// Differential value for price banding.
680  bool maxPriceVariation(Decimal& value) const
681  {
682  typedef NullPRICE Null;
683 
684  const BodySize offset = 181;
685 
686  return decimal(value, offset, Null());
687  }
688 
689  /// Indicates the quantity that a contract will decay daily by
690  /// once the decay start date is reached.
691  bool decayQuantity(Int32& value) const
692  {
693  typedef NullInt32 Null;
694 
695  const BodySize offset = 189;
696 
697  return ordinary(value, offset, Null());
698  }
699 
700  /// Indicates the date at which a decaying contract will begin
701  /// to decay.
702  bool decayStartDate(Timestamp& value) const
703  {
704  typedef NullLocalMktDate Null;
705  typedef LocalMktDate FieldValue;
706 
707  const BodySize offset = 193;
708 
709  FieldValue fieldValue;
710 
711  if (ordinary(fieldValue, offset, Null()))
712  {
713  value = localMktDateToTimestamp(fieldValue);
714  return true;
715  }
716  return false;
717  }
718 
719  /// Fixed contract value assigned to each product.
720  bool originalContractSize(Int32& value) const
721  {
722  typedef NullInt32 Null;
723 
724  const BodySize offset = 195;
725 
726  return ordinary(value, offset, Null());
727  }
728 
729  /// Number of deliverable units per instrument, e.g., peak
730  /// days in maturity month or number of calendar days in
731  /// maturity month.
732  bool contractMultiplier(Int32& value) const
733  {
734  typedef NullInt32 Null;
735 
736  const BodySize offset = 199;
737 
738  return ordinary(value, offset, Null());
739  }
740 
741  /// Indicates the type of multiplier being applied to the
742  /// product. Optionally used in combination with tag
743  /// 231-ContractMultiplier.
744  bool contractMultiplierUnit(Int8& value) const
745  {
746  typedef NullInt8 Null;
747 
748  const BodySize offset = 203;
749 
750  return ordinary(value, offset, Null());
751  }
752 
753  /// The schedule according to which the electricity is
754  /// delivered in a physical contract, or priced in a financial
755  /// contract. Specifies whether the contract is defined
756  /// according to the Easter Peak, Eastern Off-Peak, Western
757  /// Peak or Western Off-Peak.
758  bool flowScheduleType(Int8& value) const
759  {
760  typedef NullInt8 Null;
761 
762  const BodySize offset = 204;
763 
764  return ordinary(value, offset, Null());
765  }
766 
767  /// Monetary value equivalent to the minimum price fluctuation.
768  bool minPriceIncrementAmount(Decimal& value) const
769  {
770  typedef NullPRICE Null;
771 
772  const BodySize offset = 205;
773 
774  return decimal(value, offset, Null());
775  }
776 
777  /// User-defined instruments flag.
779  {
780  const BodySize offset = 213;
781 
782  return ordinary<UserDefinedInstrument>(offset);
783  }
784 
785  /// Indicates session date corresponding to the settlement
786  /// price in tag 1150-TradingReferencePrice.
787  bool tradingReferenceDate(Timestamp& value) const
788  {
789  typedef NullLocalMktDate Null;
790  typedef LocalMktDate FieldValue;
791 
792  const BodySize offset = 214;
793 
794  FieldValue fieldValue;
795 
796  if (ordinary(fieldValue, offset, Null()))
797  {
798  value = localMktDateToTimestamp(fieldValue);
799  return true;
800  }
801  return false;
802  }
803 
804  /// Returns instance of Events repeating group.
805  Events events() const
806  {
807  return
808  groups().
809  head<Events>();
810  }
811 
812  /// Returns instance of FeedTypes repeating group.
814  {
815  return
816  groups().
817  tail<Events>().
818  head<FeedTypes>();
819  }
820 
821  /// Returns instance of InstAttrib repeating group.
823  {
824  return
825  groups().
826  tail<Events>().
827  tail<FeedTypes>().
828  head<InstAttrib>();
829  }
830 
831  /// Returns instance of LotTypeRules repeating group.
833  {
834  return
835  groups().
836  tail<Events>().
837  tail<FeedTypes>().
838  tail<InstAttrib>().
839  head<LotTypeRules>();
840  }
841 
842  /// Size of message body in bytes.
845  {
846  return 216;
847  }
848 
849  /// Returns class name.
851  static const Char* className()
852  {
853  return "InstrumentDefinitionFuture27";
854  }
855 
856  /// FIX message type.
858  static StrRef fixType()
859  {
860  return toStrRef("d");
861  }
862 };
863 
864 /// MDInstrumentDefinitionSpread.
868 {
869  /// Message template ID from SBE schema.
870  enum { TemplateId = 29 };
871 
872  /// Number of repeating EventType entries.
873  /// Entry of EventsEntry repeating group.
876  <
878  >
879  {
880  /// Aliases base class type.
881  typedef
883  <
885  >
887 
888  /// Initializes blank instance.
890  {
891  }
892 
893  /// Initializes instance of given
894  /// version over given memory block.
896  const void* data,
897  BodySize size,
898  SchemaVersion version)
899  : Base(data, size, version)
900  {
901  if (size < bodySize(version))
902  throwBadBinaryData(className());
903  }
904 
905  /// Code to represent the type of event.
907  {
908  const BodySize offset = 0;
909 
910  return enumeration<EventType>(offset);
911  }
912 
913  /// Date and time of instument Activation or Expiration event
914  /// sent as number of nanoseconds since Unix epoch.
916  {
917  const BodySize offset = 1;
918 
919  return ordinary<Timestamp>(offset);
920  }
921 
922  /// Returns size of entry body in bytes
923  /// for given version of message template.
926  {
927  return 9;
928  }
929 
930  /// Entity class name.
932  static const Char* className()
933  {
934  return "InstrumentDefinitionSpread29.EventsEntry";
935  }
936  };
937 
938  /// Repeating group containing EventsEntry entries.
939  typedef
942 
943  /// Number of FeedType entries.
944  /// Entry of FeedTypesEntry repeating group.
947  <
949  >
950  {
951  /// Aliases base class type.
952  typedef
954  <
956  >
958 
959  /// Initializes blank instance.
961  {
962  }
963 
964  /// Initializes instance of given
965  /// version over given memory block.
967  const void* data,
968  BodySize size,
969  SchemaVersion version)
970  : Base(data, size, version)
971  {
972  if (size < bodySize(version))
973  throwBadBinaryData(className());
974  }
975 
976  /// Describes a class of service for a given data feed. GBX-
977  /// Real Book, GBI-Implied Book.
978  StrRef feedType() const
979  {
980  const BodySize offset = 0;
981  const BodySize length = 3;
982 
983  return fixedStr<length>(offset);
984  }
985 
986  /// Identifies the depth of book.
988  {
989  const BodySize offset = 3;
990 
991  return ordinary<Int8>(offset);
992  }
993 
994  /// Returns size of entry body in bytes
995  /// for given version of message template.
998  {
999  return 4;
1000  }
1001 
1002  /// Entity class name.
1004  static const Char* className()
1005  {
1006  return "InstrumentDefinitionSpread29.FeedTypesEntry";
1007  }
1008  };
1009 
1010  /// Repeating group containing FeedTypesEntry entries.
1011  typedef
1014 
1015  /// Number of InstrAttribType entries.
1016  /// Entry of InstAttribEntry repeating group.
1019  <
1021  >
1022  {
1023  /// Aliases base class type.
1024  typedef
1026  <
1028  >
1030 
1031  /// Initializes blank instance.
1033  {
1034  }
1035 
1036  /// Initializes instance of given
1037  /// version over given memory block.
1039  const void* data,
1040  BodySize size,
1041  SchemaVersion version)
1042  : Base(data, size, version)
1043  {
1044  if (size < bodySize(version))
1045  throwBadBinaryData(className());
1046  }
1047 
1048  /// Instrument Eligibility Attributes.
1050  {
1051  return InstAttribType();
1052  }
1053 
1054  /// Bitmap field of 32 Boolean type Instrument eligibility
1055  /// flags.
1057  {
1058  const BodySize offset = 0;
1059 
1060  return ordinary<InstAttribValue>(offset);
1061  }
1062 
1063  /// Returns size of entry body in bytes
1064  /// for given version of message template.
1067  {
1068  return 4;
1069  }
1070 
1071  /// Entity class name.
1073  static const Char* className()
1074  {
1075  return "InstrumentDefinitionSpread29.InstAttribEntry";
1076  }
1077  };
1078 
1079  /// Repeating group containing InstAttribEntry entries.
1080  typedef
1083 
1084  /// Number of entries.
1085  /// Entry of LotTypeRulesEntry repeating group.
1088  <
1090  >
1091  {
1092  /// Aliases base class type.
1093  typedef
1095  <
1097  >
1099 
1100  /// Initializes blank instance.
1102  {
1103  }
1104 
1105  /// Initializes instance of given
1106  /// version over given memory block.
1108  const void* data,
1109  BodySize size,
1110  SchemaVersion version)
1111  : Base(data, size, version)
1112  {
1113  if (size < bodySize(version))
1114  throwBadBinaryData(className());
1115  }
1116 
1117  /// This tag is required to interpret the value in tag
1118  /// 1231-MinLotSize.
1119  Int8 lotType() const
1120  {
1121  const BodySize offset = 0;
1122 
1123  return ordinary<Int8>(offset);
1124  }
1125 
1126  /// Minimum quantity accepted for order entry. If tag
1127  /// 1093-LotType=4, this value is the minimum quantity for
1128  /// order entry expressed in the applicable units, specified
1129  /// in tag 996-UnitOfMeasure, e.g. megawatts.
1130  bool minLotSize(Decimal& value) const
1131  {
1132  typedef NullDecimalQty Null;
1133 
1134  const BodySize offset = 1;
1135 
1136  return decimal(value, offset, Null());
1137  }
1138 
1139  /// Returns size of entry body in bytes
1140  /// for given version of message template.
1143  {
1144  return 5;
1145  }
1146 
1147  /// Entity class name.
1149  static const Char* className()
1150  {
1151  return "InstrumentDefinitionSpread29.LotTypeRulesEntry";
1152  }
1153  };
1154 
1155  /// Repeating group containing LotTypeRulesEntry entries.
1156  typedef
1159 
1160  /// Number of Leg entries.
1161  /// Entry of LegsEntry repeating group.
1164  <
1166  >
1167  {
1168  /// Aliases base class type.
1169  typedef
1171  <
1173  >
1175 
1176  /// Initializes blank instance.
1178  {
1179  }
1180 
1181  /// Initializes instance of given
1182  /// version over given memory block.
1184  const void* data,
1185  BodySize size,
1186  SchemaVersion version)
1187  : Base(data, size, version)
1188  {
1189  if (size < bodySize(version))
1190  throwBadBinaryData(className());
1191  }
1192 
1193  /// Leg Security ID.
1195  {
1196  const BodySize offset = 0;
1197 
1198  return ordinary<Int32>(offset);
1199  }
1200 
1201  /// Identifies source of tag 602-LegSecurityID value.
1203  {
1204  return SecurityIDSource();
1205  }
1206 
1207  /// Leg side.
1209  {
1210  const BodySize offset = 4;
1211 
1212  return enumeration<LegSide>(offset);
1213  }
1214 
1215  /// Leg ratio of quantity for this individual leg relative to
1216  /// the entire multi-leg instrument.
1218  {
1219  const BodySize offset = 5;
1220 
1221  return ordinary<Int8>(offset);
1222  }
1223 
1224  /// Price for the future leg of a UDS Covered instrument.
1225  bool legPrice(Decimal& value) const
1226  {
1227  typedef NullPRICE Null;
1228 
1229  const BodySize offset = 6;
1230 
1231  return decimal(value, offset, Null());
1232  }
1233 
1234  /// Delta used to calculate the quantity of futures used to
1235  /// cover the option or option strategy.
1236  bool legOptionDelta(Decimal& value) const
1237  {
1238  typedef NullDecimalQty Null;
1239 
1240  const BodySize offset = 14;
1241 
1242  return decimal(value, offset, Null());
1243  }
1244 
1245  /// Returns size of entry body in bytes
1246  /// for given version of message template.
1249  {
1250  return 18;
1251  }
1252 
1253  /// Entity class name.
1255  static const Char* className()
1256  {
1257  return "InstrumentDefinitionSpread29.LegsEntry";
1258  }
1259  };
1260 
1261  /// Repeating group containing LegsEntry entries.
1262  typedef
1265 
1266  /// Initializes blank instance.
1268  {
1269  }
1270 
1271  /// Initializes instance over given memory block.
1273  const void* data,
1274  MessageSize size)
1275  : BinaryMessage(data, size)
1276  {
1277  assert(TemplateId == templateId());
1278 
1279  if (size < bodySize(version()))
1280  throwBadBinaryData(className());
1281  }
1282 
1283  /// Bitmap field of eight Boolean type indicators reflecting
1284  /// the end of updates for a given Globex event.
1285  const MatchEventIndicator&
1287  {
1288  const BodySize offset = 0;
1289 
1290  return ordinary<MatchEventIndicator>(offset);
1291  }
1292 
1293  /// Total number of instruments in the Replay loop. Used on
1294  /// Replay Feed only.
1295  bool totNumReports(UInt32& value) const
1296  {
1297  typedef NullUInt32 Null;
1298 
1299  const BodySize offset = 1;
1300 
1301  return ordinary(value, offset, Null());
1302  }
1303 
1304  /// Last Security update action on Incremental feed, 'D' or
1305  /// 'M' is used when a mid-week deletion or modification (i.e.
1306  /// extension) occurs.
1309  {
1310  const BodySize offset = 5;
1311 
1312  return enumeration<SecurityUpdateAction>(offset);
1313  }
1314 
1315  /// Timestamp of when the instrument was last added, modified
1316  /// or deleted.
1318  {
1319  const BodySize offset = 6;
1320 
1321  return ordinary<Timestamp>(offset);
1322  }
1323 
1324  /// Identifies the current state of the instrument. The data
1325  /// is available in the Instrument Replay feed only.
1326  bool
1328  SecurityTradingStatus::Enum& value) const
1329  {
1330  typedef NullUInt8 Null;
1331 
1332  const BodySize offset = 14;
1333 
1334  return enumeration<SecurityTradingStatus>(value, offset, Null());
1335  }
1336 
1337  /// The channel ID as defined in the XML Configuration file.
1338  Int16 applId() const
1339  {
1340  const BodySize offset = 15;
1341 
1342  return ordinary<Int16>(offset);
1343  }
1344 
1345  /// Identifies the market segment, populated for all CME
1346  /// Globex instruments.
1348  {
1349  const BodySize offset = 17;
1350 
1351  return ordinary<UInt8>(offset);
1352  }
1353 
1354  /// Product complex.
1355  bool underlyingProduct(UInt8& value) const
1356  {
1357  typedef NullUInt8 Null;
1358 
1359  const BodySize offset = 18;
1360 
1361  return ordinary(value, offset, Null());
1362  }
1363 
1364  /// Exchange used to identify a security.
1366  {
1367  const BodySize offset = 19;
1368  const BodySize length = 4;
1369 
1370  return fixedStr<length>(offset);
1371  }
1372 
1373  /// Security Group Code.
1375  {
1376  const BodySize offset = 23;
1377  const BodySize length = 6;
1378 
1379  return fixedStr<length>(offset);
1380  }
1381 
1382  /// The underlying asset code also known as Product Code.
1383  StrRef asset() const
1384  {
1385  const BodySize offset = 29;
1386  const BodySize length = 6;
1387 
1388  return fixedStr<length>(offset);
1389  }
1390 
1391  /// Instrument Name or Symbol. Previously used as Group Code.
1392  StrRef symbol() const
1393  {
1394  const BodySize offset = 35;
1395  const BodySize length = 20;
1396 
1397  return fixedStr<length>(offset);
1398  }
1399 
1400  /// Unique instrument ID.
1402  {
1403  const BodySize offset = 55;
1404 
1405  return ordinary<Int32>(offset);
1406  }
1407 
1408  /// Identifies class or source of the security ID (Tag 48)
1409  /// value.
1411  {
1412  return SecurityIDSource();
1413  }
1414 
1415  /// Security Type.
1417  {
1418  const BodySize offset = 59;
1419  const BodySize length = 6;
1420 
1421  return fixedStr<length>(offset);
1422  }
1423 
1424  /// ISO standard instrument categorization code.
1425  StrRef cfiCode() const
1426  {
1427  const BodySize offset = 65;
1428  const BodySize length = 6;
1429 
1430  return fixedStr<length>(offset);
1431  }
1432 
1433  /// This field provides the actual calendar date for contract
1434  /// maturity.
1436  {
1437  typedef NullMaturityMonthYear Null;
1438 
1439  const BodySize offset = 71;
1440 
1441  return ordinary(value, offset, Null());
1442  }
1443 
1444  /// Identifies currency used for price.
1446  {
1447  const BodySize offset = 76;
1448  const BodySize length = 3;
1449 
1450  return fixedStr<length>(offset);
1451  }
1452 
1453  /// Strategy type.
1455  {
1456  const BodySize offset = 79;
1457  const BodySize length = 5;
1458 
1459  return fixedStr<length>(offset);
1460  }
1461 
1462  /// User-defined instruments flag.
1464  {
1465  const BodySize offset = 84;
1466 
1467  return ordinary<UserDefinedInstrument>(offset);
1468  }
1469 
1470  /// Matching algorithm.
1472  {
1473  const BodySize offset = 85;
1474 
1475  return ordinary<CHAR>(offset);
1476  }
1477 
1478  /// The minimum trading volume for a security.
1480  {
1481  const BodySize offset = 86;
1482 
1483  return ordinary<UInt32>(offset);
1484  }
1485 
1486  /// The maximum trading volume for a security.
1488  {
1489  const BodySize offset = 90;
1490 
1491  return ordinary<UInt32>(offset);
1492  }
1493 
1494  /// Minimum constant tick for the instrument, sent only if
1495  /// instrument is non-VTT (Variable Tick table) eligible.
1497  {
1498  const BodySize offset = 94;
1499 
1500  return decimal<PRICE>(offset);
1501  }
1502 
1503  /// Contains the multiplier to convert the CME Globex display
1504  /// price to the conventional price.
1506  {
1507  const BodySize offset = 102;
1508 
1509  return decimal<FLOAT>(offset);
1510  }
1511 
1512  /// Number of decimals in fractional display price.
1513  bool priceDisplayFormat(UInt8& value) const
1514  {
1515  typedef NullUInt8 Null;
1516 
1517  const BodySize offset = 110;
1518 
1519  return ordinary(value, offset, Null());
1520  }
1521 
1522  /// Used for price calculation in spread and leg pricing.
1523  bool priceRatio(Decimal& value) const
1524  {
1525  typedef NullPRICE Null;
1526 
1527  const BodySize offset = 111;
1528 
1529  return decimal(value, offset, Null());
1530  }
1531 
1532  /// Tick Rule.
1533  bool tickRule(Int8& value) const
1534  {
1535  typedef NullInt8 Null;
1536 
1537  const BodySize offset = 119;
1538 
1539  return ordinary(value, offset, Null());
1540  }
1541 
1542  /// Unit of measure for the products' original contract size.
1544  {
1545  const BodySize offset = 120;
1546  const BodySize length = 30;
1547 
1548  return fixedStr<length>(offset);
1549  }
1550 
1551  /// Reference price - the most recently available Settlement
1552  /// whether it be Theoretical, Preliminary or a Final Settle
1553  /// of the session.
1554  bool tradingReferencePrice(Decimal& value) const
1555  {
1556  typedef NullPRICE Null;
1557 
1558  const BodySize offset = 150;
1559 
1560  return decimal(value, offset, Null());
1561  }
1562 
1563  /// Bitmap field of eight Boolean type indicators representing
1564  /// settlement price type.
1566  {
1567  const BodySize offset = 158;
1568 
1569  return ordinary<SettlPriceType>(offset);
1570  }
1571 
1572  /// The total open interest for the market at the close of the
1573  /// prior trading session.
1574  bool openInterestQty(Int32& value) const
1575  {
1576  typedef NullInt32 Null;
1577 
1578  const BodySize offset = 159;
1579 
1580  return ordinary(value, offset, Null());
1581  }
1582 
1583  /// The total cleared volume of instrument traded during the
1584  /// prior trading session.
1585  bool clearedVolume(Int32& value) const
1586  {
1587  typedef NullInt32 Null;
1588 
1589  const BodySize offset = 163;
1590 
1591  return ordinary(value, offset, Null());
1592  }
1593 
1594  /// Allowable high limit price for the trading day.
1595  bool highLimitPrice(Decimal& value) const
1596  {
1597  typedef NullPRICE Null;
1598 
1599  const BodySize offset = 167;
1600 
1601  return decimal(value, offset, Null());
1602  }
1603 
1604  /// Allowable low limit price for the trading day.
1605  bool lowLimitPrice(Decimal& value) const
1606  {
1607  typedef NullPRICE Null;
1608 
1609  const BodySize offset = 175;
1610 
1611  return decimal(value, offset, Null());
1612  }
1613 
1614  /// Differential value for price banding.
1615  bool maxPriceVariation(Decimal& value) const
1616  {
1617  typedef NullPRICE Null;
1618 
1619  const BodySize offset = 183;
1620 
1621  return decimal(value, offset, Null());
1622  }
1623 
1624  /// Price Denominator of Main Fraction.
1625  bool mainFraction(UInt8& value) const
1626  {
1627  typedef NullUInt8 Null;
1628 
1629  const BodySize offset = 191;
1630 
1631  return ordinary(value, offset, Null());
1632  }
1633 
1634  /// Price Denominator of Sub Fraction.
1635  bool subFraction(UInt8& value) const
1636  {
1637  typedef NullUInt8 Null;
1638 
1639  const BodySize offset = 192;
1640 
1641  return ordinary(value, offset, Null());
1642  }
1643 
1644  /// Indicates session date corresponding to the settlement
1645  /// price in tag 1150-TradingReferencePrice.
1646  bool tradingReferenceDate(Timestamp& value) const
1647  {
1648  typedef NullLocalMktDate Null;
1649  typedef LocalMktDate FieldValue;
1650 
1651  const BodySize offset = 193;
1652 
1653  FieldValue fieldValue;
1654 
1655  if (ordinary(fieldValue, offset, Null()))
1656  {
1657  value = localMktDateToTimestamp(fieldValue);
1658  return true;
1659  }
1660  return false;
1661  }
1662 
1663  /// Returns instance of Events repeating group.
1664  Events events() const
1665  {
1666  return
1667  groups().
1668  head<Events>();
1669  }
1670 
1671  /// Returns instance of FeedTypes repeating group.
1673  {
1674  return
1675  groups().
1676  tail<Events>().
1677  head<FeedTypes>();
1678  }
1679 
1680  /// Returns instance of InstAttrib repeating group.
1682  {
1683  return
1684  groups().
1685  tail<Events>().
1686  tail<FeedTypes>().
1687  head<InstAttrib>();
1688  }
1689 
1690  /// Returns instance of LotTypeRules repeating group.
1692  {
1693  return
1694  groups().
1695  tail<Events>().
1696  tail<FeedTypes>().
1697  tail<InstAttrib>().
1698  head<LotTypeRules>();
1699  }
1700 
1701  /// Returns instance of Legs repeating group.
1702  Legs legs() const
1703  {
1704  return
1705  groups().
1706  tail<Events>().
1707  tail<FeedTypes>().
1708  tail<InstAttrib>().
1709  tail<LotTypeRules>().
1710  head<Legs>();
1711  }
1712 
1713  /// Size of message body in bytes.
1716  {
1717  return 195;
1718  }
1719 
1720  /// Returns class name.
1722  static const Char* className()
1723  {
1724  return "InstrumentDefinitionSpread29";
1725  }
1726 
1727  /// FIX message type.
1729  static StrRef fixType()
1730  {
1731  return toStrRef("d");
1732  }
1733 };
1734 
1735 /// MDIncrementalRefreshBook.
1738 : BinaryMessage
1739 {
1740  /// Message template ID from SBE schema.
1741  enum { TemplateId = 32 };
1742 
1743  /// Number of entries in Market Data message.
1744  /// Entry of Entry repeating group.
1747  <
1749  >
1750  {
1751  /// Aliases base class type.
1752  typedef
1754  <
1756  >
1758 
1759  /// Initializes blank instance.
1761  {
1762  }
1763 
1764  /// Initializes instance of given
1765  /// version over given memory block.
1767  const void* data,
1768  BodySize size,
1769  SchemaVersion version)
1770  : Base(data, size, version)
1771  {
1772  if (size < bodySize(version))
1773  throwBadBinaryData(className());
1774  }
1775 
1776  /// Market Data entry price.
1777  bool entryPx(Decimal& value) const
1778  {
1779  typedef NullPRICE Null;
1780 
1781  const BodySize offset = 0;
1782 
1783  return decimal(value, offset, Null());
1784  }
1785 
1786  /// Market Data entry size.
1787  bool entrySize(Int32& value) const
1788  {
1789  typedef NullInt32 Null;
1790 
1791  const BodySize offset = 8;
1792 
1793  return ordinary(value, offset, Null());
1794  }
1795 
1796  /// Security ID.
1798  {
1799  const BodySize offset = 12;
1800 
1801  return ordinary<Int32>(offset);
1802  }
1803 
1804  /// Market Data entry sequence number per instrument update.
1805  UInt32 rptSeq() const
1806  {
1807  const BodySize offset = 16;
1808 
1809  return ordinary<UInt32>(offset);
1810  }
1811 
1812  /// In Book entry - aggregate number of orders at given price
1813  /// level.
1814  bool numberOfOrders(Int32& value) const
1815  {
1816  typedef NullInt32 Null;
1817 
1818  const BodySize offset = 20;
1819 
1820  return ordinary(value, offset, Null());
1821  }
1822 
1823  /// Aggregate book level.
1825  {
1826  const BodySize offset = 24;
1827 
1828  return ordinary<UInt8>(offset);
1829  }
1830 
1831  /// Market Data update action.
1833  {
1834  const BodySize offset = 25;
1835 
1836  return enumeration<UpdateAction>(offset);
1837  }
1838 
1839  /// Market Data entry type.
1841  {
1842  const BodySize offset = 26;
1843 
1844  return enumeration<EntryTypeBook>(offset);
1845  }
1846 
1847  /// Returns size of entry body in bytes
1848  /// for given version of message template.
1851  {
1852  return 27;
1853  }
1854 
1855  /// Entity class name.
1857  static const Char* className()
1858  {
1859  return "IncrementalRefreshBook32.Entry";
1860  }
1861  };
1862 
1863  /// Repeating group containing Entry entries.
1864  typedef
1867 
1868  /// Number of OrderID entries.
1869  /// Entry of OrderIDEntry repeating group.
1872  <
1874  >
1875  {
1876  /// Aliases base class type.
1877  typedef
1879  <
1881  >
1883 
1884  /// Initializes blank instance.
1886  {
1887  }
1888 
1889  /// Initializes instance of given
1890  /// version over given memory block.
1892  const void* data,
1893  BodySize size,
1894  SchemaVersion version)
1895  : Base(data, size, version)
1896  {
1897  if (size < bodySize(version))
1898  throwBadBinaryData(className());
1899  }
1900 
1901  /// Unique Order ID.
1902  UInt64 orderId() const
1903  {
1904  const BodySize offset = 0;
1905 
1906  return ordinary<UInt64>(offset);
1907  }
1908 
1909  /// Order priority for execution on the order book.
1910  bool orderPriority(UInt64& value) const
1911  {
1912  typedef NullUInt64 Null;
1913 
1914  const BodySize offset = 8;
1915 
1916  return ordinary(value, offset, Null());
1917  }
1918 
1919  /// Visible qty of order.
1920  bool displayQty(Int32& value) const
1921  {
1922  typedef NullInt32 Null;
1923 
1924  const BodySize offset = 16;
1925 
1926  return ordinary(value, offset, Null());
1927  }
1928 
1929  /// Reference to corresponding Price and Security ID, sequence
1930  /// of MD entry in the message.
1931  bool referenceId(UInt8& value) const
1932  {
1933  typedef NullUInt8 Null;
1934 
1935  const BodySize offset = 20;
1936 
1937  return ordinary(value, offset, Null());
1938  }
1939 
1940  /// Order book update action to be applied to the order
1941  /// referenced by OrderID.
1943  {
1944  const BodySize offset = 21;
1945 
1946  return enumeration<OrderUpdateAction>(offset);
1947  }
1948 
1949  /// Returns size of entry body in bytes
1950  /// for given version of message template.
1953  {
1954  return 22;
1955  }
1956 
1957  /// Entity class name.
1959  static const Char* className()
1960  {
1961  return "IncrementalRefreshBook32.OrderIDEntry";
1962  }
1963  };
1964 
1965  /// Repeating group containing OrderIDEntry entries.
1966  typedef
1969 
1970  /// Initializes blank instance.
1972  {
1973  }
1974 
1975  /// Initializes instance over given memory block.
1977  const void* data,
1978  MessageSize size)
1979  : BinaryMessage(data, size)
1980  {
1981  assert(TemplateId == templateId());
1982 
1983  if (size < bodySize(version()))
1984  throwBadBinaryData(className());
1985  }
1986 
1987  /// Start of event processing time in number of nanoseconds
1988  /// since Unix epoch.
1990  {
1991  const BodySize offset = 0;
1992 
1993  return ordinary<Timestamp>(offset);
1994  }
1995 
1996  /// Bitmap field of eight Boolean type indicators reflecting
1997  /// the end of updates for a given Globex event.
1998  const MatchEventIndicator&
2000  {
2001  const BodySize offset = 8;
2002 
2003  return ordinary<MatchEventIndicator>(offset);
2004  }
2005 
2006  /// Returns instance of Entries repeating group.
2008  {
2009  return
2010  groups().
2011  head<Entries>();
2012  }
2013 
2014  /// Returns instance of OrderIDEntries repeating group.
2016  {
2017  return
2018  groups().
2019  tail<Entries>().
2020  head<OrderIDEntries>();
2021  }
2022 
2023  /// Size of message body in bytes.
2026  {
2027  return 9;
2028  }
2029 
2030  /// Returns class name.
2032  static const Char* className()
2033  {
2034  return "IncrementalRefreshBook32";
2035  }
2036 
2037  /// FIX message type.
2039  static StrRef fixType()
2040  {
2041  return toStrRef("X");
2042  }
2043 };
2044 
2045 /// MDIncrementalRefreshDailyStatistics.
2048 : BinaryMessage
2049 {
2050  /// Message template ID from SBE schema.
2051  enum { TemplateId = 33 };
2052 
2053  /// Number of entries in Market Data message.
2054  /// Entry of Entry repeating group.
2057  <
2059  >
2060  {
2061  /// Aliases base class type.
2062  typedef
2064  <
2066  >
2068 
2069  /// Initializes blank instance.
2071  {
2072  }
2073 
2074  /// Initializes instance of given
2075  /// version over given memory block.
2077  const void* data,
2078  BodySize size,
2079  SchemaVersion version)
2080  : Base(data, size, version)
2081  {
2082  if (size < bodySize(version))
2083  throwBadBinaryData(className());
2084  }
2085 
2086  /// Market Data entry price.
2087  bool entryPx(Decimal& value) const
2088  {
2089  typedef NullPRICE Null;
2090 
2091  const BodySize offset = 0;
2092 
2093  return decimal(value, offset, Null());
2094  }
2095 
2096  /// Market Data entry size.
2097  bool entrySize(Int32& value) const
2098  {
2099  typedef NullInt32 Null;
2100 
2101  const BodySize offset = 8;
2102 
2103  return ordinary(value, offset, Null());
2104  }
2105 
2106  /// Security ID.
2108  {
2109  const BodySize offset = 12;
2110 
2111  return ordinary<Int32>(offset);
2112  }
2113 
2114  /// Market Data entry sequence number per instrument update.
2115  UInt32 rptSeq() const
2116  {
2117  const BodySize offset = 16;
2118 
2119  return ordinary<UInt32>(offset);
2120  }
2121 
2122  /// Indicates trade session date corresponding to a statistic
2123  /// entry.
2124  bool tradingReferenceDate(Timestamp& value) const
2125  {
2126  typedef NullLocalMktDate Null;
2127  typedef LocalMktDate FieldValue;
2128 
2129  const BodySize offset = 20;
2130 
2131  FieldValue fieldValue;
2132 
2133  if (ordinary(fieldValue, offset, Null()))
2134  {
2135  value = localMktDateToTimestamp(fieldValue);
2136  return true;
2137  }
2138  return false;
2139  }
2140 
2141  /// Bitmap field of eight Boolean type indicators representing
2142  /// settlement price type.
2144  {
2145  const BodySize offset = 22;
2146 
2147  return ordinary<SettlPriceType>(offset);
2148  }
2149 
2150  /// Market Data update action.
2152  {
2153  const BodySize offset = 23;
2154 
2155  return enumeration<UpdateAction>(offset);
2156  }
2157 
2158  /// Market Data entry type.
2160  entryType() const
2161  {
2162  const BodySize offset = 24;
2163 
2164  return enumeration<EntryTypeDailyStatistics>(offset);
2165  }
2166 
2167  /// Returns size of entry body in bytes
2168  /// for given version of message template.
2171  {
2172  return 25;
2173  }
2174 
2175  /// Entity class name.
2177  static const Char* className()
2178  {
2179  return "IncrementalRefreshDailyStatistics33.Entry";
2180  }
2181  };
2182 
2183  /// Repeating group containing Entry entries.
2184  typedef
2187 
2188  /// Initializes blank instance.
2190  {
2191  }
2192 
2193  /// Initializes instance over given memory block.
2195  const void* data,
2196  MessageSize size)
2197  : BinaryMessage(data, size)
2198  {
2199  assert(TemplateId == templateId());
2200 
2201  if (size < bodySize(version()))
2202  throwBadBinaryData(className());
2203  }
2204 
2205  /// Start of event processing time in number of nanoseconds
2206  /// since Unix epoch.
2208  {
2209  const BodySize offset = 0;
2210 
2211  return ordinary<Timestamp>(offset);
2212  }
2213 
2214  /// Bitmap field of eight Boolean type indicators reflecting
2215  /// the end of updates for a given Globex event.
2216  const MatchEventIndicator&
2218  {
2219  const BodySize offset = 8;
2220 
2221  return ordinary<MatchEventIndicator>(offset);
2222  }
2223 
2224  /// Returns instance of Entries repeating group.
2226  {
2227  return
2228  groups().
2229  head<Entries>();
2230  }
2231 
2232  /// Size of message body in bytes.
2235  {
2236  return 9;
2237  }
2238 
2239  /// Returns class name.
2241  static const Char* className()
2242  {
2243  return "IncrementalRefreshDailyStatistics33";
2244  }
2245 
2246  /// FIX message type.
2248  static StrRef fixType()
2249  {
2250  return toStrRef("X");
2251  }
2252 };
2253 
2254 /// MDIncrementalRefreshLimitsBanding.
2257 : BinaryMessage
2258 {
2259  /// Message template ID from SBE schema.
2260  enum { TemplateId = 34 };
2261 
2262  /// Number of entries in Market Data message.
2263  /// Entry of Entry repeating group.
2266  <
2268  >
2269  {
2270  /// Aliases base class type.
2271  typedef
2273  <
2275  >
2277 
2278  /// Initializes blank instance.
2280  {
2281  }
2282 
2283  /// Initializes instance of given
2284  /// version over given memory block.
2286  const void* data,
2287  BodySize size,
2288  SchemaVersion version)
2289  : Base(data, size, version)
2290  {
2291  if (size < bodySize(version))
2292  throwBadBinaryData(className());
2293  }
2294 
2295  /// Upper price threshold for the instrument.
2296  bool highLimitPrice(Decimal& value) const
2297  {
2298  typedef NullPRICE Null;
2299 
2300  const BodySize offset = 0;
2301 
2302  return decimal(value, offset, Null());
2303  }
2304 
2305  /// Lower price threshold for the instrument.
2306  bool lowLimitPrice(Decimal& value) const
2307  {
2308  typedef NullPRICE Null;
2309 
2310  const BodySize offset = 8;
2311 
2312  return decimal(value, offset, Null());
2313  }
2314 
2315  /// Differential static value for price banding.
2316  bool maxPriceVariation(Decimal& value) const
2317  {
2318  typedef NullPRICE Null;
2319 
2320  const BodySize offset = 16;
2321 
2322  return decimal(value, offset, Null());
2323  }
2324 
2325  /// Security ID.
2327  {
2328  const BodySize offset = 24;
2329 
2330  return ordinary<Int32>(offset);
2331  }
2332 
2333  /// MD Entry sequence number per instrument update.
2334  UInt32 rptSeq() const
2335  {
2336  const BodySize offset = 28;
2337 
2338  return ordinary<UInt32>(offset);
2339  }
2340 
2341  /// Market Data entry update action. In order to delete
2342  /// banding value, high or low limit, the deleted price field
2343  /// is populated with a NULL.
2345  {
2346  return UpdateActionNew();
2347  }
2348 
2349  /// Market Data entry type.
2351  {
2352  return EntryTypeLimits();
2353  }
2354 
2355  /// Returns size of entry body in bytes
2356  /// for given version of message template.
2359  {
2360  return 32;
2361  }
2362 
2363  /// Entity class name.
2365  static const Char* className()
2366  {
2367  return "IncrementalRefreshLimitsBanding34.Entry";
2368  }
2369  };
2370 
2371  /// Repeating group containing Entry entries.
2372  typedef
2375 
2376  /// Initializes blank instance.
2378  {
2379  }
2380 
2381  /// Initializes instance over given memory block.
2383  const void* data,
2384  MessageSize size)
2385  : BinaryMessage(data, size)
2386  {
2387  assert(TemplateId == templateId());
2388 
2389  if (size < bodySize(version()))
2390  throwBadBinaryData(className());
2391  }
2392 
2393  /// Start of event processing time in number of nanoseconds
2394  /// since Unix epoch.
2396  {
2397  const BodySize offset = 0;
2398 
2399  return ordinary<Timestamp>(offset);
2400  }
2401 
2402  /// Bitmap field of eight Boolean type indicators reflecting
2403  /// the end of updates for a given Globex event.
2404  const MatchEventIndicator&
2406  {
2407  const BodySize offset = 8;
2408 
2409  return ordinary<MatchEventIndicator>(offset);
2410  }
2411 
2412  /// Returns instance of Entries repeating group.
2414  {
2415  return
2416  groups().
2417  head<Entries>();
2418  }
2419 
2420  /// Size of message body in bytes.
2423  {
2424  return 9;
2425  }
2426 
2427  /// Returns class name.
2429  static const Char* className()
2430  {
2431  return "IncrementalRefreshLimitsBanding34";
2432  }
2433 
2434  /// FIX message type.
2436  static StrRef fixType()
2437  {
2438  return toStrRef("X");
2439  }
2440 };
2441 
2442 /// MDIncrementalRefreshSessionStatistics.
2445 : BinaryMessage
2446 {
2447  /// Message template ID from SBE schema.
2448  enum { TemplateId = 35 };
2449 
2450  /// Number of entries in Market Data message.
2451  /// Entry of Entry repeating group.
2454  <
2456  >
2457  {
2458  /// Aliases base class type.
2459  typedef
2461  <
2463  >
2465 
2466  /// Initializes blank instance.
2468  {
2469  }
2470 
2471  /// Initializes instance of given
2472  /// version over given memory block.
2474  const void* data,
2475  BodySize size,
2476  SchemaVersion version)
2477  : Base(data, size, version)
2478  {
2479  if (size < bodySize(version))
2480  throwBadBinaryData(className());
2481  }
2482 
2483  /// Market Data entry price.
2485  {
2486  const BodySize offset = 0;
2487 
2488  return decimal<PRICE>(offset);
2489  }
2490 
2491  /// Security ID.
2493  {
2494  const BodySize offset = 8;
2495 
2496  return ordinary<Int32>(offset);
2497  }
2498 
2499  /// MD Entry sequence number per instrument update.
2500  UInt32 rptSeq() const
2501  {
2502  const BodySize offset = 12;
2503 
2504  return ordinary<UInt32>(offset);
2505  }
2506 
2507  /// Flag describing IOP and Open Price entries.
2508  bool
2510  OpenCloseSettlFlag::Enum& value) const
2511  {
2512  typedef NullUInt8 Null;
2513 
2514  const BodySize offset = 16;
2515 
2516  return enumeration<OpenCloseSettlFlag>(value, offset, Null());
2517  }
2518 
2519  /// Market Data update action.
2521  {
2522  const BodySize offset = 17;
2523 
2524  return enumeration<UpdateAction>(offset);
2525  }
2526 
2527  /// Market Data entry type.
2529  entryType() const
2530  {
2531  const BodySize offset = 18;
2532 
2533  return enumeration<EntryTypeStatistics>(offset);
2534  }
2535 
2536  /// Indicative Opening Quantity.
2537  bool entrySize(Int32& value) const
2538  {
2539  typedef NullInt32 Null;
2540 
2541  const BodySize offset = 19;
2542 
2543  return ordinary(value, offset, Null());
2544  }
2545 
2546  /// Returns size of entry body in bytes
2547  /// for given version of message template.
2550  {
2551  return 23;
2552  }
2553 
2554  /// Entity class name.
2556  static const Char* className()
2557  {
2558  return "IncrementalRefreshSessionStatistics35.Entry";
2559  }
2560  };
2561 
2562  /// Repeating group containing Entry entries.
2563  typedef
2566 
2567  /// Initializes blank instance.
2569  {
2570  }
2571 
2572  /// Initializes instance over given memory block.
2574  const void* data,
2575  MessageSize size)
2576  : BinaryMessage(data, size)
2577  {
2578  assert(TemplateId == templateId());
2579 
2580  if (size < bodySize(version()))
2581  throwBadBinaryData(className());
2582  }
2583 
2584  /// Start of event processing time in number of nanoseconds
2585  /// since Unix epoch.
2587  {
2588  const BodySize offset = 0;
2589 
2590  return ordinary<Timestamp>(offset);
2591  }
2592 
2593  /// Bitmap field of eight Boolean type indicators reflecting
2594  /// the end of updates for a given Globex event.
2595  const MatchEventIndicator&
2597  {
2598  const BodySize offset = 8;
2599 
2600  return ordinary<MatchEventIndicator>(offset);
2601  }
2602 
2603  /// Returns instance of Entries repeating group.
2605  {
2606  return
2607  groups().
2608  head<Entries>();
2609  }
2610 
2611  /// Size of message body in bytes.
2614  {
2615  return 9;
2616  }
2617 
2618  /// Returns class name.
2620  static const Char* className()
2621  {
2622  return "IncrementalRefreshSessionStatistics35";
2623  }
2624 
2625  /// FIX message type.
2627  static StrRef fixType()
2628  {
2629  return toStrRef("X");
2630  }
2631 };
2632 
2633 /// SnapshotFullRefresh.
2636 : BinaryMessage
2637 {
2638  /// Message template ID from SBE schema.
2639  enum { TemplateId = 38 };
2640 
2641  /// Number of entries in Market Data message.
2642  /// Entry of Entry repeating group.
2645  <
2647  >
2648  {
2649  /// Aliases base class type.
2650  typedef
2652  <
2654  >
2656 
2657  /// Initializes blank instance.
2659  {
2660  }
2661 
2662  /// Initializes instance of given
2663  /// version over given memory block.
2665  const void* data,
2666  BodySize size,
2667  SchemaVersion version)
2668  : Base(data, size, version)
2669  {
2670  if (size < bodySize(version))
2671  throwBadBinaryData(className());
2672  }
2673 
2674  /// Market Data entry price.
2675  bool entryPx(Decimal& value) const
2676  {
2677  typedef NullPRICE Null;
2678 
2679  const BodySize offset = 0;
2680 
2681  return decimal(value, offset, Null());
2682  }
2683 
2684  /// Market Data entry quantity.
2685  bool entrySize(Int32& value) const
2686  {
2687  typedef NullInt32 Null;
2688 
2689  const BodySize offset = 8;
2690 
2691  return ordinary(value, offset, Null());
2692  }
2693 
2694  /// Aggregate number of orders at the given price level.
2695  bool numberOfOrders(Int32& value) const
2696  {
2697  typedef NullInt32 Null;
2698 
2699  const BodySize offset = 12;
2700 
2701  return ordinary(value, offset, Null());
2702  }
2703 
2704  /// Aggregate book position.
2705  bool priceLevel(Int8& value) const
2706  {
2707  typedef NullInt8 Null;
2708 
2709  const BodySize offset = 16;
2710 
2711  return ordinary(value, offset, Null());
2712  }
2713 
2714  /// Indicates the date of trade session corresponding to a
2715  /// statistic entry.
2716  bool tradingReferenceDate(Timestamp& value) const
2717  {
2718  typedef NullLocalMktDate Null;
2719  typedef LocalMktDate FieldValue;
2720 
2721  const BodySize offset = 17;
2722 
2723  FieldValue fieldValue;
2724 
2725  if (ordinary(fieldValue, offset, Null()))
2726  {
2727  value = localMktDateToTimestamp(fieldValue);
2728  return true;
2729  }
2730  return false;
2731  }
2732 
2733  /// Flag describing Open Price entry.
2734  bool
2736  OpenCloseSettlFlag::Enum& value) const
2737  {
2738  typedef NullUInt8 Null;
2739 
2740  const BodySize offset = 19;
2741 
2742  return enumeration<OpenCloseSettlFlag>(value, offset, Null());
2743  }
2744 
2745  /// Bitmap field of eight Boolean type indicators representing
2746  /// settlement price type.
2748  {
2749  const BodySize offset = 20;
2750 
2751  return ordinary<SettlPriceType>(offset);
2752  }
2753 
2754  /// Market Data entry type.
2756  {
2757  const BodySize offset = 21;
2758 
2759  return enumeration<EntryType>(offset);
2760  }
2761 
2762  /// Returns size of entry body in bytes
2763  /// for given version of message template.
2766  {
2767  return 22;
2768  }
2769 
2770  /// Entity class name.
2772  static const Char* className()
2773  {
2774  return "SnapshotFullRefresh38.Entry";
2775  }
2776  };
2777 
2778  /// Repeating group containing Entry entries.
2779  typedef
2782 
2783  /// Initializes blank instance.
2785  {
2786  }
2787 
2788  /// Initializes instance over given memory block.
2790  const void* data,
2791  MessageSize size)
2792  : BinaryMessage(data, size)
2793  {
2794  assert(TemplateId == templateId());
2795 
2796  if (size < bodySize(version()))
2797  throwBadBinaryData(className());
2798  }
2799 
2800  /// Sequence number of the last Incremental feed packet
2801  /// processed. This value is used to synchronize the snapshot
2802  /// loop with the real-time feed.
2804  {
2805  const BodySize offset = 0;
2806 
2807  return ordinary<UInt32>(offset);
2808  }
2809 
2810  /// Total number of messages replayed in the loop.
2812  {
2813  const BodySize offset = 4;
2814 
2815  return ordinary<UInt32>(offset);
2816  }
2817 
2818  /// Security ID.
2820  {
2821  const BodySize offset = 8;
2822 
2823  return ordinary<Int32>(offset);
2824  }
2825 
2826  /// Sequence number of the last Market Data entry processed
2827  /// for the instrument.
2828  UInt32 rptSeq() const
2829  {
2830  const BodySize offset = 12;
2831 
2832  return ordinary<UInt32>(offset);
2833  }
2834 
2835  /// Timestamp of the last event security participated in, sent
2836  /// as number of nanoseconds since Unix epoch.
2838  {
2839  const BodySize offset = 16;
2840 
2841  return ordinary<Timestamp>(offset);
2842  }
2843 
2844  /// UTC Date and time of last Security Definition add, update
2845  /// or delete on a given Market Data channel.
2847  {
2848  const BodySize offset = 24;
2849 
2850  return ordinary<Timestamp>(offset);
2851  }
2852 
2853  /// Trade session date sent as number of days since Unix epoch.
2854  bool tradeDate(Timestamp& value) const
2855  {
2856  typedef NullLocalMktDate Null;
2857  typedef LocalMktDate FieldValue;
2858 
2859  const BodySize offset = 32;
2860 
2861  FieldValue fieldValue;
2862 
2863  if (ordinary(fieldValue, offset, Null()))
2864  {
2865  value = localMktDateToTimestamp(fieldValue);
2866  return true;
2867  }
2868  return false;
2869  }
2870 
2871  /// Identifies the current trading state of the instrument.
2872  bool
2874  SecurityTradingStatus::Enum& value) const
2875  {
2876  typedef NullUInt8 Null;
2877 
2878  const BodySize offset = 34;
2879 
2880  return enumeration<SecurityTradingStatus>(value, offset, Null());
2881  }
2882 
2883  /// Upper price threshold for the instrument.
2884  bool highLimitPrice(Decimal& value) const
2885  {
2886  typedef NullPRICE Null;
2887 
2888  const BodySize offset = 35;
2889 
2890  return decimal(value, offset, Null());
2891  }
2892 
2893  /// Lower price threshold for the instrument.
2894  bool lowLimitPrice(Decimal& value) const
2895  {
2896  typedef NullPRICE Null;
2897 
2898  const BodySize offset = 43;
2899 
2900  return decimal(value, offset, Null());
2901  }
2902 
2903  /// Differential value for price banding.
2904  bool maxPriceVariation(Decimal& value) const
2905  {
2906  typedef NullPRICE Null;
2907 
2908  const BodySize offset = 51;
2909 
2910  return decimal(value, offset, Null());
2911  }
2912 
2913  /// Returns instance of Entries repeating group.
2915  {
2916  return
2917  groups().
2918  head<Entries>();
2919  }
2920 
2921  /// Size of message body in bytes.
2924  {
2925  return 59;
2926  }
2927 
2928  /// Returns class name.
2930  static const Char* className()
2931  {
2932  return "SnapshotFullRefresh38";
2933  }
2934 
2935  /// FIX message type.
2937  static StrRef fixType()
2938  {
2939  return toStrRef("W");
2940  }
2941 };
2942 
2943 /// MDInstrumentDefinitionOption.
2946 : BinaryMessage
2947 {
2948  /// Message template ID from SBE schema.
2949  enum { TemplateId = 41 };
2950 
2951  /// Number of EventType entries.
2952  /// Entry of EventsEntry repeating group.
2955  <
2957  >
2958  {
2959  /// Aliases base class type.
2960  typedef
2962  <
2964  >
2966 
2967  /// Initializes blank instance.
2969  {
2970  }
2971 
2972  /// Initializes instance of given
2973  /// version over given memory block.
2975  const void* data,
2976  BodySize size,
2977  SchemaVersion version)
2978  : Base(data, size, version)
2979  {
2980  if (size < bodySize(version))
2981  throwBadBinaryData(className());
2982  }
2983 
2984  /// Code to represent the type of event.
2986  {
2987  const BodySize offset = 0;
2988 
2989  return enumeration<EventType>(offset);
2990  }
2991 
2992  /// Date and Time of instument Activation or Expiration event
2993  /// sent as number of nanoseconds since Unix epoch.
2995  {
2996  const BodySize offset = 1;
2997 
2998  return ordinary<Timestamp>(offset);
2999  }
3000 
3001  /// Returns size of entry body in bytes
3002  /// for given version of message template.
3005  {
3006  return 9;
3007  }
3008 
3009  /// Entity class name.
3011  static const Char* className()
3012  {
3013  return "InstrumentDefinitionOption41.EventsEntry";
3014  }
3015  };
3016 
3017  /// Repeating group containing EventsEntry entries.
3018  typedef
3021 
3022  /// Number of FeedType entries.
3023  /// Entry of FeedTypesEntry repeating group.
3026  <
3028  >
3029  {
3030  /// Aliases base class type.
3031  typedef
3033  <
3035  >
3037 
3038  /// Initializes blank instance.
3040  {
3041  }
3042 
3043  /// Initializes instance of given
3044  /// version over given memory block.
3046  const void* data,
3047  BodySize size,
3048  SchemaVersion version)
3049  : Base(data, size, version)
3050  {
3051  if (size < bodySize(version))
3052  throwBadBinaryData(className());
3053  }
3054 
3055  /// Describes a class of service for a given data feed. GBX-
3056  /// Real Book, GBI-Implied Book.
3058  {
3059  const BodySize offset = 0;
3060  const BodySize length = 3;
3061 
3062  return fixedStr<length>(offset);
3063  }
3064 
3065  /// Book depth.
3067  {
3068  const BodySize offset = 3;
3069 
3070  return ordinary<Int8>(offset);
3071  }
3072 
3073  /// Returns size of entry body in bytes
3074  /// for given version of message template.
3077  {
3078  return 4;
3079  }
3080 
3081  /// Entity class name.
3083  static const Char* className()
3084  {
3085  return "InstrumentDefinitionOption41.FeedTypesEntry";
3086  }
3087  };
3088 
3089  /// Repeating group containing FeedTypesEntry entries.
3090  typedef
3093 
3094  /// Number of InstrAttribType entries.
3095  /// Entry of InstAttribEntry repeating group.
3098  <
3100  >
3101  {
3102  /// Aliases base class type.
3103  typedef
3105  <
3107  >
3109 
3110  /// Initializes blank instance.
3112  {
3113  }
3114 
3115  /// Initializes instance of given
3116  /// version over given memory block.
3118  const void* data,
3119  BodySize size,
3120  SchemaVersion version)
3121  : Base(data, size, version)
3122  {
3123  if (size < bodySize(version))
3124  throwBadBinaryData(className());
3125  }
3126 
3127  /// Instrument Eligibility Attributes.
3129  {
3130  return InstAttribType();
3131  }
3132 
3133  /// Bitmap field of 32 Boolean type Instrument eligibility
3134  /// flags.
3136  {
3137  const BodySize offset = 0;
3138 
3139  return ordinary<InstAttribValue>(offset);
3140  }
3141 
3142  /// Returns size of entry body in bytes
3143  /// for given version of message template.
3146  {
3147  return 4;
3148  }
3149 
3150  /// Entity class name.
3152  static const Char* className()
3153  {
3154  return "InstrumentDefinitionOption41.InstAttribEntry";
3155  }
3156  };
3157 
3158  /// Repeating group containing InstAttribEntry entries.
3159  typedef
3162 
3163  /// Number of entries.
3164  /// Entry of LotTypeRulesEntry repeating group.
3167  <
3169  >
3170  {
3171  /// Aliases base class type.
3172  typedef
3174  <
3176  >
3178 
3179  /// Initializes blank instance.
3181  {
3182  }
3183 
3184  /// Initializes instance of given
3185  /// version over given memory block.
3187  const void* data,
3188  BodySize size,
3189  SchemaVersion version)
3190  : Base(data, size, version)
3191  {
3192  if (size < bodySize(version))
3193  throwBadBinaryData(className());
3194  }
3195 
3196  /// This tag is required to interpret the value in tag
3197  /// 1231-MinLotSize.
3198  Int8 lotType() const
3199  {
3200  const BodySize offset = 0;
3201 
3202  return ordinary<Int8>(offset);
3203  }
3204 
3205  /// Minimum quantity accepted for order entry. If tag
3206  /// 1093-LotType=4, this value is the minimum quantity for
3207  /// order entry expressed in the applicable units, specified
3208  /// in tag 996-UnitOfMeasure, e.g. megawatts.
3209  bool minLotSize(Decimal& value) const
3210  {
3211  typedef NullDecimalQty Null;
3212 
3213  const BodySize offset = 1;
3214 
3215  return decimal(value, offset, Null());
3216  }
3217 
3218  /// Returns size of entry body in bytes
3219  /// for given version of message template.
3222  {
3223  return 5;
3224  }
3225 
3226  /// Entity class name.
3228  static const Char* className()
3229  {
3230  return "InstrumentDefinitionOption41.LotTypeRulesEntry";
3231  }
3232  };
3233 
3234  /// Repeating group containing LotTypeRulesEntry entries.
3235  typedef
3238 
3239  /// Number of underlying instruments.
3240  /// Entry of UnderlyingsEntry repeating group.
3243  <
3245  >
3246  {
3247  /// Aliases base class type.
3248  typedef
3250  <
3252  >
3254 
3255  /// Initializes blank instance.
3257  {
3258  }
3259 
3260  /// Initializes instance of given
3261  /// version over given memory block.
3263  const void* data,
3264  BodySize size,
3265  SchemaVersion version)
3266  : Base(data, size, version)
3267  {
3268  if (size < bodySize(version))
3269  throwBadBinaryData(className());
3270  }
3271 
3272  /// Unique Instrument ID as qualified by the exchange per tag
3273  /// 305-UnderlyingSecurityIDSource.
3275  {
3276  const BodySize offset = 0;
3277 
3278  return ordinary<Int32>(offset);
3279  }
3280 
3281  /// This value is always '8' for CME.
3283  {
3284  return SecurityIDSource();
3285  }
3286 
3287  /// Underlying Instrument Symbol (Contract Name).
3289  {
3290  const BodySize offset = 4;
3291  const BodySize length = 20;
3292 
3293  return fixedStr<length>(offset);
3294  }
3295 
3296  /// Returns size of entry body in bytes
3297  /// for given version of message template.
3300  {
3301  return 24;
3302  }
3303 
3304  /// Entity class name.
3306  static const Char* className()
3307  {
3308  return "InstrumentDefinitionOption41.UnderlyingsEntry";
3309  }
3310  };
3311 
3312  /// Repeating group containing UnderlyingsEntry entries.
3313  typedef
3316 
3317  /// Number of related instruments group.
3318  /// Entry of RelatedInstrumentsEntry repeating group.
3321  <
3323  >
3324  {
3325  /// Aliases base class type.
3326  typedef
3328  <
3330  >
3332 
3333  /// Initializes blank instance.
3335  {
3336  }
3337 
3338  /// Initializes instance of given
3339  /// version over given memory block.
3341  const void* data,
3342  BodySize size,
3343  SchemaVersion version)
3344  : Base(data, size, version)
3345  {
3346  if (size < bodySize(version))
3347  throwBadBinaryData(className());
3348  }
3349 
3350  /// Related Security ID.
3352  {
3353  const BodySize offset = 0;
3354 
3355  return ordinary<Int32>(offset);
3356  }
3357 
3358  /// Related Security ID source.
3360  {
3361  return SecurityIDSource();
3362  }
3363 
3364  /// Related instrument Symbol.
3366  {
3367  const BodySize offset = 4;
3368  const BodySize length = 20;
3369 
3370  return fixedStr<length>(offset);
3371  }
3372 
3373  /// Returns size of entry body in bytes
3374  /// for given version of message template.
3377  {
3378  return 24;
3379  }
3380 
3381  /// Entity class name.
3383  static const Char* className()
3384  {
3385  return "InstrumentDefinitionOption41.RelatedInstrumentsEntry";
3386  }
3387  };
3388 
3389  /// Repeating group containing RelatedInstrumentsEntry entries.
3390  typedef
3393 
3394  /// Initializes blank instance.
3396  {
3397  }
3398 
3399  /// Initializes instance over given memory block.
3401  const void* data,
3402  MessageSize size)
3403  : BinaryMessage(data, size)
3404  {
3405  assert(TemplateId == templateId());
3406 
3407  if (size < bodySize(version()))
3408  throwBadBinaryData(className());
3409  }
3410 
3411  /// Bitmap field of eight Boolean type indicators reflecting
3412  /// the end of updates for a given Globex event.
3413  const MatchEventIndicator&
3415  {
3416  const BodySize offset = 0;
3417 
3418  return ordinary<MatchEventIndicator>(offset);
3419  }
3420 
3421  /// Total number of instruments in the Replay loop. Used on
3422  /// Replay Feed only.
3423  bool totNumReports(UInt32& value) const
3424  {
3425  typedef NullUInt32 Null;
3426 
3427  const BodySize offset = 1;
3428 
3429  return ordinary(value, offset, Null());
3430  }
3431 
3432  /// Last Security update action on Incremental feed, 'D' or
3433  /// 'M' is used when a mid-week deletion or modification (i.e.
3434  /// extension) occurs.
3437  {
3438  const BodySize offset = 5;
3439 
3440  return enumeration<SecurityUpdateAction>(offset);
3441  }
3442 
3443  /// Timestamp of when the instrument was last added, modified
3444  /// or deleted.
3446  {
3447  const BodySize offset = 6;
3448 
3449  return ordinary<Timestamp>(offset);
3450  }
3451 
3452  /// Identifies the current state of the instrument. The data
3453  /// is available in the Instrument Replay feed only.
3454  bool
3456  SecurityTradingStatus::Enum& value) const
3457  {
3458  typedef NullUInt8 Null;
3459 
3460  const BodySize offset = 14;
3461 
3462  return enumeration<SecurityTradingStatus>(value, offset, Null());
3463  }
3464 
3465  /// The channel ID as defined in the XML Configuration file.
3466  Int16 applId() const
3467  {
3468  const BodySize offset = 15;
3469 
3470  return ordinary<Int16>(offset);
3471  }
3472 
3473  /// Identifies the market segment, populated for all CME
3474  /// Globex instruments.
3476  {
3477  const BodySize offset = 17;
3478 
3479  return ordinary<UInt8>(offset);
3480  }
3481 
3482  /// Indicates the product complex.
3484  {
3485  const BodySize offset = 18;
3486 
3487  return ordinary<UInt8>(offset);
3488  }
3489 
3490  /// Exchange used to identify a security.
3492  {
3493  const BodySize offset = 19;
3494  const BodySize length = 4;
3495 
3496  return fixedStr<length>(offset);
3497  }
3498 
3499  /// Security Group Code.
3501  {
3502  const BodySize offset = 23;
3503  const BodySize length = 6;
3504 
3505  return fixedStr<length>(offset);
3506  }
3507 
3508  /// The underlying asset code also known as Product Code.
3509  StrRef asset() const
3510  {
3511  const BodySize offset = 29;
3512  const BodySize length = 6;
3513 
3514  return fixedStr<length>(offset);
3515  }
3516 
3517  /// Instrument Name or Symbol. Previously used as Instrument
3518  /// Group Code.
3519  StrRef symbol() const
3520  {
3521  const BodySize offset = 35;
3522  const BodySize length = 20;
3523 
3524  return fixedStr<length>(offset);
3525  }
3526 
3527  /// Unique Instrument ID.
3529  {
3530  const BodySize offset = 55;
3531 
3532  return ordinary<Int32>(offset);
3533  }
3534 
3535  /// Identifies class or source of tag 48-SecurityID value.
3537  {
3538  return SecurityIDSource();
3539  }
3540 
3541  /// Security Type.
3543  {
3544  const BodySize offset = 59;
3545  const BodySize length = 6;
3546 
3547  return fixedStr<length>(offset);
3548  }
3549 
3550  /// ISO standard instrument categorization code.
3551  StrRef cfiCode() const
3552  {
3553  const BodySize offset = 65;
3554  const BodySize length = 6;
3555 
3556  return fixedStr<length>(offset);
3557  }
3558 
3559  /// Indicates whether an option instrument is a put or call.
3561  {
3562  const BodySize offset = 71;
3563 
3564  return enumeration<PutOrCall>(offset);
3565  }
3566 
3567  /// This field provides the actual calendar date for contract
3568  /// maturity.
3570  {
3571  typedef NullMaturityMonthYear Null;
3572 
3573  const BodySize offset = 72;
3574 
3575  return ordinary(value, offset, Null());
3576  }
3577 
3578  /// Identifies currency used for price.
3580  {
3581  const BodySize offset = 77;
3582  const BodySize length = 3;
3583 
3584  return fixedStr<length>(offset);
3585  }
3586 
3587  /// Strike Price for an option instrument.
3588  bool strikePrice(Decimal& value) const
3589  {
3590  typedef NullPRICE Null;
3591 
3592  const BodySize offset = 80;
3593 
3594  return decimal(value, offset, Null());
3595  }
3596 
3597  /// Currency in which the StrikePrice is denominated.
3599  {
3600  const BodySize offset = 88;
3601  const BodySize length = 3;
3602 
3603  return fixedStr<length>(offset);
3604  }
3605 
3606  /// Identifies currency used for settlement, if different from
3607  /// trade price currency.
3609  {
3610  const BodySize offset = 91;
3611  const BodySize length = 3;
3612 
3613  return fixedStr<length>(offset);
3614  }
3615 
3616  /// Defines cabinet price for outright options products.
3617  bool minCabPrice(Decimal& value) const
3618  {
3619  typedef NullPRICE Null;
3620 
3621  const BodySize offset = 94;
3622 
3623  return decimal(value, offset, Null());
3624  }
3625 
3626  /// Matching algorithm.
3628  {
3629  const BodySize offset = 102;
3630 
3631  return ordinary<CHAR>(offset);
3632  }
3633 
3634  /// The minimum trading volume for a security.
3636  {
3637  const BodySize offset = 103;
3638 
3639  return ordinary<UInt32>(offset);
3640  }
3641 
3642  /// The maximum trading volume for a security.
3644  {
3645  const BodySize offset = 107;
3646 
3647  return ordinary<UInt32>(offset);
3648  }
3649 
3650  /// Minimum constant tick for the instrument.
3651  bool minPriceIncrement(Decimal& value) const
3652  {
3653  typedef NullPRICE Null;
3654 
3655  const BodySize offset = 111;
3656 
3657  return decimal(value, offset, Null());
3658  }
3659 
3660  /// Monetary value equivalent to the minimum price fluctuation.
3662  {
3663  typedef NullPRICE Null;
3664 
3665  const BodySize offset = 119;
3666 
3667  return decimal(value, offset, Null());
3668  }
3669 
3670  /// Contains the multiplier to convert the CME Globex display
3671  /// price to the conventional price.
3673  {
3674  const BodySize offset = 127;
3675 
3676  return decimal<FLOAT>(offset);
3677  }
3678 
3679  /// VTT code referencing variable tick table.
3680  bool tickRule(Int8& value) const
3681  {
3682  typedef NullInt8 Null;
3683 
3684  const BodySize offset = 135;
3685 
3686  return ordinary(value, offset, Null());
3687  }
3688 
3689  /// Price Denominator of Main Fraction.
3690  bool mainFraction(UInt8& value) const
3691  {
3692  typedef NullUInt8 Null;
3693 
3694  const BodySize offset = 136;
3695 
3696  return ordinary(value, offset, Null());
3697  }
3698 
3699  /// Price Denominator of Sub Fraction.
3700  bool subFraction(UInt8& value) const
3701  {
3702  typedef NullUInt8 Null;
3703 
3704  const BodySize offset = 137;
3705 
3706  return ordinary(value, offset, Null());
3707  }
3708 
3709  /// Number of decimals in fractional display price.
3710  bool priceDisplayFormat(UInt8& value) const
3711  {
3712  typedef NullUInt8 Null;
3713 
3714  const BodySize offset = 138;
3715 
3716  return ordinary(value, offset, Null());
3717  }
3718 
3719  /// Unit of measure for the products' original contract size.
3720  /// This will be populated for all products listed on CME
3721  /// Globex.
3723  {
3724  const BodySize offset = 139;
3725  const BodySize length = 30;
3726 
3727  return fixedStr<length>(offset);
3728  }
3729 
3730  /// This field contains the contract size for each instrument.
3731  /// Used in combination with tag 996-UnitofMeasure.
3732  bool unitOfMeasureQty(Decimal& value) const
3733  {
3734  typedef NullPRICE Null;
3735 
3736  const BodySize offset = 169;
3737 
3738  return decimal(value, offset, Null());
3739  }
3740 
3741  /// Reference price - the most recently available Settlement
3742  /// whether it be Theoretical, Preliminary or a Final Settle
3743  /// of the session.
3744  bool tradingReferencePrice(Decimal& value) const
3745  {
3746  typedef NullPRICE Null;
3747 
3748  const BodySize offset = 177;
3749 
3750  return decimal(value, offset, Null());
3751  }
3752 
3753  /// Bitmap field of eight Boolean type indicators representing
3754  /// settlement price type.
3756  {
3757  const BodySize offset = 185;
3758 
3759  return ordinary<SettlPriceType>(offset);
3760  }
3761 
3762  /// The total cleared volume of instrument traded during the
3763  /// prior trading session.
3764  bool clearedVolume(Int32& value) const
3765  {
3766  typedef NullInt32 Null;
3767 
3768  const BodySize offset = 186;
3769 
3770  return ordinary(value, offset, Null());
3771  }
3772 
3773  /// The total open interest for the market at the close of the
3774  /// prior trading session.
3775  bool openInterestQty(Int32& value) const
3776  {
3777  typedef NullInt32 Null;
3778 
3779  const BodySize offset = 190;
3780 
3781  return ordinary(value, offset, Null());
3782  }
3783 
3784  /// Allowable low limit price for the trading day.
3785  bool lowLimitPrice(Decimal& value) const
3786  {
3787  typedef NullPRICE Null;
3788 
3789  const BodySize offset = 194;
3790 
3791  return decimal(value, offset, Null());
3792  }
3793 
3794  /// Allowable high limit price for the trading day.
3795  bool highLimitPrice(Decimal& value) const
3796  {
3797  typedef NullPRICE Null;
3798 
3799  const BodySize offset = 202;
3800 
3801  return decimal(value, offset, Null());
3802  }
3803 
3804  /// User-defined instruments flag.
3806  {
3807  const BodySize offset = 210;
3808 
3809  return ordinary<UserDefinedInstrument>(offset);
3810  }
3811 
3812  /// Indicates session date corresponding to the settlement
3813  /// price in tag 1150-TradingReferencePrice.
3814  bool tradingReferenceDate(Timestamp& value) const
3815  {
3816  typedef NullLocalMktDate Null;
3817  typedef LocalMktDate FieldValue;
3818 
3819  const BodySize offset = 211;
3820 
3821  FieldValue fieldValue;
3822 
3823  if (ordinary(fieldValue, offset, Null()))
3824  {
3825  value = localMktDateToTimestamp(fieldValue);
3826  return true;
3827  }
3828  return false;
3829  }
3830 
3831  /// Returns instance of Events repeating group.
3832  Events events() const
3833  {
3834  return
3835  groups().
3836  head<Events>();
3837  }
3838 
3839  /// Returns instance of FeedTypes repeating group.
3841  {
3842  return
3843  groups().
3844  tail<Events>().
3845  head<FeedTypes>();
3846  }
3847 
3848  /// Returns instance of InstAttrib repeating group.
3850  {
3851  return
3852  groups().
3853  tail<Events>().
3854  tail<FeedTypes>().
3855  head<InstAttrib>();
3856  }
3857 
3858  /// Returns instance of LotTypeRules repeating group.
3860  {
3861  return
3862  groups().
3863  tail<Events>().
3864  tail<FeedTypes>().
3865  tail<InstAttrib>().
3866  head<LotTypeRules>();
3867  }
3868 
3869  /// Returns instance of Underlyings repeating group.
3871  {
3872  return
3873  groups().
3874  tail<Events>().
3875  tail<FeedTypes>().
3876  tail<InstAttrib>().
3877  tail<LotTypeRules>().
3878  head<Underlyings>();
3879  }
3880 
3881  /// Returns instance of RelatedInstruments repeating group.
3883  {
3884  return
3885  groups().
3886  tail<Events>().
3887  tail<FeedTypes>().
3888  tail<InstAttrib>().
3889  tail<LotTypeRules>().
3890  tail<Underlyings>().
3891  head<RelatedInstruments>();
3892  }
3893 
3894  /// Size of message body in bytes.
3897  {
3898  return 213;
3899  }
3900 
3901  /// Returns class name.
3903  static const Char* className()
3904  {
3905  return "InstrumentDefinitionOption41";
3906  }
3907 
3908  /// FIX message type.
3910  static StrRef fixType()
3911  {
3912  return toStrRef("d");
3913  }
3914 };
3915 
3916 /// MDIncrementalRefreshTradeSummary.
3919 : BinaryMessage
3920 {
3921  /// Message template ID from SBE schema.
3922  enum { TemplateId = 42 };
3923 
3924  /// Number of Trade Summary entries.
3925  /// Entry of Entry repeating group.
3928  <
3930  >
3931  {
3932  /// Aliases base class type.
3933  typedef
3935  <
3937  >
3939 
3940  /// Initializes blank instance.
3942  {
3943  }
3944 
3945  /// Initializes instance of given
3946  /// version over given memory block.
3948  const void* data,
3949  BodySize size,
3950  SchemaVersion version)
3951  : Base(data, size, version)
3952  {
3953  if (size < bodySize(version))
3954  throwBadBinaryData(className());
3955  }
3956 
3957  /// Trade price.
3959  {
3960  const BodySize offset = 0;
3961 
3962  return decimal<PRICE>(offset);
3963  }
3964 
3965  /// Consolidated trade quantity.
3967  {
3968  const BodySize offset = 8;
3969 
3970  return ordinary<Int32>(offset);
3971  }
3972 
3973  /// Security ID as defined by CME.
3975  {
3976  const BodySize offset = 12;
3977 
3978  return ordinary<Int32>(offset);
3979  }
3980 
3981  /// Sequence number per instrument update.
3982  UInt32 rptSeq() const
3983  {
3984  const BodySize offset = 16;
3985 
3986  return ordinary<UInt32>(offset);
3987  }
3988 
3989  /// The total number of real orders per instrument that
3990  /// participated in a match step within a match event.
3991  bool numberOfOrders(Int32& value) const
3992  {
3993  typedef NullInt32 Null;
3994 
3995  const BodySize offset = 20;
3996 
3997  return ordinary(value, offset, Null());
3998  }
3999 
4000  /// Indicates which side is the aggressor or if there is no
4001  /// aggressor.
4002  bool
4004  AggressorSide::Enum& value) const
4005  {
4006  typedef NullUInt8 Null;
4007 
4008  const BodySize offset = 24;
4009 
4010  return enumeration<AggressorSide>(value, offset, Null());
4011  }
4012 
4013  /// Market Data update action.
4015  {
4016  const BodySize offset = 25;
4017 
4018  return enumeration<UpdateAction>(offset);
4019  }
4020 
4021  /// Market Data entry type.
4023  {
4024  return EntryTypeTrade();
4025  }
4026 
4027  /// Market Data Trade entry ID.
4028  bool tradeEntryId(UInt32& value) const
4029  {
4030  typedef NullUInt32 Null;
4031 
4032  const BodySize offset = 26;
4033 
4034  return ordinary(value, offset, Null());
4035  }
4036 
4037  /// Returns size of entry body in bytes
4038  /// for given version of message template.
4041  {
4042  return 30;
4043  }
4044 
4045  /// Entity class name.
4047  static const Char* className()
4048  {
4049  return "IncrementalRefreshTradeSummary42.Entry";
4050  }
4051  };
4052 
4053  /// Repeating group containing Entry entries.
4054  typedef
4057 
4058  /// Number of OrderID entries.
4059  /// Entry of OrderIDEntry repeating group.
4062  <
4064  >
4065  {
4066  /// Aliases base class type.
4067  typedef
4069  <
4071  >
4073 
4074  /// Initializes blank instance.
4076  {
4077  }
4078 
4079  /// Initializes instance of given
4080  /// version over given memory block.
4082  const void* data,
4083  BodySize size,
4084  SchemaVersion version)
4085  : Base(data, size, version)
4086  {
4087  if (size < bodySize(version))
4088  throwBadBinaryData(className());
4089  }
4090 
4091  /// Unique order identifier as assigned by the exchange.
4092  UInt64 orderId() const
4093  {
4094  const BodySize offset = 0;
4095 
4096  return ordinary<UInt64>(offset);
4097  }
4098 
4099  /// Quantity bought or sold on this last fill.
4100  Int32 lastQty() const
4101  {
4102  const BodySize offset = 8;
4103 
4104  return ordinary<Int32>(offset);
4105  }
4106 
4107  /// Returns size of entry body in bytes
4108  /// for given version of message template.
4111  {
4112  return 12;
4113  }
4114 
4115  /// Entity class name.
4117  static const Char* className()
4118  {
4119  return "IncrementalRefreshTradeSummary42.OrderIDEntry";
4120  }
4121  };
4122 
4123  /// Repeating group containing OrderIDEntry entries.
4124  typedef
4127 
4128  /// Initializes blank instance.
4130  {
4131  }
4132 
4133  /// Initializes instance over given memory block.
4135  const void* data,
4136  MessageSize size)
4137  : BinaryMessage(data, size)
4138  {
4139  assert(TemplateId == templateId());
4140 
4141  if (size < bodySize(version()))
4142  throwBadBinaryData(className());
4143  }
4144 
4145  /// Start of event processing time in number of nanoseconds
4146  /// since Unix epoch.
4148  {
4149  const BodySize offset = 0;
4150 
4151  return ordinary<Timestamp>(offset);
4152  }
4153 
4154  /// Bitmap field of eight Boolean type indicators reflecting
4155  /// the end of updates for a given Globex event.
4156  const MatchEventIndicator&
4158  {
4159  const BodySize offset = 8;
4160 
4161  return ordinary<MatchEventIndicator>(offset);
4162  }
4163 
4164  /// Returns instance of Entries repeating group.
4166  {
4167  return
4168  groups().
4169  head<Entries>();
4170  }
4171 
4172  /// Returns instance of OrderIDEntries repeating group.
4174  {
4175  return
4176  groups().
4177  tail<Entries>().
4178  head<OrderIDEntries>();
4179  }
4180 
4181  /// Size of message body in bytes.
4184  {
4185  return 9;
4186  }
4187 
4188  /// Returns class name.
4190  static const Char* className()
4191  {
4192  return "IncrementalRefreshTradeSummary42";
4193  }
4194 
4195  /// FIX message type.
4197  static StrRef fixType()
4198  {
4199  return toStrRef("X");
4200  }
4201 };
4202 
4203 /// MDIncrementalRefreshOrderBook.
4206 : BinaryMessage
4207 {
4208  /// Message template ID from SBE schema.
4209  enum { TemplateId = 43 };
4210 
4211  /// Number of entries in Market Data message.
4212  /// Entry of Entry repeating group.
4215  <
4217  >
4218  {
4219  /// Aliases base class type.
4220  typedef
4222  <
4224  >
4226 
4227  /// Initializes blank instance.
4229  {
4230  }
4231 
4232  /// Initializes instance of given
4233  /// version over given memory block.
4235  const void* data,
4236  BodySize size,
4237  SchemaVersion version)
4238  : Base(data, size, version)
4239  {
4240  if (size < bodySize(version))
4241  throwBadBinaryData(className());
4242  }
4243 
4244  /// Order ID.
4245  bool orderId(UInt64& value) const
4246  {
4247  typedef NullUInt64 Null;
4248 
4249  const BodySize offset = 0;
4250 
4251  return ordinary(value, offset, Null());
4252  }
4253 
4254  /// Order priority for execution on the order book.
4255  bool orderPriority(UInt64& value) const
4256  {
4257  typedef NullUInt64 Null;
4258 
4259  const BodySize offset = 8;
4260 
4261  return ordinary(value, offset, Null());
4262  }
4263 
4264  /// Order price.
4265  bool entryPx(Decimal& value) const
4266  {
4267  typedef NullPRICE Null;
4268 
4269  const BodySize offset = 16;
4270 
4271  return decimal(value, offset, Null());
4272  }
4273 
4274  /// Visible order qty.
4275  bool displayQty(Int32& value) const
4276  {
4277  typedef NullInt32 Null;
4278 
4279  const BodySize offset = 24;
4280 
4281  return ordinary(value, offset, Null());
4282  }
4283 
4284  /// Security ID.
4286  {
4287  const BodySize offset = 28;
4288 
4289  return ordinary<Int32>(offset);
4290  }
4291 
4292  /// Order book update action to be applied to the order
4293  /// referenced by OrderID.
4295  {
4296  const BodySize offset = 32;
4297 
4298  return enumeration<UpdateAction>(offset);
4299  }
4300 
4301  /// Market Data entry type.
4303  {
4304  const BodySize offset = 33;
4305 
4306  return enumeration<EntryTypeBook>(offset);
4307  }
4308 
4309  /// Returns size of entry body in bytes
4310  /// for given version of message template.
4313  {
4314  return 34;
4315  }
4316 
4317  /// Entity class name.
4319  static const Char* className()
4320  {
4321  return "IncrementalRefreshOrderBook43.Entry";
4322  }
4323  };
4324 
4325  /// Repeating group containing Entry entries.
4326  typedef
4329 
4330  /// Initializes blank instance.
4332  {
4333  }
4334 
4335  /// Initializes instance over given memory block.
4337  const void* data,
4338  MessageSize size)
4339  : BinaryMessage(data, size)
4340  {
4341  assert(TemplateId == templateId());
4342 
4343  if (size < bodySize(version()))
4344  throwBadBinaryData(className());
4345  }
4346 
4347  /// Start of event processing time in number of nanoseconds
4348  /// since Unix epoch.
4350  {
4351  const BodySize offset = 0;
4352 
4353  return ordinary<Timestamp>(offset);
4354  }
4355 
4356  /// Bitmap field of eight Boolean type indicators reflecting
4357  /// the end of updates for a given Globex event.
4358  const MatchEventIndicator&
4360  {
4361  const BodySize offset = 8;
4362 
4363  return ordinary<MatchEventIndicator>(offset);
4364  }
4365 
4366  /// Returns instance of Entries repeating group.
4368  {
4369  return
4370  groups().
4371  head<Entries>();
4372  }
4373 
4374  /// Size of message body in bytes.
4377  {
4378  return 9;
4379  }
4380 
4381  /// Returns class name.
4383  static const Char* className()
4384  {
4385  return "IncrementalRefreshOrderBook43";
4386  }
4387 
4388  /// FIX message type.
4390  static StrRef fixType()
4391  {
4392  return toStrRef("X");
4393  }
4394 };
4395 
4396 /// SnapshotFullRefreshOrderBook.
4399 : BinaryMessage
4400 {
4401  /// Message template ID from SBE schema.
4402  enum { TemplateId = 44 };
4403 
4404  /// Number of entries in Market Data message.
4405  /// Entry of Entry repeating group.
4408  <
4410  >
4411  {
4412  /// Aliases base class type.
4413  typedef
4415  <
4417  >
4419 
4420  /// Initializes blank instance.
4422  {
4423  }
4424 
4425  /// Initializes instance of given
4426  /// version over given memory block.
4428  const void* data,
4429  BodySize size,
4430  SchemaVersion version)
4431  : Base(data, size, version)
4432  {
4433  if (size < bodySize(version))
4434  throwBadBinaryData(className());
4435  }
4436 
4437  /// Unique Order ID.
4438  UInt64 orderId() const
4439  {
4440  const BodySize offset = 0;
4441 
4442  return ordinary<UInt64>(offset);
4443  }
4444 
4445  /// Order priority for execution on the order book.
4446  bool orderPriority(UInt64& value) const
4447  {
4448  typedef NullUInt64 Null;
4449 
4450  const BodySize offset = 8;
4451 
4452  return ordinary(value, offset, Null());
4453  }
4454 
4455  /// Order Price.
4457  {
4458  const BodySize offset = 16;
4459 
4460  return decimal<PRICE>(offset);
4461  }
4462 
4463  /// Visible order qty.
4465  {
4466  const BodySize offset = 24;
4467 
4468  return ordinary<Int32>(offset);
4469  }
4470 
4471  /// Market Data entry type.
4473  {
4474  const BodySize offset = 28;
4475 
4476  return enumeration<EntryTypeBook>(offset);
4477  }
4478 
4479  /// Returns size of entry body in bytes
4480  /// for given version of message template.
4483  {
4484  return 29;
4485  }
4486 
4487  /// Entity class name.
4489  static const Char* className()
4490  {
4491  return "SnapshotFullRefreshOrderBook44.Entry";
4492  }
4493  };
4494 
4495  /// Repeating group containing Entry entries.
4496  typedef
4499 
4500  /// Initializes blank instance.
4502  {
4503  }
4504 
4505  /// Initializes instance over given memory block.
4507  const void* data,
4508  MessageSize size)
4509  : BinaryMessage(data, size)
4510  {
4511  assert(TemplateId == templateId());
4512 
4513  if (size < bodySize(version()))
4514  throwBadBinaryData(className());
4515  }
4516 
4517  /// Sequence number of the last Incremental feed packet
4518  /// processed. This value is used to synchronize the snapshot
4519  /// loop with the real-time feed.
4521  {
4522  const BodySize offset = 0;
4523 
4524  return ordinary<UInt32>(offset);
4525  }
4526 
4527  /// Total number of instruments in the replayed loop.
4529  {
4530  const BodySize offset = 4;
4531 
4532  return ordinary<UInt32>(offset);
4533  }
4534 
4535  /// Security ID.
4537  {
4538  const BodySize offset = 8;
4539 
4540  return ordinary<Int32>(offset);
4541  }
4542 
4543  /// Total number of packets that constitutes a single
4544  /// instrument order book.
4545  UInt32 chunks() const
4546  {
4547  const BodySize offset = 12;
4548 
4549  return ordinary<UInt32>(offset);
4550  }
4551 
4552  /// Chunk sequence.
4554  {
4555  const BodySize offset = 16;
4556 
4557  return ordinary<UInt32>(offset);
4558  }
4559 
4560  /// Timestamp of the last event security participated in, sent
4561  /// as number of nanoseconds since Unix epoch.
4563  {
4564  const BodySize offset = 20;
4565 
4566  return ordinary<Timestamp>(offset);
4567  }
4568 
4569  /// Returns instance of Entries repeating group.
4571  {
4572  return
4573  groups().
4574  head<Entries>();
4575  }
4576 
4577  /// Size of message body in bytes.
4580  {
4581  return 28;
4582  }
4583 
4584  /// Returns class name.
4586  static const Char* className()
4587  {
4588  return "SnapshotFullRefreshOrderBook44";
4589  }
4590 
4591  /// FIX message type.
4593  static StrRef fixType()
4594  {
4595  return toStrRef("W");
4596  }
4597 };
4598 
4599 /// ChannelReset.
4602 : BinaryMessage
4603 {
4604  /// Message template ID from SBE schema.
4605  enum { TemplateId = 4 };
4606 
4607  /// Number of entries in Market Data message.
4608  /// Entry of Entry repeating group.
4611  <
4613  >
4614  {
4615  /// Aliases base class type.
4616  typedef
4618  <
4620  >
4622 
4623  /// Initializes blank instance.
4625  {
4626  }
4627 
4628  /// Initializes instance of given
4629  /// version over given memory block.
4631  const void* data,
4632  BodySize size,
4633  SchemaVersion version)
4634  : Base(data, size, version)
4635  {
4636  if (size < bodySize(version))
4637  throwBadBinaryData(className());
4638  }
4639 
4640  /// Market Data update action.
4642  {
4643  return UpdateTypeNew();
4644  }
4645 
4646  /// Market Data entry type.
4648  {
4649  return EntryTypeChannelReset();
4650  }
4651 
4652  /// Indicates the channel ID as defined in the XML
4653  /// configuration file.
4654  Int16 applId() const
4655  {
4656  const BodySize offset = 0;
4657 
4658  return ordinary<Int16>(offset);
4659  }
4660 
4661  /// Returns size of entry body in bytes
4662  /// for given version of message template.
4665  {
4666  return 2;
4667  }
4668 
4669  /// Entity class name.
4671  static const Char* className()
4672  {
4673  return "ChannelReset4.Entry";
4674  }
4675  };
4676 
4677  /// Repeating group containing Entry entries.
4678  typedef
4681 
4682  /// Initializes blank instance.
4684  {
4685  }
4686 
4687  /// Initializes instance over given memory block.
4689  const void* data,
4690  MessageSize size)
4691  : BinaryMessage(data, size)
4692  {
4693  assert(TemplateId == templateId());
4694 
4695  if (size < bodySize(version()))
4696  throwBadBinaryData(className());
4697  }
4698 
4699  /// Start of event processing time in number of nanoseconds
4700  /// since Unix epoch.
4702  {
4703  const BodySize offset = 0;
4704 
4705  return ordinary<Timestamp>(offset);
4706  }
4707 
4708  /// Bitmap field of eight Boolean type indicators reflecting
4709  /// the end of updates for a given Globex event.
4710  const MatchEventIndicator&
4712  {
4713  const BodySize offset = 8;
4714 
4715  return ordinary<MatchEventIndicator>(offset);
4716  }
4717 
4718  /// Returns instance of Entries repeating group.
4720  {
4721  return
4722  groups().
4723  head<Entries>();
4724  }
4725 
4726  /// Size of message body in bytes.
4729  {
4730  return 9;
4731  }
4732 
4733  /// Returns class name.
4735  static const Char* className()
4736  {
4737  return "ChannelReset4";
4738  }
4739 
4740  /// FIX message type.
4742  static StrRef fixType()
4743  {
4744  return toStrRef("X");
4745  }
4746 };
4747 
4748 /// AdminHeartbeat.
4751 : BinaryMessage
4752 {
4753  /// Message template ID from SBE schema.
4754  enum { TemplateId = 12 };
4755 
4756  /// Initializes blank instance.
4758  {
4759  }
4760 
4761  /// Initializes instance over given memory block.
4763  const void* data,
4764  MessageSize size)
4765  : BinaryMessage(data, size)
4766  {
4767  assert(TemplateId == templateId());
4768 
4769  if (size < bodySize(version()))
4770  throwBadBinaryData(className());
4771  }
4772 
4773  /// Size of message body in bytes.
4776  {
4777  return 0;
4778  }
4779 
4780  /// Returns class name.
4782  static const Char* className()
4783  {
4784  return "AdminHeartbeat12";
4785  }
4786 
4787  /// FIX message type.
4789  static StrRef fixType()
4790  {
4791  return toStrRef("0");
4792  }
4793 };
4794 
4795 /// AdminLogin.
4797 AdminLogin15
4798 : BinaryMessage
4799 {
4800  /// Message template ID from SBE schema.
4801  enum { TemplateId = 15 };
4802 
4803  /// Initializes blank instance.
4805  {
4806  }
4807 
4808  /// Initializes instance over given memory block.
4810  const void* data,
4811  MessageSize size)
4812  : BinaryMessage(data, size)
4813  {
4814  assert(TemplateId == templateId());
4815 
4816  if (size < bodySize(version()))
4817  throwBadBinaryData(className());
4818  }
4819 
4820  /// Heartbeat interval (seconds).
4822  {
4823  const BodySize offset = 0;
4824 
4825  return ordinary<Int8>(offset);
4826  }
4827 
4828  /// Size of message body in bytes.
4831  {
4832  return 1;
4833  }
4834 
4835  /// Returns class name.
4837  static const Char* className()
4838  {
4839  return "AdminLogin15";
4840  }
4841 
4842  /// FIX message type.
4844  static StrRef fixType()
4845  {
4846  return toStrRef("A");
4847  }
4848 };
4849 
4850 /// AdminLogout.
4853 : BinaryMessage
4854 {
4855  /// Message template ID from SBE schema.
4856  enum { TemplateId = 16 };
4857 
4858  /// Initializes blank instance.
4860  {
4861  }
4862 
4863  /// Initializes instance over given memory block.
4865  const void* data,
4866  MessageSize size)
4867  : BinaryMessage(data, size)
4868  {
4869  assert(TemplateId == templateId());
4870 
4871  if (size < bodySize(version()))
4872  throwBadBinaryData(className());
4873  }
4874 
4875  /// Free format text string. May include logout confirmation
4876  /// or reason for logout.
4877  StrRef text() const
4878  {
4879  const BodySize offset = 0;
4880  const BodySize length = 180;
4881 
4882  return fixedStr<length>(offset);
4883  }
4884 
4885  /// Size of message body in bytes.
4888  {
4889  return 180;
4890  }
4891 
4892  /// Returns class name.
4894  static const Char* className()
4895  {
4896  return "AdminLogout16";
4897  }
4898 
4899  /// FIX message type.
4901  static StrRef fixType()
4902  {
4903  return toStrRef("5");
4904  }
4905 };
4906 
4907 /// MDInstrumentDefinitionFuture.
4910 : BinaryMessage
4911 {
4912  /// Message template ID from SBE schema.
4913  enum { TemplateId = 54 };
4914 
4915  /// Number of repeating EventType entries.
4916  /// Entry of EventsEntry repeating group.
4919  <
4921  >
4922  {
4923  /// Aliases base class type.
4924  typedef
4926  <
4928  >
4930 
4931  /// Initializes blank instance.
4933  {
4934  }
4935 
4936  /// Initializes instance of given
4937  /// version over given memory block.
4939  const void* data,
4940  BodySize size,
4941  SchemaVersion version)
4942  : Base(data, size, version)
4943  {
4944  if (size < bodySize(version))
4945  throwBadBinaryData(className());
4946  }
4947 
4948  /// Code to represent the type of event.
4950  {
4951  const BodySize offset = 0;
4952 
4953  return enumeration<EventType>(offset);
4954  }
4955 
4956  /// Date and Time of instument Activation or Expiration event
4957  /// sent as number of nanoseconds since Unix epoch.
4959  {
4960  const BodySize offset = 1;
4961 
4962  return ordinary<Timestamp>(offset);
4963  }
4964 
4965  /// Returns size of entry body in bytes
4966  /// for given version of message template.
4969  {
4970  return 9;
4971  }
4972 
4973  /// Entity class name.
4975  static const Char* className()
4976  {
4977  return "InstrumentDefinitionFuture54.EventsEntry";
4978  }
4979  };
4980 
4981  /// Repeating group containing EventsEntry entries.
4982  typedef
4985 
4986  /// Number of repeating FeedType entries.
4987  /// Entry of FeedTypesEntry repeating group.
4990  <
4992  >
4993  {
4994  /// Aliases base class type.
4995  typedef
4997  <
4999  >
5001 
5002  /// Initializes blank instance.
5004  {
5005  }
5006 
5007  /// Initializes instance of given
5008  /// version over given memory block.
5010  const void* data,
5011  BodySize size,
5012  SchemaVersion version)
5013  : Base(data, size, version)
5014  {
5015  if (size < bodySize(version))
5016  throwBadBinaryData(className());
5017  }
5018 
5019  /// Describes a class of service for a given data feed. GBX-
5020  /// Real Book, GBI-Implied Book.
5022  {
5023  const BodySize offset = 0;
5024  const BodySize length = 3;
5025 
5026  return fixedStr<length>(offset);
5027  }
5028 
5029  /// Book depth.
5031  {
5032  const BodySize offset = 3;
5033 
5034  return ordinary<Int8>(offset);
5035  }
5036 
5037  /// Returns size of entry body in bytes
5038  /// for given version of message template.
5041  {
5042  return 4;
5043  }
5044 
5045  /// Entity class name.
5047  static const Char* className()
5048  {
5049  return "InstrumentDefinitionFuture54.FeedTypesEntry";
5050  }
5051  };
5052 
5053  /// Repeating group containing FeedTypesEntry entries.
5054  typedef
5057 
5058  /// Number of repeating InstrAttribType entries.
5059  /// Entry of InstAttribEntry repeating group.
5062  <
5064  >
5065  {
5066  /// Aliases base class type.
5067  typedef
5069  <
5071  >
5073 
5074  /// Initializes blank instance.
5076  {
5077  }
5078 
5079  /// Initializes instance of given
5080  /// version over given memory block.
5082  const void* data,
5083  BodySize size,
5084  SchemaVersion version)
5085  : Base(data, size, version)
5086  {
5087  if (size < bodySize(version))
5088  throwBadBinaryData(className());
5089  }
5090 
5091  /// Instrument eligibility attributes.
5093  {
5094  return InstAttribType();
5095  }
5096 
5097  /// Bitmap field of 32 Boolean type instrument eligibility
5098  /// flags.
5100  {
5101  const BodySize offset = 0;
5102 
5103  return ordinary<InstAttribValue>(offset);
5104  }
5105 
5106  /// Returns size of entry body in bytes
5107  /// for given version of message template.
5110  {
5111  return 4;
5112  }
5113 
5114  /// Entity class name.
5116  static const Char* className()
5117  {
5118  return "InstrumentDefinitionFuture54.InstAttribEntry";
5119  }
5120  };
5121 
5122  /// Repeating group containing InstAttribEntry entries.
5123  typedef
5126 
5127  /// Number of entries.
5128  /// Entry of LotTypeRulesEntry repeating group.
5131  <
5133  >
5134  {
5135  /// Aliases base class type.
5136  typedef
5138  <
5140  >
5142 
5143  /// Initializes blank instance.
5145  {
5146  }
5147 
5148  /// Initializes instance of given
5149  /// version over given memory block.
5151  const void* data,
5152  BodySize size,
5153  SchemaVersion version)
5154  : Base(data, size, version)
5155  {
5156  if (size < bodySize(version))
5157  throwBadBinaryData(className());
5158  }
5159 
5160  /// This tag is required to interpret the value in tag
5161  /// 1231-MinLotSize.
5162  Int8 lotType() const
5163  {
5164  const BodySize offset = 0;
5165 
5166  return ordinary<Int8>(offset);
5167  }
5168 
5169  /// Minimum quantity accepted for order entry. If tag
5170  /// 1093-LotType=4, this value is the minimum quantity for
5171  /// order entry expressed in the applicable units, specified
5172  /// in tag 996-UnitOfMeasure, e.g. megawatts.
5173  bool minLotSize(Decimal& value) const
5174  {
5175  typedef NullDecimalQty Null;
5176 
5177  const BodySize offset = 1;
5178 
5179  return decimal(value, offset, Null());
5180  }
5181 
5182  /// Returns size of entry body in bytes
5183  /// for given version of message template.
5186  {
5187  return 5;
5188  }
5189 
5190  /// Entity class name.
5192  static const Char* className()
5193  {
5194  return "InstrumentDefinitionFuture54.LotTypeRulesEntry";
5195  }
5196  };
5197 
5198  /// Repeating group containing LotTypeRulesEntry entries.
5199  typedef
5202 
5203  /// Initializes blank instance.
5205  {
5206  }
5207 
5208  /// Initializes instance over given memory block.
5210  const void* data,
5211  MessageSize size)
5212  : BinaryMessage(data, size)
5213  {
5214  assert(TemplateId == templateId());
5215 
5216  if (size < bodySize(version()))
5217  throwBadBinaryData(className());
5218  }
5219 
5220  /// Bitmap field of eight Boolean type indicators reflecting
5221  /// the end of updates for a given Globex event.
5222  const MatchEventIndicator&
5224  {
5225  const BodySize offset = 0;
5226 
5227  return ordinary<MatchEventIndicator>(offset);
5228  }
5229 
5230  /// Total number of instruments in the Replay loop. Used on
5231  /// Replay Feed only.
5232  bool totNumReports(UInt32& value) const
5233  {
5234  typedef NullUInt32 Null;
5235 
5236  const BodySize offset = 1;
5237 
5238  return ordinary(value, offset, Null());
5239  }
5240 
5241  /// Last Security update action on Incremental feed, 'D' or
5242  /// 'M' is used when a mid-week deletion or modification (i.e.
5243  /// extension) occurs.
5246  {
5247  const BodySize offset = 5;
5248 
5249  return enumeration<SecurityUpdateAction>(offset);
5250  }
5251 
5252  /// Timestamp of when the instrument was last added, modified
5253  /// or deleted.
5255  {
5256  const BodySize offset = 6;
5257 
5258  return ordinary<Timestamp>(offset);
5259  }
5260 
5261  /// Identifies the current state of the instrument. In
5262  /// Security Definition message this tag is available in the
5263  /// Instrument Replay feed only.
5264  bool
5266  SecurityTradingStatus::Enum& value) const
5267  {
5268  typedef NullUInt8 Null;
5269 
5270  const BodySize offset = 14;
5271 
5272  return enumeration<SecurityTradingStatus>(value, offset, Null());
5273  }
5274 
5275  /// The channel ID as defined in the XML Configuration file.
5276  Int16 applId() const
5277  {
5278  const BodySize offset = 15;
5279 
5280  return ordinary<Int16>(offset);
5281  }
5282 
5283  /// Identifies the market segment, populated for all CME
5284  /// Globex instruments.
5286  {
5287  const BodySize offset = 17;
5288 
5289  return ordinary<UInt8>(offset);
5290  }
5291 
5292  /// Product complex.
5294  {
5295  const BodySize offset = 18;
5296 
5297  return ordinary<UInt8>(offset);
5298  }
5299 
5300  /// Exchange used to identify a security.
5302  {
5303  const BodySize offset = 19;
5304  const BodySize length = 4;
5305 
5306  return fixedStr<length>(offset);
5307  }
5308 
5309  /// Security Group Code.
5311  {
5312  const BodySize offset = 23;
5313  const BodySize length = 6;
5314 
5315  return fixedStr<length>(offset);
5316  }
5317 
5318  /// The underlying asset code also known as Product Code.
5319  StrRef asset() const
5320  {
5321  const BodySize offset = 29;
5322  const BodySize length = 6;
5323 
5324  return fixedStr<length>(offset);
5325  }
5326 
5327  /// Instrument Name or Symbol.
5328  StrRef symbol() const
5329  {
5330  const BodySize offset = 35;
5331  const BodySize length = 20;
5332 
5333  return fixedStr<length>(offset);
5334  }
5335 
5336  /// Unique instrument ID.
5338  {
5339  const BodySize offset = 55;
5340 
5341  return ordinary<Int32>(offset);
5342  }
5343 
5344  /// Identifies class or source of tag 48-SecurityID value.
5346  {
5347  return SecurityIDSource();
5348  }
5349 
5350  /// Security Type.
5352  {
5353  const BodySize offset = 59;
5354  const BodySize length = 6;
5355 
5356  return fixedStr<length>(offset);
5357  }
5358 
5359  /// ISO standard instrument categorization code.
5360  StrRef cfiCode() const
5361  {
5362  const BodySize offset = 65;
5363  const BodySize length = 6;
5364 
5365  return fixedStr<length>(offset);
5366  }
5367 
5368  /// This field provides the actual calendar date for contract
5369  /// maturity.
5371  {
5372  typedef NullMaturityMonthYear Null;
5373 
5374  const BodySize offset = 71;
5375 
5376  return ordinary(value, offset, Null());
5377  }
5378 
5379  /// Identifies currency used for price.
5381  {
5382  const BodySize offset = 76;
5383  const BodySize length = 3;
5384 
5385  return fixedStr<length>(offset);
5386  }
5387 
5388  /// Identifies currency used for settlement, if different from
5389  /// trading currency.
5391  {
5392  const BodySize offset = 79;
5393  const BodySize length = 3;
5394 
5395  return fixedStr<length>(offset);
5396  }
5397 
5398  /// Matching algorithm.
5400  {
5401  const BodySize offset = 82;
5402 
5403  return ordinary<CHAR>(offset);
5404  }
5405 
5406  /// The minimum trading volume for a security.
5408  {
5409  const BodySize offset = 83;
5410 
5411  return ordinary<UInt32>(offset);
5412  }
5413 
5414  /// The maximum trading volume for a security.
5416  {
5417  const BodySize offset = 87;
5418 
5419  return ordinary<UInt32>(offset);
5420  }
5421 
5422  /// Minimum constant tick for the instrument, sent only if
5423  /// instrument is non-VTT (Variable Tick table) eligible.
5425  {
5426  const BodySize offset = 91;
5427 
5428  return decimal<PRICE9>(offset);
5429  }
5430 
5431  /// Contains the multiplier to convert the CME Globex display
5432  /// price to the conventional price.
5434  {
5435  const BodySize offset = 99;
5436 
5437  return decimal<Decimal9>(offset);
5438  }
5439 
5440  /// Price Denominator of Main Fraction.
5441  bool mainFraction(UInt8& value) const
5442  {
5443  typedef NullUInt8 Null;
5444 
5445  const BodySize offset = 107;
5446 
5447  return ordinary(value, offset, Null());
5448  }
5449 
5450  /// Price Denominator of Sub Fraction.
5451  bool subFraction(UInt8& value) const
5452  {
5453  typedef NullUInt8 Null;
5454 
5455  const BodySize offset = 108;
5456 
5457  return ordinary(value, offset, Null());
5458  }
5459 
5460  /// Number of decimals in fractional display price.
5461  bool priceDisplayFormat(UInt8& value) const
5462  {
5463  typedef NullUInt8 Null;
5464 
5465  const BodySize offset = 109;
5466 
5467  return ordinary(value, offset, Null());
5468  }
5469 
5470  /// Unit of measure for the products' original contract size.
5471  /// This will be populated for all products listed on CME
5472  /// Globex.
5474  {
5475  const BodySize offset = 110;
5476  const BodySize length = 30;
5477 
5478  return fixedStr<length>(offset);
5479  }
5480 
5481  /// This field contains the contract size for each instrument.
5482  /// Used in combination with tag 996-UnitofMeasure.
5483  bool unitOfMeasureQty(Decimal& value) const
5484  {
5485  typedef NullDecimal9 Null;
5486 
5487  const BodySize offset = 140;
5488 
5489  return decimal(value, offset, Null());
5490  }
5491 
5492  /// Reference price for prelisted instruments or the last
5493  /// calculated Settlement whether it be Theoretical,
5494  /// Preliminary or a Final Settle of the session.
5495  bool tradingReferencePrice(Decimal& value) const
5496  {
5497  typedef NullPRICE9 Null;
5498 
5499  const BodySize offset = 148;
5500 
5501  return decimal(value, offset, Null());
5502  }
5503 
5504  /// Bitmap field of eight Boolean type indicators representing
5505  /// settlement price type.
5507  {
5508  const BodySize offset = 156;
5509 
5510  return ordinary<SettlPriceType>(offset);
5511  }
5512 
5513  /// The total open interest for the market at the close of the
5514  /// prior trading session.
5515  bool openInterestQty(Int32& value) const
5516  {
5517  typedef NullInt32 Null;
5518 
5519  const BodySize offset = 157;
5520 
5521  return ordinary(value, offset, Null());
5522  }
5523 
5524  /// The total cleared volume of instrument traded during the
5525  /// prior trading session.
5526  bool clearedVolume(Int32& value) const
5527  {
5528  typedef NullInt32 Null;
5529 
5530  const BodySize offset = 161;
5531 
5532  return ordinary(value, offset, Null());
5533  }
5534 
5535  /// Allowable high limit price for the trading day.
5536  bool highLimitPrice(Decimal& value) const
5537  {
5538  typedef NullPRICE9 Null;
5539 
5540  const BodySize offset = 165;
5541 
5542  return decimal(value, offset, Null());
5543  }
5544 
5545  /// Allowable low limit price for the trading day.
5546  bool lowLimitPrice(Decimal& value) const
5547  {
5548  typedef NullPRICE9 Null;
5549 
5550  const BodySize offset = 173;
5551 
5552  return decimal(value, offset, Null());
5553  }
5554 
5555  /// Differential value for price banding.
5556  bool maxPriceVariation(Decimal& value) const
5557  {
5558  typedef NullPRICE9 Null;
5559 
5560  const BodySize offset = 181;
5561 
5562  return decimal(value, offset, Null());
5563  }
5564 
5565  /// Indicates the quantity that a contract will decay daily by
5566  /// once the decay start date is reached.
5567  bool decayQuantity(Int32& value) const
5568  {
5569  typedef NullInt32 Null;
5570 
5571  const BodySize offset = 189;
5572 
5573  return ordinary(value, offset, Null());
5574  }
5575 
5576  /// Indicates the date at which a decaying contract will begin
5577  /// to decay.
5578  bool decayStartDate(Timestamp& value) const
5579  {
5580  typedef NullLocalMktDate Null;
5581  typedef LocalMktDate FieldValue;
5582 
5583  const BodySize offset = 193;
5584 
5585  FieldValue fieldValue;
5586 
5587  if (ordinary(fieldValue, offset, Null()))
5588  {
5589  value = localMktDateToTimestamp(fieldValue);
5590  return true;
5591  }
5592  return false;
5593  }
5594 
5595  /// Fixed contract value assigned to each product.
5596  bool originalContractSize(Int32& value) const
5597  {
5598  typedef NullInt32 Null;
5599 
5600  const BodySize offset = 195;
5601 
5602  return ordinary(value, offset, Null());
5603  }
5604 
5605  /// Number of deliverable units per instrument, e.g., peak
5606  /// days in maturity month or number of calendar days in
5607  /// maturity month.
5608  bool contractMultiplier(Int32& value) const
5609  {
5610  typedef NullInt32 Null;
5611 
5612  const BodySize offset = 199;
5613 
5614  return ordinary(value, offset, Null());
5615  }
5616 
5617  /// Indicates the type of multiplier being applied to the
5618  /// product. Optionally used in combination with tag
5619  /// 231-ContractMultiplier.
5620  bool contractMultiplierUnit(Int8& value) const
5621  {
5622  typedef NullInt8 Null;
5623 
5624  const BodySize offset = 203;
5625 
5626  return ordinary(value, offset, Null());
5627  }
5628 
5629  /// The schedule according to which the electricity is
5630  /// delivered in a physical contract, or priced in a financial
5631  /// contract. Specifies whether the contract is defined
5632  /// according to the Easter Peak, Eastern Off-Peak, Western
5633  /// Peak or Western Off-Peak.
5634  bool flowScheduleType(Int8& value) const
5635  {
5636  typedef NullInt8 Null;
5637 
5638  const BodySize offset = 204;
5639 
5640  return ordinary(value, offset, Null());
5641  }
5642 
5643  /// Monetary value equivalent to the minimum price fluctuation.
5645  {
5646  typedef NullPRICE9 Null;
5647 
5648  const BodySize offset = 205;
5649 
5650  return decimal(value, offset, Null());
5651  }
5652 
5653  /// User-defined instruments flag.
5655  {
5656  const BodySize offset = 213;
5657 
5658  return ordinary<UserDefinedInstrument>(offset);
5659  }
5660 
5661  /// Indicates session date corresponding to the settlement
5662  /// price in tag 1150-TradingReferencePrice.
5663  bool tradingReferenceDate(Timestamp& value) const
5664  {
5665  typedef NullLocalMktDate Null;
5666  typedef LocalMktDate FieldValue;
5667 
5668  const BodySize offset = 214;
5669 
5670  FieldValue fieldValue;
5671 
5672  if (ordinary(fieldValue, offset, Null()))
5673  {
5674  value = localMktDateToTimestamp(fieldValue);
5675  return true;
5676  }
5677  return false;
5678  }
5679 
5680  /// Returns instance of Events repeating group.
5681  Events events() const
5682  {
5683  return
5684  groups().
5685  head<Events>();
5686  }
5687 
5688  /// Returns instance of FeedTypes repeating group.
5690  {
5691  return
5692  groups().
5693  tail<Events>().
5694  head<FeedTypes>();
5695  }
5696 
5697  /// Returns instance of InstAttrib repeating group.
5699  {
5700  return
5701  groups().
5702  tail<Events>().
5703  tail<FeedTypes>().
5704  head<InstAttrib>();
5705  }
5706 
5707  /// Returns instance of LotTypeRules repeating group.
5709  {
5710  return
5711  groups().
5712  tail<Events>().
5713  tail<FeedTypes>().
5714  tail<InstAttrib>().
5715  head<LotTypeRules>();
5716  }
5717 
5718  /// Size of message body in bytes.
5721  {
5722  return 216;
5723  }
5724 
5725  /// Returns class name.
5727  static const Char* className()
5728  {
5729  return "InstrumentDefinitionFuture54";
5730  }
5731 
5732  /// FIX message type.
5734  static StrRef fixType()
5735  {
5736  return toStrRef("d");
5737  }
5738 };
5739 
5740 /// MDInstrumentDefinitionSpread.
5743 : BinaryMessage
5744 {
5745  /// Message template ID from SBE schema.
5746  enum { TemplateId = 56 };
5747 
5748  /// Number of repeating EventType entries.
5749  /// Entry of EventsEntry repeating group.
5752  <
5754  >
5755  {
5756  /// Aliases base class type.
5757  typedef
5759  <
5761  >
5763 
5764  /// Initializes blank instance.
5766  {
5767  }
5768 
5769  /// Initializes instance of given
5770  /// version over given memory block.
5772  const void* data,
5773  BodySize size,
5774  SchemaVersion version)
5775  : Base(data, size, version)
5776  {
5777  if (size < bodySize(version))
5778  throwBadBinaryData(className());
5779  }
5780 
5781  /// Code to represent the type of event.
5783  {
5784  const BodySize offset = 0;
5785 
5786  return enumeration<EventType>(offset);
5787  }
5788 
5789  /// Date and time of instument Activation or Expiration event
5790  /// sent as number of nanoseconds since Unix epoch.
5792  {
5793  const BodySize offset = 1;
5794 
5795  return ordinary<Timestamp>(offset);
5796  }
5797 
5798  /// Returns size of entry body in bytes
5799  /// for given version of message template.
5802  {
5803  return 9;
5804  }
5805 
5806  /// Entity class name.
5808  static const Char* className()
5809  {
5810  return "InstrumentDefinitionSpread56.EventsEntry";
5811  }
5812  };
5813 
5814  /// Repeating group containing EventsEntry entries.
5815  typedef
5818 
5819  /// Number of FeedType entries.
5820  /// Entry of FeedTypesEntry repeating group.
5823  <
5825  >
5826  {
5827  /// Aliases base class type.
5828  typedef
5830  <
5832  >
5834 
5835  /// Initializes blank instance.
5837  {
5838  }
5839 
5840  /// Initializes instance of given
5841  /// version over given memory block.
5843  const void* data,
5844  BodySize size,
5845  SchemaVersion version)
5846  : Base(data, size, version)
5847  {
5848  if (size < bodySize(version))
5849  throwBadBinaryData(className());
5850  }
5851 
5852  /// Describes a class of service for a given data feed. GBX-
5853  /// Real Book, GBI-Implied Book.
5855  {
5856  const BodySize offset = 0;
5857  const BodySize length = 3;
5858 
5859  return fixedStr<length>(offset);
5860  }
5861 
5862  /// Identifies the depth of book.
5864  {
5865  const BodySize offset = 3;
5866 
5867  return ordinary<Int8>(offset);
5868  }
5869 
5870  /// Returns size of entry body in bytes
5871  /// for given version of message template.
5874  {
5875  return 4;
5876  }
5877 
5878  /// Entity class name.
5880  static const Char* className()
5881  {
5882  return "InstrumentDefinitionSpread56.FeedTypesEntry";
5883  }
5884  };
5885 
5886  /// Repeating group containing FeedTypesEntry entries.
5887  typedef
5890 
5891  /// Number of InstrAttribType entries.
5892  /// Entry of InstAttribEntry repeating group.
5895  <
5897  >
5898  {
5899  /// Aliases base class type.
5900  typedef
5902  <
5904  >
5906 
5907  /// Initializes blank instance.
5909  {
5910  }
5911 
5912  /// Initializes instance of given
5913  /// version over given memory block.
5915  const void* data,
5916  BodySize size,
5917  SchemaVersion version)
5918  : Base(data, size, version)
5919  {
5920  if (size < bodySize(version))
5921  throwBadBinaryData(className());
5922  }
5923 
5924  /// Instrument Eligibility Attributes.
5926  {
5927  return InstAttribType();
5928  }
5929 
5930  /// Bitmap field of 32 Boolean type Instrument eligibility
5931  /// flags.
5933  {
5934  const BodySize offset = 0;
5935 
5936  return ordinary<InstAttribValue>(offset);
5937  }
5938 
5939  /// Returns size of entry body in bytes
5940  /// for given version of message template.
5943  {
5944  return 4;
5945  }
5946 
5947  /// Entity class name.
5949  static const Char* className()
5950  {
5951  return "InstrumentDefinitionSpread56.InstAttribEntry";
5952  }
5953  };
5954 
5955  /// Repeating group containing InstAttribEntry entries.
5956  typedef
5959 
5960  /// Number of entries.
5961  /// Entry of LotTypeRulesEntry repeating group.
5964  <
5966  >
5967  {
5968  /// Aliases base class type.
5969  typedef
5971  <
5973  >
5975 
5976  /// Initializes blank instance.
5978  {
5979  }
5980 
5981  /// Initializes instance of given
5982  /// version over given memory block.
5984  const void* data,
5985  BodySize size,
5986  SchemaVersion version)
5987  : Base(data, size, version)
5988  {
5989  if (size < bodySize(version))
5990  throwBadBinaryData(className());
5991  }
5992 
5993  /// This tag is required to interpret the value in tag
5994  /// 1231-MinLotSize.
5995  Int8 lotType() const
5996  {
5997  const BodySize offset = 0;
5998 
5999  return ordinary<Int8>(offset);
6000  }
6001 
6002  /// Minimum quantity accepted for order entry. If tag
6003  /// 1093-LotType=4, this value is the minimum quantity for
6004  /// order entry expressed in the applicable units, specified
6005  /// in tag 996-UnitOfMeasure, e.g. megawatts.
6006  bool minLotSize(Decimal& value) const
6007  {
6008  typedef NullDecimalQty Null;
6009 
6010  const BodySize offset = 1;
6011 
6012  return decimal(value, offset, Null());
6013  }
6014 
6015  /// Returns size of entry body in bytes
6016  /// for given version of message template.
6019  {
6020  return 5;
6021  }
6022 
6023  /// Entity class name.
6025  static const Char* className()
6026  {
6027  return "InstrumentDefinitionSpread56.LotTypeRulesEntry";
6028  }
6029  };
6030 
6031  /// Repeating group containing LotTypeRulesEntry entries.
6032  typedef
6035 
6036  /// Number of Leg entries.
6037  /// Entry of LegsEntry repeating group.
6040  <
6042  >
6043  {
6044  /// Aliases base class type.
6045  typedef
6047  <
6049  >
6051 
6052  /// Initializes blank instance.
6054  {
6055  }
6056 
6057  /// Initializes instance of given
6058  /// version over given memory block.
6060  const void* data,
6061  BodySize size,
6062  SchemaVersion version)
6063  : Base(data, size, version)
6064  {
6065  if (size < bodySize(version))
6066  throwBadBinaryData(className());
6067  }
6068 
6069  /// Leg Security ID.
6071  {
6072  const BodySize offset = 0;
6073 
6074  return ordinary<Int32>(offset);
6075  }
6076 
6077  /// Identifies source of tag 602-LegSecurityID value.
6079  {
6080  return SecurityIDSource();
6081  }
6082 
6083  /// Leg side.
6085  {
6086  const BodySize offset = 4;
6087 
6088  return enumeration<LegSide>(offset);
6089  }
6090 
6091  /// Leg ratio of quantity for this individual leg relative to
6092  /// the entire multi-leg instrument.
6094  {
6095  const BodySize offset = 5;
6096 
6097  return ordinary<Int8>(offset);
6098  }
6099 
6100  /// Price for the future leg of a UDS Covered instrument.
6101  bool legPrice(Decimal& value) const
6102  {
6103  typedef NullPRICE9 Null;
6104 
6105  const BodySize offset = 6;
6106 
6107  return decimal(value, offset, Null());
6108  }
6109 
6110  /// Delta used to calculate the quantity of futures used to
6111  /// cover the option or option strategy.
6112  bool legOptionDelta(Decimal& value) const
6113  {
6114  typedef NullDecimalQty Null;
6115 
6116  const BodySize offset = 14;
6117 
6118  return decimal(value, offset, Null());
6119  }
6120 
6121  /// Returns size of entry body in bytes
6122  /// for given version of message template.
6125  {
6126  return 18;
6127  }
6128 
6129  /// Entity class name.
6131  static const Char* className()
6132  {
6133  return "InstrumentDefinitionSpread56.LegsEntry";
6134  }
6135  };
6136 
6137  /// Repeating group containing LegsEntry entries.
6138  typedef
6141 
6142  /// Initializes blank instance.
6144  {
6145  }
6146 
6147  /// Initializes instance over given memory block.
6149  const void* data,
6150  MessageSize size)
6151  : BinaryMessage(data, size)
6152  {
6153  assert(TemplateId == templateId());
6154 
6155  if (size < bodySize(version()))
6156  throwBadBinaryData(className());
6157  }
6158 
6159  /// Bitmap field of eight Boolean type indicators reflecting
6160  /// the end of updates for a given Globex event.
6161  const MatchEventIndicator&
6163  {
6164  const BodySize offset = 0;
6165 
6166  return ordinary<MatchEventIndicator>(offset);
6167  }
6168 
6169  /// Total number of instruments in the Replay loop. Used on
6170  /// Replay Feed only.
6171  bool totNumReports(UInt32& value) const
6172  {
6173  typedef NullUInt32 Null;
6174 
6175  const BodySize offset = 1;
6176 
6177  return ordinary(value, offset, Null());
6178  }
6179 
6180  /// Last Security update action on Incremental feed, 'D' or
6181  /// 'M' is used when a mid-week deletion or modification (i.e.
6182  /// extension) occurs.
6185  {
6186  const BodySize offset = 5;
6187 
6188  return enumeration<SecurityUpdateAction>(offset);
6189  }
6190 
6191  /// Timestamp of when the instrument was last added, modified
6192  /// or deleted.
6194  {
6195  const BodySize offset = 6;
6196 
6197  return ordinary<Timestamp>(offset);
6198  }
6199 
6200  /// Identifies the current state of the instrument. The data
6201  /// is available in the Instrument Replay feed only.
6202  bool
6204  SecurityTradingStatus::Enum& value) const
6205  {
6206  typedef NullUInt8 Null;
6207 
6208  const BodySize offset = 14;
6209 
6210  return enumeration<SecurityTradingStatus>(value, offset, Null());
6211  }
6212 
6213  /// The channel ID as defined in the XML Configuration file.
6214  Int16 applId() const
6215  {
6216  const BodySize offset = 15;
6217 
6218  return ordinary<Int16>(offset);
6219  }
6220 
6221  /// Identifies the market segment, populated for all CME
6222  /// Globex instruments.
6224  {
6225  const BodySize offset = 17;
6226 
6227  return ordinary<UInt8>(offset);
6228  }
6229 
6230  /// Product complex.
6231  bool underlyingProduct(UInt8& value) const
6232  {
6233  typedef NullUInt8 Null;
6234 
6235  const BodySize offset = 18;
6236 
6237  return ordinary(value, offset, Null());
6238  }
6239 
6240  /// Exchange used to identify a security.
6242  {
6243  const BodySize offset = 19;
6244  const BodySize length = 4;
6245 
6246  return fixedStr<length>(offset);
6247  }
6248 
6249  /// Security Group Code.
6251  {
6252  const BodySize offset = 23;
6253  const BodySize length = 6;
6254 
6255  return fixedStr<length>(offset);
6256  }
6257 
6258  /// The underlying asset code also known as Product Code.
6259  StrRef asset() const
6260  {
6261  const BodySize offset = 29;
6262  const BodySize length = 6;
6263 
6264  return fixedStr<length>(offset);
6265  }
6266 
6267  /// Instrument Name or Symbol. Previously used as Group Code.
6268  StrRef symbol() const
6269  {
6270  const BodySize offset = 35;
6271  const BodySize length = 20;
6272 
6273  return fixedStr<length>(offset);
6274  }
6275 
6276  /// Unique instrument ID.
6278  {
6279  const BodySize offset = 55;
6280 
6281  return ordinary<Int32>(offset);
6282  }
6283 
6284  /// Identifies class or source of the security ID (Tag 48)
6285  /// value.
6287  {
6288  return SecurityIDSource();
6289  }
6290 
6291  /// Security Type.
6293  {
6294  const BodySize offset = 59;
6295  const BodySize length = 6;
6296 
6297  return fixedStr<length>(offset);
6298  }
6299 
6300  /// ISO standard instrument categorization code.
6301  StrRef cfiCode() const
6302  {
6303  const BodySize offset = 65;
6304  const BodySize length = 6;
6305 
6306  return fixedStr<length>(offset);
6307  }
6308 
6309  /// This field provides the actual calendar date for contract
6310  /// maturity.
6312  {
6313  typedef NullMaturityMonthYear Null;
6314 
6315  const BodySize offset = 71;
6316 
6317  return ordinary(value, offset, Null());
6318  }
6319 
6320  /// Identifies currency used for price.
6322  {
6323  const BodySize offset = 76;
6324  const BodySize length = 3;
6325 
6326  return fixedStr<length>(offset);
6327  }
6328 
6329  /// Strategy type.
6331  {
6332  const BodySize offset = 79;
6333  const BodySize length = 5;
6334 
6335  return fixedStr<length>(offset);
6336  }
6337 
6338  /// User-defined instruments flag.
6340  {
6341  const BodySize offset = 84;
6342 
6343  return ordinary<UserDefinedInstrument>(offset);
6344  }
6345 
6346  /// Matching algorithm.
6348  {
6349  const BodySize offset = 85;
6350 
6351  return ordinary<CHAR>(offset);
6352  }
6353 
6354  /// The minimum trading volume for a security.
6356  {
6357  const BodySize offset = 86;
6358 
6359  return ordinary<UInt32>(offset);
6360  }
6361 
6362  /// The maximum trading volume for a security.
6364  {
6365  const BodySize offset = 90;
6366 
6367  return ordinary<UInt32>(offset);
6368  }
6369 
6370  /// Minimum constant tick for the instrument, sent only if
6371  /// instrument is non-VTT (Variable Tick table) eligible.
6372  bool minPriceIncrement(Decimal& value) const
6373  {
6374  typedef NullPRICE9 Null;
6375 
6376  const BodySize offset = 94;
6377 
6378  return decimal(value, offset, Null());
6379  }
6380 
6381  /// Contains the multiplier to convert the CME Globex display
6382  /// price to the conventional price.
6384  {
6385  const BodySize offset = 102;
6386 
6387  return decimal<Decimal9>(offset);
6388  }
6389 
6390  /// Number of decimals in fractional display price.
6391  bool priceDisplayFormat(UInt8& value) const
6392  {
6393  typedef NullUInt8 Null;
6394 
6395  const BodySize offset = 110;
6396 
6397  return ordinary(value, offset, Null());
6398  }
6399 
6400  /// Used for price calculation in spread and leg pricing.
6401  bool priceRatio(Decimal& value) const
6402  {
6403  typedef NullPRICE9 Null;
6404 
6405  const BodySize offset = 111;
6406 
6407  return decimal(value, offset, Null());
6408  }
6409 
6410  /// Tick Rule.
6411  bool tickRule(Int8& value) const
6412  {
6413  typedef NullInt8 Null;
6414 
6415  const BodySize offset = 119;
6416 
6417  return ordinary(value, offset, Null());
6418  }
6419 
6420  /// Unit of measure for the products' original contract size.
6422  {
6423  const BodySize offset = 120;
6424  const BodySize length = 30;
6425 
6426  return fixedStr<length>(offset);
6427  }
6428 
6429  /// Reference price - the most recently available Settlement
6430  /// whether it be Theoretical, Preliminary or a Final Settle
6431  /// of the session.
6432  bool tradingReferencePrice(Decimal& value) const
6433  {
6434  typedef NullPRICE9 Null;
6435 
6436  const BodySize offset = 150;
6437 
6438  return decimal(value, offset, Null());
6439  }
6440 
6441  /// Bitmap field of eight Boolean type indicators representing
6442  /// settlement price type.
6444  {
6445  const BodySize offset = 158;
6446 
6447  return ordinary<SettlPriceType>(offset);
6448  }
6449 
6450  /// The total open interest for the market at the close of the
6451  /// prior trading session.
6452  bool openInterestQty(Int32& value) const
6453  {
6454  typedef NullInt32 Null;
6455 
6456  const BodySize offset = 159;
6457 
6458  return ordinary(value, offset, Null());
6459  }
6460 
6461  /// The total cleared volume of instrument traded during the
6462  /// prior trading session.
6463  bool clearedVolume(Int32& value) const
6464  {
6465  typedef NullInt32 Null;
6466 
6467  const BodySize offset = 163;
6468 
6469  return ordinary(value, offset, Null());
6470  }
6471 
6472  /// Allowable high limit price for the trading day.
6473  bool highLimitPrice(Decimal& value) const
6474  {
6475  typedef NullPRICE9 Null;
6476 
6477  const BodySize offset = 167;
6478 
6479  return decimal(value, offset, Null());
6480  }
6481 
6482  /// Allowable low limit price for the trading day.
6483  bool lowLimitPrice(Decimal& value) const
6484  {
6485  typedef NullPRICE9 Null;
6486 
6487  const BodySize offset = 175;
6488 
6489  return decimal(value, offset, Null());
6490  }
6491 
6492  /// Differential value for price banding.
6493  bool maxPriceVariation(Decimal& value) const
6494  {
6495  typedef NullPRICE9 Null;
6496 
6497  const BodySize offset = 183;
6498 
6499  return decimal(value, offset, Null());
6500  }
6501 
6502  /// Price Denominator of Main Fraction.
6503  bool mainFraction(UInt8& value) const
6504  {
6505  typedef NullUInt8 Null;
6506 
6507  const BodySize offset = 191;
6508 
6509  return ordinary(value, offset, Null());
6510  }
6511 
6512  /// Price Denominator of Sub Fraction.
6513  bool subFraction(UInt8& value) const
6514  {
6515  typedef NullUInt8 Null;
6516 
6517  const BodySize offset = 192;
6518 
6519  return ordinary(value, offset, Null());
6520  }
6521 
6522  /// Indicates session date corresponding to the settlement
6523  /// price in tag 1150-TradingReferencePrice.
6524  bool tradingReferenceDate(Timestamp& value) const
6525  {
6526  typedef NullLocalMktDate Null;
6527  typedef LocalMktDate FieldValue;
6528 
6529  const BodySize offset = 193;
6530 
6531  FieldValue fieldValue;
6532 
6533  if (ordinary(fieldValue, offset, Null()))
6534  {
6535  value = localMktDateToTimestamp(fieldValue);
6536  return true;
6537  }
6538  return false;
6539  }
6540 
6541  /// Returns instance of Events repeating group.
6542  Events events() const
6543  {
6544  return
6545  groups().
6546  head<Events>();
6547  }
6548 
6549  /// Returns instance of FeedTypes repeating group.
6551  {
6552  return
6553  groups().
6554  tail<Events>().
6555  head<FeedTypes>();
6556  }
6557 
6558  /// Returns instance of InstAttrib repeating group.
6560  {
6561  return
6562  groups().
6563  tail<Events>().
6564  tail<FeedTypes>().
6565  head<InstAttrib>();
6566  }
6567 
6568  /// Returns instance of LotTypeRules repeating group.
6570  {
6571  return
6572  groups().
6573  tail<Events>().
6574  tail<FeedTypes>().
6575  tail<InstAttrib>().
6576  head<LotTypeRules>();
6577  }
6578 
6579  /// Returns instance of Legs repeating group.
6580  Legs legs() const
6581  {
6582  return
6583  groups().
6584  tail<Events>().
6585  tail<FeedTypes>().
6586  tail<InstAttrib>().
6587  tail<LotTypeRules>().
6588  head<Legs>();
6589  }
6590 
6591  /// Size of message body in bytes.
6594  {
6595  return 195;
6596  }
6597 
6598  /// Returns class name.
6600  static const Char* className()
6601  {
6602  return "InstrumentDefinitionSpread56";
6603  }
6604 
6605  /// FIX message type.
6607  static StrRef fixType()
6608  {
6609  return toStrRef("d");
6610  }
6611 };
6612 
6613 /// SecurityStatus.
6616 : BinaryMessage
6617 {
6618  /// Message template ID from SBE schema.
6619  enum { TemplateId = 30 };
6620 
6621  /// Initializes blank instance.
6623  {
6624  }
6625 
6626  /// Initializes instance over given memory block.
6628  const void* data,
6629  MessageSize size)
6630  : BinaryMessage(data, size)
6631  {
6632  assert(TemplateId == templateId());
6633 
6634  if (size < bodySize(version()))
6635  throwBadBinaryData(className());
6636  }
6637 
6638  /// Start of event processing time in number of nanoseconds
6639  /// since Unix epoch.
6641  {
6642  const BodySize offset = 0;
6643 
6644  return ordinary<Timestamp>(offset);
6645  }
6646 
6647  /// Security Group.
6649  {
6650  const BodySize offset = 8;
6651  const BodySize length = 6;
6652 
6653  return fixedStr<length>(offset);
6654  }
6655 
6656  /// Product Code within Security Group specified.
6657  StrRef asset() const
6658  {
6659  const BodySize offset = 14;
6660  const BodySize length = 6;
6661 
6662  return fixedStr<length>(offset);
6663  }
6664 
6665  /// If this tag is present, 35=f message is sent for the
6666  /// instrument.
6667  bool securityId(Int32& value) const
6668  {
6669  typedef NullInt32 Null;
6670 
6671  const BodySize offset = 20;
6672 
6673  return ordinary(value, offset, Null());
6674  }
6675 
6676  /// Trade Session Date.
6677  bool tradeDate(Timestamp& value) const
6678  {
6679  typedef NullLocalMktDate Null;
6680  typedef LocalMktDate FieldValue;
6681 
6682  const BodySize offset = 24;
6683 
6684  FieldValue fieldValue;
6685 
6686  if (ordinary(fieldValue, offset, Null()))
6687  {
6688  value = localMktDateToTimestamp(fieldValue);
6689  return true;
6690  }
6691  return false;
6692  }
6693 
6694  /// Bitmap field of eight Boolean type indicators reflecting
6695  /// the end of updates for a given Globex event.
6696  const MatchEventIndicator&
6698  {
6699  const BodySize offset = 26;
6700 
6701  return ordinary<MatchEventIndicator>(offset);
6702  }
6703 
6704  /// Identifies the trading status applicable to the instrument
6705  /// or Security Group.
6706  bool
6708  SecurityTradingStatus::Enum& value) const
6709  {
6710  typedef NullUInt8 Null;
6711 
6712  const BodySize offset = 27;
6713 
6714  return enumeration<SecurityTradingStatus>(value, offset, Null());
6715  }
6716 
6717  /// Identifies the reason for the status change.
6719  {
6720  const BodySize offset = 28;
6721 
6722  return enumeration<HaltReason>(offset);
6723  }
6724 
6725  /// Identifies an additional event or a rule related to the
6726  /// status.
6729  {
6730  const BodySize offset = 29;
6731 
6732  return enumeration<SecurityTradingEvent>(offset);
6733  }
6734 
6735  /// Size of message body in bytes.
6738  {
6739  return 30;
6740  }
6741 
6742  /// Returns class name.
6744  static const Char* className()
6745  {
6746  return "SecurityStatus30";
6747  }
6748 
6749  /// FIX message type.
6751  static StrRef fixType()
6752  {
6753  return toStrRef("f");
6754  }
6755 };
6756 
6757 /// MDIncrementalRefreshBook.
6760 : BinaryMessage
6761 {
6762  /// Message template ID from SBE schema.
6763  enum { TemplateId = 46 };
6764 
6765  /// Number of entries in Market Data message.
6766  /// Entry of Entry repeating group.
6769  <
6771  >
6772  {
6773  /// Aliases base class type.
6774  typedef
6776  <
6778  >
6780 
6781  /// Initializes blank instance.
6783  {
6784  }
6785 
6786  /// Initializes instance of given
6787  /// version over given memory block.
6789  const void* data,
6790  BodySize size,
6791  SchemaVersion version)
6792  : Base(data, size, version)
6793  {
6794  if (size < bodySize(version))
6795  throwBadBinaryData(className());
6796  }
6797 
6798  /// Market Data entry price.
6799  bool entryPx(Decimal& value) const
6800  {
6801  typedef NullPRICE9 Null;
6802 
6803  const BodySize offset = 0;
6804 
6805  return decimal(value, offset, Null());
6806  }
6807 
6808  /// Market Data entry size.
6809  bool entrySize(Int32& value) const
6810  {
6811  typedef NullInt32 Null;
6812 
6813  const BodySize offset = 8;
6814 
6815  return ordinary(value, offset, Null());
6816  }
6817 
6818  /// Security ID.
6820  {
6821  const BodySize offset = 12;
6822 
6823  return ordinary<Int32>(offset);
6824  }
6825 
6826  /// Market Data entry sequence number per instrument update.
6827  UInt32 rptSeq() const
6828  {
6829  const BodySize offset = 16;
6830 
6831  return ordinary<UInt32>(offset);
6832  }
6833 
6834  /// In Book entry - aggregate number of orders at given price
6835  /// level.
6836  bool numberOfOrders(Int32& value) const
6837  {
6838  typedef NullInt32 Null;
6839 
6840  const BodySize offset = 20;
6841 
6842  return ordinary(value, offset, Null());
6843  }
6844 
6845  /// Aggregate book level.
6847  {
6848  const BodySize offset = 24;
6849 
6850  return ordinary<UInt8>(offset);
6851  }
6852 
6853  /// Market Data update action.
6855  {
6856  const BodySize offset = 25;
6857 
6858  return enumeration<UpdateAction>(offset);
6859  }
6860 
6861  /// Market Data entry type.
6863  {
6864  const BodySize offset = 26;
6865 
6866  return enumeration<EntryTypeBook>(offset);
6867  }
6868 
6869  /// Returns size of entry body in bytes
6870  /// for given version of message template.
6873  {
6874  return 27;
6875  }
6876 
6877  /// Entity class name.
6879  static const Char* className()
6880  {
6881  return "IncrementalRefreshBook46.Entry";
6882  }
6883  };
6884 
6885  /// Repeating group containing Entry entries.
6886  typedef
6889 
6890  /// Number of OrderID entries.
6891  /// Entry of OrderIDEntry repeating group.
6894  <
6896  >
6897  {
6898  /// Aliases base class type.
6899  typedef
6901  <
6903  >
6905 
6906  /// Initializes blank instance.
6908  {
6909  }
6910 
6911  /// Initializes instance of given
6912  /// version over given memory block.
6914  const void* data,
6915  BodySize size,
6916  SchemaVersion version)
6917  : Base(data, size, version)
6918  {
6919  if (size < bodySize(version))
6920  throwBadBinaryData(className());
6921  }
6922 
6923  /// Unique Order ID.
6924  UInt64 orderId() const
6925  {
6926  const BodySize offset = 0;
6927 
6928  return ordinary<UInt64>(offset);
6929  }
6930 
6931  /// Order priority for execution on the order book.
6932  bool orderPriority(UInt64& value) const
6933  {
6934  typedef NullUInt64 Null;
6935 
6936  const BodySize offset = 8;
6937 
6938  return ordinary(value, offset, Null());
6939  }
6940 
6941  /// Visible qty of order.
6942  bool displayQty(Int32& value) const
6943  {
6944  typedef NullInt32 Null;
6945 
6946  const BodySize offset = 16;
6947 
6948  return ordinary(value, offset, Null());
6949  }
6950 
6951  /// Reference to corresponding Price and Security ID, sequence
6952  /// of MD entry in the message.
6953  bool referenceId(UInt8& value) const
6954  {
6955  typedef NullUInt8 Null;
6956 
6957  const BodySize offset = 20;
6958 
6959  return ordinary(value, offset, Null());
6960  }
6961 
6962  /// Order book update action to be applied to the order
6963  /// referenced by OrderID.
6965  {
6966  const BodySize offset = 21;
6967 
6968  return enumeration<OrderUpdateAction>(offset);
6969  }
6970 
6971  /// Returns size of entry body in bytes
6972  /// for given version of message template.
6975  {
6976  return 22;
6977  }
6978 
6979  /// Entity class name.
6981  static const Char* className()
6982  {
6983  return "IncrementalRefreshBook46.OrderIDEntry";
6984  }
6985  };
6986 
6987  /// Repeating group containing OrderIDEntry entries.
6988  typedef
6991 
6992  /// Initializes blank instance.
6994  {
6995  }
6996 
6997  /// Initializes instance over given memory block.
6999  const void* data,
7000  MessageSize size)
7001  : BinaryMessage(data, size)
7002  {
7003  assert(TemplateId == templateId());
7004 
7005  if (size < bodySize(version()))
7006  throwBadBinaryData(className());
7007  }
7008 
7009  /// Start of event processing time in number of nanoseconds
7010  /// since Unix epoch.
7012  {
7013  const BodySize offset = 0;
7014 
7015  return ordinary<Timestamp>(offset);
7016  }
7017 
7018  /// Bitmap field of eight Boolean type indicators reflecting
7019  /// the end of updates for a given Globex event.
7020  const MatchEventIndicator&
7022  {
7023  const BodySize offset = 8;
7024 
7025  return ordinary<MatchEventIndicator>(offset);
7026  }
7027 
7028  /// Returns instance of Entries repeating group.
7030  {
7031  return
7032  groups().
7033  head<Entries>();
7034  }
7035 
7036  /// Returns instance of OrderIDEntries repeating group.
7038  {
7039  return
7040  groups().
7041  tail<Entries>().
7042  head<OrderIDEntries>();
7043  }
7044 
7045  /// Size of message body in bytes.
7048  {
7049  return 9;
7050  }
7051 
7052  /// Returns class name.
7054  static const Char* className()
7055  {
7056  return "IncrementalRefreshBook46";
7057  }
7058 
7059  /// FIX message type.
7061  static StrRef fixType()
7062  {
7063  return toStrRef("X");
7064  }
7065 };
7066 
7067 /// MDIncrementalRefreshDailyStatistics.
7070 : BinaryMessage
7071 {
7072  /// Message template ID from SBE schema.
7073  enum { TemplateId = 49 };
7074 
7075  /// Number of entries in Market Data message.
7076  /// Entry of Entry repeating group.
7079  <
7081  >
7082  {
7083  /// Aliases base class type.
7084  typedef
7086  <
7088  >
7090 
7091  /// Initializes blank instance.
7093  {
7094  }
7095 
7096  /// Initializes instance of given
7097  /// version over given memory block.
7099  const void* data,
7100  BodySize size,
7101  SchemaVersion version)
7102  : Base(data, size, version)
7103  {
7104  if (size < bodySize(version))
7105  throwBadBinaryData(className());
7106  }
7107 
7108  /// Market Data entry price.
7109  bool entryPx(Decimal& value) const
7110  {
7111  typedef NullPRICE9 Null;
7112 
7113  const BodySize offset = 0;
7114 
7115  return decimal(value, offset, Null());
7116  }
7117 
7118  /// Market Data entry size.
7119  bool entrySize(Int32& value) const
7120  {
7121  typedef NullInt32 Null;
7122 
7123  const BodySize offset = 8;
7124 
7125  return ordinary(value, offset, Null());
7126  }
7127 
7128  /// Security ID.
7130  {
7131  const BodySize offset = 12;
7132 
7133  return ordinary<Int32>(offset);
7134  }
7135 
7136  /// Market Data entry sequence number per instrument update.
7137  UInt32 rptSeq() const
7138  {
7139  const BodySize offset = 16;
7140 
7141  return ordinary<UInt32>(offset);
7142  }
7143 
7144  /// Indicates trade session date corresponding to a statistic
7145  /// entry.
7146  bool tradingReferenceDate(Timestamp& value) const
7147  {
7148  typedef NullLocalMktDate Null;
7149  typedef LocalMktDate FieldValue;
7150 
7151  const BodySize offset = 20;
7152 
7153  FieldValue fieldValue;
7154 
7155  if (ordinary(fieldValue, offset, Null()))
7156  {
7157  value = localMktDateToTimestamp(fieldValue);
7158  return true;
7159  }
7160  return false;
7161  }
7162 
7163  /// Bitmap field of eight Boolean type indicators representing
7164  /// settlement price type.
7166  {
7167  const BodySize offset = 22;
7168 
7169  return ordinary<SettlPriceType>(offset);
7170  }
7171 
7172  /// Market Data update action.
7174  {
7175  const BodySize offset = 23;
7176 
7177  return enumeration<UpdateAction>(offset);
7178  }
7179 
7180  /// Market Data entry type.
7182  entryType() const
7183  {
7184  const BodySize offset = 24;
7185 
7186  return enumeration<EntryTypeDailyStatistics>(offset);
7187  }
7188 
7189  /// Returns size of entry body in bytes
7190  /// for given version of message template.
7193  {
7194  return 25;
7195  }
7196 
7197  /// Entity class name.
7199  static const Char* className()
7200  {
7201  return "IncrementalRefreshDailyStatistics49.Entry";
7202  }
7203  };
7204 
7205  /// Repeating group containing Entry entries.
7206  typedef
7209 
7210  /// Initializes blank instance.
7212  {
7213  }
7214 
7215  /// Initializes instance over given memory block.
7217  const void* data,
7218  MessageSize size)
7219  : BinaryMessage(data, size)
7220  {
7221  assert(TemplateId == templateId());
7222 
7223  if (size < bodySize(version()))
7224  throwBadBinaryData(className());
7225  }
7226 
7227  /// Start of event processing time in number of nanoseconds
7228  /// since Unix epoch.
7230  {
7231  const BodySize offset = 0;
7232 
7233  return ordinary<Timestamp>(offset);
7234  }
7235 
7236  /// Bitmap field of eight Boolean type indicators reflecting
7237  /// the end of updates for a given Globex event.
7238  const MatchEventIndicator&
7240  {
7241  const BodySize offset = 8;
7242 
7243  return ordinary<MatchEventIndicator>(offset);
7244  }
7245 
7246  /// Returns instance of Entries repeating group.
7248  {
7249  return
7250  groups().
7251  head<Entries>();
7252  }
7253 
7254  /// Size of message body in bytes.
7257  {
7258  return 9;
7259  }
7260 
7261  /// Returns class name.
7263  static const Char* className()
7264  {
7265  return "IncrementalRefreshDailyStatistics49";
7266  }
7267 
7268  /// FIX message type.
7270  static StrRef fixType()
7271  {
7272  return toStrRef("X");
7273  }
7274 };
7275 
7276 /// MDIncrementalRefreshLimitsBanding.
7279 : BinaryMessage
7280 {
7281  /// Message template ID from SBE schema.
7282  enum { TemplateId = 50 };
7283 
7284  /// Number of entries in Market Data message.
7285  /// Entry of Entry repeating group.
7288  <
7290  >
7291  {
7292  /// Aliases base class type.
7293  typedef
7295  <
7297  >
7299 
7300  /// Initializes blank instance.
7302  {
7303  }
7304 
7305  /// Initializes instance of given
7306  /// version over given memory block.
7308  const void* data,
7309  BodySize size,
7310  SchemaVersion version)
7311  : Base(data, size, version)
7312  {
7313  if (size < bodySize(version))
7314  throwBadBinaryData(className());
7315  }
7316 
7317  /// Upper price threshold for the instrument.
7318  bool highLimitPrice(Decimal& value) const
7319  {
7320  typedef NullPRICE9 Null;
7321 
7322  const BodySize offset = 0;
7323 
7324  return decimal(value, offset, Null());
7325  }
7326 
7327  /// Lower price threshold for the instrument.
7328  bool lowLimitPrice(Decimal& value) const
7329  {
7330  typedef NullPRICE9 Null;
7331 
7332  const BodySize offset = 8;
7333 
7334  return decimal(value, offset, Null());
7335  }
7336 
7337  /// Differential static value for price banding.
7338  bool maxPriceVariation(Decimal& value) const
7339  {
7340  typedef NullPRICE9 Null;
7341 
7342  const BodySize offset = 16;
7343 
7344  return decimal(value, offset, Null());
7345  }
7346 
7347  /// Security ID.
7349  {
7350  const BodySize offset = 24;
7351 
7352  return ordinary<Int32>(offset);
7353  }
7354 
7355  /// MD Entry sequence number per instrument update.
7356  UInt32 rptSeq() const
7357  {
7358  const BodySize offset = 28;
7359 
7360  return ordinary<UInt32>(offset);
7361  }
7362 
7363  /// Market Data entry update action. In order to delete
7364  /// banding value, high or low limit, the deleted price field
7365  /// is populated with a NULL.
7367  {
7368  return UpdateActionNew();
7369  }
7370 
7371  /// Market Data entry type.
7373  {
7374  return EntryTypeLimits();
7375  }
7376 
7377  /// Returns size of entry body in bytes
7378  /// for given version of message template.
7381  {
7382  return 32;
7383  }
7384 
7385  /// Entity class name.
7387  static const Char* className()
7388  {
7389  return "IncrementalRefreshLimitsBanding50.Entry";
7390  }
7391  };
7392 
7393  /// Repeating group containing Entry entries.
7394  typedef
7397 
7398  /// Initializes blank instance.
7400  {
7401  }
7402 
7403  /// Initializes instance over given memory block.
7405  const void* data,
7406  MessageSize size)
7407  : BinaryMessage(data, size)
7408  {
7409  assert(TemplateId == templateId());
7410 
7411  if (size < bodySize(version()))
7412  throwBadBinaryData(className());
7413  }
7414 
7415  /// Start of event processing time in number of nanoseconds
7416  /// since Unix epoch.
7418  {
7419  const BodySize offset = 0;
7420 
7421  return ordinary<Timestamp>(offset);
7422  }
7423 
7424  /// Bitmap field of eight Boolean type indicators reflecting
7425  /// the end of updates for a given Globex event.
7426  const MatchEventIndicator&
7428  {
7429  const BodySize offset = 8;
7430 
7431  return ordinary<MatchEventIndicator>(offset);
7432  }
7433 
7434  /// Returns instance of Entries repeating group.
7436  {
7437  return
7438  groups().
7439  head<Entries>();
7440  }
7441 
7442  /// Size of message body in bytes.
7445  {
7446  return 9;
7447  }
7448 
7449  /// Returns class name.
7451  static const Char* className()
7452  {
7453  return "IncrementalRefreshLimitsBanding50";
7454  }
7455 
7456  /// FIX message type.
7458  static StrRef fixType()
7459  {
7460  return toStrRef("X");
7461  }
7462 };
7463 
7464 /// MDIncrementalRefreshSessionStatistics.
7467 : BinaryMessage
7468 {
7469  /// Message template ID from SBE schema.
7470  enum { TemplateId = 51 };
7471 
7472  /// Number of entries in Market Data message.
7473  /// Entry of Entry repeating group.
7476  <
7478  >
7479  {
7480  /// Aliases base class type.
7481  typedef
7483  <
7485  >
7487 
7488  /// Initializes blank instance.
7490  {
7491  }
7492 
7493  /// Initializes instance of given
7494  /// version over given memory block.
7496  const void* data,
7497  BodySize size,
7498  SchemaVersion version)
7499  : Base(data, size, version)
7500  {
7501  if (size < bodySize(version))
7502  throwBadBinaryData(className());
7503  }
7504 
7505  /// Market Data entry price.
7507  {
7508  const BodySize offset = 0;
7509 
7510  return decimal<PRICE9>(offset);
7511  }
7512 
7513  /// Security ID.
7515  {
7516  const BodySize offset = 8;
7517 
7518  return ordinary<Int32>(offset);
7519  }
7520 
7521  /// MD Entry sequence number per instrument update.
7522  UInt32 rptSeq() const
7523  {
7524  const BodySize offset = 12;
7525 
7526  return ordinary<UInt32>(offset);
7527  }
7528 
7529  /// Flag describing IOP and Open Price entries.
7530  bool
7532  OpenCloseSettlFlag::Enum& value) const
7533  {
7534  typedef NullUInt8 Null;
7535 
7536  const BodySize offset = 16;
7537 
7538  return enumeration<OpenCloseSettlFlag>(value, offset, Null());
7539  }
7540 
7541  /// Market Data update action.
7543  {
7544  const BodySize offset = 17;
7545 
7546  return enumeration<UpdateAction>(offset);
7547  }
7548 
7549  /// Market Data entry type.
7551  entryType() const
7552  {
7553  const BodySize offset = 18;
7554 
7555  return enumeration<EntryTypeStatistics>(offset);
7556  }
7557 
7558  /// Indicative Opening Quantity.
7559  bool entrySize(Int32& value) const
7560  {
7561  typedef NullInt32 Null;
7562 
7563  const BodySize offset = 19;
7564 
7565  return ordinary(value, offset, Null());
7566  }
7567 
7568  /// Returns size of entry body in bytes
7569  /// for given version of message template.
7572  {
7573  return 23;
7574  }
7575 
7576  /// Entity class name.
7578  static const Char* className()
7579  {
7580  return "IncrementalRefreshSessionStatistics51.Entry";
7581  }
7582  };
7583 
7584  /// Repeating group containing Entry entries.
7585  typedef
7588 
7589  /// Initializes blank instance.
7591  {
7592  }
7593 
7594  /// Initializes instance over given memory block.
7596  const void* data,
7597  MessageSize size)
7598  : BinaryMessage(data, size)
7599  {
7600  assert(TemplateId == templateId());
7601 
7602  if (size < bodySize(version()))
7603  throwBadBinaryData(className());
7604  }
7605 
7606  /// Start of event processing time in number of nanoseconds
7607  /// since Unix epoch.
7609  {
7610  const BodySize offset = 0;
7611 
7612  return ordinary<Timestamp>(offset);
7613  }
7614 
7615  /// Bitmap field of eight Boolean type indicators reflecting
7616  /// the end of updates for a given Globex event.
7617  const MatchEventIndicator&
7619  {
7620  const BodySize offset = 8;
7621 
7622  return ordinary<MatchEventIndicator>(offset);
7623  }
7624 
7625  /// Returns instance of Entries repeating group.
7627  {
7628  return
7629  groups().
7630  head<Entries>();
7631  }
7632 
7633  /// Size of message body in bytes.
7636  {
7637  return 9;
7638  }
7639 
7640  /// Returns class name.
7642  static const Char* className()
7643  {
7644  return "IncrementalRefreshSessionStatistics51";
7645  }
7646 
7647  /// FIX message type.
7649  static StrRef fixType()
7650  {
7651  return toStrRef("X");
7652  }
7653 };
7654 
7655 /// MDIncrementalRefreshVolume.
7658 : BinaryMessage
7659 {
7660  /// Message template ID from SBE schema.
7661  enum { TemplateId = 37 };
7662 
7663  /// Number of entries in Market Data message.
7664  /// Entry of Entry repeating group.
7667  <
7669  >
7670  {
7671  /// Aliases base class type.
7672  typedef
7674  <
7676  >
7678 
7679  /// Initializes blank instance.
7681  {
7682  }
7683 
7684  /// Initializes instance of given
7685  /// version over given memory block.
7687  const void* data,
7688  BodySize size,
7689  SchemaVersion version)
7690  : Base(data, size, version)
7691  {
7692  if (size < bodySize(version))
7693  throwBadBinaryData(className());
7694  }
7695 
7696  /// Cumulative traded volume.
7698  {
7699  const BodySize offset = 0;
7700 
7701  return ordinary<Int32>(offset);
7702  }
7703 
7704  /// Security ID.
7706  {
7707  const BodySize offset = 4;
7708 
7709  return ordinary<Int32>(offset);
7710  }
7711 
7712  /// Market Data entry sequence number per instrument update.
7713  UInt32 rptSeq() const
7714  {
7715  const BodySize offset = 8;
7716 
7717  return ordinary<UInt32>(offset);
7718  }
7719 
7720  /// Market Data update action.
7722  {
7723  const BodySize offset = 12;
7724 
7725  return enumeration<UpdateAction>(offset);
7726  }
7727 
7728  /// Electronic Volume entry provides cumulative session trade
7729  /// volume updated with the event.
7731  {
7732  return EntryTypeVol();
7733  }
7734 
7735  /// Returns size of entry body in bytes
7736  /// for given version of message template.
7739  {
7740  return 13;
7741  }
7742 
7743  /// Entity class name.
7745  static const Char* className()
7746  {
7747  return "IncrementalRefreshVolume37.Entry";
7748  }
7749  };
7750 
7751  /// Repeating group containing Entry entries.
7752  typedef
7755 
7756  /// Initializes blank instance.
7758  {
7759  }
7760 
7761  /// Initializes instance over given memory block.
7763  const void* data,
7764  MessageSize size)
7765  : BinaryMessage(data, size)
7766  {
7767  assert(TemplateId == templateId());
7768 
7769  if (size < bodySize(version()))
7770  throwBadBinaryData(className());
7771  }
7772 
7773  /// Start of event processing time in number of nanoseconds
7774  /// since Unix epoch.
7776  {
7777  const BodySize offset = 0;
7778 
7779  return ordinary<Timestamp>(offset);
7780  }
7781 
7782  /// Bitmap field of eight Boolean type indicators reflecting
7783  /// the end of updates for a given Globex event.
7784  const MatchEventIndicator&
7786  {
7787  const BodySize offset = 8;
7788 
7789  return ordinary<MatchEventIndicator>(offset);
7790  }
7791 
7792  /// Returns instance of Entries repeating group.
7794  {
7795  return
7796  groups().
7797  head<Entries>();
7798  }
7799 
7800  /// Size of message body in bytes.
7803  {
7804  return 9;
7805  }
7806 
7807  /// Returns class name.
7809  static const Char* className()
7810  {
7811  return "IncrementalRefreshVolume37";
7812  }
7813 
7814  /// FIX message type.
7816  static StrRef fixType()
7817  {
7818  return toStrRef("X");
7819  }
7820 };
7821 
7822 /// SnapshotFullRefresh.
7825 : BinaryMessage
7826 {
7827  /// Message template ID from SBE schema.
7828  enum { TemplateId = 52 };
7829 
7830  /// Number of entries in Market Data message.
7831  /// Entry of Entry repeating group.
7834  <
7836  >
7837  {
7838  /// Aliases base class type.
7839  typedef
7841  <
7843  >
7845 
7846  /// Initializes blank instance.
7848  {
7849  }
7850 
7851  /// Initializes instance of given
7852  /// version over given memory block.
7854  const void* data,
7855  BodySize size,
7856  SchemaVersion version)
7857  : Base(data, size, version)
7858  {
7859  if (size < bodySize(version))
7860  throwBadBinaryData(className());
7861  }
7862 
7863  /// Market Data entry price.
7864  bool entryPx(Decimal& value) const
7865  {
7866  typedef NullPRICE9 Null;
7867 
7868  const BodySize offset = 0;
7869 
7870  return decimal(value, offset, Null());
7871  }
7872 
7873  /// Market Data entry quantity.
7874  bool entrySize(Int32& value) const
7875  {
7876  typedef NullInt32 Null;
7877 
7878  const BodySize offset = 8;
7879 
7880  return ordinary(value, offset, Null());
7881  }
7882 
7883  /// Aggregate number of orders at the given price level.
7884  bool numberOfOrders(Int32& value) const
7885  {
7886  typedef NullInt32 Null;
7887 
7888  const BodySize offset = 12;
7889 
7890  return ordinary(value, offset, Null());
7891  }
7892 
7893  /// Aggregate book position.
7894  bool priceLevel(Int8& value) const
7895  {
7896  typedef NullInt8 Null;
7897 
7898  const BodySize offset = 16;
7899 
7900  return ordinary(value, offset, Null());
7901  }
7902 
7903  /// Indicates the date of trade session corresponding to a
7904  /// statistic entry.
7905  bool tradingReferenceDate(Timestamp& value) const
7906  {
7907  typedef NullLocalMktDate Null;
7908  typedef LocalMktDate FieldValue;
7909 
7910  const BodySize offset = 17;
7911 
7912  FieldValue fieldValue;
7913 
7914  if (ordinary(fieldValue, offset, Null()))
7915  {
7916  value = localMktDateToTimestamp(fieldValue);
7917  return true;
7918  }
7919  return false;
7920  }
7921 
7922  /// Flag describing Open Price entry.
7923  bool
7925  OpenCloseSettlFlag::Enum& value) const
7926  {
7927  typedef NullUInt8 Null;
7928 
7929  const BodySize offset = 19;
7930 
7931  return enumeration<OpenCloseSettlFlag>(value, offset, Null());
7932  }
7933 
7934  /// Bitmap field of eight Boolean type indicators representing
7935  /// settlement price type.
7937  {
7938  const BodySize offset = 20;
7939 
7940  return ordinary<SettlPriceType>(offset);
7941  }
7942 
7943  /// Market Data entry type.
7945  {
7946  const BodySize offset = 21;
7947 
7948  return enumeration<EntryType>(offset);
7949  }
7950 
7951  /// Returns size of entry body in bytes
7952  /// for given version of message template.
7955  {
7956  return 22;
7957  }
7958 
7959  /// Entity class name.
7961  static const Char* className()
7962  {
7963  return "SnapshotFullRefresh52.Entry";
7964  }
7965  };
7966 
7967  /// Repeating group containing Entry entries.
7968  typedef
7971 
7972  /// Initializes blank instance.
7974  {
7975  }
7976 
7977  /// Initializes instance over given memory block.
7979  const void* data,
7980  MessageSize size)
7981  : BinaryMessage(data, size)
7982  {
7983  assert(TemplateId == templateId());
7984 
7985  if (size < bodySize(version()))
7986  throwBadBinaryData(className());
7987  }
7988 
7989  /// Sequence number of the last Incremental feed packet
7990  /// processed. This value is used to synchronize the snapshot
7991  /// loop with the real-time feed.
7993  {
7994  const BodySize offset = 0;
7995 
7996  return ordinary<UInt32>(offset);
7997  }
7998 
7999  /// Total number of messages replayed in the loop.
8001  {
8002  const BodySize offset = 4;
8003 
8004  return ordinary<UInt32>(offset);
8005  }
8006 
8007  /// Security ID.
8009  {
8010  const BodySize offset = 8;
8011 
8012  return ordinary<Int32>(offset);
8013  }
8014 
8015  /// Sequence number of the last Market Data entry processed
8016  /// for the instrument.
8017  UInt32 rptSeq() const
8018  {
8019  const BodySize offset = 12;
8020 
8021  return ordinary<UInt32>(offset);
8022  }
8023 
8024  /// Timestamp of the last event security participated in, sent
8025  /// as number of nanoseconds since Unix epoch.
8027  {
8028  const BodySize offset = 16;
8029 
8030  return ordinary<Timestamp>(offset);
8031  }
8032 
8033  /// UTC Date and time of last Security Definition add, update
8034  /// or delete on a given Market Data channel.
8036  {
8037  const BodySize offset = 24;
8038 
8039  return ordinary<Timestamp>(offset);
8040  }
8041 
8042  /// Trade session date sent as number of days since Unix epoch.
8043  bool tradeDate(Timestamp& value) const
8044  {
8045  typedef NullLocalMktDate Null;
8046  typedef LocalMktDate FieldValue;
8047 
8048  const BodySize offset = 32;
8049 
8050  FieldValue fieldValue;
8051 
8052  if (ordinary(fieldValue, offset, Null()))
8053  {
8054  value = localMktDateToTimestamp(fieldValue);
8055  return true;
8056  }
8057  return false;
8058  }
8059 
8060  /// Identifies the current trading state of the instrument.
8061  bool
8063  SecurityTradingStatus::Enum& value) const
8064  {
8065  typedef NullUInt8 Null;
8066 
8067  const BodySize offset = 34;
8068 
8069  return enumeration<SecurityTradingStatus>(value, offset, Null());
8070  }
8071 
8072  /// Upper price threshold for the instrument.
8073  bool highLimitPrice(Decimal& value) const
8074  {
8075  typedef NullPRICE9 Null;
8076 
8077  const BodySize offset = 35;
8078 
8079  return decimal(value, offset, Null());
8080  }
8081 
8082  /// Lower price threshold for the instrument.
8083  bool lowLimitPrice(Decimal& value) const
8084  {
8085  typedef NullPRICE9 Null;
8086 
8087  const BodySize offset = 43;
8088 
8089  return decimal(value, offset, Null());
8090  }
8091 
8092  /// Differential value for price banding.
8093  bool maxPriceVariation(Decimal& value) const
8094  {
8095  typedef NullPRICE9 Null;
8096 
8097  const BodySize offset = 51;
8098 
8099  return decimal(value, offset, Null());
8100  }
8101 
8102  /// Returns instance of Entries repeating group.
8104  {
8105  return
8106  groups().
8107  head<Entries>();
8108  }
8109 
8110  /// Size of message body in bytes.
8113  {
8114  return 59;
8115  }
8116 
8117  /// Returns class name.
8119  static const Char* className()
8120  {
8121  return "SnapshotFullRefresh52";
8122  }
8123 
8124  /// FIX message type.
8126  static StrRef fixType()
8127  {
8128  return toStrRef("W");
8129  }
8130 };
8131 
8132 /// QuoteRequest.
8135 : BinaryMessage
8136 {
8137  /// Message template ID from SBE schema.
8138  enum { TemplateId = 39 };
8139 
8140  /// Indicates the number of repeating symbols specified.
8141  /// Entry of RelatedSymEntry repeating group.
8144  <
8146  >
8147  {
8148  /// Aliases base class type.
8149  typedef
8151  <
8153  >
8155 
8156  /// Initializes blank instance.
8158  {
8159  }
8160 
8161  /// Initializes instance of given
8162  /// version over given memory block.
8164  const void* data,
8165  BodySize size,
8166  SchemaVersion version)
8167  : Base(data, size, version)
8168  {
8169  if (size < bodySize(version))
8170  throwBadBinaryData(className());
8171  }
8172 
8173  /// Instrument Name or Symbol.
8174  StrRef symbol() const
8175  {
8176  const BodySize offset = 0;
8177  const BodySize length = 20;
8178 
8179  return fixedStr<length>(offset);
8180  }
8181 
8182  /// Security ID.
8184  {
8185  const BodySize offset = 20;
8186 
8187  return ordinary<Int32>(offset);
8188  }
8189 
8190  /// Quantity requested.
8191  bool orderQty(Int32& value) const
8192  {
8193  typedef NullInt32 Null;
8194 
8195  const BodySize offset = 24;
8196 
8197  return ordinary(value, offset, Null());
8198  }
8199 
8200  /// Type of quote requested.
8201  Int8 quoteType() const
8202  {
8203  const BodySize offset = 28;
8204 
8205  return ordinary<Int8>(offset);
8206  }
8207 
8208  /// Side requested.
8209  bool side(Int8& value) const
8210  {
8211  typedef NullInt8 Null;
8212 
8213  const BodySize offset = 29;
8214 
8215  return ordinary(value, offset, Null());
8216  }
8217 
8218  /// Returns size of entry body in bytes
8219  /// for given version of message template.
8222  {
8223  return 30;
8224  }
8225 
8226  /// Entity class name.
8228  static const Char* className()
8229  {
8230  return "QuoteRequest39.RelatedSymEntry";
8231  }
8232  };
8233 
8234  /// Repeating group containing RelatedSymEntry entries.
8235  typedef
8238 
8239  /// Initializes blank instance.
8241  {
8242  }
8243 
8244  /// Initializes instance over given memory block.
8246  const void* data,
8247  MessageSize size)
8248  : BinaryMessage(data, size)
8249  {
8250  assert(TemplateId == templateId());
8251 
8252  if (size < bodySize(version()))
8253  throwBadBinaryData(className());
8254  }
8255 
8256  /// Start of event processing time in number of nanoseconds
8257  /// since Unix epoch.
8259  {
8260  const BodySize offset = 0;
8261 
8262  return ordinary<Timestamp>(offset);
8263  }
8264 
8265  /// Quote Request ID defined by the exchange.
8267  {
8268  const BodySize offset = 8;
8269  const BodySize length = 23;
8270 
8271  return fixedStr<length>(offset);
8272  }
8273 
8274  /// Bitmap field of eight Boolean type indicators reflecting
8275  /// the end of updates for a given Globex event.
8276  const MatchEventIndicator&
8278  {
8279  const BodySize offset = 31;
8280 
8281  return ordinary<MatchEventIndicator>(offset);
8282  }
8283 
8284  /// Returns instance of RelatedSym repeating group.
8286  {
8287  return
8288  groups().
8289  head<RelatedSym>();
8290  }
8291 
8292  /// Size of message body in bytes.
8295  {
8296  return 32;
8297  }
8298 
8299  /// Returns class name.
8301  static const Char* className()
8302  {
8303  return "QuoteRequest39";
8304  }
8305 
8306  /// FIX message type.
8308  static StrRef fixType()
8309  {
8310  return toStrRef("R");
8311  }
8312 };
8313 
8314 /// MDInstrumentDefinitionOption.
8317 : BinaryMessage
8318 {
8319  /// Message template ID from SBE schema.
8320  enum { TemplateId = 55 };
8321 
8322  /// Number of EventType entries.
8323  /// Entry of EventsEntry repeating group.
8326  <
8328  >
8329  {
8330  /// Aliases base class type.
8331  typedef
8333  <
8335  >
8337 
8338  /// Initializes blank instance.
8340  {
8341  }
8342 
8343  /// Initializes instance of given
8344  /// version over given memory block.
8346  const void* data,
8347  BodySize size,
8348  SchemaVersion version)
8349  : Base(data, size, version)
8350  {
8351  if (size < bodySize(version))
8352  throwBadBinaryData(className());
8353  }
8354 
8355  /// Code to represent the type of event.
8357  {
8358  const BodySize offset = 0;
8359 
8360  return enumeration<EventType>(offset);
8361  }
8362 
8363  /// Date and Time of instument Activation or Expiration event
8364  /// sent as number of nanoseconds since Unix epoch.
8366  {
8367  const BodySize offset = 1;
8368 
8369  return ordinary<Timestamp>(offset);
8370  }
8371 
8372  /// Returns size of entry body in bytes
8373  /// for given version of message template.
8376  {
8377  return 9;
8378  }
8379 
8380  /// Entity class name.
8382  static const Char* className()
8383  {
8384  return "InstrumentDefinitionOption55.EventsEntry";
8385  }
8386  };
8387 
8388  /// Repeating group containing EventsEntry entries.
8389  typedef
8392 
8393  /// Number of FeedType entries.
8394  /// Entry of FeedTypesEntry repeating group.
8397  <
8399  >
8400  {
8401  /// Aliases base class type.
8402  typedef
8404  <
8406  >
8408 
8409  /// Initializes blank instance.
8411  {
8412  }
8413 
8414  /// Initializes instance of given
8415  /// version over given memory block.
8417  const void* data,
8418  BodySize size,
8419  SchemaVersion version)
8420  : Base(data, size, version)
8421  {
8422  if (size < bodySize(version))
8423  throwBadBinaryData(className());
8424  }
8425 
8426  /// Describes a class of service for a given data feed. GBX-
8427  /// Real Book, GBI-Implied Book.
8429  {
8430  const BodySize offset = 0;
8431  const BodySize length = 3;
8432 
8433  return fixedStr<length>(offset);
8434  }
8435 
8436  /// Book depth.
8438  {
8439  const BodySize offset = 3;
8440 
8441  return ordinary<Int8>(offset);
8442  }
8443 
8444  /// Returns size of entry body in bytes
8445  /// for given version of message template.
8448  {
8449  return 4;
8450  }
8451 
8452  /// Entity class name.
8454  static const Char* className()
8455  {
8456  return "InstrumentDefinitionOption55.FeedTypesEntry";
8457  }
8458  };
8459 
8460  /// Repeating group containing FeedTypesEntry entries.
8461  typedef
8464 
8465  /// Number of InstrAttribType entries.
8466  /// Entry of InstAttribEntry repeating group.
8469  <
8471  >
8472  {
8473  /// Aliases base class type.
8474  typedef
8476  <
8478  >
8480 
8481  /// Initializes blank instance.
8483  {
8484  }
8485 
8486  /// Initializes instance of given
8487  /// version over given memory block.
8489  const void* data,
8490  BodySize size,
8491  SchemaVersion version)
8492  : Base(data, size, version)
8493  {
8494  if (size < bodySize(version))
8495  throwBadBinaryData(className());
8496  }
8497 
8498  /// Instrument Eligibility Attributes.
8500  {
8501  return InstAttribType();
8502  }
8503 
8504  /// Bitmap field of 32 Boolean type Instrument eligibility
8505  /// flags.
8507  {
8508  const BodySize offset = 0;
8509 
8510  return ordinary<InstAttribValue>(offset);
8511  }
8512 
8513  /// Returns size of entry body in bytes
8514  /// for given version of message template.
8517  {
8518  return 4;
8519  }
8520 
8521  /// Entity class name.
8523  static const Char* className()
8524  {
8525  return "InstrumentDefinitionOption55.InstAttribEntry";
8526  }
8527  };
8528 
8529  /// Repeating group containing InstAttribEntry entries.
8530  typedef
8533 
8534  /// Number of entries.
8535  /// Entry of LotTypeRulesEntry repeating group.
8538  <
8540  >
8541  {
8542  /// Aliases base class type.
8543  typedef
8545  <
8547  >
8549 
8550  /// Initializes blank instance.
8552  {
8553  }
8554 
8555  /// Initializes instance of given
8556  /// version over given memory block.
8558  const void* data,
8559  BodySize size,
8560  SchemaVersion version)
8561  : Base(data, size, version)
8562  {
8563  if (size < bodySize(version))
8564  throwBadBinaryData(className());
8565  }
8566 
8567  /// This tag is required to interpret the value in tag
8568  /// 1231-MinLotSize.
8569  Int8 lotType() const
8570  {
8571  const BodySize offset = 0;
8572 
8573  return ordinary<Int8>(offset);
8574  }
8575 
8576  /// Minimum quantity accepted for order entry. If tag
8577  /// 1093-LotType=4, this value is the minimum quantity for
8578  /// order entry expressed in the applicable units, specified
8579  /// in tag 996-UnitOfMeasure, e.g. megawatts.
8580  bool minLotSize(Decimal& value) const
8581  {
8582  typedef NullDecimalQty Null;
8583 
8584  const BodySize offset = 1;
8585 
8586  return decimal(value, offset, Null());
8587  }
8588 
8589  /// Returns size of entry body in bytes
8590  /// for given version of message template.
8593  {
8594  return 5;
8595  }
8596 
8597  /// Entity class name.
8599  static const Char* className()
8600  {
8601  return "InstrumentDefinitionOption55.LotTypeRulesEntry";
8602  }
8603  };
8604 
8605  /// Repeating group containing LotTypeRulesEntry entries.
8606  typedef
8609 
8610  /// Number of underlying instruments.
8611  /// Entry of UnderlyingsEntry repeating group.
8614  <
8616  >
8617  {
8618  /// Aliases base class type.
8619  typedef
8621  <
8623  >
8625 
8626  /// Initializes blank instance.
8628  {
8629  }
8630 
8631  /// Initializes instance of given
8632  /// version over given memory block.
8634  const void* data,
8635  BodySize size,
8636  SchemaVersion version)
8637  : Base(data, size, version)
8638  {
8639  if (size < bodySize(version))
8640  throwBadBinaryData(className());
8641  }
8642 
8643  /// Unique Instrument ID as qualified by the exchange per tag
8644  /// 305-UnderlyingSecurityIDSource.
8646  {
8647  const BodySize offset = 0;
8648 
8649  return ordinary<Int32>(offset);
8650  }
8651 
8652  /// This value is always '8' for CME.
8654  {
8655  return SecurityIDSource();
8656  }
8657 
8658  /// Underlying Instrument Symbol (Contract Name).
8660  {
8661  const BodySize offset = 4;
8662  const BodySize length = 20;
8663 
8664  return fixedStr<length>(offset);
8665  }
8666 
8667  /// Returns size of entry body in bytes
8668  /// for given version of message template.
8671  {
8672  return 24;
8673  }
8674 
8675  /// Entity class name.
8677  static const Char* className()
8678  {
8679  return "InstrumentDefinitionOption55.UnderlyingsEntry";
8680  }
8681  };
8682 
8683  /// Repeating group containing UnderlyingsEntry entries.
8684  typedef
8687 
8688  /// Number of related instruments group.
8689  /// Entry of RelatedInstrumentsEntry repeating group.
8692  <
8694  >
8695  {
8696  /// Aliases base class type.
8697  typedef
8699  <
8701  >
8703 
8704  /// Initializes blank instance.
8706  {
8707  }
8708 
8709  /// Initializes instance of given
8710  /// version over given memory block.
8712  const void* data,
8713  BodySize size,
8714  SchemaVersion version)
8715  : Base(data, size, version)
8716  {
8717  if (size < bodySize(version))
8718  throwBadBinaryData(className());
8719  }
8720 
8721  /// Related Security ID.
8723  {
8724  const BodySize offset = 0;
8725 
8726  return ordinary<Int32>(offset);
8727  }
8728 
8729  /// Related Security ID source.
8731  {
8732  return SecurityIDSource();
8733  }
8734 
8735  /// Related instrument Symbol.
8737  {
8738  const BodySize offset = 4;
8739  const BodySize length = 20;
8740 
8741  return fixedStr<length>(offset);
8742  }
8743 
8744  /// Returns size of entry body in bytes
8745  /// for given version of message template.
8748  {
8749  return 24;
8750  }
8751 
8752  /// Entity class name.
8754  static const Char* className()
8755  {
8756  return "InstrumentDefinitionOption55.RelatedInstrumentsEntry";
8757  }
8758  };
8759 
8760  /// Repeating group containing RelatedInstrumentsEntry entries.
8761  typedef
8764 
8765  /// Initializes blank instance.
8767  {
8768  }
8769 
8770  /// Initializes instance over given memory block.
8772  const void* data,
8773  MessageSize size)
8774  : BinaryMessage(data, size)
8775  {
8776  assert(TemplateId == templateId());
8777 
8778  if (size < bodySize(version()))
8779  throwBadBinaryData(className());
8780  }
8781 
8782  /// Bitmap field of eight Boolean type indicators reflecting
8783  /// the end of updates for a given Globex event.
8784  const MatchEventIndicator&
8786  {
8787  const BodySize offset = 0;
8788 
8789  return ordinary<MatchEventIndicator>(offset);
8790  }
8791 
8792  /// Total number of instruments in the Replay loop. Used on
8793  /// Replay Feed only.
8794  bool totNumReports(UInt32& value) const
8795  {
8796  typedef NullUInt32 Null;
8797 
8798  const BodySize offset = 1;
8799 
8800  return ordinary(value, offset, Null());
8801  }
8802 
8803  /// Last Security update action on Incremental feed, 'D' or
8804  /// 'M' is used when a mid-week deletion or modification (i.e.
8805  /// extension) occurs.
8808  {
8809  const BodySize offset = 5;
8810 
8811  return enumeration<SecurityUpdateAction>(offset);
8812  }
8813 
8814  /// Timestamp of when the instrument was last added, modified
8815  /// or deleted.
8817  {
8818  const BodySize offset = 6;
8819 
8820  return ordinary<Timestamp>(offset);
8821  }
8822 
8823  /// Identifies the current state of the instrument. The data
8824  /// is available in the Instrument Replay feed only.
8825  bool
8827  SecurityTradingStatus::Enum& value) const
8828  {
8829  typedef NullUInt8 Null;
8830 
8831  const BodySize offset = 14;
8832 
8833  return enumeration<SecurityTradingStatus>(value, offset, Null());
8834  }
8835 
8836  /// The channel ID as defined in the XML Configuration file.
8837  Int16 applId() const
8838  {
8839  const BodySize offset = 15;
8840 
8841  return ordinary<Int16>(offset);
8842  }
8843 
8844  /// Identifies the market segment, populated for all CME
8845  /// Globex instruments.
8847  {
8848  const BodySize offset = 17;
8849 
8850  return ordinary<UInt8>(offset);
8851  }
8852 
8853  /// Indicates the product complex.
8855  {
8856  const BodySize offset = 18;
8857 
8858  return ordinary<UInt8>(offset);
8859  }
8860 
8861  /// Exchange used to identify a security.
8863  {
8864  const BodySize offset = 19;
8865  const BodySize length = 4;
8866 
8867  return fixedStr<length>(offset);
8868  }
8869 
8870  /// Security Group Code.
8872  {
8873  const BodySize offset = 23;
8874  const BodySize length = 6;
8875 
8876  return fixedStr<length>(offset);
8877  }
8878 
8879  /// The underlying asset code also known as Product Code.
8880  StrRef asset() const
8881  {
8882  const BodySize offset = 29;
8883  const BodySize length = 6;
8884 
8885  return fixedStr<length>(offset);
8886  }
8887 
8888  /// Instrument Name or Symbol. Previously used as Instrument
8889  /// Group Code.
8890  StrRef symbol() const
8891  {
8892  const BodySize offset = 35;
8893  const BodySize length = 20;
8894 
8895  return fixedStr<length>(offset);
8896  }
8897 
8898  /// Unique Instrument ID.
8900  {
8901  const BodySize offset = 55;
8902 
8903  return ordinary<Int32>(offset);
8904  }
8905 
8906  /// Identifies class or source of tag 48-SecurityID value.
8908  {
8909  return SecurityIDSource();
8910  }
8911 
8912  /// Security Type.
8914  {
8915  const BodySize offset = 59;
8916  const BodySize length = 6;
8917 
8918  return fixedStr<length>(offset);
8919  }
8920 
8921  /// ISO standard instrument categorization code.
8922  StrRef cfiCode() const
8923  {
8924  const BodySize offset = 65;
8925  const BodySize length = 6;
8926 
8927  return fixedStr<length>(offset);
8928  }
8929 
8930  /// Indicates whether an option instrument is a put or call.
8932  {
8933  const BodySize offset = 71;
8934 
8935  return enumeration<PutOrCall>(offset);
8936  }
8937 
8938  /// This field provides the actual calendar date for contract
8939  /// maturity.
8941  {
8942  typedef NullMaturityMonthYear Null;
8943 
8944  const BodySize offset = 72;
8945 
8946  return ordinary(value, offset, Null());
8947  }
8948 
8949  /// Identifies currency used for price.
8951  {
8952  const BodySize offset = 77;
8953  const BodySize length = 3;
8954 
8955  return fixedStr<length>(offset);
8956  }
8957 
8958  /// Strike Price for an option instrument.
8959  bool strikePrice(Decimal& value) const
8960  {
8961  typedef NullPRICE9 Null;
8962 
8963  const BodySize offset = 80;
8964 
8965  return decimal(value, offset, Null());
8966  }
8967 
8968  /// Currency in which the StrikePrice is denominated.
8970  {
8971  const BodySize offset = 88;
8972  const BodySize length = 3;
8973 
8974  return fixedStr<length>(offset);
8975  }
8976 
8977  /// Identifies currency used for settlement, if different from
8978  /// trade price currency.
8980  {
8981  const BodySize offset = 91;
8982  const BodySize length = 3;
8983 
8984  return fixedStr<length>(offset);
8985  }
8986 
8987  /// Defines cabinet price for outright options products.
8988  bool minCabPrice(Decimal& value) const
8989  {
8990  typedef NullPRICE9 Null;
8991 
8992  const BodySize offset = 94;
8993 
8994  return decimal(value, offset, Null());
8995  }
8996 
8997  /// Matching algorithm.
8999  {
9000  const BodySize offset = 102;
9001 
9002  return ordinary<CHAR>(offset);
9003  }
9004 
9005  /// The minimum trading volume for a security.
9007  {
9008  const BodySize offset = 103;
9009 
9010  return ordinary<UInt32>(offset);
9011  }
9012 
9013  /// The maximum trading volume for a security.
9015  {
9016  const BodySize offset = 107;
9017 
9018  return ordinary<UInt32>(offset);
9019  }
9020 
9021  /// Minimum constant tick for the instrument.
9022  bool minPriceIncrement(Decimal& value) const
9023  {
9024  typedef NullPRICE9 Null;
9025 
9026  const BodySize offset = 111;
9027 
9028  return decimal(value, offset, Null());
9029  }
9030 
9031  /// Monetary value equivalent to the minimum price fluctuation.
9033  {
9034  typedef NullPRICE9 Null;
9035 
9036  const BodySize offset = 119;
9037 
9038  return decimal(value, offset, Null());
9039  }
9040 
9041  /// Contains the multiplier to convert the CME Globex display
9042  /// price to the conventional price.
9044  {
9045  const BodySize offset = 127;
9046 
9047  return decimal<Decimal9>(offset);
9048  }
9049 
9050  /// VTT code referencing variable tick table.
9051  bool tickRule(Int8& value) const
9052  {
9053  typedef NullInt8 Null;
9054 
9055  const BodySize offset = 135;
9056 
9057  return ordinary(value, offset, Null());
9058  }
9059 
9060  /// Price Denominator of Main Fraction.
9061  bool mainFraction(UInt8& value) const
9062  {
9063  typedef NullUInt8 Null;
9064 
9065  const BodySize offset = 136;
9066 
9067  return ordinary(value, offset, Null());
9068  }
9069 
9070  /// Price Denominator of Sub Fraction.
9071  bool subFraction(UInt8& value) const
9072  {
9073  typedef NullUInt8 Null;
9074 
9075  const BodySize offset = 137;
9076 
9077  return ordinary(value, offset, Null());
9078  }
9079 
9080  /// Number of decimals in fractional display price.
9081  bool priceDisplayFormat(UInt8& value) const
9082  {
9083  typedef NullUInt8 Null;
9084 
9085  const BodySize offset = 138;
9086 
9087  return ordinary(value, offset, Null());
9088  }
9089 
9090  /// Unit of measure for the products' original contract size.
9091  /// This will be populated for all products listed on CME
9092  /// Globex.
9094  {
9095  const BodySize offset = 139;
9096  const BodySize length = 30;
9097 
9098  return fixedStr<length>(offset);
9099  }
9100 
9101  /// This field contains the contract size for each instrument.
9102  /// Used in combination with tag 996-UnitofMeasure.
9103  bool unitOfMeasureQty(Decimal& value) const
9104  {
9105  typedef NullDecimal9 Null;
9106 
9107  const BodySize offset = 169;
9108 
9109  return decimal(value, offset, Null());
9110  }
9111 
9112  /// Reference price - the most recently available Settlement
9113  /// whether it be Theoretical, Preliminary or a Final Settle
9114  /// of the session.
9115  bool tradingReferencePrice(Decimal& value) const
9116  {
9117  typedef NullPRICE9 Null;
9118 
9119  const BodySize offset = 177;
9120 
9121  return decimal(value, offset, Null());
9122  }
9123 
9124  /// Bitmap field of eight Boolean type indicators representing
9125  /// settlement price type.
9127  {
9128  const BodySize offset = 185;
9129 
9130  return ordinary<SettlPriceType>(offset);
9131  }
9132 
9133  /// The total cleared volume of instrument traded during the
9134  /// prior trading session.
9135  bool clearedVolume(Int32& value) const
9136  {
9137  typedef NullInt32 Null;
9138 
9139  const BodySize offset = 186;
9140 
9141  return ordinary(value, offset, Null());
9142  }
9143 
9144  /// The total open interest for the market at the close of the
9145  /// prior trading session.
9146  bool openInterestQty(Int32& value) const
9147  {
9148  typedef NullInt32 Null;
9149 
9150  const BodySize offset = 190;
9151 
9152  return ordinary(value, offset, Null());
9153  }
9154 
9155  /// Allowable low limit price for the trading day.
9156  bool lowLimitPrice(Decimal& value) const
9157  {
9158  typedef NullPRICE9 Null;
9159 
9160  const BodySize offset = 194;
9161 
9162  return decimal(value, offset, Null());
9163  }
9164 
9165  /// Allowable high limit price for the trading day.
9166  bool highLimitPrice(Decimal& value) const
9167  {
9168  typedef NullPRICE9 Null;
9169 
9170  const BodySize offset = 202;
9171 
9172  return decimal(value, offset, Null());
9173  }
9174 
9175  /// User-defined instruments flag.
9177  {
9178  const BodySize offset = 210;
9179 
9180  return ordinary<UserDefinedInstrument>(offset);
9181  }
9182 
9183  /// Indicates session date corresponding to the settlement
9184  /// price in tag 1150-TradingReferencePrice.
9185  bool tradingReferenceDate(Timestamp& value) const
9186  {
9187  typedef NullLocalMktDate Null;
9188  typedef LocalMktDate FieldValue;
9189 
9190  const BodySize offset = 211;
9191 
9192  FieldValue fieldValue;
9193 
9194  if (ordinary(fieldValue, offset, Null()))
9195  {
9196  value = localMktDateToTimestamp(fieldValue);
9197  return true;
9198  }
9199  return false;
9200  }
9201 
9202  /// Returns instance of Events repeating group.
9203  Events events() const
9204  {
9205  return
9206  groups().
9207  head<Events>();
9208  }
9209 
9210  /// Returns instance of FeedTypes repeating group.
9212  {
9213  return
9214  groups().
9215  tail<Events>().
9216  head<FeedTypes>();
9217  }
9218 
9219  /// Returns instance of InstAttrib repeating group.
9221  {
9222  return
9223  groups().
9224  tail<Events>().
9225  tail<FeedTypes>().
9226  head<InstAttrib>();
9227  }
9228 
9229  /// Returns instance of LotTypeRules repeating group.
9231  {
9232  return
9233  groups().
9234  tail<Events>().
9235  tail<FeedTypes>().
9236  tail<InstAttrib>().
9237  head<LotTypeRules>();
9238  }
9239 
9240  /// Returns instance of Underlyings repeating group.
9242  {
9243  return
9244  groups().
9245  tail<Events>().
9246  tail<FeedTypes>().
9247  tail<InstAttrib>().
9248  tail<LotTypeRules>().
9249  head<Underlyings>();
9250  }
9251 
9252  /// Returns instance of RelatedInstruments repeating group.
9254  {
9255  return
9256  groups().
9257  tail<Events>().
9258  tail<FeedTypes>().
9259  tail<InstAttrib>().
9260  tail<LotTypeRules>().
9261  tail<Underlyings>().
9262  head<RelatedInstruments>();
9263  }
9264 
9265  /// Size of message body in bytes.
9268  {
9269  return 213;
9270  }
9271 
9272  /// Returns class name.
9274  static const Char* className()
9275  {
9276  return "InstrumentDefinitionOption55";
9277  }
9278 
9279  /// FIX message type.
9281  static StrRef fixType()
9282  {
9283  return toStrRef("d");
9284  }
9285 };
9286 
9287 /// MDIncrementalRefreshTradeSummary.
9290 : BinaryMessage
9291 {
9292  /// Message template ID from SBE schema.
9293  enum { TemplateId = 48 };
9294 
9295  /// Number of Trade Summary entries.
9296  /// Entry of Entry repeating group.
9299  <
9301  >
9302  {
9303  /// Aliases base class type.
9304  typedef
9306  <
9308  >
9310 
9311  /// Initializes blank instance.
9313  {
9314  }
9315 
9316  /// Initializes instance of given
9317  /// version over given memory block.
9319  const void* data,
9320  BodySize size,
9321  SchemaVersion version)
9322  : Base(data, size, version)
9323  {
9324  if (size < bodySize(version))
9325  throwBadBinaryData(className());
9326  }
9327 
9328  /// Trade price.
9330  {
9331  const BodySize offset = 0;
9332 
9333  return decimal<PRICE9>(offset);
9334  }
9335 
9336  /// Consolidated trade quantity.
9338  {
9339  const BodySize offset = 8;
9340 
9341  return ordinary<Int32>(offset);
9342  }
9343 
9344  /// Security ID as defined by CME.
9346  {
9347  const BodySize offset = 12;
9348 
9349  return ordinary<Int32>(offset);
9350  }
9351 
9352  /// Sequence number per instrument update.
9353  UInt32 rptSeq() const
9354  {
9355  const BodySize offset = 16;
9356 
9357  return ordinary<UInt32>(offset);
9358  }
9359 
9360  /// The total number of real orders per instrument that
9361  /// participated in a match step within a match event.
9363  {
9364  const BodySize offset = 20;
9365 
9366  return ordinary<Int32>(offset);
9367  }
9368 
9369  /// Indicates which side is the aggressor or if there is no
9370  /// aggressor.
9371  bool
9373  AggressorSide::Enum& value) const
9374  {
9375  typedef NullUInt8 Null;
9376 
9377  const BodySize offset = 24;
9378 
9379  return enumeration<AggressorSide>(value, offset, Null());
9380  }
9381 
9382  /// Market Data update action.
9384  {
9385  const BodySize offset = 25;
9386 
9387  return enumeration<UpdateAction>(offset);
9388  }
9389 
9390  /// Market Data entry type.
9392  {
9393  return EntryTypeTrade();
9394  }
9395 
9396  /// Market Data Trade entry ID.
9397  bool tradeEntryId(UInt32& value) const
9398  {
9399  typedef NullUInt32 Null;
9400 
9401  const BodySize offset = 26;
9402 
9403  return ordinary(value, offset, Null());
9404  }
9405 
9406  /// Returns size of entry body in bytes
9407  /// for given version of message template.
9410  {
9411  return 30;
9412  }
9413 
9414  /// Entity class name.
9416  static const Char* className()
9417  {
9418  return "IncrementalRefreshTradeSummary48.Entry";
9419  }
9420  };
9421 
9422  /// Repeating group containing Entry entries.
9423  typedef
9426 
9427  /// Number of OrderID entries.
9428  /// Entry of OrderIDEntry repeating group.
9431  <
9433  >
9434  {
9435  /// Aliases base class type.
9436  typedef
9438  <
9440  >
9442 
9443  /// Initializes blank instance.
9445  {
9446  }
9447 
9448  /// Initializes instance of given
9449  /// version over given memory block.
9451  const void* data,
9452  BodySize size,
9453  SchemaVersion version)
9454  : Base(data, size, version)
9455  {
9456  if (size < bodySize(version))
9457  throwBadBinaryData(className());
9458  }
9459 
9460  /// Unique order identifier as assigned by the exchange.
9461  UInt64 orderId() const
9462  {
9463  const BodySize offset = 0;
9464 
9465  return ordinary<UInt64>(offset);
9466  }
9467 
9468  /// Quantity bought or sold on this last fill.
9469  Int32 lastQty() const
9470  {
9471  const BodySize offset = 8;
9472 
9473  return ordinary<Int32>(offset);
9474  }
9475 
9476  /// Returns size of entry body in bytes
9477  /// for given version of message template.
9480  {
9481  return 12;
9482  }
9483 
9484  /// Entity class name.
9486  static const Char* className()
9487  {
9488  return "IncrementalRefreshTradeSummary48.OrderIDEntry";
9489  }
9490  };
9491 
9492  /// Repeating group containing OrderIDEntry entries.
9493  typedef
9496 
9497  /// Initializes blank instance.
9499  {
9500  }
9501 
9502  /// Initializes instance over given memory block.
9504  const void* data,
9505  MessageSize size)
9506  : BinaryMessage(data, size)
9507  {
9508  assert(TemplateId == templateId());
9509 
9510  if (size < bodySize(version()))
9511  throwBadBinaryData(className());
9512  }
9513 
9514  /// Start of event processing time in number of nanoseconds
9515  /// since Unix epoch.
9517  {
9518  const BodySize offset = 0;
9519 
9520  return ordinary<Timestamp>(offset);
9521  }
9522 
9523  /// Bitmap field of eight Boolean type indicators reflecting
9524  /// the end of updates for a given Globex event.
9525  const MatchEventIndicator&
9527  {
9528  const BodySize offset = 8;
9529 
9530  return ordinary<MatchEventIndicator>(offset);
9531  }
9532 
9533  /// Returns instance of Entries repeating group.
9535  {
9536  return
9537  groups().
9538  head<Entries>();
9539  }
9540 
9541  /// Returns instance of OrderIDEntries repeating group.
9543  {
9544  return
9545  groups().
9546  tail<Entries>().
9547  head<OrderIDEntries>();
9548  }
9549 
9550  /// Size of message body in bytes.
9553  {
9554  return 9;
9555  }
9556 
9557  /// Returns class name.
9559  static const Char* className()
9560  {
9561  return "IncrementalRefreshTradeSummary48";
9562  }
9563 
9564  /// FIX message type.
9566  static StrRef fixType()
9567  {
9568  return toStrRef("X");
9569  }
9570 };
9571 
9572 /// MDIncrementalRefreshOrderBook.
9575 : BinaryMessage
9576 {
9577  /// Message template ID from SBE schema.
9578  enum { TemplateId = 47 };
9579 
9580  /// Number of entries in Market Data message.
9581  /// Entry of Entry repeating group.
9584  <
9586  >
9587  {
9588  /// Aliases base class type.
9589  typedef
9591  <
9593  >
9595 
9596  /// Initializes blank instance.
9598  {
9599  }
9600 
9601  /// Initializes instance of given
9602  /// version over given memory block.
9604  const void* data,
9605  BodySize size,
9606  SchemaVersion version)
9607  : Base(data, size, version)
9608  {
9609  if (size < bodySize(version))
9610  throwBadBinaryData(className());
9611  }
9612 
9613  /// Order ID.
9614  bool orderId(UInt64& value) const
9615  {
9616  typedef NullUInt64 Null;
9617 
9618  const BodySize offset = 0;
9619 
9620  return ordinary(value, offset, Null());
9621  }
9622 
9623  /// Order priority for execution on the order book.
9624  bool orderPriority(UInt64& value) const
9625  {
9626  typedef NullUInt64 Null;
9627 
9628  const BodySize offset = 8;
9629 
9630  return ordinary(value, offset, Null());
9631  }
9632 
9633  /// Order price.
9634  bool entryPx(Decimal& value) const
9635  {
9636  typedef NullPRICE9 Null;
9637 
9638  const BodySize offset = 16;
9639 
9640  return decimal(value, offset, Null());
9641  }
9642 
9643  /// Visible order qty.
9644  bool displayQty(Int32& value) const
9645  {
9646  typedef NullInt32 Null;
9647 
9648  const BodySize offset = 24;
9649 
9650  return ordinary(value, offset, Null());
9651  }
9652 
9653  /// Security ID.
9655  {
9656  const BodySize offset = 28;
9657 
9658  return ordinary<Int32>(offset);
9659  }
9660 
9661  /// Order book update action to be applied to the order
9662  /// referenced by OrderID.
9664  {
9665  const BodySize offset = 32;
9666 
9667  return enumeration<UpdateAction>(offset);
9668  }
9669 
9670  /// Market Data entry type.
9672  {
9673  const BodySize offset = 33;
9674 
9675  return enumeration<EntryTypeBook>(offset);
9676  }
9677 
9678  /// Returns size of entry body in bytes
9679  /// for given version of message template.
9682  {
9683  return 34;
9684  }
9685 
9686  /// Entity class name.
9688  static const Char* className()
9689  {
9690  return "IncrementalRefreshOrderBook47.Entry";
9691  }
9692  };
9693 
9694  /// Repeating group containing Entry entries.
9695  typedef
9698 
9699  /// Initializes blank instance.
9701  {
9702  }
9703 
9704  /// Initializes instance over given memory block.
9706  const void* data,
9707  MessageSize size)
9708  : BinaryMessage(data, size)
9709  {
9710  assert(TemplateId == templateId());
9711 
9712  if (size < bodySize(version()))
9713  throwBadBinaryData(className());
9714  }
9715 
9716  /// Start of event processing time in number of nanoseconds
9717  /// since Unix epoch.
9719  {
9720  const BodySize offset = 0;
9721 
9722  return ordinary<Timestamp>(offset);
9723  }
9724 
9725  /// Bitmap field of eight Boolean type indicators reflecting
9726  /// the end of updates for a given Globex event.
9727  const MatchEventIndicator&
9729  {
9730  const BodySize offset = 8;
9731 
9732  return ordinary<MatchEventIndicator>(offset);
9733  }
9734 
9735  /// Returns instance of Entries repeating group.
9737  {
9738  return
9739  groups().
9740  head<Entries>();
9741  }
9742 
9743  /// Size of message body in bytes.
9746  {
9747  return 9;
9748  }
9749 
9750  /// Returns class name.
9752  static const Char* className()
9753  {
9754  return "IncrementalRefreshOrderBook47";
9755  }
9756 
9757  /// FIX message type.
9759  static StrRef fixType()
9760  {
9761  return toStrRef("X");
9762  }
9763 };
9764 
9765 /// SnapshotFullRefreshOrderBook.
9768 : BinaryMessage
9769 {
9770  /// Message template ID from SBE schema.
9771  enum { TemplateId = 53 };
9772 
9773  /// Number of entries in Market Data message.
9774  /// Entry of Entry repeating group.
9777  <
9779  >
9780  {
9781  /// Aliases base class type.
9782  typedef
9784  <
9786  >
9788 
9789  /// Initializes blank instance.
9791  {
9792  }
9793 
9794  /// Initializes instance of given
9795  /// version over given memory block.
9797  const void* data,
9798  BodySize size,
9799  SchemaVersion version)
9800  : Base(data, size, version)
9801  {
9802  if (size < bodySize(version))
9803  throwBadBinaryData(className());
9804  }
9805 
9806  /// Unique Order ID.
9807  UInt64 orderId() const
9808  {
9809  const BodySize offset = 0;
9810 
9811  return ordinary<UInt64>(offset);
9812  }
9813 
9814  /// Order priority for execution on the order book.
9815  bool orderPriority(UInt64& value) const
9816  {
9817  typedef NullUInt64 Null;
9818 
9819  const BodySize offset = 8;
9820 
9821  return ordinary(value, offset, Null());
9822  }
9823 
9824  /// Order Price.
9826  {
9827  const BodySize offset = 16;
9828 
9829  return decimal<PRICE9>(offset);
9830  }
9831 
9832  /// Visible order qty.
9834  {
9835  const BodySize offset = 24;
9836 
9837  return ordinary<Int32>(offset);
9838  }
9839 
9840  /// Market Data entry type.
9842  {
9843  const BodySize offset = 28;
9844 
9845  return enumeration<EntryTypeBook>(offset);
9846  }
9847 
9848  /// Returns size of entry body in bytes
9849  /// for given version of message template.
9852  {
9853  return 29;
9854  }
9855 
9856  /// Entity class name.
9858  static const Char* className()
9859  {
9860  return "SnapshotFullRefreshOrderBook53.Entry";
9861  }
9862  };
9863 
9864  /// Repeating group containing Entry entries.
9865  typedef
9868 
9869  /// Initializes blank instance.
9871  {
9872  }
9873 
9874  /// Initializes instance over given memory block.
9876  const void* data,
9877  MessageSize size)
9878  : BinaryMessage(data, size)
9879  {
9880  assert(TemplateId == templateId());
9881 
9882  if (size < bodySize(version()))
9883  throwBadBinaryData(className());
9884  }
9885 
9886  /// Sequence number of the last Incremental feed packet
9887  /// processed. This value is used to synchronize the snapshot
9888  /// loop with the real-time feed.
9890  {
9891  const BodySize offset = 0;
9892 
9893  return ordinary<UInt32>(offset);
9894  }
9895 
9896  /// Total number of instruments in the replayed loop.
9898  {
9899  const BodySize offset = 4;
9900 
9901  return ordinary<UInt32>(offset);
9902  }
9903 
9904  /// Security ID.
9906  {
9907  const BodySize offset = 8;
9908 
9909  return ordinary<Int32>(offset);
9910  }
9911 
9912  /// Total number of packets that constitutes a single
9913  /// instrument order book.
9914  UInt32 chunks() const
9915  {
9916  const BodySize offset = 12;
9917 
9918  return ordinary<UInt32>(offset);
9919  }
9920 
9921  /// Chunk sequence.
9923  {
9924  const BodySize offset = 16;
9925 
9926  return ordinary<UInt32>(offset);
9927  }
9928 
9929  /// Timestamp of the last event security participated in, sent
9930  /// as number of nanoseconds since Unix epoch.
9932  {
9933  const BodySize offset = 20;
9934 
9935  return ordinary<Timestamp>(offset);
9936  }
9937 
9938  /// Returns instance of Entries repeating group.
9940  {
9941  return
9942  groups().
9943  head<Entries>();
9944  }
9945 
9946  /// Size of message body in bytes.
9949  {
9950  return 28;
9951  }
9952 
9953  /// Returns class name.
9955  static const Char* className()
9956  {
9957  return "SnapshotFullRefreshOrderBook53";
9958  }
9959 
9960  /// FIX message type.
9962  static StrRef fixType()
9963  {
9964  return toStrRef("W");
9965  }
9966 };
9967 
9968 
static ONIXS_CMEMDH_EXPORTED StrRef fixType()
FIX message type.
Definition: Messages.h:8126
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Size of message body in bytes.
Definition: Messages.h:4887
InstrumentDefinitionSpread29(const void *data, MessageSize size)
Initializes instance over given memory block.
Definition: Messages.h:1272
StrRef currency() const
Identifies currency used for price.
Definition: Messages.h:8950
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Size of message body in bytes.
Definition: Messages.h:7635
static ONIXS_CMEMDH_EXPORTED const Char * className()
Entity class name.
Definition: Messages.h:2556
RelatedSymEntry()
Initializes blank instance.
Definition: Messages.h:8157
MDIncrementalRefreshSessionStatistics.
Definition: Messages.h:7465
AdminHeartbeat12(const void *data, MessageSize size)
Initializes instance over given memory block.
Definition: Messages.h:4762
bool decayQuantity(Int32 &value) const
Definition: Messages.h:5567
static ONIXS_CMEMDH_EXPORTED const Char * className()
Entity class name.
Definition: Messages.h:8454
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Size of message body in bytes.
Definition: Messages.h:4775
const SettlPriceType & settlPriceType() const
Definition: Messages.h:3755
BinaryGroup< Entry, GroupSize, MessageSize > Entries
Repeating group containing Entry entries.
Definition: Messages.h:7754
bool legPrice(Decimal &value) const
Price for the future leg of a UDS Covered instrument.
Definition: Messages.h:1225
StrRef underlyingSymbol() const
Underlying Instrument Symbol (Contract Name).
Definition: Messages.h:8659
InstAttrib instAttrib() const
Returns instance of InstAttrib repeating group.
Definition: Messages.h:1681
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:9594
StrRef currency() const
Identifies currency used for price.
Definition: Messages.h:504
static ONIXS_CMEMDH_EXPORTED const Char * className()
Returns class name.
Definition: Messages.h:5727
bool tickRule(Int8 &value) const
VTT code referencing variable tick table.
Definition: Messages.h:9051
BinaryGroup< EventsEntry, GroupSize, MessageSize > Events
Repeating group containing EventsEntry entries.
Definition: Messages.h:108
static ONIXS_CMEMDH_EXPORTED const Char * className()
Returns class name.
Definition: Messages.h:6600
static ONIXS_CMEMDH_EXPORTED const Char * className()
Entity class name.
Definition: Messages.h:5949
BinaryGroup< InstAttribEntry, GroupSize, MessageSize > InstAttrib
Repeating group containing InstAttribEntry entries.
Definition: Messages.h:5125
const MatchEventIndicator & matchEventIndicator() const
Definition: Messages.h:8785
bool clearedVolume(Int32 &value) const
Definition: Messages.h:650
RelatedInstruments relatedInstruments() const
Returns instance of RelatedInstruments repeating group.
Definition: Messages.h:3882
bool totNumReports(UInt32 &value) const
Definition: Messages.h:5232
QuoteRequest39()
Initializes blank instance.
Definition: Messages.h:8240
UInt32 minTradeVol() const
The minimum trading volume for a security.
Definition: Messages.h:6355
EventType::Enum eventType() const
Code to represent the type of event.
Definition: Messages.h:73
const SettlPriceType & settlPriceType() const
Definition: Messages.h:1565
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Definition: Messages.h:8447
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:5833
static ONIXS_CMEMDH_EXPORTED const Char * className()
Entity class name.
Definition: Messages.h:5808
UInt32 minTradeVol() const
The minimum trading volume for a security.
Definition: Messages.h:9006
bool openCloseSettlFlag(OpenCloseSettlFlag::Enum &value) const
Flag describing IOP and Open Price entries.
Definition: Messages.h:2509
bool tradingReferenceDate(Timestamp &value) const
Definition: Messages.h:1646
static ONIXS_CMEMDH_EXPORTED const Char * className()
Entity class name.
Definition: Messages.h:9858
UInt16 LocalMktDate
Definition: Fields.h:73
UInt32 maxTradeVol() const
The maximum trading volume for a security.
Definition: Messages.h:1487
EntryTypeBook::Enum entryType() const
Market Data entry type.
Definition: Messages.h:6862
bool flowScheduleType(Int8 &value) const
Definition: Messages.h:5634
const MatchEventIndicator & matchEventIndicator() const
Definition: Messages.h:4157
Entries entries() const
Returns instance of Entries repeating group.
Definition: Messages.h:7626
static ONIXS_CMEMDH_EXPORTED const Char * className()
Returns class name.
Definition: Messages.h:1722
Events events() const
Returns instance of Events repeating group.
Definition: Messages.h:9203
static ONIXS_CMEMDH_EXPORTED StrRef fixType()
FIX message type.
Definition: Messages.h:7458
bool lowLimitPrice(Decimal &value) const
Allowable low limit price for the trading day.
Definition: Messages.h:670
AdminLogin15()
Initializes blank instance.
Definition: Messages.h:4804
Int32 Int32
int32.
Definition: Fields.h:63
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Definition: Messages.h:5185
bool aggressorSide(AggressorSide::Enum &value) const
Definition: Messages.h:9372
bool securityTradingStatus(SecurityTradingStatus::Enum &value) const
Identifies the current trading state of the instrument.
Definition: Messages.h:8062
bool orderPriority(UInt64 &value) const
Order priority for execution on the order book.
Definition: Messages.h:4446
MDInstrumentDefinitionSpread.
Definition: Messages.h:865
static ONIXS_CMEMDH_EXPORTED const Char * className()
Entity class name.
Definition: Messages.h:4671
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Definition: Messages.h:1952
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:53
bool highLimitPrice(Decimal &value) const
Upper price threshold for the instrument.
Definition: Messages.h:7318
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Definition: Messages.h:6974
bool entryPx(Decimal &value) const
Market Data entry price.
Definition: Messages.h:2087
AdminLogin15(const void *data, MessageSize size)
Initializes instance over given memory block.
Definition: Messages.h:4809
BinaryGroup< Entry, GroupSize, MessageSize > Entries
Repeating group containing Entry entries.
Definition: Messages.h:7587
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Size of message body in bytes.
Definition: Messages.h:4830
bool orderId(UInt64 &value) const
Order ID.
Definition: Messages.h:4245
const MatchEventIndicator & matchEventIndicator() const
Definition: Messages.h:347
UInt32 maxTradeVol() const
The maximum trading volume for a security.
Definition: Messages.h:6363
bool entryPx(Decimal &value) const
Market Data entry price.
Definition: Messages.h:1777
bool priceLevel(Int8 &value) const
Aggregate book position.
Definition: Messages.h:2705
StrRef relatedSymbol() const
Related instrument Symbol.
Definition: Messages.h:3365
LegsEntry(const void *data, BodySize size, SchemaVersion version)
Definition: Messages.h:1183
const MatchEventIndicator & matchEventIndicator() const
Definition: Messages.h:7785
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Definition: Messages.h:3004
StrRef currency() const
Identifies currency used for price.
Definition: Messages.h:1445
InstAttribValue type.
Definition: Fields.h:567
bool subFraction(UInt8 &value) const
Price Denominator of Sub Fraction.
Definition: Messages.h:1635
bool tradingReferencePrice(Decimal &value) const
Definition: Messages.h:6432
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Size of message body in bytes.
Definition: Messages.h:9745
bool securityTradingStatus(SecurityTradingStatus::Enum &value) const
Definition: Messages.h:5265
static ONIXS_CMEMDH_EXPORTED StrRef fixType()
FIX message type.
Definition: Messages.h:2627
static ONIXS_CMEMDH_EXPORTED StrRef fixType()
FIX message type.
Definition: Messages.h:9962
BinaryGroup< OrderIDEntry, GroupSize8Byte, MessageSize > OrderIDEntries
Repeating group containing OrderIDEntry entries.
Definition: Messages.h:6990
BinaryGroup< FeedTypesEntry, GroupSize, MessageSize > FeedTypes
Repeating group containing FeedTypesEntry entries.
Definition: Messages.h:5889
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:886
static ONIXS_CMEMDH_EXPORTED const Char * className()
Entity class name.
Definition: Messages.h:3383
SnapshotFullRefreshOrderBook.
Definition: Messages.h:9766
UInt64 orderId() const
Unique order identifier as assigned by the exchange.
Definition: Messages.h:9461
bool decayStartDate(Timestamp &value) const
Definition: Messages.h:702
CHAR matchAlgorithm() const
Matching algorithm.
Definition: Messages.h:3627
Underlyings underlyings() const
Returns instance of Underlyings repeating group.
Definition: Messages.h:3870
LotTypeRules lotTypeRules() const
Returns instance of LotTypeRules repeating group.
Definition: Messages.h:832
UInt64 orderId() const
Unique order identifier as assigned by the exchange.
Definition: Messages.h:4092
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:3177
bool mainFraction(UInt8 &value) const
Price Denominator of Main Fraction.
Definition: Messages.h:3690
CHAR matchAlgorithm() const
Matching algorithm.
Definition: Messages.h:8998
MDIncrementalRefreshBook.
Definition: Messages.h:6758
bool subFraction(UInt8 &value) const
Price Denominator of Sub Fraction.
Definition: Messages.h:9071
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:5762
LotTypeRules lotTypeRules() const
Returns instance of LotTypeRules repeating group.
Definition: Messages.h:3859
UpdateAction::Enum updateAction() const
Market Data update action.
Definition: Messages.h:7542
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Definition: Messages.h:2358
Int32 securityId() const
Unique instrument ID.
Definition: Messages.h:461
bool tickRule(Int8 &value) const
Tick Rule.
Definition: Messages.h:6411
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Definition: Messages.h:5109
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Definition: Messages.h:5873
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Size of message body in bytes.
Definition: Messages.h:9552
BinaryGroup< EventsEntry, GroupSize, MessageSize > Events
Repeating group containing EventsEntry entries.
Definition: Messages.h:4984
bool highLimitPrice(Decimal &value) const
Allowable high limit price for the trading day.
Definition: Messages.h:6473
StrRef securityType() const
Security Type.
Definition: Messages.h:6292
SecurityIDSource underlyingSecurityIdSource() const
This value is always &#39;8&#39; for CME.
Definition: Messages.h:3282
IncrementalRefreshBook32(const void *data, MessageSize size)
Initializes instance over given memory block.
Definition: Messages.h:1976
static ONIXS_CMEMDH_EXPORTED const Char * className()
Entity class name.
Definition: Messages.h:7387
StrRef symbol() const
Instrument Name or Symbol. Previously used as Group Code.
Definition: Messages.h:6268
const MatchEventIndicator & matchEventIndicator() const
Definition: Messages.h:7021
bool underlyingProduct(UInt8 &value) const
Product complex.
Definition: Messages.h:1355
static ONIXS_CMEMDH_EXPORTED const Char * className()
Entity class name.
Definition: Messages.h:6025
IncrementalRefreshDailyStatistics49(const void *data, MessageSize size)
Initializes instance over given memory block.
Definition: Messages.h:7216
UpdateTypeNew updateAction() const
Market Data update action.
Definition: Messages.h:4641
BinaryGroup< EventsEntry, GroupSize, MessageSize > Events
Repeating group containing EventsEntry entries.
Definition: Messages.h:8391
EntryType::Enum entryType() const
Market Data entry type.
Definition: Messages.h:2755
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:6779
bool maturityMonthYear(MaturityMonthYear &value) const
Definition: Messages.h:494
BinaryGroup< Entry, GroupSize, MessageSize > Entries
Repeating group containing Entry entries.
Definition: Messages.h:9425
OrderIDEntries orderIdEntries() const
Returns instance of OrderIDEntries repeating group.
Definition: Messages.h:4173
BinaryGroup< EventsEntry, GroupSize, MessageSize > Events
Repeating group containing EventsEntry entries.
Definition: Messages.h:3020
UserDefinedInstrument userDefinedInstrument() const
User-defined instruments flag.
Definition: Messages.h:6339
StrRef currency() const
Identifies currency used for price.
Definition: Messages.h:5380
MDIncrementalRefreshBook.
Definition: Messages.h:1736
const SettlPriceType & settlPriceType() const
Definition: Messages.h:2747
UInt8 underlyingProduct() const
Indicates the product complex.
Definition: Messages.h:8854
BinaryGroup< Entry, GroupSize, MessageSize > Entries
Repeating group containing Entry entries.
Definition: Messages.h:4498
static ONIXS_CMEMDH_EXPORTED StrRef fixType()
FIX message type.
Definition: Messages.h:4390
BinaryGroup< InstAttribEntry, GroupSize, MessageSize > InstAttrib
Repeating group containing InstAttribEntry entries.
Definition: Messages.h:5958
bool entrySize(Int32 &value) const
Indicative Opening Quantity.
Definition: Messages.h:7559
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Size of message body in bytes.
Definition: Messages.h:7047
StrRef securityType() const
Security Type.
Definition: Messages.h:8913
UInt32 UInt32
uInt32.
Definition: Fields.h:189
static ONIXS_CMEMDH_EXPORTED const Char * className()
Entity class name.
Definition: Messages.h:4047
UInt8 underlyingProduct() const
Indicates the product complex.
Definition: Messages.h:3483
StrRef securityGroup() const
Security Group Code.
Definition: Messages.h:6250
UInt32 rptSeq() const
MD Entry sequence number per instrument update.
Definition: Messages.h:2334
const MatchEventIndicator & matchEventIndicator() const
Definition: Messages.h:6697
bool maturityMonthYear(MaturityMonthYear &value) const
Definition: Messages.h:8940
EventsEntry(const void *data, BodySize size, SchemaVersion version)
Definition: Messages.h:62
UInt8 priceLevel() const
Aggregate book level.
Definition: Messages.h:6846
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:5974
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:4929
UnderlyingsEntry(const void *data, BodySize size, SchemaVersion version)
Definition: Messages.h:3262
Entry(const void *data, BodySize size, SchemaVersion version)
Definition: Messages.h:2664
StrRef symbol() const
Instrument Name or Symbol.
Definition: Messages.h:452
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:1098
const MatchEventIndicator & matchEventIndicator() const
Definition: Messages.h:2217
BinaryGroup< Entry, GroupSize, MessageSize > Entries
Repeating group containing Entry entries.
Definition: Messages.h:4680
StrRef asset() const
The underlying asset code also known as Product Code.
Definition: Messages.h:8880
StrRef securityExchange() const
Exchange used to identify a security.
Definition: Messages.h:8862
BinaryGroup< OrderIDEntry, GroupSize8Byte, MessageSize > OrderIDEntries
Repeating group containing OrderIDEntry entries.
Definition: Messages.h:1968
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Size of message body in bytes.
Definition: Messages.h:7256
MatchEventIndicator type.
Definition: Fields.h:716
bool minCabPrice(Decimal &value) const
Defines cabinet price for outright options products.
Definition: Messages.h:3617
Int8 marketDepth() const
Identifies the depth of book.
Definition: Messages.h:987
Null values definition for optional PRICE9 field.
Definition: Composites.h:302
UserDefinedInstrument userDefinedInstrument() const
User-defined instruments flag.
Definition: Messages.h:778
Entry(const void *data, BodySize size, SchemaVersion version)
Definition: Messages.h:9603
bool entrySize(Int32 &value) const
Market Data entry size.
Definition: Messages.h:1787
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:8336
bool decayStartDate(Timestamp &value) const
Definition: Messages.h:5578
Null values definition for optional Decimal9 field.
Definition: Composites.h:41
Int16 applId() const
The channel ID as defined in the XML Configuration file.
Definition: Messages.h:1338
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Size of message body in bytes.
Definition: Messages.h:1715
OrderIDEntries orderIdEntries() const
Returns instance of OrderIDEntries repeating group.
Definition: Messages.h:7037
Represents time point without time-zone information.
Definition: Time.h:457
Entries entries() const
Returns instance of Entries repeating group.
Definition: Messages.h:7029
Entry(const void *data, BodySize size, SchemaVersion version)
Definition: Messages.h:6788
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:7677
static ONIXS_CMEMDH_EXPORTED const Char * className()
Entity class name.
Definition: Messages.h:5116
InstAttrib instAttrib() const
Returns instance of InstAttrib repeating group.
Definition: Messages.h:822
bool subFraction(UInt8 &value) const
Price Denominator of Sub Fraction.
Definition: Messages.h:575
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Definition: Messages.h:4482
static ONIXS_CMEMDH_EXPORTED const Char * className()
Entity class name.
Definition: Messages.h:7578
IntegralConstant< Char, 'e'> EntryTypeVol
MDEntryTypeVol.
Definition: Fields.h:97
SnapshotFullRefresh52()
Initializes blank instance.
Definition: Messages.h:7973
EntryTypeBook::Enum entryType() const
Market Data entry type.
Definition: Messages.h:9841
Int16 applId() const
The channel ID as defined in the XML Configuration file.
Definition: Messages.h:6214
bool maxPriceVariation(Decimal &value) const
Differential value for price banding.
Definition: Messages.h:1615
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Definition: Messages.h:8516
StrRef cfiCode() const
ISO standard instrument categorization code.
Definition: Messages.h:1425
SecurityUpdateAction::Enum securityUpdateAction() const
Definition: Messages.h:8807
bool maxPriceVariation(Decimal &value) const
Differential value for price banding.
Definition: Messages.h:2904
const MatchEventIndicator & matchEventIndicator() const
Definition: Messages.h:2596
static ONIXS_CMEMDH_EXPORTED StrRef fixType()
FIX message type.
Definition: Messages.h:7061
ONIXS_CMEMDH_EXPORTED void throwBadBinaryData(const Char *className)
Throws exception on bad repeating group entry.
const MatchEventIndicator & matchEventIndicator() const
Definition: Messages.h:9526
Decimal entryPx() const
Market Data entry price.
Definition: Messages.h:2484
static ONIXS_CMEMDH_EXPORTED const Char * className()
Returns class name.
Definition: Messages.h:7809
IntegralConstant< Int8, 24 > InstAttribType
Eligibility.
Definition: Fields.h:55
UInt32 minTradeVol() const
The minimum trading volume for a security.
Definition: Messages.h:5407
static ONIXS_CMEMDH_EXPORTED StrRef fixType()
FIX message type.
Definition: Messages.h:3910
UpdateAction::Enum updateAction() const
Market Data update action.
Definition: Messages.h:4014
Int16 applId() const
The channel ID as defined in the XML Configuration file.
Definition: Messages.h:5276
BinaryGroup< Entry, GroupSize, MessageSize > Entries
Repeating group containing Entry entries.
Definition: Messages.h:1866
StrRef asset() const
Product Code within Security Group specified.
Definition: Messages.h:6657
LotTypeRules lotTypeRules() const
Returns instance of LotTypeRules repeating group.
Definition: Messages.h:5708
static ONIXS_CMEMDH_EXPORTED const Char * className()
Returns class name.
Definition: Messages.h:7642
BinaryGroup< Entry, GroupSize, MessageSize > Entries
Repeating group containing Entry entries.
Definition: Messages.h:2186
BinaryGroup< Entry, GroupSize, MessageSize > Entries
Repeating group containing Entry entries.
Definition: Messages.h:6888
bool openCloseSettlFlag(OpenCloseSettlFlag::Enum &value) const
Flag describing IOP and Open Price entries.
Definition: Messages.h:7531
bool tradeEntryId(UInt32 &value) const
Market Data Trade entry ID.
Definition: Messages.h:9397
static ONIXS_CMEMDH_EXPORTED const Char * className()
Entity class name.
Definition: Messages.h:3152
bool priceDisplayFormat(UInt8 &value) const
Number of decimals in fractional display price.
Definition: Messages.h:3710
bool openCloseSettlFlag(OpenCloseSettlFlag::Enum &value) const
Flag describing Open Price entry.
Definition: Messages.h:2735
SecurityIDSource securityIdSource() const
Definition: Messages.h:1410
IntegralConstant< Char, 'J'> EntryTypeChannelReset
Channel Reset message entry type.
Definition: Fields.h:79
static ONIXS_CMEMDH_EXPORTED const Char * className()
Entity class name.
Definition: Messages.h:7961
SecurityIDSource securityIdSource() const
Identifies class or source of tag 48-SecurityID value.
Definition: Messages.h:8907
StrRef relatedSymbol() const
Related instrument Symbol.
Definition: Messages.h:8736
bool clearedVolume(Int32 &value) const
Definition: Messages.h:6463
Entries entries() const
Returns instance of Entries repeating group.
Definition: Messages.h:2225
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:1029
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Definition: Messages.h:5040
BinaryGroup< LegsEntry, GroupSize, MessageSize > Legs
Repeating group containing LegsEntry entries.
Definition: Messages.h:1264
static ONIXS_CMEMDH_EXPORTED StrRef fixType()
FIX message type.
Definition: Messages.h:7270
SecurityUpdateAction::Enum securityUpdateAction() const
Definition: Messages.h:5245
EventType::Enum eventType() const
Code to represent the type of event.
Definition: Messages.h:8356
InstAttribType instAttribType() const
Instrument Eligibility Attributes.
Definition: Messages.h:1049
bool orderId(UInt64 &value) const
Order ID.
Definition: Messages.h:9614
bool priceDisplayFormat(UInt8 &value) const
Number of decimals in fractional display price.
Definition: Messages.h:5461
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Definition: Messages.h:7571
static ONIXS_CMEMDH_EXPORTED const Char * className()
Entity class name.
Definition: Messages.h:171
UInt32 minTradeVol() const
The minimum trading volume for a security.
Definition: Messages.h:3635
static ONIXS_CMEMDH_EXPORTED const Char * className()
Entity class name.
Definition: Messages.h:8754
static ONIXS_CMEMDH_EXPORTED StrRef fixType()
FIX message type.
Definition: Messages.h:4789
bool tradingReferenceDate(Timestamp &value) const
Definition: Messages.h:787
StrRef asset() const
The underlying asset code also known as Product Code.
Definition: Messages.h:6259
bool maturityMonthYear(MaturityMonthYear &value) const
Definition: Messages.h:1435
Entry(const void *data, BodySize size, SchemaVersion version)
Definition: Messages.h:3947
Entries entries() const
Returns instance of Entries repeating group.
Definition: Messages.h:9736
UInt16 BlockLength
blockLength type.
Definition: Composites.h:343
UserDefinedInstrument userDefinedInstrument() const
User-defined instruments flag.
Definition: Messages.h:5654
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Definition: Messages.h:8747
const MatchEventIndicator & matchEventIndicator() const
Definition: Messages.h:2405
bool maxPriceVariation(Decimal &value) const
Differential value for price banding.
Definition: Messages.h:8093
Entries entries() const
Returns instance of Entries repeating group.
Definition: Messages.h:9534
ChannelReset4()
Initializes blank instance.
Definition: Messages.h:4683
StrRef securityExchange() const
Exchange used to identify a security.
Definition: Messages.h:3491
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:196
bool highLimitPrice(Decimal &value) const
Allowable high limit price for the trading day.
Definition: Messages.h:1595
static ONIXS_CMEMDH_EXPORTED const Char * className()
Entity class name.
Definition: Messages.h:8382
StrRef securityType() const
Security Type.
Definition: Messages.h:1416
StrRef securityType() const
Security Type.
Definition: Messages.h:5351
Int32 securityId() const
Security ID.
Definition: Messages.h:1797
static ONIXS_CMEMDH_EXPORTED const Char * className()
Returns class name.
Definition: Messages.h:4586
StrRef symbol() const
Instrument Name or Symbol.
Definition: Messages.h:8174
bool mainFraction(UInt8 &value) const
Price Denominator of Main Fraction.
Definition: Messages.h:6503
MDInstrumentDefinitionFuture.
Definition: Messages.h:32
BinaryGroup< RelatedSymEntry, GroupSize, MessageSize > RelatedSym
Repeating group containing RelatedSymEntry entries.
Definition: Messages.h:8237
bool orderPriority(UInt64 &value) const
Order priority for execution on the order book.
Definition: Messages.h:6932
Entry()
Initializes blank instance.
Definition: Messages.h:2658
bool minPriceIncrementAmount(Decimal &value) const
Monetary value equivalent to the minimum price fluctuation.
Definition: Messages.h:5644
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Definition: Messages.h:2170
static ONIXS_CMEMDH_EXPORTED const Char * className()
Entity class name.
Definition: Messages.h:1004
MDIncrementalRefreshDailyStatistics.
Definition: Messages.h:7068
bool subFraction(UInt8 &value) const
Price Denominator of Sub Fraction.
Definition: Messages.h:5451
bool legPrice(Decimal &value) const
Price for the future leg of a UDS Covered instrument.
Definition: Messages.h:6101
InstAttribType instAttribType() const
Instrument eligibility attributes.
Definition: Messages.h:5092
const MatchEventIndicator & matchEventIndicator() const
Definition: Messages.h:7618
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Definition: Messages.h:5942
BinaryGroup< FeedTypesEntry, GroupSize, MessageSize > FeedTypes
Repeating group containing FeedTypesEntry entries.
Definition: Messages.h:180
bool maxPriceVariation(Decimal &value) const
Differential value for price banding.
Definition: Messages.h:680
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:8407
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:8154
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:9787
InstAttribEntry(const void *data, BodySize size, SchemaVersion version)
Definition: Messages.h:8488
bool clearedVolume(Int32 &value) const
Definition: Messages.h:9135
StrRef unitOfMeasure() const
Unit of measure for the products&#39; original contract size.
Definition: Messages.h:1543
IncrementalRefreshSessionStatistics35(const void *data, MessageSize size)
Initializes instance over given memory block.
Definition: Messages.h:2573
bool orderQty(Int32 &value) const
Quantity requested.
Definition: Messages.h:8191
StrRef symbol() const
Instrument Name or Symbol. Previously used as Group Code.
Definition: Messages.h:1392
UpdateAction::Enum updateAction() const
Market Data update action.
Definition: Messages.h:7721
bool unitOfMeasureQty(Decimal &value) const
Definition: Messages.h:607
EntryTypeStatistics::Enum entryType() const
Market Data entry type.
Definition: Messages.h:2529
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Definition: Messages.h:4312
bool securityTradingStatus(SecurityTradingStatus::Enum &value) const
Definition: Messages.h:1327
StrRef securityExchange() const
Exchange used to identify a security.
Definition: Messages.h:1365
BinaryGroup< Entry, GroupSize, MessageSize > Entries
Repeating group containing Entry entries.
Definition: Messages.h:4056
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Definition: Messages.h:7954
Int32 displayQty() const
Visible order qty.
Definition: Messages.h:9833
static ONIXS_CMEMDH_EXPORTED const Char * className()
Returns class name.
Definition: Messages.h:2930
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Definition: Messages.h:309
SecurityStatus30(const void *data, MessageSize size)
Initializes instance over given memory block.
Definition: Messages.h:6627
bool mainFraction(UInt8 &value) const
Price Denominator of Main Fraction.
Definition: Messages.h:5441
Events events() const
Returns instance of Events repeating group.
Definition: Messages.h:805
StrRef currency() const
Identifies currency used for price.
Definition: Messages.h:3579
static ONIXS_CMEMDH_EXPORTED const Char * className()
Entity class name.
Definition: Messages.h:7745
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Definition: Messages.h:7380
UInt32 rptSeq() const
Sequence number per instrument update.
Definition: Messages.h:9353
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:3938
EventType::Enum eventType() const
Code to represent the type of event.
Definition: Messages.h:5782
static ONIXS_CMEMDH_EXPORTED StrRef fixType()
FIX message type.
Definition: Messages.h:6607
SnapshotFullRefresh52(const void *data, MessageSize size)
Initializes instance over given memory block.
Definition: Messages.h:7978
bool orderPriority(UInt64 &value) const
Order priority for execution on the order book.
Definition: Messages.h:1910
static ONIXS_CMEMDH_EXPORTED const Char * className()
Entity class name.
Definition: Messages.h:1255
static ONIXS_CMEMDH_EXPORTED const Char * className()
Returns class name.
Definition: Messages.h:7451
InstrumentDefinitionOption41()
Initializes blank instance.
Definition: Messages.h:3395
Legs legs() const
Returns instance of Legs repeating group.
Definition: Messages.h:6580
Char CHAR
char.
Definition: Fields.h:43
InstrumentDefinitionFuture54(const void *data, MessageSize size)
Initializes instance over given memory block.
Definition: Messages.h:5209
bool highLimitPrice(Decimal &value) const
Allowable high limit price for the trading day.
Definition: Messages.h:660
static ONIXS_CMEMDH_EXPORTED const Char * className()
Returns class name.
Definition: Messages.h:4383
UInt32 currentChunk() const
Chunk sequence.
Definition: Messages.h:4553
static ONIXS_CMEMDH_EXPORTED StrRef fixType()
FIX message type.
Definition: Messages.h:9566
bool tradingReferencePrice(Decimal &value) const
Definition: Messages.h:3744
InstrumentDefinitionSpread29()
Initializes blank instance.
Definition: Messages.h:1267
Int32 securityId() const
Unique instrument ID.
Definition: Messages.h:1401
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:7486
bool lowLimitPrice(Decimal &value) const
Lower price threshold for the instrument.
Definition: Messages.h:8083
bool securityTradingStatus(SecurityTradingStatus::Enum &value) const
Definition: Messages.h:8826
Entry(const void *data, BodySize size, SchemaVersion version)
Definition: Messages.h:9796
BinaryGroup< UnderlyingsEntry, GroupSize, MessageSize > Underlyings
Repeating group containing UnderlyingsEntry entries.
Definition: Messages.h:3315
bool tradingReferencePrice(Decimal &value) const
Definition: Messages.h:1554
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Definition: Messages.h:1248
SecurityUpdateAction::Enum securityUpdateAction() const
Definition: Messages.h:369
bool lowLimitPrice(Decimal &value) const
Allowable low limit price for the trading day.
Definition: Messages.h:6483
const MatchEventIndicator & matchEventIndicator() const
Definition: Messages.h:3414
RelatedInstruments relatedInstruments() const
Returns instance of RelatedInstruments repeating group.
Definition: Messages.h:9253
Null values definition for optional MaturityMonthYear field.
Definition: Composites.h:223
bool tradingReferenceDate(Timestamp &value) const
Definition: Messages.h:7905
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Definition: Messages.h:92
bool highLimitPrice(Decimal &value) const
Upper price threshold for the instrument.
Definition: Messages.h:2884
UInt64 orderId() const
Unique Order ID.
Definition: Messages.h:4438
BinaryGroup< UnderlyingsEntry, GroupSize, MessageSize > Underlyings
Repeating group containing UnderlyingsEntry entries.
Definition: Messages.h:8686
bool tradeDate(Timestamp &value) const
Trade Session Date.
Definition: Messages.h:6677
static ONIXS_CMEMDH_EXPORTED const Char * className()
Entity class name.
Definition: Messages.h:99
BinaryGroup< LotTypeRulesEntry, GroupSize, MessageSize > LotTypeRules
Repeating group containing LotTypeRulesEntry entries.
Definition: Messages.h:8608
InstAttrib instAttrib() const
Returns instance of InstAttrib repeating group.
Definition: Messages.h:3849
static ONIXS_CMEMDH_EXPORTED const Char * className()
Entity class name.
Definition: Messages.h:7199
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:5905
OrderIDEntry(const void *data, BodySize size, SchemaVersion version)
Definition: Messages.h:1891
InstAttribEntry(const void *data, BodySize size, SchemaVersion version)
Definition: Messages.h:5081
bool openInterestQty(Int32 &value) const
Definition: Messages.h:639
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Definition: Messages.h:4968
UInt32 rptSeq() const
MD Entry sequence number per instrument update.
Definition: Messages.h:7522
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Definition: Messages.h:1850
bool tradingReferenceDate(Timestamp &value) const
Definition: Messages.h:3814
StrRef securityType() const
Security Type.
Definition: Messages.h:475
StrRef asset() const
The underlying asset code also known as Product Code.
Definition: Messages.h:5319
static ONIXS_CMEMDH_EXPORTED const Char * className()
Entity class name.
Definition: Messages.h:1959
bool maxPriceVariation(Decimal &value) const
Differential static value for price banding.
Definition: Messages.h:2316
Null values definition for optional PRICE field.
Definition: Composites.h:260
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:2965
static ONIXS_CMEMDH_EXPORTED StrRef fixType()
FIX message type.
Definition: Messages.h:4593
bool displayQty(Int32 &value) const
Visible qty of order.
Definition: Messages.h:1920
CHAR matchAlgorithm() const
Matching algorithm.
Definition: Messages.h:523
Entry(const void *data, BodySize size, SchemaVersion version)
Definition: Messages.h:2473
AdminHeartbeat12()
Initializes blank instance.
Definition: Messages.h:4757
static ONIXS_CMEMDH_EXPORTED const Char * className()
Returns class name.
Definition: Messages.h:9559
bool side(Int8 &value) const
Side requested.
Definition: Messages.h:8209
bool tradingReferenceDate(Timestamp &value) const
Definition: Messages.h:6524
bool priceDisplayFormat(UInt8 &value) const
Number of decimals in fractional display price.
Definition: Messages.h:6391
bool flowScheduleType(Int8 &value) const
Definition: Messages.h:758
HaltReason::Enum haltReason() const
Identifies the reason for the status change.
Definition: Messages.h:6718
bool minPriceIncrement(Decimal &value) const
Minimum constant tick for the instrument.
Definition: Messages.h:9022
Entries entries() const
Returns instance of Entries repeating group.
Definition: Messages.h:7435
static ONIXS_CMEMDH_EXPORTED StrRef fixType()
FIX message type.
Definition: Messages.h:8308
bool minPriceIncrement(Decimal &value) const
Definition: Messages.h:6372
StrRef quoteReqId() const
Quote Request ID defined by the exchange.
Definition: Messages.h:8266
UInt32 totNumReports() const
Total number of instruments in the replayed loop.
Definition: Messages.h:4528
bool securityId(Int32 &value) const
Definition: Messages.h:6667
UInt32 rptSeq() const
Market Data entry sequence number per instrument update.
Definition: Messages.h:6827
SnapshotFullRefresh38(const void *data, MessageSize size)
Initializes instance over given memory block.
Definition: Messages.h:2789
EventsEntry(const void *data, BodySize size, SchemaVersion version)
Definition: Messages.h:4938
static ONIXS_CMEMDH_EXPORTED const Char * className()
Entity class name.
Definition: Messages.h:6981
static ONIXS_CMEMDH_EXPORTED const Char * className()
Returns class name.
Definition: Messages.h:4837
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:957
static ONIXS_CMEMDH_EXPORTED StrRef fixType()
FIX message type.
Definition: Messages.h:4742
CHAR matchAlgorithm() const
Matching algorithm.
Definition: Messages.h:6347
PutOrCall::Enum putOrCall() const
Indicates whether an option instrument is a put or call.
Definition: Messages.h:8931
Entry()
Initializes blank instance.
Definition: Messages.h:4624
Null values definition for optional DecimalQty field.
Definition: Composites.h:85
bool tradingReferencePrice(Decimal &value) const
Definition: Messages.h:5495
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:2067
BinaryGroup< Entry, GroupSize, MessageSize > Entries
Repeating group containing Entry entries.
Definition: Messages.h:7970
StrRef securityGroup() const
Security Group Code.
Definition: Messages.h:5310
UInt8 UInt8
uInt8.
Definition: Fields.h:197
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Definition: Messages.h:7738
InstrumentDefinitionOption41(const void *data, MessageSize size)
Initializes instance over given memory block.
Definition: Messages.h:3400
bool maturityMonthYear(MaturityMonthYear &value) const
Definition: Messages.h:5370
IncrementalRefreshSessionStatistics35()
Initializes blank instance.
Definition: Messages.h:2568
UserDefinedInstrument userDefinedInstrument() const
User-defined instruments flag.
Definition: Messages.h:3805
IncrementalRefreshVolume37(const void *data, MessageSize size)
Initializes instance over given memory block.
Definition: Messages.h:7762
OrderIDEntry(const void *data, BodySize size, SchemaVersion version)
Definition: Messages.h:6913
IntegralConstant< Char, '2'> EntryTypeTrade
MDEntryTypeTrade.
Definition: Fields.h:91
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Size of message body in bytes.
Definition: Messages.h:9267
char Char
Character type alias.
Definition: String.h:36
UInt16 MessageSize
Aliases message length type.
Int32 securityId() const
Unique instrument ID.
Definition: Messages.h:5337
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Definition: Messages.h:3299
bool contractMultiplier(Int32 &value) const
Definition: Messages.h:732
static ONIXS_CMEMDH_EXPORTED const Char * className()
Entity class name.
Definition: Messages.h:932
Int8 marketDepth() const
Identifies the depth of book.
Definition: Messages.h:5863
Int16 applId() const
The channel ID as defined in the XML Configuration file.
Definition: Messages.h:3466
bool totNumReports(UInt32 &value) const
Definition: Messages.h:8794
EventsEntry(const void *data, BodySize size, SchemaVersion version)
Definition: Messages.h:895
SecurityIDSource securityIdSource() const
Identifies class or source of tag 48-SecurityID value.
Definition: Messages.h:469
IncrementalRefreshOrderBook47()
Initializes blank instance.
Definition: Messages.h:9700
StrRef securityExchange() const
Exchange used to identify a security.
Definition: Messages.h:5301
bool displayQty(Int32 &value) const
Visible qty of order.
Definition: Messages.h:6942
static ONIXS_CMEMDH_EXPORTED const Char * className()
Returns class name.
Definition: Messages.h:3903
UpdateAction::Enum updateAction() const
Market Data update action.
Definition: Messages.h:7173
bool entrySize(Int32 &value) const
Market Data entry quantity.
Definition: Messages.h:7874
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Definition: Messages.h:3076
MDIncrementalRefreshOrderBook.
Definition: Messages.h:9573
IncrementalRefreshOrderBook43()
Initializes blank instance.
Definition: Messages.h:4331
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Definition: Messages.h:9409
LotTypeRules lotTypeRules() const
Returns instance of LotTypeRules repeating group.
Definition: Messages.h:9230
StrRef asset() const
The underlying asset code also known as Product Code.
Definition: Messages.h:443
IncrementalRefreshBook32()
Initializes blank instance.
Definition: Messages.h:1971
EntryTypeTrade entryType() const
Market Data entry type.
Definition: Messages.h:4022
BinaryGroup< Entry, GroupSize, MessageSize > Entries
Repeating group containing Entry entries.
Definition: Messages.h:4328
EntryTypeChannelReset entryType() const
Market Data entry type.
Definition: Messages.h:4647
UInt64 UInt64
uInt64.
Definition: Fields.h:193
Int32 securityId() const
Security ID.
Definition: Messages.h:2819
Entry(const void *data, BodySize size, SchemaVersion version)
Definition: Messages.h:2285
QuoteRequest39(const void *data, MessageSize size)
Initializes instance over given memory block.
Definition: Messages.h:8245
static ONIXS_CMEMDH_EXPORTED const Char * className()
Returns class name.
Definition: Messages.h:4782
static ONIXS_CMEMDH_EXPORTED const Char * className()
Returns class name.
Definition: Messages.h:7263
FeedTypes feedTypes() const
Returns instance of FeedTypes repeating group.
Definition: Messages.h:9211
Int8 quoteType() const
Type of quote requested.
Definition: Messages.h:8201
Entry(const void *data, BodySize size, SchemaVersion version)
Definition: Messages.h:7853
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Size of message body in bytes.
Definition: Messages.h:7802
Entry(const void *data, BodySize size, SchemaVersion version)
Definition: Messages.h:2076
Entry(const void *data, BodySize size, SchemaVersion version)
Definition: Messages.h:4630
MDIncrementalRefreshDailyStatistics.
Definition: Messages.h:2046
BinaryGroup< LotTypeRulesEntry, GroupSize, MessageSize > LotTypeRules
Repeating group containing LotTypeRulesEntry entries.
Definition: Messages.h:1158
static ONIXS_CMEMDH_EXPORTED const Char * className()
Entity class name.
Definition: Messages.h:240
static ONIXS_CMEMDH_EXPORTED const Char * className()
Entity class name.
Definition: Messages.h:2177
BinaryGroup< LotTypeRulesEntry, GroupSize, MessageSize > LotTypeRules
Repeating group containing LotTypeRulesEntry entries.
Definition: Messages.h:5201
Entry()
Initializes blank instance.
Definition: Messages.h:6782
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:5000
static ONIXS_CMEMDH_EXPORTED StrRef fixType()
FIX message type.
Definition: Messages.h:2436
static ONIXS_CMEMDH_EXPORTED const Char * className()
Returns class name.
Definition: Messages.h:2429
InstAttribType instAttribType() const
Instrument Eligibility Attributes.
Definition: Messages.h:5925
Int32 entrySize() const
Consolidated trade quantity.
Definition: Messages.h:9337
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Definition: Messages.h:3376
bool entryPx(Decimal &value) const
Order price.
Definition: Messages.h:9634
InstAttrib instAttrib() const
Returns instance of InstAttrib repeating group.
Definition: Messages.h:9220
StrRef securityExchange() const
Exchange used to identify a security.
Definition: Messages.h:6241
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:8624
FeedTypesEntry(const void *data, BodySize size, SchemaVersion version)
Definition: Messages.h:8416
bool contractMultiplierUnit(Int8 &value) const
Definition: Messages.h:5620
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:2655
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:8702
const MatchEventIndicator & matchEventIndicator() const
Definition: Messages.h:1999
static ONIXS_CMEMDH_EXPORTED const Char * className()
Entity class name.
Definition: Messages.h:8677
Entries entries() const
Returns instance of Entries repeating group.
Definition: Messages.h:4570
Int32 securityId() const
Unique Instrument ID.
Definition: Messages.h:8899
IncrementalRefreshSessionStatistics51()
Initializes blank instance.
Definition: Messages.h:7590
EventType::Enum eventType() const
Code to represent the type of event.
Definition: Messages.h:4949
BinaryGroup< InstAttribEntry, GroupSize, MessageSize > InstAttrib
Repeating group containing InstAttribEntry entries.
Definition: Messages.h:249
#define ONIXS_CMEMDH_LTWT_STRUCT
Definition: Bootstrap.h:114
bool tradingReferencePrice(Decimal &value) const
Definition: Messages.h:619
bool subFraction(UInt8 &value) const
Price Denominator of Sub Fraction.
Definition: Messages.h:3700
UserDefinedInstrument userDefinedInstrument() const
User-defined instruments flag.
Definition: Messages.h:1463
const SettlPriceType & settlPriceType() const
Definition: Messages.h:6443
bool minPriceIncrement(Decimal &value) const
Minimum constant tick for the instrument.
Definition: Messages.h:3651
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Definition: Messages.h:9479
FeedTypes feedTypes() const
Returns instance of FeedTypes repeating group.
Definition: Messages.h:6550
static ONIXS_CMEMDH_EXPORTED const Char * className()
Entity class name.
Definition: Messages.h:4489
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Definition: Messages.h:4110
RelatedInstrumentsEntry(const void *data, BodySize size, SchemaVersion version)
Definition: Messages.h:3340
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:7089
StrRef cfiCode() const
ISO standard instrument categorization code.
Definition: Messages.h:8922
SettlPriceType type.
Definition: Fields.h:781
static ONIXS_CMEMDH_EXPORTED const Char * className()
Entity class name.
Definition: Messages.h:6879
Int16 Int16
int16.
Definition: Fields.h:59
Timestamp localMktDateToTimestamp(LocalMktDate days)
Converts days since epoch to Timestamp value.
Definition: Fields.h:874
UInt8 underlyingProduct() const
Product complex.
Definition: Messages.h:417
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Definition: Messages.h:9681
EntryTypeStatistics::Enum entryType() const
Market Data entry type.
Definition: Messages.h:7551
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Definition: Messages.h:6124
StrRef cfiCode() const
ISO standard instrument categorization code.
Definition: Messages.h:3551
PutOrCall::Enum putOrCall() const
Indicates whether an option instrument is a put or call.
Definition: Messages.h:3560
bool contractMultiplier(Int32 &value) const
Definition: Messages.h:5608
bool strikePrice(Decimal &value) const
Strike Price for an option instrument.
Definition: Messages.h:3588
static ONIXS_CMEMDH_EXPORTED const Char * className()
Entity class name.
Definition: Messages.h:2365
static ONIXS_CMEMDH_EXPORTED StrRef fixType()
FIX message type.
Definition: Messages.h:7816
static ONIXS_CMEMDH_EXPORTED const Char * className()
Returns class name.
Definition: Messages.h:2620
BinaryGroup< RelatedInstrumentsEntry, GroupSize, MessageSize > RelatedInstruments
Repeating group containing RelatedInstrumentsEntry entries.
Definition: Messages.h:8763
SecurityStatus30()
Initializes blank instance.
Definition: Messages.h:6622
static ONIXS_CMEMDH_EXPORTED const Char * className()
Entity class name.
Definition: Messages.h:8228
UserDefinedInstrument userDefinedInstrument() const
User-defined instruments flag.
Definition: Messages.h:9176
StrRef securityExchange() const
Exchange used to identify a security.
Definition: Messages.h:425
Entries entries() const
Returns instance of Entries repeating group.
Definition: Messages.h:2604
FeedTypes feedTypes() const
Returns instance of FeedTypes repeating group.
Definition: Messages.h:813
UpdateAction::Enum updateAction() const
Market Data update action.
Definition: Messages.h:2151
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:265
Int32 securityId() const
Security ID as defined by CME.
Definition: Messages.h:9345
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:124
StrRef securitySubType() const
Strategy type.
Definition: Messages.h:6330
bool openCloseSettlFlag(OpenCloseSettlFlag::Enum &value) const
Flag describing Open Price entry.
Definition: Messages.h:7924
IntegralConstant< Char, '8'> SecurityIDSource
Definition: Fields.h:141
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:3036
SnapshotFullRefreshOrderBook44(const void *data, MessageSize size)
Initializes instance over given memory block.
Definition: Messages.h:4506
Int16 applId() const
The channel ID as defined in the XML Configuration file.
Definition: Messages.h:8837
bool minPriceIncrementAmount(Decimal &value) const
Monetary value equivalent to the minimum price fluctuation.
Definition: Messages.h:9032
const MatchEventIndicator & matchEventIndicator() const
Definition: Messages.h:8277
static ONIXS_CMEMDH_EXPORTED const Char * className()
Entity class name.
Definition: Messages.h:8523
bool priceRatio(Decimal &value) const
Used for price calculation in spread and leg pricing.
Definition: Messages.h:6401
bool orderPriority(UInt64 &value) const
Order priority for execution on the order book.
Definition: Messages.h:9815
Int32 securityId() const
Unique instrument ID.
Definition: Messages.h:6277
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:5141
Provides efficient way of accessing text-based FIX field values.
Definition: String.h:39
UInt32 rptSeq() const
MD Entry sequence number per instrument update.
Definition: Messages.h:2500
MDInstrumentDefinitionSpread.
Definition: Messages.h:5741
const MatchEventIndicator & matchEventIndicator() const
Definition: Messages.h:7239
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:1174
MessageHeader::Version SchemaVersion
Aliases SBE-encoded data version type.
Definition: SchemaTraits.h:30
Entry(const void *data, BodySize size, SchemaVersion version)
Definition: Messages.h:7098
bool maturityMonthYear(MaturityMonthYear &value) const
Definition: Messages.h:3569
bool securityTradingStatus(SecurityTradingStatus::Enum &value) const
Definition: Messages.h:389
LotTypeRulesEntry(const void *data, BodySize size, SchemaVersion version)
Definition: Messages.h:3186
BinaryGroup< Entry, GroupSize, MessageSize > Entries
Repeating group containing Entry entries.
Definition: Messages.h:2781
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Definition: Messages.h:925
static ONIXS_CMEMDH_EXPORTED StrRef fixType()
FIX message type.
Definition: Messages.h:7649
BinaryGroup< LegsEntry, GroupSize, MessageSize > Legs
Repeating group containing LegsEntry entries.
Definition: Messages.h:6140
bool underlyingProduct(UInt8 &value) const
Product complex.
Definition: Messages.h:6231
SnapshotFullRefreshOrderBook53(const void *data, MessageSize size)
Initializes instance over given memory block.
Definition: Messages.h:9875
FeedTypes feedTypes() const
Returns instance of FeedTypes repeating group.
Definition: Messages.h:3840
const MatchEventIndicator & matchEventIndicator() const
Definition: Messages.h:9728
A real number with floating exponent.
Definition: Decimal.h:220
UInt32 minTradeVol() const
The minimum trading volume for a security.
Definition: Messages.h:1479
bool numberOfOrders(Int32 &value) const
Aggregate number of orders at the given price level.
Definition: Messages.h:2695
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:6050
UInt32 rptSeq() const
MD Entry sequence number per instrument update.
Definition: Messages.h:7356
EventsEntry(const void *data, BodySize size, SchemaVersion version)
Definition: Messages.h:5771
IntegralConstant< Char, 'g'> EntryTypeLimits
MDEntryTypeLimits.
Definition: Fields.h:85
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Definition: Messages.h:6872
Entry(const void *data, BodySize size, SchemaVersion version)
Definition: Messages.h:9318
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Size of message body in bytes.
Definition: Messages.h:7444
MDIncrementalRefreshOrderBook.
Definition: Messages.h:4204
static ONIXS_CMEMDH_EXPORTED const Char * className()
Entity class name.
Definition: Messages.h:4117
SnapshotFullRefreshOrderBook.
Definition: Messages.h:4397
bool openInterestQty(Int32 &value) const
Definition: Messages.h:6452
Entry()
Initializes blank instance.
Definition: Messages.h:7847
bool maxPriceVariation(Decimal &value) const
Differential value for price banding.
Definition: Messages.h:5556
ChannelReset4(const void *data, MessageSize size)
Initializes instance over given memory block.
Definition: Messages.h:4688
#define ONIXS_CMEMDH_NAMESPACE_BEGIN
Definition: Bootstrap.h:168
bool clearedVolume(Int32 &value) const
Definition: Messages.h:5526
InstAttribEntry(const void *data, BodySize size, SchemaVersion version)
Definition: Messages.h:1038
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Size of message body in bytes.
Definition: Messages.h:2234
static ONIXS_CMEMDH_EXPORTED const Char * className()
Entity class name.
Definition: Messages.h:9486
static ONIXS_CMEMDH_EXPORTED const Char * className()
Entity class name.
Definition: Messages.h:9688
bool entryPx(Decimal &value) const
Market Data entry price.
Definition: Messages.h:7864
bool priceDisplayFormat(UInt8 &value) const
Number of decimals in fractional display price.
Definition: Messages.h:9081
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Definition: Messages.h:7192
bool aggressorSide(AggressorSide::Enum &value) const
Definition: Messages.h:4003
MDIncrementalRefreshSessionStatistics.
Definition: Messages.h:2443
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Size of message body in bytes.
Definition: Messages.h:8294
UInt32 totNumReports() const
Total number of messages replayed in the loop.
Definition: Messages.h:2811
bool clearedVolume(Int32 &value) const
Definition: Messages.h:3764
bool maxPriceVariation(Decimal &value) const
Differential static value for price banding.
Definition: Messages.h:7338
static ONIXS_CMEMDH_EXPORTED StrRef fixType()
FIX message type.
Definition: Messages.h:2039
bool minPriceIncrementAmount(Decimal &value) const
Monetary value equivalent to the minimum price fluctuation.
Definition: Messages.h:768
StrRef securitySubType() const
Strategy type.
Definition: Messages.h:1454
UInt8 underlyingProduct() const
Product complex.
Definition: Messages.h:5293
bool originalContractSize(Int32 &value) const
Fixed contract value assigned to each product.
Definition: Messages.h:5596
bool lowLimitPrice(Decimal &value) const
Allowable low limit price for the trading day.
Definition: Messages.h:5546
UInt8 priceLevel() const
Aggregate book level.
Definition: Messages.h:1824
LotTypeRules lotTypeRules() const
Returns instance of LotTypeRules repeating group.
Definition: Messages.h:6569
static ONIXS_CMEMDH_EXPORTED const Char * className()
Entity class name.
Definition: Messages.h:3228
Entry(const void *data, BodySize size, SchemaVersion version)
Definition: Messages.h:7307
bool tradingReferenceDate(Timestamp &value) const
Definition: Messages.h:5663
FeedTypes feedTypes() const
Returns instance of FeedTypes repeating group.
Definition: Messages.h:5689
SecurityIDSource securityIdSource() const
Definition: Messages.h:6286
bool mainFraction(UInt8 &value) const
Price Denominator of Main Fraction.
Definition: Messages.h:565
MDIncrementalRefreshTradeSummary.
Definition: Messages.h:9288
bool maturityMonthYear(MaturityMonthYear &value) const
Definition: Messages.h:6311
const SettlPriceType & settlPriceType() const
Definition: Messages.h:9126
Char UserDefinedInstrument
Definition: Fields.h:185
Entries entries() const
Returns instance of Entries repeating group.
Definition: Messages.h:7793
bool highLimitPrice(Decimal &value) const
Upper price threshold for the instrument.
Definition: Messages.h:2296
FeedTypesEntry(const void *data, BodySize size, SchemaVersion version)
Definition: Messages.h:133
IncrementalRefreshDailyStatistics33()
Initializes blank instance.
Definition: Messages.h:2189
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Definition: Messages.h:8592
UInt32 rptSeq() const
Sequence number per instrument update.
Definition: Messages.h:3982
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:9309
Int8 heartBtInt() const
Heartbeat interval (seconds).
Definition: Messages.h:4821
StrRef cfiCode() const
ISO standard instrument categorization code.
Definition: Messages.h:484
BinaryGroup< RelatedInstrumentsEntry, GroupSize, MessageSize > RelatedInstruments
Repeating group containing RelatedInstrumentsEntry entries.
Definition: Messages.h:3392
IncrementalRefreshTradeSummary48()
Initializes blank instance.
Definition: Messages.h:9498
SecurityIDSource underlyingSecurityIdSource() const
This value is always &#39;8&#39; for CME.
Definition: Messages.h:8653
StrRef asset() const
The underlying asset code also known as Product Code.
Definition: Messages.h:1383
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:4621
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:2276
IncrementalRefreshDailyStatistics33(const void *data, MessageSize size)
Initializes instance over given memory block.
Definition: Messages.h:2194
LegsEntry(const void *data, BodySize size, SchemaVersion version)
Definition: Messages.h:6059
bool tradingReferencePrice(Decimal &value) const
Definition: Messages.h:9115
BinaryGroup< InstAttribEntry, GroupSize, MessageSize > InstAttrib
Repeating group containing InstAttribEntry entries.
Definition: Messages.h:1082
bool securityTradingStatus(SecurityTradingStatus::Enum &value) const
Definition: Messages.h:3455
InstAttribType instAttribType() const
Instrument Eligibility Attributes.
Definition: Messages.h:8499
UpdateAction::Enum updateAction() const
Market Data update action.
Definition: Messages.h:6854
const MatchEventIndicator & matchEventIndicator() const
Definition: Messages.h:4711
static ONIXS_CMEMDH_EXPORTED const Char * className()
Returns class name.
Definition: Messages.h:9955
static ONIXS_CMEMDH_EXPORTED const Char * className()
Entity class name.
Definition: Messages.h:9416
SecurityIDSource relatedSecurityIdSource() const
Related Security ID source.
Definition: Messages.h:8730
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Size of message body in bytes.
Definition: Messages.h:6593
UInt32 totNumReports() const
Total number of instruments in the replayed loop.
Definition: Messages.h:9897
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Definition: Messages.h:233
bool openInterestQty(Int32 &value) const
Definition: Messages.h:5515
SecurityIDSource securityIdSource() const
Identifies class or source of tag 48-SecurityID value.
Definition: Messages.h:3536
static ONIXS_CMEMDH_EXPORTED const Char * className()
Returns class name.
Definition: Messages.h:9274
StrRef strikeCurrency() const
Currency in which the StrikePrice is denominated.
Definition: Messages.h:3598
StrRef currency() const
Identifies currency used for price.
Definition: Messages.h:6321
bool clearedVolume(Int32 &value) const
Definition: Messages.h:1585
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Definition: Messages.h:4664
const SettlPriceType & settlPriceType() const
Definition: Messages.h:7936
UInt32 rptSeq() const
Market Data entry sequence number per instrument update.
Definition: Messages.h:7713
bool lowLimitPrice(Decimal &value) const
Lower price threshold for the instrument.
Definition: Messages.h:2306
const SettlPriceType & settlPriceType() const
Definition: Messages.h:630
EntryTypeBook::Enum entryType() const
Market Data entry type.
Definition: Messages.h:1840
static ONIXS_CMEMDH_EXPORTED StrRef fixType()
FIX message type.
Definition: Messages.h:2248
CHAR matchAlgorithm() const
Matching algorithm.
Definition: Messages.h:5399
bool securityTradingStatus(SecurityTradingStatus::Enum &value) const
Identifies the current trading state of the instrument.
Definition: Messages.h:2873
Encapsulates services for manipulating SBE-encoded messages.
StrRef cfiCode() const
ISO standard instrument categorization code.
Definition: Messages.h:6301
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Size of message body in bytes.
Definition: Messages.h:4183
bool mainFraction(UInt8 &value) const
Price Denominator of Main Fraction.
Definition: Messages.h:1625
const MatchEventIndicator & matchEventIndicator() const
Definition: Messages.h:7427
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:3331
bool entryPx(Decimal &value) const
Order price.
Definition: Messages.h:4265
Decimal entryPx() const
Market Data entry price.
Definition: Messages.h:7506
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Definition: Messages.h:5801
Entries entries() const
Returns instance of Entries repeating group.
Definition: Messages.h:8103
LotTypeRulesEntry(const void *data, BodySize size, SchemaVersion version)
Definition: Messages.h:274
EventType::Enum eventType() const
Code to represent the type of event.
Definition: Messages.h:2985
UInt32 rptSeq() const
Market Data entry sequence number per instrument update.
Definition: Messages.h:2115
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Definition: Messages.h:2549
AdminLogout16(const void *data, MessageSize size)
Initializes instance over given memory block.
Definition: Messages.h:4864
BinaryGroup< FeedTypesEntry, GroupSize, MessageSize > FeedTypes
Repeating group containing FeedTypesEntry entries.
Definition: Messages.h:8463
IntegralConstant< Int8, 0 > UpdateActionNew
MDUpdateActionNew.
Definition: Fields.h:109
InstAttrib instAttrib() const
Returns instance of InstAttrib repeating group.
Definition: Messages.h:6559
MessageHeader::BlockLength BodySize
Length of message body without repeating groups.
StrRef asset() const
The underlying asset code also known as Product Code.
Definition: Messages.h:3509
UpdateAction::Enum updateAction() const
Market Data update action.
Definition: Messages.h:2520
Int32 securityId() const
Security ID.
Definition: Messages.h:4536
EntryTypeBook::Enum entryType() const
Market Data entry type.
Definition: Messages.h:4302
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Definition: Messages.h:9851
RelatedInstrumentsEntry(const void *data, BodySize size, SchemaVersion version)
Definition: Messages.h:8711
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Size of message body in bytes.
Definition: Messages.h:2613
static ONIXS_CMEMDH_EXPORTED const Char * className()
Entity class name.
Definition: Messages.h:3083
EntryTypeLimits entryType() const
Market Data entry type.
Definition: Messages.h:2350
bool orderPriority(UInt64 &value) const
Order priority for execution on the order book.
Definition: Messages.h:4255
Underlyings underlyings() const
Returns instance of Underlyings repeating group.
Definition: Messages.h:9241
SnapshotFullRefreshOrderBook53()
Initializes blank instance.
Definition: Messages.h:9870
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Size of message body in bytes.
Definition: Messages.h:3896
Events events() const
Returns instance of Events repeating group.
Definition: Messages.h:5681
LotTypeRulesEntry(const void *data, BodySize size, SchemaVersion version)
Definition: Messages.h:1107
IncrementalRefreshVolume37()
Initializes blank instance.
Definition: Messages.h:7757
Events events() const
Returns instance of Events repeating group.
Definition: Messages.h:6542
static ONIXS_CMEMDH_EXPORTED const Char * className()
Returns class name.
Definition: Messages.h:6744
StrRef toStrRef(const std::string &str)
Constructs StrRef instance over std::string content.
Definition: String.h:166
bool tradeDate(Timestamp &value) const
Trade session date sent as number of days since Unix epoch.
Definition: Messages.h:8043
static ONIXS_CMEMDH_EXPORTED const Char * className()
Returns class name.
Definition: Messages.h:9752
static ONIXS_CMEMDH_EXPORTED const Char * className()
Entity class name.
Definition: Messages.h:3306
bool highLimitPrice(Decimal &value) const
Allowable high limit price for the trading day.
Definition: Messages.h:5536
bool decayQuantity(Int32 &value) const
Definition: Messages.h:691
bool unitOfMeasureQty(Decimal &value) const
Definition: Messages.h:3732
EventsEntry(const void *data, BodySize size, SchemaVersion version)
Definition: Messages.h:8345
StrRef securityGroup() const
Security Group Code.
Definition: Messages.h:1374
static ONIXS_CMEMDH_EXPORTED StrRef fixType()
FIX message type.
Definition: Messages.h:4844
const SettlPriceType & settlPriceType() const
Definition: Messages.h:5506
SecurityTradingEvent::Enum securityTradingEvent() const
Definition: Messages.h:6728
static ONIXS_CMEMDH_EXPORTED const Char * className()
Returns class name.
Definition: Messages.h:4894
static ONIXS_CMEMDH_EXPORTED const Char * className()
Returns class name.
Definition: Messages.h:7054
RelatedSymEntry(const void *data, BodySize size, SchemaVersion version)
Definition: Messages.h:8163
IncrementalRefreshOrderBook47(const void *data, MessageSize size)
Initializes instance over given memory block.
Definition: Messages.h:9705
Int32 securityId() const
Security ID.
Definition: Messages.h:6819
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Size of message body in bytes.
Definition: Messages.h:4376
static ONIXS_CMEMDH_EXPORTED StrRef fixType()
FIX message type.
Definition: Messages.h:5734
bool openInterestQty(Int32 &value) const
Definition: Messages.h:3775
#define ONIXS_CMEMDH_LTWT_EXPORTED
Definition: Bootstrap.h:118
StrRef securityGroup() const
Security Group Code.
Definition: Messages.h:8871
bool entrySize(Int32 &value) const
Market Data entry size.
Definition: Messages.h:7119
bool totNumReports(UInt32 &value) const
Definition: Messages.h:356
Encapsulates operations over SBE-encoded repeating group.
OrderIDEntries orderIdEntries() const
Returns instance of OrderIDEntries repeating group.
Definition: Messages.h:2015
FeedTypesEntry(const void *data, BodySize size, SchemaVersion version)
Definition: Messages.h:5009
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:4418
StrRef securityGroup() const
Security Group Code.
Definition: Messages.h:3500
BinaryGroup< FeedTypesEntry, GroupSize, MessageSize > FeedTypes
Repeating group containing FeedTypesEntry entries.
Definition: Messages.h:1013
LotTypeRulesEntry(const void *data, BodySize size, SchemaVersion version)
Definition: Messages.h:5150
static ONIXS_CMEMDH_EXPORTED StrRef fixType()
FIX message type.
Definition: Messages.h:9281
static ONIXS_CMEMDH_EXPORTED const Char * className()
Entity class name.
Definition: Messages.h:5880
static ONIXS_CMEMDH_EXPORTED const Char * className()
Entity class name.
Definition: Messages.h:1149
IncrementalRefreshBook46(const void *data, MessageSize size)
Initializes instance over given memory block.
Definition: Messages.h:6998
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:7844
static ONIXS_CMEMDH_EXPORTED const Char * className()
Returns class name.
Definition: Messages.h:2241
LotTypeRulesEntry(const void *data, BodySize size, SchemaVersion version)
Definition: Messages.h:8557
MDIncrementalRefreshVolume.
Definition: Messages.h:7656
static ONIXS_CMEMDH_EXPORTED StrRef fixType()
FIX message type.
Definition: Messages.h:2937
InstAttrib instAttrib() const
Returns instance of InstAttrib repeating group.
Definition: Messages.h:5698
FeedTypesEntry(const void *data, BodySize size, SchemaVersion version)
Definition: Messages.h:966
BinaryGroup< FeedTypesEntry, GroupSize, MessageSize > FeedTypes
Repeating group containing FeedTypesEntry entries.
Definition: Messages.h:5056
InstAttribType instAttribType() const
Instrument Eligibility Attributes.
Definition: Messages.h:3128
InstAttribEntry(const void *data, BodySize size, SchemaVersion version)
Definition: Messages.h:3117
Int32 entrySize() const
Consolidated trade quantity.
Definition: Messages.h:3966
StrRef strikeCurrency() const
Currency in which the StrikePrice is denominated.
Definition: Messages.h:8969
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:2464
bool priceDisplayFormat(UInt8 &value) const
Number of decimals in fractional display price.
Definition: Messages.h:585
Entries entries() const
Returns instance of Entries repeating group.
Definition: Messages.h:4719
BinaryGroup< LotTypeRulesEntry, GroupSize, MessageSize > LotTypeRules
Repeating group containing LotTypeRulesEntry entries.
Definition: Messages.h:325
bool entrySize(Int32 &value) const
Market Data entry size.
Definition: Messages.h:6809
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Size of message body in bytes.
Definition: Messages.h:4579
bool tickRule(Int8 &value) const
Tick Rule.
Definition: Messages.h:1533
static ONIXS_CMEMDH_EXPORTED StrRef fixType()
FIX message type.
Definition: Messages.h:4901
EntryTypeBook::Enum entryType() const
Market Data entry type.
Definition: Messages.h:4472
static ONIXS_CMEMDH_EXPORTED const Char * className()
Entity class name.
Definition: Messages.h:4319
BinaryGroupEntry< GroupSize8Byte::BlockLength > Base
Aliases base class type.
Definition: Messages.h:6904
StrRef securityType() const
Security Type.
Definition: Messages.h:3542
bool tradeEntryId(UInt32 &value) const
Market Data Trade entry ID.
Definition: Messages.h:4028
IncrementalRefreshSessionStatistics51(const void *data, MessageSize size)
Initializes instance over given memory block.
Definition: Messages.h:7595
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Definition: Messages.h:997
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Definition: Messages.h:164
BinaryGroup< FeedTypesEntry, GroupSize, MessageSize > FeedTypes
Repeating group containing FeedTypesEntry entries.
Definition: Messages.h:3092
static ONIXS_CMEMDH_EXPORTED const Char * className()
Entity class name.
Definition: Messages.h:5047
static ONIXS_CMEMDH_EXPORTED const Char * className()
Entity class name.
Definition: Messages.h:2772
static ONIXS_CMEMDH_EXPORTED const Char * className()
Returns class name.
Definition: Messages.h:851
RelatedSym relatedSym() const
Returns instance of RelatedSym repeating group.
Definition: Messages.h:8285
bool displayQty(Int32 &value) const
Visible order qty.
Definition: Messages.h:4275
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Size of message body in bytes.
Definition: Messages.h:5720
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Definition: Messages.h:6018
static ONIXS_CMEMDH_EXPORTED StrRef fixType()
FIX message type.
Definition: Messages.h:9759
StrRef underlyingSymbol() const
Underlying Instrument Symbol (Contract Name).
Definition: Messages.h:3288
Entry(const void *data, BodySize size, SchemaVersion version)
Definition: Messages.h:7686
bool totNumReports(UInt32 &value) const
Definition: Messages.h:1295
AdminLogout16()
Initializes blank instance.
Definition: Messages.h:4859
const MatchEventIndicator & matchEventIndicator() const
Definition: Messages.h:1286
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Definition: Messages.h:3221
static ONIXS_CMEMDH_EXPORTED const Char * className()
Entity class name.
Definition: Messages.h:5192
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Size of message body in bytes.
Definition: Messages.h:2025
LotTypeRules lotTypeRules() const
Returns instance of LotTypeRules repeating group.
Definition: Messages.h:1691
static ONIXS_CMEMDH_EXPORTED const Char * className()
Returns class name.
Definition: Messages.h:8301
InstrumentDefinitionOption55(const void *data, MessageSize size)
Initializes instance over given memory block.
Definition: Messages.h:8771
LotTypeRulesEntry(const void *data, BodySize size, SchemaVersion version)
Definition: Messages.h:5983
bool subFraction(UInt8 &value) const
Price Denominator of Sub Fraction.
Definition: Messages.h:6513
bool strikePrice(Decimal &value) const
Strike Price for an option instrument.
Definition: Messages.h:8959
FeedTypesEntry(const void *data, BodySize size, SchemaVersion version)
Definition: Messages.h:3045
static ONIXS_CMEMDH_EXPORTED StrRef fixType()
FIX message type.
Definition: Messages.h:4197
InstrumentDefinitionFuture27()
Initializes blank instance.
Definition: Messages.h:328
InstAttribEntry(const void *data, BodySize size, SchemaVersion version)
Definition: Messages.h:205
InstrumentDefinitionSpread56()
Initializes blank instance.
Definition: Messages.h:6143
BinaryGroup< Entry, GroupSize, MessageSize > Entries
Repeating group containing Entry entries.
Definition: Messages.h:9697
BinaryGroupEntry< GroupSize8Byte::BlockLength > Base
Aliases base class type.
Definition: Messages.h:1882
SecurityIDSource legSecurityIdSource() const
Identifies source of tag 602-LegSecurityID value.
Definition: Messages.h:6078
bool tickRule(Int8 &value) const
VTT code referencing variable tick table.
Definition: Messages.h:3680
static ONIXS_CMEMDH_EXPORTED const Char * className()
Returns class name.
Definition: Messages.h:2032
UInt32 totNumReports() const
Total number of messages replayed in the loop.
Definition: Messages.h:8000
bool highLimitPrice(Decimal &value) const
Allowable high limit price for the trading day.
Definition: Messages.h:3795
Int32 securityId() const
Security ID as defined by CME.
Definition: Messages.h:3974
IncrementalRefreshLimitsBanding50(const void *data, MessageSize size)
Initializes instance over given memory block.
Definition: Messages.h:7404
static ONIXS_CMEMDH_EXPORTED const Char * className()
Entity class name.
Definition: Messages.h:8599
BinaryGroup< OrderIDEntry, GroupSize8Byte, MessageSize > OrderIDEntries
Repeating group containing OrderIDEntry entries.
Definition: Messages.h:9495
Int32 securityId() const
Unique Instrument ID.
Definition: Messages.h:3528
UInt32 maxTradeVol() const
The maximum trading volume for a security.
Definition: Messages.h:3643
UpdateAction::Enum updateAction() const
Market Data update action.
Definition: Messages.h:1832
bool priceLevel(Int8 &value) const
Aggregate book position.
Definition: Messages.h:7894
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Size of message body in bytes.
Definition: Messages.h:8112
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:5072
bool totNumReports(UInt32 &value) const
Definition: Messages.h:6171
bool mainFraction(UInt8 &value) const
Price Denominator of Main Fraction.
Definition: Messages.h:9061
BinaryGroupEntry< GroupSize8Byte::BlockLength > Base
Aliases base class type.
Definition: Messages.h:4072
OrderUpdateAction::Enum orderUpdateAction() const
Definition: Messages.h:1942
IncrementalRefreshLimitsBanding34(const void *data, MessageSize size)
Initializes instance over given memory block.
Definition: Messages.h:2382
bool priceRatio(Decimal &value) const
Used for price calculation in spread and leg pricing.
Definition: Messages.h:1523
bool lowLimitPrice(Decimal &value) const
Lower price threshold for the instrument.
Definition: Messages.h:7328
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Size of message body in bytes.
Definition: Messages.h:4728
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Definition: Messages.h:8670
Entries entries() const
Returns instance of Entries repeating group.
Definition: Messages.h:4165
bool entrySize(Int32 &value) const
Market Data entry size.
Definition: Messages.h:2097
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Definition: Messages.h:1066
static ONIXS_CMEMDH_EXPORTED const Char * className()
Entity class name.
Definition: Messages.h:6131
SecurityIDSource relatedSecurityIdSource() const
Related Security ID source.
Definition: Messages.h:3359
BinaryGroupEntry< GroupSize8Byte::BlockLength > Base
Aliases base class type.
Definition: Messages.h:9441
Timestamp transactTime() const
Definition: Messages.h:4701
IncrementalRefreshBook46()
Initializes blank instance.
Definition: Messages.h:6993
UInt64 orderId() const
Unique Order ID.
Definition: Messages.h:9807
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Size of message body in bytes.
Definition: Messages.h:9948
bool openInterestQty(Int32 &value) const
Definition: Messages.h:9146
CHAR matchAlgorithm() const
Matching algorithm.
Definition: Messages.h:1471
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:4225
bool lowLimitPrice(Decimal &value) const
Allowable low limit price for the trading day.
Definition: Messages.h:1605
OrderUpdateAction::Enum orderUpdateAction() const
Definition: Messages.h:6964
static ONIXS_CMEMDH_EXPORTED const Char * className()
Entity class name.
Definition: Messages.h:3011
static ONIXS_CMEMDH_EXPORTED const Char * className()
Returns class name.
Definition: Messages.h:4735
bool contractMultiplierUnit(Int8 &value) const
Definition: Messages.h:744
InstrumentDefinitionFuture27(const void *data, MessageSize size)
Initializes instance over given memory block.
Definition: Messages.h:333
BinaryGroup< InstAttribEntry, GroupSize, MessageSize > InstAttrib
Repeating group containing InstAttribEntry entries.
Definition: Messages.h:8532
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:7298
BinaryGroup< EventsEntry, GroupSize, MessageSize > Events
Repeating group containing EventsEntry entries.
Definition: Messages.h:941
static ONIXS_CMEMDH_EXPORTED StrRef fixType()
FIX message type.
Definition: Messages.h:858
bool tradeDate(Timestamp &value) const
Trade session date sent as number of days since Unix epoch.
Definition: Messages.h:2854
IncrementalRefreshLimitsBanding50()
Initializes blank instance.
Definition: Messages.h:7399
BinaryGroup< Entry, GroupSize, MessageSize > Entries
Repeating group containing Entry entries.
Definition: Messages.h:7396
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Size of message body in bytes.
Definition: Messages.h:2923
bool numberOfOrders(Int32 &value) const
Aggregate number of orders at the given price level.
Definition: Messages.h:7884
bool entryPx(Decimal &value) const
Market Data entry price.
Definition: Messages.h:2675
bool maxPriceVariation(Decimal &value) const
Differential value for price banding.
Definition: Messages.h:6493
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Definition: Messages.h:2765
EntryTypeLimits entryType() const
Market Data entry type.
Definition: Messages.h:7372
bool lowLimitPrice(Decimal &value) const
Allowable low limit price for the trading day.
Definition: Messages.h:9156
MDInstrumentDefinitionFuture.
Definition: Messages.h:4908
bool minCabPrice(Decimal &value) const
Defines cabinet price for outright options products.
Definition: Messages.h:8988
UnderlyingsEntry(const void *data, BodySize size, SchemaVersion version)
Definition: Messages.h:8633
Entry()
Initializes blank instance.
Definition: Messages.h:1760
BinaryGroup< Entry, GroupSize, MessageSize > Entries
Repeating group containing Entry entries.
Definition: Messages.h:9867
bool unitOfMeasureQty(Decimal &value) const
Definition: Messages.h:5483
EntryType::Enum entryType() const
Market Data entry type.
Definition: Messages.h:7944
Int32 displayQty() const
Visible order qty.
Definition: Messages.h:4464
Int8 Int8
int8.
Definition: Fields.h:67
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:3108
SecurityIDSource legSecurityIdSource() const
Identifies source of tag 602-LegSecurityID value.
Definition: Messages.h:1202
BinaryGroup< LotTypeRulesEntry, GroupSize, MessageSize > LotTypeRules
Repeating group containing LotTypeRulesEntry entries.
Definition: Messages.h:3237
InstAttribType instAttribType() const
Instrument eligibility attributes.
Definition: Messages.h:216
BinaryGroup< Entry, GroupSize, MessageSize > Entries
Repeating group containing Entry entries.
Definition: Messages.h:7208
MDIncrementalRefreshLimitsBanding.
Definition: Messages.h:2255
bool tradingReferenceDate(Timestamp &value) const
Definition: Messages.h:2716
Entries entries() const
Returns instance of Entries repeating group.
Definition: Messages.h:9939
Events events() const
Returns instance of Events repeating group.
Definition: Messages.h:1664
StrRef symbol() const
Instrument Name or Symbol.
Definition: Messages.h:5328
bool tradingReferenceDate(Timestamp &value) const
Definition: Messages.h:9185
EntryTypeBook::Enum entryType() const
Market Data entry type.
Definition: Messages.h:9671
SecurityIDSource securityIdSource() const
Identifies class or source of tag 48-SecurityID value.
Definition: Messages.h:5345
Int16 applId() const
The channel ID as defined in the XML Configuration file.
Definition: Messages.h:400
MDInstrumentDefinitionOption.
Definition: Messages.h:8315
InstrumentDefinitionOption55()
Initializes blank instance.
Definition: Messages.h:8766
EntryTypeDailyStatistics::Enum entryType() const
Market Data entry type.
Definition: Messages.h:2160
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:8479
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:3253
bool orderPriority(UInt64 &value) const
Order priority for execution on the order book.
Definition: Messages.h:9624
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Size of message body in bytes.
Definition: Messages.h:844
StrRef securityGroup() const
Security Group.
Definition: Messages.h:6648
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Definition: Messages.h:1142
bool entryPx(Decimal &value) const
Market Data entry price.
Definition: Messages.h:6799
SecurityUpdateAction::Enum securityUpdateAction() const
Definition: Messages.h:6184
IncrementalRefreshOrderBook43(const void *data, MessageSize size)
Initializes instance over given memory block.
Definition: Messages.h:4336
StrRef cfiCode() const
ISO standard instrument categorization code.
Definition: Messages.h:5360
UInt32 maxTradeVol() const
The maximum trading volume for a security.
Definition: Messages.h:5415
Entry(const void *data, BodySize size, SchemaVersion version)
Definition: Messages.h:4427
static ONIXS_CMEMDH_EXPORTED StrRef fixType()
FIX message type.
Definition: Messages.h:6751
Timestamp transactTime() const
Definition: Messages.h:6640
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Definition: Messages.h:8375
bool originalContractSize(Int32 &value) const
Fixed contract value assigned to each product.
Definition: Messages.h:720
bool openInterestQty(Int32 &value) const
Definition: Messages.h:1574
static ONIXS_CMEMDH_EXPORTED const Char * className()
Entity class name.
Definition: Messages.h:4975
MDIncrementalRefreshTradeSummary.
Definition: Messages.h:3917
static ONIXS_CMEMDH_EXPORTED const Char * className()
Entity class name.
Definition: Messages.h:1857
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Definition: Messages.h:8221
Int32 securityId() const
Security ID.
Definition: Messages.h:8183
Entries entries() const
Returns instance of Entries repeating group.
Definition: Messages.h:4367
BinaryGroup< EventsEntry, GroupSize, MessageSize > Events
Repeating group containing EventsEntry entries.
Definition: Messages.h:5817
bool highLimitPrice(Decimal &value) const
Allowable high limit price for the trading day.
Definition: Messages.h:9166
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:8548
EntryTypeTrade entryType() const
Market Data entry type.
Definition: Messages.h:9391
Entries entries() const
Returns instance of Entries repeating group.
Definition: Messages.h:2914
bool totNumReports(UInt32 &value) const
Definition: Messages.h:3423
const MatchEventIndicator & matchEventIndicator() const
Definition: Messages.h:4359
UInt32 maxTradeVol() const
The maximum trading volume for a security.
Definition: Messages.h:9014
EventsEntry(const void *data, BodySize size, SchemaVersion version)
Definition: Messages.h:2974
StrRef unitOfMeasure() const
Unit of measure for the products&#39; original contract size.
Definition: Messages.h:6421
Int32 lastQty() const
Quantity bought or sold on this last fill.
Definition: Messages.h:4100
FeedTypesEntry(const void *data, BodySize size, SchemaVersion version)
Definition: Messages.h:5842
static ONIXS_CMEMDH_EXPORTED const Char * className()
Returns class name.
Definition: Messages.h:4190
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Size of message body in bytes.
Definition: Messages.h:6737
const MatchEventIndicator & matchEventIndicator() const
Definition: Messages.h:5223
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Definition: Messages.h:3145
BinaryGroupEntry< GroupSize::BlockLength > Base
Aliases base class type.
Definition: Messages.h:1757
bool securityTradingStatus(SecurityTradingStatus::Enum &value) const
Definition: Messages.h:6707
SnapshotFullRefresh38()
Initializes blank instance.
Definition: Messages.h:2784
Entries entries() const
Returns instance of Entries repeating group.
Definition: Messages.h:2007
bool entrySize(Int32 &value) const
Market Data entry quantity.
Definition: Messages.h:2685
bool securityTradingStatus(SecurityTradingStatus::Enum &value) const
Definition: Messages.h:6203
bool minPriceIncrementAmount(Decimal &value) const
Monetary value equivalent to the minimum price fluctuation.
Definition: Messages.h:3661
Int32 lastQty() const
Quantity bought or sold on this last fill.
Definition: Messages.h:9469
IntegralConstant< Int8, 0 > UpdateTypeNew
MDUpdateTypeNew.
Definition: Fields.h:115
static ONIXS_CMEMDH_EXPORTED const Char * className()
Entity class name.
Definition: Messages.h:1073
SnapshotFullRefreshOrderBook44()
Initializes blank instance.
Definition: Messages.h:4501
static ONIXS_CMEMDH_EXPORTED const Char * className()
Returns class name.
Definition: Messages.h:8119
InstrumentDefinitionSpread56(const void *data, MessageSize size)
Initializes instance over given memory block.
Definition: Messages.h:6148
InstrumentDefinitionFuture54()
Initializes blank instance.
Definition: Messages.h:5204
bool priceDisplayFormat(UInt8 &value) const
Number of decimals in fractional display price.
Definition: Messages.h:1513
UInt32 minTradeVol() const
The minimum trading volume for a security.
Definition: Messages.h:531
SecurityUpdateAction::Enum securityUpdateAction() const
Definition: Messages.h:3436
bool highLimitPrice(Decimal &value) const
Upper price threshold for the instrument.
Definition: Messages.h:8073
bool lowLimitPrice(Decimal &value) const
Lower price threshold for the instrument.
Definition: Messages.h:2894
IncrementalRefreshTradeSummary42()
Initializes blank instance.
Definition: Messages.h:4129
IncrementalRefreshTradeSummary42(const void *data, MessageSize size)
Initializes instance over given memory block.
Definition: Messages.h:4134
MDInstrumentDefinitionOption.
Definition: Messages.h:2944
static ONIXS_CMEMDH_EXPORTED const Char * className()
Entity class name.
Definition: Messages.h:316
InstAttribEntry(const void *data, BodySize size, SchemaVersion version)
Definition: Messages.h:5914
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Size of message body in bytes.
Definition: Messages.h:2422
BinaryGroup< Entry, GroupSize, MessageSize > Entries
Repeating group containing Entry entries.
Definition: Messages.h:2565
Events events() const
Returns instance of Events repeating group.
Definition: Messages.h:3832
StrRef securityGroup() const
Security Group Code.
Definition: Messages.h:434
BinaryGroup< InstAttribEntry, GroupSize, MessageSize > InstAttrib
Repeating group containing InstAttribEntry entries.
Definition: Messages.h:3161
UpdateAction::Enum updateAction() const
Market Data update action.
Definition: Messages.h:9383
static ONIXS_CMEMDH_EXPORTED BodySize bodySize(SchemaVersion)
Definition: Messages.h:4040
OrderIDEntries orderIdEntries() const
Returns instance of OrderIDEntries repeating group.
Definition: Messages.h:9542
SecurityUpdateAction::Enum securityUpdateAction() const
Definition: Messages.h:1308
Entry(const void *data, BodySize size, SchemaVersion version)
Definition: Messages.h:7495
OrderIDEntry(const void *data, BodySize size, SchemaVersion version)
Definition: Messages.h:4081
bool lowLimitPrice(Decimal &value) const
Allowable low limit price for the trading day.
Definition: Messages.h:3785
UInt32 rptSeq() const
Market Data entry sequence number per instrument update.
Definition: Messages.h:1805
UInt32 rptSeq() const
Market Data entry sequence number per instrument update.
Definition: Messages.h:7137
Int32 entrySize() const
Cumulative traded volume.
Definition: Messages.h:7697
IncrementalRefreshLimitsBanding34()
Initializes blank instance.
Definition: Messages.h:2377
OrderIDEntry(const void *data, BodySize size, SchemaVersion version)
Definition: Messages.h:9450
Integral constant.
Definition: Integral.h:88
BinaryGroup< LotTypeRulesEntry, GroupSize, MessageSize > LotTypeRules
Repeating group containing LotTypeRulesEntry entries.
Definition: Messages.h:6034
Int32 securityId() const
Security ID.
Definition: Messages.h:9905
bool entryPx(Decimal &value) const
Market Data entry price.
Definition: Messages.h:7109
BinaryGroup< Entry, GroupSize, MessageSize > Entries
Repeating group containing Entry entries.
Definition: Messages.h:2374
EntryTypeDailyStatistics::Enum entryType() const
Market Data entry type.
Definition: Messages.h:7182
bool displayQty(Int32 &value) const
Visible order qty.
Definition: Messages.h:9644
FeedTypes feedTypes() const
Returns instance of FeedTypes repeating group.
Definition: Messages.h:1672
const MatchEventIndicator & matchEventIndicator() const
Definition: Messages.h:6162
UInt32 maxTradeVol() const
The maximum trading volume for a security.
Definition: Messages.h:539
Entry(const void *data, BodySize size, SchemaVersion version)
Definition: Messages.h:1766
bool entrySize(Int32 &value) const
Indicative Opening Quantity.
Definition: Messages.h:2537
Entries entries() const
Returns instance of Entries repeating group.
Definition: Messages.h:2413
Entries entries() const
Returns instance of Entries repeating group.
Definition: Messages.h:7247
Legs legs() const
Returns instance of Legs repeating group.
Definition: Messages.h:1702
IncrementalRefreshDailyStatistics49()
Initializes blank instance.
Definition: Messages.h:7211
IncrementalRefreshTradeSummary48(const void *data, MessageSize size)
Initializes instance over given memory block.
Definition: Messages.h:9503
MDIncrementalRefreshLimitsBanding.
Definition: Messages.h:7277
UInt32 currentChunk() const
Chunk sequence.
Definition: Messages.h:9922
Entry(const void *data, BodySize size, SchemaVersion version)
Definition: Messages.h:4234
BinaryGroup< OrderIDEntry, GroupSize8Byte, MessageSize > OrderIDEntries
Repeating group containing OrderIDEntry entries.
Definition: Messages.h:4126
bool unitOfMeasureQty(Decimal &value) const
Definition: Messages.h:9103
Timestamp transactTime() const
Definition: Messages.h:8258
EventType::Enum eventType() const
Code to represent the type of event.
Definition: Messages.h:906
Int32 securityId() const
Security ID.
Definition: Messages.h:8008
#define ONIXS_CMEMDH_NAMESPACE_END
Definition: Bootstrap.h:172
static ONIXS_CMEMDH_EXPORTED StrRef fixType()
FIX message type.
Definition: Messages.h:1729