OnixS C++ B3 Binary UMDF Market Data Handler  1.4.2
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 
30 
32 
33 /// Used to reset the incremental stream or indicate the loop on instrument definition or snapshot recovery is restarting.
36 : SbeMessage
37 {
38  /// Used template schema.
40 
41  /// Message template ID from SBE schema.
42  enum { TemplateId = 1 };
43 
44  /// Initializes a blank instance.
46 
47  /// Creates an instance over the given memory block.
49  void* data,
50  EncodedLength length,
51  NoInit)
52  : SbeMessage(data, length)
53  {
54  checkCompatibility();
55  }
56 
57  /// Creates an instance over the given SBE message.
58  explicit
60  const SbeMessage& message)
61  : SbeMessage(message)
62  {
63  assert(message.valid());
64 
65  checkCompatibility();
66  }
67 
68  /// Creates an instance over the given memory block.
69  /// Performs no checks.
71  void* data,
72  EncodedLength length,
73  NoInit,
74  NoCheck)
76  : SbeMessage(data, length, NoCheck())
77  {
78  assert(schemaId() == Schema::Id);
79  assert(version() >= Schema::MinimalVersion);
80  assert(TemplateId == templateId());
81  }
82 
83  /// FIX Message Type.
88  {
89  return MessageType::SequenceReset;
90  }
91 
92  /// Specifies the service pack release being applied at
93  /// message level.
98  {
99  return ApplVerID::FIX50SP2;
100  }
101 
102  /// New sequence number. Always one.
105  static SeqNum1 newSeqNo()
107  {
108  return SeqNum1();
109  }
110 
111  /// Minimal size of message body in bytes.
114  static
117  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
119  {
120  return
121  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
122  0;
123  }
124 
125  /// Size of message body in bytes.
130  {
131  return
132  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
133  minimalBlockLength(version);
134  }
135 
136  /// Minimal variable fields size (when variable-length fields are empty).
138  ONIXS_B3_UMDF_MD_NODISCARD
140  static
143  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
144  {
145  return
146  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
147  0;
148  }
149 
150  /// \return class name.
152  ONIXS_B3_UMDF_MD_NODISCARD
154  static const Char* className()
155  {
156  return "SequenceReset_1";
157  }
158 
159  /// FIX message type.
161  ONIXS_B3_UMDF_MD_NODISCARD
163  static StrRef fixType()
165  {
166  return constructStrRef("4");
167  }
168 
169  /// \return a human-readable presentation.
170  ONIXS_B3_UMDF_MD_NODISCARD
171  std::string toString() const;
172 
173 private:
174  void checkLength(
175  EncodedLength length, SchemaVersion version) const
176  {
177  const EncodedLength minimalRequiredLength =
178  minimalBlockLength(version) +
179  MessageHeader::Size +
180  getMinimalVariableFieldsSize(version);
181 
182  checkBinaryLength(
183  *this, length, minimalRequiredLength);
184  }
185 
186  void checkCompatibility() const
187  {
188  assert(TemplateId == templateId());
189 
190  checkSchema<Schema>(schemaId(), version());
191  checkLength(bufferSize(), version());
192  }
193 };
194 
195 /// Sent in incremental, snapshot and instrument list feeds in periods of no activity..
198 : SbeMessage
199 {
200  /// Used template schema.
202 
203  /// Message template ID from SBE schema.
204  enum { TemplateId = 2 };
205 
206  /// Initializes a blank instance.
208 
209  /// Creates an instance over the given memory block.
211  void* data,
212  EncodedLength length,
213  NoInit)
214  : SbeMessage(data, length)
215  {
216  checkCompatibility();
217  }
218 
219  /// Creates an instance over the given SBE message.
220  explicit
222  const SbeMessage& message)
223  : SbeMessage(message)
224  {
225  assert(message.valid());
226 
227  checkCompatibility();
228  }
229 
230  /// Creates an instance over the given memory block.
231  /// Performs no checks.
233  void* data,
234  EncodedLength length,
235  NoInit,
236  NoCheck)
238  : SbeMessage(data, length, NoCheck())
239  {
240  assert(schemaId() == Schema::Id);
241  assert(version() >= Schema::MinimalVersion);
242  assert(TemplateId == templateId());
243  }
244 
245  /// FIX Message Type.
250  {
251  return MessageType::Sequence;
252  }
253 
254  /// Specifies the service pack release being applied at
255  /// message level.
260  {
261  return ApplVerID::FIX50SP2;
262  }
263 
264  /// The next application sequence number in the feed. Always 1
265  /// (one) for snapshot replay and instrument replay feeds.
266  ONIXS_B3_UMDF_MD_NODISCARD
269  {
271 
272  return ordinary<SeqNum>(offset);
273  }
274 
275  /// Minimal size of message body in bytes.
278  static
281  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
283  {
284  return
285  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
286  4;
287  }
288 
289  /// Size of message body in bytes.
294  {
295  return
296  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
297  minimalBlockLength(version);
298  }
299 
300  /// Minimal variable fields size (when variable-length fields are empty).
302  ONIXS_B3_UMDF_MD_NODISCARD
304  static
307  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
308  {
309  return
310  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
311  0;
312  }
313 
314  /// \return class name.
316  ONIXS_B3_UMDF_MD_NODISCARD
318  static const Char* className()
319  {
320  return "Sequence_2";
321  }
322 
323  /// FIX message type.
325  ONIXS_B3_UMDF_MD_NODISCARD
327  static StrRef fixType()
329  {
330  return constructStrRef("0");
331  }
332 
333  /// \return a human-readable presentation.
334  ONIXS_B3_UMDF_MD_NODISCARD
335  std::string toString() const;
336 
337 private:
338  void checkLength(
339  EncodedLength length, SchemaVersion version) const
340  {
341  const EncodedLength minimalRequiredLength =
342  minimalBlockLength(version) +
343  MessageHeader::Size +
344  getMinimalVariableFieldsSize(version);
345 
346  checkBinaryLength(
347  *this, length, minimalRequiredLength);
348  }
349 
350  void checkCompatibility() const
351  {
352  assert(TemplateId == templateId());
353 
354  checkSchema<Schema>(schemaId(), version());
355  checkLength(bufferSize(), version());
356  }
357 };
358 
359 /// Market Data Incremental Refresh - Empty Book.
362 : SbeMessage
363 {
364  /// Used template schema.
366 
367  /// Message template ID from SBE schema.
368  enum { TemplateId = 9 };
369 
370  /// Initializes a blank instance.
372 
373  /// Creates an instance over the given memory block.
375  void* data,
376  EncodedLength length,
377  NoInit)
378  : SbeMessage(data, length)
379  {
380  checkCompatibility();
381  }
382 
383  /// Creates an instance over the given SBE message.
384  explicit
386  const SbeMessage& message)
387  : SbeMessage(message)
388  {
389  assert(message.valid());
390 
391  checkCompatibility();
392  }
393 
394  /// Creates an instance over the given memory block.
395  /// Performs no checks.
397  void* data,
398  EncodedLength length,
399  NoInit,
400  NoCheck)
402  : SbeMessage(data, length, NoCheck())
403  {
404  assert(schemaId() == Schema::Id);
405  assert(version() >= Schema::MinimalVersion);
406  assert(TemplateId == templateId());
407  }
408 
409  /// FIX Message Type.
414  {
415  return MessageType::MarketDataIncrementalRefresh;
416  }
417 
418  /// Specifies the service pack release being applied at
419  /// message level.
424  {
425  return ApplVerID::FIX50SP2;
426  }
427 
428  /// Update Action (NEW) - always replace.
433  {
434  return UpdateAction::NEW;
435  }
436 
437  /// Type of the Market Data Entry.
442  {
443  return EntryType::EMPTY_BOOK;
444  }
445 
446  /// Security ID as defined by B3. For the SecurityID list, see
447  /// the Security Definition message in Market Data feed.
448  ONIXS_B3_UMDF_MD_NODISCARD
451  {
453 
454  return ordinary<SecurityID>(offset);
455  }
456 
457  /// Identifies the class of the SecurityID (Exchange Symbol).
462  {
463  return SecurityIDSource::EXCHANGE_SYMBOL;
464  }
465 
466  /// Market to which the symbol belongs.
468  ONIXS_B3_UMDF_MD_NODISCARD
472  {
473  return constructStrRef("BVMF");
474  }
475 
476  /// Identifies the end of the current event and if it is a
477  /// retransmission.
478  ONIXS_B3_UMDF_MD_NODISCARD
481  {
483 
484  return ordinary<MatchEventIndicator>(offset);
485  }
486 
487  /// Date and time of market data entry.
488  ONIXS_B3_UMDF_MD_NODISCARD
491  {
493 
494  return ordinary(value, offset, NullUTCTimestampNanos());
495  }
496 
497  /// Minimal size of message body in bytes.
500  static
503  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
505  {
506  return
507  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
508  20;
509  }
510 
511  /// Size of message body in bytes.
514  static
517  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
519  {
520  return
521  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
522  minimalBlockLength(version);
523  }
524 
525  /// Minimal variable fields size (when variable-length fields are empty).
527  ONIXS_B3_UMDF_MD_NODISCARD
529  static
532  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
533  {
534  return
535  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
536  0;
537  }
538 
539  /// \return class name.
541  ONIXS_B3_UMDF_MD_NODISCARD
543  static const Char* className()
544  {
545  return "EmptyBook_9";
546  }
547 
548  /// FIX message type.
550  ONIXS_B3_UMDF_MD_NODISCARD
552  static StrRef fixType()
554  {
555  return constructStrRef("EmptyBook_9");
556  }
557 
558  /// \return a human-readable presentation.
559  ONIXS_B3_UMDF_MD_NODISCARD
560  std::string toString() const;
561 
562 private:
563  void checkLength(
564  EncodedLength length, SchemaVersion version) const
565  {
566  const EncodedLength minimalRequiredLength =
567  minimalBlockLength(version) +
568  MessageHeader::Size +
569  getMinimalVariableFieldsSize(version);
570 
571  checkBinaryLength(
572  *this, length, minimalRequiredLength);
573  }
574 
575  void checkCompatibility() const
576  {
577  assert(TemplateId == templateId());
578 
579  checkSchema<Schema>(schemaId(), version());
580  checkLength(bufferSize(), version());
581  }
582 };
583 
584 /// Channel Reset (remove all instruments, empty all books and statistics).
587 : SbeMessage
588 {
589  /// Used template schema.
591 
592  /// Message template ID from SBE schema.
593  enum { TemplateId = 11 };
594 
595  /// Initializes a blank instance.
597 
598  /// Creates an instance over the given memory block.
600  void* data,
601  EncodedLength length,
602  NoInit)
603  : SbeMessage(data, length)
604  {
605  checkCompatibility();
606  }
607 
608  /// Creates an instance over the given SBE message.
609  explicit
611  const SbeMessage& message)
612  : SbeMessage(message)
613  {
614  assert(message.valid());
615 
616  checkCompatibility();
617  }
618 
619  /// Creates an instance over the given memory block.
620  /// Performs no checks.
622  void* data,
623  EncodedLength length,
624  NoInit,
625  NoCheck)
627  : SbeMessage(data, length, NoCheck())
628  {
629  assert(schemaId() == Schema::Id);
630  assert(version() >= Schema::MinimalVersion);
631  assert(TemplateId == templateId());
632  }
633 
634  /// FIX Message Type.
639  {
640  return MessageType::MarketDataIncrementalRefresh;
641  }
642 
643  /// Specifies the service pack release being applied at
644  /// message level.
649  {
650  return ApplVerID::FIX50SP2;
651  }
652 
653  /// Update Action (NEW) - always replace.
658  {
659  return UpdateAction::NEW;
660  }
661 
662  /// Type of the Market Data Entry.
667  {
668  return EntryType::EMPTY_BOOK;
669  }
670 
671  /// Identifies the end of the current event and if it is a
672  /// retransmission.
673  ONIXS_B3_UMDF_MD_NODISCARD
676  {
678 
679  return ordinary<MatchEventIndicator>(offset);
680  }
681 
682  /// Date and time of market data entry.
683  ONIXS_B3_UMDF_MD_NODISCARD
686  {
688 
689  return ordinary(value, offset, NullUTCTimestampNanos());
690  }
691 
692  /// Minimal size of message body in bytes.
695  static
698  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
700  {
701  return
702  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
703  12;
704  }
705 
706  /// Size of message body in bytes.
709  static
712  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
714  {
715  return
716  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
717  minimalBlockLength(version);
718  }
719 
720  /// Minimal variable fields size (when variable-length fields are empty).
722  ONIXS_B3_UMDF_MD_NODISCARD
724  static
727  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
728  {
729  return
730  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
731  0;
732  }
733 
734  /// \return class name.
736  ONIXS_B3_UMDF_MD_NODISCARD
738  static const Char* className()
739  {
740  return "ChannelReset_11";
741  }
742 
743  /// FIX message type.
745  ONIXS_B3_UMDF_MD_NODISCARD
747  static StrRef fixType()
749  {
750  return constructStrRef("ChannelReset_11");
751  }
752 
753  /// \return a human-readable presentation.
754  ONIXS_B3_UMDF_MD_NODISCARD
755  std::string toString() const;
756 
757 private:
758  void checkLength(
759  EncodedLength length, SchemaVersion version) const
760  {
761  const EncodedLength minimalRequiredLength =
762  minimalBlockLength(version) +
763  MessageHeader::Size +
764  getMinimalVariableFieldsSize(version);
765 
766  checkBinaryLength(
767  *this, length, minimalRequiredLength);
768  }
769 
770  void checkCompatibility() const
771  {
772  assert(TemplateId == templateId());
773 
774  checkSchema<Schema>(schemaId(), version());
775  checkLength(bufferSize(), version());
776  }
777 };
778 
779 /// Trading status for instruments.
782 : SbeMessage
783 {
784  /// Used template schema.
786 
787  /// Message template ID from SBE schema.
788  enum { TemplateId = 3 };
789 
790  /// Initializes a blank instance.
792 
793  /// Creates an instance over the given memory block.
795  void* data,
796  EncodedLength length,
797  NoInit)
798  : SbeMessage(data, length)
799  {
800  checkCompatibility();
801  }
802 
803  /// Creates an instance over the given SBE message.
804  explicit
806  const SbeMessage& message)
807  : SbeMessage(message)
808  {
809  assert(message.valid());
810 
811  checkCompatibility();
812  }
813 
814  /// Creates an instance over the given memory block.
815  /// Performs no checks.
817  void* data,
818  EncodedLength length,
819  NoInit,
820  NoCheck)
822  : SbeMessage(data, length, NoCheck())
823  {
824  assert(schemaId() == Schema::Id);
825  assert(version() >= Schema::MinimalVersion);
826  assert(TemplateId == templateId());
827  }
828 
829  /// FIX Message Type.
834  {
835  return MessageType::SecurityStatus;
836  }
837 
838  /// Specifies the service pack release being applied at
839  /// message level.
844  {
845  return ApplVerID::FIX50SP2;
846  }
847 
848  /// Security ID as defined by B3. For the SecurityID list, see
849  /// the Security Definition message in Market Data feed.
850  ONIXS_B3_UMDF_MD_NODISCARD
853  {
855 
856  return ordinary<SecurityID>(offset);
857  }
858 
859  /// Identifies the class of the SecurityID (Exchange Symbol).
864  {
865  return SecurityIDSource::EXCHANGE_SYMBOL;
866  }
867 
868  /// Market to which the symbol belongs.
870  ONIXS_B3_UMDF_MD_NODISCARD
874  {
875  return constructStrRef("BVMF");
876  }
877 
878  /// Identifies the end of the current event and if it is a
879  /// retransmission.
880  ONIXS_B3_UMDF_MD_NODISCARD
883  {
885 
886  return ordinary<MatchEventIndicator>(offset);
887  }
888 
889  /// Identifier for trading session.
890  ONIXS_B3_UMDF_MD_NODISCARD
893  {
895 
896  return enumeration<TradingSessionID>(offset);
897  }
898 
899  /// Status related to a given instrument.
900  ONIXS_B3_UMDF_MD_NODISCARD
904  {
906 
907  return enumeration<SecurityTradingStatus>(offset);
908  }
909 
910  /// Identifies an event related to a Trading. This tag is also
911  /// used to mark when an instrument state is kept separate
912  /// from the group phase, or when the instrument state follows
913  /// the default group phase (stops having a separate, defined
914  /// state). Always sent when tag 48 is present.
915  ONIXS_B3_UMDF_MD_NODISCARD
916  bool
918  SecurityTradingEvent::Enum& value) const
920  {
922 
923  return enumeration<SecurityTradingEvent>(value, offset, NullUInt8());
924  }
925 
926  /// Used to specify the trading date for which a set of market
927  /// data applies.
928  ONIXS_B3_UMDF_MD_NODISCARD
931  {
933 
934  return localMktDateToTimestamp(ordinary<LocalMktDate>(offset));
935  }
936 
937  /// Estimated end of the current auction. Only present when
938  /// SecurityTradingStatus=21 (Pre-open/Reserved).
939  ONIXS_B3_UMDF_MD_NODISCARD
942  {
944 
945  return ordinary(value, offset, NullUTCTimestampNanos());
946  }
947 
948  /// Timestamp when status of the security changed.
949  ONIXS_B3_UMDF_MD_NODISCARD
950  bool transactTime(UTCTimestampNanos& value) const
952  {
954 
955  return ordinary(value, offset, NullUTCTimestampNanos());
956  }
957 
958  /// Sequence number per instrument update. (Zeroed in snapshot
959  /// feed).
960  ONIXS_B3_UMDF_MD_NODISCARD
961  bool rptSeq(RptSeq& value) const
963  {
965 
966  return ordinary(value, offset, NullRptSeq());
967  }
968 
969  /// Minimal size of message body in bytes.
972  static
975  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
977  {
978  return
979  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
980  36;
981  }
982 
983  /// Size of message body in bytes.
986  static
989  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
991  {
992  return
993  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
994  minimalBlockLength(version);
995  }
996 
997  /// Minimal variable fields size (when variable-length fields are empty).
999  ONIXS_B3_UMDF_MD_NODISCARD
1001  static
1002  MessageSize
1004  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
1005  {
1006  return
1007  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
1008  0;
1009  }
1010 
1011  /// \return class name.
1013  ONIXS_B3_UMDF_MD_NODISCARD
1015  static const Char* className()
1016  {
1017  return "SecurityStatus_3";
1018  }
1019 
1020  /// FIX message type.
1022  ONIXS_B3_UMDF_MD_NODISCARD
1024  static StrRef fixType()
1026  {
1027  return constructStrRef("SecurityStatus_3");
1028  }
1029 
1030  /// \return a human-readable presentation.
1031  ONIXS_B3_UMDF_MD_NODISCARD
1032  std::string toString() const;
1033 
1034 private:
1035  void checkLength(
1036  EncodedLength length, SchemaVersion version) const
1037  {
1038  const EncodedLength minimalRequiredLength =
1039  minimalBlockLength(version) +
1040  MessageHeader::Size +
1041  getMinimalVariableFieldsSize(version);
1042 
1043  checkBinaryLength(
1044  *this, length, minimalRequiredLength);
1045  }
1046 
1047  void checkCompatibility() const
1048  {
1049  assert(TemplateId == templateId());
1050 
1051  checkSchema<Schema>(schemaId(), version());
1052  checkLength(bufferSize(), version());
1053  }
1054 };
1055 
1056 /// Trading status for security groups.
1059 : SbeMessage
1060 {
1061  /// Used template schema.
1063 
1064  /// Message template ID from SBE schema.
1065  enum { TemplateId = 10 };
1066 
1067  /// Initializes a blank instance.
1069 
1070  /// Creates an instance over the given memory block.
1072  void* data,
1073  EncodedLength length,
1074  NoInit)
1075  : SbeMessage(data, length)
1076  {
1077  checkCompatibility();
1078  }
1079 
1080  /// Creates an instance over the given SBE message.
1081  explicit
1083  const SbeMessage& message)
1084  : SbeMessage(message)
1085  {
1086  assert(message.valid());
1087 
1088  checkCompatibility();
1089  }
1090 
1091  /// Creates an instance over the given memory block.
1092  /// Performs no checks.
1094  void* data,
1095  EncodedLength length,
1096  NoInit,
1097  NoCheck)
1099  : SbeMessage(data, length, NoCheck())
1100  {
1101  assert(schemaId() == Schema::Id);
1102  assert(version() >= Schema::MinimalVersion);
1103  assert(TemplateId == templateId());
1104  }
1105 
1106  /// FIX Message Type.
1111  {
1112  return MessageType::SecurityStatus;
1113  }
1114 
1115  /// Specifies the service pack release being applied at
1116  /// message level.
1121  {
1122  return ApplVerID::FIX50SP2;
1123  }
1124 
1125  /// Security Group.
1126  ONIXS_B3_UMDF_MD_NODISCARD
1129  {
1132 
1133  return fixedStr<length>(offset);
1134  }
1135 
1136  /// Identifies the end of the current event and if it is a
1137  /// retransmission.
1138  ONIXS_B3_UMDF_MD_NODISCARD
1141  {
1143 
1144  return ordinary<MatchEventIndicator>(offset);
1145  }
1146 
1147  /// Identifier for trading session.
1148  ONIXS_B3_UMDF_MD_NODISCARD
1151  {
1153 
1154  return enumeration<TradingSessionID>(offset);
1155  }
1156 
1157  /// Phase related to a given SecurityGroup.
1158  ONIXS_B3_UMDF_MD_NODISCARD
1162  {
1164 
1165  return enumeration<TradingSessionSubID>(offset);
1166  }
1167 
1168  /// Indicates if the trading session changed in order to reset
1169  /// some statistics for this group.
1170  ONIXS_B3_UMDF_MD_NODISCARD
1171  bool
1173  SecurityTradingEvent::Enum& value) const
1175  {
1177 
1178  return enumeration<SecurityTradingEvent>(value, offset, NullUInt8());
1179  }
1180 
1181  /// Used to specify the trading date for which a set of market
1182  /// data applies.
1183  ONIXS_B3_UMDF_MD_NODISCARD
1186  {
1188 
1189  return localMktDateToTimestamp(ordinary<LocalMktDate>(offset));
1190  }
1191 
1192  /// Estimated end of the current auction. Only present when
1193  /// TradingSessionSubID=21 (Pre-open/Reserved).
1194  ONIXS_B3_UMDF_MD_NODISCARD
1197  {
1199 
1200  return ordinary(value, offset, NullUTCTimestampNanos());
1201  }
1202 
1203  /// Timestamp when phase of the security group changed.
1204  ONIXS_B3_UMDF_MD_NODISCARD
1205  bool transactTime(UTCTimestampNanos& value) const
1207  {
1209 
1210  return ordinary(value, offset, NullUTCTimestampNanos());
1211  }
1212 
1213  /// Minimal size of message body in bytes.
1216  static
1217  BlockLength
1219  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
1221  {
1222  return
1223  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
1224  32;
1225  }
1226 
1227  /// Size of message body in bytes.
1230  static
1231  BlockLength
1233  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
1235  {
1236  return
1237  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
1238  minimalBlockLength(version);
1239  }
1240 
1241  /// Minimal variable fields size (when variable-length fields are empty).
1243  ONIXS_B3_UMDF_MD_NODISCARD
1245  static
1246  MessageSize
1248  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
1249  {
1250  return
1251  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
1252  0;
1253  }
1254 
1255  /// \return class name.
1257  ONIXS_B3_UMDF_MD_NODISCARD
1259  static const Char* className()
1260  {
1261  return "SecurityGroupPhase_10";
1262  }
1263 
1264  /// FIX message type.
1266  ONIXS_B3_UMDF_MD_NODISCARD
1268  static StrRef fixType()
1270  {
1271  return constructStrRef("SecurityGroupPhase_10");
1272  }
1273 
1274  /// \return a human-readable presentation.
1275  ONIXS_B3_UMDF_MD_NODISCARD
1276  std::string toString() const;
1277 
1278 private:
1279  void checkLength(
1280  EncodedLength length, SchemaVersion version) const
1281  {
1282  const EncodedLength minimalRequiredLength =
1283  minimalBlockLength(version) +
1284  MessageHeader::Size +
1285  getMinimalVariableFieldsSize(version);
1286 
1287  checkBinaryLength(
1288  *this, length, minimalRequiredLength);
1289  }
1290 
1291  void checkCompatibility() const
1292  {
1293  assert(TemplateId == templateId());
1294 
1295  checkSchema<Schema>(schemaId(), version());
1296  checkLength(bufferSize(), version());
1297  }
1298 };
1299 
1300 /// Security Definition..
1303 : SbeMessage
1304 {
1305  /// Used template schema.
1307 
1308  /// Message template ID from SBE schema.
1309  enum { TemplateId = 12 };
1310 
1311  /// Underlying instruments.
1312  /// Entry of UnderlyingsEntry repeating group.
1315  <
1317  >
1318  {
1319  /// Base class type.
1320  typedef
1322  <
1324  >
1326 
1327  /// Initializes instance of given
1328  /// version over given memory block.
1330  const void* data,
1331  EncodedLength length,
1332  SchemaVersion version)
1333  : Base(data, numericCast<Base::BlockLength>(length), version)
1334  {
1335  assert(version >= Schema::MinimalVersion);
1336  assert(length >= minimalBlockLength(version));
1337  }
1338 
1339  /// Underlying instrument's security ID.
1340  ONIXS_B3_UMDF_MD_NODISCARD
1343  {
1345 
1346  return ordinary<SecurityID>(offset);
1347  }
1348 
1349  /// Identifies the class of the underlying instrument's
1350  /// SecurityID (Exchange Symbol).
1355  {
1356  return SecurityIDSource::EXCHANGE_SYMBOL;
1357  }
1358 
1359  /// Underlying instrument's Exchange Code.
1361  ONIXS_B3_UMDF_MD_NODISCARD
1365  {
1366  return constructStrRef("BVMF");
1367  }
1368 
1369  /// Underlying instrument's ticker symbol.
1370  ONIXS_B3_UMDF_MD_NODISCARD
1373  {
1376 
1377  return fixedStr<length>(offset);
1378  }
1379 
1380  /// \return size of entry body in bytes
1381  /// for given version of message template.
1386  {
1387  return
1388  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
1389  minimalBlockLength(version);
1390  }
1391 
1392  /// \return minimal size of entry body in bytes
1393  /// for given version of message template.
1396  static
1397  BlockLength
1399  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
1401  {
1402  return
1403  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
1404  28;
1405  }
1406 
1407  /// Entity class name.
1409  ONIXS_B3_UMDF_MD_NODISCARD
1411  static const Char* className()
1412  {
1413  return "SecurityDefinition_12.UnderlyingsEntry";
1414  }
1415  };
1416 
1417  /// Repeating group containing UnderlyingsEntry entries.
1418  typedef
1421 
1422  /// Instrument legs.
1423  /// Entry of LegsEntry repeating group.
1426  <
1428  >
1429  {
1430  /// Base class type.
1431  typedef
1433  <
1435  >
1437 
1438  /// Initializes instance of given
1439  /// version over given memory block.
1441  const void* data,
1442  EncodedLength length,
1443  SchemaVersion version)
1444  : Base(data, numericCast<Base::BlockLength>(length), version)
1445  {
1446  assert(version >= Schema::MinimalVersion);
1447  assert(length >= minimalBlockLength(version));
1448  }
1449 
1450  /// Leg's security ID.
1451  ONIXS_B3_UMDF_MD_NODISCARD
1454  {
1456 
1457  return ordinary<SecurityID>(offset);
1458  }
1459 
1460  /// Identifies the class of the leg instrument's SecurityID
1461  /// (Exchange Symbol).
1466  {
1467  return SecurityIDSource::EXCHANGE_SYMBOL;
1468  }
1469 
1470  /// Leg's Exchange Code.
1472  ONIXS_B3_UMDF_MD_NODISCARD
1476  {
1477  return constructStrRef("BVMF");
1478  }
1479 
1480  /// Ratio of quantity for this leg relative to the entire
1481  /// security.
1482  ONIXS_B3_UMDF_MD_NODISCARD
1483  bool legRatioQty(RatioQty& value) const
1485  {
1487 
1488  return decimal(value, offset, NullRatioQty());
1489  }
1490 
1491  /// Leg's security type.
1492  ONIXS_B3_UMDF_MD_NODISCARD
1495  {
1497 
1498  return enumeration<SecurityType>(offset);
1499  }
1500 
1501  /// Side of this leg.
1502  ONIXS_B3_UMDF_MD_NODISCARD
1505  {
1507 
1508  return enumeration<Side>(offset);
1509  }
1510 
1511  /// Leg symbol.
1512  ONIXS_B3_UMDF_MD_NODISCARD
1515  {
1518 
1519  return fixedStr<length>(offset);
1520  }
1521 
1522  /// \return size of entry body in bytes
1523  /// for given version of message template.
1528  {
1529  return
1530  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
1531  minimalBlockLength(version);
1532  }
1533 
1534  /// \return minimal size of entry body in bytes
1535  /// for given version of message template.
1538  static
1539  BlockLength
1541  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
1543  {
1544  return
1545  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
1546  38;
1547  }
1548 
1549  /// Entity class name.
1551  ONIXS_B3_UMDF_MD_NODISCARD
1553  static const Char* className()
1554  {
1555  return "SecurityDefinition_12.LegsEntry";
1556  }
1557  };
1558 
1559  /// Repeating group containing LegsEntry entries.
1560  typedef
1563 
1564  /// Specifies the number of the application ID occurrences
1565  /// (number of channels).
1566  /// Entry of InstrAttribsEntry repeating group.
1569  <
1571  >
1572  {
1573  /// Base class type.
1574  typedef
1576  <
1578  >
1580 
1581  /// Initializes instance of given
1582  /// version over given memory block.
1584  const void* data,
1585  EncodedLength length,
1586  SchemaVersion version)
1587  : Base(data, numericCast<Base::BlockLength>(length), version)
1588  {
1589  assert(version >= Schema::MinimalVersion);
1590  assert(length >= minimalBlockLength(version));
1591  }
1592 
1593  /// Code to represent the type of instrument attributes.
1594  ONIXS_B3_UMDF_MD_NODISCARD
1597  {
1599 
1600  return enumeration<InstrAttribType>(offset);
1601  }
1602 
1603  /// Attribute value appropriate to the InstrAttribType (871)
1604  /// field.
1605  ONIXS_B3_UMDF_MD_NODISCARD
1608  {
1610 
1611  return enumeration<InstrAttribValue>(offset);
1612  }
1613 
1614  /// \return size of entry body in bytes
1615  /// for given version of message template.
1620  {
1621  return
1622  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
1623  minimalBlockLength(version);
1624  }
1625 
1626  /// \return minimal size of entry body in bytes
1627  /// for given version of message template.
1630  static
1631  BlockLength
1633  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
1635  {
1636  return
1637  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
1638  2;
1639  }
1640 
1641  /// Entity class name.
1643  ONIXS_B3_UMDF_MD_NODISCARD
1645  static const Char* className()
1646  {
1647  return "SecurityDefinition_12.InstrAttribsEntry";
1648  }
1649  };
1650 
1651  /// Repeating group containing InstrAttribsEntry entries.
1652  typedef
1655 
1656  /// Initializes a blank instance.
1658 
1659  /// Creates an instance over the given memory block.
1661  void* data,
1662  EncodedLength length,
1663  NoInit)
1664  : SbeMessage(data, length)
1665  {
1666  checkCompatibility();
1667  }
1668 
1669  /// Creates an instance over the given SBE message.
1670  explicit
1672  const SbeMessage& message)
1673  : SbeMessage(message)
1674  {
1675  assert(message.valid());
1676 
1677  checkCompatibility();
1678  }
1679 
1680  /// Creates an instance over the given memory block.
1681  /// Performs no checks.
1683  void* data,
1684  EncodedLength length,
1685  NoInit,
1686  NoCheck)
1688  : SbeMessage(data, length, NoCheck())
1689  {
1690  assert(schemaId() == Schema::Id);
1691  assert(version() >= Schema::MinimalVersion);
1692  assert(TemplateId == templateId());
1693  }
1694 
1695  /// FIX Message Type.
1700  {
1701  return MessageType::SecurityDefinition;
1702  }
1703 
1704  /// Specifies the service pack release being applied at
1705  /// message level.
1710  {
1711  return ApplVerID::FIX50SP2;
1712  }
1713 
1714  /// Security ID as defined by B3.
1715  ONIXS_B3_UMDF_MD_NODISCARD
1718  {
1720 
1721  return ordinary<SecurityID>(offset);
1722  }
1723 
1724  /// Exchange Code.
1725  ONIXS_B3_UMDF_MD_NODISCARD
1728  {
1731 
1732  return fixedStr<length>(offset);
1733  }
1734 
1735  /// Identifies the class of the SecurityID.
1736  ONIXS_B3_UMDF_MD_NODISCARD
1739  {
1741 
1742  return enumeration<SecurityIDSource>(offset);
1743  }
1744 
1745  /// Security Group.
1746  ONIXS_B3_UMDF_MD_NODISCARD
1749  {
1752 
1753  return fixedStr<length>(offset);
1754  }
1755 
1756  /// Instrument's ticker symbol.
1757  ONIXS_B3_UMDF_MD_NODISCARD
1758  StrRef symbol() const
1760  {
1763 
1764  return fixedStr<length>(offset);
1765  }
1766 
1767  /// Action used when updating the security.
1768  ONIXS_B3_UMDF_MD_NODISCARD
1772  {
1774 
1775  return enumeration<SecurityUpdateAction>(offset);
1776  }
1777 
1778  /// Instrument's security type.
1779  ONIXS_B3_UMDF_MD_NODISCARD
1782  {
1784 
1785  return enumeration<SecurityType>(offset);
1786  }
1787 
1788  /// Instrument's security sub type. List of values defined at
1789  /// Message Reference document.
1790  ONIXS_B3_UMDF_MD_NODISCARD
1793  {
1795 
1796  return ordinary<UInt16>(offset);
1797  }
1798 
1799  /// Total number of instruments to be returned in the current
1800  /// replay loop.
1801  ONIXS_B3_UMDF_MD_NODISCARD
1804  {
1806 
1807  return ordinary<UInt32>(offset);
1808  }
1809 
1810  /// Number of minimum price increments.
1811  ONIXS_B3_UMDF_MD_NODISCARD
1812  bool minPriceIncrement(Fixed8& value) const
1814  {
1816 
1817  return decimal(value, offset, NullFixed8());
1818  }
1819 
1820  /// Strike price of an option.
1821  ONIXS_B3_UMDF_MD_NODISCARD
1822  bool strikePrice(PriceOptional& value) const
1824  {
1826 
1827  return decimal(value, offset, NullPriceOptional());
1828  }
1829 
1830  /// Specifies the ratio or multiply factor to convert from
1831  /// “nominal” units (e.g. contracts) to total units (e.g.
1832  /// shares) (e.g. 1.0, 100, 1000, 0.00025 etc).
1833  ONIXS_B3_UMDF_MD_NODISCARD
1834  bool contractMultiplier(Fixed8& value) const
1836  {
1838 
1839  return decimal(value, offset, NullFixed8());
1840  }
1841 
1842  /// Value that divides the Price field to produce the actual
1843  /// order price (based on Step of Quotation). (e.g. 1, 100,
1844  /// 1000, etc). Default value is 1. Also used for index
1845  /// instruments to disseminate the index reducer, in this
1846  /// case, there is no default value.
1847  ONIXS_B3_UMDF_MD_NODISCARD
1848  bool priceDivisor(Fixed8& value) const
1850  {
1852 
1853  return decimal(value, offset, NullFixed8());
1854  }
1855 
1856  /// Indicates the UTC timestamp when trading for this security
1857  /// expires, i.e. when it is not eligible to trade anymore.
1858  /// Different from MaturityDate.
1859  ONIXS_B3_UMDF_MD_NODISCARD
1860  bool
1862  UTCTimestampSeconds& value) const
1864  {
1866 
1867  return ordinary(value, offset, NullUTCTimestampSeconds());
1868  }
1869 
1870  /// Share capital.
1871  ONIXS_B3_UMDF_MD_NODISCARD
1872  bool sharesIssued(UInt64NULL& value) const
1874  {
1876 
1877  return ordinary(value, offset, NullUInt64NULL());
1878  }
1879 
1880  /// Clearing House ID.
1881  ONIXS_B3_UMDF_MD_NODISCARD
1884  {
1886 
1887  return ordinary(value, offset, NullClearingHouseID());
1888  }
1889 
1890  /// Minimum quantity for an order.
1891  ONIXS_B3_UMDF_MD_NODISCARD
1892  bool minOrderQty(QuantityOptional& value) const
1894  {
1896 
1897  return ordinary(value, offset, NullQuantityOptional());
1898  }
1899 
1900  /// Maximum quantity for an order.
1901  ONIXS_B3_UMDF_MD_NODISCARD
1902  bool maxOrderQty(QuantityOptional& value) const
1904  {
1906 
1907  return ordinary(value, offset, NullQuantityOptional());
1908  }
1909 
1910  /// Minimum lot size allowed based on lot type specified in
1911  /// LotType(1093). Used for the equities segment.
1912  ONIXS_B3_UMDF_MD_NODISCARD
1913  bool minLotSize(QuantityOptional& value) const
1915  {
1917 
1918  return ordinary(value, offset, NullQuantityOptional());
1919  }
1920 
1921  /// The minimum trading volume for the security.
1922  ONIXS_B3_UMDF_MD_NODISCARD
1923  bool minTradeVol(QuantityOptional& value) const
1925  {
1927 
1928  return ordinary(value, offset, NullQuantityOptional());
1929  }
1930 
1931  /// Corporate Action Event ID.
1932  ONIXS_B3_UMDF_MD_NODISCARD
1935  {
1937 
1938  return ordinary(value, offset, NullUInt32NULL());
1939  }
1940 
1941  /// The date on which the security is issued/activated.
1942  ONIXS_B3_UMDF_MD_NODISCARD
1945  {
1947 
1948  return localMktDateToTimestamp(ordinary<LocalMktDate32>(offset));
1949  }
1950 
1951  /// Date of instrument maturity.
1952  ONIXS_B3_UMDF_MD_NODISCARD
1953  bool maturityDate(Timestamp& value) const
1955  {
1956  typedef LocalMktDate32Optional FieldValue;
1957 
1959 
1960  FieldValue fieldValue;
1961 
1962  if (ordinary(fieldValue, offset, NullLocalMktDate32Optional()))
1963  {
1964  value = localMktDateToTimestamp(fieldValue);
1965  return true;
1966  }
1967  return false;
1968  }
1969 
1970  /// ISO 3166-1 alpha-2 country code.
1971  ONIXS_B3_UMDF_MD_NODISCARD
1972  bool countryOfIssue(StrRef& value) const
1974  {
1977 
1978  return fixedStr<length>(value, offset);
1979  }
1980 
1981  /// Start date of a financing deal, i.e. the date the buyer
1982  /// pays the seller cash and takes control of the collateral.
1983  ONIXS_B3_UMDF_MD_NODISCARD
1984  bool startDate(Timestamp& value) const
1986  {
1987  typedef LocalMktDate32Optional FieldValue;
1988 
1990 
1991  FieldValue fieldValue;
1992 
1993  if (ordinary(fieldValue, offset, NullLocalMktDate32Optional()))
1994  {
1995  value = localMktDateToTimestamp(fieldValue);
1996  return true;
1997  }
1998  return false;
1999  }
2000 
2001  /// End date of a financing deal, i.e. the date the seller
2002  /// reimburses the buyer and takes back control of the
2003  /// collateral.
2004  ONIXS_B3_UMDF_MD_NODISCARD
2005  bool endDate(Timestamp& value) const
2007  {
2008  typedef LocalMktDate32Optional FieldValue;
2009 
2011 
2012  FieldValue fieldValue;
2013 
2014  if (ordinary(fieldValue, offset, NullLocalMktDate32Optional()))
2015  {
2016  value = localMktDateToTimestamp(fieldValue);
2017  return true;
2018  }
2019  return false;
2020  }
2021 
2022  /// Order settlement period in days.
2023  ONIXS_B3_UMDF_MD_NODISCARD
2024  bool settlType(SettlType& value) const
2026  {
2028 
2029  return ordinary(value, offset, NullSettlType());
2030  }
2031 
2032  /// Specific date of trade settlement.
2033  ONIXS_B3_UMDF_MD_NODISCARD
2034  bool settlDate(Timestamp& value) const
2036  {
2037  typedef LocalMktDate32Optional FieldValue;
2038 
2040 
2041  FieldValue fieldValue;
2042 
2043  if (ordinary(fieldValue, offset, NullLocalMktDate32Optional()))
2044  {
2045  value = localMktDateToTimestamp(fieldValue);
2046  return true;
2047  }
2048  return false;
2049  }
2050 
2051  /// The date of the security activation, if different from the
2052  /// IssueDate.
2053  ONIXS_B3_UMDF_MD_NODISCARD
2054  bool datedDate(Timestamp& value) const
2056  {
2057  typedef LocalMktDate32Optional FieldValue;
2058 
2060 
2061  FieldValue fieldValue;
2062 
2063  if (ordinary(fieldValue, offset, NullLocalMktDate32Optional()))
2064  {
2065  value = localMktDateToTimestamp(fieldValue);
2066  return true;
2067  }
2068  return false;
2069  }
2070 
2071  /// ISIN Number.
2072  ONIXS_B3_UMDF_MD_NODISCARD
2073  bool isinNumber(StrRef& value) const
2075  {
2078 
2079  return fixedStr<length>(value, offset);
2080  }
2081 
2082  /// Asset associated to the security.
2083  ONIXS_B3_UMDF_MD_NODISCARD
2084  StrRef asset() const
2086  {
2089 
2090  return fixedStr<length>(offset);
2091  }
2092 
2093  /// Classification of Financial Instruments (CFI code) values,
2094  /// which indicate the type of security using the ISO 10962
2095  /// standard.
2096  ONIXS_B3_UMDF_MD_NODISCARD
2097  StrRef cfiCode() const
2099  {
2102 
2103  return fixedStr<length>(offset);
2104  }
2105 
2106  /// Week, month and year of the maturity (used for
2107  /// standardized futures and options).
2108  ONIXS_B3_UMDF_MD_NODISCARD
2111  {
2113 
2114  return ordinary(value, offset, NullMaturityMonthYear());
2115  }
2116 
2117  /// Specifies when the contract will settle.
2118  ONIXS_B3_UMDF_MD_NODISCARD
2121  {
2123 
2124  return ordinary(value, offset, NullMaturityMonthYear());
2125  }
2126 
2127  /// Currency code.
2128  ONIXS_B3_UMDF_MD_NODISCARD
2131  {
2134 
2135  return fixedStr<length>(offset);
2136  }
2137 
2138  /// Currency of option's strike price.
2139  ONIXS_B3_UMDF_MD_NODISCARD
2140  bool strikeCurrency(StrRef& value) const
2142  {
2145 
2146  return fixedStr<length>(value, offset);
2147  }
2148 
2149  /// Currency used for the settlement.
2150  ONIXS_B3_UMDF_MD_NODISCARD
2151  bool settlCurrency(StrRef& value) const
2153  {
2156 
2157  return fixedStr<length>(value, offset);
2158  }
2159 
2160  /// Strategy type definition.
2161  ONIXS_B3_UMDF_MD_NODISCARD
2162  bool securityStrategyType(StrRef& value) const
2164  {
2167 
2168  return fixedStr<length>(value, offset);
2169  }
2170 
2171  /// Lot type.
2172  ONIXS_B3_UMDF_MD_NODISCARD
2173  bool lotType(LotType::Enum& value) const
2175  {
2177 
2178  return enumeration<LotType>(value, offset, NullUInt8());
2179  }
2180 
2181  /// Number of decimals for pricing the instrument.
2182  ONIXS_B3_UMDF_MD_NODISCARD
2183  bool tickSizeDenominator(UInt8& value) const
2185  {
2187 
2188  return ordinary(value, offset, NullUInt8());
2189  }
2190 
2191  /// Type of product.
2192  ONIXS_B3_UMDF_MD_NODISCARD
2195  {
2197 
2198  return enumeration<Product>(offset);
2199  }
2200 
2201  /// Exercise Style.
2202  ONIXS_B3_UMDF_MD_NODISCARD
2203  bool
2205  ExerciseStyle::Enum& value) const
2207  {
2209 
2210  return enumeration<ExerciseStyle>(value, offset, NullUInt8());
2211  }
2212 
2213  /// Indicates whether an option contract is a put or call.
2214  ONIXS_B3_UMDF_MD_NODISCARD
2215  bool putOrCall(PutOrCall::Enum& value) const
2217  {
2219 
2220  return enumeration<PutOrCall>(value, offset, NullUInt8());
2221  }
2222 
2223  /// Price type of the instrument.
2224  ONIXS_B3_UMDF_MD_NODISCARD
2225  bool priceType(PriceType::Enum& value) const
2227  {
2229 
2230  return enumeration<PriceType>(value, offset, NullUInt8NULL());
2231  }
2232 
2233  /// Market segment.
2234  ONIXS_B3_UMDF_MD_NODISCARD
2237  {
2239 
2240  return ordinary(value, offset, NullMarketSegmentID());
2241  }
2242 
2243  /// Corporative Governance Level Indicator.
2244  ONIXS_B3_UMDF_MD_NODISCARD
2245  bool
2247  GovernanceIndicator::Enum& value) const
2249  {
2251 
2252  return enumeration<GovernanceIndicator>(value, offset, NullUInt8());
2253  }
2254 
2255  /// Type of matching that occurred.
2256  ONIXS_B3_UMDF_MD_NODISCARD
2257  bool
2259  SecurityMatchType::Enum& value) const
2261  {
2263 
2264  return enumeration<SecurityMatchType>(value, offset, NullUInt8());
2265  }
2266 
2267  /// Indicates whether this message is the last in the sequence
2268  /// of messages.
2269  ONIXS_B3_UMDF_MD_NODISCARD
2270  bool lastFragment(Boolean::Enum& value) const
2272  {
2274 
2275  return enumeration<Boolean>(value, offset, NullUInt8());
2276  }
2277 
2278  /// Defines whether the security is pre-defined or user-
2279  /// defined. Used for multileg security only.
2280  ONIXS_B3_UMDF_MD_NODISCARD
2281  bool
2283  MultiLegModel::Enum& value) const
2285  {
2287 
2288  return enumeration<MultiLegModel>(value, offset, NullUInt8());
2289  }
2290 
2291  /// Defines the method used when applying the multileg price
2292  /// to the legs. When this tag is set, it indicates spreads
2293  /// that have leg prices generated by the trading engine.
2294  ONIXS_B3_UMDF_MD_NODISCARD
2295  bool
2297  MultiLegPriceMethod::Enum& value) const
2299  {
2301 
2302  return enumeration<MultiLegPriceMethod>(value, offset, NullUInt8());
2303  }
2304 
2305  /// Minimum quantity of a cross order for the security.
2306  ONIXS_B3_UMDF_MD_NODISCARD
2307  bool minCrossQty(QuantityOptional& value) const
2309  {
2311 
2312  return ordinary(value, offset, NullQuantityOptional());
2313  }
2314 
2315  /// Indicates that an implied order can be created for the
2316  /// instrument.
2317  ONIXS_B3_UMDF_MD_NODISCARD
2318  bool
2320  ImpliedMarketIndicator::Enum& value) const
2322  {
2325 
2326  return enumeration<ImpliedMarketIndicator>(value, offset, NullUInt8(), since);
2327  }
2328 
2329  /// \return instance of Underlyings repeating group.
2330  ONIXS_B3_UMDF_MD_NODISCARD
2333  {
2334  return getGroup<Underlyings>(
2335  UnderlyingsAccess(),
2336  *this);
2337  }
2338 
2339  /// \return instance of Legs repeating group.
2340  ONIXS_B3_UMDF_MD_NODISCARD
2341  Legs legs() const
2343  {
2344  return getGroup<Legs>(LegsAccess(), *this);
2345  }
2346 
2347  /// \return instance of InstrAttribs repeating group.
2348  ONIXS_B3_UMDF_MD_NODISCARD
2351  {
2352  return getGroup<InstrAttribs>(
2353  InstrAttribsAccess(),
2354  *this);
2355  }
2356 
2357  /// Non-normative textual description for the financial instrument.
2358  ONIXS_B3_UMDF_MD_NODISCARD
2361  {
2362  return getVariableLengthField(
2363  securityDescAccess(),
2364  *this);
2365  }
2366 
2367  /// Minimal size of message body in bytes.
2372  {
2373  return
2374  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
2375  (version >= 10)
2376  ? 231
2377  : 230;
2378  }
2379 
2380  /// Size of message body in bytes.
2385  {
2386  return
2387  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
2388  minimalBlockLength(version);
2389  }
2390 
2391  /// Minimal variable fields size (when variable-length fields are empty).
2393  ONIXS_B3_UMDF_MD_NODISCARD
2395  static
2396  MessageSize
2398  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
2399  {
2400  return
2401  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
2402  static_cast<MessageSize>(TextEncoding::Size) + static_cast<MessageSize>(Underlyings::EmptySize) + static_cast<MessageSize>(Legs::EmptySize) + static_cast<MessageSize>(InstrAttribs::EmptySize);
2403  }
2404 
2405  /// \return class name.
2407  ONIXS_B3_UMDF_MD_NODISCARD
2409  static const Char* className()
2410  {
2411  return "SecurityDefinition_12";
2412  }
2413 
2414  /// FIX message type.
2416  ONIXS_B3_UMDF_MD_NODISCARD
2418  static StrRef fixType()
2420  {
2421  return constructStrRef("SecurityDefinition_12");
2422  }
2423 
2424  /// \return a human-readable presentation.
2425  ONIXS_B3_UMDF_MD_NODISCARD
2426  std::string toString() const;
2427 
2428 private:
2429  void checkLength(
2430  EncodedLength length, SchemaVersion version) const
2431  {
2432  const EncodedLength minimalRequiredLength =
2433  minimalBlockLength(version) +
2434  MessageHeader::Size +
2435  getMinimalVariableFieldsSize(version);
2436 
2437  checkBinaryLength(
2438  *this, length, minimalRequiredLength);
2439  }
2440 
2441  /// Checks variable fields consistency.
2442  void checkVarLenFields() const
2443  {
2444  groups().
2445  tail<Underlyings>().
2446  tail<Legs>().
2447  checkVariableLengthFields<InstrAttribs>().
2448  checkTail<TextEncoding>();
2449  }
2450 
2451  void checkCompatibility() const
2452  {
2453  assert(TemplateId == templateId());
2454 
2455  checkSchema<Schema>(schemaId(), version());
2456  checkLength(bufferSize(), version());
2457  checkVarLenFields();
2458  }
2459 
2460  /// Access helper.
2461  struct UnderlyingsAccess
2462  {
2463  Underlyings
2464  operator()(
2465  const SecurityDefinition_12& obj) const
2467  {
2468  return obj.
2469  groups().
2470  head<Underlyings>();
2471  }
2472  };
2473 
2474  /// Access helper.
2475  struct LegsAccess
2476  {
2477  Legs
2478  operator()(
2479  const SecurityDefinition_12& obj) const
2481  {
2482  return obj.
2483  groups().
2484  tail<Underlyings>().
2485  head<Legs>();
2486  }
2487  };
2488 
2489  /// Access helper.
2490  struct InstrAttribsAccess
2491  {
2492  InstrAttribs
2493  operator()(
2494  const SecurityDefinition_12& obj) const
2496  {
2497  return obj.
2498  groups().
2499  tail<Underlyings>().
2500  tail<Legs>().
2501  head<InstrAttribs>();
2502  }
2503  };
2504 
2505  /// Access helper.
2506  struct securityDescAccess
2507  {
2508  TextEncoding&
2509  operator()(
2510  const SecurityDefinition_12& obj) const
2512  {
2513  return obj.
2514  groups().
2515  tail<Underlyings>().
2516  tail<Legs>().
2517  variableLengthFields<InstrAttribs>().
2518  head<TextEncoding>();
2519  }
2520  };
2521 };
2522 
2523 /// Conveys market information of B3 market surveillance notifications and news produced by agencies..
2525 News_5
2526 : SbeMessage
2527 {
2528  /// Used template schema.
2530 
2531  /// Message template ID from SBE schema.
2532  enum { TemplateId = 5 };
2533 
2534  /// Initializes a blank instance.
2536 
2537  /// Creates an instance over the given memory block.
2539  void* data,
2540  EncodedLength length,
2541  NoInit)
2542  : SbeMessage(data, length)
2543  {
2544  checkCompatibility();
2545  }
2546 
2547  /// Creates an instance over the given SBE message.
2548  explicit
2550  const SbeMessage& message)
2551  : SbeMessage(message)
2552  {
2553  assert(message.valid());
2554 
2555  checkCompatibility();
2556  }
2557 
2558  /// Creates an instance over the given memory block.
2559  /// Performs no checks.
2561  void* data,
2562  EncodedLength length,
2563  NoInit,
2564  NoCheck)
2566  : SbeMessage(data, length, NoCheck())
2567  {
2568  assert(schemaId() == Schema::Id);
2569  assert(version() >= Schema::MinimalVersion);
2570  assert(TemplateId == templateId());
2571  }
2572 
2573  /// FIX Message Type.
2578  {
2579  return MessageType::News;
2580  }
2581 
2582  /// Specifies the service pack release being applied at
2583  /// message level.
2588  {
2589  return ApplVerID::FIX50SP2;
2590  }
2591 
2592  /// Security ID as defined by B3. For the SecurityID list, see
2593  /// the Security Definition message in Market Data feed.
2594  ONIXS_B3_UMDF_MD_NODISCARD
2595  bool
2597  SecurityIDOptional& value) const
2599  {
2601 
2602  return ordinary(value, offset, NullSecurityIDOptional());
2603  }
2604 
2605  /// Identifies the class of the SecurityID (Exchange Symbol).
2610  {
2611  return SecurityIDSource::EXCHANGE_SYMBOL;
2612  }
2613 
2614  /// Market to which the symbol belongs.
2616  ONIXS_B3_UMDF_MD_NODISCARD
2620  {
2621  return constructStrRef("BVMF");
2622  }
2623 
2624  /// Identifies the end of the current event and if it is a
2625  /// retransmission.
2626  ONIXS_B3_UMDF_MD_NODISCARD
2629  {
2631 
2632  return ordinary<MatchEventIndicator>(offset);
2633  }
2634 
2635  /// Source of the News.
2636  ONIXS_B3_UMDF_MD_NODISCARD
2639  {
2641 
2642  return enumeration<NewsSource>(offset);
2643  }
2644 
2645  /// Indicates the language the news is in. If null, it's 'pt'
2646  /// = Portuguese.
2647  ONIXS_B3_UMDF_MD_NODISCARD
2648  bool languageCode(StrRef& value) const
2650  {
2653 
2654  return fixedStr<length>(value, offset);
2655  }
2656 
2657  /// Total number of parts for the text of a News message.
2658  /// Usually 1.
2659  ONIXS_B3_UMDF_MD_NODISCARD
2662  {
2664 
2665  return ordinary<UInt16>(offset);
2666  }
2667 
2668  /// Number of the part for this message. Starts from 1.
2669  ONIXS_B3_UMDF_MD_NODISCARD
2672  {
2674 
2675  return ordinary<UInt16>(offset);
2676  }
2677 
2678  /// Unique identifier for News message. Included in the News
2679  /// messages sent in the Unified News Channel. Not sent for
2680  /// trading engine News messages.
2681  ONIXS_B3_UMDF_MD_NODISCARD
2682  bool newsId(NewsID& value) const
2684  {
2686 
2687  return ordinary(value, offset, NullNewsID());
2688  }
2689 
2690  /// Time of message origination.
2691  ONIXS_B3_UMDF_MD_NODISCARD
2692  bool origTime(UTCTimestampNanos& value) const
2694  {
2696 
2697  return ordinary(value, offset, NullUTCTimestampNanos());
2698  }
2699 
2700  /// Total size, in bytes, for the text of a News message.
2701  ONIXS_B3_UMDF_MD_NODISCARD
2704  {
2706 
2707  return ordinary<UInt32>(offset);
2708  }
2709 
2710  /// The headline of a News message.
2711  ONIXS_B3_UMDF_MD_NODISCARD
2714  {
2715  return getVariableLengthField(headlineAccess(), *this);
2716  }
2717 
2718  /// Free format text string.
2719  ONIXS_B3_UMDF_MD_NODISCARD
2720  StrRef text() const
2722  {
2723  return getVariableLengthField(textAccess(), *this);
2724  }
2725 
2726  /// A URL (Uniform Resource Locator) link to additional information (e.g. http://www.b3.com.br).
2727  ONIXS_B3_UMDF_MD_NODISCARD
2728  StrRef uRLLink() const
2730  {
2731  return getVariableLengthField(uRLLinkAccess(), *this);
2732  }
2733 
2734  /// Minimal size of message body in bytes.
2737  static
2738  BlockLength
2740  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
2742  {
2743  return
2744  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
2745  36;
2746  }
2747 
2748  /// Size of message body in bytes.
2753  {
2754  return
2755  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
2756  minimalBlockLength(version);
2757  }
2758 
2759  /// Minimal variable fields size (when variable-length fields are empty).
2761  ONIXS_B3_UMDF_MD_NODISCARD
2763  static
2764  MessageSize
2766  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
2767  {
2768  return
2769  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
2770  static_cast<MessageSize>(VarString::Size) + static_cast<MessageSize>(VarString::Size) + static_cast<MessageSize>(VarString::Size);
2771  }
2772 
2773  /// \return class name.
2775  ONIXS_B3_UMDF_MD_NODISCARD
2777  static const Char* className()
2778  {
2779  return "News_5";
2780  }
2781 
2782  /// FIX message type.
2784  ONIXS_B3_UMDF_MD_NODISCARD
2786  static StrRef fixType()
2788  {
2789  return constructStrRef("B");
2790  }
2791 
2792  /// \return a human-readable presentation.
2793  ONIXS_B3_UMDF_MD_NODISCARD
2794  std::string toString() const;
2795 
2796 private:
2797  void checkLength(
2798  EncodedLength length, SchemaVersion version) const
2799  {
2800  const EncodedLength minimalRequiredLength =
2801  minimalBlockLength(version) +
2802  MessageHeader::Size +
2803  getMinimalVariableFieldsSize(version);
2804 
2805  checkBinaryLength(
2806  *this, length, minimalRequiredLength);
2807  }
2808 
2809  /// Checks variable fields consistency.
2810  void checkVarLenFields() const
2811  {
2812  variableLengthFields().
2813  checkTail<VarString>().
2814  checkTail<VarString>().
2815  checkTail<VarString>();
2816  }
2817 
2818  void checkCompatibility() const
2819  {
2820  assert(TemplateId == templateId());
2821 
2822  checkSchema<Schema>(schemaId(), version());
2823  checkLength(bufferSize(), version());
2824  checkVarLenFields();
2825  }
2826 
2827  /// Access helper.
2828  struct headlineAccess
2829  {
2830  VarString& operator()(const News_5& obj) const
2832  {
2833  return obj.
2834  variableLengthFields().
2835  head<VarString>();
2836  }
2837  };
2838 
2839  /// Access helper.
2840  struct textAccess
2841  {
2842  VarString& operator()(const News_5& obj) const
2844  {
2845  return obj.
2846  variableLengthFields().
2847  tail<VarString>().
2848  head<VarString>();
2849  }
2850  };
2851 
2852  /// Access helper.
2853  struct uRLLinkAccess
2854  {
2855  VarString& operator()(const News_5& obj) const
2857  {
2858  return obj.
2859  variableLengthFields().
2860  tail<VarString>().
2861  tail<VarString>().
2862  head<VarString>();
2863  }
2864  };
2865 };
2866 
2867 /// Carries the summary information about opening trading session events per market data stream..
2870 : SbeMessage
2871 {
2872  /// Used template schema.
2874 
2875  /// Message template ID from SBE schema.
2876  enum { TemplateId = 15 };
2877 
2878  /// Initializes a blank instance.
2880 
2881  /// Creates an instance over the given memory block.
2883  void* data,
2884  EncodedLength length,
2885  NoInit)
2886  : SbeMessage(data, length)
2887  {
2888  checkCompatibility();
2889  }
2890 
2891  /// Creates an instance over the given SBE message.
2892  explicit
2894  const SbeMessage& message)
2895  : SbeMessage(message)
2896  {
2897  assert(message.valid());
2898 
2899  checkCompatibility();
2900  }
2901 
2902  /// Creates an instance over the given memory block.
2903  /// Performs no checks.
2905  void* data,
2906  EncodedLength length,
2907  NoInit,
2908  NoCheck)
2910  : SbeMessage(data, length, NoCheck())
2911  {
2912  assert(schemaId() == Schema::Id);
2913  assert(version() >= Schema::MinimalVersion);
2914  assert(TemplateId == templateId());
2915  }
2916 
2917  /// FIX Message Type.
2922  {
2923  return MessageType::MarketDataIncrementalRefresh;
2924  }
2925 
2926  /// Specifies the service pack release being applied at
2927  /// message level.
2932  {
2933  return ApplVerID::FIX50SP2;
2934  }
2935 
2936  /// Security ID as defined by B3. For the SecurityID list, see
2937  /// the Security Definition message in Market Data feed.
2938  ONIXS_B3_UMDF_MD_NODISCARD
2941  {
2943 
2944  return ordinary<SecurityID>(offset);
2945  }
2946 
2947  /// Identifies the class of the SecurityID (Exchange Symbol).
2952  {
2953  return SecurityIDSource::EXCHANGE_SYMBOL;
2954  }
2955 
2956  /// Market to which the symbol belongs.
2958  ONIXS_B3_UMDF_MD_NODISCARD
2962  {
2963  return constructStrRef("BVMF");
2964  }
2965 
2966  /// Identifies the end of the current event and if it is a
2967  /// retransmission.
2968  ONIXS_B3_UMDF_MD_NODISCARD
2971  {
2973 
2974  return ordinary<MatchEventIndicator>(offset);
2975  }
2976 
2977  /// Update Action (NEW or DELETE).
2978  ONIXS_B3_UMDF_MD_NODISCARD
2981  {
2983 
2984  return enumeration<UpdateAction>(offset);
2985  }
2986 
2987  /// Entry type: Opening Price.
2992  {
2993  return EntryType::OPENING_PRICE;
2994  }
2995 
2996  /// Identifies if the opening price represents or not a daily
2997  /// opening price.
2998  ONIXS_B3_UMDF_MD_NODISCARD
3001  {
3003 
3004  return enumeration<OpenCloseSettlFlag>(offset);
3005  }
3006 
3007  /// Value of the statistics.
3008  ONIXS_B3_UMDF_MD_NODISCARD
3011  {
3013 
3014  return decimal<Price>(offset);
3015  }
3016 
3017  /// Net change from previous trading day’s closing price vs.
3018  /// last traded price.
3019  ONIXS_B3_UMDF_MD_NODISCARD
3020  bool
3022  PriceOffset8Optional& value) const
3024  {
3026 
3027  return decimal(value, offset, NullPriceOffset8Optional());
3028  }
3029 
3030  /// Used to specify the trading date for which a set of market
3031  /// data applies.
3032  ONIXS_B3_UMDF_MD_NODISCARD
3035  {
3037 
3038  return localMktDateToTimestamp(ordinary<LocalMktDate>(offset));
3039  }
3040 
3041  /// Date and time of market data entry.
3042  ONIXS_B3_UMDF_MD_NODISCARD
3045  {
3047 
3048  return ordinary(value, offset, NullUTCTimestampNanos());
3049  }
3050 
3051  /// Sequence number per instrument update. Zeroed in snapshot
3052  /// feed.
3053  ONIXS_B3_UMDF_MD_NODISCARD
3054  bool rptSeq(RptSeq& value) const
3056  {
3058 
3059  return ordinary(value, offset, NullRptSeq());
3060  }
3061 
3062  /// Minimal size of message body in bytes.
3065  static
3066  BlockLength
3068  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
3070  {
3071  return
3072  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
3073  44;
3074  }
3075 
3076  /// Size of message body in bytes.
3079  static
3080  BlockLength
3082  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
3084  {
3085  return
3086  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
3087  44;
3088  }
3089 
3090  /// Minimal variable fields size (when variable-length fields are empty).
3092  ONIXS_B3_UMDF_MD_NODISCARD
3094  static
3095  MessageSize
3097  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
3098  {
3099  return
3100  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
3101  0;
3102  }
3103 
3104  /// \return class name.
3106  ONIXS_B3_UMDF_MD_NODISCARD
3108  static const Char* className()
3109  {
3110  return "OpeningPrice_15";
3111  }
3112 
3113  /// FIX message type.
3115  ONIXS_B3_UMDF_MD_NODISCARD
3117  static StrRef fixType()
3119  {
3120  return constructStrRef("OpeningPrice_15");
3121  }
3122 
3123  /// \return a human-readable presentation.
3124  ONIXS_B3_UMDF_MD_NODISCARD
3125  std::string toString() const;
3126 
3127 private:
3128  void checkLength(
3129  EncodedLength length, SchemaVersion version) const
3130  {
3131  const EncodedLength minimalRequiredLength =
3132  minimalBlockLength(version) +
3133  MessageHeader::Size +
3134  getMinimalVariableFieldsSize(version);
3135 
3136  checkBinaryLength(
3137  *this, length, minimalRequiredLength);
3138  }
3139 
3140  void checkCompatibility() const
3141  {
3142  assert(TemplateId == templateId());
3143 
3144  checkSchema<Schema>(schemaId(), version());
3145  checkLength(bufferSize(), version());
3146  }
3147 };
3148 
3149 /// The theoretical opening price is also sent on this block and is calculated and updated based on the orders presented in the book during every auction including the pre-opening / pre-closing auction..
3152 : SbeMessage
3153 {
3154  /// Used template schema.
3156 
3157  /// Message template ID from SBE schema.
3158  enum { TemplateId = 16 };
3159 
3160  /// Initializes a blank instance.
3162 
3163  /// Creates an instance over the given memory block.
3165  void* data,
3166  EncodedLength length,
3167  NoInit)
3168  : SbeMessage(data, length)
3169  {
3170  checkCompatibility();
3171  }
3172 
3173  /// Creates an instance over the given SBE message.
3174  explicit
3176  const SbeMessage& message)
3177  : SbeMessage(message)
3178  {
3179  assert(message.valid());
3180 
3181  checkCompatibility();
3182  }
3183 
3184  /// Creates an instance over the given memory block.
3185  /// Performs no checks.
3187  void* data,
3188  EncodedLength length,
3189  NoInit,
3190  NoCheck)
3192  : SbeMessage(data, length, NoCheck())
3193  {
3194  assert(schemaId() == Schema::Id);
3195  assert(version() >= Schema::MinimalVersion);
3196  assert(TemplateId == templateId());
3197  }
3198 
3199  /// FIX Message Type.
3204  {
3205  return MessageType::MarketDataIncrementalRefresh;
3206  }
3207 
3208  /// Specifies the service pack release being applied at
3209  /// message level.
3214  {
3215  return ApplVerID::FIX50SP2;
3216  }
3217 
3218  /// Security ID as defined by B3. For the SecurityID list, see
3219  /// the Security Definition message in Market Data feed.
3220  ONIXS_B3_UMDF_MD_NODISCARD
3223  {
3225 
3226  return ordinary<SecurityID>(offset);
3227  }
3228 
3229  /// Identifies the class of the SecurityID (Exchange Symbol).
3234  {
3235  return SecurityIDSource::EXCHANGE_SYMBOL;
3236  }
3237 
3238  /// Market to which the symbol belongs.
3240  ONIXS_B3_UMDF_MD_NODISCARD
3244  {
3245  return constructStrRef("BVMF");
3246  }
3247 
3248  /// Identifies the end of the current event and if it is a
3249  /// retransmission.
3250  ONIXS_B3_UMDF_MD_NODISCARD
3253  {
3255 
3256  return ordinary<MatchEventIndicator>(offset);
3257  }
3258 
3259  /// Update Action (NEW or DELETE).
3260  ONIXS_B3_UMDF_MD_NODISCARD
3263  {
3265 
3266  return enumeration<UpdateAction>(offset);
3267  }
3268 
3269  /// Entry type: Opening Price.
3274  {
3275  return EntryType::OPENING_PRICE;
3276  }
3277 
3278  /// Indicates this is a theoretical opening price.
3283  {
3284  return OpenCloseSettlFlag::THEORETICAL_PRICE;
3285  }
3286 
3287  /// Used to specify the trading date for which a set of market
3288  /// data applies.
3289  ONIXS_B3_UMDF_MD_NODISCARD
3292  {
3294 
3295  return localMktDateToTimestamp(ordinary<LocalMktDate>(offset));
3296  }
3297 
3298  /// Theoretical Opening Price.
3299  ONIXS_B3_UMDF_MD_NODISCARD
3300  bool mDEntryPx(PriceOptional& value) const
3302  {
3304 
3305  return decimal(value, offset, NullPriceOptional());
3306  }
3307 
3308  /// Theoretical Opening Quantity.
3309  ONIXS_B3_UMDF_MD_NODISCARD
3310  bool mDEntrySize(QuantityOptional& value) const
3312  {
3314 
3315  return ordinary(value, offset, NullQuantityOptional());
3316  }
3317 
3318  /// Date and time of market data entry.
3319  ONIXS_B3_UMDF_MD_NODISCARD
3322  {
3324 
3325  return ordinary(value, offset, NullUTCTimestampNanos());
3326  }
3327 
3328  /// Sequence number per instrument update. Zeroed in snapshot
3329  /// feed.
3330  ONIXS_B3_UMDF_MD_NODISCARD
3331  bool rptSeq(RptSeq& value) const
3333  {
3335 
3336  return ordinary(value, offset, NullRptSeq());
3337  }
3338 
3339  /// Minimal size of message body in bytes.
3342  static
3343  BlockLength
3345  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
3347  {
3348  return
3349  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
3350  40;
3351  }
3352 
3353  /// Size of message body in bytes.
3358  {
3359  return
3360  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
3361  minimalBlockLength(version);
3362  }
3363 
3364  /// Minimal variable fields size (when variable-length fields are empty).
3366  ONIXS_B3_UMDF_MD_NODISCARD
3368  static
3369  MessageSize
3371  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
3372  {
3373  return
3374  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
3375  0;
3376  }
3377 
3378  /// \return class name.
3380  ONIXS_B3_UMDF_MD_NODISCARD
3382  static const Char* className()
3383  {
3384  return "TheoreticalOpeningPrice_16";
3385  }
3386 
3387  /// FIX message type.
3389  ONIXS_B3_UMDF_MD_NODISCARD
3391  static StrRef fixType()
3393  {
3394  return constructStrRef(
3395  "TheoreticalOpeningPrice_16");
3396  }
3397 
3398  /// \return a human-readable presentation.
3399  ONIXS_B3_UMDF_MD_NODISCARD
3400  std::string toString() const;
3401 
3402 private:
3403  void checkLength(
3404  EncodedLength length, SchemaVersion version) const
3405  {
3406  const EncodedLength minimalRequiredLength =
3407  minimalBlockLength(version) +
3408  MessageHeader::Size +
3409  getMinimalVariableFieldsSize(version);
3410 
3411  checkBinaryLength(
3412  *this, length, minimalRequiredLength);
3413  }
3414 
3415  void checkCompatibility() const
3416  {
3417  assert(TemplateId == templateId());
3418 
3419  checkSchema<Schema>(schemaId(), version());
3420  checkLength(bufferSize(), version());
3421  }
3422 };
3423 
3424 /// Summary information about closing trading sessions per market data stream..
3427 : SbeMessage
3428 {
3429  /// Used template schema.
3431 
3432  /// Message template ID from SBE schema.
3433  enum { TemplateId = 17 };
3434 
3435  /// Initializes a blank instance.
3437 
3438  /// Creates an instance over the given memory block.
3440  void* data,
3441  EncodedLength length,
3442  NoInit)
3443  : SbeMessage(data, length)
3444  {
3445  checkCompatibility();
3446  }
3447 
3448  /// Creates an instance over the given SBE message.
3449  explicit
3451  const SbeMessage& message)
3452  : SbeMessage(message)
3453  {
3454  assert(message.valid());
3455 
3456  checkCompatibility();
3457  }
3458 
3459  /// Creates an instance over the given memory block.
3460  /// Performs no checks.
3462  void* data,
3463  EncodedLength length,
3464  NoInit,
3465  NoCheck)
3467  : SbeMessage(data, length, NoCheck())
3468  {
3469  assert(schemaId() == Schema::Id);
3470  assert(version() >= Schema::MinimalVersion);
3471  assert(TemplateId == templateId());
3472  }
3473 
3474  /// FIX Message Type.
3479  {
3480  return MessageType::MarketDataIncrementalRefresh;
3481  }
3482 
3483  /// Specifies the service pack release being applied at
3484  /// message level.
3489  {
3490  return ApplVerID::FIX50SP2;
3491  }
3492 
3493  /// Security ID as defined by B3. For the SecurityID list, see
3494  /// the Security Definition message in Market Data feed.
3495  ONIXS_B3_UMDF_MD_NODISCARD
3498  {
3500 
3501  return ordinary<SecurityID>(offset);
3502  }
3503 
3504  /// Identifies the class of the SecurityID (Exchange Symbol).
3509  {
3510  return SecurityIDSource::EXCHANGE_SYMBOL;
3511  }
3512 
3513  /// Market to which the symbol belongs.
3515  ONIXS_B3_UMDF_MD_NODISCARD
3519  {
3520  return constructStrRef("BVMF");
3521  }
3522 
3523  /// Identifies the end of the current event and if it is a
3524  /// retransmission.
3525  ONIXS_B3_UMDF_MD_NODISCARD
3528  {
3530 
3531  return ordinary<MatchEventIndicator>(offset);
3532  }
3533 
3534  /// Update Action (NEW) - always replace.
3539  {
3540  return UpdateAction::NEW;
3541  }
3542 
3543  /// Entry type: Closing Price.
3548  {
3549  return EntryType::CLOSING_PRICE;
3550  }
3551 
3552  /// Identifies if the closing price represents a daily or
3553  /// entry from previous business day.
3554  ONIXS_B3_UMDF_MD_NODISCARD
3557  {
3559 
3560  return enumeration<OpenCloseSettlFlag>(offset);
3561  }
3562 
3563  /// Closing price. May be adjusted by corporate events.
3564  ONIXS_B3_UMDF_MD_NODISCARD
3567  {
3569 
3570  return decimal<Price8>(offset);
3571  }
3572 
3573  /// Date the instrument last traded.
3574  ONIXS_B3_UMDF_MD_NODISCARD
3575  bool lastTradeDate(Timestamp& value) const
3577  {
3578  typedef LocalMktDateOptional FieldValue;
3579 
3581 
3582  FieldValue fieldValue;
3583 
3584  if (ordinary(fieldValue, offset, NullLocalMktDateOptional()))
3585  {
3586  value = localMktDateToTimestamp(fieldValue);
3587  return true;
3588  }
3589  return false;
3590  }
3591 
3592  /// Used to specify the trading date for which a set of market
3593  /// data applies.
3594  ONIXS_B3_UMDF_MD_NODISCARD
3597  {
3599 
3600  return localMktDateToTimestamp(ordinary<LocalMktDate>(offset));
3601  }
3602 
3603  /// Date and time of market data entry.
3604  ONIXS_B3_UMDF_MD_NODISCARD
3607  {
3609 
3610  return ordinary(value, offset, NullUTCTimestampNanos());
3611  }
3612 
3613  /// Sequence number per instrument update. Zeroed in snapshot
3614  /// feed.
3615  ONIXS_B3_UMDF_MD_NODISCARD
3616  bool rptSeq(RptSeq& value) const
3618  {
3620 
3621  return ordinary(value, offset, NullRptSeq());
3622  }
3623 
3624  /// Minimal size of message body in bytes.
3627  static
3628  BlockLength
3630  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
3632  {
3633  return
3634  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
3635  36;
3636  }
3637 
3638  /// Size of message body in bytes.
3641  static
3642  BlockLength
3644  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
3646  {
3647  return
3648  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
3649  minimalBlockLength(version);
3650  }
3651 
3652  /// Minimal variable fields size (when variable-length fields are empty).
3654  ONIXS_B3_UMDF_MD_NODISCARD
3656  static
3657  MessageSize
3659  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
3660  {
3661  return
3662  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
3663  0;
3664  }
3665 
3666  /// \return class name.
3668  ONIXS_B3_UMDF_MD_NODISCARD
3670  static const Char* className()
3671  {
3672  return "ClosingPrice_17";
3673  }
3674 
3675  /// FIX message type.
3677  ONIXS_B3_UMDF_MD_NODISCARD
3679  static StrRef fixType()
3681  {
3682  return constructStrRef("ClosingPrice_17");
3683  }
3684 
3685  /// \return a human-readable presentation.
3686  ONIXS_B3_UMDF_MD_NODISCARD
3687  std::string toString() const;
3688 
3689 private:
3690  void checkLength(
3691  EncodedLength length, SchemaVersion version) const
3692  {
3693  const EncodedLength minimalRequiredLength =
3694  minimalBlockLength(version) +
3695  MessageHeader::Size +
3696  getMinimalVariableFieldsSize(version);
3697 
3698  checkBinaryLength(
3699  *this, length, minimalRequiredLength);
3700  }
3701 
3702  void checkCompatibility() const
3703  {
3704  assert(TemplateId == templateId());
3705 
3706  checkSchema<Schema>(schemaId(), version());
3707  checkLength(bufferSize(), version());
3708  }
3709 };
3710 
3711 /// Carries auction imbalance information, indicating the remaining quantity and to which side (buyer or seller) the auction is pending towards..
3714 : SbeMessage
3715 {
3716  /// Used template schema.
3718 
3719  /// Message template ID from SBE schema.
3720  enum { TemplateId = 19 };
3721 
3722  /// Initializes a blank instance.
3724 
3725  /// Creates an instance over the given memory block.
3727  void* data,
3728  EncodedLength length,
3729  NoInit)
3730  : SbeMessage(data, length)
3731  {
3732  checkCompatibility();
3733  }
3734 
3735  /// Creates an instance over the given SBE message.
3736  explicit
3738  const SbeMessage& message)
3739  : SbeMessage(message)
3740  {
3741  assert(message.valid());
3742 
3743  checkCompatibility();
3744  }
3745 
3746  /// Creates an instance over the given memory block.
3747  /// Performs no checks.
3749  void* data,
3750  EncodedLength length,
3751  NoInit,
3752  NoCheck)
3754  : SbeMessage(data, length, NoCheck())
3755  {
3756  assert(schemaId() == Schema::Id);
3757  assert(version() >= Schema::MinimalVersion);
3758  assert(TemplateId == templateId());
3759  }
3760 
3761  /// FIX Message Type.
3766  {
3767  return MessageType::MarketDataIncrementalRefresh;
3768  }
3769 
3770  /// Specifies the service pack release being applied at
3771  /// message level.
3776  {
3777  return ApplVerID::FIX50SP2;
3778  }
3779 
3780  /// Security ID as defined by B3. For the SecurityID list, see
3781  /// the Security Definition message in Market Data feed.
3782  ONIXS_B3_UMDF_MD_NODISCARD
3785  {
3787 
3788  return ordinary<SecurityID>(offset);
3789  }
3790 
3791  /// Identifies the class of the SecurityID (Exchange Symbol).
3796  {
3797  return SecurityIDSource::EXCHANGE_SYMBOL;
3798  }
3799 
3800  /// Market to which the symbol belongs.
3802  ONIXS_B3_UMDF_MD_NODISCARD
3806  {
3807  return constructStrRef("BVMF");
3808  }
3809 
3810  /// Identifies the end of the current event and if it is a
3811  /// retransmission.
3812  ONIXS_B3_UMDF_MD_NODISCARD
3815  {
3817 
3818  return ordinary<MatchEventIndicator>(offset);
3819  }
3820 
3821  /// Update Action (NEW or DELETE).
3822  ONIXS_B3_UMDF_MD_NODISCARD
3825  {
3827 
3828  return enumeration<UpdateAction>(offset);
3829  }
3830 
3831  /// Entry type: Imbalance.
3836  {
3837  return EntryType::IMBALANCE;
3838  }
3839 
3840  /// IMBALANCE_MORE_BUYERS, IMBALANCE_MORE_SELLERS, All bits
3841  /// off => BALANCED.
3842  ONIXS_B3_UMDF_MD_NODISCARD
3845  {
3847 
3848  return ordinary<ImbalanceCondition>(offset);
3849  }
3850 
3851  /// Remaining auction quantity.
3852  ONIXS_B3_UMDF_MD_NODISCARD
3853  bool mDEntrySize(QuantityOptional& value) const
3855  {
3857 
3858  return ordinary(value, offset, NullQuantityOptional());
3859  }
3860 
3861  /// Date and time of market data entry.
3862  ONIXS_B3_UMDF_MD_NODISCARD
3865  {
3867 
3868  return ordinary(value, offset, NullUTCTimestampNanos());
3869  }
3870 
3871  /// Sequence number per instrument update. Zeroed in snapshot
3872  /// feed.
3873  ONIXS_B3_UMDF_MD_NODISCARD
3874  bool rptSeq(RptSeq& value) const
3876  {
3878 
3879  return ordinary(value, offset, NullRptSeq());
3880  }
3881 
3882  /// Minimal size of message body in bytes.
3885  static
3886  BlockLength
3888  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
3890  {
3891  return
3892  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
3893  32;
3894  }
3895 
3896  /// Size of message body in bytes.
3901  {
3902  return
3903  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
3904  minimalBlockLength(version);
3905  }
3906 
3907  /// Minimal variable fields size (when variable-length fields are empty).
3909  ONIXS_B3_UMDF_MD_NODISCARD
3911  static
3912  MessageSize
3914  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
3915  {
3916  return
3917  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
3918  0;
3919  }
3920 
3921  /// \return class name.
3923  ONIXS_B3_UMDF_MD_NODISCARD
3925  static const Char* className()
3926  {
3927  return "AuctionImbalance_19";
3928  }
3929 
3930  /// FIX message type.
3932  ONIXS_B3_UMDF_MD_NODISCARD
3934  static StrRef fixType()
3936  {
3937  return constructStrRef("AuctionImbalance_19");
3938  }
3939 
3940  /// \return a human-readable presentation.
3941  ONIXS_B3_UMDF_MD_NODISCARD
3942  std::string toString() const;
3943 
3944 private:
3945  void checkLength(
3946  EncodedLength length, SchemaVersion version) const
3947  {
3948  const EncodedLength minimalRequiredLength =
3949  minimalBlockLength(version) +
3950  MessageHeader::Size +
3951  getMinimalVariableFieldsSize(version);
3952 
3953  checkBinaryLength(
3954  *this, length, minimalRequiredLength);
3955  }
3956 
3957  void checkCompatibility() const
3958  {
3959  assert(TemplateId == templateId());
3960 
3961  checkSchema<Schema>(schemaId(), version());
3962  checkLength(bufferSize(), version());
3963  }
3964 };
3965 
3966 /// Quantity Band..
3969 : SbeMessage
3970 {
3971  /// Used template schema.
3973 
3974  /// Message template ID from SBE schema.
3975  enum { TemplateId = 21 };
3976 
3977  /// Initializes a blank instance.
3979 
3980  /// Creates an instance over the given memory block.
3982  void* data,
3983  EncodedLength length,
3984  NoInit)
3985  : SbeMessage(data, length)
3986  {
3987  checkCompatibility();
3988  }
3989 
3990  /// Creates an instance over the given SBE message.
3991  explicit
3993  const SbeMessage& message)
3994  : SbeMessage(message)
3995  {
3996  assert(message.valid());
3997 
3998  checkCompatibility();
3999  }
4000 
4001  /// Creates an instance over the given memory block.
4002  /// Performs no checks.
4004  void* data,
4005  EncodedLength length,
4006  NoInit,
4007  NoCheck)
4009  : SbeMessage(data, length, NoCheck())
4010  {
4011  assert(schemaId() == Schema::Id);
4012  assert(version() >= Schema::MinimalVersion);
4013  assert(TemplateId == templateId());
4014  }
4015 
4016  /// FIX Message Type.
4021  {
4022  return MessageType::MarketDataIncrementalRefresh;
4023  }
4024 
4025  /// Specifies the service pack release being applied at
4026  /// message level.
4031  {
4032  return ApplVerID::FIX50SP2;
4033  }
4034 
4035  /// Security ID as defined by B3. For the SecurityID list, see
4036  /// the Security Definition message in Market Data feed.
4037  ONIXS_B3_UMDF_MD_NODISCARD
4040  {
4042 
4043  return ordinary<SecurityID>(offset);
4044  }
4045 
4046  /// Identifies the class of the SecurityID (Exchange Symbol).
4051  {
4052  return SecurityIDSource::EXCHANGE_SYMBOL;
4053  }
4054 
4055  /// Market to which the symbol belongs.
4057  ONIXS_B3_UMDF_MD_NODISCARD
4061  {
4062  return constructStrRef("BVMF");
4063  }
4064 
4065  /// Identifies the end of the current event and if it is a
4066  /// retransmission.
4067  ONIXS_B3_UMDF_MD_NODISCARD
4070  {
4072 
4073  return ordinary<MatchEventIndicator>(offset);
4074  }
4075 
4076  /// Update Action (NEW) - always replace.
4081  {
4082  return UpdateAction::NEW;
4083  }
4084 
4085  /// Entry type: Quantity Band.
4090  {
4091  return EntryType::QUANTITY_BAND;
4092  }
4093 
4094  /// Daily average shares traded within 30 days – equity market
4095  /// only. Previously known as DailyAvgShares30D. Always 0 for
4096  /// Derivatives.
4097  ONIXS_B3_UMDF_MD_NODISCARD
4098  bool
4100  QuantityVolumeOptional& value) const
4102  {
4104 
4105  return ordinary(value, offset, NullQuantityVolumeOptional());
4106  }
4107 
4108  /// The maximum order quantity that can be submitted for a
4109  /// security. The value is the minimum between % of shares
4110  /// issued and % of average traded quantity within 30 days.
4111  ONIXS_B3_UMDF_MD_NODISCARD
4112  bool
4114  QuantityVolumeOptional& value) const
4116  {
4118 
4119  return ordinary(value, offset, NullQuantityVolumeOptional());
4120  }
4121 
4122  /// Date and time of market data entry.
4123  ONIXS_B3_UMDF_MD_NODISCARD
4126  {
4128 
4129  return ordinary(value, offset, NullUTCTimestampNanos());
4130  }
4131 
4132  /// Sequence number per instrument update. Zeroed in snapshot
4133  /// feed.
4134  ONIXS_B3_UMDF_MD_NODISCARD
4135  bool rptSeq(RptSeq& value) const
4137  {
4139 
4140  return ordinary(value, offset, NullRptSeq());
4141  }
4142 
4143  /// Minimal size of message body in bytes.
4146  static
4147  BlockLength
4149  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
4151  {
4152  return
4153  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
4154  40;
4155  }
4156 
4157  /// Size of message body in bytes.
4160  static
4161  BlockLength
4163  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
4165  {
4166  return
4167  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
4168  minimalBlockLength(version);
4169  }
4170 
4171  /// Minimal variable fields size (when variable-length fields are empty).
4173  ONIXS_B3_UMDF_MD_NODISCARD
4175  static
4176  MessageSize
4178  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
4179  {
4180  return
4181  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
4182  0;
4183  }
4184 
4185  /// \return class name.
4187  ONIXS_B3_UMDF_MD_NODISCARD
4189  static const Char* className()
4190  {
4191  return "QuantityBand_21";
4192  }
4193 
4194  /// FIX message type.
4196  ONIXS_B3_UMDF_MD_NODISCARD
4198  static StrRef fixType()
4200  {
4201  return constructStrRef("QuantityBand_21");
4202  }
4203 
4204  /// \return a human-readable presentation.
4205  ONIXS_B3_UMDF_MD_NODISCARD
4206  std::string toString() const;
4207 
4208 private:
4209  void checkLength(
4210  EncodedLength length, SchemaVersion version) const
4211  {
4212  const EncodedLength minimalRequiredLength =
4213  minimalBlockLength(version) +
4214  MessageHeader::Size +
4215  getMinimalVariableFieldsSize(version);
4216 
4217  checkBinaryLength(
4218  *this, length, minimalRequiredLength);
4219  }
4220 
4221  void checkCompatibility() const
4222  {
4223  assert(TemplateId == templateId());
4224 
4225  checkSchema<Schema>(schemaId(), version());
4226  checkLength(bufferSize(), version());
4227  }
4228 };
4229 
4230 /// Price Banding (tunnel)..
4233 : SbeMessage
4234 {
4235  /// Used template schema.
4237 
4238  /// Message template ID from SBE schema.
4239  enum { TemplateId = 22 };
4240 
4241  /// Initializes a blank instance.
4243 
4244  /// Creates an instance over the given memory block.
4246  void* data,
4247  EncodedLength length,
4248  NoInit)
4249  : SbeMessage(data, length)
4250  {
4251  checkCompatibility();
4252  }
4253 
4254  /// Creates an instance over the given SBE message.
4255  explicit
4257  const SbeMessage& message)
4258  : SbeMessage(message)
4259  {
4260  assert(message.valid());
4261 
4262  checkCompatibility();
4263  }
4264 
4265  /// Creates an instance over the given memory block.
4266  /// Performs no checks.
4268  void* data,
4269  EncodedLength length,
4270  NoInit,
4271  NoCheck)
4273  : SbeMessage(data, length, NoCheck())
4274  {
4275  assert(schemaId() == Schema::Id);
4276  assert(version() >= Schema::MinimalVersion);
4277  assert(TemplateId == templateId());
4278  }
4279 
4280  /// FIX Message Type.
4285  {
4286  return MessageType::MarketDataIncrementalRefresh;
4287  }
4288 
4289  /// Specifies the service pack release being applied at
4290  /// message level.
4295  {
4296  return ApplVerID::FIX50SP2;
4297  }
4298 
4299  /// Security ID as defined by B3. For the SecurityID list, see
4300  /// the Security Definition message in Market Data feed.
4301  ONIXS_B3_UMDF_MD_NODISCARD
4304  {
4306 
4307  return ordinary<SecurityID>(offset);
4308  }
4309 
4310  /// Identifies the class of the SecurityID (Exchange Symbol).
4315  {
4316  return SecurityIDSource::EXCHANGE_SYMBOL;
4317  }
4318 
4319  /// Market to which the symbol belongs.
4321  ONIXS_B3_UMDF_MD_NODISCARD
4325  {
4326  return constructStrRef("BVMF");
4327  }
4328 
4329  /// Identifies the end of the current event and if it is a
4330  /// retransmission.
4331  ONIXS_B3_UMDF_MD_NODISCARD
4334  {
4336 
4337  return ordinary<MatchEventIndicator>(offset);
4338  }
4339 
4340  /// Update Action (NEW) - always replace.
4345  {
4346  return UpdateAction::NEW;
4347  }
4348 
4349  /// Entry type: Price Band.
4354  {
4355  return EntryType::PRICE_BAND;
4356  }
4357 
4358  /// Indicates the type of price banding (tunnel).
4359  ONIXS_B3_UMDF_MD_NODISCARD
4360  bool
4362  PriceBandType::Enum& value) const
4364  {
4366 
4367  return enumeration<PriceBandType>(value, offset, NullUInt8());
4368  }
4369 
4370  /// Describes how the price limits are expressed.
4371  ONIXS_B3_UMDF_MD_NODISCARD
4372  bool
4374  PriceLimitType::Enum& value) const
4376  {
4378 
4379  return enumeration<PriceLimitType>(value, offset, NullUInt8());
4380  }
4381 
4382  /// Band Midpoint Type, used with Auction Price Banding. Only
4383  /// sent for Rejection and Auction Bands when PriceLimitType
4384  /// (1306) equals to 2 (Percentage).
4385  ONIXS_B3_UMDF_MD_NODISCARD
4386  bool
4388  PriceBandMidpointPriceType::Enum& value) const
4390  {
4392 
4393  return enumeration<PriceBandMidpointPriceType>(value, offset, NullUInt8());
4394  }
4395 
4396  /// Allowable low limit price for the trading day. A key
4397  /// parameter in validating order price. Used as the lower
4398  /// band for validating order prices. Orders submitted with
4399  /// prices below the lower limit will be rejected.
4400  ONIXS_B3_UMDF_MD_NODISCARD
4401  bool lowLimitPrice(PriceOptional& value) const
4403  {
4405 
4406  return decimal(value, offset, NullPriceOptional());
4407  }
4408 
4409  /// Allowable high limit price for the trading day. A key
4410  /// parameter in validating order price. Used as the upper
4411  /// band for validating order prices. Orders submitted with
4412  /// prices above the upper limit will be rejected.
4413  ONIXS_B3_UMDF_MD_NODISCARD
4414  bool highLimitPrice(PriceOptional& value) const
4416  {
4418 
4419  return decimal(value, offset, NullPriceOptional());
4420  }
4421 
4422  /// Reference price for the current trading price range. The
4423  /// value may be the reference price, settlement price or
4424  /// closing price of the prior trading day. Sent only for
4425  /// Economic Indicators.
4426  ONIXS_B3_UMDF_MD_NODISCARD
4427  bool tradingReferencePrice(Fixed8& value) const
4429  {
4431 
4432  return decimal(value, offset, NullFixed8());
4433  }
4434 
4435  /// Date and time of market data entry.
4436  ONIXS_B3_UMDF_MD_NODISCARD
4439  {
4441 
4442  return ordinary(value, offset, NullUTCTimestampNanos());
4443  }
4444 
4445  /// Sequence number per instrument update. Zeroed in snapshot
4446  /// feed.
4447  ONIXS_B3_UMDF_MD_NODISCARD
4448  bool rptSeq(RptSeq& value) const
4450  {
4452 
4453  return ordinary(value, offset, NullRptSeq());
4454  }
4455 
4456  /// Minimal size of message body in bytes.
4459  static
4460  BlockLength
4462  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
4464  {
4465  return
4466  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
4467  48;
4468  }
4469 
4470  /// Size of message body in bytes.
4475  {
4476  return
4477  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
4478  minimalBlockLength(version);
4479  }
4480 
4481  /// Minimal variable fields size (when variable-length fields are empty).
4483  ONIXS_B3_UMDF_MD_NODISCARD
4485  static
4486  MessageSize
4488  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
4489  {
4490  return
4491  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
4492  0;
4493  }
4494 
4495  /// \return class name.
4497  ONIXS_B3_UMDF_MD_NODISCARD
4499  static const Char* className()
4500  {
4501  return "PriceBand_22";
4502  }
4503 
4504  /// FIX message type.
4506  ONIXS_B3_UMDF_MD_NODISCARD
4508  static StrRef fixType()
4510  {
4511  return constructStrRef("PriceBand_22");
4512  }
4513 
4514  /// \return a human-readable presentation.
4515  ONIXS_B3_UMDF_MD_NODISCARD
4516  std::string toString() const;
4517 
4518 private:
4519  void checkLength(
4520  EncodedLength length, SchemaVersion version) const
4521  {
4522  const EncodedLength minimalRequiredLength =
4523  minimalBlockLength(version) +
4524  MessageHeader::Size +
4525  getMinimalVariableFieldsSize(version);
4526 
4527  checkBinaryLength(
4528  *this, length, minimalRequiredLength);
4529  }
4530 
4531  void checkCompatibility() const
4532  {
4533  assert(TemplateId == templateId());
4534 
4535  checkSchema<Schema>(schemaId(), version());
4536  checkLength(bufferSize(), version());
4537  }
4538 };
4539 
4540 /// The highest price traded for the security in the trading session..
4543 : SbeMessage
4544 {
4545  /// Used template schema.
4547 
4548  /// Message template ID from SBE schema.
4549  enum { TemplateId = 24 };
4550 
4551  /// Initializes a blank instance.
4553 
4554  /// Creates an instance over the given memory block.
4556  void* data,
4557  EncodedLength length,
4558  NoInit)
4559  : SbeMessage(data, length)
4560  {
4561  checkCompatibility();
4562  }
4563 
4564  /// Creates an instance over the given SBE message.
4565  explicit
4567  const SbeMessage& message)
4568  : SbeMessage(message)
4569  {
4570  assert(message.valid());
4571 
4572  checkCompatibility();
4573  }
4574 
4575  /// Creates an instance over the given memory block.
4576  /// Performs no checks.
4578  void* data,
4579  EncodedLength length,
4580  NoInit,
4581  NoCheck)
4583  : SbeMessage(data, length, NoCheck())
4584  {
4585  assert(schemaId() == Schema::Id);
4586  assert(version() >= Schema::MinimalVersion);
4587  assert(TemplateId == templateId());
4588  }
4589 
4590  /// FIX Message Type.
4595  {
4596  return MessageType::MarketDataIncrementalRefresh;
4597  }
4598 
4599  /// Specifies the service pack release being applied at
4600  /// message level.
4605  {
4606  return ApplVerID::FIX50SP2;
4607  }
4608 
4609  /// Security ID as defined by B3. For the SecurityID list, see
4610  /// the Security Definition message in Market Data feed.
4611  ONIXS_B3_UMDF_MD_NODISCARD
4614  {
4616 
4617  return ordinary<SecurityID>(offset);
4618  }
4619 
4620  /// Identifies the class of the SecurityID (Exchange Symbol).
4625  {
4626  return SecurityIDSource::EXCHANGE_SYMBOL;
4627  }
4628 
4629  /// Market to which the symbol belongs.
4631  ONIXS_B3_UMDF_MD_NODISCARD
4635  {
4636  return constructStrRef("BVMF");
4637  }
4638 
4639  /// Identifies the end of the current event and if it is a
4640  /// retransmission.
4641  ONIXS_B3_UMDF_MD_NODISCARD
4644  {
4646 
4647  return ordinary<MatchEventIndicator>(offset);
4648  }
4649 
4650  /// Update Action (NEW or DELETE).
4651  ONIXS_B3_UMDF_MD_NODISCARD
4654  {
4656 
4657  return enumeration<UpdateAction>(offset);
4658  }
4659 
4660  /// Entry type: Trading Session High Price.
4665  {
4666  return EntryType::SESSION_HIGH_PRICE;
4667  }
4668 
4669  /// Used to specify the trading date for which a set of market
4670  /// data applies.
4671  ONIXS_B3_UMDF_MD_NODISCARD
4674  {
4676 
4677  return localMktDateToTimestamp(ordinary<LocalMktDate>(offset));
4678  }
4679 
4680  /// Trading Session High Price.
4681  ONIXS_B3_UMDF_MD_NODISCARD
4684  {
4686 
4687  return decimal<Price>(offset);
4688  }
4689 
4690  /// Date and time of market data entry.
4691  ONIXS_B3_UMDF_MD_NODISCARD
4694  {
4696 
4697  return ordinary(value, offset, NullUTCTimestampNanos());
4698  }
4699 
4700  /// Sequence number per instrument update. Zeroed in snapshot
4701  /// feed.
4702  ONIXS_B3_UMDF_MD_NODISCARD
4703  bool rptSeq(RptSeq& value) const
4705  {
4707 
4708  return ordinary(value, offset, NullRptSeq());
4709  }
4710 
4711  /// Minimal size of message body in bytes.
4714  static
4715  BlockLength
4717  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
4719  {
4720  return
4721  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
4722  32;
4723  }
4724 
4725  /// Size of message body in bytes.
4730  {
4731  return
4732  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
4733  minimalBlockLength(version);
4734  }
4735 
4736  /// Minimal variable fields size (when variable-length fields are empty).
4738  ONIXS_B3_UMDF_MD_NODISCARD
4740  static
4741  MessageSize
4743  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
4744  {
4745  return
4746  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
4747  0;
4748  }
4749 
4750  /// \return class name.
4752  ONIXS_B3_UMDF_MD_NODISCARD
4754  static const Char* className()
4755  {
4756  return "HighPrice_24";
4757  }
4758 
4759  /// FIX message type.
4761  ONIXS_B3_UMDF_MD_NODISCARD
4763  static StrRef fixType()
4765  {
4766  return constructStrRef("HighPrice_24");
4767  }
4768 
4769  /// \return a human-readable presentation.
4770  ONIXS_B3_UMDF_MD_NODISCARD
4771  std::string toString() const;
4772 
4773 private:
4774  void checkLength(
4775  EncodedLength length, SchemaVersion version) const
4776  {
4777  const EncodedLength minimalRequiredLength =
4778  minimalBlockLength(version) +
4779  MessageHeader::Size +
4780  getMinimalVariableFieldsSize(version);
4781 
4782  checkBinaryLength(
4783  *this, length, minimalRequiredLength);
4784  }
4785 
4786  void checkCompatibility() const
4787  {
4788  assert(TemplateId == templateId());
4789 
4790  checkSchema<Schema>(schemaId(), version());
4791  checkLength(bufferSize(), version());
4792  }
4793 };
4794 
4795 /// The lowest price traded for the security in the trading session..
4798 : SbeMessage
4799 {
4800  /// Used template schema.
4802 
4803  /// Message template ID from SBE schema.
4804  enum { TemplateId = 25 };
4805 
4806  /// Initializes a blank instance.
4808 
4809  /// Creates an instance over the given memory block.
4811  void* data,
4812  EncodedLength length,
4813  NoInit)
4814  : SbeMessage(data, length)
4815  {
4816  checkCompatibility();
4817  }
4818 
4819  /// Creates an instance over the given SBE message.
4820  explicit
4822  const SbeMessage& message)
4823  : SbeMessage(message)
4824  {
4825  assert(message.valid());
4826 
4827  checkCompatibility();
4828  }
4829 
4830  /// Creates an instance over the given memory block.
4831  /// Performs no checks.
4833  void* data,
4834  EncodedLength length,
4835  NoInit,
4836  NoCheck)
4838  : SbeMessage(data, length, NoCheck())
4839  {
4840  assert(schemaId() == Schema::Id);
4841  assert(version() >= Schema::MinimalVersion);
4842  assert(TemplateId == templateId());
4843  }
4844 
4845  /// FIX Message Type.
4850  {
4851  return MessageType::MarketDataIncrementalRefresh;
4852  }
4853 
4854  /// Specifies the service pack release being applied at
4855  /// message level.
4860  {
4861  return ApplVerID::FIX50SP2;
4862  }
4863 
4864  /// Security ID as defined by B3. For the SecurityID list, see
4865  /// the Security Definition message in Market Data feed.
4866  ONIXS_B3_UMDF_MD_NODISCARD
4869  {
4871 
4872  return ordinary<SecurityID>(offset);
4873  }
4874 
4875  /// Identifies the class of the SecurityID (Exchange Symbol).
4880  {
4881  return SecurityIDSource::EXCHANGE_SYMBOL;
4882  }
4883 
4884  /// Market to which the symbol belongs.
4886  ONIXS_B3_UMDF_MD_NODISCARD
4890  {
4891  return constructStrRef("BVMF");
4892  }
4893 
4894  /// Identifies the end of the current event and if it is a
4895  /// retransmission.
4896  ONIXS_B3_UMDF_MD_NODISCARD
4899  {
4901 
4902  return ordinary<MatchEventIndicator>(offset);
4903  }
4904 
4905  /// Update Action (NEW or DELETE).
4906  ONIXS_B3_UMDF_MD_NODISCARD
4909  {
4911 
4912  return enumeration<UpdateAction>(offset);
4913  }
4914 
4915  /// Entry type: Trading Session Low Price.
4920  {
4921  return EntryType::SESSION_LOW_PRICE;
4922  }
4923 
4924  /// Used to specify the trading date for which a set of market
4925  /// data applies.
4926  ONIXS_B3_UMDF_MD_NODISCARD
4929  {
4931 
4932  return localMktDateToTimestamp(ordinary<LocalMktDate>(offset));
4933  }
4934 
4935  /// Trading Session Low Price.
4936  ONIXS_B3_UMDF_MD_NODISCARD
4939  {
4941 
4942  return decimal<Price>(offset);
4943  }
4944 
4945  /// Date and time of market data entry.
4946  ONIXS_B3_UMDF_MD_NODISCARD
4949  {
4951 
4952  return ordinary(value, offset, NullUTCTimestampNanos());
4953  }
4954 
4955  /// Sequence number per instrument update. Zeroed in snapshot
4956  /// feed.
4957  ONIXS_B3_UMDF_MD_NODISCARD
4958  bool rptSeq(RptSeq& value) const
4960  {
4962 
4963  return ordinary(value, offset, NullRptSeq());
4964  }
4965 
4966  /// Minimal size of message body in bytes.
4969  static
4970  BlockLength
4972  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
4974  {
4975  return
4976  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
4977  32;
4978  }
4979 
4980  /// Size of message body in bytes.
4985  {
4986  return
4987  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
4988  minimalBlockLength(version);
4989  }
4990 
4991  /// Minimal variable fields size (when variable-length fields are empty).
4993  ONIXS_B3_UMDF_MD_NODISCARD
4995  static
4996  MessageSize
4998  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
4999  {
5000  return
5001  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
5002  0;
5003  }
5004 
5005  /// \return class name.
5007  ONIXS_B3_UMDF_MD_NODISCARD
5009  static const Char* className()
5010  {
5011  return "LowPrice_25";
5012  }
5013 
5014  /// FIX message type.
5016  ONIXS_B3_UMDF_MD_NODISCARD
5018  static StrRef fixType()
5020  {
5021  return constructStrRef("LowPrice_25");
5022  }
5023 
5024  /// \return a human-readable presentation.
5025  ONIXS_B3_UMDF_MD_NODISCARD
5026  std::string toString() const;
5027 
5028 private:
5029  void checkLength(
5030  EncodedLength length, SchemaVersion version) const
5031  {
5032  const EncodedLength minimalRequiredLength =
5033  minimalBlockLength(version) +
5034  MessageHeader::Size +
5035  getMinimalVariableFieldsSize(version);
5036 
5037  checkBinaryLength(
5038  *this, length, minimalRequiredLength);
5039  }
5040 
5041  void checkCompatibility() const
5042  {
5043  assert(TemplateId == templateId());
5044 
5045  checkSchema<Schema>(schemaId(), version());
5046  checkLength(bufferSize(), version());
5047  }
5048 };
5049 
5050 /// The latest price traded for the security in the trading session..
5053 : SbeMessage
5054 {
5055  /// Used template schema.
5057 
5058  /// Message template ID from SBE schema.
5059  enum { TemplateId = 27 };
5060 
5061  /// Initializes a blank instance.
5063 
5064  /// Creates an instance over the given memory block.
5066  void* data,
5067  EncodedLength length,
5068  NoInit)
5069  : SbeMessage(data, length)
5070  {
5071  checkCompatibility();
5072  }
5073 
5074  /// Creates an instance over the given SBE message.
5075  explicit
5077  const SbeMessage& message)
5078  : SbeMessage(message)
5079  {
5080  assert(message.valid());
5081 
5082  checkCompatibility();
5083  }
5084 
5085  /// Creates an instance over the given memory block.
5086  /// Performs no checks.
5088  void* data,
5089  EncodedLength length,
5090  NoInit,
5091  NoCheck)
5093  : SbeMessage(data, length, NoCheck())
5094  {
5095  assert(schemaId() == Schema::Id);
5096  assert(version() >= Schema::MinimalVersion);
5097  assert(TemplateId == templateId());
5098  }
5099 
5100  /// FIX Message Type.
5105  {
5106  return MessageType::MarketDataIncrementalRefresh;
5107  }
5108 
5109  /// Specifies the service pack release being applied at
5110  /// message level.
5115  {
5116  return ApplVerID::FIX50SP2;
5117  }
5118 
5119  /// Security ID as defined by B3. For the SecurityID list, see
5120  /// the Security Definition message in Market Data feed.
5121  ONIXS_B3_UMDF_MD_NODISCARD
5124  {
5126 
5127  return ordinary<SecurityID>(offset);
5128  }
5129 
5130  /// Identifies the class of the SecurityID (Exchange Symbol).
5135  {
5136  return SecurityIDSource::EXCHANGE_SYMBOL;
5137  }
5138 
5139  /// Market to which the symbol belongs.
5141  ONIXS_B3_UMDF_MD_NODISCARD
5145  {
5146  return constructStrRef("BVMF");
5147  }
5148 
5149  /// Identifies the end of the current event and if it is a
5150  /// retransmission.
5151  ONIXS_B3_UMDF_MD_NODISCARD
5154  {
5156 
5157  return ordinary<MatchEventIndicator>(offset);
5158  }
5159 
5160  /// Update Action (NEW) - always replace.
5165  {
5166  return UpdateAction::NEW;
5167  }
5168 
5169  /// Entry type: Last Trade Price.
5174  {
5175  return EntryType::TRADE;
5176  }
5177 
5178  /// Identifier for trading session.
5179  ONIXS_B3_UMDF_MD_NODISCARD
5182  {
5184 
5185  return enumeration<TradingSessionID>(offset);
5186  }
5187 
5188  /// Set of conditions describing a trade.
5189  ONIXS_B3_UMDF_MD_NODISCARD
5192  {
5194 
5195  return ordinary<TradeCondition>(offset);
5196  }
5197 
5198  /// Last Trade Price.
5199  ONIXS_B3_UMDF_MD_NODISCARD
5202  {
5204 
5205  return decimal<Price>(offset);
5206  }
5207 
5208  /// Quantity or volume represented by the Market Data Entry.
5209  ONIXS_B3_UMDF_MD_NODISCARD
5212  {
5214 
5215  return ordinary<Quantity>(offset);
5216  }
5217 
5218  /// Contains the unique identifier for this trade per
5219  /// instrument + trading date, as assigned by the exchange.
5220  /// Required if reporting a Trade.
5221  ONIXS_B3_UMDF_MD_NODISCARD
5224  {
5226 
5227  return ordinary<TradeID>(offset);
5228  }
5229 
5230  /// For reporting trades (buying party).
5231  ONIXS_B3_UMDF_MD_NODISCARD
5232  bool mDEntryBuyer(FirmOptional& value) const
5234  {
5236 
5237  return ordinary(value, offset, NullFirmOptional());
5238  }
5239 
5240  /// For reporting trades (selling party).
5241  ONIXS_B3_UMDF_MD_NODISCARD
5242  bool mDEntrySeller(FirmOptional& value) const
5244  {
5246 
5247  return ordinary(value, offset, NullFirmOptional());
5248  }
5249 
5250  /// Used to specify the trading date for which a set of market
5251  /// data applies.
5252  ONIXS_B3_UMDF_MD_NODISCARD
5255  {
5257 
5258  return localMktDateToTimestamp(ordinary<LocalMktDate>(offset));
5259  }
5260 
5261  /// Date and time of market data entry.
5262  ONIXS_B3_UMDF_MD_NODISCARD
5265  {
5267 
5268  return ordinary(value, offset, NullUTCTimestampNanos());
5269  }
5270 
5271  /// Sequence number per instrument update. Zeroed in snapshot
5272  /// feed.
5273  ONIXS_B3_UMDF_MD_NODISCARD
5274  bool rptSeq(RptSeq& value) const
5276  {
5278 
5279  return ordinary(value, offset, NullRptSeq());
5280  }
5281 
5282  /// Specifies the number of days that may elapse before
5283  /// delivery of the security. Only used for trades in forward
5284  /// market.
5285  ONIXS_B3_UMDF_MD_NODISCARD
5286  bool sellerDays(UInt16NULL& value) const
5288  {
5290 
5291  return ordinary(value, offset, NullUInt16NULL());
5292  }
5293 
5294  /// Interest Rate of the Termo Trade. Expressed in decimal
5295  /// form. For example, 1% points is expressed and sent as
5296  /// 0.01. One basis point is represented as 0.0001.
5297  ONIXS_B3_UMDF_MD_NODISCARD
5298  bool mDEntryInterestRate(Percentage& value) const
5300  {
5302 
5303  return decimal(value, offset, NullPercentage());
5304  }
5305 
5306  /// Sub type of trade assigned to a trade.
5307  ONIXS_B3_UMDF_MD_NODISCARD
5308  bool trdSubType(TrdSubType::Enum& value) const
5310  {
5312 
5313  return enumeration<TrdSubType>(value, offset, NullUInt8NULL());
5314  }
5315 
5316  /// Minimal size of message body in bytes.
5319  static
5320  BlockLength
5322  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
5324  {
5325  return
5326  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
5327  68;
5328  }
5329 
5330  /// Size of message body in bytes.
5333  static
5334  BlockLength
5336  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
5338  {
5339  return
5340  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
5341  68;
5342  }
5343 
5344  /// Minimal variable fields size (when variable-length fields are empty).
5346  ONIXS_B3_UMDF_MD_NODISCARD
5348  static
5349  MessageSize
5351  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
5352  {
5353  return
5354  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
5355  0;
5356  }
5357 
5358  /// \return class name.
5360  ONIXS_B3_UMDF_MD_NODISCARD
5362  static const Char* className()
5363  {
5364  return "LastTradePrice_27";
5365  }
5366 
5367  /// FIX message type.
5369  ONIXS_B3_UMDF_MD_NODISCARD
5371  static StrRef fixType()
5373  {
5374  return constructStrRef("LastTradePrice_27");
5375  }
5376 
5377  /// \return a human-readable presentation.
5378  ONIXS_B3_UMDF_MD_NODISCARD
5379  std::string toString() const;
5380 
5381 private:
5382  void checkLength(
5383  EncodedLength length, SchemaVersion version) const
5384  {
5385  const EncodedLength minimalRequiredLength =
5386  minimalBlockLength(version) +
5387  MessageHeader::Size +
5388  getMinimalVariableFieldsSize(version);
5389 
5390  checkBinaryLength(
5391  *this, length, minimalRequiredLength);
5392  }
5393 
5394  void checkCompatibility() const
5395  {
5396  assert(TemplateId == templateId());
5397 
5398  checkSchema<Schema>(schemaId(), version());
5399  checkLength(bufferSize(), version());
5400  }
5401 };
5402 
5403 /// Settlement price or the previous day’s adjusted closing price..
5406 : SbeMessage
5407 {
5408  /// Used template schema.
5410 
5411  /// Message template ID from SBE schema.
5412  enum { TemplateId = 28 };
5413 
5414  /// Available since version.
5415  enum { SinceVersion = 9 };
5416 
5417  /// Initializes a blank instance.
5419 
5420  /// Creates an instance over the given memory block.
5422  void* data,
5423  EncodedLength length,
5424  NoInit)
5425  : SbeMessage(data, length)
5426  {
5427  assert(this->version() >= SinceVersion);
5428  checkCompatibility();
5429  }
5430 
5431  /// Creates an instance over the given SBE message.
5432  explicit
5434  const SbeMessage& message)
5435  : SbeMessage(message)
5436  {
5437  assert(message.valid());
5438  assert(this->version() >= SinceVersion);
5439 
5440  checkCompatibility();
5441  }
5442 
5443  /// Creates an instance over the given memory block.
5444  /// Performs no checks.
5446  void* data,
5447  EncodedLength length,
5448  NoInit,
5449  NoCheck)
5451  : SbeMessage(data, length, NoCheck())
5452  {
5453  assert(schemaId() == Schema::Id);
5454  assert(version() >= SinceVersion);
5455  assert(TemplateId == templateId());
5456  }
5457 
5458  /// FIX Message Type.
5463  {
5464  return MessageType::MarketDataIncrementalRefresh;
5465  }
5466 
5467  /// Specifies the service pack release being applied at
5468  /// message level.
5473  {
5474  return ApplVerID::FIX50SP2;
5475  }
5476 
5477  /// Security ID as defined by B3. For the SecurityID list, see
5478  /// the Security Definition message in Market Data feed.
5479  ONIXS_B3_UMDF_MD_NODISCARD
5482  {
5484 
5485  return ordinary<SecurityID>(offset);
5486  }
5487 
5488  /// Identifies the class of the SecurityID (Exchange Symbol).
5493  {
5494  return SecurityIDSource::EXCHANGE_SYMBOL;
5495  }
5496 
5497  /// Market to which the symbol belongs.
5499  ONIXS_B3_UMDF_MD_NODISCARD
5503  {
5504  return constructStrRef("BVMF");
5505  }
5506 
5507  /// Identifies the end of the current event and if it is a
5508  /// retransmission.
5509  ONIXS_B3_UMDF_MD_NODISCARD
5512  {
5514 
5515  return ordinary<MatchEventIndicator>(offset);
5516  }
5517 
5518  /// Update Action (NEW) - always replace.
5523  {
5524  return UpdateAction::NEW;
5525  }
5526 
5527  /// Entry type: Settlement Price.
5532  {
5533  return EntryType::SETTLEMENT_PRICE;
5534  }
5535 
5536  /// Used to specify the trading date for which a set of market
5537  /// data applies.
5538  ONIXS_B3_UMDF_MD_NODISCARD
5541  {
5543 
5544  return localMktDateToTimestamp(ordinary<LocalMktDate>(offset));
5545  }
5546 
5547  /// Settlement Price.
5548  ONIXS_B3_UMDF_MD_NODISCARD
5551  {
5553 
5554  return decimal<Price>(offset);
5555  }
5556 
5557  /// Date and time of market data entry.
5558  ONIXS_B3_UMDF_MD_NODISCARD
5561  {
5563 
5564  return ordinary(value, offset, NullUTCTimestampNanos());
5565  }
5566 
5567  /// Identifies if the settlement price represents a daily,
5568  /// preliminary or an entry from previous business day.
5569  ONIXS_B3_UMDF_MD_NODISCARD
5572  {
5574 
5575  return enumeration<OpenCloseSettlFlag>(offset);
5576  }
5577 
5578  /// Code to represent the price type.
5579  ONIXS_B3_UMDF_MD_NODISCARD
5580  bool priceType(PriceType::Enum& value) const
5582  {
5584 
5585  return enumeration<PriceType>(value, offset, NullUInt8NULL());
5586  }
5587 
5588  /// Type of settlement price: FINAL, THEORETICAL or UPDATED.
5589  ONIXS_B3_UMDF_MD_NODISCARD
5592  {
5594 
5595  return enumeration<SettlPriceType>(offset);
5596  }
5597 
5598  /// Sequence number per instrument update. Zeroed in snapshot
5599  /// feed.
5600  ONIXS_B3_UMDF_MD_NODISCARD
5601  bool rptSeq(RptSeq& value) const
5603  {
5605 
5606  return ordinary(value, offset, NullRptSeq());
5607  }
5608 
5609  /// Minimal size of message body in bytes.
5612  static
5613  BlockLength
5615  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
5617  {
5618  return
5619  ONIXS_B3_UMDF_MD_ASSERT(version >= SinceVersion),
5620  36;
5621  }
5622 
5623  /// Size of message body in bytes.
5626  static
5627  BlockLength
5629  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
5631  {
5632  return
5633  ONIXS_B3_UMDF_MD_ASSERT(version >= SinceVersion),
5634  36;
5635  }
5636 
5637  /// Minimal variable fields size (when variable-length fields are empty).
5639  ONIXS_B3_UMDF_MD_NODISCARD
5641  static
5642  MessageSize
5644  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
5645  {
5646  return
5647  ONIXS_B3_UMDF_MD_ASSERT(version >= SinceVersion),
5648  0;
5649  }
5650 
5651  /// \return class name.
5653  ONIXS_B3_UMDF_MD_NODISCARD
5655  static const Char* className()
5656  {
5657  return "SettlementPrice_28";
5658  }
5659 
5660  /// FIX message type.
5662  ONIXS_B3_UMDF_MD_NODISCARD
5664  static StrRef fixType()
5666  {
5667  return constructStrRef("SettlementPrice_28");
5668  }
5669 
5670  /// \return a human-readable presentation.
5671  ONIXS_B3_UMDF_MD_NODISCARD
5672  std::string toString() const;
5673 
5674 private:
5675  void checkLength(
5676  EncodedLength length, SchemaVersion version) const
5677  {
5678  const EncodedLength minimalRequiredLength =
5679  minimalBlockLength(version) +
5680  MessageHeader::Size +
5681  getMinimalVariableFieldsSize(version);
5682 
5683  checkBinaryLength(
5684  *this, length, minimalRequiredLength);
5685  }
5686 
5687  void checkCompatibility() const
5688  {
5689  assert(TemplateId == templateId());
5690 
5691  checkSchema<Schema>(schemaId(), version());
5692  checkLength(bufferSize(), version());
5693  }
5694 };
5695 
5696 /// Total number of contracts in a commodity or options market that are still open..
5699 : SbeMessage
5700 {
5701  /// Used template schema.
5703 
5704  /// Message template ID from SBE schema.
5705  enum { TemplateId = 29 };
5706 
5707  /// Available since version.
5708  enum { SinceVersion = 9 };
5709 
5710  /// Initializes a blank instance.
5712 
5713  /// Creates an instance over the given memory block.
5715  void* data,
5716  EncodedLength length,
5717  NoInit)
5718  : SbeMessage(data, length)
5719  {
5720  assert(this->version() >= SinceVersion);
5721  checkCompatibility();
5722  }
5723 
5724  /// Creates an instance over the given SBE message.
5725  explicit
5727  const SbeMessage& message)
5728  : SbeMessage(message)
5729  {
5730  assert(message.valid());
5731  assert(this->version() >= SinceVersion);
5732 
5733  checkCompatibility();
5734  }
5735 
5736  /// Creates an instance over the given memory block.
5737  /// Performs no checks.
5739  void* data,
5740  EncodedLength length,
5741  NoInit,
5742  NoCheck)
5744  : SbeMessage(data, length, NoCheck())
5745  {
5746  assert(schemaId() == Schema::Id);
5747  assert(version() >= SinceVersion);
5748  assert(TemplateId == templateId());
5749  }
5750 
5751  /// FIX Message Type.
5756  {
5757  return MessageType::MarketDataIncrementalRefresh;
5758  }
5759 
5760  /// Specifies the service pack release being applied at
5761  /// message level.
5766  {
5767  return ApplVerID::FIX50SP2;
5768  }
5769 
5770  /// Security ID as defined by B3. For the SecurityID list, see
5771  /// the Security Definition message in Market Data feed.
5772  ONIXS_B3_UMDF_MD_NODISCARD
5775  {
5777 
5778  return ordinary<SecurityID>(offset);
5779  }
5780 
5781  /// Identifies the class of the SecurityID (Exchange Symbol).
5786  {
5787  return SecurityIDSource::EXCHANGE_SYMBOL;
5788  }
5789 
5790  /// Market to which the symbol belongs.
5792  ONIXS_B3_UMDF_MD_NODISCARD
5796  {
5797  return constructStrRef("BVMF");
5798  }
5799 
5800  /// Identifies the end of the current event and if it is a
5801  /// retransmission.
5802  ONIXS_B3_UMDF_MD_NODISCARD
5805  {
5807 
5808  return ordinary<MatchEventIndicator>(offset);
5809  }
5810 
5811  /// Update Action (NEW) - always replace.
5816  {
5817  return UpdateAction::NEW;
5818  }
5819 
5820  /// Entry type: Open Interest.
5825  {
5826  return EntryType::OPEN_INTEREST;
5827  }
5828 
5829  /// Used to specify the trading date for which a set of market
5830  /// data applies.
5831  ONIXS_B3_UMDF_MD_NODISCARD
5834  {
5836 
5837  return localMktDateToTimestamp(ordinary<LocalMktDate>(offset));
5838  }
5839 
5840  /// Indicates volume of contracts currently open.
5841  ONIXS_B3_UMDF_MD_NODISCARD
5844  {
5846 
5847  return ordinary<Quantity>(offset);
5848  }
5849 
5850  /// Date and time of market data entry.
5851  ONIXS_B3_UMDF_MD_NODISCARD
5854  {
5856 
5857  return ordinary(value, offset, NullUTCTimestampNanos());
5858  }
5859 
5860  /// Sequence number per instrument update. Zeroed in snapshot
5861  /// feed.
5862  ONIXS_B3_UMDF_MD_NODISCARD
5863  bool rptSeq(RptSeq& value) const
5865  {
5867 
5868  return ordinary(value, offset, NullRptSeq());
5869  }
5870 
5871  /// Minimal size of message body in bytes.
5874  static
5875  BlockLength
5877  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
5879  {
5880  return
5881  ONIXS_B3_UMDF_MD_ASSERT(version >= SinceVersion),
5882  32;
5883  }
5884 
5885  /// Size of message body in bytes.
5888  static
5889  BlockLength
5891  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
5893  {
5894  return
5895  ONIXS_B3_UMDF_MD_ASSERT(version >= SinceVersion),
5896  32;
5897  }
5898 
5899  /// Minimal variable fields size (when variable-length fields are empty).
5901  ONIXS_B3_UMDF_MD_NODISCARD
5903  static
5904  MessageSize
5906  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
5907  {
5908  return
5909  ONIXS_B3_UMDF_MD_ASSERT(version >= SinceVersion),
5910  0;
5911  }
5912 
5913  /// \return class name.
5915  ONIXS_B3_UMDF_MD_NODISCARD
5917  static const Char* className()
5918  {
5919  return "OpenInterest_29";
5920  }
5921 
5922  /// FIX message type.
5924  ONIXS_B3_UMDF_MD_NODISCARD
5926  static StrRef fixType()
5928  {
5929  return constructStrRef("OpenInterest_29");
5930  }
5931 
5932  /// \return a human-readable presentation.
5933  ONIXS_B3_UMDF_MD_NODISCARD
5934  std::string toString() const;
5935 
5936 private:
5937  void checkLength(
5938  EncodedLength length, SchemaVersion version) const
5939  {
5940  const EncodedLength minimalRequiredLength =
5941  minimalBlockLength(version) +
5942  MessageHeader::Size +
5943  getMinimalVariableFieldsSize(version);
5944 
5945  checkBinaryLength(
5946  *this, length, minimalRequiredLength);
5947  }
5948 
5949  void checkCompatibility() const
5950  {
5951  assert(TemplateId == templateId());
5952 
5953  checkSchema<Schema>(schemaId(), version());
5954  checkLength(bufferSize(), version());
5955  }
5956 };
5957 
5958 /// Header for the snapshot of a single instrument.
5961 : SbeMessage
5962 {
5963  /// Used template schema.
5965 
5966  /// Message template ID from SBE schema.
5967  enum { TemplateId = 30 };
5968 
5969  /// Initializes a blank instance.
5971 
5972  /// Creates an instance over the given memory block.
5974  void* data,
5975  EncodedLength length,
5976  NoInit)
5977  : SbeMessage(data, length)
5978  {
5979  checkCompatibility();
5980  }
5981 
5982  /// Creates an instance over the given SBE message.
5983  explicit
5985  const SbeMessage& message)
5986  : SbeMessage(message)
5987  {
5988  assert(message.valid());
5989 
5990  checkCompatibility();
5991  }
5992 
5993  /// Creates an instance over the given memory block.
5994  /// Performs no checks.
5996  void* data,
5997  EncodedLength length,
5998  NoInit,
5999  NoCheck)
6001  : SbeMessage(data, length, NoCheck())
6002  {
6003  assert(schemaId() == Schema::Id);
6004  assert(version() >= Schema::MinimalVersion);
6005  assert(TemplateId == templateId());
6006  }
6007 
6008  /// FIX Message Type.
6013  {
6014  return MessageType::MarketDataSnapshotFullRefresh;
6015  }
6016 
6017  /// Specifies the service pack release being applied at
6018  /// message level.
6023  {
6024  return ApplVerID::FIX50SP2;
6025  }
6026 
6027  /// Security ID as defined by B3. For the SecurityID list, see
6028  /// the Security Definition message in Market Data feed.
6029  ONIXS_B3_UMDF_MD_NODISCARD
6032  {
6034 
6035  return ordinary<SecurityID>(offset);
6036  }
6037 
6038  /// Identifies the class of the SecurityID (Exchange Symbol).
6043  {
6044  return SecurityIDSource::EXCHANGE_SYMBOL;
6045  }
6046 
6047  /// Market to which the symbol belongs.
6049  ONIXS_B3_UMDF_MD_NODISCARD
6053  {
6054  return constructStrRef("BVMF");
6055  }
6056 
6057  /// The last processed packet sequence number of the
6058  /// incremental channel as of the time the snapshot was
6059  /// generated. This value is used to synchronize the snapshot
6060  /// with the incremental feed.
6061  ONIXS_B3_UMDF_MD_NODISCARD
6064  {
6066 
6067  return ordinary<SeqNum>(offset);
6068  }
6069 
6070  /// Total number of snapshots to be returned in the current
6071  /// replay loop.
6072  ONIXS_B3_UMDF_MD_NODISCARD
6075  {
6077 
6078  return ordinary<UInt32>(offset);
6079  }
6080 
6081  /// Total number of bid orders that constitute this snapshot.
6082  ONIXS_B3_UMDF_MD_NODISCARD
6085  {
6087 
6088  return ordinary<UInt32>(offset);
6089  }
6090 
6091  /// Total number of ask orders that constitute this snapshot.
6092  ONIXS_B3_UMDF_MD_NODISCARD
6095  {
6097 
6098  return ordinary<UInt32>(offset);
6099  }
6100 
6101  /// Total number of statistics (incremental and security
6102  /// status messages) that constitute this snapshot.
6103  ONIXS_B3_UMDF_MD_NODISCARD
6106  {
6108 
6109  return ordinary<UInt16>(offset);
6110  }
6111 
6112  /// Last processed RptSeq (sequence number per instrument
6113  /// update) for this instrument. Can be used to synchronize
6114  /// the snapshot with the incremental feed if the client is
6115  /// only interested in a subset of the channel's instruments.
6116  ONIXS_B3_UMDF_MD_NODISCARD
6117  bool lastRptSeq(RptSeq& value) const
6119  {
6121 
6122  return ordinary(value, offset, NullRptSeq());
6123  }
6124 
6125  /// Minimal size of message body in bytes.
6128  static
6129  BlockLength
6131  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
6133  {
6134  return
6135  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
6136  32;
6137  }
6138 
6139  /// Size of message body in bytes.
6142  static
6143  BlockLength
6145  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
6147  {
6148  return
6149  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
6150  minimalBlockLength(version);
6151  }
6152 
6153  /// Minimal variable fields size (when variable-length fields are empty).
6155  ONIXS_B3_UMDF_MD_NODISCARD
6157  static
6158  MessageSize
6160  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
6161  {
6162  return
6163  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
6164  0;
6165  }
6166 
6167  /// \return class name.
6169  ONIXS_B3_UMDF_MD_NODISCARD
6171  static const Char* className()
6172  {
6173  return "SnapshotFullRefresh_Header_30";
6174  }
6175 
6176  /// FIX message type.
6178  ONIXS_B3_UMDF_MD_NODISCARD
6180  static StrRef fixType()
6182  {
6183  return constructStrRef(
6184  "SnapshotFullRefresh_Header_30");
6185  }
6186 
6187  /// \return a human-readable presentation.
6188  ONIXS_B3_UMDF_MD_NODISCARD
6189  std::string toString() const;
6190 
6191 private:
6192  void checkLength(
6193  EncodedLength length, SchemaVersion version) const
6194  {
6195  const EncodedLength minimalRequiredLength =
6196  minimalBlockLength(version) +
6197  MessageHeader::Size +
6198  getMinimalVariableFieldsSize(version);
6199 
6200  checkBinaryLength(
6201  *this, length, minimalRequiredLength);
6202  }
6203 
6204  void checkCompatibility() const
6205  {
6206  assert(TemplateId == templateId());
6207 
6208  checkSchema<Schema>(schemaId(), version());
6209  checkLength(bufferSize(), version());
6210  }
6211 };
6212 
6213 /// Disseminates the creation or modification of a new order..
6216 : SbeMessage
6217 {
6218  /// Used template schema.
6220 
6221  /// Message template ID from SBE schema.
6222  enum { TemplateId = 50 };
6223 
6224  /// Initializes a blank instance.
6226 
6227  /// Creates an instance over the given memory block.
6229  void* data,
6230  EncodedLength length,
6231  NoInit)
6232  : SbeMessage(data, length)
6233  {
6234  checkCompatibility();
6235  }
6236 
6237  /// Creates an instance over the given SBE message.
6238  explicit
6240  const SbeMessage& message)
6241  : SbeMessage(message)
6242  {
6243  assert(message.valid());
6244 
6245  checkCompatibility();
6246  }
6247 
6248  /// Creates an instance over the given memory block.
6249  /// Performs no checks.
6251  void* data,
6252  EncodedLength length,
6253  NoInit,
6254  NoCheck)
6256  : SbeMessage(data, length, NoCheck())
6257  {
6258  assert(schemaId() == Schema::Id);
6259  assert(version() >= Schema::MinimalVersion);
6260  assert(TemplateId == templateId());
6261  }
6262 
6263  /// FIX Message Type.
6268  {
6269  return MessageType::MarketDataIncrementalRefresh;
6270  }
6271 
6272  /// Specifies the service pack release being applied at
6273  /// message level.
6278  {
6279  return ApplVerID::FIX50SP2;
6280  }
6281 
6282  /// Security ID as defined by B3. For the SecurityID list, see
6283  /// the Security Definition message in Market Data feed.
6284  ONIXS_B3_UMDF_MD_NODISCARD
6287  {
6289 
6290  return ordinary<SecurityID>(offset);
6291  }
6292 
6293  /// Identifies the class of the SecurityID (Exchange Symbol).
6298  {
6299  return SecurityIDSource::EXCHANGE_SYMBOL;
6300  }
6301 
6302  /// Market to which the symbol belongs.
6304  ONIXS_B3_UMDF_MD_NODISCARD
6308  {
6309  return constructStrRef("BVMF");
6310  }
6311 
6312  /// Identifies if it is a retransmission and/or implied order.
6313  ONIXS_B3_UMDF_MD_NODISCARD
6316  {
6318 
6319  return ordinary<MatchEventIndicator>(offset);
6320  }
6321 
6322  /// Update Action (NEW, CHANGE).
6323  ONIXS_B3_UMDF_MD_NODISCARD
6326  {
6328 
6329  return enumeration<UpdateAction>(offset);
6330  }
6331 
6332  /// Entry Type (BID or OFFER).
6333  ONIXS_B3_UMDF_MD_NODISCARD
6336  {
6338 
6339  return enumeration<EntryType>(offset);
6340  }
6341 
6342  /// Price per share or contract. Conditionally required if the
6343  /// order type requires a price (not market orders).
6344  ONIXS_B3_UMDF_MD_NODISCARD
6345  bool mDEntryPx(PriceOptional& value) const
6347  {
6349 
6350  return decimal(value, offset, NullPriceOptional());
6351  }
6352 
6353  /// Displayed quantity or volume represented by the Market
6354  /// Data Entry.
6355  ONIXS_B3_UMDF_MD_NODISCARD
6358  {
6360 
6361  return ordinary<Quantity>(offset);
6362  }
6363 
6364  /// Display position of a bid or offer, numbered from most
6365  /// competitive to least competitive, per market side,
6366  /// beginning with 1.
6367  ONIXS_B3_UMDF_MD_NODISCARD
6370  {
6372 
6373  return ordinary<EntryPositionNo>(offset);
6374  }
6375 
6376  /// Identifies the broker firm.
6377  ONIXS_B3_UMDF_MD_NODISCARD
6378  bool enteringFirm(FirmOptional& value) const
6380  {
6382 
6383  return ordinary(value, offset, NullFirmOptional());
6384  }
6385 
6386  /// The date and time when the order was inserted or re-
6387  /// inserted into the order book or manually altered by
6388  /// MktOps.
6389  ONIXS_B3_UMDF_MD_NODISCARD
6392  {
6394 
6395  return ordinary(value, offset, NullUTCTimestampNanos());
6396  }
6397 
6398  /// Exchange-generated order identifier that changes for each
6399  /// order modification event, or quantity replenishment in
6400  /// disclosed orders.
6401  ONIXS_B3_UMDF_MD_NODISCARD
6404  {
6406 
6407  return ordinary<OrderID>(offset);
6408  }
6409 
6410  /// Sequence number per instrument update. Zeroed in snapshot
6411  /// feed.
6412  ONIXS_B3_UMDF_MD_NODISCARD
6413  bool rptSeq(RptSeq& value) const
6415  {
6417 
6418  return ordinary(value, offset, NullRptSeq());
6419  }
6420 
6421  /// Timestamp when the order event occurred.
6422  ONIXS_B3_UMDF_MD_NODISCARD
6425  {
6427 
6428  return ordinary(value, offset, NullUTCTimestampNanos());
6429  }
6430 
6431  /// Minimal size of message body in bytes.
6434  static
6435  BlockLength
6437  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
6439  {
6440  return
6441  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
6442  64;
6443  }
6444 
6445  /// Size of message body in bytes.
6448  static
6449  BlockLength
6451  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
6453  {
6454  return
6455  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
6456  minimalBlockLength(version);
6457  }
6458 
6459  /// Minimal variable fields size (when variable-length fields are empty).
6461  ONIXS_B3_UMDF_MD_NODISCARD
6463  static
6464  MessageSize
6466  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
6467  {
6468  return
6469  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
6470  0;
6471  }
6472 
6473  /// \return class name.
6475  ONIXS_B3_UMDF_MD_NODISCARD
6477  static const Char* className()
6478  {
6479  return "Order_MBO_50";
6480  }
6481 
6482  /// FIX message type.
6484  ONIXS_B3_UMDF_MD_NODISCARD
6486  static StrRef fixType()
6488  {
6489  return constructStrRef("Order_MBO_50");
6490  }
6491 
6492  /// \return a human-readable presentation.
6493  ONIXS_B3_UMDF_MD_NODISCARD
6494  std::string toString() const;
6495 
6496 private:
6497  void checkLength(
6498  EncodedLength length, SchemaVersion version) const
6499  {
6500  const EncodedLength minimalRequiredLength =
6501  minimalBlockLength(version) +
6502  MessageHeader::Size +
6503  getMinimalVariableFieldsSize(version);
6504 
6505  checkBinaryLength(
6506  *this, length, minimalRequiredLength);
6507  }
6508 
6509  void checkCompatibility() const
6510  {
6511  assert(TemplateId == templateId());
6512 
6513  checkSchema<Schema>(schemaId(), version());
6514  checkLength(bufferSize(), version());
6515  }
6516 };
6517 
6518 /// Disseminates the deletion of a new order..
6521 : SbeMessage
6522 {
6523  /// Used template schema.
6525 
6526  /// Message template ID from SBE schema.
6527  enum { TemplateId = 51 };
6528 
6529  /// Initializes a blank instance.
6531 
6532  /// Creates an instance over the given memory block.
6534  void* data,
6535  EncodedLength length,
6536  NoInit)
6537  : SbeMessage(data, length)
6538  {
6539  checkCompatibility();
6540  }
6541 
6542  /// Creates an instance over the given SBE message.
6543  explicit
6545  const SbeMessage& message)
6546  : SbeMessage(message)
6547  {
6548  assert(message.valid());
6549 
6550  checkCompatibility();
6551  }
6552 
6553  /// Creates an instance over the given memory block.
6554  /// Performs no checks.
6556  void* data,
6557  EncodedLength length,
6558  NoInit,
6559  NoCheck)
6561  : SbeMessage(data, length, NoCheck())
6562  {
6563  assert(schemaId() == Schema::Id);
6564  assert(version() >= Schema::MinimalVersion);
6565  assert(TemplateId == templateId());
6566  }
6567 
6568  /// FIX Message Type.
6573  {
6574  return MessageType::MarketDataIncrementalRefresh;
6575  }
6576 
6577  /// Specifies the service pack release being applied at
6578  /// message level.
6583  {
6584  return ApplVerID::FIX50SP2;
6585  }
6586 
6587  /// Security ID as defined by B3. For the SecurityID list, see
6588  /// the Security Definition message in Market Data feed.
6589  ONIXS_B3_UMDF_MD_NODISCARD
6592  {
6594 
6595  return ordinary<SecurityID>(offset);
6596  }
6597 
6598  /// Identifies the class of the SecurityID (Exchange Symbol).
6603  {
6604  return SecurityIDSource::EXCHANGE_SYMBOL;
6605  }
6606 
6607  /// Market to which the symbol belongs.
6609  ONIXS_B3_UMDF_MD_NODISCARD
6613  {
6614  return constructStrRef("BVMF");
6615  }
6616 
6617  /// Identifies if it is a retransmission.
6618  ONIXS_B3_UMDF_MD_NODISCARD
6621  {
6623 
6624  return ordinary<MatchEventIndicator>(offset);
6625  }
6626 
6627  /// Update Action (DELETE).
6632  {
6633  return UpdateAction::DELETE;
6634  }
6635 
6636  /// Entry Type (BID or OFFER).
6637  ONIXS_B3_UMDF_MD_NODISCARD
6640  {
6642 
6643  return enumeration<EntryType>(offset);
6644  }
6645 
6646  /// Display position of a bid or offer, numbered from most
6647  /// competitive to least competitive, per market side,
6648  /// beginning with 1.
6649  ONIXS_B3_UMDF_MD_NODISCARD
6652  {
6654 
6655  return ordinary<EntryPositionNo>(offset);
6656  }
6657 
6658  /// Quantity of the deleted order.
6659  ONIXS_B3_UMDF_MD_NODISCARD
6660  bool mDEntrySize(QuantityOptional& value) const
6662  {
6664 
6665  return ordinary(value, offset, NullQuantityOptional());
6666  }
6667 
6668  /// Exchange-generated order identifier that changes for each
6669  /// order modification event, or quantity replenishment in
6670  /// disclosed orders.
6671  ONIXS_B3_UMDF_MD_NODISCARD
6674  {
6676 
6677  return ordinary<OrderID>(offset);
6678  }
6679 
6680  /// Timestamp when the order event occurred.
6681  ONIXS_B3_UMDF_MD_NODISCARD
6684  {
6686 
6687  return ordinary(value, offset, NullUTCTimestampNanos());
6688  }
6689 
6690  /// Sequence number per instrument update. Zeroed in snapshot
6691  /// feed.
6692  ONIXS_B3_UMDF_MD_NODISCARD
6693  bool rptSeq(RptSeq& value) const
6695  {
6697 
6698  return ordinary(value, offset, NullRptSeq());
6699  }
6700 
6701  /// Minimal size of message body in bytes.
6704  static
6705  BlockLength
6707  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
6709  {
6710  return
6711  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
6712  44;
6713  }
6714 
6715  /// Size of message body in bytes.
6718  static
6719  BlockLength
6721  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
6723  {
6724  return
6725  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
6726  minimalBlockLength(version);
6727  }
6728 
6729  /// Minimal variable fields size (when variable-length fields are empty).
6731  ONIXS_B3_UMDF_MD_NODISCARD
6733  static
6734  MessageSize
6736  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
6737  {
6738  return
6739  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
6740  0;
6741  }
6742 
6743  /// \return class name.
6745  ONIXS_B3_UMDF_MD_NODISCARD
6747  static const Char* className()
6748  {
6749  return "DeleteOrder_MBO_51";
6750  }
6751 
6752  /// FIX message type.
6754  ONIXS_B3_UMDF_MD_NODISCARD
6756  static StrRef fixType()
6758  {
6759  return constructStrRef("DeleteOrder_MBO_51");
6760  }
6761 
6762  /// \return a human-readable presentation.
6763  ONIXS_B3_UMDF_MD_NODISCARD
6764  std::string toString() const;
6765 
6766 private:
6767  void checkLength(
6768  EncodedLength length, SchemaVersion version) const
6769  {
6770  const EncodedLength minimalRequiredLength =
6771  minimalBlockLength(version) +
6772  MessageHeader::Size +
6773  getMinimalVariableFieldsSize(version);
6774 
6775  checkBinaryLength(
6776  *this, length, minimalRequiredLength);
6777  }
6778 
6779  void checkCompatibility() const
6780  {
6781  assert(TemplateId == templateId());
6782 
6783  checkSchema<Schema>(schemaId(), version());
6784  checkLength(bufferSize(), version());
6785  }
6786 };
6787 
6788 /// Disseminates mass deletion of orders..
6791 : SbeMessage
6792 {
6793  /// Used template schema.
6795 
6796  /// Message template ID from SBE schema.
6797  enum { TemplateId = 52 };
6798 
6799  /// Initializes a blank instance.
6801 
6802  /// Creates an instance over the given memory block.
6804  void* data,
6805  EncodedLength length,
6806  NoInit)
6807  : SbeMessage(data, length)
6808  {
6809  checkCompatibility();
6810  }
6811 
6812  /// Creates an instance over the given SBE message.
6813  explicit
6815  const SbeMessage& message)
6816  : SbeMessage(message)
6817  {
6818  assert(message.valid());
6819 
6820  checkCompatibility();
6821  }
6822 
6823  /// Creates an instance over the given memory block.
6824  /// Performs no checks.
6826  void* data,
6827  EncodedLength length,
6828  NoInit,
6829  NoCheck)
6831  : SbeMessage(data, length, NoCheck())
6832  {
6833  assert(schemaId() == Schema::Id);
6834  assert(version() >= Schema::MinimalVersion);
6835  assert(TemplateId == templateId());
6836  }
6837 
6838  /// FIX Message Type.
6843  {
6844  return MessageType::MarketDataIncrementalRefresh;
6845  }
6846 
6847  /// Specifies the service pack release being applied at
6848  /// message level.
6853  {
6854  return ApplVerID::FIX50SP2;
6855  }
6856 
6857  /// Security ID as defined by B3. For the SecurityID list, see
6858  /// the Security Definition message in Market Data feed.
6859  ONIXS_B3_UMDF_MD_NODISCARD
6862  {
6864 
6865  return ordinary<SecurityID>(offset);
6866  }
6867 
6868  /// Identifies the class of the SecurityID (Exchange Symbol).
6873  {
6874  return SecurityIDSource::EXCHANGE_SYMBOL;
6875  }
6876 
6877  /// Market to which the symbol belongs.
6879  ONIXS_B3_UMDF_MD_NODISCARD
6883  {
6884  return constructStrRef("BVMF");
6885  }
6886 
6887  /// Identifies if it is a retransmission.
6888  ONIXS_B3_UMDF_MD_NODISCARD
6891  {
6893 
6894  return ordinary<MatchEventIndicator>(offset);
6895  }
6896 
6897  /// Update Action (DELETE_FROM, DELETE_THRU).
6898  ONIXS_B3_UMDF_MD_NODISCARD
6901  {
6903 
6904  return enumeration<UpdateAction>(offset);
6905  }
6906 
6907  /// Entry Type (BID or OFFER).
6908  ONIXS_B3_UMDF_MD_NODISCARD
6911  {
6913 
6914  return enumeration<EntryType>(offset);
6915  }
6916 
6917  /// Display position of a bid or offer where orders will be
6918  /// deleted (up or down from this position).
6919  ONIXS_B3_UMDF_MD_NODISCARD
6922  {
6924 
6925  return ordinary<EntryPositionNo>(offset);
6926  }
6927 
6928  /// Timestamp when the mass delete order event occurred.
6929  ONIXS_B3_UMDF_MD_NODISCARD
6932  {
6934 
6935  return ordinary(value, offset, NullUTCTimestampNanos());
6936  }
6937 
6938  /// Sequence number per instrument update. Zeroed in snapshot
6939  /// feed.
6940  ONIXS_B3_UMDF_MD_NODISCARD
6941  bool rptSeq(RptSeq& value) const
6943  {
6945 
6946  return ordinary(value, offset, NullRptSeq());
6947  }
6948 
6949  /// Minimal size of message body in bytes.
6952  static
6953  BlockLength
6955  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
6957  {
6958  return
6959  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
6960  28;
6961  }
6962 
6963  /// Size of message body in bytes.
6966  static
6967  BlockLength
6969  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
6971  {
6972  return
6973  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
6974  minimalBlockLength(version);
6975  }
6976 
6977  /// Minimal variable fields size (when variable-length fields are empty).
6979  ONIXS_B3_UMDF_MD_NODISCARD
6981  static
6982  MessageSize
6984  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
6985  {
6986  return
6987  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
6988  0;
6989  }
6990 
6991  /// \return class name.
6993  ONIXS_B3_UMDF_MD_NODISCARD
6995  static const Char* className()
6996  {
6997  return "MassDeleteOrders_MBO_52";
6998  }
6999 
7000  /// FIX message type.
7002  ONIXS_B3_UMDF_MD_NODISCARD
7004  static StrRef fixType()
7006  {
7007  return constructStrRef(
7008  "MassDeleteOrders_MBO_52");
7009  }
7010 
7011  /// \return a human-readable presentation.
7012  ONIXS_B3_UMDF_MD_NODISCARD
7013  std::string toString() const;
7014 
7015 private:
7016  void checkLength(
7017  EncodedLength length, SchemaVersion version) const
7018  {
7019  const EncodedLength minimalRequiredLength =
7020  minimalBlockLength(version) +
7021  MessageHeader::Size +
7022  getMinimalVariableFieldsSize(version);
7023 
7024  checkBinaryLength(
7025  *this, length, minimalRequiredLength);
7026  }
7027 
7028  void checkCompatibility() const
7029  {
7030  assert(TemplateId == templateId());
7031 
7032  checkSchema<Schema>(schemaId(), version());
7033  checkLength(bufferSize(), version());
7034  }
7035 };
7036 
7037 /// Relays trade information on one instrument..
7039 Trade_53
7040 : SbeMessage
7041 {
7042  /// Used template schema.
7044 
7045  /// Message template ID from SBE schema.
7046  enum { TemplateId = 53 };
7047 
7048  /// Initializes a blank instance.
7050 
7051  /// Creates an instance over the given memory block.
7053  void* data,
7054  EncodedLength length,
7055  NoInit)
7056  : SbeMessage(data, length)
7057  {
7058  checkCompatibility();
7059  }
7060 
7061  /// Creates an instance over the given SBE message.
7062  explicit
7064  const SbeMessage& message)
7065  : SbeMessage(message)
7066  {
7067  assert(message.valid());
7068 
7069  checkCompatibility();
7070  }
7071 
7072  /// Creates an instance over the given memory block.
7073  /// Performs no checks.
7075  void* data,
7076  EncodedLength length,
7077  NoInit,
7078  NoCheck)
7080  : SbeMessage(data, length, NoCheck())
7081  {
7082  assert(schemaId() == Schema::Id);
7083  assert(version() >= Schema::MinimalVersion);
7084  assert(TemplateId == templateId());
7085  }
7086 
7087  /// FIX Message Type.
7092  {
7093  return MessageType::MarketDataIncrementalRefresh;
7094  }
7095 
7096  /// Specifies the service pack release being applied at
7097  /// message level.
7102  {
7103  return ApplVerID::FIX50SP2;
7104  }
7105 
7106  /// Security ID as defined by B3. For the SecurityID list, see
7107  /// the Security Definition message in Market Data feed.
7108  ONIXS_B3_UMDF_MD_NODISCARD
7111  {
7113 
7114  return ordinary<SecurityID>(offset);
7115  }
7116 
7117  /// Identifies the class of the SecurityID (Exchange Symbol).
7122  {
7123  return SecurityIDSource::EXCHANGE_SYMBOL;
7124  }
7125 
7126  /// Market to which the symbol belongs.
7128  ONIXS_B3_UMDF_MD_NODISCARD
7132  {
7133  return constructStrRef("BVMF");
7134  }
7135 
7136  /// Identifies the end of the current event and/or the trade
7137  /// is implied.
7138  ONIXS_B3_UMDF_MD_NODISCARD
7141  {
7143 
7144  return ordinary<MatchEventIndicator>(offset);
7145  }
7146 
7147  /// Update Action (NEW).
7152  {
7153  return UpdateAction::NEW;
7154  }
7155 
7156  /// Entry type: Trade.
7161  {
7162  return EntryType::TRADE;
7163  }
7164 
7165  /// Identifier for trading session.
7166  ONIXS_B3_UMDF_MD_NODISCARD
7169  {
7171 
7172  return enumeration<TradingSessionID>(offset);
7173  }
7174 
7175  /// Set of conditions describing a trade.
7176  ONIXS_B3_UMDF_MD_NODISCARD
7179  {
7181 
7182  return ordinary<TradeCondition>(offset);
7183  }
7184 
7185  /// Price of the Market Data Entry.
7186  ONIXS_B3_UMDF_MD_NODISCARD
7189  {
7191 
7192  return decimal<Price>(offset);
7193  }
7194 
7195  /// Quantity or volume represented by the Market Data Entry.
7196  ONIXS_B3_UMDF_MD_NODISCARD
7199  {
7201 
7202  return ordinary<Quantity>(offset);
7203  }
7204 
7205  /// Contains the unique identifier for this trade per
7206  /// instrument + trading date, as assigned by the exchange.
7207  /// Required if reporting a Trade.
7208  ONIXS_B3_UMDF_MD_NODISCARD
7211  {
7213 
7214  return ordinary<TradeID>(offset);
7215  }
7216 
7217  /// For reporting trades (buying party).
7218  ONIXS_B3_UMDF_MD_NODISCARD
7219  bool mDEntryBuyer(FirmOptional& value) const
7221  {
7223 
7224  return ordinary(value, offset, NullFirmOptional());
7225  }
7226 
7227  /// For reporting trades (selling party).
7228  ONIXS_B3_UMDF_MD_NODISCARD
7229  bool mDEntrySeller(FirmOptional& value) const
7231  {
7233 
7234  return ordinary(value, offset, NullFirmOptional());
7235  }
7236 
7237  /// Used to specify the trading date for which a set of market
7238  /// data applies.
7239  ONIXS_B3_UMDF_MD_NODISCARD
7242  {
7244 
7245  return localMktDateToTimestamp(ordinary<LocalMktDate>(offset));
7246  }
7247 
7248  /// Sub type of trade assigned to a trade.
7249  ONIXS_B3_UMDF_MD_NODISCARD
7250  bool trdSubType(TrdSubType::Enum& value) const
7252  {
7254 
7255  return enumeration<TrdSubType>(value, offset, NullUInt8NULL());
7256  }
7257 
7258  /// Timestamp when the trade event occurred.
7259  ONIXS_B3_UMDF_MD_NODISCARD
7262  {
7264 
7265  return ordinary(value, offset, NullUTCTimestampNanos());
7266  }
7267 
7268  /// Sequence number per instrument update. Zeroed in snapshot
7269  /// feed.
7270  ONIXS_B3_UMDF_MD_NODISCARD
7271  bool rptSeq(RptSeq& value) const
7273  {
7275 
7276  return ordinary(value, offset, NullRptSeq());
7277  }
7278 
7279  /// Minimal size of message body in bytes.
7282  static
7283  BlockLength
7285  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
7287  {
7288  return
7289  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
7290  56;
7291  }
7292 
7293  /// Size of message body in bytes.
7296  static
7297  BlockLength
7299  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
7301  {
7302  return
7303  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
7304  minimalBlockLength(version);
7305  }
7306 
7307  /// Minimal variable fields size (when variable-length fields are empty).
7309  ONIXS_B3_UMDF_MD_NODISCARD
7311  static
7312  MessageSize
7314  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
7315  {
7316  return
7317  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
7318  0;
7319  }
7320 
7321  /// \return class name.
7323  ONIXS_B3_UMDF_MD_NODISCARD
7325  static const Char* className()
7326  {
7327  return "Trade_53";
7328  }
7329 
7330  /// FIX message type.
7332  ONIXS_B3_UMDF_MD_NODISCARD
7334  static StrRef fixType()
7336  {
7337  return constructStrRef("Trade_53");
7338  }
7339 
7340  /// \return a human-readable presentation.
7341  ONIXS_B3_UMDF_MD_NODISCARD
7342  std::string toString() const;
7343 
7344 private:
7345  void checkLength(
7346  EncodedLength length, SchemaVersion version) const
7347  {
7348  const EncodedLength minimalRequiredLength =
7349  minimalBlockLength(version) +
7350  MessageHeader::Size +
7351  getMinimalVariableFieldsSize(version);
7352 
7353  checkBinaryLength(
7354  *this, length, minimalRequiredLength);
7355  }
7356 
7357  void checkCompatibility() const
7358  {
7359  assert(TemplateId == templateId());
7360 
7361  checkSchema<Schema>(schemaId(), version());
7362  checkLength(bufferSize(), version());
7363  }
7364 };
7365 
7366 /// Relays trade information on one Forward instrument.
7369 : SbeMessage
7370 {
7371  /// Used template schema.
7373 
7374  /// Message template ID from SBE schema.
7375  enum { TemplateId = 54 };
7376 
7377  /// Initializes a blank instance.
7379 
7380  /// Creates an instance over the given memory block.
7382  void* data,
7383  EncodedLength length,
7384  NoInit)
7385  : SbeMessage(data, length)
7386  {
7387  checkCompatibility();
7388  }
7389 
7390  /// Creates an instance over the given SBE message.
7391  explicit
7393  const SbeMessage& message)
7394  : SbeMessage(message)
7395  {
7396  assert(message.valid());
7397 
7398  checkCompatibility();
7399  }
7400 
7401  /// Creates an instance over the given memory block.
7402  /// Performs no checks.
7404  void* data,
7405  EncodedLength length,
7406  NoInit,
7407  NoCheck)
7409  : SbeMessage(data, length, NoCheck())
7410  {
7411  assert(schemaId() == Schema::Id);
7412  assert(version() >= Schema::MinimalVersion);
7413  assert(TemplateId == templateId());
7414  }
7415 
7416  /// FIX Message Type.
7421  {
7422  return MessageType::MarketDataIncrementalRefresh;
7423  }
7424 
7425  /// Specifies the service pack release being applied at
7426  /// message level.
7431  {
7432  return ApplVerID::FIX50SP2;
7433  }
7434 
7435  /// Security ID as defined by B3. For the SecurityID list, see
7436  /// the Security Definition message in Market Data feed.
7437  ONIXS_B3_UMDF_MD_NODISCARD
7440  {
7442 
7443  return ordinary<SecurityID>(offset);
7444  }
7445 
7446  /// Identifies the class of the SecurityID (Exchange Symbol).
7451  {
7452  return SecurityIDSource::EXCHANGE_SYMBOL;
7453  }
7454 
7455  /// Market to which the symbol belongs.
7457  ONIXS_B3_UMDF_MD_NODISCARD
7461  {
7462  return constructStrRef("BVMF");
7463  }
7464 
7465  /// Identifies the end of the current event.
7466  ONIXS_B3_UMDF_MD_NODISCARD
7469  {
7471 
7472  return ordinary<MatchEventIndicator>(offset);
7473  }
7474 
7475  /// Update Action (NEW).
7480  {
7481  return UpdateAction::NEW;
7482  }
7483 
7484  /// Entry type: Trade.
7489  {
7490  return EntryType::TRADE;
7491  }
7492 
7493  /// Identifier for trading session.
7494  ONIXS_B3_UMDF_MD_NODISCARD
7497  {
7499 
7500  return enumeration<TradingSessionID>(offset);
7501  }
7502 
7503  /// Set of conditions describing a trade.
7504  ONIXS_B3_UMDF_MD_NODISCARD
7507  {
7509 
7510  return ordinary<TradeCondition>(offset);
7511  }
7512 
7513  /// Price of the Market Data Entry.
7514  ONIXS_B3_UMDF_MD_NODISCARD
7517  {
7519 
7520  return decimal<Price>(offset);
7521  }
7522 
7523  /// Quantity or volume represented by the Market Data Entry.
7524  ONIXS_B3_UMDF_MD_NODISCARD
7527  {
7529 
7530  return ordinary<Quantity>(offset);
7531  }
7532 
7533  /// Contains the unique identifier for this trade per
7534  /// instrument + trading date, as assigned by the exchange.
7535  /// Required if reporting a Trade.
7536  ONIXS_B3_UMDF_MD_NODISCARD
7539  {
7541 
7542  return ordinary<TradeID>(offset);
7543  }
7544 
7545  /// For reporting trades (buying party).
7546  ONIXS_B3_UMDF_MD_NODISCARD
7547  bool mDEntryBuyer(FirmOptional& value) const
7549  {
7551 
7552  return ordinary(value, offset, NullFirmOptional());
7553  }
7554 
7555  /// For reporting trades (selling party).
7556  ONIXS_B3_UMDF_MD_NODISCARD
7557  bool mDEntrySeller(FirmOptional& value) const
7559  {
7561 
7562  return ordinary(value, offset, NullFirmOptional());
7563  }
7564 
7565  /// Used to specify the trading date for which a set of market
7566  /// data applies.
7567  ONIXS_B3_UMDF_MD_NODISCARD
7570  {
7572 
7573  return localMktDateToTimestamp(ordinary<LocalMktDate>(offset));
7574  }
7575 
7576  /// Timestamp when the trade event occurred.
7577  ONIXS_B3_UMDF_MD_NODISCARD
7580  {
7582 
7583  return ordinary(value, offset, NullUTCTimestampNanos());
7584  }
7585 
7586  /// Sequence number per instrument update. Zeroed in snapshot
7587  /// feed.
7588  ONIXS_B3_UMDF_MD_NODISCARD
7589  bool rptSeq(RptSeq& value) const
7591  {
7593 
7594  return ordinary(value, offset, NullRptSeq());
7595  }
7596 
7597  /// Specifies the number of days that may elapse before
7598  /// delivery of the security. Only used for trades in forward
7599  /// market.
7600  ONIXS_B3_UMDF_MD_NODISCARD
7601  bool sellerDays(UInt16NULL& value) const
7603  {
7605 
7606  return ordinary(value, offset, NullUInt16NULL());
7607  }
7608 
7609  /// Interest Rate of the Termo Trade. Expressed in decimal
7610  /// form. For example, 1% points is expressed and sent as
7611  /// 0.01. One basis point is represented as 0.0001.
7612  ONIXS_B3_UMDF_MD_NODISCARD
7613  bool mDEntryInterestRate(Percentage& value) const
7615  {
7617 
7618  return decimal(value, offset, NullPercentage());
7619  }
7620 
7621  /// Sub type of trade assigned to a trade.
7622  ONIXS_B3_UMDF_MD_NODISCARD
7623  bool trdSubType(TrdSubType::Enum& value) const
7625  {
7627 
7628  return enumeration<TrdSubType>(value, offset, NullUInt8NULL());
7629  }
7630 
7631  /// Minimal size of message body in bytes.
7634  static
7635  BlockLength
7637  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
7639  {
7640  return
7641  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
7642  68;
7643  }
7644 
7645  /// Size of message body in bytes.
7648  static
7649  BlockLength
7651  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
7653  {
7654  return
7655  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
7656  68;
7657  }
7658 
7659  /// Minimal variable fields size (when variable-length fields are empty).
7661  ONIXS_B3_UMDF_MD_NODISCARD
7663  static
7664  MessageSize
7666  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
7667  {
7668  return
7669  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
7670  0;
7671  }
7672 
7673  /// \return class name.
7675  ONIXS_B3_UMDF_MD_NODISCARD
7677  static const Char* className()
7678  {
7679  return "ForwardTrade_54";
7680  }
7681 
7682  /// FIX message type.
7684  ONIXS_B3_UMDF_MD_NODISCARD
7686  static StrRef fixType()
7688  {
7689  return constructStrRef("ForwardTrade_54");
7690  }
7691 
7692  /// \return a human-readable presentation.
7693  ONIXS_B3_UMDF_MD_NODISCARD
7694  std::string toString() const;
7695 
7696 private:
7697  void checkLength(
7698  EncodedLength length, SchemaVersion version) const
7699  {
7700  const EncodedLength minimalRequiredLength =
7701  minimalBlockLength(version) +
7702  MessageHeader::Size +
7703  getMinimalVariableFieldsSize(version);
7704 
7705  checkBinaryLength(
7706  *this, length, minimalRequiredLength);
7707  }
7708 
7709  void checkCompatibility() const
7710  {
7711  assert(TemplateId == templateId());
7712 
7713  checkSchema<Schema>(schemaId(), version());
7714  checkLength(bufferSize(), version());
7715  }
7716 };
7717 
7718 /// Relays execution summary information on one instrument..
7721 : SbeMessage
7722 {
7723  /// Used template schema.
7725 
7726  /// Message template ID from SBE schema.
7727  enum { TemplateId = 55 };
7728 
7729  /// Initializes a blank instance.
7731 
7732  /// Creates an instance over the given memory block.
7734  void* data,
7735  EncodedLength length,
7736  NoInit)
7737  : SbeMessage(data, length)
7738  {
7739  checkCompatibility();
7740  }
7741 
7742  /// Creates an instance over the given SBE message.
7743  explicit
7745  const SbeMessage& message)
7746  : SbeMessage(message)
7747  {
7748  assert(message.valid());
7749 
7750  checkCompatibility();
7751  }
7752 
7753  /// Creates an instance over the given memory block.
7754  /// Performs no checks.
7756  void* data,
7757  EncodedLength length,
7758  NoInit,
7759  NoCheck)
7761  : SbeMessage(data, length, NoCheck())
7762  {
7763  assert(schemaId() == Schema::Id);
7764  assert(version() >= Schema::MinimalVersion);
7765  assert(TemplateId == templateId());
7766  }
7767 
7768  /// FIX Message Type.
7773  {
7774  return MessageType::MarketDataIncrementalRefresh;
7775  }
7776 
7777  /// Specifies the service pack release being applied at
7778  /// message level.
7783  {
7784  return ApplVerID::FIX50SP2;
7785  }
7786 
7787  /// Security ID as defined by B3. For the SecurityID list, see
7788  /// the Security Definition message in Market Data feed.
7789  ONIXS_B3_UMDF_MD_NODISCARD
7792  {
7794 
7795  return ordinary<SecurityID>(offset);
7796  }
7797 
7798  /// Identifies the class of the SecurityID (Exchange Symbol).
7803  {
7804  return SecurityIDSource::EXCHANGE_SYMBOL;
7805  }
7806 
7807  /// Market to which the symbol belongs.
7809  ONIXS_B3_UMDF_MD_NODISCARD
7813  {
7814  return constructStrRef("BVMF");
7815  }
7816 
7817  /// Update Action (NEW) - always replace.
7822  {
7823  return UpdateAction::NEW;
7824  }
7825 
7826  /// Entry type: Execution Summary.
7831  {
7832  return EntryType::EXECUTION_SUMMARY;
7833  }
7834 
7835  /// Which side is aggressor of all fills.
7836  ONIXS_B3_UMDF_MD_NODISCARD
7839  {
7841 
7842  return enumeration<AggressorSide>(offset);
7843  }
7844 
7845  /// Price of the last fill (i.e. worst price of this match).
7846  ONIXS_B3_UMDF_MD_NODISCARD
7847  Price lastPx() const
7849  {
7851 
7852  return decimal<Price>(offset);
7853  }
7854 
7855  /// Quantity of all fills.
7856  ONIXS_B3_UMDF_MD_NODISCARD
7859  {
7861 
7862  return ordinary<Quantity>(offset);
7863  }
7864 
7865  /// Total quantity of matched passive orders that is not
7866  /// displayed to the market.
7867  ONIXS_B3_UMDF_MD_NODISCARD
7870  {
7872 
7873  return ordinary(value, offset, NullQuantityOptional());
7874  }
7875 
7876  /// Total quantity canceled during matching process (e.g. due
7877  /// to self trade).
7878  ONIXS_B3_UMDF_MD_NODISCARD
7879  bool cxlQty(QuantityOptional& value) const
7881  {
7883 
7884  return ordinary(value, offset, NullQuantityOptional());
7885  }
7886 
7887  /// Timestamp of aggressive order resulting in match event.
7888  ONIXS_B3_UMDF_MD_NODISCARD
7891  {
7893 
7894  return ordinary(value, offset, NullUTCTimestampNanos());
7895  }
7896 
7897  /// Sequence number per instrument update. Zeroed in snapshot
7898  /// feed.
7899  ONIXS_B3_UMDF_MD_NODISCARD
7900  bool rptSeq(RptSeq& value) const
7902  {
7904 
7905  return ordinary(value, offset, NullRptSeq());
7906  }
7907 
7908  /// Timestamp when the last trade of the execution event
7909  /// occurred.
7910  ONIXS_B3_UMDF_MD_NODISCARD
7913  {
7915 
7916  return ordinary(value, offset, NullUTCTimestampNanos());
7917  }
7918 
7919  /// Minimal size of message body in bytes.
7922  static
7923  BlockLength
7925  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
7927  {
7928  return
7929  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
7930  64;
7931  }
7932 
7933  /// Size of message body in bytes.
7936  static
7937  BlockLength
7939  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
7941  {
7942  return
7943  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
7944  minimalBlockLength(version);
7945  }
7946 
7947  /// Minimal variable fields size (when variable-length fields are empty).
7949  ONIXS_B3_UMDF_MD_NODISCARD
7951  static
7952  MessageSize
7954  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
7955  {
7956  return
7957  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
7958  0;
7959  }
7960 
7961  /// \return class name.
7963  ONIXS_B3_UMDF_MD_NODISCARD
7965  static const Char* className()
7966  {
7967  return "ExecutionSummary_55";
7968  }
7969 
7970  /// FIX message type.
7972  ONIXS_B3_UMDF_MD_NODISCARD
7974  static StrRef fixType()
7976  {
7977  return constructStrRef("ExecutionSummary_55");
7978  }
7979 
7980  /// \return a human-readable presentation.
7981  ONIXS_B3_UMDF_MD_NODISCARD
7982  std::string toString() const;
7983 
7984 private:
7985  void checkLength(
7986  EncodedLength length, SchemaVersion version) const
7987  {
7988  const EncodedLength minimalRequiredLength =
7989  minimalBlockLength(version) +
7990  MessageHeader::Size +
7991  getMinimalVariableFieldsSize(version);
7992 
7993  checkBinaryLength(
7994  *this, length, minimalRequiredLength);
7995  }
7996 
7997  void checkCompatibility() const
7998  {
7999  assert(TemplateId == templateId());
8000 
8001  checkSchema<Schema>(schemaId(), version());
8002  checkLength(bufferSize(), version());
8003  }
8004 };
8005 
8006 /// Relays execution summary statistics information on one instrument..
8009 : SbeMessage
8010 {
8011  /// Used template schema.
8013 
8014  /// Message template ID from SBE schema.
8015  enum { TemplateId = 56 };
8016 
8017  /// Initializes a blank instance.
8019 
8020  /// Creates an instance over the given memory block.
8022  void* data,
8023  EncodedLength length,
8024  NoInit)
8025  : SbeMessage(data, length)
8026  {
8027  checkCompatibility();
8028  }
8029 
8030  /// Creates an instance over the given SBE message.
8031  explicit
8033  const SbeMessage& message)
8034  : SbeMessage(message)
8035  {
8036  assert(message.valid());
8037 
8038  checkCompatibility();
8039  }
8040 
8041  /// Creates an instance over the given memory block.
8042  /// Performs no checks.
8044  void* data,
8045  EncodedLength length,
8046  NoInit,
8047  NoCheck)
8049  : SbeMessage(data, length, NoCheck())
8050  {
8051  assert(schemaId() == Schema::Id);
8052  assert(version() >= Schema::MinimalVersion);
8053  assert(TemplateId == templateId());
8054  }
8055 
8056  /// FIX Message Type.
8061  {
8062  return MessageType::MarketDataIncrementalRefresh;
8063  }
8064 
8065  /// Specifies the service pack release being applied at
8066  /// message level.
8071  {
8072  return ApplVerID::FIX50SP2;
8073  }
8074 
8075  /// Security ID as defined by B3. For the SecurityID list, see
8076  /// the Security Definition message in Market Data feed.
8077  ONIXS_B3_UMDF_MD_NODISCARD
8080  {
8082 
8083  return ordinary<SecurityID>(offset);
8084  }
8085 
8086  /// Identifies the class of the SecurityID (Exchange Symbol).
8091  {
8092  return SecurityIDSource::EXCHANGE_SYMBOL;
8093  }
8094 
8095  /// Market to which the symbol belongs.
8097  ONIXS_B3_UMDF_MD_NODISCARD
8101  {
8102  return constructStrRef("BVMF");
8103  }
8104 
8105  /// Identifies the end of the current event.
8106  ONIXS_B3_UMDF_MD_NODISCARD
8109  {
8111 
8112  return ordinary<MatchEventIndicator>(offset);
8113  }
8114 
8115  /// Update Action (NEW) - always replace.
8120  {
8121  return UpdateAction::NEW;
8122  }
8123 
8124  /// Entry type: Execution Statistics.
8129  {
8130  return EntryType::EXECUTION_STATISTICS;
8131  }
8132 
8133  /// Identifier for trading session.
8134  ONIXS_B3_UMDF_MD_NODISCARD
8137  {
8139 
8140  return enumeration<TradingSessionID>(offset);
8141  }
8142 
8143  /// Used to specify the trading date for which a set of market
8144  /// data applies.
8145  ONIXS_B3_UMDF_MD_NODISCARD
8148  {
8150 
8151  return localMktDateToTimestamp(ordinary<LocalMktDate>(offset));
8152  }
8153 
8154  /// Total traded volume for the session.
8155  ONIXS_B3_UMDF_MD_NODISCARD
8158  {
8160 
8161  return ordinary<QuantityVolume>(offset);
8162  }
8163 
8164  /// Volume-weighted average price.
8165  ONIXS_B3_UMDF_MD_NODISCARD
8166  bool vwapPx(PriceOptional& value) const
8168  {
8170 
8171  return decimal(value, offset, NullPriceOptional());
8172  }
8173 
8174  /// Net change from previous trading day’s closing price vs.
8175  /// last traded price.
8176  ONIXS_B3_UMDF_MD_NODISCARD
8177  bool
8179  PriceOffset8Optional& value) const
8181  {
8183 
8184  return decimal(value, offset, NullPriceOffset8Optional());
8185  }
8186 
8187  /// Number of trades executed in the session.
8188  ONIXS_B3_UMDF_MD_NODISCARD
8191  {
8193 
8194  return ordinary<NumberOfTrades>(offset);
8195  }
8196 
8197  /// Date and time of market data entry.
8198  ONIXS_B3_UMDF_MD_NODISCARD
8201  {
8203 
8204  return ordinary(value, offset, NullUTCTimestampNanos());
8205  }
8206 
8207  /// Sequence number per instrument update. Zeroed in snapshot
8208  /// feed.
8209  ONIXS_B3_UMDF_MD_NODISCARD
8210  bool rptSeq(RptSeq& value) const
8212  {
8214 
8215  return ordinary(value, offset, NullRptSeq());
8216  }
8217 
8218  /// Minimal size of message body in bytes.
8221  static
8222  BlockLength
8224  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
8226  {
8227  return
8228  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
8229  52;
8230  }
8231 
8232  /// Size of message body in bytes.
8237  {
8238  return
8239  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
8240  minimalBlockLength(version);
8241  }
8242 
8243  /// Minimal variable fields size (when variable-length fields are empty).
8245  ONIXS_B3_UMDF_MD_NODISCARD
8247  static
8248  MessageSize
8250  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
8251  {
8252  return
8253  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
8254  0;
8255  }
8256 
8257  /// \return class name.
8259  ONIXS_B3_UMDF_MD_NODISCARD
8261  static const Char* className()
8262  {
8263  return "ExecutionStatistics_56";
8264  }
8265 
8266  /// FIX message type.
8268  ONIXS_B3_UMDF_MD_NODISCARD
8270  static StrRef fixType()
8272  {
8273  return constructStrRef("ExecutionStatistics_56");
8274  }
8275 
8276  /// \return a human-readable presentation.
8277  ONIXS_B3_UMDF_MD_NODISCARD
8278  std::string toString() const;
8279 
8280 private:
8281  void checkLength(
8282  EncodedLength length, SchemaVersion version) const
8283  {
8284  const EncodedLength minimalRequiredLength =
8285  minimalBlockLength(version) +
8286  MessageHeader::Size +
8287  getMinimalVariableFieldsSize(version);
8288 
8289  checkBinaryLength(
8290  *this, length, minimalRequiredLength);
8291  }
8292 
8293  void checkCompatibility() const
8294  {
8295  assert(TemplateId == templateId());
8296 
8297  checkSchema<Schema>(schemaId(), version());
8298  checkLength(bufferSize(), version());
8299  }
8300 };
8301 
8302 /// Relays trade bust (trade reversal) information on one instrument..
8305 : SbeMessage
8306 {
8307  /// Used template schema.
8309 
8310  /// Message template ID from SBE schema.
8311  enum { TemplateId = 57 };
8312 
8313  /// Initializes a blank instance.
8315 
8316  /// Creates an instance over the given memory block.
8318  void* data,
8319  EncodedLength length,
8320  NoInit)
8321  : SbeMessage(data, length)
8322  {
8323  checkCompatibility();
8324  }
8325 
8326  /// Creates an instance over the given SBE message.
8327  explicit
8329  const SbeMessage& message)
8330  : SbeMessage(message)
8331  {
8332  assert(message.valid());
8333 
8334  checkCompatibility();
8335  }
8336 
8337  /// Creates an instance over the given memory block.
8338  /// Performs no checks.
8340  void* data,
8341  EncodedLength length,
8342  NoInit,
8343  NoCheck)
8345  : SbeMessage(data, length, NoCheck())
8346  {
8347  assert(schemaId() == Schema::Id);
8348  assert(version() >= Schema::MinimalVersion);
8349  assert(TemplateId == templateId());
8350  }
8351 
8352  /// FIX Message Type.
8357  {
8358  return MessageType::MarketDataIncrementalRefresh;
8359  }
8360 
8361  /// Specifies the service pack release being applied at
8362  /// message level.
8367  {
8368  return ApplVerID::FIX50SP2;
8369  }
8370 
8371  /// Security ID as defined by B3. For the SecurityID list, see
8372  /// the Security Definition message in Market Data feed.
8373  ONIXS_B3_UMDF_MD_NODISCARD
8376  {
8378 
8379  return ordinary<SecurityID>(offset);
8380  }
8381 
8382  /// Identifies the class of the SecurityID (Exchange Symbol).
8387  {
8388  return SecurityIDSource::EXCHANGE_SYMBOL;
8389  }
8390 
8391  /// Market to which the symbol belongs.
8393  ONIXS_B3_UMDF_MD_NODISCARD
8397  {
8398  return constructStrRef("BVMF");
8399  }
8400 
8401  /// Identifies the end of the current event.
8402  ONIXS_B3_UMDF_MD_NODISCARD
8405  {
8407 
8408  return ordinary<MatchEventIndicator>(offset);
8409  }
8410 
8411  /// Update Action (DELETE) = always delete.
8416  {
8417  return UpdateAction::DELETE;
8418  }
8419 
8420  /// Entry type: Trade Bust.
8425  {
8426  return EntryType::TRADE_BUST;
8427  }
8428 
8429  /// Identifier for trading session.
8430  ONIXS_B3_UMDF_MD_NODISCARD
8433  {
8435 
8436  return enumeration<TradingSessionID>(offset);
8437  }
8438 
8439  /// Price of the Market Data Entry.
8440  ONIXS_B3_UMDF_MD_NODISCARD
8443  {
8445 
8446  return decimal<Price>(offset);
8447  }
8448 
8449  /// Quantity or volume represented by the Market Data Entry.
8450  ONIXS_B3_UMDF_MD_NODISCARD
8453  {
8455 
8456  return ordinary<Quantity>(offset);
8457  }
8458 
8459  /// Contains the unique identifier for this trade per
8460  /// instrument + trading date, as assigned by the exchange.
8461  /// Required if reporting a Trade.
8462  ONIXS_B3_UMDF_MD_NODISCARD
8465  {
8467 
8468  return ordinary<TradeID>(offset);
8469  }
8470 
8471  /// Used to specify the trading date for which a set of market
8472  /// data applies.
8473  ONIXS_B3_UMDF_MD_NODISCARD
8476  {
8478 
8479  return localMktDateToTimestamp(ordinary<LocalMktDate>(offset));
8480  }
8481 
8482  /// Timestamp when the trade bust event occurred.
8483  ONIXS_B3_UMDF_MD_NODISCARD
8486  {
8488 
8489  return ordinary(value, offset, NullUTCTimestampNanos());
8490  }
8491 
8492  /// Sequence number per instrument update. Zeroed in snapshot
8493  /// feed.
8494  ONIXS_B3_UMDF_MD_NODISCARD
8495  bool rptSeq(RptSeq& value) const
8497  {
8499 
8500  return ordinary(value, offset, NullRptSeq());
8501  }
8502 
8503  /// Minimal size of message body in bytes.
8506  static
8507  BlockLength
8509  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
8511  {
8512  return
8513  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
8514  48;
8515  }
8516 
8517  /// Size of message body in bytes.
8520  static
8521  BlockLength
8523  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
8525  {
8526  return
8527  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
8528  minimalBlockLength(version);
8529  }
8530 
8531  /// Minimal variable fields size (when variable-length fields are empty).
8533  ONIXS_B3_UMDF_MD_NODISCARD
8535  static
8536  MessageSize
8538  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
8539  {
8540  return
8541  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
8542  0;
8543  }
8544 
8545  /// \return class name.
8547  ONIXS_B3_UMDF_MD_NODISCARD
8549  static const Char* className()
8550  {
8551  return "TradeBust_57";
8552  }
8553 
8554  /// FIX message type.
8556  ONIXS_B3_UMDF_MD_NODISCARD
8558  static StrRef fixType()
8560  {
8561  return constructStrRef("TradeBust_57");
8562  }
8563 
8564  /// \return a human-readable presentation.
8565  ONIXS_B3_UMDF_MD_NODISCARD
8566  std::string toString() const;
8567 
8568 private:
8569  void checkLength(
8570  EncodedLength length, SchemaVersion version) const
8571  {
8572  const EncodedLength minimalRequiredLength =
8573  minimalBlockLength(version) +
8574  MessageHeader::Size +
8575  getMinimalVariableFieldsSize(version);
8576 
8577  checkBinaryLength(
8578  *this, length, minimalRequiredLength);
8579  }
8580 
8581  void checkCompatibility() const
8582  {
8583  assert(TemplateId == templateId());
8584 
8585  checkSchema<Schema>(schemaId(), version());
8586  checkLength(bufferSize(), version());
8587  }
8588 };
8589 
8590 /// Partial list of orders for the snapshot of a single instrument..
8593 : SbeMessage
8594 {
8595  /// Used template schema.
8597 
8598  /// Message template ID from SBE schema.
8599  enum { TemplateId = 71 };
8600 
8601  /// Partial list of orders.
8602  /// Entry of Entry repeating group.
8605  <
8607  >
8608  {
8609  /// Base class type.
8610  typedef
8612  <
8614  >
8616 
8617  /// Initializes instance of given
8618  /// version over given memory block.
8620  const void* data,
8621  EncodedLength length,
8622  SchemaVersion version)
8623  : Base(data, numericCast<Base::BlockLength>(length), version)
8624  {
8625  assert(version >= Schema::MinimalVersion);
8626  assert(length >= minimalBlockLength(version));
8627  }
8628 
8629  /// Price per share or contract. Conditionally required if the
8630  /// order type requires a price (not market orders).
8631  ONIXS_B3_UMDF_MD_NODISCARD
8632  bool mDEntryPx(PriceOptional& value) const
8634  {
8636 
8637  return decimal(value, offset, NullPriceOptional());
8638  }
8639 
8640  /// Displayed quantity or volume represented by the Market
8641  /// Data Entry.
8642  ONIXS_B3_UMDF_MD_NODISCARD
8645  {
8647 
8648  return ordinary<Quantity>(offset);
8649  }
8650 
8651  /// Display position of a bid or offer, numbered from most
8652  /// competitive to least competitive, per market side,
8653  /// beginning with 1.
8654  ONIXS_B3_UMDF_MD_NODISCARD
8657  {
8659 
8660  return ordinary<EntryPositionNo>(offset);
8661  }
8662 
8663  /// Identifies the broker firm.
8664  ONIXS_B3_UMDF_MD_NODISCARD
8665  bool enteringFirm(FirmOptional& value) const
8667  {
8669 
8670  return ordinary(value, offset, NullFirmOptional());
8671  }
8672 
8673  /// The date and time when the order was inserted or re-
8674  /// inserted into the order book or manually altered by
8675  /// MktOps.
8676  ONIXS_B3_UMDF_MD_NODISCARD
8679  {
8681 
8682  return ordinary(value, offset, NullUTCTimestampNanos());
8683  }
8684 
8685  /// Exchange-generated order identifier that changes for each
8686  /// order modification event, or quantity replenishment in
8687  /// disclosed orders.
8688  ONIXS_B3_UMDF_MD_NODISCARD
8691  {
8693 
8694  return ordinary<OrderID>(offset);
8695  }
8696 
8697  /// Entry Type (BID or OFFER).
8698  ONIXS_B3_UMDF_MD_NODISCARD
8701  {
8703 
8704  return enumeration<EntryType>(offset);
8705  }
8706 
8707  /// Identifies if this order is implied or not.
8708  ONIXS_B3_UMDF_MD_NODISCARD
8709  bool
8711  MatchEventIndicator& value) const
8713  {
8716 
8717  return ordinary(value, offset, NullUInt8(), since);
8718  }
8719 
8720  /// \return size of entry body in bytes
8721  /// for given version of message template.
8726  {
8727  return
8728  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
8729  minimalBlockLength(version);
8730  }
8731 
8732  /// \return minimal size of entry body in bytes
8733  /// for given version of message template.
8738  {
8739  return
8740  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
8741  (version >= 10)
8742  ? 42
8743  : 41;
8744  }
8745 
8746  /// Entity class name.
8748  ONIXS_B3_UMDF_MD_NODISCARD
8750  static const Char* className()
8751  {
8752  return "SnapshotFullRefresh_Orders_MBO_71.Entry";
8753  }
8754  };
8755 
8756  /// Repeating group containing Entry entries.
8757  typedef
8760 
8761  /// Initializes a blank instance.
8763 
8764  /// Creates an instance over the given memory block.
8766  void* data,
8767  EncodedLength length,
8768  NoInit)
8769  : SbeMessage(data, length)
8770  {
8771  checkCompatibility();
8772  }
8773 
8774  /// Creates an instance over the given SBE message.
8775  explicit
8777  const SbeMessage& message)
8778  : SbeMessage(message)
8779  {
8780  assert(message.valid());
8781 
8782  checkCompatibility();
8783  }
8784 
8785  /// Creates an instance over the given memory block.
8786  /// Performs no checks.
8788  void* data,
8789  EncodedLength length,
8790  NoInit,
8791  NoCheck)
8793  : SbeMessage(data, length, NoCheck())
8794  {
8795  assert(schemaId() == Schema::Id);
8796  assert(version() >= Schema::MinimalVersion);
8797  assert(TemplateId == templateId());
8798  }
8799 
8800  /// FIX Message Type.
8805  {
8806  return MessageType::MarketDataSnapshotFullRefresh;
8807  }
8808 
8809  /// Specifies the service pack release being applied at
8810  /// message level.
8815  {
8816  return ApplVerID::FIX50SP2;
8817  }
8818 
8819  /// Security ID as defined by B3. For the SecurityID list, see
8820  /// the Security Definition message in Market Data feed.
8821  ONIXS_B3_UMDF_MD_NODISCARD
8824  {
8826 
8827  return ordinary<SecurityID>(offset);
8828  }
8829 
8830  /// Identifies the class of the SecurityID (Exchange Symbol).
8835  {
8836  return SecurityIDSource::EXCHANGE_SYMBOL;
8837  }
8838 
8839  /// Market to which the symbol belongs.
8841  ONIXS_B3_UMDF_MD_NODISCARD
8845  {
8846  return constructStrRef("BVMF");
8847  }
8848 
8849  /// \return instance of Entries repeating group.
8850  ONIXS_B3_UMDF_MD_NODISCARD
8853  {
8854  return getGroup<Entries>(EntriesAccess(), *this);
8855  }
8856 
8857  /// Minimal size of message body in bytes.
8860  static
8861  BlockLength
8863  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
8865  {
8866  return
8867  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
8868  8;
8869  }
8870 
8871  /// Size of message body in bytes.
8876  {
8877  return
8878  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
8879  minimalBlockLength(version);
8880  }
8881 
8882  /// Minimal variable fields size (when variable-length fields are empty).
8884  ONIXS_B3_UMDF_MD_NODISCARD
8886  static
8887  MessageSize
8889  ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
8890  {
8891  return
8892  ONIXS_B3_UMDF_MD_ASSERT(version >= Schema::MinimalVersion),
8893  static_cast<MessageSize>(Entries::EmptySize);
8894  }
8895 
8896  /// \return class name.
8898  ONIXS_B3_UMDF_MD_NODISCARD
8900  static const Char* className()
8901  {
8902  return "SnapshotFullRefresh_Orders_MBO_71";
8903  }
8904 
8905  /// FIX message type.
8907  ONIXS_B3_UMDF_MD_NODISCARD
8909  static StrRef fixType()
8911  {
8912  return constructStrRef(
8913  "SnapshotFullRefresh_Orders_MBO_71");
8914  }
8915 
8916  /// \return a human-readable presentation.
8917  ONIXS_B3_UMDF_MD_NODISCARD
8918  std::string toString() const;
8919 
8920 private:
8921  void checkLength(
8922  EncodedLength length, SchemaVersion version) const
8923  {
8924  const EncodedLength minimalRequiredLength =
8925  minimalBlockLength(version) +
8926  MessageHeader::Size +
8927  getMinimalVariableFieldsSize(version);
8928 
8929  checkBinaryLength(
8930  *this, length, minimalRequiredLength);
8931  }
8932 
8933  /// Checks variable fields consistency.
8934  void checkVarLenFields() const
8935  {
8936  groups().
8937  checkTail<Entries>();
8938  }
8939 
8940  void checkCompatibility() const
8941  {
8942  assert(TemplateId == templateId());
8943 
8944  checkSchema<Schema>(schemaId(), version());
8945  checkLength(bufferSize(), version());
8946  checkVarLenFields();
8947  }
8948 
8949  /// Access helper.
8950  struct EntriesAccess
8951  {
8952  Entries
8953  operator()(
8954  const SnapshotFullRefresh_Orders_MBO_71& obj) const
8956  {
8957  return obj.
8958  groups().
8959  head<Entries>();
8960  }
8961  };
8962 };
8963 
8964 
ONIXS_B3_UMDF_MD_NODISCARD bool mDEntryBuyer(FirmOptional &value) const
For reporting trades (buying party).
Definition: Messages.h:5232
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD const Char * className()
Entity class name.
Definition: Messages.h:1645
ChannelReset_11(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:610
static ONIXS_B3_UMDF_MD_API MessageType::Enum messageType()
FIX Message Type.
Definition: Messages.h:248
OpenInterest_29(void *data, EncodedLength length, NoInit, NoCheck)
Creates an instance over the given memory block.
Definition: Messages.h:5738
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD StrRef fixType()
FIX message type.
Definition: Messages.h:5664
ONIXS_B3_UMDF_MD_NODISCARD ImbalanceCondition imbalanceCondition() const
IMBALANCE_MORE_BUYERS, IMBALANCE_MORE_SELLERS, All bits off => BALANCED.
Definition: Messages.h:3843
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD StrRef legSecurityExchange()
Leg&#39;s Exchange Code.
Definition: Messages.h:1474
ONIXS_B3_UMDF_MD_NODISCARD MatchEventIndicator matchEventIndicator() const
Identifies the end of the current event and if it is a retransmission.
Definition: Messages.h:2627
ONIXS_B3_UMDF_MD_NODISCARD UInt16 partCount() const
Total number of parts for the text of a News message.
Definition: Messages.h:2660
ONIXS_B3_UMDF_MD_NODISCARD bool contractSettlMonth(MaturityMonthYear &value) const
Specifies when the contract will settle.
Definition: Messages.h:2119
static ONIXS_B3_UMDF_MD_API SecurityIDSource::Enum securityIdSource()
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:5491
ONIXS_B3_UMDF_MD_NODISCARD bool rptSeq(RptSeq &value) const
Sequence number per instrument update.
Definition: Messages.h:7271
ONIXS_B3_UMDF_MD_NODISCARD bool mDEntrySeller(FirmOptional &value) const
For reporting trades (selling party).
Definition: Messages.h:7557
ONIXS_B3_UMDF_MD_NODISCARD bool enteringFirm(FirmOptional &value) const
Identifies the broker firm.
Definition: Messages.h:8665
Enum
Describes how the price limits are expressed.
Definition: Fields.h:909
static ONIXS_B3_UMDF_MD_API BlockLength blockLength(SchemaVersion version)
Size of message body in bytes.
Definition: Messages.h:128
ONIXS_B3_UMDF_MD_NODISCARD bool transactTime(UTCTimestampNanos &value) const
Timestamp when status of the security changed.
Definition: Messages.h:950
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD const Char * className()
Definition: Messages.h:8549
SchemaTraits Schema
Used template schema.
Definition: Messages.h:6219
GroupSizeEncoding::BlockLength BlockLength
Type to present the length of binary data of the repeating group entry.
Definition: SbeMessage.h:300
static ONIXS_B3_UMDF_MD_API ApplVerID::Enum applVerId()
Specifies the service pack release being applied at message level.
Definition: Messages.h:8365
static ONIXS_B3_UMDF_MD_API SecurityIDSource::Enum securityIdSource()
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:7801
ClosingPrice_17(void *data, EncodedLength length, NoInit, NoCheck)
Creates an instance over the given memory block.
Definition: Messages.h:3461
static ONIXS_B3_UMDF_MD_API EntryType::Enum mDEntryType()
Entry type: Open Interest.
Definition: Messages.h:5823
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD StrRef securityExchange()
Market to which the symbol belongs.
Definition: Messages.h:470
ONIXS_B3_UMDF_MD_NODISCARD bool priceType(PriceType::Enum &value) const
Code to represent the price type.
Definition: Messages.h:5580
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD MessageSize getMinimalVariableFieldsSize(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:4997
ONIXS_B3_UMDF_MD_NODISCARD TradingSessionID::Enum tradingSessionId() const
Identifier for trading session.
Definition: Messages.h:8135
static ONIXS_B3_UMDF_MD_API EntryType::Enum mDEntryType()
Entry type: Closing Price.
Definition: Messages.h:3546
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD StrRef securityExchange()
Market to which the symbol belongs.
Definition: Messages.h:5501
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD StrRef fixType()
FIX message type.
Definition: Messages.h:8558
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD MessageSize getMinimalVariableFieldsSize(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:6735
static ONIXS_B3_UMDF_MD_API BlockLength minimalBlockLength(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Minimal size of message body in bytes.
Definition: Messages.h:4971
#define ONIXS_B3_UMDF_MD_DEFAULT
Definition: Compiler.h:122
ONIXS_B3_UMDF_MD_NODISCARD bool multiLegModel(MultiLegModel::Enum &value) const
Defines whether the security is pre-defined or user- defined.
Definition: Messages.h:2282
ONIXS_B3_UMDF_MD_NODISCARD NewsSource::Enum newsSource() const
Source of the News.
Definition: Messages.h:2637
Sequence_2(void *data, EncodedLength length, NoInit, NoCheck)
Creates an instance over the given memory block.
Definition: Messages.h:232
static ONIXS_B3_UMDF_MD_API BlockLength blockLength(SchemaVersion version)
Size of message body in bytes.
Definition: Messages.h:2751
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD StrRef securityExchange()
Market to which the symbol belongs.
Definition: Messages.h:5794
ONIXS_B3_UMDF_MD_NODISCARD bool rptSeq(RptSeq &value) const
Sequence number per instrument update.
Definition: Messages.h:6413
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD StrRef securityExchange()
Market to which the symbol belongs.
Definition: Messages.h:6051
static ONIXS_B3_UMDF_MD_API EntryType::Enum mDEntryType()
Entry type: Opening Price.
Definition: Messages.h:2990
The theoretical opening price is also sent on this block and is calculated and updated based on the o...
Definition: Messages.h:3150
ONIXS_B3_UMDF_MD_NODISCARD UpdateAction::Enum mDUpdateAction() const
Update Action (DELETE_FROM, DELETE_THRU).
Definition: Messages.h:6899
ONIXS_B3_UMDF_MD_NODISCARD bool endDate(Timestamp &value) const
End date of a financing deal, i.e.
Definition: Messages.h:2005
static ONIXS_B3_UMDF_MD_API BlockLength minimalBlockLength(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Definition: Messages.h:1398
static ONIXS_B3_UMDF_MD_API EntryType::Enum mDEntryType()
Entry type: Trade.
Definition: Messages.h:7487
static ONIXS_B3_UMDF_MD_API BlockLength blockLength(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Size of message body in bytes.
Definition: Messages.h:7938
SecurityDefinition_12(void *data, EncodedLength length, NoInit, NoCheck)
Creates an instance over the given memory block.
Definition: Messages.h:1682
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD StrRef fixType()
FIX message type.
Definition: Messages.h:5926
ONIXS_B3_UMDF_MD_NODISCARD bool maturityMonthYear(MaturityMonthYear &value) const
Week, month and year of the maturity (used for standardized futures and options). ...
Definition: Messages.h:2109
Int64 QuantityVolumeOptional
Volume Quantity.
Definition: Fields.h:130
DeleteOrder_MBO_51(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:6544
Null values definition for optional MaturityMonthYear field.
Definition: Composites.h:1057
Used to reset the incremental stream or indicate the loop on instrument definition or snapshot recove...
Definition: Messages.h:34
ONIXS_B3_UMDF_MD_NODISCARD TradeID tradeId() const
Contains the unique identifier for this trade per instrument + trading date, as assigned by the excha...
Definition: Messages.h:7537
static ONIXS_B3_UMDF_MD_API MessageType::Enum messageType()
FIX Message Type.
Definition: Messages.h:8059
Conveys market information of B3 market surveillance notifications and news produced by agencies...
Definition: Messages.h:2524
ONIXS_B3_UMDF_MD_NODISCARD bool trdSubType(TrdSubType::Enum &value) const
Sub type of trade assigned to a trade.
Definition: Messages.h:5308
ONIXS_B3_UMDF_MD_NODISCARD UInt16 totNumStats() const
Total number of statistics (incremental and security status messages) that constitute this snapshot...
Definition: Messages.h:6104
ONIXS_B3_UMDF_MD_NODISCARD SecurityID securityId() const
Security ID as defined by B3.
Definition: Messages.h:1716
Carries auction imbalance information, indicating the remaining quantity and to which side (buyer or ...
Definition: Messages.h:3712
Carries the summary information about opening trading session events per market data stream...
Definition: Messages.h:2868
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD StrRef securityExchange()
Market to which the symbol belongs.
Definition: Messages.h:3242
#define ONIXS_B3_UMDF_MD_NOTHROW
Definition: Compiler.h:114
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD MessageSize getMinimalVariableFieldsSize(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:306
static ONIXS_B3_UMDF_MD_API BlockLength minimalBlockLength(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Minimal size of message body in bytes.
Definition: Messages.h:4148
ONIXS_B3_UMDF_MD_NODISCARD OrderID secondaryOrderId() const
Exchange-generated order identifier that changes for each order modification event, or quantity replenishment in disclosed orders.
Definition: Messages.h:8689
static ONIXS_B3_UMDF_MD_API OpenCloseSettlFlag::Enum openCloseSettlFlag()
Indicates this is a theoretical opening price.
Definition: Messages.h:3281
ONIXS_B3_UMDF_MD_NODISCARD bool mDEntryPx(PriceOptional &value) const
Price per share or contract.
Definition: Messages.h:6345
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD MessageSize getMinimalVariableFieldsSize(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:1003
ONIXS_B3_UMDF_MD_NODISCARD SecurityID securityId() const
Security ID as defined by B3.
Definition: Messages.h:851
IntegralConstant< UInt32, 1 > SeqNum1
Sequence Number, fixed to 1.
Definition: Fields.h:162
static ONIXS_B3_UMDF_MD_API SecurityIDSource::Enum securityIdSource()
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:6041
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD const Char * className()
Definition: Messages.h:2777
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD StrRef securityExchange()
Market to which the symbol belongs.
Definition: Messages.h:8395
ONIXS_B3_UMDF_MD_NODISCARD bool securityValidityTimestamp(UTCTimestampSeconds &value) const
Indicates the UTC timestamp when trading for this security expires, i.e.
Definition: Messages.h:1861
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD StrRef fixType()
FIX message type.
Definition: Messages.h:7686
ONIXS_B3_UMDF_MD_NODISCARD bool mDEntryTimestamp(UTCTimestampNanos &value) const
Timestamp when the mass delete order event occurred.
Definition: Messages.h:6930
Summary information about closing trading sessions per market data stream..
Definition: Messages.h:3425
ONIXS_B3_UMDF_MD_NODISCARD StrRef securityGroup() const
Security Group.
Definition: Messages.h:1747
ONIXS_B3_UMDF_MD_NODISCARD OpenCloseSettlFlag::Enum openCloseSettlFlag() const
Identifies if the opening price represents or not a daily opening price.
Definition: Messages.h:2999
static ONIXS_B3_UMDF_MD_API SecurityIDSource::Enum securityIdSource()
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:8089
static ONIXS_B3_UMDF_MD_API EntryType::Enum mDEntryType()
Type of the Market Data Entry.
Definition: Messages.h:665
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD StrRef fixType()
FIX message type.
Definition: Messages.h:327
ONIXS_B3_UMDF_MD_NODISCARD Product::Enum product() const
Type of product.
Definition: Messages.h:2193
#define ONIXS_B3_UMDF_MD_CONSTEXPR
Definition: Compiler.h:120
static ONIXS_B3_UMDF_MD_API EntryType::Enum mDEntryType()
Entry type: Price Band.
Definition: Messages.h:4352
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD StrRef fixType()
FIX message type.
Definition: Messages.h:552
ONIXS_B3_UMDF_MD_NODISCARD bool rptSeq(RptSeq &value) const
Sequence number per instrument update.
Definition: Messages.h:6693
static ONIXS_B3_UMDF_MD_API SecurityIDSource::Enum securityIdSource()
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:3507
ONIXS_B3_UMDF_MD_NODISCARD MatchEventIndicator matchEventIndicator() const
Identifies the end of the current event and/or the trade is implied.
Definition: Messages.h:7139
ONIXS_B3_UMDF_MD_NODISCARD bool sellerDays(UInt16NULL &value) const
Specifies the number of days that may elapse before delivery of the security.
Definition: Messages.h:5286
ONIXS_B3_UMDF_MD_NODISCARD MatchEventIndicator matchEventIndicator() const
Identifies the end of the current event and if it is a retransmission.
Definition: Messages.h:3813
UInt32 EntryPositionNo
Display position of a bid or offer, numbered from most competitive to least competitive, per market side, beginning with 1.
Definition: Fields.h:240
ONIXS_B3_UMDF_MD_NODISCARD bool vwapPx(PriceOptional &value) const
Volume-weighted average price.
Definition: Messages.h:8166
Total number of contracts in a commodity or options market that are still open..
Definition: Messages.h:5697
ONIXS_B3_UMDF_MD_NODISCARD bool putOrCall(PutOrCall::Enum &value) const
Indicates whether an option contract is a put or call.
Definition: Messages.h:2215
ONIXS_B3_UMDF_MD_NODISCARD Quantity mDEntrySize() const
Quantity or volume represented by the Market Data Entry.
Definition: Messages.h:5210
static ONIXS_B3_UMDF_MD_API EntryType::Enum mDEntryType()
Type of the Market Data Entry.
Definition: Messages.h:440
TradeBust_57(void *data, EncodedLength length, NoInit, NoCheck)
Creates an instance over the given memory block.
Definition: Messages.h:8339
ONIXS_B3_UMDF_MD_NODISCARD bool mDEntryTimestamp(UTCTimestampNanos &value) const
Date and time of market data entry.
Definition: Messages.h:684
static ONIXS_B3_UMDF_MD_API EntryType::Enum mDEntryType()
Entry type: Execution Statistics.
Definition: Messages.h:8127
ONIXS_B3_UMDF_MD_NODISCARD OpenCloseSettlFlag::Enum openCloseSettlFlag() const
Identifies if the settlement price represents a daily, preliminary or an entry from previous business...
Definition: Messages.h:5570
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD const Char * className()
Entity class name.
Definition: Messages.h:8750
QuantityBand_21(void *data, EncodedLength length, NoInit, NoCheck)
Creates an instance over the given memory block.
Definition: Messages.h:4003
static ONIXS_B3_UMDF_MD_API BlockLength minimalBlockLength(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Minimal size of message body in bytes.
Definition: Messages.h:8508
static ONIXS_B3_UMDF_MD_API MessageType::Enum messageType()
FIX Message Type.
Definition: Messages.h:8803
MassDeleteOrders_MBO_52(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:6814
ONIXS_B3_UMDF_MD_NODISCARD AggressorSide::Enum aggressorSide() const
Which side is aggressor of all fills.
Definition: Messages.h:7837
HighPrice_24()
Initializes a blank instance.
Definition: Messages.h:4552
UInt16 SettlType
Indicates order settlement period in days. (e.g. 0, D1, D2, D3, D60, D120 etc.) If present...
Definition: Fields.h:208
MessageSize EncodedLength
Length of the message binary data.
Definition: SbeMessage.h:1117
ExecutionSummary_55(void *data, EncodedLength length, NoInit, NoCheck)
Creates an instance over the given memory block.
Definition: Messages.h:7755
ONIXS_B3_UMDF_MD_NODISCARD TradeCondition tradeCondition() const
Set of conditions describing a trade.
Definition: Messages.h:5190
ONIXS_B3_UMDF_MD_NODISCARD bool mDEntrySeller(FirmOptional &value) const
For reporting trades (selling party).
Definition: Messages.h:5242
ONIXS_B3_UMDF_MD_NODISCARD bool countryOfIssue(StrRef &value) const
ISO 3166-1 alpha-2 country code.
Definition: Messages.h:1972
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD const Char * className()
Definition: Messages.h:3108
static ONIXS_B3_UMDF_MD_API BlockLength blockLength(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Size of message body in bytes.
Definition: Messages.h:516
ONIXS_B3_UMDF_MD_NODISCARD SecurityID securityId() const
Security ID as defined by B3.
Definition: Messages.h:3221
static ONIXS_B3_UMDF_MD_API EntryType::Enum mDEntryType()
Entry type: Execution Summary.
Definition: Messages.h:7829
static ONIXS_B3_UMDF_MD_API BlockLength minimalBlockLength(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Minimal size of message body in bytes.
Definition: Messages.h:3344
static ONIXS_B3_UMDF_MD_API UpdateAction::Enum mDUpdateAction()
Update Action (NEW) - always replace.
Definition: Messages.h:7820
ONIXS_B3_UMDF_MD_NODISCARD StrRef text() const
Free format text string.
Definition: Messages.h:2720
ONIXS_B3_UMDF_MD_NODISCARD Timestamp tradeDate() const
Used to specify the trading date for which a set of market data applies.
Definition: Messages.h:3595
static ONIXS_B3_UMDF_MD_API BlockLength blockLength(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Size of message body in bytes.
Definition: Messages.h:6144
static ONIXS_B3_UMDF_MD_API MessageType::Enum messageType()
FIX Message Type.
Definition: Messages.h:4593
static ONIXS_B3_UMDF_MD_API MessageType::Enum messageType()
FIX Message Type.
Definition: Messages.h:6266
PriceBand_22(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:4256
Disseminates the creation or modification of a new order..
Definition: Messages.h:6214
ONIXS_B3_UMDF_MD_NODISCARD UInt32 totNoRelatedSym() const
Total number of instruments to be returned in the current replay loop.
Definition: Messages.h:1802
ONIXS_B3_UMDF_MD_NODISCARD bool mDEntryTimestamp(UTCTimestampNanos &value) const
Timestamp when the order event occurred.
Definition: Messages.h:6423
Trade_53()
Initializes a blank instance.
Definition: Messages.h:7049
UInt16 UInt16
2-byte unsigned integer, from 0 to 65535..
Definition: Fields.h:54
SchemaTraits Schema
Used template schema.
Definition: Messages.h:2873
static ONIXS_B3_UMDF_MD_API BlockLength minimalBlockLength(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Minimal size of message body in bytes.
Definition: Messages.h:5876
static ONIXS_B3_UMDF_MD_API MessageType::Enum messageType()
FIX Message Type.
Definition: Messages.h:412
static ONIXS_B3_UMDF_MD_API ApplVerID::Enum applVerId()
Specifies the service pack release being applied at message level.
Definition: Messages.h:7429
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD const Char * className()
Definition: Messages.h:6995
ONIXS_B3_UMDF_MD_NODISCARD bool datedDate(Timestamp &value) const
The date of the security activation, if different from the IssueDate.
Definition: Messages.h:2054
The lowest price traded for the security in the trading session..
Definition: Messages.h:4796
Int32 LocalMktDate32Optional
Optional local date (as opposed to UTC).
Definition: Fields.h:234
ForwardTrade_54(void *data, EncodedLength length, NoInit, NoCheck)
Creates an instance over the given memory block.
Definition: Messages.h:7403
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD MessageSize getMinimalVariableFieldsSize(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:4177
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD MessageSize getMinimalVariableFieldsSize(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:8888
ONIXS_B3_UMDF_MD_NODISCARD UInt32 totNumReports() const
Total number of snapshots to be returned in the current replay loop.
Definition: Messages.h:6073
static ONIXS_B3_UMDF_MD_API BlockLength minimalBlockLength(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Minimal size of message body in bytes.
Definition: Messages.h:4461
ONIXS_B3_UMDF_MD_NODISCARD bool settlCurrency(StrRef &value) const
Currency used for the settlement.
Definition: Messages.h:2151
static ONIXS_B3_UMDF_MD_API MessageType::Enum messageType()
FIX Message Type.
Definition: Messages.h:7419
Header for the snapshot of a single instrument.
Definition: Messages.h:5959
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD StrRef fixType()
FIX message type.
Definition: Messages.h:2786
static ONIXS_B3_UMDF_MD_API ApplVerID::Enum applVerId()
Specifies the service pack release being applied at message level.
Definition: Messages.h:8813
static ONIXS_B3_UMDF_MD_API ApplVerID::Enum applVerId()
Specifies the service pack release being applied at message level.
Definition: Messages.h:3212
Enum
Action used when updating the security.
Definition: Fields.h:376
ONIXS_B3_UMDF_MD_NODISCARD Price mDEntryPx() const
Settlement Price.
Definition: Messages.h:5549
ONIXS_B3_UMDF_MD_NODISCARD MatchEventIndicator matchEventIndicator() const
Identifies the end of the current event and if it is a retransmission.
Definition: Messages.h:3251
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD const Char * className()
Definition: Messages.h:154
News_5()
Initializes a blank instance.
Definition: Messages.h:2535
Set of indicators for the end of updates for a given event. It also indicates if this message is a re...
Definition: Fields.h:1654
#define ONIXS_B3_UMDF_MD_ASSERT(CHECK)
Definition: Compiler.h:156
Set of conditions describing an imbalance..
Definition: Fields.h:1448
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD StrRef fixType()
FIX message type.
Definition: Messages.h:4763
ONIXS_B3_UMDF_MD_NODISCARD SecurityID securityId() const
Security ID as defined by B3.
Definition: Messages.h:8374
The highest price traded for the security in the trading session..
Definition: Messages.h:4541
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD const Char * className()
Entity class name.
Definition: Messages.h:1411
Market Data Incremental Refresh - Empty Book.
Definition: Messages.h:360
ONIXS_B3_UMDF_MD_NODISCARD bool mDEntrySeller(FirmOptional &value) const
For reporting trades (selling party).
Definition: Messages.h:7229
ONIXS_B3_UMDF_MD_NODISCARD OpenCloseSettlFlag::Enum openCloseSettlFlag() const
Identifies if the closing price represents a daily or entry from previous business day...
Definition: Messages.h:3555
Enum
Describes the lot type for the instruments. Used for the Equities segment.
Definition: Fields.h:404
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD StrRef securityExchange()
Market to which the symbol belongs.
Definition: Messages.h:872
ONIXS_B3_UMDF_MD_NODISCARD UInt32 totNumOffers() const
Total number of ask orders that constitute this snapshot.
Definition: Messages.h:6093
ONIXS_B3_UMDF_MD_NODISCARD EntryType::Enum mDEntryType() const
Entry Type (BID or OFFER).
Definition: Messages.h:6638
static ONIXS_B3_UMDF_MD_API MessageType::Enum messageType()
FIX Message Type.
Definition: Messages.h:5754
ONIXS_B3_UMDF_MD_NODISCARD bool startDate(Timestamp &value) const
Start date of a financing deal, i.e.
Definition: Messages.h:1984
static ONIXS_B3_UMDF_MD_API BlockLength minimalBlockLength(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Definition: Messages.h:1632
SnapshotFullRefresh_Orders_MBO_71(void *data, EncodedLength length, NoInit, NoCheck)
Creates an instance over the given memory block.
Definition: Messages.h:8787
TradeBust_57(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:8328
ONIXS_B3_UMDF_MD_NODISCARD TradeCondition tradeCondition() const
Set of conditions describing a trade.
Definition: Messages.h:7177
static ONIXS_B3_UMDF_MD_API MessageType::Enum messageType()
FIX Message Type.
Definition: Messages.h:4283
IntegralConstant< UInt16, 0 > NullLocalMktDateOptional
Null value for an optional LocalMktDateOptional field.
Definition: Fields.h:1952
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD const Char * className()
Definition: Messages.h:8900
static ONIXS_B3_UMDF_MD_API MessageType::Enum messageType()
FIX Message Type.
Definition: Messages.h:5461
ONIXS_B3_UMDF_MD_NODISCARD bool multiLegPriceMethod(MultiLegPriceMethod::Enum &value) const
Defines the method used when applying the multileg price to the legs.
Definition: Messages.h:2296
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD StrRef securityExchange()
Market to which the symbol belongs.
Definition: Messages.h:8099
ONIXS_B3_UMDF_MD_NODISCARD MatchEventIndicator matchEventIndicator() const
Identifies the end of the current event and if it is a retransmission.
Definition: Messages.h:2969
ONIXS_B3_UMDF_MD_NODISCARD Timestamp tradeDate() const
Used to specify the trading date for which a set of market data applies.
Definition: Messages.h:4672
Entry(const void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:8619
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD MessageSize getMinimalVariableFieldsSize(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:2397
SecurityStatus_3(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:805
Operations over a repeating group instance.
Definition: SbeMessage.h:296
Represents time point without time-zone information.
Definition: Time.h:482
static ONIXS_B3_UMDF_MD_API EntryType::Enum mDEntryType()
Entry type: Trade.
Definition: Messages.h:7159
UInt64 SecurityIDOptional
Security ID as defined by B3&#39;s Trading System.
Definition: Fields.h:174
SbeGroup< UnderlyingsEntry, GroupSizeEncoding, MessageSize > Underlyings
Repeating group containing UnderlyingsEntry entries.
Definition: Messages.h:1420
static ONIXS_B3_UMDF_MD_API BlockLength blockLength(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Size of message body in bytes.
Definition: Messages.h:7298
Enum
Indicates the type of price banding (tunnel).
Definition: Fields.h:844
ONIXS_B3_UMDF_MD_NODISCARD bool mDEntryTimestamp(UTCTimestampNanos &value) const
Date and time of market data entry.
Definition: Messages.h:3863
static ONIXS_B3_UMDF_MD_API MessageType::Enum messageType()
FIX Message Type.
Definition: Messages.h:2920
SchemaTraits Schema
Used template schema.
Definition: Messages.h:3430
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD StrRef securityExchange()
Market to which the symbol belongs.
Definition: Messages.h:7130
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD StrRef fixType()
FIX message type.
Definition: Messages.h:8909
static ONIXS_B3_UMDF_MD_API EntryType::Enum mDEntryType()
Entry type: Opening Price.
Definition: Messages.h:3272
Order_MBO_50(void *data, EncodedLength length, NoInit, NoCheck)
Creates an instance over the given memory block.
Definition: Messages.h:6250
ONIXS_B3_UMDF_MD_NODISCARD SecurityID legSecurityId() const
Leg&#39;s security ID.
Definition: Messages.h:1452
SecurityGroupPhase_10(void *data, EncodedLength length, NoInit, NoCheck)
Creates an instance over the given memory block.
Definition: Messages.h:1093
static ONIXS_B3_UMDF_MD_API BlockLength minimalBlockLength(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Minimal size of message body in bytes.
Definition: Messages.h:4716
UInt64 UInt64NULL
8-byte unsigned integer, from 1 to 18446744073709551615 (2^64-1), NULL (optional) value = 0...
Definition: Fields.h:98
static ONIXS_B3_UMDF_MD_API SecurityIDSource::Enum securityIdSource()
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:8833
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD StrRef fixType()
FIX message type.
Definition: Messages.h:3391
#define ONIXS_B3_UMDF_MD_CONST_OR_CONSTEXPR
Definition: Compiler.h:117
ONIXS_B3_UMDF_MD_NODISCARD StrRef legSymbol() const
Leg symbol.
Definition: Messages.h:1513
static ONIXS_B3_UMDF_MD_API ApplVerID::Enum applVerId()
Specifies the service pack release being applied at message level.
Definition: Messages.h:2586
UTC timestamp with nanosecond precision (Unix Epoch).
Definition: Composites.h:646
ONIXS_B3_UMDF_MD_NODISCARD MatchEventIndicator matchEventIndicator() const
Identifies if it is a retransmission and/or implied order.
Definition: Messages.h:6314
SnapshotFullRefresh_Header_30(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:5984
ONIXS_B3_UMDF_MD_NODISCARD bool avgDailyTradedQty(QuantityVolumeOptional &value) const
Daily average shares traded within 30 days – equity market only.
Definition: Messages.h:4099
ONIXS_B3_UMDF_MD_NODISCARD bool tickSizeDenominator(UInt8 &value) const
Number of decimals for pricing the instrument.
Definition: Messages.h:2183
ExecutionStatistics_56(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:8032
ONIXS_B3_UMDF_MD_NODISCARD UInt16 partNumber() const
Number of the part for this message. Starts from 1.
Definition: Messages.h:2670
ONIXS_B3_UMDF_MD_NODISCARD bool mDEntryBuyer(FirmOptional &value) const
For reporting trades (buying party).
Definition: Messages.h:7547
IntegralConstant< Int32, 0 > NullLocalMktDate32Optional
Null value for an optional LocalMktDate32Optional field.
Definition: Fields.h:1964
static ONIXS_B3_UMDF_MD_API MessageType::Enum messageType()
FIX Message Type.
Definition: Messages.h:1109
ONIXS_B3_UMDF_MD_NODISCARD OrderID secondaryOrderId() const
Exchange-generated order identifier that changes for each order modification event, or quantity replenishment in disclosed orders.
Definition: Messages.h:6672
ONIXS_B3_UMDF_MD_NODISCARD bool tradSesOpenTime(UTCTimestampNanos &value) const
Estimated end of the current auction.
Definition: Messages.h:1195
IntegralConstant< UInt16, 0 > NullUInt16NULL
Null value for an optional UInt16NULL field.
Definition: Fields.h:1832
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD StrRef securityExchange()
Market to which the symbol belongs.
Definition: Messages.h:4633
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD StrRef securityExchange()
Market to which the symbol belongs.
Definition: Messages.h:4323
Enum
Type of exercise of a derivatives security.
Definition: Fields.h:545
ClosingPrice_17()
Initializes a blank instance.
Definition: Messages.h:3436
SecurityGroupPhase_10(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:1082
SchemaTraits Schema
Used template schema.
Definition: Messages.h:4236
static ONIXS_B3_UMDF_MD_API MessageType::Enum messageType()
FIX Message Type.
Definition: Messages.h:6841
static ONIXS_B3_UMDF_MD_API BlockLength minimalBlockLength(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Minimal size of message body in bytes.
Definition: Messages.h:6954
ONIXS_B3_UMDF_MD_NODISCARD SecurityID securityId() const
Security ID as defined by B3.
Definition: Messages.h:6285
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD const Char * className()
Entity class name.
Definition: Messages.h:1553
QuantityBand_21()
Initializes a blank instance.
Definition: Messages.h:3978
TheoreticalOpeningPrice_16(void *data, EncodedLength length, NoInit, NoCheck)
Creates an instance over the given memory block.
Definition: Messages.h:3186
static ONIXS_B3_UMDF_MD_API BlockLength minimalBlockLength(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Minimal size of message body in bytes.
Definition: Messages.h:6436
ONIXS_B3_UMDF_MD_NODISCARD bool mDEntryTimestamp(UTCTimestampNanos &value) const
Date and time of market data entry.
Definition: Messages.h:5559
ONIXS_B3_UMDF_MD_NODISCARD TradeID tradeId() const
Contains the unique identifier for this trade per instrument + trading date, as assigned by the excha...
Definition: Messages.h:5222
ONIXS_B3_UMDF_MD_NODISCARD bool mDEntryTimestamp(UTCTimestampNanos &value) const
Timestamp when the last trade of the execution event occurred.
Definition: Messages.h:7911
ONIXS_B3_UMDF_MD_NODISCARD SecurityUpdateAction::Enum securityUpdateAction() const
Action used when updating the security.
Definition: Messages.h:1770
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD StrRef fixType()
FIX message type.
Definition: Messages.h:2418
ONIXS_B3_UMDF_MD_NODISCARD StrRef headline() const
The headline of a News message.
Definition: Messages.h:2712
UnderlyingsEntry(const void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:1329
static ONIXS_B3_UMDF_MD_API BlockLength minimalBlockLength(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Minimal size of message body in bytes.
Definition: Messages.h:6706
ONIXS_B3_UMDF_MD_NODISCARD SecurityID securityId() const
Security ID as defined by B3.
Definition: Messages.h:3496
SchemaTraits Schema
Used template schema.
Definition: Messages.h:201
Enum
Type of the Market Data Entry.
Definition: Fields.h:1055
ONIXS_B3_UMDF_MD_NODISCARD bool cxlQty(QuantityOptional &value) const
Total quantity canceled during matching process (e.g.
Definition: Messages.h:7879
ONIXS_B3_UMDF_MD_NODISCARD bool languageCode(StrRef &value) const
Indicates the language the news is in.
Definition: Messages.h:2648
SchemaTraits Schema
Used template schema.
Definition: Messages.h:365
static ONIXS_B3_UMDF_MD_API BlockLength minimalBlockLength(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Minimal size of message body in bytes.
Definition: Messages.h:974
static ONIXS_B3_UMDF_MD_API MessageType::Enum messageType()
FIX Message Type.
Definition: Messages.h:5103
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD const Char * className()
Definition: Messages.h:1015
IntegralConstant< Int64,-9223372036854775807LL-1 > NullQuantityVolumeOptional
Null value for an optional QuantityVolumeOptional field.
Definition: Fields.h:1874
UTC timestamp with second precision (Unix Epoch).
Definition: Composites.h:778
static ONIXS_B3_UMDF_MD_API SecurityIDSource::Enum securityIdSource()
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:4049
PriceBand_22(void *data, EncodedLength length, NoInit, NoCheck)
Creates an instance over the given memory block.
Definition: Messages.h:4267
Null values definition for optional PriceOptional field.
Definition: Composites.h:195
ONIXS_B3_UMDF_MD_NODISCARD bool tradingReferencePrice(Fixed8 &value) const
Reference price for the current trading price range.
Definition: Messages.h:4427
SchemaTraits Schema
Used template schema.
Definition: Messages.h:4801
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD const Char * className()
Definition: Messages.h:5009
TheoreticalOpeningPrice_16(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:3175
ONIXS_B3_UMDF_MD_NODISCARD SecurityType::Enum legSecurityType() const
Leg&#39;s security type.
Definition: Messages.h:1493
static ONIXS_B3_UMDF_MD_API BlockLength minimalBlockLength(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Minimal size of message body in bytes.
Definition: Messages.h:6130
static ONIXS_B3_UMDF_MD_API SecurityIDSource::Enum securityIdSource()
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:7120
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD MessageSize getMinimalVariableFieldsSize(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:531
UInt32 UInt32NULL
4-byte unsigned integer, from 1 to 4294967295 (2^32-1), NULL (optional) value = 0..
Definition: Fields.h:94
ONIXS_B3_UMDF_MD_NODISCARD MatchEventIndicator matchEventIndicator() const
Identifies the end of the current event and if it is a retransmission.
Definition: Messages.h:4068
SettlementPrice_28()
Initializes a blank instance.
Definition: Messages.h:5418
ONIXS_B3_UMDF_MD_NODISCARD EntryPositionNo mDEntryPositionNo() const
Display position of a bid or offer, numbered from most competitive to least competitive, per market side, beginning with 1.
Definition: Messages.h:8655
Enum
Indicates whether an option contract is a put or call.
Definition: Fields.h:568
ONIXS_B3_UMDF_MD_NODISCARD Timestamp tradeDate() const
Used to specify the trading date for which a set of market data applies.
Definition: Messages.h:8146
ONIXS_B3_UMDF_MD_NODISCARD bool marketSegmentId(MarketSegmentID &value) const
Market segment.
Definition: Messages.h:2235
ONIXS_B3_UMDF_MD_NODISCARD bool mDEntryTimestamp(UTCTimestampNanos &value) const
Date and time of market data entry.
Definition: Messages.h:4947
LowPrice_25()
Initializes a blank instance.
Definition: Messages.h:4807
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD StrRef fixType()
FIX message type.
Definition: Messages.h:3934
static ONIXS_B3_UMDF_MD_API BlockLength blockLength(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Size of message body in bytes.
Definition: Messages.h:4162
static ONIXS_B3_UMDF_MD_API UpdateAction::Enum mDUpdateAction()
Update Action (NEW) - always replace.
Definition: Messages.h:4343
ONIXS_B3_UMDF_MD_NODISCARD TradeID tradeId() const
Contains the unique identifier for this trade per instrument + trading date, as assigned by the excha...
Definition: Messages.h:7209
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD const Char * className()
Definition: Messages.h:543
ONIXS_B3_UMDF_MD_NODISCARD Side::Enum legSide() const
Side of this leg.
Definition: Messages.h:1503
ONIXS_B3_UMDF_MD_NODISCARD Price mDEntryPx() const
Trading Session Low Price.
Definition: Messages.h:4937
Set of conditions describing a trade..
Definition: Fields.h:1531
ONIXS_B3_UMDF_MD_NODISCARD EntryPositionNo mDEntryPositionNo() const
Display position of a bid or offer where orders will be deleted (up or down from this position)...
Definition: Messages.h:6920
ONIXS_B3_UMDF_MD_NODISCARD bool maturityDate(Timestamp &value) const
Date of instrument maturity.
Definition: Messages.h:1953
ONIXS_B3_UMDF_MD_NODISCARD Timestamp tradeDate() const
Used to specify the trading date for which a set of market data applies.
Definition: Messages.h:7568
ONIXS_B3_UMDF_MD_NODISCARD StrRef cfiCode() const
Classification of Financial Instruments (CFI code) values, which indicate the type of security using ...
Definition: Messages.h:2097
SchemaTraits Schema
Used template schema.
Definition: Messages.h:8308
LastTradePrice_27(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:5076
Enum
Status related to a given Instrument or phase related to a SecurityGroup where the instrument belongs...
Definition: Fields.h:621
static ONIXS_B3_UMDF_MD_API BlockLength blockLength(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Size of message body in bytes.
Definition: Messages.h:6720
ONIXS_B3_UMDF_MD_NODISCARD TradingSessionSubID::Enum tradingSessionSubId() const
Phase related to a given SecurityGroup.
Definition: Messages.h:1160
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD MessageSize getMinimalVariableFieldsSize(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:8537
static ONIXS_B3_UMDF_MD_API ApplVerID::Enum applVerId()
Specifies the service pack release being applied at message level.
Definition: Messages.h:1708
TradeBust_57()
Initializes a blank instance.
Definition: Messages.h:8314
ONIXS_B3_UMDF_MD_NODISCARD bool sharesIssued(UInt64NULL &value) const
Share capital.
Definition: Messages.h:1872
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD StrRef securityExchange()
Market to which the symbol belongs.
Definition: Messages.h:6611
static ONIXS_B3_UMDF_MD_API MessageType::Enum messageType()
FIX Message Type.
Definition: Messages.h:3764
static ONIXS_B3_UMDF_MD_API BlockLength minimalBlockLength(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Minimal size of message body in bytes.
Definition: Messages.h:280
ONIXS_B3_UMDF_MD_NODISCARD Price mDEntryPx() const
Value of the statistics.
Definition: Messages.h:3009
ONIXS_B3_UMDF_MD_NODISCARD bool lastTradeDate(Timestamp &value) const
Date the instrument last traded.
Definition: Messages.h:3575
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD StrRef fixType()
FIX message type.
Definition: Messages.h:6180
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD MessageSize getMinimalVariableFieldsSize(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:3096
ONIXS_B3_UMDF_MD_NODISCARD Price mDEntryPx() const
Price of the Market Data Entry.
Definition: Messages.h:7515
The latest price traded for the security in the trading session..
Definition: Messages.h:5051
static ONIXS_B3_UMDF_MD_API UpdateAction::Enum mDUpdateAction()
Update Action (NEW) - always replace.
Definition: Messages.h:5163
ONIXS_B3_UMDF_MD_NODISCARD InstrAttribType::Enum instrAttribType() const
Code to represent the type of instrument attributes.
Definition: Messages.h:1595
SbeGroupEntry< GroupSizeEncoding::BlockLength > Base
Base class type.
Definition: Messages.h:1325
ONIXS_B3_UMDF_MD_NODISCARD UInt32 totNumBids() const
Total number of bid orders that constitute this snapshot.
Definition: Messages.h:6083
ONIXS_B3_UMDF_MD_NODISCARD UInt16 securitySubType() const
Instrument&#39;s security sub type.
Definition: Messages.h:1791
static ONIXS_B3_UMDF_MD_API BlockLength minimalBlockLength(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Minimal size of message body in bytes.
Definition: Messages.h:116
ONIXS_B3_UMDF_MD_NODISCARD bool securityId(SecurityIDOptional &value) const
Security ID as defined by B3.
Definition: Messages.h:2596
ONIXS_B3_UMDF_MD_NODISCARD bool mDEntryInterestRate(Percentage &value) const
Interest Rate of the Termo Trade.
Definition: Messages.h:5298
ONIXS_B3_UMDF_MD_NODISCARD StrRef securityDesc() const
Non-normative textual description for the financial instrument.
Definition: Messages.h:2359
ExecutionSummary_55(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:7744
HighPrice_24(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:4566
SequenceReset_1()
Initializes a blank instance.
Definition: Messages.h:45
ONIXS_B3_UMDF_MD_NODISCARD Timestamp issueDate() const
The date on which the security is issued/activated.
Definition: Messages.h:1943
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD StrRef fixType()
FIX message type.
Definition: Messages.h:7974
ONIXS_B3_UMDF_MD_NODISCARD bool matchEventIndicator(MatchEventIndicator &value) const
Identifies if this order is implied or not.
Definition: Messages.h:8710
Channel Reset (remove all instruments, empty all books and statistics).
Definition: Messages.h:585
char Char
Character type alias.
Definition: String.h:30
static ONIXS_B3_UMDF_MD_API ApplVerID::Enum applVerId()
Specifies the service pack release being applied at message level.
Definition: Messages.h:647
OpenInterest_29(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:5726
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD MessageSize getMinimalVariableFieldsSize(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:8249
ONIXS_B3_UMDF_MD_NODISCARD bool exerciseStyle(ExerciseStyle::Enum &value) const
Exercise Style.
Definition: Messages.h:2204
UInt8 UInt8
1-byte unsigned integer, from 0 to 255..
Definition: Fields.h:50
Enum
Sub type of trade assigned to a trade.
Definition: Fields.h:1384
static ONIXS_B3_UMDF_MD_API SecurityIDSource::Enum securityIdSource()
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:8385
ONIXS_B3_UMDF_MD_NODISCARD UpdateAction::Enum mDUpdateAction() const
Update Action (NEW or DELETE).
Definition: Messages.h:3261
static ONIXS_B3_UMDF_MD_API BlockLength minimalBlockLength(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Minimal size of message body in bytes.
Definition: Messages.h:5321
ONIXS_B3_UMDF_MD_NODISCARD QuantityVolume tradeVolume() const
Total traded volume for the session.
Definition: Messages.h:8156
OpeningPrice_15(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:2893
ONIXS_B3_UMDF_MD_NODISCARD bool rptSeq(RptSeq &value) const
Sequence number per instrument update.
Definition: Messages.h:961
static ONIXS_B3_UMDF_MD_API BlockLength minimalBlockLength(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Minimal size of message body in bytes.
Definition: Messages.h:7636
Order_MBO_50()
Initializes a blank instance.
Definition: Messages.h:6225
ONIXS_B3_UMDF_MD_NODISCARD SecurityIDSource::Enum securityIdSource() const
Identifies the class of the SecurityID.
Definition: Messages.h:1737
ONIXS_B3_UMDF_MD_NODISCARD bool rptSeq(RptSeq &value) const
Sequence number per instrument update.
Definition: Messages.h:7900
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD MessageSize getMinimalVariableFieldsSize(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:5643
IntegralConstant< UInt64, 0ULL > NullClearingHouseID
Null value for an optional ClearingHouseID field.
Definition: Fields.h:1928
static ONIXS_B3_UMDF_MD_API UpdateAction::Enum mDUpdateAction()
Update Action (NEW) - always replace.
Definition: Messages.h:656
static ONIXS_B3_UMDF_MD_API ApplVerID::Enum applVerId()
Specifies the service pack release being applied at message level.
Definition: Messages.h:96
#define ONIXS_B3_UMDF_MD_MESSAGING_NAMESPACE_END
Definition: ABI.h:151
Settlement price or the previous day’s adjusted closing price..
Definition: Messages.h:5404
UInt64 ClearingHouseID
ClearingHouseID (SecurityAltID).
Definition: Fields.h:192
ChannelReset_11()
Initializes a blank instance.
Definition: Messages.h:596
static ONIXS_B3_UMDF_MD_API BlockLength blockLength(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Size of message body in bytes.
Definition: Messages.h:988
ONIXS_B3_UMDF_MD_NODISCARD bool priceLimitType(PriceLimitType::Enum &value) const
Describes how the price limits are expressed.
Definition: Messages.h:4373
ONIXS_B3_UMDF_MD_NODISCARD bool rptSeq(RptSeq &value) const
Sequence number per instrument update.
Definition: Messages.h:4703
ONIXS_B3_UMDF_MD_NODISCARD bool strikePrice(PriceOptional &value) const
Strike price of an option.
Definition: Messages.h:1822
Null values definition for optional UTCTimestampNanos field.
Definition: Composites.h:725
static ONIXS_B3_UMDF_MD_API SecurityIDSource::Enum securityIdSource()
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:5784
QuantityBand_21(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:3992
ONIXS_B3_UMDF_MD_NODISCARD SecurityID securityId() const
Security ID as defined by B3.
Definition: Messages.h:5122
Enum
Code to represent the price type. If absent (zero), the default value is DECIMALS.
Definition: Fields.h:593
Relays execution summary information on one instrument..
Definition: Messages.h:7719
static ONIXS_B3_UMDF_MD_API SeqNum1 newSeqNo()
New sequence number. Always one.
Definition: Messages.h:105
UInt32 TradeID
Contains the unique identifier for this trade per instrument + trading date, as assigned by the excha...
Definition: Fields.h:148
UInt32 SeqNum
Sequence number inside the given channel.
Definition: Fields.h:154
ONIXS_B3_UMDF_MD_NODISCARD OrderID secondaryOrderId() const
Exchange-generated order identifier that changes for each order modification event, or quantity replenishment in disclosed orders.
Definition: Messages.h:6402
static ONIXS_B3_UMDF_MD_API BlockLength blockLength(SchemaVersion version)
Definition: Messages.h:1384
ONIXS_B3_UMDF_MD_NODISCARD bool legRatioQty(RatioQty &value) const
Ratio of quantity for this leg relative to the entire security.
Definition: Messages.h:1483
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD const Char * className()
Definition: Messages.h:738
ONIXS_B3_UMDF_MD_NODISCARD NumberOfTrades numberOfTrades() const
Number of trades executed in the session.
Definition: Messages.h:8189
ONIXS_B3_UMDF_MD_NODISCARD SecurityID securityId() const
Security ID as defined by B3.
Definition: Messages.h:5480
SettlementPrice_28(void *data, EncodedLength length, NoInit, NoCheck)
Creates an instance over the given memory block.
Definition: Messages.h:5445
static ONIXS_B3_UMDF_MD_API SecurityIDSource::Enum securityIdSource()
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:6296
static ONIXS_B3_UMDF_MD_API MessageType::Enum messageType()
FIX Message Type.
Definition: Messages.h:6571
static ONIXS_B3_UMDF_MD_API BlockLength blockLength(SchemaVersion version)
Definition: Messages.h:8724
ONIXS_B3_UMDF_MD_NODISCARD SecurityType::Enum securityType() const
Instrument&#39;s security type.
Definition: Messages.h:1780
ONIXS_B3_UMDF_MD_NODISCARD bool minTradeVol(QuantityOptional &value) const
The minimum trading volume for the security.
Definition: Messages.h:1923
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD StrRef fixType()
FIX message type.
Definition: Messages.h:747
UInt16 MessageSize
Message length type.
Definition: Aliases.h:29
ONIXS_B3_UMDF_MD_NODISCARD MatchEventIndicator matchEventIndicator() const
Identifies the end of the current event and if it is a retransmission.
Definition: Messages.h:3526
ONIXS_B3_UMDF_MD_NODISCARD bool sellerDays(UInt16NULL &value) const
Specifies the number of days that may elapse before delivery of the security.
Definition: Messages.h:7601
ONIXS_B3_UMDF_MD_NODISCARD bool strikeCurrency(StrRef &value) const
Currency of option&#39;s strike price.
Definition: Messages.h:2140
ONIXS_B3_UMDF_MD_NODISCARD MatchEventIndicator matchEventIndicator() const
Identifies the end of the current event.
Definition: Messages.h:8403
static ONIXS_B3_UMDF_MD_API BlockLength blockLength(SchemaVersion version)
Size of message body in bytes.
Definition: Messages.h:4728
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD StrRef fixType()
FIX message type.
Definition: Messages.h:163
ONIXS_B3_UMDF_MD_NODISCARD bool mDEntryTimestamp(UTCTimestampNanos &value) const
Date and time of market data entry.
Definition: Messages.h:8199
UInt32 FirmOptional
Identifies the broker firm.
Definition: Fields.h:136
ONIXS_B3_UMDF_MD_NODISCARD StrRef symbol() const
Instrument&#39;s ticker symbol.
Definition: Messages.h:1758
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD const Char * className()
Definition: Messages.h:3382
ONIXS_B3_UMDF_MD_NODISCARD MatchEventIndicator matchEventIndicator() const
Identifies the end of the current event and if it is a retransmission.
Definition: Messages.h:5152
ONIXS_B3_UMDF_MD_NODISCARD bool settlType(SettlType &value) const
Order settlement period in days.
Definition: Messages.h:2024
static ONIXS_B3_UMDF_MD_API EntryType::Enum mDEntryType()
Entry type: Trading Session High Price.
Definition: Messages.h:4663
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD const Char * className()
Definition: Messages.h:8261
ONIXS_B3_UMDF_MD_NODISCARD bool netChgPrevDay(PriceOffset8Optional &value) const
Net change from previous trading day’s closing price vs.
Definition: Messages.h:8178
Sequence_2(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:221
SchemaTraits Schema
Used template schema.
Definition: Messages.h:7372
ONIXS_B3_UMDF_MD_NODISCARD Quantity mDEntrySize() const
Quantity or volume represented by the Market Data Entry.
Definition: Messages.h:8451
ONIXS_B3_UMDF_MD_NODISCARD TradingSessionID::Enum tradingSessionId() const
Identifier for trading session.
Definition: Messages.h:891
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD MessageSize getMinimalVariableFieldsSize(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:4487
ONIXS_B3_UMDF_MD_NODISCARD Timestamp localMktDateToTimestamp(LocalMktDate days)
Converts days since epoch to Timestamp value.
Definition: Fields.h:1984
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD MessageSize getMinimalVariableFieldsSize(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:7313
SettlementPrice_28(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:5433
ONIXS_B3_UMDF_MD_NODISCARD bool minCrossQty(QuantityOptional &value) const
Minimum quantity of a cross order for the security.
Definition: Messages.h:2307
UInt64 OrderID
Unique identifier for Order as assigned by the exchange.
Definition: Fields.h:142
ONIXS_B3_UMDF_MD_NODISCARD SecurityID securityId() const
Security ID as defined by B3.
Definition: Messages.h:8078
UInt32 UInt32
4-byte unsigned integer, from 0 to 4294967295 (2^32-1)..
Definition: Fields.h:58
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD StrRef fixType()
FIX message type.
Definition: Messages.h:6756
Enum
Phase related to a SecurityGroup where the instrument belongs to.
Definition: Fields.h:791
ONIXS_B3_UMDF_MD_NODISCARD Timestamp tradeDate() const
Used to specify the trading date for which a set of market data applies.
Definition: Messages.h:5253
Relays execution summary statistics information on one instrument..
Definition: Messages.h:8007
SchemaTraits Schema
Used template schema.
Definition: Messages.h:3972
ONIXS_B3_UMDF_MD_NODISCARD bool maxOrderQty(QuantityOptional &value) const
Maximum quantity for an order.
Definition: Messages.h:1902
SnapshotFullRefresh_Orders_MBO_71(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:8776
OpenInterest_29()
Initializes a blank instance.
Definition: Messages.h:5711
static ONIXS_B3_UMDF_MD_API BlockLength minimalBlockLength(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Minimal size of message body in bytes.
Definition: Messages.h:8223
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD const Char * className()
Definition: Messages.h:5655
MessageSize BlockLength
Length of the message body representing a block of fixed-length fields.
Definition: SbeMessage.h:1120
static ONIXS_B3_UMDF_MD_API BlockLength minimalBlockLength(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Minimal size of message body in bytes.
Definition: Messages.h:3629
ONIXS_B3_UMDF_MD_NODISCARD SecurityID securityId() const
Security ID as defined by B3.
Definition: Messages.h:5773
static ONIXS_B3_UMDF_MD_API MessageType::Enum messageType()
FIX Message Type.
Definition: Messages.h:4019
ONIXS_B3_UMDF_MD_NODISCARD TradeCondition tradeCondition() const
Set of conditions describing a trade.
Definition: Messages.h:7505
ONIXS_B3_UMDF_MD_NODISCARD StrRef securityExchange() const
Exchange Code.
Definition: Messages.h:1726
ONIXS_B3_UMDF_MD_NODISCARD bool mDEntrySize(QuantityOptional &value) const
Quantity of the deleted order.
Definition: Messages.h:6660
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD StrRef securityExchange()
Market to which the symbol belongs.
Definition: Messages.h:4059
ONIXS_B3_UMDF_MD_NODISCARD Price mDEntryPx() const
Last Trade Price.
Definition: Messages.h:5200
static ONIXS_B3_UMDF_MD_API SecurityIDSource::Enum legSecurityIdSource()
Identifies the class of the leg instrument&#39;s SecurityID (Exchange Symbol).
Definition: Messages.h:1464
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD StrRef fixType()
FIX message type.
Definition: Messages.h:4508
Enum
Identifies class or source of the SecurityID value.
Definition: Fields.h:1359
Enum
Band Midpoint Type, used with Auction Price Banding.
Definition: Fields.h:937
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD MessageSize getMinimalVariableFieldsSize(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:142
Attributes of SBE message schema.
Definition: SchemaTraits.h:37
static ONIXS_B3_UMDF_MD_API BlockLength blockLength(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Size of message body in bytes.
Definition: Messages.h:3643
static ONIXS_B3_UMDF_MD_API BlockLength blockLength(SchemaVersion version)
Size of message body in bytes.
Definition: Messages.h:3899
IntegralConstant< UInt16, 65535 > NullSettlType
Null value for an optional SettlType field.
Definition: Fields.h:1940
static ONIXS_B3_UMDF_MD_API ApplVerID::Enum applVerId()
Specifies the service pack release being applied at message level.
Definition: Messages.h:422
ONIXS_B3_UMDF_MD_NODISCARD Price mDEntryPx() const
Price of the Market Data Entry.
Definition: Messages.h:8441
static ONIXS_B3_UMDF_MD_API UpdateAction::Enum mDUpdateAction()
Update Action (NEW) - always replace.
Definition: Messages.h:8118
ONIXS_B3_UMDF_MD_NODISCARD bool trdSubType(TrdSubType::Enum &value) const
Sub type of trade assigned to a trade.
Definition: Messages.h:7623
ONIXS_B3_UMDF_MD_NODISCARD StrRef uRLLink() const
A URL (Uniform Resource Locator) link to additional information (e.g. http://www.b3.com.br).
Definition: Messages.h:2728
ONIXS_B3_UMDF_MD_NODISCARD StrRef constructStrRef(const char(&value)[Size])
Definition: StrRef.h:415
Enum
Indicates the type of product the security is associated with.
Definition: Fields.h:432
Int64 Quantity
Quantity in order/trade.
Definition: Fields.h:110
ONIXS_B3_UMDF_MD_NODISCARD Timestamp tradeDate() const
Used to specify the trading date for which a set of market data applies.
Definition: Messages.h:929
ONIXS_B3_UMDF_MD_NODISCARD Quantity mDEntrySize() const
Quantity or volume represented by the Market Data Entry.
Definition: Messages.h:7197
static ONIXS_B3_UMDF_MD_API ApplVerID::Enum applVerId()
Specifies the service pack release being applied at message level.
Definition: Messages.h:6851
LastTradePrice_27()
Initializes a blank instance.
Definition: Messages.h:5062
AuctionImbalance_19(void *data, EncodedLength length, NoInit, NoCheck)
Creates an instance over the given memory block.
Definition: Messages.h:3748
Enum
Types of Market Data update action.
Definition: Fields.h:1018
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD StrRef fixType()
FIX message type.
Definition: Messages.h:3117
ONIXS_B3_UMDF_MD_NODISCARD TradingSessionID::Enum tradingSessionId() const
Identifier for trading session.
Definition: Messages.h:1149
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD MessageSize getMinimalVariableFieldsSize(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:5350
Null values definition for optional PriceOffset8Optional field.
Definition: Composites.h:485
SchemaTraits Schema
Used template schema.
Definition: Messages.h:5702
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD StrRef securityExchange()
Market to which the symbol belongs.
Definition: Messages.h:8843
ONIXS_B3_UMDF_MD_NODISCARD TradingSessionID::Enum tradingSessionId() const
Identifier for trading session.
Definition: Messages.h:7167
A nullable real number with a constant exponent.
Definition: Decimal.h:116
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD const Char * className()
Definition: Messages.h:7325
ONIXS_B3_UMDF_MD_NODISCARD bool tradedHiddenQty(QuantityOptional &value) const
Total quantity of matched passive orders that is not displayed to the market.
Definition: Messages.h:7868
ONIXS_B3_UMDF_MD_NODISCARD bool priceDivisor(Fixed8 &value) const
Value that divides the Price field to produce the actual order price (based on Step of Quotation)...
Definition: Messages.h:1848
IntegralConstant< Int64,-9223372036854775807LL-1 > NullQuantityOptional
Null value for an optional QuantityOptional field.
Definition: Fields.h:1862
IntegralConstant< UInt32, 0 > NullRptSeq
Null value for an optional RptSeq field.
Definition: Fields.h:1922
static ONIXS_B3_UMDF_MD_API BlockLength blockLength(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Size of message body in bytes.
Definition: Messages.h:1232
static ONIXS_B3_UMDF_MD_API EntryType::Enum mDEntryType()
Entry type: Settlement Price.
Definition: Messages.h:5530
ONIXS_B3_UMDF_MD_NODISCARD bool rptSeq(RptSeq &value) const
Sequence number per instrument update.
Definition: Messages.h:3054
static ONIXS_B3_UMDF_MD_API BlockLength blockLength(SchemaVersion version)
Size of message body in bytes.
Definition: Messages.h:4983
ONIXS_B3_UMDF_MD_NODISCARD StrRef asset() const
Asset associated to the security.
Definition: Messages.h:2084
static ONIXS_B3_UMDF_MD_API ApplVerID::Enum applVerId()
Specifies the service pack release being applied at message level.
Definition: Messages.h:5764
Order_MBO_50(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:6239
Enum
Corporative governance level indicator. Required for cash equities.
Definition: Fields.h:701
static ONIXS_B3_UMDF_MD_API BlockLength minimalBlockLength(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Minimal size of message body in bytes.
Definition: Messages.h:3887
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD StrRef fixType()
FIX message type.
Definition: Messages.h:8270
ONIXS_B3_UMDF_MD_NODISCARD SecurityID securityId() const
Security ID as defined by B3.
Definition: Messages.h:6590
SchemaTraits Schema
Used template schema.
Definition: Messages.h:4546
ONIXS_B3_UMDF_MD_NODISCARD TradingSessionID::Enum tradingSessionId() const
Identifier for trading session.
Definition: Messages.h:7495
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD StrRef securityExchange()
Market to which the symbol belongs.
Definition: Messages.h:2960
Enum
Indicates the type of the security.
Definition: Fields.h:475
static ONIXS_B3_UMDF_MD_API SecurityIDSource::Enum securityIdSource()
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:4313
ONIXS_B3_UMDF_MD_NODISCARD bool rptSeq(RptSeq &value) const
Sequence number per instrument update.
Definition: Messages.h:5601
ONIXS_B3_UMDF_MD_NODISCARD bool securityTradingEvent(SecurityTradingEvent::Enum &value) const
Indicates if the trading session changed in order to reset some statistics for this group...
Definition: Messages.h:1172
static ONIXS_B3_UMDF_MD_API BlockLength blockLength(SchemaVersion version)
Size of message body in bytes.
Definition: Messages.h:8235
LastTradePrice_27(void *data, EncodedLength length, NoInit, NoCheck)
Creates an instance over the given memory block.
Definition: Messages.h:5087
ONIXS_B3_UMDF_MD_NODISCARD bool transactTime(UTCTimestampNanos &value) const
Timestamp when phase of the security group changed.
Definition: Messages.h:1205
ONIXS_B3_UMDF_MD_NODISCARD SecurityTradingStatus::Enum securityTradingStatus() const
Status related to a given instrument.
Definition: Messages.h:902
static ONIXS_B3_UMDF_MD_API BlockLength minimalBlockLength(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Minimal size of message body in bytes.
Definition: Messages.h:5614
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD StrRef securityExchange()
Market to which the symbol belongs.
Definition: Messages.h:6881
ONIXS_B3_UMDF_MD_NODISCARD bool mDEntryTimestamp(UTCTimestampNanos &value) const
Timestamp when the trade bust event occurred.
Definition: Messages.h:8484
static ONIXS_B3_UMDF_MD_API BlockLength minimalBlockLength(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Minimal size of message body in bytes.
Definition: Messages.h:697
IntegralConstant< UInt8, 0 > NullMarketSegmentID
Null value for an optional MarketSegmentID field.
Definition: Fields.h:1976
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD MessageSize getMinimalVariableFieldsSize(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:7953
Enum
Specifies the type of multileg order. Defines whether the security is pre-defined or user-defined...
Definition: Fields.h:1244
ONIXS_B3_UMDF_MD_NODISCARD bool corporateActionEventId(UInt32NULL &value) const
Corporate Action Event ID.
Definition: Messages.h:1933
Disseminates the deletion of a new order..
Definition: Messages.h:6519
ONIXS_B3_UMDF_MD_NODISCARD bool settlDate(Timestamp &value) const
Specific date of trade settlement.
Definition: Messages.h:2034
static ONIXS_B3_UMDF_MD_API EntryType::Enum mDEntryType()
Entry type: Trade Bust.
Definition: Messages.h:8423
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD StrRef fixType()
FIX message type.
Definition: Messages.h:1268
static ONIXS_B3_UMDF_MD_API MessageType::Enum messageType()
FIX Message Type.
Definition: Messages.h:4848
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD const Char * className()
Definition: Messages.h:3925
Trade_53(void *data, EncodedLength length, NoInit, NoCheck)
Creates an instance over the given memory block.
Definition: Messages.h:7074
#define ONIXS_B3_UMDF_MD_MESSAGING_NAMESPACE_BEGIN
Definition: ABI.h:146
IntegralConstant< UInt32, 0 > NullFirmOptional
Null value for an optional FirmOptional field.
Definition: Fields.h:1880
Enum
Type of matching that occurred. Required for Special Auctions.
Definition: Fields.h:741
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD MessageSize getMinimalVariableFieldsSize(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:6465
ONIXS_B3_UMDF_MD_NODISCARD TradeID tradeId() const
Contains the unique identifier for this trade per instrument + trading date, as assigned by the excha...
Definition: Messages.h:8463
static ONIXS_B3_UMDF_MD_API BlockLength blockLength(SchemaVersion version)
Size of message body in bytes.
Definition: Messages.h:3356
static ONIXS_B3_UMDF_MD_API BlockLength minimalBlockLength(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Minimal size of message body in bytes.
Definition: Messages.h:2739
ONIXS_B3_UMDF_MD_NODISCARD bool mDEntryTimestamp(UTCTimestampNanos &value) const
Date and time of market data entry.
Definition: Messages.h:4692
MessageHeader::Version SchemaVersion
SBE-encoded data version type.
Definition: SchemaTraits.h:30
static ONIXS_B3_UMDF_MD_API BlockLength blockLength(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Size of message body in bytes.
Definition: Messages.h:5335
ONIXS_B3_UMDF_MD_NODISCARD bool mDEntryPx(PriceOptional &value) const
Theoretical Opening Price.
Definition: Messages.h:3300
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD MessageSize getMinimalVariableFieldsSize(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:1247
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD const Char * className()
Definition: Messages.h:6747
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD StrRef fixType()
FIX message type.
Definition: Messages.h:7004
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD StrRef securityExchange()
Market to which the symbol belongs.
Definition: Messages.h:6306
Enum
Flag that identifies if the opening/closing/settlement price is related to theoretical, daily, previous business day or just an updated value.
Definition: Fields.h:875
ONIXS_B3_UMDF_MD_NODISCARD bool origTime(UTCTimestampNanos &value) const
Time of message origination.
Definition: Messages.h:2692
ONIXS_B3_UMDF_MD_NODISCARD SeqNum lastMsgSeqNumProcessed() const
The last processed packet sequence number of the incremental channel as of the time the snapshot was ...
Definition: Messages.h:6062
ONIXS_B3_UMDF_MD_NODISCARD InstrAttribValue::Enum instrAttribValue() const
Attribute value appropriate to the InstrAttribType (871) field.
Definition: Messages.h:1606
static ONIXS_B3_UMDF_MD_API SecurityIDSource::Enum securityIdSource()
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:3794
ONIXS_B3_UMDF_MD_NODISCARD bool mDEntryTimestamp(UTCTimestampNanos &value) const
Date and time of market data entry.
Definition: Messages.h:4437
Enum
Identifies an event related to a Trade. This tag is also used to mark when an instrument state is kep...
Definition: Fields.h:816
ONIXS_B3_UMDF_MD_NODISCARD EntryType::Enum mDEntryType() const
Entry Type (BID or OFFER).
Definition: Messages.h:6334
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD const Char * className()
Definition: Messages.h:4499
ONIXS_B3_UMDF_MD_NODISCARD UInt32 totalTextLength() const
Total size, in bytes, for the text of a News message.
Definition: Messages.h:2702
static ONIXS_B3_UMDF_MD_API UpdateAction::Enum mDUpdateAction()
Update Action (NEW) - always replace.
Definition: Messages.h:5814
static ONIXS_B3_UMDF_MD_API ApplVerID::Enum applVerId()
Specifies the service pack release being applied at message level.
Definition: Messages.h:7781
ONIXS_B3_UMDF_MD_NODISCARD Timestamp tradeDate() const
Used to specify the trading date for which a set of market data applies.
Definition: Messages.h:8474
#define ONIXS_B3_UMDF_MD_LTWT_EXPORTED
Definition: ABI.h:98
ONIXS_B3_UMDF_MD_NODISCARD bool isinNumber(StrRef &value) const
ISIN Number.
Definition: Messages.h:2073
static ONIXS_B3_UMDF_MD_API SecurityIDSource::Enum securityIdSource()
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:7449
Enum
Status related to a given Instrument or phase related to a SecurityGroup where the instrument belongs...
Definition: Fields.h:661
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD StrRef securityExchange()
Market to which the symbol belongs.
Definition: Messages.h:5143
AuctionImbalance_19(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:3737
ONIXS_B3_UMDF_MD_NODISCARD MatchEventIndicator matchEventIndicator() const
Identifies the end of the current event.
Definition: Messages.h:7467
Null values definition for optional UTCTimestampSeconds field.
Definition: Composites.h:857
ONIXS_B3_UMDF_MD_NODISCARD bool rptSeq(RptSeq &value) const
Sequence number per instrument update.
Definition: Messages.h:6941
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD MessageSize getMinimalVariableFieldsSize(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:2765
static ONIXS_B3_UMDF_MD_API ApplVerID::Enum applVerId()
Specifies the service pack release being applied at message level.
Definition: Messages.h:4293
SbeGroup< InstrAttribsEntry, GroupSizeEncoding, MessageSize > InstrAttribs
Repeating group containing InstrAttribsEntry entries.
Definition: Messages.h:1654
ONIXS_B3_UMDF_MD_NODISCARD bool rptSeq(RptSeq &value) const
Sequence number per instrument update.
Definition: Messages.h:8495
ForwardTrade_54(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:7392
SequenceReset_1(void *data, EncodedLength length, NoInit, NoCheck)
Creates an instance over the given memory block.
Definition: Messages.h:70
ONIXS_B3_UMDF_MD_NODISCARD bool minLotSize(QuantityOptional &value) const
Minimum lot size allowed based on lot type specified in LotType(1093).
Definition: Messages.h:1913
static ONIXS_B3_UMDF_MD_API BlockLength minimalBlockLength(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Minimal size of message body in bytes.
Definition: Messages.h:7924
ONIXS_B3_UMDF_MD_NODISCARD bool lastFragment(Boolean::Enum &value) const
Indicates whether this message is the last in the sequence of messages.
Definition: Messages.h:2270
static ONIXS_B3_UMDF_MD_API BlockLength blockLength(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Size of message body in bytes.
Definition: Messages.h:711
IntegralConstant< UInt8, 0 > NullUInt8NULL
Null value for an optional UInt8NULL field.
Definition: Fields.h:1826
ONIXS_B3_UMDF_MD_NODISCARD bool contractMultiplier(Fixed8 &value) const
Specifies the ratio or multiply factor to convert from “nominal” units (e.g.
Definition: Messages.h:1834
ONIXS_B3_UMDF_MD_NODISCARD bool mDEntryTimestamp(UTCTimestampNanos &value) const
Timestamp when the trade event occurred.
Definition: Messages.h:7578
static ONIXS_B3_UMDF_MD_API SecurityIDSource::Enum securityIdSource()
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:460
Enum
Code to represent how the multileg price is to be interpreted when applied to the legs...
Definition: Fields.h:1267
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD StrRef fixType()
FIX message type.
Definition: Messages.h:3679
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD StrRef fixType()
FIX message type.
Definition: Messages.h:4198
SecurityStatus_3()
Initializes a blank instance.
Definition: Messages.h:791
ONIXS_B3_UMDF_MD_NODISCARD bool mDEntryTimestamp(UTCTimestampNanos &value) const
Timestamp when the trade event occurred.
Definition: Messages.h:7260
Enum
Code to represent the type of instrument attributes.
Definition: Fields.h:1325
ONIXS_B3_UMDF_MD_NODISCARD bool rptSeq(RptSeq &value) const
Sequence number per instrument update.
Definition: Messages.h:8210
static ONIXS_B3_UMDF_MD_API SecurityIDSource::Enum securityIdSource()
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:4623
EmptyBook_9(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:385
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD StrRef underlyingSecurityExchange()
Underlying instrument&#39;s Exchange Code.
Definition: Messages.h:1363
IntegralConstant< UInt64, 0ULL > NullSecurityIDOptional
Null value for an optional SecurityIDOptional field.
Definition: Fields.h:1916
static ONIXS_B3_UMDF_MD_API SecurityIDSource::Enum securityIdSource()
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:4878
static ONIXS_B3_UMDF_MD_API BlockLength blockLength(SchemaVersion version)
Size of message body in bytes.
Definition: Messages.h:2383
static ONIXS_B3_UMDF_MD_API ApplVerID::Enum applVerId()
Specifies the service pack release being applied at message level.
Definition: Messages.h:258
EmptyBook_9()
Initializes a blank instance.
Definition: Messages.h:371
SbeGroup< LegsEntry, GroupSizeEncoding, MessageSize > Legs
Repeating group containing LegsEntry entries.
Definition: Messages.h:1562
static ONIXS_B3_UMDF_MD_API BlockLength minimalBlockLength(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Minimal size of message body in bytes.
Definition: Messages.h:1218
static ONIXS_B3_UMDF_MD_API BlockLength minimalBlockLength(SchemaVersion version)
Minimal size of message body in bytes.
Definition: Messages.h:2370
Partial list of orders for the snapshot of a single instrument..
Definition: Messages.h:8591
ONIXS_B3_UMDF_MD_NODISCARD bool rptSeq(RptSeq &value) const
Sequence number per instrument update.
Definition: Messages.h:4958
ONIXS_B3_UMDF_MD_NODISCARD MatchEventIndicator matchEventIndicator() const
Identifies the end of the current event and if it is a retransmission.
Definition: Messages.h:674
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD const Char * className()
Definition: Messages.h:318
ONIXS_B3_UMDF_MD_NODISCARD bool netChgPrevDay(PriceOffset8Optional &value) const
Net change from previous trading day’s closing price vs.
Definition: Messages.h:3021
ONIXS_B3_UMDF_MD_NODISCARD EntryPositionNo mDEntryPositionNo() const
Display position of a bid or offer, numbered from most competitive to least competitive, per market side, beginning with 1.
Definition: Messages.h:6650
Enum
Which side is aggressor of this trade.
Definition: Fields.h:763
static ONIXS_B3_UMDF_MD_API BlockLength blockLength(SchemaVersion version)
Size of message body in bytes.
Definition: Messages.h:292
static ONIXS_B3_UMDF_MD_API BlockLength minimalBlockLength(SchemaVersion version)
Definition: Messages.h:8736
ONIXS_B3_UMDF_MD_NODISCARD bool priceBandMidpointPriceType(PriceBandMidpointPriceType::Enum &value) const
Band Midpoint Type, used with Auction Price Banding.
Definition: Messages.h:4387
ONIXS_B3_UMDF_MD_NODISCARD StrRef securityGroup() const
Security Group.
Definition: Messages.h:1127
ONIXS_B3_UMDF_MD_NODISCARD bool mDEntryTimestamp(UTCTimestampNanos &value) const
Date and time of market data entry.
Definition: Messages.h:5263
IntegralConstant< UInt64, 0ULL > NullUInt64NULL
Null value for an optional UInt64NULL field.
Definition: Fields.h:1844
static ONIXS_B3_UMDF_MD_API ApplVerID::Enum applVerId()
Specifies the service pack release being applied at message level.
Definition: Messages.h:6276
static ONIXS_B3_UMDF_MD_API ApplVerID::Enum applVerId()
Specifies the service pack release being applied at message level.
Definition: Messages.h:4858
static ONIXS_B3_UMDF_MD_API ApplVerID::Enum applVerId()
Specifies the service pack release being applied at message level.
Definition: Messages.h:4603
LowPrice_25(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:4821
static ONIXS_B3_UMDF_MD_API MessageType::Enum messageType()
FIX Message Type.
Definition: Messages.h:637
static ONIXS_B3_UMDF_MD_API MessageType::Enum messageType()
FIX Message Type.
Definition: Messages.h:3202
ONIXS_B3_UMDF_MD_NODISCARD Timestamp tradeDate() const
Used to specify the trading date for which a set of market data applies.
Definition: Messages.h:7240
IntegralConstant< UInt64, 0ULL > NullNewsID
Null value for an optional NewsID field.
Definition: Fields.h:1934
static ONIXS_B3_UMDF_MD_API ApplVerID::Enum applVerId()
Specifies the service pack release being applied at message level.
Definition: Messages.h:4029
ONIXS_B3_UMDF_MD_NODISCARD bool mDEntryTimestamp(UTCTimestampNanos &value) const
Date and time of market data entry.
Definition: Messages.h:3320
Null values definition for optional RatioQty field.
Definition: Composites.h:340
ONIXS_B3_UMDF_MD_NODISCARD MatchEventIndicator matchEventIndicator() const
Identifies if it is a retransmission.
Definition: Messages.h:6889
ONIXS_B3_UMDF_MD_NODISCARD bool mDEntryTimestamp(UTCTimestampNanos &value) const
Date and time of market data entry.
Definition: Messages.h:5852
static ONIXS_B3_UMDF_MD_API SecurityIDSource::Enum securityIdSource()
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:2608
ONIXS_B3_UMDF_MD_NODISCARD SecurityID securityId() const
Security ID as defined by B3.
Definition: Messages.h:4302
ONIXS_B3_UMDF_MD_NODISCARD bool priceType(PriceType::Enum &value) const
Price type of the instrument.
Definition: Messages.h:2225
static ONIXS_B3_UMDF_MD_API ApplVerID::Enum applVerId()
Specifies the service pack release being applied at message level.
Definition: Messages.h:3487
static ONIXS_B3_UMDF_MD_API BlockLength blockLength(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Size of message body in bytes.
Definition: Messages.h:8522
ONIXS_B3_UMDF_MD_NODISCARD MatchEventIndicator matchEventIndicator() const
Identifies the end of the current event and if it is a retransmission.
Definition: Messages.h:4897
ONIXS_B3_UMDF_MD_NODISCARD MatchEventIndicator matchEventIndicator() const
Identifies the end of the current event and if it is a retransmission.
Definition: Messages.h:4642
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD const Char * className()
Definition: Messages.h:4189
Enum
Specifies the service pack release being applied at message level.
Definition: Fields.h:1197
static ONIXS_B3_UMDF_MD_API EntryType::Enum mDEntryType()
Entry type: Last Trade Price.
Definition: Messages.h:5172
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD MessageSize getMinimalVariableFieldsSize(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:7665
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD StrRef fixType()
FIX message type.
Definition: Messages.h:5018
static ONIXS_B3_UMDF_MD_API MessageType::Enum messageType()
FIX Message Type.
Definition: Messages.h:6011
IntegralConstant< UInt8, 255 > NullUInt8
Null value for an optional UInt8 field.
Definition: Fields.h:1772
ONIXS_B3_UMDF_MD_NODISCARD bool rptSeq(RptSeq &value) const
Sequence number per instrument update.
Definition: Messages.h:5863
static ONIXS_B3_UMDF_MD_API BlockLength blockLength(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Size of message body in bytes.
Definition: Messages.h:6450
static ONIXS_B3_UMDF_MD_API SecurityIDSource::Enum securityIdSource()
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:6871
static ONIXS_B3_UMDF_MD_API BlockLength blockLength(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Size of message body in bytes.
Definition: Messages.h:3081
ONIXS_B3_UMDF_MD_NODISCARD Quantity mDEntrySize() const
Quantity or volume represented by the Market Data Entry.
Definition: Messages.h:7525
static ONIXS_B3_UMDF_MD_API ApplVerID::Enum applVerId()
Specifies the service pack release being applied at message level.
Definition: Messages.h:7100
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD const Char * className()
Definition: Messages.h:2409
Null values definition for optional Fixed8 field.
Definition: Composites.h:406
ONIXS_B3_UMDF_MD_NODISCARD Quantity mDEntrySize() const
Indicates volume of contracts currently open.
Definition: Messages.h:5842
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD MessageSize getMinimalVariableFieldsSize(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:3658
ONIXS_B3_UMDF_MD_NODISCARD SecurityID securityId() const
Security ID as defined by B3.
Definition: Messages.h:449
ONIXS_B3_UMDF_MD_NODISCARD bool priceBandType(PriceBandType::Enum &value) const
Indicates the type of price banding (tunnel).
Definition: Messages.h:4361
ONIXS_B3_UMDF_MD_NODISCARD SecurityID securityId() const
Security ID as defined by B3.
Definition: Messages.h:7109
ONIXS_B3_UMDF_MD_NODISCARD bool minPriceIncrement(Fixed8 &value) const
Number of minimum price increments.
Definition: Messages.h:1812
static ONIXS_B3_UMDF_MD_API BlockLength blockLength(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Size of message body in bytes.
Definition: Messages.h:6968
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD StrRef securityExchange()
Market to which the symbol belongs.
Definition: Messages.h:3517
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD const Char * className()
Definition: Messages.h:7965
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD const Char * className()
Definition: Messages.h:6477
static ONIXS_B3_UMDF_MD_API SecurityIDSource::Enum securityIdSource()
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:5133
static ONIXS_B3_UMDF_MD_API BlockLength minimalBlockLength(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Minimal size of message body in bytes.
Definition: Messages.h:3067
ONIXS_B3_UMDF_MD_NODISCARD bool mDEntryTimestamp(UTCTimestampNanos &value) const
Timestamp when the order event occurred.
Definition: Messages.h:6682
ONIXS_B3_UMDF_MD_NODISCARD SecurityID securityId() const
Security ID as defined by B3.
Definition: Messages.h:4867
ONIXS_B3_UMDF_MD_NODISCARD Timestamp tradeDate() const
Used to specify the trading date for which a set of market data applies.
Definition: Messages.h:4927
#define ONIXS_B3_UMDF_MD_LTWT_STRUCT
Definition: ABI.h:94
Relays trade information on one Forward instrument.
Definition: Messages.h:7367
ONIXS_B3_UMDF_MD_NODISCARD SecurityID securityId() const
Security ID as defined by B3.
Definition: Messages.h:3783
static ONIXS_B3_UMDF_MD_API MessageType::Enum messageType()
FIX Message Type.
Definition: Messages.h:8355
static ONIXS_B3_UMDF_MD_API BlockLength blockLength(SchemaVersion version)
Definition: Messages.h:1526
Relays trade information on one instrument..
Definition: Messages.h:7038
ONIXS_B3_UMDF_MD_NODISCARD bool lowLimitPrice(PriceOptional &value) const
Allowable low limit price for the trading day.
Definition: Messages.h:4401
ONIXS_B3_UMDF_MD_NODISCARD SeqNum nextSeqNo() const
The next application sequence number in the feed.
Definition: Messages.h:267
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD StrRef securityExchange()
Market to which the symbol belongs.
Definition: Messages.h:4888
ONIXS_B3_UMDF_MD_NODISCARD MatchEventIndicator matchEventIndicator() const
Identifies the end of the current event and if it is a retransmission.
Definition: Messages.h:5510
UInt64 SecurityID
Security ID as defined by B3&#39;s Trading System.
Definition: Fields.h:168
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD StrRef securityExchange()
Market to which the symbol belongs.
Definition: Messages.h:7459
static ONIXS_B3_UMDF_MD_API BlockLength blockLength(SchemaVersion version)
Size of message body in bytes.
Definition: Messages.h:8874
ONIXS_B3_UMDF_MD_NODISCARD bool highLimitPrice(PriceOptional &value) const
Allowable high limit price for the trading day.
Definition: Messages.h:4414
ONIXS_B3_UMDF_MD_NODISCARD MatchEventIndicator matchEventIndicator() const
Identifies if it is a retransmission.
Definition: Messages.h:6619
OpeningPrice_15()
Initializes a blank instance.
Definition: Messages.h:2879
ONIXS_B3_UMDF_MD_NODISCARD Price mDEntryPx() const
Trading Session High Price.
Definition: Messages.h:4682
ClosingPrice_17(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:3450
static ONIXS_B3_UMDF_MD_API UpdateAction::Enum mDUpdateAction()
Update Action (NEW) - always replace.
Definition: Messages.h:431
ONIXS_B3_UMDF_MD_NODISCARD bool lotType(LotType::Enum &value) const
Lot type.
Definition: Messages.h:2173
static ONIXS_B3_UMDF_MD_API UpdateAction::Enum mDUpdateAction()
Update Action (NEW) - always replace.
Definition: Messages.h:4079
Specifies the number of the application ID occurrences (number of channels).
Definition: Messages.h:1567
ONIXS_B3_UMDF_MD_NODISCARD MatchEventIndicator matchEventIndicator() const
Identifies the end of the current event and if it is a retransmission.
Definition: Messages.h:5803
ONIXS_B3_UMDF_MD_NODISCARD bool rptSeq(RptSeq &value) const
Sequence number per instrument update.
Definition: Messages.h:3874
ONIXS_B3_UMDF_MD_NODISCARD EntryPositionNo mDEntryPositionNo() const
Display position of a bid or offer, numbered from most competitive to least competitive, per market side, beginning with 1.
Definition: Messages.h:6368
InstrAttribsEntry(const void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:1583
UInt32 NumberOfTrades
Contains the number of trades executed in the session.
Definition: Fields.h:104
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD StrRef fixType()
FIX message type.
Definition: Messages.h:7334
SchemaTraits Schema
Used template schema.
Definition: Messages.h:590
static ONIXS_B3_UMDF_MD_API UpdateAction::Enum mDUpdateAction()
Update Action (NEW).
Definition: Messages.h:7478
ONIXS_B3_UMDF_MD_NODISCARD bool aggressorTime(UTCTimestampNanos &value) const
Timestamp of aggressive order resulting in match event.
Definition: Messages.h:7889
ONIXS_B3_UMDF_MD_NODISCARD MatchEventIndicator matchEventIndicator() const
Identifies the end of the current event and if it is a retransmission.
Definition: Messages.h:881
ONIXS_B3_UMDF_MD_NODISCARD bool tradSesOpenTime(UTCTimestampNanos &value) const
Estimated end of the current auction.
Definition: Messages.h:940
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD MessageSize getMinimalVariableFieldsSize(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:726
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD const Char * className()
Definition: Messages.h:5362
ONIXS_B3_UMDF_MD_NODISCARD bool mDEntryTimestamp(UTCTimestampNanos &value) const
Date and time of market data entry.
Definition: Messages.h:3605
DeleteOrder_MBO_51(void *data, EncodedLength length, NoInit, NoCheck)
Creates an instance over the given memory block.
Definition: Messages.h:6555
ONIXS_B3_UMDF_MD_NODISCARD Timestamp tradeDate() const
Used to specify the trading date for which a set of market data applies.
Definition: Messages.h:5832
static ONIXS_B3_UMDF_MD_API BlockLength blockLength(SchemaVersion version)
Definition: Messages.h:1618
static ONIXS_B3_UMDF_MD_API UpdateAction::Enum mDUpdateAction()
Update Action (DELETE).
Definition: Messages.h:6630
MassDeleteOrders_MBO_52(void *data, EncodedLength length, NoInit, NoCheck)
Creates an instance over the given memory block.
Definition: Messages.h:6825
Int64 QuantityVolume
Volume Quantity.
Definition: Fields.h:122
ONIXS_B3_UMDF_MD_NODISCARD Quantity fillQty() const
Quantity of all fills.
Definition: Messages.h:7857
ONIXS_B3_UMDF_MD_NODISCARD Quantity mDEntrySize() const
Displayed quantity or volume represented by the Market Data Entry.
Definition: Messages.h:6356
static ONIXS_B3_UMDF_MD_API ApplVerID::Enum applVerId()
Specifies the service pack release being applied at message level.
Definition: Messages.h:842
static ONIXS_B3_UMDF_MD_API ApplVerID::Enum applVerId()
Specifies the service pack release being applied at message level.
Definition: Messages.h:2930
PriceBand_22()
Initializes a blank instance.
Definition: Messages.h:4242
Sequence_2()
Initializes a blank instance.
Definition: Messages.h:207
static ONIXS_B3_UMDF_MD_API BlockLength minimalBlockLength(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Minimal size of message body in bytes.
Definition: Messages.h:502
ONIXS_B3_UMDF_MD_NODISCARD bool securityStrategyType(StrRef &value) const
Strategy type definition.
Definition: Messages.h:2162
News_5(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:2549
static ONIXS_B3_UMDF_MD_API ApplVerID::Enum applVerId()
Specifies the service pack release being applied at message level.
Definition: Messages.h:5113
ONIXS_B3_UMDF_MD_NODISCARD bool enteringFirm(FirmOptional &value) const
Identifies the broker firm.
Definition: Messages.h:6378
ONIXS_B3_UMDF_MD_NODISCARD bool mDEntryInterestRate(Percentage &value) const
Interest Rate of the Termo Trade.
Definition: Messages.h:7613
static ONIXS_B3_UMDF_MD_API EntryType::Enum mDEntryType()
Entry type: Trading Session Low Price.
Definition: Messages.h:4918
ONIXS_B3_UMDF_MD_NODISCARD bool mDEntryTimestamp(UTCTimestampNanos &value) const
Date and time of market data entry.
Definition: Messages.h:4124
ONIXS_B3_UMDF_MD_NODISCARD bool rptSeq(RptSeq &value) const
Sequence number per instrument update.
Definition: Messages.h:7589
Int64 QuantityOptional
Quantity in order/trade.
Definition: Fields.h:116
ONIXS_B3_UMDF_MD_NODISCARD bool lastRptSeq(RptSeq &value) const
Last processed RptSeq (sequence number per instrument update) for this instrument.
Definition: Messages.h:6117
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD StrRef fixType()
FIX message type.
Definition: Messages.h:1024
LegsEntry(const void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:1440
ONIXS_B3_UMDF_MD_NODISCARD bool newsId(NewsID &value) const
Unique identifier for News message.
Definition: Messages.h:2682
UInt32 RptSeq
Sequence number per instrument update.
Definition: Fields.h:186
static ONIXS_B3_UMDF_MD_API UpdateAction::Enum mDUpdateAction()
Update Action (NEW).
Definition: Messages.h:7150
ONIXS_B3_UMDF_MD_NODISCARD bool mDEntryBuyer(FirmOptional &value) const
For reporting trades (buying party).
Definition: Messages.h:7219
Enum
Code to represent the type of instrument attributes.
Definition: Fields.h:1302
ONIXS_B3_UMDF_MD_NODISCARD EntryType::Enum mDEntryType() const
Entry Type (BID or OFFER).
Definition: Messages.h:8699
SbeGroup< Entry, GroupSizeEncoding, MessageSize > Entries
Repeating group containing Entry entries.
Definition: Messages.h:8759
ONIXS_B3_UMDF_MD_NODISCARD bool impliedMarketIndicator(ImpliedMarketIndicator::Enum &value) const
Indicates that an implied order can be created for the instrument.
Definition: Messages.h:2319
ONIXS_B3_UMDF_MD_NODISCARD MatchEventIndicator matchEventIndicator() const
Identifies the end of the current event and if it is a retransmission.
Definition: Messages.h:1139
ONIXS_B3_UMDF_MD_NODISCARD UpdateAction::Enum mDUpdateAction() const
Update Action (NEW or DELETE).
Definition: Messages.h:4652
ONIXS_B3_UMDF_MD_NODISCARD bool rptSeq(RptSeq &value) const
Sequence number per instrument update.
Definition: Messages.h:5274
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD MessageSize getMinimalVariableFieldsSize(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:6159
ONIXS_B3_UMDF_MD_NODISCARD bool rptSeq(RptSeq &value) const
Sequence number per instrument update.
Definition: Messages.h:3616
News_5(void *data, EncodedLength length, NoInit, NoCheck)
Creates an instance over the given memory block.
Definition: Messages.h:2560
static ONIXS_B3_UMDF_MD_API MessageType::Enum messageType()
FIX Message Type.
Definition: Messages.h:1698
Trade_53(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:7063
ONIXS_B3_UMDF_MD_NODISCARD bool rptSeq(RptSeq &value) const
Sequence number per instrument update.
Definition: Messages.h:3331
ONIXS_B3_UMDF_MD_NODISCARD TradingSessionID::Enum tradingSessionId() const
Identifier for trading session.
Definition: Messages.h:8431
static ONIXS_B3_UMDF_MD_API MessageType::Enum messageType()
FIX Message Type.
Definition: Messages.h:7771
ONIXS_B3_UMDF_MD_NODISCARD SecurityID securityId() const
Security ID as defined by B3.
Definition: Messages.h:6030
ONIXS_B3_UMDF_MD_NODISCARD Timestamp tradeDate() const
Used to specify the trading date for which a set of market data applies.
Definition: Messages.h:1184
static ONIXS_B3_UMDF_MD_API MessageType::Enum messageType()
FIX Message Type.
Definition: Messages.h:832
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD const Char * className()
Definition: Messages.h:5917
ONIXS_B3_UMDF_MD_NODISCARD bool clearingHouseId(ClearingHouseID &value) const
Clearing House ID.
Definition: Messages.h:1882
static ONIXS_B3_UMDF_MD_API UpdateAction::Enum mDUpdateAction()
Update Action (NEW) - always replace.
Definition: Messages.h:5521
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD StrRef fixType()
FIX message type.
Definition: Messages.h:5371
static ONIXS_B3_UMDF_MD_API BlockLength minimalBlockLength(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Minimal size of message body in bytes.
Definition: Messages.h:7284
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD MessageSize getMinimalVariableFieldsSize(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:5905
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD StrRef securityExchange()
Market to which the symbol belongs.
Definition: Messages.h:2618
ONIXS_B3_UMDF_MD_NODISCARD SecurityID securityId() const
Security ID as defined by B3.
Definition: Messages.h:7790
ONIXS_B3_UMDF_MD_NODISCARD UpdateAction::Enum mDUpdateAction() const
Update Action (NEW, CHANGE).
Definition: Messages.h:6324
ONIXS_B3_UMDF_MD_NODISCARD Timestamp tradeDate() const
Used to specify the trading date for which a set of market data applies.
Definition: Messages.h:5539
SchemaTraits Schema
Used template schema.
Definition: Messages.h:785
ONIXS_B3_UMDF_MD_NODISCARD MatchEventIndicator matchEventIndicator() const
Identifies the end of the current event and if it is a retransmission.
Definition: Messages.h:479
static ONIXS_B3_UMDF_MD_API ApplVerID::Enum applVerId()
Specifies the service pack release being applied at message level.
Definition: Messages.h:3774
ONIXS_B3_UMDF_MD_NODISCARD InstrAttribs instrAttribs() const
Definition: Messages.h:2349
ONIXS_B3_UMDF_MD_NODISCARD bool securityTradingEvent(SecurityTradingEvent::Enum &value) const
Identifies an event related to a Trading.
Definition: Messages.h:917
static ONIXS_B3_UMDF_MD_API UpdateAction::Enum mDUpdateAction()
Update Action (DELETE) = always delete.
Definition: Messages.h:8414
static ONIXS_B3_UMDF_MD_API SecurityIDSource::Enum underlyingSecurityIdSource()
Identifies the class of the underlying instrument&#39;s SecurityID (Exchange Symbol). ...
Definition: Messages.h:1353
ONIXS_B3_UMDF_MD_NODISCARD SecurityID securityId() const
Security ID as defined by B3.
Definition: Messages.h:8822
ONIXS_B3_UMDF_MD_NODISCARD bool securityMatchType(SecurityMatchType::Enum &value) const
Type of matching that occurred.
Definition: Messages.h:2258
ForwardTrade_54()
Initializes a blank instance.
Definition: Messages.h:7378
ONIXS_B3_UMDF_MD_NODISCARD bool mDEntrySize(QuantityOptional &value) const
Remaining auction quantity.
Definition: Messages.h:3853
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD MessageSize getMinimalVariableFieldsSize(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:4742
ONIXS_B3_UMDF_MD_NODISCARD SettlPriceType::Enum settlPriceType() const
Type of settlement price: FINAL, THEORETICAL or UPDATED.
Definition: Messages.h:5590
ONIXS_B3_UMDF_MD_NODISCARD bool minOrderQty(QuantityOptional &value) const
Minimum quantity for an order.
Definition: Messages.h:1892
Week, month and year of the maturity (used for standardized futures and options). ...
Definition: Composites.h:910
LowPrice_25(void *data, EncodedLength length, NoInit, NoCheck)
Creates an instance over the given memory block.
Definition: Messages.h:4832
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD const Char * className()
Definition: Messages.h:4754
ONIXS_B3_UMDF_MD_NODISCARD Quantity mDEntrySize() const
Displayed quantity or volume represented by the Market Data Entry.
Definition: Messages.h:8643
SchemaTraits Schema
Used template schema.
Definition: Messages.h:7043
ONIXS_B3_UMDF_MD_NODISCARD SecurityID securityId() const
Security ID as defined by B3.
Definition: Messages.h:4038
IntegralConstant< UInt32, 0 > NullUInt32NULL
Null value for an optional UInt32NULL field.
Definition: Fields.h:1838
static ONIXS_B3_UMDF_MD_API ApplVerID::Enum applVerId()
Specifies the service pack release being applied at message level.
Definition: Messages.h:8069
ExecutionStatistics_56(void *data, EncodedLength length, NoInit, NoCheck)
Creates an instance over the given memory block.
Definition: Messages.h:8043
ONIXS_B3_UMDF_MD_NODISCARD MatchEventIndicator matchEventIndicator() const
Identifies the end of the current event.
Definition: Messages.h:8107
UInt16 LocalMktDateOptional
Optional local date (as opposed to UTC).
Definition: Fields.h:220
static ONIXS_B3_UMDF_MD_API BlockLength blockLength(SchemaVersion version)
Size of message body in bytes.
Definition: Messages.h:4473
ONIXS_B3_UMDF_MD_NODISCARD UpdateAction::Enum mDUpdateAction() const
Update Action (NEW or DELETE).
Definition: Messages.h:4907
Sent in incremental, snapshot and instrument list feeds in periods of no activity..
Definition: Messages.h:196
static ONIXS_B3_UMDF_MD_API EntryType::Enum mDEntryType()
Entry type: Quantity Band.
Definition: Messages.h:4088
ONIXS_B3_UMDF_MD_NODISCARD bool governanceIndicator(GovernanceIndicator::Enum &value) const
Corporative Governance Level Indicator.
Definition: Messages.h:2246
ONIXS_B3_UMDF_MD_NODISCARD SecurityID securityId() const
Security ID as defined by B3.
Definition: Messages.h:4612
SecurityStatus_3(void *data, EncodedLength length, NoInit, NoCheck)
Creates an instance over the given memory block.
Definition: Messages.h:816
SchemaTraits Schema
Used template schema.
Definition: Messages.h:39
static ONIXS_B3_UMDF_MD_API MessageType::Enum messageType()
FIX Message Type.
Definition: Messages.h:86
static ONIXS_B3_UMDF_MD_API ApplVerID::Enum applVerId()
Specifies the service pack release being applied at message level.
Definition: Messages.h:6581
Enum
Indicates that an implied order can be created for the instrument.
Definition: Fields.h:1430
ONIXS_B3_UMDF_MD_NODISCARD bool mDInsertTimestamp(UTCTimestampNanos &value) const
The date and time when the order was inserted or re- inserted into the order book or manually altered...
Definition: Messages.h:6390
OpeningPrice_15(void *data, EncodedLength length, NoInit, NoCheck)
Creates an instance over the given memory block.
Definition: Messages.h:2904
Relays trade bust (trade reversal) information on one instrument..
Definition: Messages.h:8303
ONIXS_B3_UMDF_MD_NODISCARD Underlyings underlyings() const
Definition: Messages.h:2331
ONIXS_B3_UMDF_MD_NODISCARD SecurityID securityId() const
Security ID as defined by B3.
Definition: Messages.h:2939
ONIXS_B3_UMDF_MD_NODISCARD SecurityID securityId() const
Security ID as defined by B3.
Definition: Messages.h:7438
ONIXS_B3_UMDF_MD_NODISCARD Timestamp tradeDate() const
Used to specify the trading date for which a set of market data applies.
Definition: Messages.h:3290
ONIXS_B3_UMDF_MD_NODISCARD StrRef currency() const
Currency code.
Definition: Messages.h:2129
ONIXS_B3_UMDF_MD_NODISCARD bool mDEntrySize(QuantityOptional &value) const
Theoretical Opening Quantity.
Definition: Messages.h:3310
ONIXS_B3_UMDF_MD_NODISCARD Legs legs() const
Definition: Messages.h:2341
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD const Char * className()
Definition: Messages.h:1259
ONIXS_B3_UMDF_MD_NODISCARD SecurityID underlyingSecurityId() const
Underlying instrument&#39;s security ID.
Definition: Messages.h:1341
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD StrRef securityExchange()
Market to which the symbol belongs.
Definition: Messages.h:7811
UInt8 MarketSegmentID
Identifies the market segment.
Definition: Fields.h:246
ONIXS_B3_UMDF_MD_NODISCARD TradingSessionID::Enum tradingSessionId() const
Identifier for trading session.
Definition: Messages.h:5180
SecurityDefinition_12(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:1671
Null values definition for optional Percentage field.
Definition: Composites.h:272
ONIXS_B3_UMDF_MD_NODISCARD bool mDEntryTimestamp(UTCTimestampNanos &value) const
Date and time of market data entry.
Definition: Messages.h:489
ONIXS_B3_UMDF_MD_NODISCARD MatchEventIndicator matchEventIndicator() const
Identifies the end of the current event and if it is a retransmission.
Definition: Messages.h:4332
static ONIXS_B3_UMDF_MD_API MessageType::Enum messageType()
FIX Message Type.
Definition: Messages.h:3477
static ONIXS_B3_UMDF_MD_API SecurityIDSource::Enum securityIdSource()
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:3232
ONIXS_B3_UMDF_MD_NODISCARD Price8 mDEntryPx() const
Closing price. May be adjusted by corporate events.
Definition: Messages.h:3565
SbeGroupEntry< GroupSizeEncoding::BlockLength > Base
Base class type.
Definition: Messages.h:8615
ONIXS_B3_UMDF_MD_NODISCARD UpdateAction::Enum mDUpdateAction() const
Update Action (NEW or DELETE).
Definition: Messages.h:3823
ONIXS_B3_UMDF_MD_NODISCARD EntryType::Enum mDEntryType() const
Entry Type (BID or OFFER).
Definition: Messages.h:6909
DeleteOrder_MBO_51()
Initializes a blank instance.
Definition: Messages.h:6530
static ONIXS_B3_UMDF_MD_API EntryType::Enum mDEntryType()
Entry type: Imbalance.
Definition: Messages.h:3834
ONIXS_B3_UMDF_MD_NODISCARD Price mDEntryPx() const
Price of the Market Data Entry.
Definition: Messages.h:7187
static ONIXS_B3_UMDF_MD_API SecurityIDSource::Enum securityIdSource()
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:862
static ONIXS_B3_UMDF_MD_API MessageType::Enum messageType()
FIX Message Type.
Definition: Messages.h:7090
ONIXS_B3_UMDF_MD_NODISCARD Timestamp tradeDate() const
Used to specify the trading date for which a set of market data applies.
Definition: Messages.h:3033
static ONIXS_B3_UMDF_MD_API ApplVerID::Enum applVerId()
Specifies the service pack release being applied at message level.
Definition: Messages.h:6021
static ONIXS_B3_UMDF_MD_API BlockLength blockLength(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Size of message body in bytes.
Definition: Messages.h:7650
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD MessageSize getMinimalVariableFieldsSize(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:6983
SchemaTraits Schema
Used template schema.
Definition: Messages.h:2529
HighPrice_24(void *data, EncodedLength length, NoInit, NoCheck)
Creates an instance over the given memory block.
Definition: Messages.h:4577
ONIXS_B3_UMDF_MD_NODISCARD bool maxTradeVol(QuantityVolumeOptional &value) const
The maximum order quantity that can be submitted for a security.
Definition: Messages.h:4113
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD MessageSize getMinimalVariableFieldsSize(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:3370
ONIXS_B3_UMDF_MD_NODISCARD SecurityID securityId() const
Security ID as defined by B3.
Definition: Messages.h:6860
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD MessageSize getMinimalVariableFieldsSize(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:3913
ONIXS_B3_UMDF_MD_NODISCARD StrRef underlyingSymbol() const
Underlying instrument&#39;s ticker symbol.
Definition: Messages.h:1371
ONIXS_B3_UMDF_MD_NODISCARD UpdateAction::Enum mDUpdateAction() const
Update Action (NEW or DELETE).
Definition: Messages.h:2979
ONIXS_B3_UMDF_MD_NODISCARD bool mDInsertTimestamp(UTCTimestampNanos &value) const
The date and time when the order was inserted or re- inserted into the order book or manually altered...
Definition: Messages.h:8677
static ONIXS_B3_UMDF_MD_API BlockLength minimalBlockLength(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Definition: Messages.h:1540
SbeGroupEntry< GroupSizeEncoding::BlockLength > Base
Base class type.
Definition: Messages.h:1436
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD const Char * className()
Definition: Messages.h:3670
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD const Char * className()
Definition: Messages.h:6171
static ONIXS_B3_UMDF_MD_API BlockLength blockLength(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Size of message body in bytes.
Definition: Messages.h:5628
SnapshotFullRefresh_Header_30(void *data, EncodedLength length, NoInit, NoCheck)
Creates an instance over the given memory block.
Definition: Messages.h:5995
ONIXS_B3_UMDF_MD_NODISCARD bool mDEntryPx(PriceOptional &value) const
Price per share or contract.
Definition: Messages.h:8632
ONIXS_B3_UMDF_MD_NODISCARD bool trdSubType(TrdSubType::Enum &value) const
Sub type of trade assigned to a trade.
Definition: Messages.h:7250
static ONIXS_B3_UMDF_MD_API SecurityIDSource::Enum securityIdSource()
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:6601
SequenceReset_1(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:59
static ONIXS_B3_UMDF_MD_API ApplVerID::Enum applVerId()
Specifies the service pack release being applied at message level.
Definition: Messages.h:1119
ONIXS_B3_UMDF_MD_NODISCARD bool rptSeq(RptSeq &value) const
Sequence number per instrument update.
Definition: Messages.h:4135
ONIXS_B3_UMDF_MD_NODISCARD Price lastPx() const
Price of the last fill (i.e. worst price of this match).
Definition: Messages.h:7847
EmptyBook_9(void *data, EncodedLength length, NoInit, NoCheck)
Creates an instance over the given memory block.
Definition: Messages.h:396
static ONIXS_B3_UMDF_MD_API MessageType::Enum messageType()
FIX Message Type.
Definition: Messages.h:2576
ONIXS_B3_UMDF_MD_NODISCARD bool mDEntryTimestamp(UTCTimestampNanos &value) const
Date and time of market data entry.
Definition: Messages.h:3043
UInt16 UInt16NULL
2-byte unsigned integer, from 1 to 65535, NULL (optional) value = 0..
Definition: Fields.h:90
static ONIXS_B3_UMDF_MD_API SecurityIDSource::Enum securityIdSource()
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:2950
static ONIXS_B3_UMDF_MD_API UpdateAction::Enum mDUpdateAction()
Update Action (NEW) - always replace.
Definition: Messages.h:3537
ChannelReset_11(void *data, EncodedLength length, NoInit, NoCheck)
Creates an instance over the given memory block.
Definition: Messages.h:621
static ONIXS_B3_UMDF_MD_API ApplVerID::Enum applVerId()
Specifies the service pack release being applied at message level.
Definition: Messages.h:5471
SbeGroupEntry< GroupSizeEncoding::BlockLength > Base
Base class type.
Definition: Messages.h:1579
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD StrRef securityExchange()
Market to which the symbol belongs.
Definition: Messages.h:3804
static ONIXS_B3_UMDF_MD_API BlockLength blockLength(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Size of message body in bytes.
Definition: Messages.h:5890
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD const Char * className()
Definition: Messages.h:7677
ONIXS_B3_UMDF_MD_NODISCARD bool rptSeq(RptSeq &value) const
Sequence number per instrument update.
Definition: Messages.h:4448
static ONIXS_B3_UMDF_MD_API BlockLength minimalBlockLength(ONIXS_B3_UMDF_MD_UNUSED SchemaVersion version)
Minimal size of message body in bytes.
Definition: Messages.h:8862
ONIXS_B3_UMDF_MD_API static ONIXS_B3_UMDF_MD_NODISCARD StrRef fixType()
FIX message type.
Definition: Messages.h:6486